"use strict"; (function() { Error.stackTraceLimit = Infinity; var $global, $module; if (typeof window !== "undefined") { /* web page */ $global = window; } else if (typeof self !== "undefined") { /* web worker */ $global = self; } else if (typeof global !== "undefined") { /* Node.js */ $global = global; $global.require = require; } else { /* others (e.g. Nashorn) */ $global = this; } if ($global === undefined || $global.Array === undefined) { throw new Error("no global object found"); } if (typeof module !== "undefined") { $module = module; } var $packages = {}, $idCounter = 0; var $keys = function(m) { return m ? Object.keys(m) : []; }; var $flushConsole = function() {}; var $throwRuntimeError; /* set by package "runtime" */ var $throwNilPointerError = function() { $throwRuntimeError("invalid memory address or nil pointer dereference"); }; var $call = function(fn, rcvr, args) { return fn.apply(rcvr, args); }; var $makeFunc = function(fn) { return function() { return $externalize(fn(this, new ($sliceType($jsObjectPtr))($global.Array.prototype.slice.call(arguments, []))), $emptyInterface); }; }; var $unused = function(v) {}; var $mapArray = function(array, f) { var newArray = new array.constructor(array.length); for (var i = 0; i < array.length; i++) { newArray[i] = f(array[i]); } return newArray; }; var $methodVal = function(recv, name) { var vals = recv.$methodVals || {}; recv.$methodVals = vals; /* noop for primitives */ var f = vals[name]; if (f !== undefined) { return f; } var method = recv[name]; f = function() { $stackDepthOffset--; try { return method.apply(recv, arguments); } finally { $stackDepthOffset++; } }; vals[name] = f; return f; }; var $methodExpr = function(typ, name) { var method = typ.prototype[name]; if (method.$expr === undefined) { method.$expr = function() { $stackDepthOffset--; try { if (typ.wrapped) { arguments[0] = new typ(arguments[0]); } return Function.call.apply(method, arguments); } finally { $stackDepthOffset++; } }; } return method.$expr; }; var $ifaceMethodExprs = {}; var $ifaceMethodExpr = function(name) { var expr = $ifaceMethodExprs["$" + name]; if (expr === undefined) { expr = $ifaceMethodExprs["$" + name] = function() { $stackDepthOffset--; try { return Function.call.apply(arguments[0][name], arguments); } finally { $stackDepthOffset++; } }; } return expr; }; var $subslice = function(slice, low, high, max) { if (low < 0 || high < low || max < high || high > slice.$capacity || max > slice.$capacity) { $throwRuntimeError("slice bounds out of range"); } var s = new slice.constructor(slice.$array); s.$offset = slice.$offset + low; s.$length = slice.$length - low; s.$capacity = slice.$capacity - low; if (high !== undefined) { s.$length = high - low; } if (max !== undefined) { s.$capacity = max - low; } return s; }; var $substring = function(str, low, high) { if (low < 0 || high < low || high > str.length) { $throwRuntimeError("slice bounds out of range"); } return str.substring(low, high); }; var $sliceToArray = function(slice) { if (slice.$array.constructor !== Array) { return slice.$array.subarray(slice.$offset, slice.$offset + slice.$length); } return slice.$array.slice(slice.$offset, slice.$offset + slice.$length); }; var $decodeRune = function(str, pos) { var c0 = str.charCodeAt(pos); if (c0 < 0x80) { return [c0, 1]; } if (c0 !== c0 || c0 < 0xC0) { return [0xFFFD, 1]; } var c1 = str.charCodeAt(pos + 1); if (c1 !== c1 || c1 < 0x80 || 0xC0 <= c1) { return [0xFFFD, 1]; } if (c0 < 0xE0) { var r = (c0 & 0x1F) << 6 | (c1 & 0x3F); if (r <= 0x7F) { return [0xFFFD, 1]; } return [r, 2]; } var c2 = str.charCodeAt(pos + 2); if (c2 !== c2 || c2 < 0x80 || 0xC0 <= c2) { return [0xFFFD, 1]; } if (c0 < 0xF0) { var r = (c0 & 0x0F) << 12 | (c1 & 0x3F) << 6 | (c2 & 0x3F); if (r <= 0x7FF) { return [0xFFFD, 1]; } if (0xD800 <= r && r <= 0xDFFF) { return [0xFFFD, 1]; } return [r, 3]; } var c3 = str.charCodeAt(pos + 3); if (c3 !== c3 || c3 < 0x80 || 0xC0 <= c3) { return [0xFFFD, 1]; } if (c0 < 0xF8) { var r = (c0 & 0x07) << 18 | (c1 & 0x3F) << 12 | (c2 & 0x3F) << 6 | (c3 & 0x3F); if (r <= 0xFFFF || 0x10FFFF < r) { return [0xFFFD, 1]; } return [r, 4]; } return [0xFFFD, 1]; }; var $encodeRune = function(r) { if (r < 0 || r > 0x10FFFF || (0xD800 <= r && r <= 0xDFFF)) { r = 0xFFFD; } if (r <= 0x7F) { return String.fromCharCode(r); } if (r <= 0x7FF) { return String.fromCharCode(0xC0 | r >> 6, 0x80 | (r & 0x3F)); } if (r <= 0xFFFF) { return String.fromCharCode(0xE0 | r >> 12, 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F)); } return String.fromCharCode(0xF0 | r >> 18, 0x80 | (r >> 12 & 0x3F), 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F)); }; var $stringToBytes = function(str) { var array = new Uint8Array(str.length); for (var i = 0; i < str.length; i++) { array[i] = str.charCodeAt(i); } return array; }; var $bytesToString = function(slice) { if (slice.$length === 0) { return ""; } var str = ""; for (var i = 0; i < slice.$length; i += 10000) { str += String.fromCharCode.apply(undefined, slice.$array.subarray(slice.$offset + i, slice.$offset + Math.min(slice.$length, i + 10000))); } return str; }; var $stringToRunes = function(str) { var array = new Int32Array(str.length); var rune, j = 0; for (var i = 0; i < str.length; i += rune[1], j++) { rune = $decodeRune(str, i); array[j] = rune[0]; } return array.subarray(0, j); }; var $runesToString = function(slice) { if (slice.$length === 0) { return ""; } var str = ""; for (var i = 0; i < slice.$length; i++) { str += $encodeRune(slice.$array[slice.$offset + i]); } return str; }; var $copyString = function(dst, src) { var n = Math.min(src.length, dst.$length); for (var i = 0; i < n; i++) { dst.$array[dst.$offset + i] = src.charCodeAt(i); } return n; }; var $copySlice = function(dst, src) { var n = Math.min(src.$length, dst.$length); $copyArray(dst.$array, src.$array, dst.$offset, src.$offset, n, dst.constructor.elem); return n; }; var $copyArray = function(dst, src, dstOffset, srcOffset, n, elem) { if (n === 0 || (dst === src && dstOffset === srcOffset)) { return; } if (src.subarray) { dst.set(src.subarray(srcOffset, srcOffset + n), dstOffset); return; } switch (elem.kind) { case $kindArray: case $kindStruct: if (dst === src && dstOffset > srcOffset) { for (var i = n - 1; i >= 0; i--) { elem.copy(dst[dstOffset + i], src[srcOffset + i]); } return; } for (var i = 0; i < n; i++) { elem.copy(dst[dstOffset + i], src[srcOffset + i]); } return; } if (dst === src && dstOffset > srcOffset) { for (var i = n - 1; i >= 0; i--) { dst[dstOffset + i] = src[srcOffset + i]; } return; } for (var i = 0; i < n; i++) { dst[dstOffset + i] = src[srcOffset + i]; } }; var $clone = function(src, type) { var clone = type.zero(); type.copy(clone, src); return clone; }; var $pointerOfStructConversion = function(obj, type) { if(obj.$proxies === undefined) { obj.$proxies = {}; obj.$proxies[obj.constructor.string] = obj; } var proxy = obj.$proxies[type.string]; if (proxy === undefined) { var properties = {}; for (var i = 0; i < type.elem.fields.length; i++) { (function(fieldProp) { properties[fieldProp] = { get: function() { return obj[fieldProp]; }, set: function(value) { obj[fieldProp] = value; } }; })(type.elem.fields[i].prop); } proxy = Object.create(type.prototype, properties); proxy.$val = proxy; obj.$proxies[type.string] = proxy; proxy.$proxies = obj.$proxies; } return proxy; }; var $append = function(slice) { return $internalAppend(slice, arguments, 1, arguments.length - 1); }; var $appendSlice = function(slice, toAppend) { if (toAppend.constructor === String) { var bytes = $stringToBytes(toAppend); return $internalAppend(slice, bytes, 0, bytes.length); } return $internalAppend(slice, toAppend.$array, toAppend.$offset, toAppend.$length); }; var $internalAppend = function(slice, array, offset, length) { if (length === 0) { return slice; } var newArray = slice.$array; var newOffset = slice.$offset; var newLength = slice.$length + length; var newCapacity = slice.$capacity; if (newLength > newCapacity) { newOffset = 0; newCapacity = Math.max(newLength, slice.$capacity < 1024 ? slice.$capacity * 2 : Math.floor(slice.$capacity * 5 / 4)); if (slice.$array.constructor === Array) { newArray = slice.$array.slice(slice.$offset, slice.$offset + slice.$length); newArray.length = newCapacity; var zero = slice.constructor.elem.zero; for (var i = slice.$length; i < newCapacity; i++) { newArray[i] = zero(); } } else { newArray = new slice.$array.constructor(newCapacity); newArray.set(slice.$array.subarray(slice.$offset, slice.$offset + slice.$length)); } } $copyArray(newArray, array, newOffset + slice.$length, offset, length, slice.constructor.elem); var newSlice = new slice.constructor(newArray); newSlice.$offset = newOffset; newSlice.$length = newLength; newSlice.$capacity = newCapacity; return newSlice; }; var $equal = function(a, b, type) { if (type === $jsObjectPtr) { return a === b; } switch (type.kind) { case $kindComplex64: case $kindComplex128: return a.$real === b.$real && a.$imag === b.$imag; case $kindInt64: case $kindUint64: return a.$high === b.$high && a.$low === b.$low; case $kindArray: if (a.length !== b.length) { return false; } for (var i = 0; i < a.length; i++) { if (!$equal(a[i], b[i], type.elem)) { return false; } } return true; case $kindStruct: for (var i = 0; i < type.fields.length; i++) { var f = type.fields[i]; if (!$equal(a[f.prop], b[f.prop], f.typ)) { return false; } } return true; case $kindInterface: return $interfaceIsEqual(a, b); default: return a === b; } }; var $interfaceIsEqual = function(a, b) { if (a === $ifaceNil || b === $ifaceNil) { return a === b; } if (a.constructor !== b.constructor) { return false; } if (a.constructor === $jsObjectPtr) { return a.object === b.object; } if (!a.constructor.comparable) { $throwRuntimeError("comparing uncomparable type " + a.constructor.string); } return $equal(a.$val, b.$val, a.constructor); }; var $min = Math.min; var $mod = function(x, y) { return x % y; }; var $parseInt = parseInt; var $parseFloat = function(f) { if (f !== undefined && f !== null && f.constructor === Number) { return f; } return parseFloat(f); }; var $froundBuf = new Float32Array(1); var $fround = Math.fround || function(f) { $froundBuf[0] = f; return $froundBuf[0]; }; var $imul = Math.imul || function(a, b) { var ah = (a >>> 16) & 0xffff; var al = a & 0xffff; var bh = (b >>> 16) & 0xffff; var bl = b & 0xffff; return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) >> 0); }; var $floatKey = function(f) { if (f !== f) { $idCounter++; return "NaN$" + $idCounter; } return String(f); }; var $flatten64 = function(x) { return x.$high * 4294967296 + x.$low; }; var $shiftLeft64 = function(x, y) { if (y === 0) { return x; } if (y < 32) { return new x.constructor(x.$high << y | x.$low >>> (32 - y), (x.$low << y) >>> 0); } if (y < 64) { return new x.constructor(x.$low << (y - 32), 0); } return new x.constructor(0, 0); }; var $shiftRightInt64 = function(x, y) { if (y === 0) { return x; } if (y < 32) { return new x.constructor(x.$high >> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0); } if (y < 64) { return new x.constructor(x.$high >> 31, (x.$high >> (y - 32)) >>> 0); } if (x.$high < 0) { return new x.constructor(-1, 4294967295); } return new x.constructor(0, 0); }; var $shiftRightUint64 = function(x, y) { if (y === 0) { return x; } if (y < 32) { return new x.constructor(x.$high >>> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0); } if (y < 64) { return new x.constructor(0, x.$high >>> (y - 32)); } return new x.constructor(0, 0); }; var $mul64 = function(x, y) { var high = 0, low = 0; if ((y.$low & 1) !== 0) { high = x.$high; low = x.$low; } for (var i = 1; i < 32; i++) { if ((y.$low & 1<>> (32 - i); low += (x.$low << i) >>> 0; } } for (var i = 0; i < 32; i++) { if ((y.$high & 1< yHigh) || (xHigh === yHigh && xLow > yLow))) { yHigh = (yHigh << 1 | yLow >>> 31) >>> 0; yLow = (yLow << 1) >>> 0; n++; } for (var i = 0; i <= n; i++) { high = high << 1 | low >>> 31; low = (low << 1) >>> 0; if ((xHigh > yHigh) || (xHigh === yHigh && xLow >= yLow)) { xHigh = xHigh - yHigh; xLow = xLow - yLow; if (xLow < 0) { xHigh--; xLow += 4294967296; } low++; if (low === 4294967296) { high++; low = 0; } } yLow = (yLow >>> 1 | yHigh << (32 - 1)) >>> 0; yHigh = yHigh >>> 1; } if (returnRemainder) { return new x.constructor(xHigh * rs, xLow * rs); } return new x.constructor(high * s, low * s); }; var $divComplex = function(n, d) { var ninf = n.$real === Infinity || n.$real === -Infinity || n.$imag === Infinity || n.$imag === -Infinity; var dinf = d.$real === Infinity || d.$real === -Infinity || d.$imag === Infinity || d.$imag === -Infinity; var nnan = !ninf && (n.$real !== n.$real || n.$imag !== n.$imag); var dnan = !dinf && (d.$real !== d.$real || d.$imag !== d.$imag); if(nnan || dnan) { return new n.constructor(NaN, NaN); } if (ninf && !dinf) { return new n.constructor(Infinity, Infinity); } if (!ninf && dinf) { return new n.constructor(0, 0); } if (d.$real === 0 && d.$imag === 0) { if (n.$real === 0 && n.$imag === 0) { return new n.constructor(NaN, NaN); } return new n.constructor(Infinity, Infinity); } var a = Math.abs(d.$real); var b = Math.abs(d.$imag); if (a <= b) { var ratio = d.$real / d.$imag; var denom = d.$real * ratio + d.$imag; return new n.constructor((n.$real * ratio + n.$imag) / denom, (n.$imag * ratio - n.$real) / denom); } var ratio = d.$imag / d.$real; var denom = d.$imag * ratio + d.$real; return new n.constructor((n.$imag * ratio + n.$real) / denom, (n.$imag - n.$real * ratio) / denom); }; var $kindBool = 1; var $kindInt = 2; var $kindInt8 = 3; var $kindInt16 = 4; var $kindInt32 = 5; var $kindInt64 = 6; var $kindUint = 7; var $kindUint8 = 8; var $kindUint16 = 9; var $kindUint32 = 10; var $kindUint64 = 11; var $kindUintptr = 12; var $kindFloat32 = 13; var $kindFloat64 = 14; var $kindComplex64 = 15; var $kindComplex128 = 16; var $kindArray = 17; var $kindChan = 18; var $kindFunc = 19; var $kindInterface = 20; var $kindMap = 21; var $kindPtr = 22; var $kindSlice = 23; var $kindString = 24; var $kindStruct = 25; var $kindUnsafePointer = 26; var $methodSynthesizers = []; var $addMethodSynthesizer = function(f) { if ($methodSynthesizers === null) { f(); return; } $methodSynthesizers.push(f); }; var $synthesizeMethods = function() { $methodSynthesizers.forEach(function(f) { f(); }); $methodSynthesizers = null; }; var $ifaceKeyFor = function(x) { if (x === $ifaceNil) { return 'nil'; } var c = x.constructor; return c.string + '$' + c.keyFor(x.$val); }; var $identity = function(x) { return x; }; var $typeIDCounter = 0; var $idKey = function(x) { if (x.$id === undefined) { $idCounter++; x.$id = $idCounter; } return String(x.$id); }; var $newType = function(size, kind, string, named, pkg, exported, constructor) { var typ; switch(kind) { case $kindBool: case $kindInt: case $kindInt8: case $kindInt16: case $kindInt32: case $kindUint: case $kindUint8: case $kindUint16: case $kindUint32: case $kindUintptr: case $kindUnsafePointer: typ = function(v) { this.$val = v; }; typ.wrapped = true; typ.keyFor = $identity; break; case $kindString: typ = function(v) { this.$val = v; }; typ.wrapped = true; typ.keyFor = function(x) { return "$" + x; }; break; case $kindFloat32: case $kindFloat64: typ = function(v) { this.$val = v; }; typ.wrapped = true; typ.keyFor = function(x) { return $floatKey(x); }; break; case $kindInt64: typ = function(high, low) { this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >> 0; this.$low = low >>> 0; this.$val = this; }; typ.keyFor = function(x) { return x.$high + "$" + x.$low; }; break; case $kindUint64: typ = function(high, low) { this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >>> 0; this.$low = low >>> 0; this.$val = this; }; typ.keyFor = function(x) { return x.$high + "$" + x.$low; }; break; case $kindComplex64: typ = function(real, imag) { this.$real = $fround(real); this.$imag = $fround(imag); this.$val = this; }; typ.keyFor = function(x) { return x.$real + "$" + x.$imag; }; break; case $kindComplex128: typ = function(real, imag) { this.$real = real; this.$imag = imag; this.$val = this; }; typ.keyFor = function(x) { return x.$real + "$" + x.$imag; }; break; case $kindArray: typ = function(v) { this.$val = v; }; typ.wrapped = true; typ.ptr = $newType(4, $kindPtr, "*" + string, false, "", false, function(array) { this.$get = function() { return array; }; this.$set = function(v) { typ.copy(this, v); }; this.$val = array; }); typ.init = function(elem, len) { typ.elem = elem; typ.len = len; typ.comparable = elem.comparable; typ.keyFor = function(x) { return Array.prototype.join.call($mapArray(x, function(e) { return String(elem.keyFor(e)).replace(/\\/g, "\\\\").replace(/\$/g, "\\$"); }), "$"); }; typ.copy = function(dst, src) { $copyArray(dst, src, 0, 0, src.length, elem); }; typ.ptr.init(typ); Object.defineProperty(typ.ptr.nil, "nilCheck", { get: $throwNilPointerError }); }; break; case $kindChan: typ = function(v) { this.$val = v; }; typ.wrapped = true; typ.keyFor = $idKey; typ.init = function(elem, sendOnly, recvOnly) { typ.elem = elem; typ.sendOnly = sendOnly; typ.recvOnly = recvOnly; }; break; case $kindFunc: typ = function(v) { this.$val = v; }; typ.wrapped = true; typ.init = function(params, results, variadic) { typ.params = params; typ.results = results; typ.variadic = variadic; typ.comparable = false; }; break; case $kindInterface: typ = { implementedBy: {}, missingMethodFor: {} }; typ.keyFor = $ifaceKeyFor; typ.init = function(methods) { typ.methods = methods; methods.forEach(function(m) { $ifaceNil[m.prop] = $throwNilPointerError; }); }; break; case $kindMap: typ = function(v) { this.$val = v; }; typ.wrapped = true; typ.init = function(key, elem) { typ.key = key; typ.elem = elem; typ.comparable = false; }; break; case $kindPtr: typ = constructor || function(getter, setter, target) { this.$get = getter; this.$set = setter; this.$target = target; this.$val = this; }; typ.keyFor = $idKey; typ.init = function(elem) { typ.elem = elem; typ.wrapped = (elem.kind === $kindArray); typ.nil = new typ($throwNilPointerError, $throwNilPointerError); }; break; case $kindSlice: typ = function(array) { if (array.constructor !== typ.nativeArray) { array = new typ.nativeArray(array); } this.$array = array; this.$offset = 0; this.$length = array.length; this.$capacity = array.length; this.$val = this; }; typ.init = function(elem) { typ.elem = elem; typ.comparable = false; typ.nativeArray = $nativeArray(elem.kind); typ.nil = new typ([]); }; break; case $kindStruct: typ = function(v) { this.$val = v; }; typ.wrapped = true; typ.ptr = $newType(4, $kindPtr, "*" + string, false, pkg, exported, constructor); typ.ptr.elem = typ; typ.ptr.prototype.$get = function() { return this; }; typ.ptr.prototype.$set = function(v) { typ.copy(this, v); }; typ.init = function(pkgPath, fields) { typ.pkgPath = pkgPath; typ.fields = fields; fields.forEach(function(f) { if (!f.typ.comparable) { typ.comparable = false; } }); typ.keyFor = function(x) { var val = x.$val; return $mapArray(fields, function(f) { return String(f.typ.keyFor(val[f.prop])).replace(/\\/g, "\\\\").replace(/\$/g, "\\$"); }).join("$"); }; typ.copy = function(dst, src) { for (var i = 0; i < fields.length; i++) { var f = fields[i]; switch (f.typ.kind) { case $kindArray: case $kindStruct: f.typ.copy(dst[f.prop], src[f.prop]); continue; default: dst[f.prop] = src[f.prop]; continue; } } }; /* nil value */ var properties = {}; fields.forEach(function(f) { properties[f.prop] = { get: $throwNilPointerError, set: $throwNilPointerError }; }); typ.ptr.nil = Object.create(constructor.prototype, properties); typ.ptr.nil.$val = typ.ptr.nil; /* methods for embedded fields */ $addMethodSynthesizer(function() { var synthesizeMethod = function(target, m, f) { if (target.prototype[m.prop] !== undefined) { return; } target.prototype[m.prop] = function() { var v = this.$val[f.prop]; if (f.typ === $jsObjectPtr) { v = new $jsObjectPtr(v); } if (v.$val === undefined) { v = new f.typ(v); } return v[m.prop].apply(v, arguments); }; }; fields.forEach(function(f) { if (f.anonymous) { $methodSet(f.typ).forEach(function(m) { synthesizeMethod(typ, m, f); synthesizeMethod(typ.ptr, m, f); }); $methodSet($ptrType(f.typ)).forEach(function(m) { synthesizeMethod(typ.ptr, m, f); }); } }); }); }; break; default: $panic(new $String("invalid kind: " + kind)); } switch (kind) { case $kindBool: case $kindMap: typ.zero = function() { return false; }; break; case $kindInt: case $kindInt8: case $kindInt16: case $kindInt32: case $kindUint: case $kindUint8 : case $kindUint16: case $kindUint32: case $kindUintptr: case $kindUnsafePointer: case $kindFloat32: case $kindFloat64: typ.zero = function() { return 0; }; break; case $kindString: typ.zero = function() { return ""; }; break; case $kindInt64: case $kindUint64: case $kindComplex64: case $kindComplex128: var zero = new typ(0, 0); typ.zero = function() { return zero; }; break; case $kindPtr: case $kindSlice: typ.zero = function() { return typ.nil; }; break; case $kindChan: typ.zero = function() { return $chanNil; }; break; case $kindFunc: typ.zero = function() { return $throwNilPointerError; }; break; case $kindInterface: typ.zero = function() { return $ifaceNil; }; break; case $kindArray: typ.zero = function() { var arrayClass = $nativeArray(typ.elem.kind); if (arrayClass !== Array) { return new arrayClass(typ.len); } var array = new Array(typ.len); for (var i = 0; i < typ.len; i++) { array[i] = typ.elem.zero(); } return array; }; break; case $kindStruct: typ.zero = function() { return new typ.ptr(); }; break; default: $panic(new $String("invalid kind: " + kind)); } typ.id = $typeIDCounter; $typeIDCounter++; typ.size = size; typ.kind = kind; typ.string = string; typ.named = named; typ.pkg = pkg; typ.exported = exported; typ.methods = []; typ.methodSetCache = null; typ.comparable = true; return typ; }; var $methodSet = function(typ) { if (typ.methodSetCache !== null) { return typ.methodSetCache; } var base = {}; var isPtr = (typ.kind === $kindPtr); if (isPtr && typ.elem.kind === $kindInterface) { typ.methodSetCache = []; return []; } var current = [{typ: isPtr ? typ.elem : typ, indirect: isPtr}]; var seen = {}; while (current.length > 0) { var next = []; var mset = []; current.forEach(function(e) { if (seen[e.typ.string]) { return; } seen[e.typ.string] = true; if (e.typ.named) { mset = mset.concat(e.typ.methods); if (e.indirect) { mset = mset.concat($ptrType(e.typ).methods); } } switch (e.typ.kind) { case $kindStruct: e.typ.fields.forEach(function(f) { if (f.anonymous) { var fTyp = f.typ; var fIsPtr = (fTyp.kind === $kindPtr); next.push({typ: fIsPtr ? fTyp.elem : fTyp, indirect: e.indirect || fIsPtr}); } }); break; case $kindInterface: mset = mset.concat(e.typ.methods); break; } }); mset.forEach(function(m) { if (base[m.name] === undefined) { base[m.name] = m; } }); current = next; } typ.methodSetCache = []; Object.keys(base).sort().forEach(function(name) { typ.methodSetCache.push(base[name]); }); return typ.methodSetCache; }; var $Bool = $newType( 1, $kindBool, "bool", true, "", false, null); var $Int = $newType( 4, $kindInt, "int", true, "", false, null); var $Int8 = $newType( 1, $kindInt8, "int8", true, "", false, null); var $Int16 = $newType( 2, $kindInt16, "int16", true, "", false, null); var $Int32 = $newType( 4, $kindInt32, "int32", true, "", false, null); var $Int64 = $newType( 8, $kindInt64, "int64", true, "", false, null); var $Uint = $newType( 4, $kindUint, "uint", true, "", false, null); var $Uint8 = $newType( 1, $kindUint8, "uint8", true, "", false, null); var $Uint16 = $newType( 2, $kindUint16, "uint16", true, "", false, null); var $Uint32 = $newType( 4, $kindUint32, "uint32", true, "", false, null); var $Uint64 = $newType( 8, $kindUint64, "uint64", true, "", false, null); var $Uintptr = $newType( 4, $kindUintptr, "uintptr", true, "", false, null); var $Float32 = $newType( 4, $kindFloat32, "float32", true, "", false, null); var $Float64 = $newType( 8, $kindFloat64, "float64", true, "", false, null); var $Complex64 = $newType( 8, $kindComplex64, "complex64", true, "", false, null); var $Complex128 = $newType(16, $kindComplex128, "complex128", true, "", false, null); var $String = $newType( 8, $kindString, "string", true, "", false, null); var $UnsafePointer = $newType( 4, $kindUnsafePointer, "unsafe.Pointer", true, "", false, null); var $nativeArray = function(elemKind) { switch (elemKind) { case $kindInt: return Int32Array; case $kindInt8: return Int8Array; case $kindInt16: return Int16Array; case $kindInt32: return Int32Array; case $kindUint: return Uint32Array; case $kindUint8: return Uint8Array; case $kindUint16: return Uint16Array; case $kindUint32: return Uint32Array; case $kindUintptr: return Uint32Array; case $kindFloat32: return Float32Array; case $kindFloat64: return Float64Array; default: return Array; } }; var $toNativeArray = function(elemKind, array) { var nativeArray = $nativeArray(elemKind); if (nativeArray === Array) { return array; } return new nativeArray(array); }; var $arrayTypes = {}; var $arrayType = function(elem, len) { var typeKey = elem.id + "$" + len; var typ = $arrayTypes[typeKey]; if (typ === undefined) { typ = $newType(12, $kindArray, "[" + len + "]" + elem.string, false, "", false, null); $arrayTypes[typeKey] = typ; typ.init(elem, len); } return typ; }; var $chanType = function(elem, sendOnly, recvOnly) { var string = (recvOnly ? "<-" : "") + "chan" + (sendOnly ? "<- " : " ") + elem.string; var field = sendOnly ? "SendChan" : (recvOnly ? "RecvChan" : "Chan"); var typ = elem[field]; if (typ === undefined) { typ = $newType(4, $kindChan, string, false, "", false, null); elem[field] = typ; typ.init(elem, sendOnly, recvOnly); } return typ; }; var $Chan = function(elem, capacity) { if (capacity < 0 || capacity > 2147483647) { $throwRuntimeError("makechan: size out of range"); } this.$elem = elem; this.$capacity = capacity; this.$buffer = []; this.$sendQueue = []; this.$recvQueue = []; this.$closed = false; }; var $chanNil = new $Chan(null, 0); $chanNil.$sendQueue = $chanNil.$recvQueue = { length: 0, push: function() {}, shift: function() { return undefined; }, indexOf: function() { return -1; } }; var $funcTypes = {}; var $funcType = function(params, results, variadic) { var typeKey = $mapArray(params, function(p) { return p.id; }).join(",") + "$" + $mapArray(results, function(r) { return r.id; }).join(",") + "$" + variadic; var typ = $funcTypes[typeKey]; if (typ === undefined) { var paramTypes = $mapArray(params, function(p) { return p.string; }); if (variadic) { paramTypes[paramTypes.length - 1] = "..." + paramTypes[paramTypes.length - 1].substr(2); } var string = "func(" + paramTypes.join(", ") + ")"; if (results.length === 1) { string += " " + results[0].string; } else if (results.length > 1) { string += " (" + $mapArray(results, function(r) { return r.string; }).join(", ") + ")"; } typ = $newType(4, $kindFunc, string, false, "", false, null); $funcTypes[typeKey] = typ; typ.init(params, results, variadic); } return typ; }; var $interfaceTypes = {}; var $interfaceType = function(methods) { var typeKey = $mapArray(methods, function(m) { return m.pkg + "," + m.name + "," + m.typ.id; }).join("$"); var typ = $interfaceTypes[typeKey]; if (typ === undefined) { var string = "interface {}"; if (methods.length !== 0) { string = "interface { " + $mapArray(methods, function(m) { return (m.pkg !== "" ? m.pkg + "." : "") + m.name + m.typ.string.substr(4); }).join("; ") + " }"; } typ = $newType(8, $kindInterface, string, false, "", false, null); $interfaceTypes[typeKey] = typ; typ.init(methods); } return typ; }; var $emptyInterface = $interfaceType([]); var $ifaceNil = {}; var $error = $newType(8, $kindInterface, "error", true, "", false, null); $error.init([{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]); var $mapTypes = {}; var $mapType = function(key, elem) { var typeKey = key.id + "$" + elem.id; var typ = $mapTypes[typeKey]; if (typ === undefined) { typ = $newType(4, $kindMap, "map[" + key.string + "]" + elem.string, false, "", false, null); $mapTypes[typeKey] = typ; typ.init(key, elem); } return typ; }; var $makeMap = function(keyForFunc, entries) { var m = {}; for (var i = 0; i < entries.length; i++) { var e = entries[i]; m[keyForFunc(e.k)] = e; } return m; }; var $ptrType = function(elem) { var typ = elem.ptr; if (typ === undefined) { typ = $newType(4, $kindPtr, "*" + elem.string, false, "", elem.exported, null); elem.ptr = typ; typ.init(elem); } return typ; }; var $newDataPointer = function(data, constructor) { if (constructor.elem.kind === $kindStruct) { return data; } return new constructor(function() { return data; }, function(v) { data = v; }); }; var $indexPtr = function(array, index, constructor) { array.$ptr = array.$ptr || {}; return array.$ptr[index] || (array.$ptr[index] = new constructor(function() { return array[index]; }, function(v) { array[index] = v; })); }; var $sliceType = function(elem) { var typ = elem.slice; if (typ === undefined) { typ = $newType(12, $kindSlice, "[]" + elem.string, false, "", false, null); elem.slice = typ; typ.init(elem); } return typ; }; var $makeSlice = function(typ, length, capacity) { capacity = capacity || length; if (length < 0 || length > 2147483647) { $throwRuntimeError("makeslice: len out of range"); } if (capacity < 0 || capacity < length || capacity > 2147483647) { $throwRuntimeError("makeslice: cap out of range"); } var array = new typ.nativeArray(capacity); if (typ.nativeArray === Array) { for (var i = 0; i < capacity; i++) { array[i] = typ.elem.zero(); } } var slice = new typ(array); slice.$length = length; return slice; }; var $structTypes = {}; var $structType = function(pkgPath, fields) { var typeKey = $mapArray(fields, function(f) { return f.name + "," + f.typ.id + "," + f.tag; }).join("$"); var typ = $structTypes[typeKey]; if (typ === undefined) { var string = "struct { " + $mapArray(fields, function(f) { return f.name + " " + f.typ.string + (f.tag !== "" ? (" \"" + f.tag.replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + "\"") : ""); }).join("; ") + " }"; if (fields.length === 0) { string = "struct {}"; } typ = $newType(0, $kindStruct, string, false, "", false, function() { this.$val = this; for (var i = 0; i < fields.length; i++) { var f = fields[i]; var arg = arguments[i]; this[f.prop] = arg !== undefined ? arg : f.typ.zero(); } }); $structTypes[typeKey] = typ; typ.init(pkgPath, fields); } return typ; }; var $assertType = function(value, type, returnTuple) { var isInterface = (type.kind === $kindInterface), ok, missingMethod = ""; if (value === $ifaceNil) { ok = false; } else if (!isInterface) { ok = value.constructor === type; } else { var valueTypeString = value.constructor.string; ok = type.implementedBy[valueTypeString]; if (ok === undefined) { ok = true; var valueMethodSet = $methodSet(value.constructor); var interfaceMethods = type.methods; for (var i = 0; i < interfaceMethods.length; i++) { var tm = interfaceMethods[i]; var found = false; for (var j = 0; j < valueMethodSet.length; j++) { var vm = valueMethodSet[j]; if (vm.name === tm.name && vm.pkg === tm.pkg && vm.typ === tm.typ) { found = true; break; } } if (!found) { ok = false; type.missingMethodFor[valueTypeString] = tm.name; break; } } type.implementedBy[valueTypeString] = ok; } if (!ok) { missingMethod = type.missingMethodFor[valueTypeString]; } } if (!ok) { if (returnTuple) { return [type.zero(), false]; } $panic(new $packages["runtime"].TypeAssertionError.ptr("", (value === $ifaceNil ? "" : value.constructor.string), type.string, missingMethod)); } if (!isInterface) { value = value.$val; } if (type === $jsObjectPtr) { value = value.object; } return returnTuple ? [value, true] : value; }; var $stackDepthOffset = 0; var $getStackDepth = function() { var err = new Error(); if (err.stack === undefined) { return undefined; } return $stackDepthOffset + err.stack.split("\n").length; }; var $panicStackDepth = null, $panicValue; var $callDeferred = function(deferred, jsErr, fromPanic) { if (!fromPanic && deferred !== null && deferred.index >= $curGoroutine.deferStack.length) { throw jsErr; } if (jsErr !== null) { var newErr = null; try { $curGoroutine.deferStack.push(deferred); $panic(new $jsErrorPtr(jsErr)); } catch (err) { newErr = err; } $curGoroutine.deferStack.pop(); $callDeferred(deferred, newErr); return; } if ($curGoroutine.asleep) { return; } $stackDepthOffset--; var outerPanicStackDepth = $panicStackDepth; var outerPanicValue = $panicValue; var localPanicValue = $curGoroutine.panicStack.pop(); if (localPanicValue !== undefined) { $panicStackDepth = $getStackDepth(); $panicValue = localPanicValue; } try { while (true) { if (deferred === null) { deferred = $curGoroutine.deferStack[$curGoroutine.deferStack.length - 1]; if (deferred === undefined) { /* The panic reached the top of the stack. Clear it and throw it as a JavaScript error. */ $panicStackDepth = null; if (localPanicValue.Object instanceof Error) { throw localPanicValue.Object; } var msg; if (localPanicValue.constructor === $String) { msg = localPanicValue.$val; } else if (localPanicValue.Error !== undefined) { msg = localPanicValue.Error(); } else if (localPanicValue.String !== undefined) { msg = localPanicValue.String(); } else { msg = localPanicValue; } throw new Error(msg); } } var call = deferred.pop(); if (call === undefined) { $curGoroutine.deferStack.pop(); if (localPanicValue !== undefined) { deferred = null; continue; } return; } var r = call[0].apply(call[2], call[1]); if (r && r.$blk !== undefined) { deferred.push([r.$blk, [], r]); if (fromPanic) { throw null; } return; } if (localPanicValue !== undefined && $panicStackDepth === null) { throw null; /* error was recovered */ } } } finally { if (localPanicValue !== undefined) { if ($panicStackDepth !== null) { $curGoroutine.panicStack.push(localPanicValue); } $panicStackDepth = outerPanicStackDepth; $panicValue = outerPanicValue; } $stackDepthOffset++; } }; var $panic = function(value) { $curGoroutine.panicStack.push(value); $callDeferred(null, null, true); }; var $recover = function() { if ($panicStackDepth === null || ($panicStackDepth !== undefined && $panicStackDepth !== $getStackDepth() - 2)) { return $ifaceNil; } $panicStackDepth = null; return $panicValue; }; var $throw = function(err) { throw err; }; var $noGoroutine = { asleep: false, exit: false, deferStack: [], panicStack: [] }; var $curGoroutine = $noGoroutine, $totalGoroutines = 0, $awakeGoroutines = 0, $checkForDeadlock = true; var $mainFinished = false; var $go = function(fun, args) { $totalGoroutines++; $awakeGoroutines++; var $goroutine = function() { try { $curGoroutine = $goroutine; var r = fun.apply(undefined, args); if (r && r.$blk !== undefined) { fun = function() { return r.$blk(); }; args = []; return; } $goroutine.exit = true; } catch (err) { if (!$goroutine.exit) { throw err; } } finally { $curGoroutine = $noGoroutine; if ($goroutine.exit) { /* also set by runtime.Goexit() */ $totalGoroutines--; $goroutine.asleep = true; } if ($goroutine.asleep) { $awakeGoroutines--; if (!$mainFinished && $awakeGoroutines === 0 && $checkForDeadlock) { console.error("fatal error: all goroutines are asleep - deadlock!"); if ($global.process !== undefined) { $global.process.exit(2); } } } } }; $goroutine.asleep = false; $goroutine.exit = false; $goroutine.deferStack = []; $goroutine.panicStack = []; $schedule($goroutine); }; var $scheduled = []; var $runScheduled = function() { try { var r; while ((r = $scheduled.shift()) !== undefined) { r(); } } finally { if ($scheduled.length > 0) { setTimeout($runScheduled, 0); } } }; var $schedule = function(goroutine) { if (goroutine.asleep) { goroutine.asleep = false; $awakeGoroutines++; } $scheduled.push(goroutine); if ($curGoroutine === $noGoroutine) { $runScheduled(); } }; var $setTimeout = function(f, t) { $awakeGoroutines++; return setTimeout(function() { $awakeGoroutines--; f(); }, t); }; var $block = function() { if ($curGoroutine === $noGoroutine) { $throwRuntimeError("cannot block in JavaScript callback, fix by wrapping code in goroutine"); } $curGoroutine.asleep = true; }; var $send = function(chan, value) { if (chan.$closed) { $throwRuntimeError("send on closed channel"); } var queuedRecv = chan.$recvQueue.shift(); if (queuedRecv !== undefined) { queuedRecv([value, true]); return; } if (chan.$buffer.length < chan.$capacity) { chan.$buffer.push(value); return; } var thisGoroutine = $curGoroutine; var closedDuringSend; chan.$sendQueue.push(function(closed) { closedDuringSend = closed; $schedule(thisGoroutine); return value; }); $block(); return { $blk: function() { if (closedDuringSend) { $throwRuntimeError("send on closed channel"); } } }; }; var $recv = function(chan) { var queuedSend = chan.$sendQueue.shift(); if (queuedSend !== undefined) { chan.$buffer.push(queuedSend(false)); } var bufferedValue = chan.$buffer.shift(); if (bufferedValue !== undefined) { return [bufferedValue, true]; } if (chan.$closed) { return [chan.$elem.zero(), false]; } var thisGoroutine = $curGoroutine; var f = { $blk: function() { return this.value; } }; var queueEntry = function(v) { f.value = v; $schedule(thisGoroutine); }; chan.$recvQueue.push(queueEntry); $block(); return f; }; var $close = function(chan) { if (chan.$closed) { $throwRuntimeError("close of closed channel"); } chan.$closed = true; while (true) { var queuedSend = chan.$sendQueue.shift(); if (queuedSend === undefined) { break; } queuedSend(true); /* will panic */ } while (true) { var queuedRecv = chan.$recvQueue.shift(); if (queuedRecv === undefined) { break; } queuedRecv([chan.$elem.zero(), false]); } }; var $select = function(comms) { var ready = []; var selection = -1; for (var i = 0; i < comms.length; i++) { var comm = comms[i]; var chan = comm[0]; switch (comm.length) { case 0: /* default */ selection = i; break; case 1: /* recv */ if (chan.$sendQueue.length !== 0 || chan.$buffer.length !== 0 || chan.$closed) { ready.push(i); } break; case 2: /* send */ if (chan.$closed) { $throwRuntimeError("send on closed channel"); } if (chan.$recvQueue.length !== 0 || chan.$buffer.length < chan.$capacity) { ready.push(i); } break; } } if (ready.length !== 0) { selection = ready[Math.floor(Math.random() * ready.length)]; } if (selection !== -1) { var comm = comms[selection]; switch (comm.length) { case 0: /* default */ return [selection]; case 1: /* recv */ return [selection, $recv(comm[0])]; case 2: /* send */ $send(comm[0], comm[1]); return [selection]; } } var entries = []; var thisGoroutine = $curGoroutine; var f = { $blk: function() { return this.selection; } }; var removeFromQueues = function() { for (var i = 0; i < entries.length; i++) { var entry = entries[i]; var queue = entry[0]; var index = queue.indexOf(entry[1]); if (index !== -1) { queue.splice(index, 1); } } }; for (var i = 0; i < comms.length; i++) { (function(i) { var comm = comms[i]; switch (comm.length) { case 1: /* recv */ var queueEntry = function(value) { f.selection = [i, value]; removeFromQueues(); $schedule(thisGoroutine); }; entries.push([comm[0].$recvQueue, queueEntry]); comm[0].$recvQueue.push(queueEntry); break; case 2: /* send */ var queueEntry = function() { if (comm[0].$closed) { $throwRuntimeError("send on closed channel"); } f.selection = [i]; removeFromQueues(); $schedule(thisGoroutine); return comm[1]; }; entries.push([comm[0].$sendQueue, queueEntry]); comm[0].$sendQueue.push(queueEntry); break; } })(i); } $block(); return f; }; var $jsObjectPtr, $jsErrorPtr; var $needsExternalization = function(t) { switch (t.kind) { case $kindBool: case $kindInt: case $kindInt8: case $kindInt16: case $kindInt32: case $kindUint: case $kindUint8: case $kindUint16: case $kindUint32: case $kindUintptr: case $kindFloat32: case $kindFloat64: return false; default: return t !== $jsObjectPtr; } }; var $externalize = function(v, t) { if (t === $jsObjectPtr) { return v; } switch (t.kind) { case $kindBool: case $kindInt: case $kindInt8: case $kindInt16: case $kindInt32: case $kindUint: case $kindUint8: case $kindUint16: case $kindUint32: case $kindUintptr: case $kindFloat32: case $kindFloat64: return v; case $kindInt64: case $kindUint64: return $flatten64(v); case $kindArray: if ($needsExternalization(t.elem)) { return $mapArray(v, function(e) { return $externalize(e, t.elem); }); } return v; case $kindFunc: return $externalizeFunction(v, t, false); case $kindInterface: if (v === $ifaceNil) { return null; } if (v.constructor === $jsObjectPtr) { return v.$val.object; } return $externalize(v.$val, v.constructor); case $kindMap: var m = {}; var keys = $keys(v); for (var i = 0; i < keys.length; i++) { var entry = v[keys[i]]; m[$externalize(entry.k, t.key)] = $externalize(entry.v, t.elem); } return m; case $kindPtr: if (v === t.nil) { return null; } return $externalize(v.$get(), t.elem); case $kindSlice: if ($needsExternalization(t.elem)) { return $mapArray($sliceToArray(v), function(e) { return $externalize(e, t.elem); }); } return $sliceToArray(v); case $kindString: if ($isASCII(v)) { return v; } var s = "", r; for (var i = 0; i < v.length; i += r[1]) { r = $decodeRune(v, i); var c = r[0]; if (c > 0xFFFF) { var h = Math.floor((c - 0x10000) / 0x400) + 0xD800; var l = (c - 0x10000) % 0x400 + 0xDC00; s += String.fromCharCode(h, l); continue; } s += String.fromCharCode(c); } return s; case $kindStruct: var timePkg = $packages["time"]; if (timePkg !== undefined && v.constructor === timePkg.Time.ptr) { var milli = $div64(v.UnixNano(), new $Int64(0, 1000000)); return new Date($flatten64(milli)); } var noJsObject = {}; var searchJsObject = function(v, t) { if (t === $jsObjectPtr) { return v; } switch (t.kind) { case $kindPtr: if (v === t.nil) { return noJsObject; } return searchJsObject(v.$get(), t.elem); case $kindStruct: var f = t.fields[0]; return searchJsObject(v[f.prop], f.typ); case $kindInterface: return searchJsObject(v.$val, v.constructor); default: return noJsObject; } }; var o = searchJsObject(v, t); if (o !== noJsObject) { return o; } o = {}; for (var i = 0; i < t.fields.length; i++) { var f = t.fields[i]; if (!f.exported) { continue; } o[f.name] = $externalize(v[f.prop], f.typ); } return o; } $throwRuntimeError("cannot externalize " + t.string); }; var $externalizeFunction = function(v, t, passThis) { if (v === $throwNilPointerError) { return null; } if (v.$externalizeWrapper === undefined) { $checkForDeadlock = false; v.$externalizeWrapper = function() { var args = []; for (var i = 0; i < t.params.length; i++) { if (t.variadic && i === t.params.length - 1) { var vt = t.params[i].elem, varargs = []; for (var j = i; j < arguments.length; j++) { varargs.push($internalize(arguments[j], vt)); } args.push(new (t.params[i])(varargs)); break; } args.push($internalize(arguments[i], t.params[i])); } var result = v.apply(passThis ? this : undefined, args); switch (t.results.length) { case 0: return; case 1: return $externalize(result, t.results[0]); default: for (var i = 0; i < t.results.length; i++) { result[i] = $externalize(result[i], t.results[i]); } return result; } }; } return v.$externalizeWrapper; }; var $internalize = function(v, t, recv) { if (t === $jsObjectPtr) { return v; } if (t === $jsObjectPtr.elem) { $throwRuntimeError("cannot internalize js.Object, use *js.Object instead"); } if (v && v.__internal_object__ !== undefined) { return $assertType(v.__internal_object__, t, false); } var timePkg = $packages["time"]; if (timePkg !== undefined && t === timePkg.Time) { if (!(v !== null && v !== undefined && v.constructor === Date)) { $throwRuntimeError("cannot internalize time.Time from " + typeof v + ", must be Date"); } return timePkg.Unix(new $Int64(0, 0), new $Int64(0, v.getTime() * 1000000)); } switch (t.kind) { case $kindBool: return !!v; case $kindInt: return parseInt(v); case $kindInt8: return parseInt(v) << 24 >> 24; case $kindInt16: return parseInt(v) << 16 >> 16; case $kindInt32: return parseInt(v) >> 0; case $kindUint: return parseInt(v); case $kindUint8: return parseInt(v) << 24 >>> 24; case $kindUint16: return parseInt(v) << 16 >>> 16; case $kindUint32: case $kindUintptr: return parseInt(v) >>> 0; case $kindInt64: case $kindUint64: return new t(0, v); case $kindFloat32: case $kindFloat64: return parseFloat(v); case $kindArray: if (v.length !== t.len) { $throwRuntimeError("got array with wrong size from JavaScript native"); } return $mapArray(v, function(e) { return $internalize(e, t.elem); }); case $kindFunc: return function() { var args = []; for (var i = 0; i < t.params.length; i++) { if (t.variadic && i === t.params.length - 1) { var vt = t.params[i].elem, varargs = arguments[i]; for (var j = 0; j < varargs.$length; j++) { args.push($externalize(varargs.$array[varargs.$offset + j], vt)); } break; } args.push($externalize(arguments[i], t.params[i])); } var result = v.apply(recv, args); switch (t.results.length) { case 0: return; case 1: return $internalize(result, t.results[0]); default: for (var i = 0; i < t.results.length; i++) { result[i] = $internalize(result[i], t.results[i]); } return result; } }; case $kindInterface: if (t.methods.length !== 0) { $throwRuntimeError("cannot internalize " + t.string); } if (v === null) { return $ifaceNil; } if (v === undefined) { return new $jsObjectPtr(undefined); } switch (v.constructor) { case Int8Array: return new ($sliceType($Int8))(v); case Int16Array: return new ($sliceType($Int16))(v); case Int32Array: return new ($sliceType($Int))(v); case Uint8Array: return new ($sliceType($Uint8))(v); case Uint16Array: return new ($sliceType($Uint16))(v); case Uint32Array: return new ($sliceType($Uint))(v); case Float32Array: return new ($sliceType($Float32))(v); case Float64Array: return new ($sliceType($Float64))(v); case Array: return $internalize(v, $sliceType($emptyInterface)); case Boolean: return new $Bool(!!v); case Date: if (timePkg === undefined) { /* time package is not present, internalize as &js.Object{Date} so it can be externalized into original Date. */ return new $jsObjectPtr(v); } return new timePkg.Time($internalize(v, timePkg.Time)); case Function: var funcType = $funcType([$sliceType($emptyInterface)], [$jsObjectPtr], true); return new funcType($internalize(v, funcType)); case Number: return new $Float64(parseFloat(v)); case String: return new $String($internalize(v, $String)); default: if ($global.Node && v instanceof $global.Node) { return new $jsObjectPtr(v); } var mapType = $mapType($String, $emptyInterface); return new mapType($internalize(v, mapType)); } case $kindMap: var m = {}; var keys = $keys(v); for (var i = 0; i < keys.length; i++) { var k = $internalize(keys[i], t.key); m[t.key.keyFor(k)] = { k: k, v: $internalize(v[keys[i]], t.elem) }; } return m; case $kindPtr: if (t.elem.kind === $kindStruct) { return $internalize(v, t.elem); } case $kindSlice: return new t($mapArray(v, function(e) { return $internalize(e, t.elem); })); case $kindString: v = String(v); if ($isASCII(v)) { return v; } var s = ""; var i = 0; while (i < v.length) { var h = v.charCodeAt(i); if (0xD800 <= h && h <= 0xDBFF) { var l = v.charCodeAt(i + 1); var c = (h - 0xD800) * 0x400 + l - 0xDC00 + 0x10000; s += $encodeRune(c); i += 2; continue; } s += $encodeRune(h); i++; } return s; case $kindStruct: var noJsObject = {}; var searchJsObject = function(t) { if (t === $jsObjectPtr) { return v; } if (t === $jsObjectPtr.elem) { $throwRuntimeError("cannot internalize js.Object, use *js.Object instead"); } switch (t.kind) { case $kindPtr: return searchJsObject(t.elem); case $kindStruct: var f = t.fields[0]; var o = searchJsObject(f.typ); if (o !== noJsObject) { var n = new t.ptr(); n[f.prop] = o; return n; } return noJsObject; default: return noJsObject; } }; var o = searchJsObject(t); if (o !== noJsObject) { return o; } } $throwRuntimeError("cannot internalize " + t.string); }; /* $isASCII reports whether string s contains only ASCII characters. */ var $isASCII = function(s) { for (var i = 0; i < s.length; i++) { if (s.charCodeAt(i) >= 128) { return false; } } return true; }; $packages["github.com/gopherjs/gopherjs/js"] = (function() { var $pkg = {}, $init, Object, Error, sliceType, ptrType, ptrType$1, MakeFunc, init; Object = $pkg.Object = $newType(0, $kindStruct, "js.Object", true, "github.com/gopherjs/gopherjs/js", true, function(object_) { this.$val = this; if (arguments.length === 0) { this.object = null; return; } this.object = object_; }); Error = $pkg.Error = $newType(0, $kindStruct, "js.Error", true, "github.com/gopherjs/gopherjs/js", true, function(Object_) { this.$val = this; if (arguments.length === 0) { this.Object = null; return; } this.Object = Object_; }); sliceType = $sliceType($emptyInterface); ptrType = $ptrType(Object); ptrType$1 = $ptrType(Error); Object.ptr.prototype.Get = function(key) { var key, o; o = this; return o.object[$externalize(key, $String)]; }; Object.prototype.Get = function(key) { return this.$val.Get(key); }; Object.ptr.prototype.Set = function(key, value) { var key, o, value; o = this; o.object[$externalize(key, $String)] = $externalize(value, $emptyInterface); }; Object.prototype.Set = function(key, value) { return this.$val.Set(key, value); }; Object.ptr.prototype.Delete = function(key) { var key, o; o = this; delete o.object[$externalize(key, $String)]; }; Object.prototype.Delete = function(key) { return this.$val.Delete(key); }; Object.ptr.prototype.Length = function() { var o; o = this; return $parseInt(o.object.length); }; Object.prototype.Length = function() { return this.$val.Length(); }; Object.ptr.prototype.Index = function(i) { var i, o; o = this; return o.object[i]; }; Object.prototype.Index = function(i) { return this.$val.Index(i); }; Object.ptr.prototype.SetIndex = function(i, value) { var i, o, value; o = this; o.object[i] = $externalize(value, $emptyInterface); }; Object.prototype.SetIndex = function(i, value) { return this.$val.SetIndex(i, value); }; Object.ptr.prototype.Call = function(name, args) { var args, name, o, obj; o = this; return (obj = o.object, obj[$externalize(name, $String)].apply(obj, $externalize(args, sliceType))); }; Object.prototype.Call = function(name, args) { return this.$val.Call(name, args); }; Object.ptr.prototype.Invoke = function(args) { var args, o; o = this; return o.object.apply(undefined, $externalize(args, sliceType)); }; Object.prototype.Invoke = function(args) { return this.$val.Invoke(args); }; Object.ptr.prototype.New = function(args) { var args, o; o = this; return new ($global.Function.prototype.bind.apply(o.object, [undefined].concat($externalize(args, sliceType)))); }; Object.prototype.New = function(args) { return this.$val.New(args); }; Object.ptr.prototype.Bool = function() { var o; o = this; return !!(o.object); }; Object.prototype.Bool = function() { return this.$val.Bool(); }; Object.ptr.prototype.String = function() { var o; o = this; return $internalize(o.object, $String); }; Object.prototype.String = function() { return this.$val.String(); }; Object.ptr.prototype.Int = function() { var o; o = this; return $parseInt(o.object) >> 0; }; Object.prototype.Int = function() { return this.$val.Int(); }; Object.ptr.prototype.Int64 = function() { var o; o = this; return $internalize(o.object, $Int64); }; Object.prototype.Int64 = function() { return this.$val.Int64(); }; Object.ptr.prototype.Uint64 = function() { var o; o = this; return $internalize(o.object, $Uint64); }; Object.prototype.Uint64 = function() { return this.$val.Uint64(); }; Object.ptr.prototype.Float = function() { var o; o = this; return $parseFloat(o.object); }; Object.prototype.Float = function() { return this.$val.Float(); }; Object.ptr.prototype.Interface = function() { var o; o = this; return $internalize(o.object, $emptyInterface); }; Object.prototype.Interface = function() { return this.$val.Interface(); }; Object.ptr.prototype.Unsafe = function() { var o; o = this; return o.object; }; Object.prototype.Unsafe = function() { return this.$val.Unsafe(); }; Error.ptr.prototype.Error = function() { var err; err = this; return "JavaScript error: " + $internalize(err.Object.message, $String); }; Error.prototype.Error = function() { return this.$val.Error(); }; Error.ptr.prototype.Stack = function() { var err; err = this; return $internalize(err.Object.stack, $String); }; Error.prototype.Stack = function() { return this.$val.Stack(); }; MakeFunc = function(fn) { var fn; return $makeFunc(fn); }; $pkg.MakeFunc = MakeFunc; init = function() { var e; e = new Error.ptr(null); $unused(e); }; ptrType.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [ptrType], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "SetIndex", name: "SetIndex", pkg: "", typ: $funcType([$Int, $emptyInterface], [], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType], [ptrType], true)}, {prop: "Invoke", name: "Invoke", pkg: "", typ: $funcType([sliceType], [ptrType], true)}, {prop: "New", name: "New", pkg: "", typ: $funcType([sliceType], [ptrType], true)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Unsafe", name: "Unsafe", pkg: "", typ: $funcType([], [$Uintptr], false)}]; ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Stack", name: "Stack", pkg: "", typ: $funcType([], [$String], false)}]; Object.init("github.com/gopherjs/gopherjs/js", [{prop: "object", name: "object", anonymous: false, exported: false, typ: ptrType, tag: ""}]); Error.init("", [{prop: "Object", name: "Object", anonymous: true, exported: true, typ: ptrType, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: init(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["runtime/internal/sys"] = (function() { var $pkg = {}, $init; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["runtime"] = (function() { var $pkg = {}, $init, js, sys, Func, TypeAssertionError, errorString, ptrType, structType, ptrType$4, init, Goexit, GOMAXPROCS, SetFinalizer, FuncForPC, KeepAlive, throw$1; js = $packages["github.com/gopherjs/gopherjs/js"]; sys = $packages["runtime/internal/sys"]; Func = $pkg.Func = $newType(0, $kindStruct, "runtime.Func", true, "runtime", true, function(opaque_) { this.$val = this; if (arguments.length === 0) { this.opaque = new structType.ptr(); return; } this.opaque = opaque_; }); TypeAssertionError = $pkg.TypeAssertionError = $newType(0, $kindStruct, "runtime.TypeAssertionError", true, "runtime", true, function(interfaceString_, concreteString_, assertedString_, missingMethod_) { this.$val = this; if (arguments.length === 0) { this.interfaceString = ""; this.concreteString = ""; this.assertedString = ""; this.missingMethod = ""; return; } this.interfaceString = interfaceString_; this.concreteString = concreteString_; this.assertedString = assertedString_; this.missingMethod = missingMethod_; }); errorString = $pkg.errorString = $newType(8, $kindString, "runtime.errorString", true, "runtime", false, null); ptrType = $ptrType(Func); structType = $structType("", []); ptrType$4 = $ptrType(TypeAssertionError); init = function() { var e, jsPkg; jsPkg = $packages[$externalize("github.com/gopherjs/gopherjs/js", $String)]; $jsObjectPtr = jsPkg.Object.ptr; $jsErrorPtr = jsPkg.Error.ptr; $throwRuntimeError = throw$1; e = $ifaceNil; e = new TypeAssertionError.ptr("", "", "", ""); $unused(e); }; Goexit = function() { $curGoroutine.exit = $externalize(true, $Bool); $throw(null); }; $pkg.Goexit = Goexit; GOMAXPROCS = function(n) { var n; return 1; }; $pkg.GOMAXPROCS = GOMAXPROCS; SetFinalizer = function(x, f) { var f, x; }; $pkg.SetFinalizer = SetFinalizer; Func.ptr.prototype.Entry = function() { return 0; }; Func.prototype.Entry = function() { return this.$val.Entry(); }; Func.ptr.prototype.FileLine = function(pc) { var _tmp, _tmp$1, file, line, pc; file = ""; line = 0; _tmp = ""; _tmp$1 = 0; file = _tmp; line = _tmp$1; return [file, line]; }; Func.prototype.FileLine = function(pc) { return this.$val.FileLine(pc); }; Func.ptr.prototype.Name = function() { return ""; }; Func.prototype.Name = function() { return this.$val.Name(); }; FuncForPC = function(pc) { var pc; return ptrType.nil; }; $pkg.FuncForPC = FuncForPC; KeepAlive = function(param) { var param; }; $pkg.KeepAlive = KeepAlive; throw$1 = function(s) { var s; $panic(new errorString((s))); }; TypeAssertionError.ptr.prototype.RuntimeError = function() { }; TypeAssertionError.prototype.RuntimeError = function() { return this.$val.RuntimeError(); }; TypeAssertionError.ptr.prototype.Error = function() { var e, inter; e = this; inter = e.interfaceString; if (inter === "") { inter = "interface"; } if (e.concreteString === "") { return "interface conversion: " + inter + " is nil, not " + e.assertedString; } if (e.missingMethod === "") { return "interface conversion: " + inter + " is " + e.concreteString + ", not " + e.assertedString; } return "interface conversion: " + e.concreteString + " is not " + e.assertedString + ": missing method " + e.missingMethod; }; TypeAssertionError.prototype.Error = function() { return this.$val.Error(); }; errorString.prototype.RuntimeError = function() { var e; e = this.$val; }; $ptrType(errorString).prototype.RuntimeError = function() { return new errorString(this.$get()).RuntimeError(); }; errorString.prototype.Error = function() { var e; e = this.$val; return "runtime error: " + (e); }; $ptrType(errorString).prototype.Error = function() { return new errorString(this.$get()).Error(); }; ptrType.methods = [{prop: "Entry", name: "Entry", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "FileLine", name: "FileLine", pkg: "", typ: $funcType([$Uintptr], [$String, $Int], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$4.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; errorString.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; Func.init("runtime", [{prop: "opaque", name: "opaque", anonymous: false, exported: false, typ: structType, tag: ""}]); TypeAssertionError.init("runtime", [{prop: "interfaceString", name: "interfaceString", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "concreteString", name: "concreteString", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "assertedString", name: "assertedString", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "missingMethod", name: "missingMethod", anonymous: false, exported: false, typ: $String, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = sys.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } init(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["errors"] = (function() { var $pkg = {}, $init, errorString, ptrType, New; errorString = $pkg.errorString = $newType(0, $kindStruct, "errors.errorString", true, "errors", false, function(s_) { this.$val = this; if (arguments.length === 0) { this.s = ""; return; } this.s = s_; }); ptrType = $ptrType(errorString); New = function(text) { var text; return new errorString.ptr(text); }; $pkg.New = New; errorString.ptr.prototype.Error = function() { var e; e = this; return e.s; }; errorString.prototype.Error = function() { return this.$val.Error(); }; ptrType.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; errorString.init("errors", [{prop: "s", name: "s", anonymous: false, exported: false, typ: $String, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["internal/race"] = (function() { var $pkg = {}, $init, Acquire, Release, ReleaseMerge, ReadRange, WriteRange; Acquire = function(addr) { var addr; }; $pkg.Acquire = Acquire; Release = function(addr) { var addr; }; $pkg.Release = Release; ReleaseMerge = function(addr) { var addr; }; $pkg.ReleaseMerge = ReleaseMerge; ReadRange = function(addr, len) { var addr, len; }; $pkg.ReadRange = ReadRange; WriteRange = function(addr, len) { var addr, len; }; $pkg.WriteRange = WriteRange; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["sync/atomic"] = (function() { var $pkg = {}, $init, js, Value, noCopy, ptrType, ptrType$1, CompareAndSwapInt32, CompareAndSwapUint64, CompareAndSwapPointer, AddInt32, LoadUint64, LoadPointer, StorePointer; js = $packages["github.com/gopherjs/gopherjs/js"]; Value = $pkg.Value = $newType(0, $kindStruct, "atomic.Value", true, "sync/atomic", true, function(noCopy_, v_) { this.$val = this; if (arguments.length === 0) { this.noCopy = new noCopy.ptr(); this.v = $ifaceNil; return; } this.noCopy = noCopy_; this.v = v_; }); noCopy = $pkg.noCopy = $newType(0, $kindStruct, "atomic.noCopy", true, "sync/atomic", false, function() { this.$val = this; if (arguments.length === 0) { return; } }); ptrType = $ptrType(Value); ptrType$1 = $ptrType(noCopy); CompareAndSwapInt32 = function(addr, old, new$1) { var addr, new$1, old; if (addr.$get() === old) { addr.$set(new$1); return true; } return false; }; $pkg.CompareAndSwapInt32 = CompareAndSwapInt32; CompareAndSwapUint64 = function(addr, old, new$1) { var addr, new$1, old, x; if ((x = addr.$get(), (x.$high === old.$high && x.$low === old.$low))) { addr.$set(new$1); return true; } return false; }; $pkg.CompareAndSwapUint64 = CompareAndSwapUint64; CompareAndSwapPointer = function(addr, old, new$1) { var addr, new$1, old; if (addr.$get() === old) { addr.$set(new$1); return true; } return false; }; $pkg.CompareAndSwapPointer = CompareAndSwapPointer; AddInt32 = function(addr, delta) { var addr, delta, new$1; new$1 = addr.$get() + delta >> 0; addr.$set(new$1); return new$1; }; $pkg.AddInt32 = AddInt32; LoadUint64 = function(addr) { var addr; return addr.$get(); }; $pkg.LoadUint64 = LoadUint64; LoadPointer = function(addr) { var addr; return addr.$get(); }; $pkg.LoadPointer = LoadPointer; StorePointer = function(addr, val) { var addr, val; addr.$set(val); }; $pkg.StorePointer = StorePointer; Value.ptr.prototype.Load = function() { var v, x; x = $ifaceNil; v = this; x = v.v; return x; }; Value.prototype.Load = function() { return this.$val.Load(); }; Value.ptr.prototype.Store = function(x) { var v, x; v = this; if ($interfaceIsEqual(x, $ifaceNil)) { $panic(new $String("sync/atomic: store of nil value into Value")); } if (!($interfaceIsEqual(v.v, $ifaceNil)) && !(x.constructor === v.v.constructor)) { $panic(new $String("sync/atomic: store of inconsistently typed value into Value")); } v.v = x; }; Value.prototype.Store = function(x) { return this.$val.Store(x); }; noCopy.ptr.prototype.Lock = function() { }; noCopy.prototype.Lock = function() { return this.$val.Lock(); }; ptrType.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface], [], false)}]; ptrType$1.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}]; Value.init("sync/atomic", [{prop: "noCopy", name: "noCopy", anonymous: false, exported: false, typ: noCopy, tag: ""}, {prop: "v", name: "v", anonymous: false, exported: false, typ: $emptyInterface, tag: ""}]); noCopy.init("", []); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["sync"] = (function() { var $pkg = {}, $init, js, race, runtime, atomic, Pool, Map, readOnly, entry, Mutex, poolLocalInternal, poolLocal, notifyList, ptrType, sliceType, ptrType$1, chanType, sliceType$1, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, sliceType$4, funcType, funcType$1, ptrType$15, mapType, ptrType$16, arrayType$2, semWaiters, semAwoken, expunged, allPools, runtime_registerPoolCleanup, runtime_SemacquireMutex, runtime_Semrelease, runtime_notifyListCheck, runtime_canSpin, runtime_nanotime, newEntry, poolCleanup, init, indexLocal, init$1, runtime_doSpin; js = $packages["github.com/gopherjs/gopherjs/js"]; race = $packages["internal/race"]; runtime = $packages["runtime"]; atomic = $packages["sync/atomic"]; Pool = $pkg.Pool = $newType(0, $kindStruct, "sync.Pool", true, "sync", true, function(local_, localSize_, store_, New_) { this.$val = this; if (arguments.length === 0) { this.local = 0; this.localSize = 0; this.store = sliceType$4.nil; this.New = $throwNilPointerError; return; } this.local = local_; this.localSize = localSize_; this.store = store_; this.New = New_; }); Map = $pkg.Map = $newType(0, $kindStruct, "sync.Map", true, "sync", true, function(mu_, read_, dirty_, misses_) { this.$val = this; if (arguments.length === 0) { this.mu = new Mutex.ptr(0, 0); this.read = new atomic.Value.ptr(new atomic.noCopy.ptr(), $ifaceNil); this.dirty = false; this.misses = 0; return; } this.mu = mu_; this.read = read_; this.dirty = dirty_; this.misses = misses_; }); readOnly = $pkg.readOnly = $newType(0, $kindStruct, "sync.readOnly", true, "sync", false, function(m_, amended_) { this.$val = this; if (arguments.length === 0) { this.m = false; this.amended = false; return; } this.m = m_; this.amended = amended_; }); entry = $pkg.entry = $newType(0, $kindStruct, "sync.entry", true, "sync", false, function(p_) { this.$val = this; if (arguments.length === 0) { this.p = 0; return; } this.p = p_; }); Mutex = $pkg.Mutex = $newType(0, $kindStruct, "sync.Mutex", true, "sync", true, function(state_, sema_) { this.$val = this; if (arguments.length === 0) { this.state = 0; this.sema = 0; return; } this.state = state_; this.sema = sema_; }); poolLocalInternal = $pkg.poolLocalInternal = $newType(0, $kindStruct, "sync.poolLocalInternal", true, "sync", false, function(private$0_, shared_, Mutex_) { this.$val = this; if (arguments.length === 0) { this.private$0 = $ifaceNil; this.shared = sliceType$4.nil; this.Mutex = new Mutex.ptr(0, 0); return; } this.private$0 = private$0_; this.shared = shared_; this.Mutex = Mutex_; }); poolLocal = $pkg.poolLocal = $newType(0, $kindStruct, "sync.poolLocal", true, "sync", false, function(poolLocalInternal_, pad_) { this.$val = this; if (arguments.length === 0) { this.poolLocalInternal = new poolLocalInternal.ptr($ifaceNil, sliceType$4.nil, new Mutex.ptr(0, 0)); this.pad = arrayType$2.zero(); return; } this.poolLocalInternal = poolLocalInternal_; this.pad = pad_; }); notifyList = $pkg.notifyList = $newType(0, $kindStruct, "sync.notifyList", true, "sync", false, function(wait_, notify_, lock_, head_, tail_) { this.$val = this; if (arguments.length === 0) { this.wait = 0; this.notify = 0; this.lock = 0; this.head = 0; this.tail = 0; return; } this.wait = wait_; this.notify = notify_; this.lock = lock_; this.head = head_; this.tail = tail_; }); ptrType = $ptrType(Pool); sliceType = $sliceType(ptrType); ptrType$1 = $ptrType($Uint32); chanType = $chanType($Bool, false, false); sliceType$1 = $sliceType(chanType); ptrType$3 = $ptrType($emptyInterface); ptrType$4 = $ptrType(entry); ptrType$5 = $ptrType($UnsafePointer); ptrType$6 = $ptrType($Int32); ptrType$7 = $ptrType(poolLocal); sliceType$4 = $sliceType($emptyInterface); funcType = $funcType([], [$emptyInterface], false); funcType$1 = $funcType([$emptyInterface, $emptyInterface], [$Bool], false); ptrType$15 = $ptrType(Map); mapType = $mapType($emptyInterface, ptrType$4); ptrType$16 = $ptrType(Mutex); arrayType$2 = $arrayType($Uint8, 100); Pool.ptr.prototype.Get = function() { var _r, p, x, x$1, x$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; /* */ if (p.store.$length === 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if (p.store.$length === 0) { */ case 1: /* */ if (!(p.New === $throwNilPointerError)) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!(p.New === $throwNilPointerError)) { */ case 3: _r = p.New(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* } */ case 4: $s = -1; return $ifaceNil; /* } */ case 2: x$2 = (x = p.store, x$1 = p.store.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); p.store = $subslice(p.store, 0, (p.store.$length - 1 >> 0)); $s = -1; return x$2; /* */ } return; } if ($f === undefined) { $f = { $blk: Pool.ptr.prototype.Get }; } $f._r = _r; $f.p = p; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; }; Pool.prototype.Get = function() { return this.$val.Get(); }; Pool.ptr.prototype.Put = function(x) { var p, x; p = this; if ($interfaceIsEqual(x, $ifaceNil)) { return; } p.store = $append(p.store, x); }; Pool.prototype.Put = function(x) { return this.$val.Put(x); }; runtime_registerPoolCleanup = function(cleanup) { var cleanup; }; runtime_SemacquireMutex = function(s, lifo) { var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _key$1, _key$2, _r, ch, lifo, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _entry$4 = $f._entry$4; _key = $f._key; _key$1 = $f._key$1; _key$2 = $f._key$2; _r = $f._r; ch = $f.ch; lifo = $f.lifo; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: /* */ if (((s.$get() - (_entry = semAwoken[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if (((s.$get() - (_entry = semAwoken[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { */ case 1: ch = new $Chan($Bool, 0); if (lifo) { _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: $appendSlice(new sliceType$1([ch]), (_entry$1 = semWaiters[ptrType$1.keyFor(s)], _entry$1 !== undefined ? _entry$1.v : sliceType$1.nil)) }; } else { _key$1 = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$1)] = { k: _key$1, v: $append((_entry$2 = semWaiters[ptrType$1.keyFor(s)], _entry$2 !== undefined ? _entry$2.v : sliceType$1.nil), ch) }; } _r = $recv(ch); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r[0]; _key$2 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$2)] = { k: _key$2, v: (_entry$3 = semAwoken[ptrType$1.keyFor(s)], _entry$3 !== undefined ? _entry$3.v : 0) - (1) >>> 0 }; if ((_entry$4 = semAwoken[ptrType$1.keyFor(s)], _entry$4 !== undefined ? _entry$4.v : 0) === 0) { delete semAwoken[ptrType$1.keyFor(s)]; } /* } */ case 2: s.$set(s.$get() - (1) >>> 0); $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_SemacquireMutex }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._entry$4 = _entry$4; $f._key = _key; $f._key$1 = _key$1; $f._key$2 = _key$2; $f._r = _r; $f.ch = ch; $f.lifo = lifo; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; runtime_Semrelease = function(s, handoff) { var _entry, _entry$1, _key, _key$1, ch, handoff, s, w, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _key = $f._key; _key$1 = $f._key$1; ch = $f.ch; handoff = $f.handoff; s = $f.s; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: s.$set(s.$get() + (1) >>> 0); w = (_entry = semWaiters[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : sliceType$1.nil); if (w.$length === 0) { $s = -1; return; } ch = (0 >= w.$length ? ($throwRuntimeError("index out of range"), undefined) : w.$array[w.$offset + 0]); w = $subslice(w, 1); _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: w }; if (w.$length === 0) { delete semWaiters[ptrType$1.keyFor(s)]; } _key$1 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$1)] = { k: _key$1, v: (_entry$1 = semAwoken[ptrType$1.keyFor(s)], _entry$1 !== undefined ? _entry$1.v : 0) + (1) >>> 0 }; $r = $send(ch, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_Semrelease }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._key = _key; $f._key$1 = _key$1; $f.ch = ch; $f.handoff = handoff; $f.s = s; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; }; runtime_notifyListCheck = function(size) { var size; }; runtime_canSpin = function(i) { var i; return false; }; runtime_nanotime = function() { return $mul64($internalize(new ($global.Date)().getTime(), $Int64), new $Int64(0, 1000000)); }; newEntry = function(i) { var i, i$24ptr; return new entry.ptr(((i$24ptr || (i$24ptr = new ptrType$3(function() { return i; }, function($v) { i = $v; }))))); }; Map.ptr.prototype.Load = function(key) { var _entry, _entry$1, _entry$2, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, e, key, m, ok, read, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; e = $f.e; key = $f.key; m = $f.m; ok = $f.ok; read = $f.read; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: value = $ifaceNil; ok = false; m = this; _tuple = $assertType(m.read.Load(), readOnly, true); read = $clone(_tuple[0], readOnly); _tuple$1 = (_entry = read.m[$emptyInterface.keyFor(key)], _entry !== undefined ? [_entry.v, true] : [ptrType$4.nil, false]); e = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (!ok && read.amended) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!ok && read.amended) { */ case 1: $r = m.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _tuple$2 = $assertType(m.read.Load(), readOnly, true); readOnly.copy(read, _tuple$2[0]); _tuple$3 = (_entry$1 = read.m[$emptyInterface.keyFor(key)], _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$4.nil, false]); e = _tuple$3[0]; ok = _tuple$3[1]; if (!ok && read.amended) { _tuple$4 = (_entry$2 = m.dirty[$emptyInterface.keyFor(key)], _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$4.nil, false]); e = _tuple$4[0]; ok = _tuple$4[1]; m.missLocked(); } $r = m.mu.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: if (!ok) { _tmp = $ifaceNil; _tmp$1 = false; value = _tmp; ok = _tmp$1; $s = -1; return [value, ok]; } _tuple$5 = e.load(); value = _tuple$5[0]; ok = _tuple$5[1]; $s = -1; return [value, ok]; /* */ } return; } if ($f === undefined) { $f = { $blk: Map.ptr.prototype.Load }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f.e = e; $f.key = key; $f.m = m; $f.ok = ok; $f.read = read; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; Map.prototype.Load = function(key) { return this.$val.Load(key); }; entry.ptr.prototype.load = function() { var _tmp, _tmp$1, _tmp$2, _tmp$3, e, ok, p, value; value = $ifaceNil; ok = false; e = this; p = atomic.LoadPointer((e.$ptr_p || (e.$ptr_p = new ptrType$5(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, e)))); if (p === 0 || p === expunged) { _tmp = $ifaceNil; _tmp$1 = false; value = _tmp; ok = _tmp$1; return [value, ok]; } _tmp$2 = (p).$get(); _tmp$3 = true; value = _tmp$2; ok = _tmp$3; return [value, ok]; }; entry.prototype.load = function() { return this.$val.load(); }; Map.ptr.prototype.Store = function(key, value) { var _entry, _entry$1, _entry$2, _key, _key$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, e, e$1, e$2, key, m, ok, ok$1, ok$2, read, value, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _key = $f._key; _key$1 = $f._key$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; e = $f.e; e$1 = $f.e$1; e$2 = $f.e$2; key = $f.key; m = $f.m; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; read = $f.read; value = $f.value; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: value = [value]; m = this; _tuple = $assertType(m.read.Load(), readOnly, true); read = $clone(_tuple[0], readOnly); _tuple$1 = (_entry = read.m[$emptyInterface.keyFor(key)], _entry !== undefined ? [_entry.v, true] : [ptrType$4.nil, false]); e = _tuple$1[0]; ok = _tuple$1[1]; if (ok && e.tryStore((value.$ptr || (value.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, value))))) { $s = -1; return; } $r = m.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _tuple$2 = $assertType(m.read.Load(), readOnly, true); readOnly.copy(read, _tuple$2[0]); _tuple$3 = (_entry$1 = read.m[$emptyInterface.keyFor(key)], _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$4.nil, false]); e$1 = _tuple$3[0]; ok$1 = _tuple$3[1]; if (ok$1) { if (e$1.unexpungeLocked()) { _key = key; (m.dirty || $throwRuntimeError("assignment to entry in nil map"))[$emptyInterface.keyFor(_key)] = { k: _key, v: e$1 }; } e$1.storeLocked((value.$ptr || (value.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, value)))); } else { _tuple$4 = (_entry$2 = m.dirty[$emptyInterface.keyFor(key)], _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$4.nil, false]); e$2 = _tuple$4[0]; ok$2 = _tuple$4[1]; if (ok$2) { e$2.storeLocked((value.$ptr || (value.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, value)))); } else { if (!read.amended) { m.dirtyLocked(); m.read.Store((x = new readOnly.ptr(read.m, true), new x.constructor.elem(x))); } _key$1 = key; (m.dirty || $throwRuntimeError("assignment to entry in nil map"))[$emptyInterface.keyFor(_key$1)] = { k: _key$1, v: newEntry(value[0]) }; } } $r = m.mu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: Map.ptr.prototype.Store }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._key = _key; $f._key$1 = _key$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f.e = e; $f.e$1 = e$1; $f.e$2 = e$2; $f.key = key; $f.m = m; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.read = read; $f.value = value; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; Map.prototype.Store = function(key, value) { return this.$val.Store(key, value); }; entry.ptr.prototype.tryStore = function(i) { var e, i, p; e = this; p = atomic.LoadPointer((e.$ptr_p || (e.$ptr_p = new ptrType$5(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, e)))); if (p === expunged) { return false; } while (true) { if (atomic.CompareAndSwapPointer((e.$ptr_p || (e.$ptr_p = new ptrType$5(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, e))), p, (i))) { return true; } p = atomic.LoadPointer((e.$ptr_p || (e.$ptr_p = new ptrType$5(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, e)))); if (p === expunged) { return false; } } }; entry.prototype.tryStore = function(i) { return this.$val.tryStore(i); }; entry.ptr.prototype.unexpungeLocked = function() { var e, wasExpunged; wasExpunged = false; e = this; wasExpunged = atomic.CompareAndSwapPointer((e.$ptr_p || (e.$ptr_p = new ptrType$5(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, e))), expunged, 0); return wasExpunged; }; entry.prototype.unexpungeLocked = function() { return this.$val.unexpungeLocked(); }; entry.ptr.prototype.storeLocked = function(i) { var e, i; e = this; atomic.StorePointer((e.$ptr_p || (e.$ptr_p = new ptrType$5(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, e))), (i)); }; entry.prototype.storeLocked = function(i) { return this.$val.storeLocked(i); }; Map.ptr.prototype.LoadOrStore = function(key, value) { var _entry, _entry$1, _entry$2, _key, _key$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, actual, actual$1, e, e$1, e$2, key, loaded, loaded$1, m, ok, ok$1, ok$2, ok$3, read, value, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _key = $f._key; _key$1 = $f._key$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; actual = $f.actual; actual$1 = $f.actual$1; e = $f.e; e$1 = $f.e$1; e$2 = $f.e$2; key = $f.key; loaded = $f.loaded; loaded$1 = $f.loaded$1; m = $f.m; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; ok$3 = $f.ok$3; read = $f.read; value = $f.value; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: actual = $ifaceNil; loaded = false; m = this; _tuple = $assertType(m.read.Load(), readOnly, true); read = $clone(_tuple[0], readOnly); _tuple$1 = (_entry = read.m[$emptyInterface.keyFor(key)], _entry !== undefined ? [_entry.v, true] : [ptrType$4.nil, false]); e = _tuple$1[0]; ok = _tuple$1[1]; if (ok) { _tuple$2 = e.tryLoadOrStore(value); actual$1 = _tuple$2[0]; loaded$1 = _tuple$2[1]; ok$1 = _tuple$2[2]; if (ok$1) { _tmp = actual$1; _tmp$1 = loaded$1; actual = _tmp; loaded = _tmp$1; $s = -1; return [actual, loaded]; } } $r = m.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _tuple$3 = $assertType(m.read.Load(), readOnly, true); readOnly.copy(read, _tuple$3[0]); _tuple$4 = (_entry$1 = read.m[$emptyInterface.keyFor(key)], _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$4.nil, false]); e$1 = _tuple$4[0]; ok$2 = _tuple$4[1]; if (ok$2) { if (e$1.unexpungeLocked()) { _key = key; (m.dirty || $throwRuntimeError("assignment to entry in nil map"))[$emptyInterface.keyFor(_key)] = { k: _key, v: e$1 }; } _tuple$5 = e$1.tryLoadOrStore(value); actual = _tuple$5[0]; loaded = _tuple$5[1]; } else { _tuple$6 = (_entry$2 = m.dirty[$emptyInterface.keyFor(key)], _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$4.nil, false]); e$2 = _tuple$6[0]; ok$3 = _tuple$6[1]; if (ok$3) { _tuple$7 = e$2.tryLoadOrStore(value); actual = _tuple$7[0]; loaded = _tuple$7[1]; m.missLocked(); } else { if (!read.amended) { m.dirtyLocked(); m.read.Store((x = new readOnly.ptr(read.m, true), new x.constructor.elem(x))); } _key$1 = key; (m.dirty || $throwRuntimeError("assignment to entry in nil map"))[$emptyInterface.keyFor(_key$1)] = { k: _key$1, v: newEntry(value) }; _tmp$2 = value; _tmp$3 = false; actual = _tmp$2; loaded = _tmp$3; } } $r = m.mu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _tmp$4 = actual; _tmp$5 = loaded; actual = _tmp$4; loaded = _tmp$5; $s = -1; return [actual, loaded]; /* */ } return; } if ($f === undefined) { $f = { $blk: Map.ptr.prototype.LoadOrStore }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._key = _key; $f._key$1 = _key$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f.actual = actual; $f.actual$1 = actual$1; $f.e = e; $f.e$1 = e$1; $f.e$2 = e$2; $f.key = key; $f.loaded = loaded; $f.loaded$1 = loaded$1; $f.m = m; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.ok$3 = ok$3; $f.read = read; $f.value = value; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; Map.prototype.LoadOrStore = function(key, value) { return this.$val.LoadOrStore(key, value); }; entry.ptr.prototype.tryLoadOrStore = function(i) { var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, actual, e, i, ic, ic$24ptr, loaded, ok, p; actual = $ifaceNil; loaded = false; ok = false; e = this; p = atomic.LoadPointer((e.$ptr_p || (e.$ptr_p = new ptrType$5(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, e)))); if (p === expunged) { _tmp = $ifaceNil; _tmp$1 = false; _tmp$2 = false; actual = _tmp; loaded = _tmp$1; ok = _tmp$2; return [actual, loaded, ok]; } if (!(p === 0)) { _tmp$3 = (p).$get(); _tmp$4 = true; _tmp$5 = true; actual = _tmp$3; loaded = _tmp$4; ok = _tmp$5; return [actual, loaded, ok]; } ic = i; while (true) { if (atomic.CompareAndSwapPointer((e.$ptr_p || (e.$ptr_p = new ptrType$5(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, e))), 0, ((ic$24ptr || (ic$24ptr = new ptrType$3(function() { return ic; }, function($v) { ic = $v; })))))) { _tmp$6 = i; _tmp$7 = false; _tmp$8 = true; actual = _tmp$6; loaded = _tmp$7; ok = _tmp$8; return [actual, loaded, ok]; } p = atomic.LoadPointer((e.$ptr_p || (e.$ptr_p = new ptrType$5(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, e)))); if (p === expunged) { _tmp$9 = $ifaceNil; _tmp$10 = false; _tmp$11 = false; actual = _tmp$9; loaded = _tmp$10; ok = _tmp$11; return [actual, loaded, ok]; } if (!(p === 0)) { _tmp$12 = (p).$get(); _tmp$13 = true; _tmp$14 = true; actual = _tmp$12; loaded = _tmp$13; ok = _tmp$14; return [actual, loaded, ok]; } } }; entry.prototype.tryLoadOrStore = function(i) { return this.$val.tryLoadOrStore(i); }; Map.ptr.prototype.Delete = function(key) { var _entry, _entry$1, _tuple, _tuple$1, _tuple$2, _tuple$3, e, key, m, ok, read, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; e = $f.e; key = $f.key; m = $f.m; ok = $f.ok; read = $f.read; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: m = this; _tuple = $assertType(m.read.Load(), readOnly, true); read = $clone(_tuple[0], readOnly); _tuple$1 = (_entry = read.m[$emptyInterface.keyFor(key)], _entry !== undefined ? [_entry.v, true] : [ptrType$4.nil, false]); e = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (!ok && read.amended) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!ok && read.amended) { */ case 1: $r = m.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _tuple$2 = $assertType(m.read.Load(), readOnly, true); readOnly.copy(read, _tuple$2[0]); _tuple$3 = (_entry$1 = read.m[$emptyInterface.keyFor(key)], _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$4.nil, false]); e = _tuple$3[0]; ok = _tuple$3[1]; if (!ok && read.amended) { delete m.dirty[$emptyInterface.keyFor(key)]; } $r = m.mu.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: if (ok) { e.delete$(); } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: Map.ptr.prototype.Delete }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.e = e; $f.key = key; $f.m = m; $f.ok = ok; $f.read = read; $f.$s = $s; $f.$r = $r; return $f; }; Map.prototype.Delete = function(key) { return this.$val.Delete(key); }; entry.ptr.prototype.delete$ = function() { var e, hadValue, p; hadValue = false; e = this; while (true) { p = atomic.LoadPointer((e.$ptr_p || (e.$ptr_p = new ptrType$5(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, e)))); if (p === 0 || p === expunged) { hadValue = false; return hadValue; } if (atomic.CompareAndSwapPointer((e.$ptr_p || (e.$ptr_p = new ptrType$5(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, e))), p, 0)) { hadValue = true; return hadValue; } } }; entry.prototype.delete$ = function() { return this.$val.delete$(); }; Map.ptr.prototype.Range = function(f) { var _entry, _i, _keys, _r, _ref, _tuple, _tuple$1, _tuple$2, e, f, k, m, ok, read, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _i = $f._i; _keys = $f._keys; _r = $f._r; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; e = $f.e; f = $f.f; k = $f.k; m = $f.m; ok = $f.ok; read = $f.read; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: m = this; _tuple = $assertType(m.read.Load(), readOnly, true); read = $clone(_tuple[0], readOnly); /* */ if (read.amended) { $s = 1; continue; } /* */ $s = 2; continue; /* if (read.amended) { */ case 1: $r = m.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _tuple$1 = $assertType(m.read.Load(), readOnly, true); readOnly.copy(read, _tuple$1[0]); if (read.amended) { readOnly.copy(read, new readOnly.ptr(m.dirty, false)); m.read.Store(new read.constructor.elem(read)); m.dirty = false; m.misses = 0; } $r = m.mu.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: _ref = read.m; _i = 0; _keys = $keys(_ref); /* while (true) { */ case 5: /* if (!(_i < _keys.length)) { break; } */ if(!(_i < _keys.length)) { $s = 6; continue; } _entry = _ref[_keys[_i]]; if (_entry === undefined) { _i++; /* continue; */ $s = 5; continue; } k = _entry.k; e = _entry.v; _tuple$2 = e.load(); v = _tuple$2[0]; ok = _tuple$2[1]; /* */ if (!ok) { $s = 7; continue; } /* */ $s = 8; continue; /* if (!ok) { */ case 7: _i++; /* continue; */ $s = 5; continue; /* } */ case 8: _r = f(k, v); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!_r) { $s = 9; continue; } /* */ $s = 10; continue; /* if (!_r) { */ case 9: /* break; */ $s = 6; continue; /* } */ case 10: _i++; /* } */ $s = 5; continue; case 6: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: Map.ptr.prototype.Range }; } $f._entry = _entry; $f._i = _i; $f._keys = _keys; $f._r = _r; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.e = e; $f.f = f; $f.k = k; $f.m = m; $f.ok = ok; $f.read = read; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Map.prototype.Range = function(f) { return this.$val.Range(f); }; Map.ptr.prototype.missLocked = function() { var m, x; m = this; m.misses = m.misses + (1) >> 0; if (m.misses < $keys(m.dirty).length) { return; } m.read.Store((x = new readOnly.ptr(m.dirty, false), new x.constructor.elem(x))); m.dirty = false; m.misses = 0; }; Map.prototype.missLocked = function() { return this.$val.missLocked(); }; Map.ptr.prototype.dirtyLocked = function() { var _entry, _i, _key, _keys, _ref, _tuple, e, k, m, read, x; m = this; if (!(m.dirty === false)) { return; } _tuple = $assertType(m.read.Load(), readOnly, true); read = $clone(_tuple[0], readOnly); m.dirty = (x = $keys(read.m).length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : {})); _ref = read.m; _i = 0; _keys = $keys(_ref); while (true) { if (!(_i < _keys.length)) { break; } _entry = _ref[_keys[_i]]; if (_entry === undefined) { _i++; continue; } k = _entry.k; e = _entry.v; if (!e.tryExpungeLocked()) { _key = k; (m.dirty || $throwRuntimeError("assignment to entry in nil map"))[$emptyInterface.keyFor(_key)] = { k: _key, v: e }; } _i++; } }; Map.prototype.dirtyLocked = function() { return this.$val.dirtyLocked(); }; entry.ptr.prototype.tryExpungeLocked = function() { var e, isExpunged, p; isExpunged = false; e = this; p = atomic.LoadPointer((e.$ptr_p || (e.$ptr_p = new ptrType$5(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, e)))); while (true) { if (!(p === 0)) { break; } if (atomic.CompareAndSwapPointer((e.$ptr_p || (e.$ptr_p = new ptrType$5(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, e))), 0, expunged)) { isExpunged = true; return isExpunged; } p = atomic.LoadPointer((e.$ptr_p || (e.$ptr_p = new ptrType$5(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, e)))); } isExpunged = p === expunged; return isExpunged; }; entry.prototype.tryExpungeLocked = function() { return this.$val.tryExpungeLocked(); }; Mutex.ptr.prototype.Lock = function() { var awoke, delta, iter, m, new$1, old, queueLifo, starving, waitStartTime, x, x$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; awoke = $f.awoke; delta = $f.delta; iter = $f.iter; m = $f.m; new$1 = $f.new$1; old = $f.old; queueLifo = $f.queueLifo; starving = $f.starving; waitStartTime = $f.waitStartTime; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: m = this; if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), 0, 1)) { if (false) { race.Acquire((m)); } $s = -1; return; } waitStartTime = new $Int64(0, 0); starving = false; awoke = false; iter = 0; old = m.state; /* while (true) { */ case 1: /* */ if (((old & 5) === 1) && runtime_canSpin(iter)) { $s = 3; continue; } /* */ $s = 4; continue; /* if (((old & 5) === 1) && runtime_canSpin(iter)) { */ case 3: if (!awoke && ((old & 2) === 0) && !(((old >> 3 >> 0) === 0)) && atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, old | 2)) { awoke = true; } runtime_doSpin(); iter = iter + (1) >> 0; old = m.state; /* continue; */ $s = 1; continue; /* } */ case 4: new$1 = old; if ((old & 4) === 0) { new$1 = new$1 | (1); } if (!(((old & 5) === 0))) { new$1 = new$1 + (8) >> 0; } if (starving && !(((old & 1) === 0))) { new$1 = new$1 | (4); } if (awoke) { if ((new$1 & 2) === 0) { $panic(new $String("sync: inconsistent mutex state")); } new$1 = (new$1 & ~(2)) >> 0; } /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 5; continue; } /* */ $s = 6; continue; /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 5: if ((old & 5) === 0) { /* break; */ $s = 2; continue; } queueLifo = !((waitStartTime.$high === 0 && waitStartTime.$low === 0)); if ((waitStartTime.$high === 0 && waitStartTime.$low === 0)) { waitStartTime = runtime_nanotime(); } $r = runtime_SemacquireMutex((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), queueLifo); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } starving = starving || (x = (x$1 = runtime_nanotime(), new $Int64(x$1.$high - waitStartTime.$high, x$1.$low - waitStartTime.$low)), (x.$high > 0 || (x.$high === 0 && x.$low > 1000000))); old = m.state; if (!(((old & 4) === 0))) { if (!(((old & 3) === 0)) || ((old >> 3 >> 0) === 0)) { $panic(new $String("sync: inconsistent mutex state")); } delta = -7; if (!starving || ((old >> 3 >> 0) === 1)) { delta = delta - (4) >> 0; } atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), delta); /* break; */ $s = 2; continue; } awoke = true; iter = 0; $s = 7; continue; /* } else { */ case 6: old = m.state; /* } */ case 7: /* } */ $s = 1; continue; case 2: if (false) { race.Acquire((m)); } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: Mutex.ptr.prototype.Lock }; } $f.awoke = awoke; $f.delta = delta; $f.iter = iter; $f.m = m; $f.new$1 = new$1; $f.old = old; $f.queueLifo = queueLifo; $f.starving = starving; $f.waitStartTime = waitStartTime; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; }; Mutex.prototype.Lock = function() { return this.$val.Lock(); }; Mutex.ptr.prototype.Unlock = function() { var m, new$1, old, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; m = $f.m; new$1 = $f.new$1; old = $f.old; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: m = this; if (false) { $unused(m.state); race.Release((m)); } new$1 = atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), -1); if ((((new$1 + 1 >> 0)) & 1) === 0) { $panic(new $String("sync: unlock of unlocked mutex")); } /* */ if ((new$1 & 4) === 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if ((new$1 & 4) === 0) { */ case 1: old = new$1; /* while (true) { */ case 4: if (((old >> 3 >> 0) === 0) || !(((old & 7) === 0))) { $s = -1; return; } new$1 = ((old - 8 >> 0)) | 2; /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 6; continue; } /* */ $s = 7; continue; /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 6: $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), false); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 7: old = m.state; /* } */ $s = 4; continue; case 5: $s = 3; continue; /* } else { */ case 2: $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), true); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: Mutex.ptr.prototype.Unlock }; } $f.m = m; $f.new$1 = new$1; $f.old = old; $f.$s = $s; $f.$r = $r; return $f; }; Mutex.prototype.Unlock = function() { return this.$val.Unlock(); }; poolCleanup = function() { var _i, _i$1, _ref, _ref$1, i, i$1, j, l, p, x; _ref = allPools; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); ((i < 0 || i >= allPools.$length) ? ($throwRuntimeError("index out of range"), undefined) : allPools.$array[allPools.$offset + i] = ptrType.nil); i$1 = 0; while (true) { if (!(i$1 < ((p.localSize >> 0)))) { break; } l = indexLocal(p.local, i$1); l.poolLocalInternal.private$0 = $ifaceNil; _ref$1 = l.poolLocalInternal.shared; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } j = _i$1; (x = l.poolLocalInternal.shared, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j] = $ifaceNil)); _i$1++; } l.poolLocalInternal.shared = sliceType$4.nil; i$1 = i$1 + (1) >> 0; } p.local = 0; p.localSize = 0; _i++; } allPools = new sliceType([]); }; init = function() { runtime_registerPoolCleanup(poolCleanup); }; indexLocal = function(l, i) { var i, l, lp; lp = (((l) + ($imul(((i >>> 0)), 128) >>> 0) >>> 0)); return ($pointerOfStructConversion(lp, ptrType$7)); }; init$1 = function() { var n; n = new notifyList.ptr(0, 0, 0, 0, 0); runtime_notifyListCheck(20); }; runtime_doSpin = function() { $throwRuntimeError("native function not implemented: sync.runtime_doSpin"); }; ptrType.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "getSlow", name: "getSlow", pkg: "sync", typ: $funcType([], [$emptyInterface], false)}, {prop: "pin", name: "pin", pkg: "sync", typ: $funcType([], [ptrType$7], false)}, {prop: "pinSlow", name: "pinSlow", pkg: "sync", typ: $funcType([], [ptrType$7], false)}]; ptrType$15.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface, $Bool], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [], false)}, {prop: "LoadOrStore", name: "LoadOrStore", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [$emptyInterface, $Bool], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Range", name: "Range", pkg: "", typ: $funcType([funcType$1], [], false)}, {prop: "missLocked", name: "missLocked", pkg: "sync", typ: $funcType([], [], false)}, {prop: "dirtyLocked", name: "dirtyLocked", pkg: "sync", typ: $funcType([], [], false)}]; ptrType$4.methods = [{prop: "load", name: "load", pkg: "sync", typ: $funcType([], [$emptyInterface, $Bool], false)}, {prop: "tryStore", name: "tryStore", pkg: "sync", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "unexpungeLocked", name: "unexpungeLocked", pkg: "sync", typ: $funcType([], [$Bool], false)}, {prop: "storeLocked", name: "storeLocked", pkg: "sync", typ: $funcType([ptrType$3], [], false)}, {prop: "tryLoadOrStore", name: "tryLoadOrStore", pkg: "sync", typ: $funcType([$emptyInterface], [$emptyInterface, $Bool, $Bool], false)}, {prop: "delete$", name: "delete", pkg: "sync", typ: $funcType([], [$Bool], false)}, {prop: "tryExpungeLocked", name: "tryExpungeLocked", pkg: "sync", typ: $funcType([], [$Bool], false)}]; ptrType$16.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; Pool.init("sync", [{prop: "local", name: "local", anonymous: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "localSize", name: "localSize", anonymous: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "store", name: "store", anonymous: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "New", name: "New", anonymous: false, exported: true, typ: funcType, tag: ""}]); Map.init("sync", [{prop: "mu", name: "mu", anonymous: false, exported: false, typ: Mutex, tag: ""}, {prop: "read", name: "read", anonymous: false, exported: false, typ: atomic.Value, tag: ""}, {prop: "dirty", name: "dirty", anonymous: false, exported: false, typ: mapType, tag: ""}, {prop: "misses", name: "misses", anonymous: false, exported: false, typ: $Int, tag: ""}]); readOnly.init("sync", [{prop: "m", name: "m", anonymous: false, exported: false, typ: mapType, tag: ""}, {prop: "amended", name: "amended", anonymous: false, exported: false, typ: $Bool, tag: ""}]); entry.init("sync", [{prop: "p", name: "p", anonymous: false, exported: false, typ: $UnsafePointer, tag: ""}]); Mutex.init("sync", [{prop: "state", name: "state", anonymous: false, exported: false, typ: $Int32, tag: ""}, {prop: "sema", name: "sema", anonymous: false, exported: false, typ: $Uint32, tag: ""}]); poolLocalInternal.init("sync", [{prop: "private$0", name: "private", anonymous: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "shared", name: "shared", anonymous: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "Mutex", name: "Mutex", anonymous: true, exported: true, typ: Mutex, tag: ""}]); poolLocal.init("sync", [{prop: "poolLocalInternal", name: "poolLocalInternal", anonymous: true, exported: false, typ: poolLocalInternal, tag: ""}, {prop: "pad", name: "pad", anonymous: false, exported: false, typ: arrayType$2, tag: ""}]); notifyList.init("sync", [{prop: "wait", name: "wait", anonymous: false, exported: false, typ: $Uint32, tag: ""}, {prop: "notify", name: "notify", anonymous: false, exported: false, typ: $Uint32, tag: ""}, {prop: "lock", name: "lock", anonymous: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "head", name: "head", anonymous: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "tail", name: "tail", anonymous: false, exported: false, typ: $UnsafePointer, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = race.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = runtime.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } allPools = sliceType.nil; semWaiters = {}; semAwoken = {}; expunged = (new Uint8Array(8)); init(); init$1(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["io"] = (function() { var $pkg = {}, $init, errors, sync, Reader, Writer, ReaderFrom, WriterTo, RuneReader, RuneScanner, stringWriter, sliceType, errWhence, errOffset, WriteString; errors = $packages["errors"]; sync = $packages["sync"]; Reader = $pkg.Reader = $newType(8, $kindInterface, "io.Reader", true, "io", true, null); Writer = $pkg.Writer = $newType(8, $kindInterface, "io.Writer", true, "io", true, null); ReaderFrom = $pkg.ReaderFrom = $newType(8, $kindInterface, "io.ReaderFrom", true, "io", true, null); WriterTo = $pkg.WriterTo = $newType(8, $kindInterface, "io.WriterTo", true, "io", true, null); RuneReader = $pkg.RuneReader = $newType(8, $kindInterface, "io.RuneReader", true, "io", true, null); RuneScanner = $pkg.RuneScanner = $newType(8, $kindInterface, "io.RuneScanner", true, "io", true, null); stringWriter = $pkg.stringWriter = $newType(8, $kindInterface, "io.stringWriter", true, "io", false, null); sliceType = $sliceType($Uint8); WriteString = function(w, s) { var _r, _r$1, _tuple, _tuple$1, _tuple$2, err, n, ok, s, sw, w, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; err = $f.err; n = $f.n; ok = $f.ok; s = $f.s; sw = $f.sw; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; _tuple = $assertType(w, stringWriter, true); sw = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 1; continue; } /* */ $s = 2; continue; /* if (ok) { */ case 1: _r = sw.WriteString(s); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple$1 = _r; n = _tuple$1[0]; err = _tuple$1[1]; $s = -1; return [n, err]; /* } */ case 2: _r$1 = w.Write((new sliceType($stringToBytes(s)))); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$2 = _r$1; n = _tuple$2[0]; err = _tuple$2[1]; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: WriteString }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.err = err; $f.n = n; $f.ok = ok; $f.s = s; $f.sw = sw; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.WriteString = WriteString; Reader.init([{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]); Writer.init([{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]); ReaderFrom.init([{prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([Reader], [$Int64, $error], false)}]); WriterTo.init([{prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([Writer], [$Int64, $error], false)}]); RuneReader.init([{prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}]); RuneScanner.init([{prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}]); stringWriter.init([{prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = sync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $pkg.ErrShortWrite = errors.New("short write"); $pkg.ErrShortBuffer = errors.New("short buffer"); $pkg.EOF = errors.New("EOF"); $pkg.ErrUnexpectedEOF = errors.New("unexpected EOF"); $pkg.ErrNoProgress = errors.New("multiple Read calls return no data or error"); errWhence = errors.New("Seek: invalid whence"); errOffset = errors.New("Seek: invalid offset"); $pkg.ErrClosedPipe = errors.New("io: read/write on closed pipe"); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["unicode"] = (function() { var $pkg = {}, $init, RangeTable, Range16, Range32, CaseRange, d, foldPair, arrayType, sliceType, sliceType$1, ptrType, sliceType$2, sliceType$3, sliceType$4, _C, _Cc, _Cf, _Co, _Cs, _L, _Ll, _Lm, _Lo, _Lt, _Lu, _M, _Mc, _Me, _Mn, _N, _Nd, _Nl, _No, _P, _Pc, _Pd, _Pe, _Pf, _Pi, _Po, _Ps, _S, _Sc, _Sk, _Sm, _So, _Z, _Zl, _Zp, _Zs, _Adlam, _Ahom, _Anatolian_Hieroglyphs, _Arabic, _Armenian, _Avestan, _Balinese, _Bamum, _Bassa_Vah, _Batak, _Bengali, _Bhaiksuki, _Bopomofo, _Brahmi, _Braille, _Buginese, _Buhid, _Canadian_Aboriginal, _Carian, _Caucasian_Albanian, _Chakma, _Cham, _Cherokee, _Common, _Coptic, _Cuneiform, _Cypriot, _Cyrillic, _Deseret, _Devanagari, _Duployan, _Egyptian_Hieroglyphs, _Elbasan, _Ethiopic, _Georgian, _Glagolitic, _Gothic, _Grantha, _Greek, _Gujarati, _Gurmukhi, _Han, _Hangul, _Hanunoo, _Hatran, _Hebrew, _Hiragana, _Imperial_Aramaic, _Inherited, _Inscriptional_Pahlavi, _Inscriptional_Parthian, _Javanese, _Kaithi, _Kannada, _Katakana, _Kayah_Li, _Kharoshthi, _Khmer, _Khojki, _Khudawadi, _Lao, _Latin, _Lepcha, _Limbu, _Linear_A, _Linear_B, _Lisu, _Lycian, _Lydian, _Mahajani, _Malayalam, _Mandaic, _Manichaean, _Marchen, _Meetei_Mayek, _Mende_Kikakui, _Meroitic_Cursive, _Meroitic_Hieroglyphs, _Miao, _Modi, _Mongolian, _Mro, _Multani, _Myanmar, _Nabataean, _New_Tai_Lue, _Newa, _Nko, _Ogham, _Ol_Chiki, _Old_Hungarian, _Old_Italic, _Old_North_Arabian, _Old_Permic, _Old_Persian, _Old_South_Arabian, _Old_Turkic, _Oriya, _Osage, _Osmanya, _Pahawh_Hmong, _Palmyrene, _Pau_Cin_Hau, _Phags_Pa, _Phoenician, _Psalter_Pahlavi, _Rejang, _Runic, _Samaritan, _Saurashtra, _Sharada, _Shavian, _Siddham, _SignWriting, _Sinhala, _Sora_Sompeng, _Sundanese, _Syloti_Nagri, _Syriac, _Tagalog, _Tagbanwa, _Tai_Le, _Tai_Tham, _Tai_Viet, _Takri, _Tamil, _Tangut, _Telugu, _Thaana, _Thai, _Tibetan, _Tifinagh, _Tirhuta, _Ugaritic, _Vai, _Warang_Citi, _Yi, _CaseRanges, properties, asciiFold, caseOrbit, foldL, foldLl, foldLt, foldLu, foldM, foldMn, foldCommon, foldGreek, foldInherited, to, IsDigit, IsPrint, In, IsLetter, is16, is32, Is, isExcludingLatin, To, ToUpper, ToLower, SimpleFold; RangeTable = $pkg.RangeTable = $newType(0, $kindStruct, "unicode.RangeTable", true, "unicode", true, function(R16_, R32_, LatinOffset_) { this.$val = this; if (arguments.length === 0) { this.R16 = sliceType.nil; this.R32 = sliceType$1.nil; this.LatinOffset = 0; return; } this.R16 = R16_; this.R32 = R32_; this.LatinOffset = LatinOffset_; }); Range16 = $pkg.Range16 = $newType(0, $kindStruct, "unicode.Range16", true, "unicode", true, function(Lo_, Hi_, Stride_) { this.$val = this; if (arguments.length === 0) { this.Lo = 0; this.Hi = 0; this.Stride = 0; return; } this.Lo = Lo_; this.Hi = Hi_; this.Stride = Stride_; }); Range32 = $pkg.Range32 = $newType(0, $kindStruct, "unicode.Range32", true, "unicode", true, function(Lo_, Hi_, Stride_) { this.$val = this; if (arguments.length === 0) { this.Lo = 0; this.Hi = 0; this.Stride = 0; return; } this.Lo = Lo_; this.Hi = Hi_; this.Stride = Stride_; }); CaseRange = $pkg.CaseRange = $newType(0, $kindStruct, "unicode.CaseRange", true, "unicode", true, function(Lo_, Hi_, Delta_) { this.$val = this; if (arguments.length === 0) { this.Lo = 0; this.Hi = 0; this.Delta = arrayType.zero(); return; } this.Lo = Lo_; this.Hi = Hi_; this.Delta = Delta_; }); d = $pkg.d = $newType(12, $kindArray, "unicode.d", true, "unicode", false, null); foldPair = $pkg.foldPair = $newType(0, $kindStruct, "unicode.foldPair", true, "unicode", false, function(From_, To_) { this.$val = this; if (arguments.length === 0) { this.From = 0; this.To = 0; return; } this.From = From_; this.To = To_; }); arrayType = $arrayType($Int32, 3); sliceType = $sliceType(Range16); sliceType$1 = $sliceType(Range32); ptrType = $ptrType(RangeTable); sliceType$2 = $sliceType(ptrType); sliceType$3 = $sliceType(CaseRange); sliceType$4 = $sliceType(foldPair); to = function(_case, r, caseRange) { var _case, _q, caseRange, cr, delta, hi, lo, m, r, x; if (_case < 0 || 3 <= _case) { return 65533; } lo = 0; hi = caseRange.$length; while (true) { if (!(lo < hi)) { break; } m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; cr = ((m < 0 || m >= caseRange.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseRange.$array[caseRange.$offset + m]); if (((cr.Lo >> 0)) <= r && r <= ((cr.Hi >> 0))) { delta = ((x = cr.Delta, ((_case < 0 || _case >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[_case]))); if (delta > 1114111) { return ((cr.Lo >> 0)) + ((((((r - ((cr.Lo >> 0)) >> 0)) & ~1) >> 0) | (((_case & 1) >> 0)))) >> 0; } return r + delta >> 0; } if (r < ((cr.Lo >> 0))) { hi = m; } else { lo = m + 1 >> 0; } } return r; }; IsDigit = function(r) { var r; if (r <= 255) { return 48 <= r && r <= 57; } return isExcludingLatin($pkg.Digit, r); }; $pkg.IsDigit = IsDigit; IsPrint = function(r) { var r, x; if (((r >>> 0)) <= 255) { return !(((((x = ((r << 24 >>> 24)), ((x < 0 || x >= properties.length) ? ($throwRuntimeError("index out of range"), undefined) : properties[x])) & 128) >>> 0) === 0)); } return In(r, $pkg.PrintRanges); }; $pkg.IsPrint = IsPrint; In = function(r, ranges) { var _i, _ref, inside, r, ranges; _ref = ranges; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } inside = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (Is(inside, r)) { return true; } _i++; } return false; }; $pkg.In = In; IsLetter = function(r) { var r, x; if (((r >>> 0)) <= 255) { return !(((((x = ((r << 24 >>> 24)), ((x < 0 || x >= properties.length) ? ($throwRuntimeError("index out of range"), undefined) : properties[x])) & 96) >>> 0) === 0)); } return isExcludingLatin($pkg.Letter, r); }; $pkg.IsLetter = IsLetter; is16 = function(ranges, r) { var _i, _q, _r, _r$1, _ref, hi, i, lo, m, r, range_, range_$1, ranges; if (ranges.$length <= 18 || r <= 255) { _ref = ranges; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + i]); if (r < range_.Lo) { return false; } if (r <= range_.Hi) { return (_r = ((r - range_.Lo << 16 >>> 16)) % range_.Stride, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0; } _i++; } return false; } lo = 0; hi = ranges.$length; while (true) { if (!(lo < hi)) { break; } m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; range_$1 = ((m < 0 || m >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + m]); if (range_$1.Lo <= r && r <= range_$1.Hi) { return (_r$1 = ((r - range_$1.Lo << 16 >>> 16)) % range_$1.Stride, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0; } if (r < range_$1.Lo) { hi = m; } else { lo = m + 1 >> 0; } } return false; }; is32 = function(ranges, r) { var _i, _q, _r, _r$1, _ref, hi, i, lo, m, r, range_, range_$1, ranges; if (ranges.$length <= 18) { _ref = ranges; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + i]); if (r < range_.Lo) { return false; } if (r <= range_.Hi) { return (_r = ((r - range_.Lo >>> 0)) % range_.Stride, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0; } _i++; } return false; } lo = 0; hi = ranges.$length; while (true) { if (!(lo < hi)) { break; } m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; range_$1 = $clone(((m < 0 || m >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + m]), Range32); if (range_$1.Lo <= r && r <= range_$1.Hi) { return (_r$1 = ((r - range_$1.Lo >>> 0)) % range_$1.Stride, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0; } if (r < range_$1.Lo) { hi = m; } else { lo = m + 1 >> 0; } } return false; }; Is = function(rangeTab, r) { var r, r16, r32, rangeTab, x; r16 = rangeTab.R16; if (r16.$length > 0 && r <= (((x = r16.$length - 1 >> 0, ((x < 0 || x >= r16.$length) ? ($throwRuntimeError("index out of range"), undefined) : r16.$array[r16.$offset + x])).Hi >> 0))) { return is16(r16, ((r << 16 >>> 16))); } r32 = rangeTab.R32; if (r32.$length > 0 && r >= (((0 >= r32.$length ? ($throwRuntimeError("index out of range"), undefined) : r32.$array[r32.$offset + 0]).Lo >> 0))) { return is32(r32, ((r >>> 0))); } return false; }; $pkg.Is = Is; isExcludingLatin = function(rangeTab, r) { var off, r, r16, r32, rangeTab, x; r16 = rangeTab.R16; off = rangeTab.LatinOffset; if (r16.$length > off && r <= (((x = r16.$length - 1 >> 0, ((x < 0 || x >= r16.$length) ? ($throwRuntimeError("index out of range"), undefined) : r16.$array[r16.$offset + x])).Hi >> 0))) { return is16($subslice(r16, off), ((r << 16 >>> 16))); } r32 = rangeTab.R32; if (r32.$length > 0 && r >= (((0 >= r32.$length ? ($throwRuntimeError("index out of range"), undefined) : r32.$array[r32.$offset + 0]).Lo >> 0))) { return is32(r32, ((r >>> 0))); } return false; }; To = function(_case, r) { var _case, r; return to(_case, r, $pkg.CaseRanges); }; $pkg.To = To; ToUpper = function(r) { var r; if (r <= 127) { if (97 <= r && r <= 122) { r = r - (32) >> 0; } return r; } return To(0, r); }; $pkg.ToUpper = ToUpper; ToLower = function(r) { var r; if (r <= 127) { if (65 <= r && r <= 90) { r = r + (32) >> 0; } return r; } return To(1, r); }; $pkg.ToLower = ToLower; SimpleFold = function(r) { var _q, hi, l, lo, m, r; if (r < 0 || r > 1114111) { return r; } if (((r >> 0)) < 128) { return ((((r < 0 || r >= asciiFold.length) ? ($throwRuntimeError("index out of range"), undefined) : asciiFold[r]) >> 0)); } lo = 0; hi = caseOrbit.$length; while (true) { if (!(lo < hi)) { break; } m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; if (((((m < 0 || m >= caseOrbit.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseOrbit.$array[caseOrbit.$offset + m]).From >> 0)) < r) { lo = m + 1 >> 0; } else { hi = m; } } if (lo < caseOrbit.$length && (((((lo < 0 || lo >= caseOrbit.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseOrbit.$array[caseOrbit.$offset + lo]).From >> 0)) === r)) { return ((((lo < 0 || lo >= caseOrbit.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseOrbit.$array[caseOrbit.$offset + lo]).To >> 0)); } l = ToLower(r); if (!((l === r))) { return l; } return ToUpper(r); }; $pkg.SimpleFold = SimpleFold; RangeTable.init("", [{prop: "R16", name: "R16", anonymous: false, exported: true, typ: sliceType, tag: ""}, {prop: "R32", name: "R32", anonymous: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "LatinOffset", name: "LatinOffset", anonymous: false, exported: true, typ: $Int, tag: ""}]); Range16.init("", [{prop: "Lo", name: "Lo", anonymous: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Hi", name: "Hi", anonymous: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Stride", name: "Stride", anonymous: false, exported: true, typ: $Uint16, tag: ""}]); Range32.init("", [{prop: "Lo", name: "Lo", anonymous: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Hi", name: "Hi", anonymous: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Stride", name: "Stride", anonymous: false, exported: true, typ: $Uint32, tag: ""}]); CaseRange.init("", [{prop: "Lo", name: "Lo", anonymous: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Hi", name: "Hi", anonymous: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Delta", name: "Delta", anonymous: false, exported: true, typ: d, tag: ""}]); d.init($Int32, 3); foldPair.init("", [{prop: "From", name: "From", anonymous: false, exported: true, typ: $Uint16, tag: ""}, {prop: "To", name: "To", anonymous: false, exported: true, typ: $Uint16, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _C = new RangeTable.ptr(new sliceType([new Range16.ptr(0, 31, 1), new Range16.ptr(127, 159, 1), new Range16.ptr(173, 1536, 1363), new Range16.ptr(1537, 1541, 1), new Range16.ptr(1564, 1757, 193), new Range16.ptr(1807, 2274, 467), new Range16.ptr(6158, 8203, 2045), new Range16.ptr(8204, 8207, 1), new Range16.ptr(8234, 8238, 1), new Range16.ptr(8288, 8292, 1), new Range16.ptr(8294, 8303, 1), new Range16.ptr(55296, 63743, 1), new Range16.ptr(65279, 65529, 250), new Range16.ptr(65530, 65531, 1)]), new sliceType$1([new Range32.ptr(69821, 113824, 44003), new Range32.ptr(113825, 113827, 1), new Range32.ptr(119155, 119162, 1), new Range32.ptr(917505, 917536, 31), new Range32.ptr(917537, 917631, 1), new Range32.ptr(983040, 1048573, 1), new Range32.ptr(1048576, 1114109, 1)]), 2); _Cc = new RangeTable.ptr(new sliceType([new Range16.ptr(0, 31, 1), new Range16.ptr(127, 159, 1)]), sliceType$1.nil, 2); _Cf = new RangeTable.ptr(new sliceType([new Range16.ptr(173, 1536, 1363), new Range16.ptr(1537, 1541, 1), new Range16.ptr(1564, 1757, 193), new Range16.ptr(1807, 2274, 467), new Range16.ptr(6158, 8203, 2045), new Range16.ptr(8204, 8207, 1), new Range16.ptr(8234, 8238, 1), new Range16.ptr(8288, 8292, 1), new Range16.ptr(8294, 8303, 1), new Range16.ptr(65279, 65529, 250), new Range16.ptr(65530, 65531, 1)]), new sliceType$1([new Range32.ptr(69821, 113824, 44003), new Range32.ptr(113825, 113827, 1), new Range32.ptr(119155, 119162, 1), new Range32.ptr(917505, 917536, 31), new Range32.ptr(917537, 917631, 1)]), 0); _Co = new RangeTable.ptr(new sliceType([new Range16.ptr(57344, 63743, 1)]), new sliceType$1([new Range32.ptr(983040, 1048573, 1), new Range32.ptr(1048576, 1114109, 1)]), 0); _Cs = new RangeTable.ptr(new sliceType([new Range16.ptr(55296, 57343, 1)]), sliceType$1.nil, 0); _L = new RangeTable.ptr(new sliceType([new Range16.ptr(65, 90, 1), new Range16.ptr(97, 122, 1), new Range16.ptr(170, 181, 11), new Range16.ptr(186, 192, 6), new Range16.ptr(193, 214, 1), new Range16.ptr(216, 246, 1), new Range16.ptr(248, 705, 1), new Range16.ptr(710, 721, 1), new Range16.ptr(736, 740, 1), new Range16.ptr(748, 750, 2), new Range16.ptr(880, 884, 1), new Range16.ptr(886, 887, 1), new Range16.ptr(890, 893, 1), new Range16.ptr(895, 902, 7), new Range16.ptr(904, 906, 1), new Range16.ptr(908, 910, 2), new Range16.ptr(911, 929, 1), new Range16.ptr(931, 1013, 1), new Range16.ptr(1015, 1153, 1), new Range16.ptr(1162, 1327, 1), new Range16.ptr(1329, 1366, 1), new Range16.ptr(1369, 1377, 8), new Range16.ptr(1378, 1415, 1), new Range16.ptr(1488, 1514, 1), new Range16.ptr(1520, 1522, 1), new Range16.ptr(1568, 1610, 1), new Range16.ptr(1646, 1647, 1), new Range16.ptr(1649, 1747, 1), new Range16.ptr(1749, 1765, 16), new Range16.ptr(1766, 1774, 8), new Range16.ptr(1775, 1786, 11), new Range16.ptr(1787, 1788, 1), new Range16.ptr(1791, 1808, 17), new Range16.ptr(1810, 1839, 1), new Range16.ptr(1869, 1957, 1), new Range16.ptr(1969, 1994, 25), new Range16.ptr(1995, 2026, 1), new Range16.ptr(2036, 2037, 1), new Range16.ptr(2042, 2048, 6), new Range16.ptr(2049, 2069, 1), new Range16.ptr(2074, 2084, 10), new Range16.ptr(2088, 2112, 24), new Range16.ptr(2113, 2136, 1), new Range16.ptr(2208, 2228, 1), new Range16.ptr(2230, 2237, 1), new Range16.ptr(2308, 2361, 1), new Range16.ptr(2365, 2384, 19), new Range16.ptr(2392, 2401, 1), new Range16.ptr(2417, 2432, 1), new Range16.ptr(2437, 2444, 1), new Range16.ptr(2447, 2448, 1), new Range16.ptr(2451, 2472, 1), new Range16.ptr(2474, 2480, 1), new Range16.ptr(2482, 2486, 4), new Range16.ptr(2487, 2489, 1), new Range16.ptr(2493, 2510, 17), new Range16.ptr(2524, 2525, 1), new Range16.ptr(2527, 2529, 1), new Range16.ptr(2544, 2545, 1), new Range16.ptr(2565, 2570, 1), new Range16.ptr(2575, 2576, 1), new Range16.ptr(2579, 2600, 1), new Range16.ptr(2602, 2608, 1), new Range16.ptr(2610, 2611, 1), new Range16.ptr(2613, 2614, 1), new Range16.ptr(2616, 2617, 1), new Range16.ptr(2649, 2652, 1), new Range16.ptr(2654, 2674, 20), new Range16.ptr(2675, 2676, 1), new Range16.ptr(2693, 2701, 1), new Range16.ptr(2703, 2705, 1), new Range16.ptr(2707, 2728, 1), new Range16.ptr(2730, 2736, 1), new Range16.ptr(2738, 2739, 1), new Range16.ptr(2741, 2745, 1), new Range16.ptr(2749, 2768, 19), new Range16.ptr(2784, 2785, 1), new Range16.ptr(2809, 2821, 12), new Range16.ptr(2822, 2828, 1), new Range16.ptr(2831, 2832, 1), new Range16.ptr(2835, 2856, 1), new Range16.ptr(2858, 2864, 1), new Range16.ptr(2866, 2867, 1), new Range16.ptr(2869, 2873, 1), new Range16.ptr(2877, 2908, 31), new Range16.ptr(2909, 2911, 2), new Range16.ptr(2912, 2913, 1), new Range16.ptr(2929, 2947, 18), new Range16.ptr(2949, 2954, 1), new Range16.ptr(2958, 2960, 1), new Range16.ptr(2962, 2965, 1), new Range16.ptr(2969, 2970, 1), new Range16.ptr(2972, 2974, 2), new Range16.ptr(2975, 2979, 4), new Range16.ptr(2980, 2984, 4), new Range16.ptr(2985, 2986, 1), new Range16.ptr(2990, 3001, 1), new Range16.ptr(3024, 3077, 53), new Range16.ptr(3078, 3084, 1), new Range16.ptr(3086, 3088, 1), new Range16.ptr(3090, 3112, 1), new Range16.ptr(3114, 3129, 1), new Range16.ptr(3133, 3160, 27), new Range16.ptr(3161, 3162, 1), new Range16.ptr(3168, 3169, 1), new Range16.ptr(3200, 3205, 5), new Range16.ptr(3206, 3212, 1), new Range16.ptr(3214, 3216, 1), new Range16.ptr(3218, 3240, 1), new Range16.ptr(3242, 3251, 1), new Range16.ptr(3253, 3257, 1), new Range16.ptr(3261, 3294, 33), new Range16.ptr(3296, 3297, 1), new Range16.ptr(3313, 3314, 1), new Range16.ptr(3333, 3340, 1), new Range16.ptr(3342, 3344, 1), new Range16.ptr(3346, 3386, 1), new Range16.ptr(3389, 3406, 17), new Range16.ptr(3412, 3414, 1), new Range16.ptr(3423, 3425, 1), new Range16.ptr(3450, 3455, 1), new Range16.ptr(3461, 3478, 1), new Range16.ptr(3482, 3505, 1), new Range16.ptr(3507, 3515, 1), new Range16.ptr(3517, 3520, 3), new Range16.ptr(3521, 3526, 1), new Range16.ptr(3585, 3632, 1), new Range16.ptr(3634, 3635, 1), new Range16.ptr(3648, 3654, 1), new Range16.ptr(3713, 3714, 1), new Range16.ptr(3716, 3719, 3), new Range16.ptr(3720, 3722, 2), new Range16.ptr(3725, 3732, 7), new Range16.ptr(3733, 3735, 1), new Range16.ptr(3737, 3743, 1), new Range16.ptr(3745, 3747, 1), new Range16.ptr(3749, 3751, 2), new Range16.ptr(3754, 3755, 1), new Range16.ptr(3757, 3760, 1), new Range16.ptr(3762, 3763, 1), new Range16.ptr(3773, 3776, 3), new Range16.ptr(3777, 3780, 1), new Range16.ptr(3782, 3804, 22), new Range16.ptr(3805, 3807, 1), new Range16.ptr(3840, 3904, 64), new Range16.ptr(3905, 3911, 1), new Range16.ptr(3913, 3948, 1), new Range16.ptr(3976, 3980, 1), new Range16.ptr(4096, 4138, 1), new Range16.ptr(4159, 4176, 17), new Range16.ptr(4177, 4181, 1), new Range16.ptr(4186, 4189, 1), new Range16.ptr(4193, 4197, 4), new Range16.ptr(4198, 4206, 8), new Range16.ptr(4207, 4208, 1), new Range16.ptr(4213, 4225, 1), new Range16.ptr(4238, 4256, 18), new Range16.ptr(4257, 4293, 1), new Range16.ptr(4295, 4301, 6), new Range16.ptr(4304, 4346, 1), new Range16.ptr(4348, 4680, 1), new Range16.ptr(4682, 4685, 1), new Range16.ptr(4688, 4694, 1), new Range16.ptr(4696, 4698, 2), new Range16.ptr(4699, 4701, 1), new Range16.ptr(4704, 4744, 1), new Range16.ptr(4746, 4749, 1), new Range16.ptr(4752, 4784, 1), new Range16.ptr(4786, 4789, 1), new Range16.ptr(4792, 4798, 1), new Range16.ptr(4800, 4802, 2), new Range16.ptr(4803, 4805, 1), new Range16.ptr(4808, 4822, 1), new Range16.ptr(4824, 4880, 1), new Range16.ptr(4882, 4885, 1), new Range16.ptr(4888, 4954, 1), new Range16.ptr(4992, 5007, 1), new Range16.ptr(5024, 5109, 1), new Range16.ptr(5112, 5117, 1), new Range16.ptr(5121, 5740, 1), new Range16.ptr(5743, 5759, 1), new Range16.ptr(5761, 5786, 1), new Range16.ptr(5792, 5866, 1), new Range16.ptr(5873, 5880, 1), new Range16.ptr(5888, 5900, 1), new Range16.ptr(5902, 5905, 1), new Range16.ptr(5920, 5937, 1), new Range16.ptr(5952, 5969, 1), new Range16.ptr(5984, 5996, 1), new Range16.ptr(5998, 6000, 1), new Range16.ptr(6016, 6067, 1), new Range16.ptr(6103, 6108, 5), new Range16.ptr(6176, 6263, 1), new Range16.ptr(6272, 6276, 1), new Range16.ptr(6279, 6312, 1), new Range16.ptr(6314, 6320, 6), new Range16.ptr(6321, 6389, 1), new Range16.ptr(6400, 6430, 1), new Range16.ptr(6480, 6509, 1), new Range16.ptr(6512, 6516, 1), new Range16.ptr(6528, 6571, 1), new Range16.ptr(6576, 6601, 1), new Range16.ptr(6656, 6678, 1), new Range16.ptr(6688, 6740, 1), new Range16.ptr(6823, 6917, 94), new Range16.ptr(6918, 6963, 1), new Range16.ptr(6981, 6987, 1), new Range16.ptr(7043, 7072, 1), new Range16.ptr(7086, 7087, 1), new Range16.ptr(7098, 7141, 1), new Range16.ptr(7168, 7203, 1), new Range16.ptr(7245, 7247, 1), new Range16.ptr(7258, 7293, 1), new Range16.ptr(7296, 7304, 1), new Range16.ptr(7401, 7404, 1), new Range16.ptr(7406, 7409, 1), new Range16.ptr(7413, 7414, 1), new Range16.ptr(7424, 7615, 1), new Range16.ptr(7680, 7957, 1), new Range16.ptr(7960, 7965, 1), new Range16.ptr(7968, 8005, 1), new Range16.ptr(8008, 8013, 1), new Range16.ptr(8016, 8023, 1), new Range16.ptr(8025, 8031, 2), new Range16.ptr(8032, 8061, 1), new Range16.ptr(8064, 8116, 1), new Range16.ptr(8118, 8124, 1), new Range16.ptr(8126, 8130, 4), new Range16.ptr(8131, 8132, 1), new Range16.ptr(8134, 8140, 1), new Range16.ptr(8144, 8147, 1), new Range16.ptr(8150, 8155, 1), new Range16.ptr(8160, 8172, 1), new Range16.ptr(8178, 8180, 1), new Range16.ptr(8182, 8188, 1), new Range16.ptr(8305, 8319, 14), new Range16.ptr(8336, 8348, 1), new Range16.ptr(8450, 8455, 5), new Range16.ptr(8458, 8467, 1), new Range16.ptr(8469, 8473, 4), new Range16.ptr(8474, 8477, 1), new Range16.ptr(8484, 8490, 2), new Range16.ptr(8491, 8493, 1), new Range16.ptr(8495, 8505, 1), new Range16.ptr(8508, 8511, 1), new Range16.ptr(8517, 8521, 1), new Range16.ptr(8526, 8579, 53), new Range16.ptr(8580, 11264, 2684), new Range16.ptr(11265, 11310, 1), new Range16.ptr(11312, 11358, 1), new Range16.ptr(11360, 11492, 1), new Range16.ptr(11499, 11502, 1), new Range16.ptr(11506, 11507, 1), new Range16.ptr(11520, 11557, 1), new Range16.ptr(11559, 11565, 6), new Range16.ptr(11568, 11623, 1), new Range16.ptr(11631, 11648, 17), new Range16.ptr(11649, 11670, 1), new Range16.ptr(11680, 11686, 1), new Range16.ptr(11688, 11694, 1), new Range16.ptr(11696, 11702, 1), new Range16.ptr(11704, 11710, 1), new Range16.ptr(11712, 11718, 1), new Range16.ptr(11720, 11726, 1), new Range16.ptr(11728, 11734, 1), new Range16.ptr(11736, 11742, 1), new Range16.ptr(11823, 12293, 470), new Range16.ptr(12294, 12337, 43), new Range16.ptr(12338, 12341, 1), new Range16.ptr(12347, 12348, 1), new Range16.ptr(12353, 12438, 1), new Range16.ptr(12445, 12447, 1), new Range16.ptr(12449, 12538, 1), new Range16.ptr(12540, 12543, 1), new Range16.ptr(12549, 12589, 1), new Range16.ptr(12593, 12686, 1), new Range16.ptr(12704, 12730, 1), new Range16.ptr(12784, 12799, 1), new Range16.ptr(13312, 19893, 1), new Range16.ptr(19968, 40917, 1), new Range16.ptr(40960, 42124, 1), new Range16.ptr(42192, 42237, 1), new Range16.ptr(42240, 42508, 1), new Range16.ptr(42512, 42527, 1), new Range16.ptr(42538, 42539, 1), new Range16.ptr(42560, 42606, 1), new Range16.ptr(42623, 42653, 1), new Range16.ptr(42656, 42725, 1), new Range16.ptr(42775, 42783, 1), new Range16.ptr(42786, 42888, 1), new Range16.ptr(42891, 42926, 1), new Range16.ptr(42928, 42935, 1), new Range16.ptr(42999, 43009, 1), new Range16.ptr(43011, 43013, 1), new Range16.ptr(43015, 43018, 1), new Range16.ptr(43020, 43042, 1), new Range16.ptr(43072, 43123, 1), new Range16.ptr(43138, 43187, 1), new Range16.ptr(43250, 43255, 1), new Range16.ptr(43259, 43261, 2), new Range16.ptr(43274, 43301, 1), new Range16.ptr(43312, 43334, 1), new Range16.ptr(43360, 43388, 1), new Range16.ptr(43396, 43442, 1), new Range16.ptr(43471, 43488, 17), new Range16.ptr(43489, 43492, 1), new Range16.ptr(43494, 43503, 1), new Range16.ptr(43514, 43518, 1), new Range16.ptr(43520, 43560, 1), new Range16.ptr(43584, 43586, 1), new Range16.ptr(43588, 43595, 1), new Range16.ptr(43616, 43638, 1), new Range16.ptr(43642, 43646, 4), new Range16.ptr(43647, 43695, 1), new Range16.ptr(43697, 43701, 4), new Range16.ptr(43702, 43705, 3), new Range16.ptr(43706, 43709, 1), new Range16.ptr(43712, 43714, 2), new Range16.ptr(43739, 43741, 1), new Range16.ptr(43744, 43754, 1), new Range16.ptr(43762, 43764, 1), new Range16.ptr(43777, 43782, 1), new Range16.ptr(43785, 43790, 1), new Range16.ptr(43793, 43798, 1), new Range16.ptr(43808, 43814, 1), new Range16.ptr(43816, 43822, 1), new Range16.ptr(43824, 43866, 1), new Range16.ptr(43868, 43877, 1), new Range16.ptr(43888, 44002, 1), new Range16.ptr(44032, 55203, 1), new Range16.ptr(55216, 55238, 1), new Range16.ptr(55243, 55291, 1), new Range16.ptr(63744, 64109, 1), new Range16.ptr(64112, 64217, 1), new Range16.ptr(64256, 64262, 1), new Range16.ptr(64275, 64279, 1), new Range16.ptr(64285, 64287, 2), new Range16.ptr(64288, 64296, 1), new Range16.ptr(64298, 64310, 1), new Range16.ptr(64312, 64316, 1), new Range16.ptr(64318, 64320, 2), new Range16.ptr(64321, 64323, 2), new Range16.ptr(64324, 64326, 2), new Range16.ptr(64327, 64433, 1), new Range16.ptr(64467, 64829, 1), new Range16.ptr(64848, 64911, 1), new Range16.ptr(64914, 64967, 1), new Range16.ptr(65008, 65019, 1), new Range16.ptr(65136, 65140, 1), new Range16.ptr(65142, 65276, 1), new Range16.ptr(65313, 65338, 1), new Range16.ptr(65345, 65370, 1), new Range16.ptr(65382, 65470, 1), new Range16.ptr(65474, 65479, 1), new Range16.ptr(65482, 65487, 1), new Range16.ptr(65490, 65495, 1), new Range16.ptr(65498, 65500, 1)]), new sliceType$1([new Range32.ptr(65536, 65547, 1), new Range32.ptr(65549, 65574, 1), new Range32.ptr(65576, 65594, 1), new Range32.ptr(65596, 65597, 1), new Range32.ptr(65599, 65613, 1), new Range32.ptr(65616, 65629, 1), new Range32.ptr(65664, 65786, 1), new Range32.ptr(66176, 66204, 1), new Range32.ptr(66208, 66256, 1), new Range32.ptr(66304, 66335, 1), new Range32.ptr(66352, 66368, 1), new Range32.ptr(66370, 66377, 1), new Range32.ptr(66384, 66421, 1), new Range32.ptr(66432, 66461, 1), new Range32.ptr(66464, 66499, 1), new Range32.ptr(66504, 66511, 1), new Range32.ptr(66560, 66717, 1), new Range32.ptr(66736, 66771, 1), new Range32.ptr(66776, 66811, 1), new Range32.ptr(66816, 66855, 1), new Range32.ptr(66864, 66915, 1), new Range32.ptr(67072, 67382, 1), new Range32.ptr(67392, 67413, 1), new Range32.ptr(67424, 67431, 1), new Range32.ptr(67584, 67589, 1), new Range32.ptr(67592, 67594, 2), new Range32.ptr(67595, 67637, 1), new Range32.ptr(67639, 67640, 1), new Range32.ptr(67644, 67647, 3), new Range32.ptr(67648, 67669, 1), new Range32.ptr(67680, 67702, 1), new Range32.ptr(67712, 67742, 1), new Range32.ptr(67808, 67826, 1), new Range32.ptr(67828, 67829, 1), new Range32.ptr(67840, 67861, 1), new Range32.ptr(67872, 67897, 1), new Range32.ptr(67968, 68023, 1), new Range32.ptr(68030, 68031, 1), new Range32.ptr(68096, 68112, 16), new Range32.ptr(68113, 68115, 1), new Range32.ptr(68117, 68119, 1), new Range32.ptr(68121, 68147, 1), new Range32.ptr(68192, 68220, 1), new Range32.ptr(68224, 68252, 1), new Range32.ptr(68288, 68295, 1), new Range32.ptr(68297, 68324, 1), new Range32.ptr(68352, 68405, 1), new Range32.ptr(68416, 68437, 1), new Range32.ptr(68448, 68466, 1), new Range32.ptr(68480, 68497, 1), new Range32.ptr(68608, 68680, 1), new Range32.ptr(68736, 68786, 1), new Range32.ptr(68800, 68850, 1), new Range32.ptr(69635, 69687, 1), new Range32.ptr(69763, 69807, 1), new Range32.ptr(69840, 69864, 1), new Range32.ptr(69891, 69926, 1), new Range32.ptr(69968, 70002, 1), new Range32.ptr(70006, 70019, 13), new Range32.ptr(70020, 70066, 1), new Range32.ptr(70081, 70084, 1), new Range32.ptr(70106, 70108, 2), new Range32.ptr(70144, 70161, 1), new Range32.ptr(70163, 70187, 1), new Range32.ptr(70272, 70278, 1), new Range32.ptr(70280, 70282, 2), new Range32.ptr(70283, 70285, 1), new Range32.ptr(70287, 70301, 1), new Range32.ptr(70303, 70312, 1), new Range32.ptr(70320, 70366, 1), new Range32.ptr(70405, 70412, 1), new Range32.ptr(70415, 70416, 1), new Range32.ptr(70419, 70440, 1), new Range32.ptr(70442, 70448, 1), new Range32.ptr(70450, 70451, 1), new Range32.ptr(70453, 70457, 1), new Range32.ptr(70461, 70480, 19), new Range32.ptr(70493, 70497, 1), new Range32.ptr(70656, 70708, 1), new Range32.ptr(70727, 70730, 1), new Range32.ptr(70784, 70831, 1), new Range32.ptr(70852, 70853, 1), new Range32.ptr(70855, 71040, 185), new Range32.ptr(71041, 71086, 1), new Range32.ptr(71128, 71131, 1), new Range32.ptr(71168, 71215, 1), new Range32.ptr(71236, 71296, 60), new Range32.ptr(71297, 71338, 1), new Range32.ptr(71424, 71449, 1), new Range32.ptr(71840, 71903, 1), new Range32.ptr(71935, 72384, 449), new Range32.ptr(72385, 72440, 1), new Range32.ptr(72704, 72712, 1), new Range32.ptr(72714, 72750, 1), new Range32.ptr(72768, 72818, 50), new Range32.ptr(72819, 72847, 1), new Range32.ptr(73728, 74649, 1), new Range32.ptr(74880, 75075, 1), new Range32.ptr(77824, 78894, 1), new Range32.ptr(82944, 83526, 1), new Range32.ptr(92160, 92728, 1), new Range32.ptr(92736, 92766, 1), new Range32.ptr(92880, 92909, 1), new Range32.ptr(92928, 92975, 1), new Range32.ptr(92992, 92995, 1), new Range32.ptr(93027, 93047, 1), new Range32.ptr(93053, 93071, 1), new Range32.ptr(93952, 94020, 1), new Range32.ptr(94032, 94099, 67), new Range32.ptr(94100, 94111, 1), new Range32.ptr(94176, 94208, 32), new Range32.ptr(94209, 100332, 1), new Range32.ptr(100352, 101106, 1), new Range32.ptr(110592, 110593, 1), new Range32.ptr(113664, 113770, 1), new Range32.ptr(113776, 113788, 1), new Range32.ptr(113792, 113800, 1), new Range32.ptr(113808, 113817, 1), new Range32.ptr(119808, 119892, 1), new Range32.ptr(119894, 119964, 1), new Range32.ptr(119966, 119967, 1), new Range32.ptr(119970, 119973, 3), new Range32.ptr(119974, 119977, 3), new Range32.ptr(119978, 119980, 1), new Range32.ptr(119982, 119993, 1), new Range32.ptr(119995, 119997, 2), new Range32.ptr(119998, 120003, 1), new Range32.ptr(120005, 120069, 1), new Range32.ptr(120071, 120074, 1), new Range32.ptr(120077, 120084, 1), new Range32.ptr(120086, 120092, 1), new Range32.ptr(120094, 120121, 1), new Range32.ptr(120123, 120126, 1), new Range32.ptr(120128, 120132, 1), new Range32.ptr(120134, 120138, 4), new Range32.ptr(120139, 120144, 1), new Range32.ptr(120146, 120485, 1), new Range32.ptr(120488, 120512, 1), new Range32.ptr(120514, 120538, 1), new Range32.ptr(120540, 120570, 1), new Range32.ptr(120572, 120596, 1), new Range32.ptr(120598, 120628, 1), new Range32.ptr(120630, 120654, 1), new Range32.ptr(120656, 120686, 1), new Range32.ptr(120688, 120712, 1), new Range32.ptr(120714, 120744, 1), new Range32.ptr(120746, 120770, 1), new Range32.ptr(120772, 120779, 1), new Range32.ptr(124928, 125124, 1), new Range32.ptr(125184, 125251, 1), new Range32.ptr(126464, 126467, 1), new Range32.ptr(126469, 126495, 1), new Range32.ptr(126497, 126498, 1), new Range32.ptr(126500, 126503, 3), new Range32.ptr(126505, 126514, 1), new Range32.ptr(126516, 126519, 1), new Range32.ptr(126521, 126523, 2), new Range32.ptr(126530, 126535, 5), new Range32.ptr(126537, 126541, 2), new Range32.ptr(126542, 126543, 1), new Range32.ptr(126545, 126546, 1), new Range32.ptr(126548, 126551, 3), new Range32.ptr(126553, 126561, 2), new Range32.ptr(126562, 126564, 2), new Range32.ptr(126567, 126570, 1), new Range32.ptr(126572, 126578, 1), new Range32.ptr(126580, 126583, 1), new Range32.ptr(126585, 126588, 1), new Range32.ptr(126590, 126592, 2), new Range32.ptr(126593, 126601, 1), new Range32.ptr(126603, 126619, 1), new Range32.ptr(126625, 126627, 1), new Range32.ptr(126629, 126633, 1), new Range32.ptr(126635, 126651, 1), new Range32.ptr(131072, 173782, 1), new Range32.ptr(173824, 177972, 1), new Range32.ptr(177984, 178205, 1), new Range32.ptr(178208, 183969, 1), new Range32.ptr(194560, 195101, 1)]), 6); _Ll = new RangeTable.ptr(new sliceType([new Range16.ptr(97, 122, 1), new Range16.ptr(181, 223, 42), new Range16.ptr(224, 246, 1), new Range16.ptr(248, 255, 1), new Range16.ptr(257, 311, 2), new Range16.ptr(312, 328, 2), new Range16.ptr(329, 375, 2), new Range16.ptr(378, 382, 2), new Range16.ptr(383, 384, 1), new Range16.ptr(387, 389, 2), new Range16.ptr(392, 396, 4), new Range16.ptr(397, 402, 5), new Range16.ptr(405, 409, 4), new Range16.ptr(410, 411, 1), new Range16.ptr(414, 417, 3), new Range16.ptr(419, 421, 2), new Range16.ptr(424, 426, 2), new Range16.ptr(427, 429, 2), new Range16.ptr(432, 436, 4), new Range16.ptr(438, 441, 3), new Range16.ptr(442, 445, 3), new Range16.ptr(446, 447, 1), new Range16.ptr(454, 460, 3), new Range16.ptr(462, 476, 2), new Range16.ptr(477, 495, 2), new Range16.ptr(496, 499, 3), new Range16.ptr(501, 505, 4), new Range16.ptr(507, 563, 2), new Range16.ptr(564, 569, 1), new Range16.ptr(572, 575, 3), new Range16.ptr(576, 578, 2), new Range16.ptr(583, 591, 2), new Range16.ptr(592, 659, 1), new Range16.ptr(661, 687, 1), new Range16.ptr(881, 883, 2), new Range16.ptr(887, 891, 4), new Range16.ptr(892, 893, 1), new Range16.ptr(912, 940, 28), new Range16.ptr(941, 974, 1), new Range16.ptr(976, 977, 1), new Range16.ptr(981, 983, 1), new Range16.ptr(985, 1007, 2), new Range16.ptr(1008, 1011, 1), new Range16.ptr(1013, 1019, 3), new Range16.ptr(1020, 1072, 52), new Range16.ptr(1073, 1119, 1), new Range16.ptr(1121, 1153, 2), new Range16.ptr(1163, 1215, 2), new Range16.ptr(1218, 1230, 2), new Range16.ptr(1231, 1327, 2), new Range16.ptr(1377, 1415, 1), new Range16.ptr(5112, 5117, 1), new Range16.ptr(7296, 7304, 1), new Range16.ptr(7424, 7467, 1), new Range16.ptr(7531, 7543, 1), new Range16.ptr(7545, 7578, 1), new Range16.ptr(7681, 7829, 2), new Range16.ptr(7830, 7837, 1), new Range16.ptr(7839, 7935, 2), new Range16.ptr(7936, 7943, 1), new Range16.ptr(7952, 7957, 1), new Range16.ptr(7968, 7975, 1), new Range16.ptr(7984, 7991, 1), new Range16.ptr(8000, 8005, 1), new Range16.ptr(8016, 8023, 1), new Range16.ptr(8032, 8039, 1), new Range16.ptr(8048, 8061, 1), new Range16.ptr(8064, 8071, 1), new Range16.ptr(8080, 8087, 1), new Range16.ptr(8096, 8103, 1), new Range16.ptr(8112, 8116, 1), new Range16.ptr(8118, 8119, 1), new Range16.ptr(8126, 8130, 4), new Range16.ptr(8131, 8132, 1), new Range16.ptr(8134, 8135, 1), new Range16.ptr(8144, 8147, 1), new Range16.ptr(8150, 8151, 1), new Range16.ptr(8160, 8167, 1), new Range16.ptr(8178, 8180, 1), new Range16.ptr(8182, 8183, 1), new Range16.ptr(8458, 8462, 4), new Range16.ptr(8463, 8467, 4), new Range16.ptr(8495, 8505, 5), new Range16.ptr(8508, 8509, 1), new Range16.ptr(8518, 8521, 1), new Range16.ptr(8526, 8580, 54), new Range16.ptr(11312, 11358, 1), new Range16.ptr(11361, 11365, 4), new Range16.ptr(11366, 11372, 2), new Range16.ptr(11377, 11379, 2), new Range16.ptr(11380, 11382, 2), new Range16.ptr(11383, 11387, 1), new Range16.ptr(11393, 11491, 2), new Range16.ptr(11492, 11500, 8), new Range16.ptr(11502, 11507, 5), new Range16.ptr(11520, 11557, 1), new Range16.ptr(11559, 11565, 6), new Range16.ptr(42561, 42605, 2), new Range16.ptr(42625, 42651, 2), new Range16.ptr(42787, 42799, 2), new Range16.ptr(42800, 42801, 1), new Range16.ptr(42803, 42865, 2), new Range16.ptr(42866, 42872, 1), new Range16.ptr(42874, 42876, 2), new Range16.ptr(42879, 42887, 2), new Range16.ptr(42892, 42894, 2), new Range16.ptr(42897, 42899, 2), new Range16.ptr(42900, 42901, 1), new Range16.ptr(42903, 42921, 2), new Range16.ptr(42933, 42935, 2), new Range16.ptr(43002, 43824, 822), new Range16.ptr(43825, 43866, 1), new Range16.ptr(43872, 43877, 1), new Range16.ptr(43888, 43967, 1), new Range16.ptr(64256, 64262, 1), new Range16.ptr(64275, 64279, 1), new Range16.ptr(65345, 65370, 1)]), new sliceType$1([new Range32.ptr(66600, 66639, 1), new Range32.ptr(66776, 66811, 1), new Range32.ptr(68800, 68850, 1), new Range32.ptr(71872, 71903, 1), new Range32.ptr(119834, 119859, 1), new Range32.ptr(119886, 119892, 1), new Range32.ptr(119894, 119911, 1), new Range32.ptr(119938, 119963, 1), new Range32.ptr(119990, 119993, 1), new Range32.ptr(119995, 119997, 2), new Range32.ptr(119998, 120003, 1), new Range32.ptr(120005, 120015, 1), new Range32.ptr(120042, 120067, 1), new Range32.ptr(120094, 120119, 1), new Range32.ptr(120146, 120171, 1), new Range32.ptr(120198, 120223, 1), new Range32.ptr(120250, 120275, 1), new Range32.ptr(120302, 120327, 1), new Range32.ptr(120354, 120379, 1), new Range32.ptr(120406, 120431, 1), new Range32.ptr(120458, 120485, 1), new Range32.ptr(120514, 120538, 1), new Range32.ptr(120540, 120545, 1), new Range32.ptr(120572, 120596, 1), new Range32.ptr(120598, 120603, 1), new Range32.ptr(120630, 120654, 1), new Range32.ptr(120656, 120661, 1), new Range32.ptr(120688, 120712, 1), new Range32.ptr(120714, 120719, 1), new Range32.ptr(120746, 120770, 1), new Range32.ptr(120772, 120777, 1), new Range32.ptr(120779, 125218, 4439), new Range32.ptr(125219, 125251, 1)]), 4); _Lm = new RangeTable.ptr(new sliceType([new Range16.ptr(688, 705, 1), new Range16.ptr(710, 721, 1), new Range16.ptr(736, 740, 1), new Range16.ptr(748, 750, 2), new Range16.ptr(884, 890, 6), new Range16.ptr(1369, 1600, 231), new Range16.ptr(1765, 1766, 1), new Range16.ptr(2036, 2037, 1), new Range16.ptr(2042, 2074, 32), new Range16.ptr(2084, 2088, 4), new Range16.ptr(2417, 3654, 1237), new Range16.ptr(3782, 4348, 566), new Range16.ptr(6103, 6211, 108), new Range16.ptr(6823, 7288, 465), new Range16.ptr(7289, 7293, 1), new Range16.ptr(7468, 7530, 1), new Range16.ptr(7544, 7579, 35), new Range16.ptr(7580, 7615, 1), new Range16.ptr(8305, 8319, 14), new Range16.ptr(8336, 8348, 1), new Range16.ptr(11388, 11389, 1), new Range16.ptr(11631, 11823, 192), new Range16.ptr(12293, 12337, 44), new Range16.ptr(12338, 12341, 1), new Range16.ptr(12347, 12445, 98), new Range16.ptr(12446, 12540, 94), new Range16.ptr(12541, 12542, 1), new Range16.ptr(40981, 42232, 1251), new Range16.ptr(42233, 42237, 1), new Range16.ptr(42508, 42623, 115), new Range16.ptr(42652, 42653, 1), new Range16.ptr(42775, 42783, 1), new Range16.ptr(42864, 42888, 24), new Range16.ptr(43000, 43001, 1), new Range16.ptr(43471, 43494, 23), new Range16.ptr(43632, 43741, 109), new Range16.ptr(43763, 43764, 1), new Range16.ptr(43868, 43871, 1), new Range16.ptr(65392, 65438, 46), new Range16.ptr(65439, 65439, 1)]), new sliceType$1([new Range32.ptr(92992, 92992, 1), new Range32.ptr(92993, 92995, 1), new Range32.ptr(94099, 94111, 1), new Range32.ptr(94176, 94176, 1)]), 0); _Lo = new RangeTable.ptr(new sliceType([new Range16.ptr(170, 186, 16), new Range16.ptr(443, 448, 5), new Range16.ptr(449, 451, 1), new Range16.ptr(660, 1488, 828), new Range16.ptr(1489, 1514, 1), new Range16.ptr(1520, 1522, 1), new Range16.ptr(1568, 1599, 1), new Range16.ptr(1601, 1610, 1), new Range16.ptr(1646, 1647, 1), new Range16.ptr(1649, 1747, 1), new Range16.ptr(1749, 1774, 25), new Range16.ptr(1775, 1786, 11), new Range16.ptr(1787, 1788, 1), new Range16.ptr(1791, 1808, 17), new Range16.ptr(1810, 1839, 1), new Range16.ptr(1869, 1957, 1), new Range16.ptr(1969, 1994, 25), new Range16.ptr(1995, 2026, 1), new Range16.ptr(2048, 2069, 1), new Range16.ptr(2112, 2136, 1), new Range16.ptr(2208, 2228, 1), new Range16.ptr(2230, 2237, 1), new Range16.ptr(2308, 2361, 1), new Range16.ptr(2365, 2384, 19), new Range16.ptr(2392, 2401, 1), new Range16.ptr(2418, 2432, 1), new Range16.ptr(2437, 2444, 1), new Range16.ptr(2447, 2448, 1), new Range16.ptr(2451, 2472, 1), new Range16.ptr(2474, 2480, 1), new Range16.ptr(2482, 2486, 4), new Range16.ptr(2487, 2489, 1), new Range16.ptr(2493, 2510, 17), new Range16.ptr(2524, 2525, 1), new Range16.ptr(2527, 2529, 1), new Range16.ptr(2544, 2545, 1), new Range16.ptr(2565, 2570, 1), new Range16.ptr(2575, 2576, 1), new Range16.ptr(2579, 2600, 1), new Range16.ptr(2602, 2608, 1), new Range16.ptr(2610, 2611, 1), new Range16.ptr(2613, 2614, 1), new Range16.ptr(2616, 2617, 1), new Range16.ptr(2649, 2652, 1), new Range16.ptr(2654, 2674, 20), new Range16.ptr(2675, 2676, 1), new Range16.ptr(2693, 2701, 1), new Range16.ptr(2703, 2705, 1), new Range16.ptr(2707, 2728, 1), new Range16.ptr(2730, 2736, 1), new Range16.ptr(2738, 2739, 1), new Range16.ptr(2741, 2745, 1), new Range16.ptr(2749, 2768, 19), new Range16.ptr(2784, 2785, 1), new Range16.ptr(2809, 2821, 12), new Range16.ptr(2822, 2828, 1), new Range16.ptr(2831, 2832, 1), new Range16.ptr(2835, 2856, 1), new Range16.ptr(2858, 2864, 1), new Range16.ptr(2866, 2867, 1), new Range16.ptr(2869, 2873, 1), new Range16.ptr(2877, 2908, 31), new Range16.ptr(2909, 2911, 2), new Range16.ptr(2912, 2913, 1), new Range16.ptr(2929, 2947, 18), new Range16.ptr(2949, 2954, 1), new Range16.ptr(2958, 2960, 1), new Range16.ptr(2962, 2965, 1), new Range16.ptr(2969, 2970, 1), new Range16.ptr(2972, 2974, 2), new Range16.ptr(2975, 2979, 4), new Range16.ptr(2980, 2984, 4), new Range16.ptr(2985, 2986, 1), new Range16.ptr(2990, 3001, 1), new Range16.ptr(3024, 3077, 53), new Range16.ptr(3078, 3084, 1), new Range16.ptr(3086, 3088, 1), new Range16.ptr(3090, 3112, 1), new Range16.ptr(3114, 3129, 1), new Range16.ptr(3133, 3160, 27), new Range16.ptr(3161, 3162, 1), new Range16.ptr(3168, 3169, 1), new Range16.ptr(3200, 3205, 5), new Range16.ptr(3206, 3212, 1), new Range16.ptr(3214, 3216, 1), new Range16.ptr(3218, 3240, 1), new Range16.ptr(3242, 3251, 1), new Range16.ptr(3253, 3257, 1), new Range16.ptr(3261, 3294, 33), new Range16.ptr(3296, 3297, 1), new Range16.ptr(3313, 3314, 1), new Range16.ptr(3333, 3340, 1), new Range16.ptr(3342, 3344, 1), new Range16.ptr(3346, 3386, 1), new Range16.ptr(3389, 3406, 17), new Range16.ptr(3412, 3414, 1), new Range16.ptr(3423, 3425, 1), new Range16.ptr(3450, 3455, 1), new Range16.ptr(3461, 3478, 1), new Range16.ptr(3482, 3505, 1), new Range16.ptr(3507, 3515, 1), new Range16.ptr(3517, 3520, 3), new Range16.ptr(3521, 3526, 1), new Range16.ptr(3585, 3632, 1), new Range16.ptr(3634, 3635, 1), new Range16.ptr(3648, 3653, 1), new Range16.ptr(3713, 3714, 1), new Range16.ptr(3716, 3719, 3), new Range16.ptr(3720, 3722, 2), new Range16.ptr(3725, 3732, 7), new Range16.ptr(3733, 3735, 1), new Range16.ptr(3737, 3743, 1), new Range16.ptr(3745, 3747, 1), new Range16.ptr(3749, 3751, 2), new Range16.ptr(3754, 3755, 1), new Range16.ptr(3757, 3760, 1), new Range16.ptr(3762, 3763, 1), new Range16.ptr(3773, 3776, 3), new Range16.ptr(3777, 3780, 1), new Range16.ptr(3804, 3807, 1), new Range16.ptr(3840, 3904, 64), new Range16.ptr(3905, 3911, 1), new Range16.ptr(3913, 3948, 1), new Range16.ptr(3976, 3980, 1), new Range16.ptr(4096, 4138, 1), new Range16.ptr(4159, 4176, 17), new Range16.ptr(4177, 4181, 1), new Range16.ptr(4186, 4189, 1), new Range16.ptr(4193, 4197, 4), new Range16.ptr(4198, 4206, 8), new Range16.ptr(4207, 4208, 1), new Range16.ptr(4213, 4225, 1), new Range16.ptr(4238, 4304, 66), new Range16.ptr(4305, 4346, 1), new Range16.ptr(4349, 4680, 1), new Range16.ptr(4682, 4685, 1), new Range16.ptr(4688, 4694, 1), new Range16.ptr(4696, 4698, 2), new Range16.ptr(4699, 4701, 1), new Range16.ptr(4704, 4744, 1), new Range16.ptr(4746, 4749, 1), new Range16.ptr(4752, 4784, 1), new Range16.ptr(4786, 4789, 1), new Range16.ptr(4792, 4798, 1), new Range16.ptr(4800, 4802, 2), new Range16.ptr(4803, 4805, 1), new Range16.ptr(4808, 4822, 1), new Range16.ptr(4824, 4880, 1), new Range16.ptr(4882, 4885, 1), new Range16.ptr(4888, 4954, 1), new Range16.ptr(4992, 5007, 1), new Range16.ptr(5121, 5740, 1), new Range16.ptr(5743, 5759, 1), new Range16.ptr(5761, 5786, 1), new Range16.ptr(5792, 5866, 1), new Range16.ptr(5873, 5880, 1), new Range16.ptr(5888, 5900, 1), new Range16.ptr(5902, 5905, 1), new Range16.ptr(5920, 5937, 1), new Range16.ptr(5952, 5969, 1), new Range16.ptr(5984, 5996, 1), new Range16.ptr(5998, 6000, 1), new Range16.ptr(6016, 6067, 1), new Range16.ptr(6108, 6176, 68), new Range16.ptr(6177, 6210, 1), new Range16.ptr(6212, 6263, 1), new Range16.ptr(6272, 6276, 1), new Range16.ptr(6279, 6312, 1), new Range16.ptr(6314, 6320, 6), new Range16.ptr(6321, 6389, 1), new Range16.ptr(6400, 6430, 1), new Range16.ptr(6480, 6509, 1), new Range16.ptr(6512, 6516, 1), new Range16.ptr(6528, 6571, 1), new Range16.ptr(6576, 6601, 1), new Range16.ptr(6656, 6678, 1), new Range16.ptr(6688, 6740, 1), new Range16.ptr(6917, 6963, 1), new Range16.ptr(6981, 6987, 1), new Range16.ptr(7043, 7072, 1), new Range16.ptr(7086, 7087, 1), new Range16.ptr(7098, 7141, 1), new Range16.ptr(7168, 7203, 1), new Range16.ptr(7245, 7247, 1), new Range16.ptr(7258, 7287, 1), new Range16.ptr(7401, 7404, 1), new Range16.ptr(7406, 7409, 1), new Range16.ptr(7413, 7414, 1), new Range16.ptr(8501, 8504, 1), new Range16.ptr(11568, 11623, 1), new Range16.ptr(11648, 11670, 1), new Range16.ptr(11680, 11686, 1), new Range16.ptr(11688, 11694, 1), new Range16.ptr(11696, 11702, 1), new Range16.ptr(11704, 11710, 1), new Range16.ptr(11712, 11718, 1), new Range16.ptr(11720, 11726, 1), new Range16.ptr(11728, 11734, 1), new Range16.ptr(11736, 11742, 1), new Range16.ptr(12294, 12348, 54), new Range16.ptr(12353, 12438, 1), new Range16.ptr(12447, 12449, 2), new Range16.ptr(12450, 12538, 1), new Range16.ptr(12543, 12549, 6), new Range16.ptr(12550, 12589, 1), new Range16.ptr(12593, 12686, 1), new Range16.ptr(12704, 12730, 1), new Range16.ptr(12784, 12799, 1), new Range16.ptr(13312, 19893, 1), new Range16.ptr(19968, 40917, 1), new Range16.ptr(40960, 40980, 1), new Range16.ptr(40982, 42124, 1), new Range16.ptr(42192, 42231, 1), new Range16.ptr(42240, 42507, 1), new Range16.ptr(42512, 42527, 1), new Range16.ptr(42538, 42539, 1), new Range16.ptr(42606, 42656, 50), new Range16.ptr(42657, 42725, 1), new Range16.ptr(42895, 42999, 104), new Range16.ptr(43003, 43009, 1), new Range16.ptr(43011, 43013, 1), new Range16.ptr(43015, 43018, 1), new Range16.ptr(43020, 43042, 1), new Range16.ptr(43072, 43123, 1), new Range16.ptr(43138, 43187, 1), new Range16.ptr(43250, 43255, 1), new Range16.ptr(43259, 43261, 2), new Range16.ptr(43274, 43301, 1), new Range16.ptr(43312, 43334, 1), new Range16.ptr(43360, 43388, 1), new Range16.ptr(43396, 43442, 1), new Range16.ptr(43488, 43492, 1), new Range16.ptr(43495, 43503, 1), new Range16.ptr(43514, 43518, 1), new Range16.ptr(43520, 43560, 1), new Range16.ptr(43584, 43586, 1), new Range16.ptr(43588, 43595, 1), new Range16.ptr(43616, 43631, 1), new Range16.ptr(43633, 43638, 1), new Range16.ptr(43642, 43646, 4), new Range16.ptr(43647, 43695, 1), new Range16.ptr(43697, 43701, 4), new Range16.ptr(43702, 43705, 3), new Range16.ptr(43706, 43709, 1), new Range16.ptr(43712, 43714, 2), new Range16.ptr(43739, 43740, 1), new Range16.ptr(43744, 43754, 1), new Range16.ptr(43762, 43777, 15), new Range16.ptr(43778, 43782, 1), new Range16.ptr(43785, 43790, 1), new Range16.ptr(43793, 43798, 1), new Range16.ptr(43808, 43814, 1), new Range16.ptr(43816, 43822, 1), new Range16.ptr(43968, 44002, 1), new Range16.ptr(44032, 55203, 1), new Range16.ptr(55216, 55238, 1), new Range16.ptr(55243, 55291, 1), new Range16.ptr(63744, 64109, 1), new Range16.ptr(64112, 64217, 1), new Range16.ptr(64285, 64287, 2), new Range16.ptr(64288, 64296, 1), new Range16.ptr(64298, 64310, 1), new Range16.ptr(64312, 64316, 1), new Range16.ptr(64318, 64320, 2), new Range16.ptr(64321, 64323, 2), new Range16.ptr(64324, 64326, 2), new Range16.ptr(64327, 64433, 1), new Range16.ptr(64467, 64829, 1), new Range16.ptr(64848, 64911, 1), new Range16.ptr(64914, 64967, 1), new Range16.ptr(65008, 65019, 1), new Range16.ptr(65136, 65140, 1), new Range16.ptr(65142, 65276, 1), new Range16.ptr(65382, 65391, 1), new Range16.ptr(65393, 65437, 1), new Range16.ptr(65440, 65470, 1), new Range16.ptr(65474, 65479, 1), new Range16.ptr(65482, 65487, 1), new Range16.ptr(65490, 65495, 1), new Range16.ptr(65498, 65500, 1)]), new sliceType$1([new Range32.ptr(65536, 65547, 1), new Range32.ptr(65549, 65574, 1), new Range32.ptr(65576, 65594, 1), new Range32.ptr(65596, 65597, 1), new Range32.ptr(65599, 65613, 1), new Range32.ptr(65616, 65629, 1), new Range32.ptr(65664, 65786, 1), new Range32.ptr(66176, 66204, 1), new Range32.ptr(66208, 66256, 1), new Range32.ptr(66304, 66335, 1), new Range32.ptr(66352, 66368, 1), new Range32.ptr(66370, 66377, 1), new Range32.ptr(66384, 66421, 1), new Range32.ptr(66432, 66461, 1), new Range32.ptr(66464, 66499, 1), new Range32.ptr(66504, 66511, 1), new Range32.ptr(66640, 66717, 1), new Range32.ptr(66816, 66855, 1), new Range32.ptr(66864, 66915, 1), new Range32.ptr(67072, 67382, 1), new Range32.ptr(67392, 67413, 1), new Range32.ptr(67424, 67431, 1), new Range32.ptr(67584, 67589, 1), new Range32.ptr(67592, 67594, 2), new Range32.ptr(67595, 67637, 1), new Range32.ptr(67639, 67640, 1), new Range32.ptr(67644, 67647, 3), new Range32.ptr(67648, 67669, 1), new Range32.ptr(67680, 67702, 1), new Range32.ptr(67712, 67742, 1), new Range32.ptr(67808, 67826, 1), new Range32.ptr(67828, 67829, 1), new Range32.ptr(67840, 67861, 1), new Range32.ptr(67872, 67897, 1), new Range32.ptr(67968, 68023, 1), new Range32.ptr(68030, 68031, 1), new Range32.ptr(68096, 68112, 16), new Range32.ptr(68113, 68115, 1), new Range32.ptr(68117, 68119, 1), new Range32.ptr(68121, 68147, 1), new Range32.ptr(68192, 68220, 1), new Range32.ptr(68224, 68252, 1), new Range32.ptr(68288, 68295, 1), new Range32.ptr(68297, 68324, 1), new Range32.ptr(68352, 68405, 1), new Range32.ptr(68416, 68437, 1), new Range32.ptr(68448, 68466, 1), new Range32.ptr(68480, 68497, 1), new Range32.ptr(68608, 68680, 1), new Range32.ptr(69635, 69687, 1), new Range32.ptr(69763, 69807, 1), new Range32.ptr(69840, 69864, 1), new Range32.ptr(69891, 69926, 1), new Range32.ptr(69968, 70002, 1), new Range32.ptr(70006, 70019, 13), new Range32.ptr(70020, 70066, 1), new Range32.ptr(70081, 70084, 1), new Range32.ptr(70106, 70108, 2), new Range32.ptr(70144, 70161, 1), new Range32.ptr(70163, 70187, 1), new Range32.ptr(70272, 70278, 1), new Range32.ptr(70280, 70282, 2), new Range32.ptr(70283, 70285, 1), new Range32.ptr(70287, 70301, 1), new Range32.ptr(70303, 70312, 1), new Range32.ptr(70320, 70366, 1), new Range32.ptr(70405, 70412, 1), new Range32.ptr(70415, 70416, 1), new Range32.ptr(70419, 70440, 1), new Range32.ptr(70442, 70448, 1), new Range32.ptr(70450, 70451, 1), new Range32.ptr(70453, 70457, 1), new Range32.ptr(70461, 70480, 19), new Range32.ptr(70493, 70497, 1), new Range32.ptr(70656, 70708, 1), new Range32.ptr(70727, 70730, 1), new Range32.ptr(70784, 70831, 1), new Range32.ptr(70852, 70853, 1), new Range32.ptr(70855, 71040, 185), new Range32.ptr(71041, 71086, 1), new Range32.ptr(71128, 71131, 1), new Range32.ptr(71168, 71215, 1), new Range32.ptr(71236, 71296, 60), new Range32.ptr(71297, 71338, 1), new Range32.ptr(71424, 71449, 1), new Range32.ptr(71935, 72384, 449), new Range32.ptr(72385, 72440, 1), new Range32.ptr(72704, 72712, 1), new Range32.ptr(72714, 72750, 1), new Range32.ptr(72768, 72818, 50), new Range32.ptr(72819, 72847, 1), new Range32.ptr(73728, 74649, 1), new Range32.ptr(74880, 75075, 1), new Range32.ptr(77824, 78894, 1), new Range32.ptr(82944, 83526, 1), new Range32.ptr(92160, 92728, 1), new Range32.ptr(92736, 92766, 1), new Range32.ptr(92880, 92909, 1), new Range32.ptr(92928, 92975, 1), new Range32.ptr(93027, 93047, 1), new Range32.ptr(93053, 93071, 1), new Range32.ptr(93952, 94020, 1), new Range32.ptr(94032, 94208, 176), new Range32.ptr(94209, 100332, 1), new Range32.ptr(100352, 101106, 1), new Range32.ptr(110592, 110593, 1), new Range32.ptr(113664, 113770, 1), new Range32.ptr(113776, 113788, 1), new Range32.ptr(113792, 113800, 1), new Range32.ptr(113808, 113817, 1), new Range32.ptr(124928, 125124, 1), new Range32.ptr(126464, 126467, 1), new Range32.ptr(126469, 126495, 1), new Range32.ptr(126497, 126498, 1), new Range32.ptr(126500, 126503, 3), new Range32.ptr(126505, 126514, 1), new Range32.ptr(126516, 126519, 1), new Range32.ptr(126521, 126523, 2), new Range32.ptr(126530, 126535, 5), new Range32.ptr(126537, 126541, 2), new Range32.ptr(126542, 126543, 1), new Range32.ptr(126545, 126546, 1), new Range32.ptr(126548, 126551, 3), new Range32.ptr(126553, 126561, 2), new Range32.ptr(126562, 126564, 2), new Range32.ptr(126567, 126570, 1), new Range32.ptr(126572, 126578, 1), new Range32.ptr(126580, 126583, 1), new Range32.ptr(126585, 126588, 1), new Range32.ptr(126590, 126592, 2), new Range32.ptr(126593, 126601, 1), new Range32.ptr(126603, 126619, 1), new Range32.ptr(126625, 126627, 1), new Range32.ptr(126629, 126633, 1), new Range32.ptr(126635, 126651, 1), new Range32.ptr(131072, 173782, 1), new Range32.ptr(173824, 177972, 1), new Range32.ptr(177984, 178205, 1), new Range32.ptr(178208, 183969, 1), new Range32.ptr(194560, 195101, 1)]), 1); _Lt = new RangeTable.ptr(new sliceType([new Range16.ptr(453, 459, 3), new Range16.ptr(498, 8072, 7574), new Range16.ptr(8073, 8079, 1), new Range16.ptr(8088, 8095, 1), new Range16.ptr(8104, 8111, 1), new Range16.ptr(8124, 8140, 16), new Range16.ptr(8188, 8188, 1)]), sliceType$1.nil, 0); _Lu = new RangeTable.ptr(new sliceType([new Range16.ptr(65, 90, 1), new Range16.ptr(192, 214, 1), new Range16.ptr(216, 222, 1), new Range16.ptr(256, 310, 2), new Range16.ptr(313, 327, 2), new Range16.ptr(330, 376, 2), new Range16.ptr(377, 381, 2), new Range16.ptr(385, 386, 1), new Range16.ptr(388, 390, 2), new Range16.ptr(391, 393, 2), new Range16.ptr(394, 395, 1), new Range16.ptr(398, 401, 1), new Range16.ptr(403, 404, 1), new Range16.ptr(406, 408, 1), new Range16.ptr(412, 413, 1), new Range16.ptr(415, 416, 1), new Range16.ptr(418, 422, 2), new Range16.ptr(423, 425, 2), new Range16.ptr(428, 430, 2), new Range16.ptr(431, 433, 2), new Range16.ptr(434, 435, 1), new Range16.ptr(437, 439, 2), new Range16.ptr(440, 444, 4), new Range16.ptr(452, 461, 3), new Range16.ptr(463, 475, 2), new Range16.ptr(478, 494, 2), new Range16.ptr(497, 500, 3), new Range16.ptr(502, 504, 1), new Range16.ptr(506, 562, 2), new Range16.ptr(570, 571, 1), new Range16.ptr(573, 574, 1), new Range16.ptr(577, 579, 2), new Range16.ptr(580, 582, 1), new Range16.ptr(584, 590, 2), new Range16.ptr(880, 882, 2), new Range16.ptr(886, 895, 9), new Range16.ptr(902, 904, 2), new Range16.ptr(905, 906, 1), new Range16.ptr(908, 910, 2), new Range16.ptr(911, 913, 2), new Range16.ptr(914, 929, 1), new Range16.ptr(931, 939, 1), new Range16.ptr(975, 978, 3), new Range16.ptr(979, 980, 1), new Range16.ptr(984, 1006, 2), new Range16.ptr(1012, 1015, 3), new Range16.ptr(1017, 1018, 1), new Range16.ptr(1021, 1071, 1), new Range16.ptr(1120, 1152, 2), new Range16.ptr(1162, 1216, 2), new Range16.ptr(1217, 1229, 2), new Range16.ptr(1232, 1326, 2), new Range16.ptr(1329, 1366, 1), new Range16.ptr(4256, 4293, 1), new Range16.ptr(4295, 4301, 6), new Range16.ptr(5024, 5109, 1), new Range16.ptr(7680, 7828, 2), new Range16.ptr(7838, 7934, 2), new Range16.ptr(7944, 7951, 1), new Range16.ptr(7960, 7965, 1), new Range16.ptr(7976, 7983, 1), new Range16.ptr(7992, 7999, 1), new Range16.ptr(8008, 8013, 1), new Range16.ptr(8025, 8031, 2), new Range16.ptr(8040, 8047, 1), new Range16.ptr(8120, 8123, 1), new Range16.ptr(8136, 8139, 1), new Range16.ptr(8152, 8155, 1), new Range16.ptr(8168, 8172, 1), new Range16.ptr(8184, 8187, 1), new Range16.ptr(8450, 8455, 5), new Range16.ptr(8459, 8461, 1), new Range16.ptr(8464, 8466, 1), new Range16.ptr(8469, 8473, 4), new Range16.ptr(8474, 8477, 1), new Range16.ptr(8484, 8490, 2), new Range16.ptr(8491, 8493, 1), new Range16.ptr(8496, 8499, 1), new Range16.ptr(8510, 8511, 1), new Range16.ptr(8517, 8579, 62), new Range16.ptr(11264, 11310, 1), new Range16.ptr(11360, 11362, 2), new Range16.ptr(11363, 11364, 1), new Range16.ptr(11367, 11373, 2), new Range16.ptr(11374, 11376, 1), new Range16.ptr(11378, 11381, 3), new Range16.ptr(11390, 11392, 1), new Range16.ptr(11394, 11490, 2), new Range16.ptr(11499, 11501, 2), new Range16.ptr(11506, 42560, 31054), new Range16.ptr(42562, 42604, 2), new Range16.ptr(42624, 42650, 2), new Range16.ptr(42786, 42798, 2), new Range16.ptr(42802, 42862, 2), new Range16.ptr(42873, 42877, 2), new Range16.ptr(42878, 42886, 2), new Range16.ptr(42891, 42893, 2), new Range16.ptr(42896, 42898, 2), new Range16.ptr(42902, 42922, 2), new Range16.ptr(42923, 42926, 1), new Range16.ptr(42928, 42932, 1), new Range16.ptr(42934, 65313, 22379), new Range16.ptr(65314, 65338, 1)]), new sliceType$1([new Range32.ptr(66560, 66599, 1), new Range32.ptr(66736, 66771, 1), new Range32.ptr(68736, 68786, 1), new Range32.ptr(71840, 71871, 1), new Range32.ptr(119808, 119833, 1), new Range32.ptr(119860, 119885, 1), new Range32.ptr(119912, 119937, 1), new Range32.ptr(119964, 119966, 2), new Range32.ptr(119967, 119973, 3), new Range32.ptr(119974, 119977, 3), new Range32.ptr(119978, 119980, 1), new Range32.ptr(119982, 119989, 1), new Range32.ptr(120016, 120041, 1), new Range32.ptr(120068, 120069, 1), new Range32.ptr(120071, 120074, 1), new Range32.ptr(120077, 120084, 1), new Range32.ptr(120086, 120092, 1), new Range32.ptr(120120, 120121, 1), new Range32.ptr(120123, 120126, 1), new Range32.ptr(120128, 120132, 1), new Range32.ptr(120134, 120138, 4), new Range32.ptr(120139, 120144, 1), new Range32.ptr(120172, 120197, 1), new Range32.ptr(120224, 120249, 1), new Range32.ptr(120276, 120301, 1), new Range32.ptr(120328, 120353, 1), new Range32.ptr(120380, 120405, 1), new Range32.ptr(120432, 120457, 1), new Range32.ptr(120488, 120512, 1), new Range32.ptr(120546, 120570, 1), new Range32.ptr(120604, 120628, 1), new Range32.ptr(120662, 120686, 1), new Range32.ptr(120720, 120744, 1), new Range32.ptr(120778, 125184, 4406), new Range32.ptr(125185, 125217, 1)]), 3); _M = new RangeTable.ptr(new sliceType([new Range16.ptr(768, 879, 1), new Range16.ptr(1155, 1161, 1), new Range16.ptr(1425, 1469, 1), new Range16.ptr(1471, 1473, 2), new Range16.ptr(1474, 1476, 2), new Range16.ptr(1477, 1479, 2), new Range16.ptr(1552, 1562, 1), new Range16.ptr(1611, 1631, 1), new Range16.ptr(1648, 1750, 102), new Range16.ptr(1751, 1756, 1), new Range16.ptr(1759, 1764, 1), new Range16.ptr(1767, 1768, 1), new Range16.ptr(1770, 1773, 1), new Range16.ptr(1809, 1840, 31), new Range16.ptr(1841, 1866, 1), new Range16.ptr(1958, 1968, 1), new Range16.ptr(2027, 2035, 1), new Range16.ptr(2070, 2073, 1), new Range16.ptr(2075, 2083, 1), new Range16.ptr(2085, 2087, 1), new Range16.ptr(2089, 2093, 1), new Range16.ptr(2137, 2139, 1), new Range16.ptr(2260, 2273, 1), new Range16.ptr(2275, 2307, 1), new Range16.ptr(2362, 2364, 1), new Range16.ptr(2366, 2383, 1), new Range16.ptr(2385, 2391, 1), new Range16.ptr(2402, 2403, 1), new Range16.ptr(2433, 2435, 1), new Range16.ptr(2492, 2494, 2), new Range16.ptr(2495, 2500, 1), new Range16.ptr(2503, 2504, 1), new Range16.ptr(2507, 2509, 1), new Range16.ptr(2519, 2530, 11), new Range16.ptr(2531, 2561, 30), new Range16.ptr(2562, 2563, 1), new Range16.ptr(2620, 2622, 2), new Range16.ptr(2623, 2626, 1), new Range16.ptr(2631, 2632, 1), new Range16.ptr(2635, 2637, 1), new Range16.ptr(2641, 2672, 31), new Range16.ptr(2673, 2677, 4), new Range16.ptr(2689, 2691, 1), new Range16.ptr(2748, 2750, 2), new Range16.ptr(2751, 2757, 1), new Range16.ptr(2759, 2761, 1), new Range16.ptr(2763, 2765, 1), new Range16.ptr(2786, 2787, 1), new Range16.ptr(2817, 2819, 1), new Range16.ptr(2876, 2878, 2), new Range16.ptr(2879, 2884, 1), new Range16.ptr(2887, 2888, 1), new Range16.ptr(2891, 2893, 1), new Range16.ptr(2902, 2903, 1), new Range16.ptr(2914, 2915, 1), new Range16.ptr(2946, 3006, 60), new Range16.ptr(3007, 3010, 1), new Range16.ptr(3014, 3016, 1), new Range16.ptr(3018, 3021, 1), new Range16.ptr(3031, 3072, 41), new Range16.ptr(3073, 3075, 1), new Range16.ptr(3134, 3140, 1), new Range16.ptr(3142, 3144, 1), new Range16.ptr(3146, 3149, 1), new Range16.ptr(3157, 3158, 1), new Range16.ptr(3170, 3171, 1), new Range16.ptr(3201, 3203, 1), new Range16.ptr(3260, 3262, 2), new Range16.ptr(3263, 3268, 1), new Range16.ptr(3270, 3272, 1), new Range16.ptr(3274, 3277, 1), new Range16.ptr(3285, 3286, 1), new Range16.ptr(3298, 3299, 1), new Range16.ptr(3329, 3331, 1), new Range16.ptr(3390, 3396, 1), new Range16.ptr(3398, 3400, 1), new Range16.ptr(3402, 3405, 1), new Range16.ptr(3415, 3426, 11), new Range16.ptr(3427, 3458, 31), new Range16.ptr(3459, 3530, 71), new Range16.ptr(3535, 3540, 1), new Range16.ptr(3542, 3544, 2), new Range16.ptr(3545, 3551, 1), new Range16.ptr(3570, 3571, 1), new Range16.ptr(3633, 3636, 3), new Range16.ptr(3637, 3642, 1), new Range16.ptr(3655, 3662, 1), new Range16.ptr(3761, 3764, 3), new Range16.ptr(3765, 3769, 1), new Range16.ptr(3771, 3772, 1), new Range16.ptr(3784, 3789, 1), new Range16.ptr(3864, 3865, 1), new Range16.ptr(3893, 3897, 2), new Range16.ptr(3902, 3903, 1), new Range16.ptr(3953, 3972, 1), new Range16.ptr(3974, 3975, 1), new Range16.ptr(3981, 3991, 1), new Range16.ptr(3993, 4028, 1), new Range16.ptr(4038, 4139, 101), new Range16.ptr(4140, 4158, 1), new Range16.ptr(4182, 4185, 1), new Range16.ptr(4190, 4192, 1), new Range16.ptr(4194, 4196, 1), new Range16.ptr(4199, 4205, 1), new Range16.ptr(4209, 4212, 1), new Range16.ptr(4226, 4237, 1), new Range16.ptr(4239, 4250, 11), new Range16.ptr(4251, 4253, 1), new Range16.ptr(4957, 4959, 1), new Range16.ptr(5906, 5908, 1), new Range16.ptr(5938, 5940, 1), new Range16.ptr(5970, 5971, 1), new Range16.ptr(6002, 6003, 1), new Range16.ptr(6068, 6099, 1), new Range16.ptr(6109, 6155, 46), new Range16.ptr(6156, 6157, 1), new Range16.ptr(6277, 6278, 1), new Range16.ptr(6313, 6432, 119), new Range16.ptr(6433, 6443, 1), new Range16.ptr(6448, 6459, 1), new Range16.ptr(6679, 6683, 1), new Range16.ptr(6741, 6750, 1), new Range16.ptr(6752, 6780, 1), new Range16.ptr(6783, 6832, 49), new Range16.ptr(6833, 6846, 1), new Range16.ptr(6912, 6916, 1), new Range16.ptr(6964, 6980, 1), new Range16.ptr(7019, 7027, 1), new Range16.ptr(7040, 7042, 1), new Range16.ptr(7073, 7085, 1), new Range16.ptr(7142, 7155, 1), new Range16.ptr(7204, 7223, 1), new Range16.ptr(7376, 7378, 1), new Range16.ptr(7380, 7400, 1), new Range16.ptr(7405, 7410, 5), new Range16.ptr(7411, 7412, 1), new Range16.ptr(7416, 7417, 1), new Range16.ptr(7616, 7669, 1), new Range16.ptr(7675, 7679, 1), new Range16.ptr(8400, 8432, 1), new Range16.ptr(11503, 11505, 1), new Range16.ptr(11647, 11744, 97), new Range16.ptr(11745, 11775, 1), new Range16.ptr(12330, 12335, 1), new Range16.ptr(12441, 12442, 1), new Range16.ptr(42607, 42610, 1), new Range16.ptr(42612, 42621, 1), new Range16.ptr(42654, 42655, 1), new Range16.ptr(42736, 42737, 1), new Range16.ptr(43010, 43014, 4), new Range16.ptr(43019, 43043, 24), new Range16.ptr(43044, 43047, 1), new Range16.ptr(43136, 43137, 1), new Range16.ptr(43188, 43205, 1), new Range16.ptr(43232, 43249, 1), new Range16.ptr(43302, 43309, 1), new Range16.ptr(43335, 43347, 1), new Range16.ptr(43392, 43395, 1), new Range16.ptr(43443, 43456, 1), new Range16.ptr(43493, 43561, 68), new Range16.ptr(43562, 43574, 1), new Range16.ptr(43587, 43596, 9), new Range16.ptr(43597, 43643, 46), new Range16.ptr(43644, 43645, 1), new Range16.ptr(43696, 43698, 2), new Range16.ptr(43699, 43700, 1), new Range16.ptr(43703, 43704, 1), new Range16.ptr(43710, 43711, 1), new Range16.ptr(43713, 43755, 42), new Range16.ptr(43756, 43759, 1), new Range16.ptr(43765, 43766, 1), new Range16.ptr(44003, 44010, 1), new Range16.ptr(44012, 44013, 1), new Range16.ptr(64286, 65024, 738), new Range16.ptr(65025, 65039, 1), new Range16.ptr(65056, 65071, 1)]), new sliceType$1([new Range32.ptr(66045, 66272, 227), new Range32.ptr(66422, 66426, 1), new Range32.ptr(68097, 68099, 1), new Range32.ptr(68101, 68102, 1), new Range32.ptr(68108, 68111, 1), new Range32.ptr(68152, 68154, 1), new Range32.ptr(68159, 68325, 166), new Range32.ptr(68326, 69632, 1306), new Range32.ptr(69633, 69634, 1), new Range32.ptr(69688, 69702, 1), new Range32.ptr(69759, 69762, 1), new Range32.ptr(69808, 69818, 1), new Range32.ptr(69888, 69890, 1), new Range32.ptr(69927, 69940, 1), new Range32.ptr(70003, 70016, 13), new Range32.ptr(70017, 70018, 1), new Range32.ptr(70067, 70080, 1), new Range32.ptr(70090, 70092, 1), new Range32.ptr(70188, 70199, 1), new Range32.ptr(70206, 70367, 161), new Range32.ptr(70368, 70378, 1), new Range32.ptr(70400, 70403, 1), new Range32.ptr(70460, 70462, 2), new Range32.ptr(70463, 70468, 1), new Range32.ptr(70471, 70472, 1), new Range32.ptr(70475, 70477, 1), new Range32.ptr(70487, 70498, 11), new Range32.ptr(70499, 70502, 3), new Range32.ptr(70503, 70508, 1), new Range32.ptr(70512, 70516, 1), new Range32.ptr(70709, 70726, 1), new Range32.ptr(70832, 70851, 1), new Range32.ptr(71087, 71093, 1), new Range32.ptr(71096, 71104, 1), new Range32.ptr(71132, 71133, 1), new Range32.ptr(71216, 71232, 1), new Range32.ptr(71339, 71351, 1), new Range32.ptr(71453, 71467, 1), new Range32.ptr(72751, 72758, 1), new Range32.ptr(72760, 72767, 1), new Range32.ptr(72850, 72871, 1), new Range32.ptr(72873, 72886, 1), new Range32.ptr(92912, 92916, 1), new Range32.ptr(92976, 92982, 1), new Range32.ptr(94033, 94078, 1), new Range32.ptr(94095, 94098, 1), new Range32.ptr(113821, 113822, 1), new Range32.ptr(119141, 119145, 1), new Range32.ptr(119149, 119154, 1), new Range32.ptr(119163, 119170, 1), new Range32.ptr(119173, 119179, 1), new Range32.ptr(119210, 119213, 1), new Range32.ptr(119362, 119364, 1), new Range32.ptr(121344, 121398, 1), new Range32.ptr(121403, 121452, 1), new Range32.ptr(121461, 121476, 15), new Range32.ptr(121499, 121503, 1), new Range32.ptr(121505, 121519, 1), new Range32.ptr(122880, 122886, 1), new Range32.ptr(122888, 122904, 1), new Range32.ptr(122907, 122913, 1), new Range32.ptr(122915, 122916, 1), new Range32.ptr(122918, 122922, 1), new Range32.ptr(125136, 125142, 1), new Range32.ptr(125252, 125258, 1), new Range32.ptr(917760, 917999, 1)]), 0); _Mc = new RangeTable.ptr(new sliceType([new Range16.ptr(2307, 2363, 56), new Range16.ptr(2366, 2368, 1), new Range16.ptr(2377, 2380, 1), new Range16.ptr(2382, 2383, 1), new Range16.ptr(2434, 2435, 1), new Range16.ptr(2494, 2496, 1), new Range16.ptr(2503, 2504, 1), new Range16.ptr(2507, 2508, 1), new Range16.ptr(2519, 2563, 44), new Range16.ptr(2622, 2624, 1), new Range16.ptr(2691, 2750, 59), new Range16.ptr(2751, 2752, 1), new Range16.ptr(2761, 2763, 2), new Range16.ptr(2764, 2818, 54), new Range16.ptr(2819, 2878, 59), new Range16.ptr(2880, 2887, 7), new Range16.ptr(2888, 2891, 3), new Range16.ptr(2892, 2903, 11), new Range16.ptr(3006, 3007, 1), new Range16.ptr(3009, 3010, 1), new Range16.ptr(3014, 3016, 1), new Range16.ptr(3018, 3020, 1), new Range16.ptr(3031, 3073, 42), new Range16.ptr(3074, 3075, 1), new Range16.ptr(3137, 3140, 1), new Range16.ptr(3202, 3203, 1), new Range16.ptr(3262, 3264, 2), new Range16.ptr(3265, 3268, 1), new Range16.ptr(3271, 3272, 1), new Range16.ptr(3274, 3275, 1), new Range16.ptr(3285, 3286, 1), new Range16.ptr(3330, 3331, 1), new Range16.ptr(3390, 3392, 1), new Range16.ptr(3398, 3400, 1), new Range16.ptr(3402, 3404, 1), new Range16.ptr(3415, 3458, 43), new Range16.ptr(3459, 3535, 76), new Range16.ptr(3536, 3537, 1), new Range16.ptr(3544, 3551, 1), new Range16.ptr(3570, 3571, 1), new Range16.ptr(3902, 3903, 1), new Range16.ptr(3967, 4139, 172), new Range16.ptr(4140, 4145, 5), new Range16.ptr(4152, 4155, 3), new Range16.ptr(4156, 4182, 26), new Range16.ptr(4183, 4194, 11), new Range16.ptr(4195, 4196, 1), new Range16.ptr(4199, 4205, 1), new Range16.ptr(4227, 4228, 1), new Range16.ptr(4231, 4236, 1), new Range16.ptr(4239, 4250, 11), new Range16.ptr(4251, 4252, 1), new Range16.ptr(6070, 6078, 8), new Range16.ptr(6079, 6085, 1), new Range16.ptr(6087, 6088, 1), new Range16.ptr(6435, 6438, 1), new Range16.ptr(6441, 6443, 1), new Range16.ptr(6448, 6449, 1), new Range16.ptr(6451, 6456, 1), new Range16.ptr(6681, 6682, 1), new Range16.ptr(6741, 6743, 2), new Range16.ptr(6753, 6755, 2), new Range16.ptr(6756, 6765, 9), new Range16.ptr(6766, 6770, 1), new Range16.ptr(6916, 6965, 49), new Range16.ptr(6971, 6973, 2), new Range16.ptr(6974, 6977, 1), new Range16.ptr(6979, 6980, 1), new Range16.ptr(7042, 7073, 31), new Range16.ptr(7078, 7079, 1), new Range16.ptr(7082, 7143, 61), new Range16.ptr(7146, 7148, 1), new Range16.ptr(7150, 7154, 4), new Range16.ptr(7155, 7204, 49), new Range16.ptr(7205, 7211, 1), new Range16.ptr(7220, 7221, 1), new Range16.ptr(7393, 7410, 17), new Range16.ptr(7411, 12334, 4923), new Range16.ptr(12335, 43043, 30708), new Range16.ptr(43044, 43047, 3), new Range16.ptr(43136, 43137, 1), new Range16.ptr(43188, 43203, 1), new Range16.ptr(43346, 43347, 1), new Range16.ptr(43395, 43444, 49), new Range16.ptr(43445, 43450, 5), new Range16.ptr(43451, 43453, 2), new Range16.ptr(43454, 43456, 1), new Range16.ptr(43567, 43568, 1), new Range16.ptr(43571, 43572, 1), new Range16.ptr(43597, 43643, 46), new Range16.ptr(43645, 43755, 110), new Range16.ptr(43758, 43759, 1), new Range16.ptr(43765, 44003, 238), new Range16.ptr(44004, 44006, 2), new Range16.ptr(44007, 44009, 2), new Range16.ptr(44010, 44012, 2)]), new sliceType$1([new Range32.ptr(69632, 69634, 2), new Range32.ptr(69762, 69808, 46), new Range32.ptr(69809, 69810, 1), new Range32.ptr(69815, 69816, 1), new Range32.ptr(69932, 70018, 86), new Range32.ptr(70067, 70069, 1), new Range32.ptr(70079, 70080, 1), new Range32.ptr(70188, 70190, 1), new Range32.ptr(70194, 70195, 1), new Range32.ptr(70197, 70368, 171), new Range32.ptr(70369, 70370, 1), new Range32.ptr(70402, 70403, 1), new Range32.ptr(70462, 70463, 1), new Range32.ptr(70465, 70468, 1), new Range32.ptr(70471, 70472, 1), new Range32.ptr(70475, 70477, 1), new Range32.ptr(70487, 70498, 11), new Range32.ptr(70499, 70709, 210), new Range32.ptr(70710, 70711, 1), new Range32.ptr(70720, 70721, 1), new Range32.ptr(70725, 70832, 107), new Range32.ptr(70833, 70834, 1), new Range32.ptr(70841, 70843, 2), new Range32.ptr(70844, 70846, 1), new Range32.ptr(70849, 71087, 238), new Range32.ptr(71088, 71089, 1), new Range32.ptr(71096, 71099, 1), new Range32.ptr(71102, 71216, 114), new Range32.ptr(71217, 71218, 1), new Range32.ptr(71227, 71228, 1), new Range32.ptr(71230, 71340, 110), new Range32.ptr(71342, 71343, 1), new Range32.ptr(71350, 71456, 106), new Range32.ptr(71457, 71462, 5), new Range32.ptr(72751, 72766, 15), new Range32.ptr(72873, 72881, 8), new Range32.ptr(72884, 94033, 21149), new Range32.ptr(94034, 94078, 1), new Range32.ptr(119141, 119142, 1), new Range32.ptr(119149, 119154, 1)]), 0); _Me = new RangeTable.ptr(new sliceType([new Range16.ptr(1160, 1161, 1), new Range16.ptr(6846, 8413, 1567), new Range16.ptr(8414, 8416, 1), new Range16.ptr(8418, 8420, 1), new Range16.ptr(42608, 42610, 1)]), sliceType$1.nil, 0); _Mn = new RangeTable.ptr(new sliceType([new Range16.ptr(768, 879, 1), new Range16.ptr(1155, 1159, 1), new Range16.ptr(1425, 1469, 1), new Range16.ptr(1471, 1473, 2), new Range16.ptr(1474, 1476, 2), new Range16.ptr(1477, 1479, 2), new Range16.ptr(1552, 1562, 1), new Range16.ptr(1611, 1631, 1), new Range16.ptr(1648, 1750, 102), new Range16.ptr(1751, 1756, 1), new Range16.ptr(1759, 1764, 1), new Range16.ptr(1767, 1768, 1), new Range16.ptr(1770, 1773, 1), new Range16.ptr(1809, 1840, 31), new Range16.ptr(1841, 1866, 1), new Range16.ptr(1958, 1968, 1), new Range16.ptr(2027, 2035, 1), new Range16.ptr(2070, 2073, 1), new Range16.ptr(2075, 2083, 1), new Range16.ptr(2085, 2087, 1), new Range16.ptr(2089, 2093, 1), new Range16.ptr(2137, 2139, 1), new Range16.ptr(2260, 2273, 1), new Range16.ptr(2275, 2306, 1), new Range16.ptr(2362, 2364, 2), new Range16.ptr(2369, 2376, 1), new Range16.ptr(2381, 2385, 4), new Range16.ptr(2386, 2391, 1), new Range16.ptr(2402, 2403, 1), new Range16.ptr(2433, 2492, 59), new Range16.ptr(2497, 2500, 1), new Range16.ptr(2509, 2530, 21), new Range16.ptr(2531, 2561, 30), new Range16.ptr(2562, 2620, 58), new Range16.ptr(2625, 2626, 1), new Range16.ptr(2631, 2632, 1), new Range16.ptr(2635, 2637, 1), new Range16.ptr(2641, 2672, 31), new Range16.ptr(2673, 2677, 4), new Range16.ptr(2689, 2690, 1), new Range16.ptr(2748, 2753, 5), new Range16.ptr(2754, 2757, 1), new Range16.ptr(2759, 2760, 1), new Range16.ptr(2765, 2786, 21), new Range16.ptr(2787, 2817, 30), new Range16.ptr(2876, 2879, 3), new Range16.ptr(2881, 2884, 1), new Range16.ptr(2893, 2902, 9), new Range16.ptr(2914, 2915, 1), new Range16.ptr(2946, 3008, 62), new Range16.ptr(3021, 3072, 51), new Range16.ptr(3134, 3136, 1), new Range16.ptr(3142, 3144, 1), new Range16.ptr(3146, 3149, 1), new Range16.ptr(3157, 3158, 1), new Range16.ptr(3170, 3171, 1), new Range16.ptr(3201, 3260, 59), new Range16.ptr(3263, 3270, 7), new Range16.ptr(3276, 3277, 1), new Range16.ptr(3298, 3299, 1), new Range16.ptr(3329, 3393, 64), new Range16.ptr(3394, 3396, 1), new Range16.ptr(3405, 3426, 21), new Range16.ptr(3427, 3530, 103), new Range16.ptr(3538, 3540, 1), new Range16.ptr(3542, 3633, 91), new Range16.ptr(3636, 3642, 1), new Range16.ptr(3655, 3662, 1), new Range16.ptr(3761, 3764, 3), new Range16.ptr(3765, 3769, 1), new Range16.ptr(3771, 3772, 1), new Range16.ptr(3784, 3789, 1), new Range16.ptr(3864, 3865, 1), new Range16.ptr(3893, 3897, 2), new Range16.ptr(3953, 3966, 1), new Range16.ptr(3968, 3972, 1), new Range16.ptr(3974, 3975, 1), new Range16.ptr(3981, 3991, 1), new Range16.ptr(3993, 4028, 1), new Range16.ptr(4038, 4141, 103), new Range16.ptr(4142, 4144, 1), new Range16.ptr(4146, 4151, 1), new Range16.ptr(4153, 4154, 1), new Range16.ptr(4157, 4158, 1), new Range16.ptr(4184, 4185, 1), new Range16.ptr(4190, 4192, 1), new Range16.ptr(4209, 4212, 1), new Range16.ptr(4226, 4229, 3), new Range16.ptr(4230, 4237, 7), new Range16.ptr(4253, 4957, 704), new Range16.ptr(4958, 4959, 1), new Range16.ptr(5906, 5908, 1), new Range16.ptr(5938, 5940, 1), new Range16.ptr(5970, 5971, 1), new Range16.ptr(6002, 6003, 1), new Range16.ptr(6068, 6069, 1), new Range16.ptr(6071, 6077, 1), new Range16.ptr(6086, 6089, 3), new Range16.ptr(6090, 6099, 1), new Range16.ptr(6109, 6155, 46), new Range16.ptr(6156, 6157, 1), new Range16.ptr(6277, 6278, 1), new Range16.ptr(6313, 6432, 119), new Range16.ptr(6433, 6434, 1), new Range16.ptr(6439, 6440, 1), new Range16.ptr(6450, 6457, 7), new Range16.ptr(6458, 6459, 1), new Range16.ptr(6679, 6680, 1), new Range16.ptr(6683, 6742, 59), new Range16.ptr(6744, 6750, 1), new Range16.ptr(6752, 6754, 2), new Range16.ptr(6757, 6764, 1), new Range16.ptr(6771, 6780, 1), new Range16.ptr(6783, 6832, 49), new Range16.ptr(6833, 6845, 1), new Range16.ptr(6912, 6915, 1), new Range16.ptr(6964, 6966, 2), new Range16.ptr(6967, 6970, 1), new Range16.ptr(6972, 6978, 6), new Range16.ptr(7019, 7027, 1), new Range16.ptr(7040, 7041, 1), new Range16.ptr(7074, 7077, 1), new Range16.ptr(7080, 7081, 1), new Range16.ptr(7083, 7085, 1), new Range16.ptr(7142, 7144, 2), new Range16.ptr(7145, 7149, 4), new Range16.ptr(7151, 7153, 1), new Range16.ptr(7212, 7219, 1), new Range16.ptr(7222, 7223, 1), new Range16.ptr(7376, 7378, 1), new Range16.ptr(7380, 7392, 1), new Range16.ptr(7394, 7400, 1), new Range16.ptr(7405, 7412, 7), new Range16.ptr(7416, 7417, 1), new Range16.ptr(7616, 7669, 1), new Range16.ptr(7675, 7679, 1), new Range16.ptr(8400, 8412, 1), new Range16.ptr(8417, 8421, 4), new Range16.ptr(8422, 8432, 1), new Range16.ptr(11503, 11505, 1), new Range16.ptr(11647, 11744, 97), new Range16.ptr(11745, 11775, 1), new Range16.ptr(12330, 12333, 1), new Range16.ptr(12441, 12442, 1), new Range16.ptr(42607, 42612, 5), new Range16.ptr(42613, 42621, 1), new Range16.ptr(42654, 42655, 1), new Range16.ptr(42736, 42737, 1), new Range16.ptr(43010, 43014, 4), new Range16.ptr(43019, 43045, 26), new Range16.ptr(43046, 43204, 158), new Range16.ptr(43205, 43232, 27), new Range16.ptr(43233, 43249, 1), new Range16.ptr(43302, 43309, 1), new Range16.ptr(43335, 43345, 1), new Range16.ptr(43392, 43394, 1), new Range16.ptr(43443, 43446, 3), new Range16.ptr(43447, 43449, 1), new Range16.ptr(43452, 43493, 41), new Range16.ptr(43561, 43566, 1), new Range16.ptr(43569, 43570, 1), new Range16.ptr(43573, 43574, 1), new Range16.ptr(43587, 43596, 9), new Range16.ptr(43644, 43696, 52), new Range16.ptr(43698, 43700, 1), new Range16.ptr(43703, 43704, 1), new Range16.ptr(43710, 43711, 1), new Range16.ptr(43713, 43756, 43), new Range16.ptr(43757, 43766, 9), new Range16.ptr(44005, 44008, 3), new Range16.ptr(44013, 64286, 20273), new Range16.ptr(65024, 65039, 1), new Range16.ptr(65056, 65071, 1)]), new sliceType$1([new Range32.ptr(66045, 66272, 227), new Range32.ptr(66422, 66426, 1), new Range32.ptr(68097, 68099, 1), new Range32.ptr(68101, 68102, 1), new Range32.ptr(68108, 68111, 1), new Range32.ptr(68152, 68154, 1), new Range32.ptr(68159, 68325, 166), new Range32.ptr(68326, 69633, 1307), new Range32.ptr(69688, 69702, 1), new Range32.ptr(69759, 69761, 1), new Range32.ptr(69811, 69814, 1), new Range32.ptr(69817, 69818, 1), new Range32.ptr(69888, 69890, 1), new Range32.ptr(69927, 69931, 1), new Range32.ptr(69933, 69940, 1), new Range32.ptr(70003, 70016, 13), new Range32.ptr(70017, 70070, 53), new Range32.ptr(70071, 70078, 1), new Range32.ptr(70090, 70092, 1), new Range32.ptr(70191, 70193, 1), new Range32.ptr(70196, 70198, 2), new Range32.ptr(70199, 70206, 7), new Range32.ptr(70367, 70371, 4), new Range32.ptr(70372, 70378, 1), new Range32.ptr(70400, 70401, 1), new Range32.ptr(70460, 70464, 4), new Range32.ptr(70502, 70508, 1), new Range32.ptr(70512, 70516, 1), new Range32.ptr(70712, 70719, 1), new Range32.ptr(70722, 70724, 1), new Range32.ptr(70726, 70835, 109), new Range32.ptr(70836, 70840, 1), new Range32.ptr(70842, 70847, 5), new Range32.ptr(70848, 70850, 2), new Range32.ptr(70851, 71090, 239), new Range32.ptr(71091, 71093, 1), new Range32.ptr(71100, 71101, 1), new Range32.ptr(71103, 71104, 1), new Range32.ptr(71132, 71133, 1), new Range32.ptr(71219, 71226, 1), new Range32.ptr(71229, 71231, 2), new Range32.ptr(71232, 71339, 107), new Range32.ptr(71341, 71344, 3), new Range32.ptr(71345, 71349, 1), new Range32.ptr(71351, 71453, 102), new Range32.ptr(71454, 71455, 1), new Range32.ptr(71458, 71461, 1), new Range32.ptr(71463, 71467, 1), new Range32.ptr(72752, 72758, 1), new Range32.ptr(72760, 72765, 1), new Range32.ptr(72767, 72850, 83), new Range32.ptr(72851, 72871, 1), new Range32.ptr(72874, 72880, 1), new Range32.ptr(72882, 72883, 1), new Range32.ptr(72885, 72886, 1), new Range32.ptr(92912, 92916, 1), new Range32.ptr(92976, 92982, 1), new Range32.ptr(94095, 94098, 1), new Range32.ptr(113821, 113822, 1), new Range32.ptr(119143, 119145, 1), new Range32.ptr(119163, 119170, 1), new Range32.ptr(119173, 119179, 1), new Range32.ptr(119210, 119213, 1), new Range32.ptr(119362, 119364, 1), new Range32.ptr(121344, 121398, 1), new Range32.ptr(121403, 121452, 1), new Range32.ptr(121461, 121476, 15), new Range32.ptr(121499, 121503, 1), new Range32.ptr(121505, 121519, 1), new Range32.ptr(122880, 122886, 1), new Range32.ptr(122888, 122904, 1), new Range32.ptr(122907, 122913, 1), new Range32.ptr(122915, 122916, 1), new Range32.ptr(122918, 122922, 1), new Range32.ptr(125136, 125142, 1), new Range32.ptr(125252, 125258, 1), new Range32.ptr(917760, 917999, 1)]), 0); _N = new RangeTable.ptr(new sliceType([new Range16.ptr(48, 57, 1), new Range16.ptr(178, 179, 1), new Range16.ptr(185, 188, 3), new Range16.ptr(189, 190, 1), new Range16.ptr(1632, 1641, 1), new Range16.ptr(1776, 1785, 1), new Range16.ptr(1984, 1993, 1), new Range16.ptr(2406, 2415, 1), new Range16.ptr(2534, 2543, 1), new Range16.ptr(2548, 2553, 1), new Range16.ptr(2662, 2671, 1), new Range16.ptr(2790, 2799, 1), new Range16.ptr(2918, 2927, 1), new Range16.ptr(2930, 2935, 1), new Range16.ptr(3046, 3058, 1), new Range16.ptr(3174, 3183, 1), new Range16.ptr(3192, 3198, 1), new Range16.ptr(3302, 3311, 1), new Range16.ptr(3416, 3422, 1), new Range16.ptr(3430, 3448, 1), new Range16.ptr(3558, 3567, 1), new Range16.ptr(3664, 3673, 1), new Range16.ptr(3792, 3801, 1), new Range16.ptr(3872, 3891, 1), new Range16.ptr(4160, 4169, 1), new Range16.ptr(4240, 4249, 1), new Range16.ptr(4969, 4988, 1), new Range16.ptr(5870, 5872, 1), new Range16.ptr(6112, 6121, 1), new Range16.ptr(6128, 6137, 1), new Range16.ptr(6160, 6169, 1), new Range16.ptr(6470, 6479, 1), new Range16.ptr(6608, 6618, 1), new Range16.ptr(6784, 6793, 1), new Range16.ptr(6800, 6809, 1), new Range16.ptr(6992, 7001, 1), new Range16.ptr(7088, 7097, 1), new Range16.ptr(7232, 7241, 1), new Range16.ptr(7248, 7257, 1), new Range16.ptr(8304, 8308, 4), new Range16.ptr(8309, 8313, 1), new Range16.ptr(8320, 8329, 1), new Range16.ptr(8528, 8578, 1), new Range16.ptr(8581, 8585, 1), new Range16.ptr(9312, 9371, 1), new Range16.ptr(9450, 9471, 1), new Range16.ptr(10102, 10131, 1), new Range16.ptr(11517, 12295, 778), new Range16.ptr(12321, 12329, 1), new Range16.ptr(12344, 12346, 1), new Range16.ptr(12690, 12693, 1), new Range16.ptr(12832, 12841, 1), new Range16.ptr(12872, 12879, 1), new Range16.ptr(12881, 12895, 1), new Range16.ptr(12928, 12937, 1), new Range16.ptr(12977, 12991, 1), new Range16.ptr(42528, 42537, 1), new Range16.ptr(42726, 42735, 1), new Range16.ptr(43056, 43061, 1), new Range16.ptr(43216, 43225, 1), new Range16.ptr(43264, 43273, 1), new Range16.ptr(43472, 43481, 1), new Range16.ptr(43504, 43513, 1), new Range16.ptr(43600, 43609, 1), new Range16.ptr(44016, 44025, 1), new Range16.ptr(65296, 65305, 1)]), new sliceType$1([new Range32.ptr(65799, 65843, 1), new Range32.ptr(65856, 65912, 1), new Range32.ptr(65930, 65931, 1), new Range32.ptr(66273, 66299, 1), new Range32.ptr(66336, 66339, 1), new Range32.ptr(66369, 66378, 9), new Range32.ptr(66513, 66517, 1), new Range32.ptr(66720, 66729, 1), new Range32.ptr(67672, 67679, 1), new Range32.ptr(67705, 67711, 1), new Range32.ptr(67751, 67759, 1), new Range32.ptr(67835, 67839, 1), new Range32.ptr(67862, 67867, 1), new Range32.ptr(68028, 68029, 1), new Range32.ptr(68032, 68047, 1), new Range32.ptr(68050, 68095, 1), new Range32.ptr(68160, 68167, 1), new Range32.ptr(68221, 68222, 1), new Range32.ptr(68253, 68255, 1), new Range32.ptr(68331, 68335, 1), new Range32.ptr(68440, 68447, 1), new Range32.ptr(68472, 68479, 1), new Range32.ptr(68521, 68527, 1), new Range32.ptr(68858, 68863, 1), new Range32.ptr(69216, 69246, 1), new Range32.ptr(69714, 69743, 1), new Range32.ptr(69872, 69881, 1), new Range32.ptr(69942, 69951, 1), new Range32.ptr(70096, 70105, 1), new Range32.ptr(70113, 70132, 1), new Range32.ptr(70384, 70393, 1), new Range32.ptr(70736, 70745, 1), new Range32.ptr(70864, 70873, 1), new Range32.ptr(71248, 71257, 1), new Range32.ptr(71360, 71369, 1), new Range32.ptr(71472, 71483, 1), new Range32.ptr(71904, 71922, 1), new Range32.ptr(72784, 72812, 1), new Range32.ptr(74752, 74862, 1), new Range32.ptr(92768, 92777, 1), new Range32.ptr(93008, 93017, 1), new Range32.ptr(93019, 93025, 1), new Range32.ptr(119648, 119665, 1), new Range32.ptr(120782, 120831, 1), new Range32.ptr(125127, 125135, 1), new Range32.ptr(125264, 125273, 1), new Range32.ptr(127232, 127244, 1)]), 4); _Nd = new RangeTable.ptr(new sliceType([new Range16.ptr(48, 57, 1), new Range16.ptr(1632, 1641, 1), new Range16.ptr(1776, 1785, 1), new Range16.ptr(1984, 1993, 1), new Range16.ptr(2406, 2415, 1), new Range16.ptr(2534, 2543, 1), new Range16.ptr(2662, 2671, 1), new Range16.ptr(2790, 2799, 1), new Range16.ptr(2918, 2927, 1), new Range16.ptr(3046, 3055, 1), new Range16.ptr(3174, 3183, 1), new Range16.ptr(3302, 3311, 1), new Range16.ptr(3430, 3439, 1), new Range16.ptr(3558, 3567, 1), new Range16.ptr(3664, 3673, 1), new Range16.ptr(3792, 3801, 1), new Range16.ptr(3872, 3881, 1), new Range16.ptr(4160, 4169, 1), new Range16.ptr(4240, 4249, 1), new Range16.ptr(6112, 6121, 1), new Range16.ptr(6160, 6169, 1), new Range16.ptr(6470, 6479, 1), new Range16.ptr(6608, 6617, 1), new Range16.ptr(6784, 6793, 1), new Range16.ptr(6800, 6809, 1), new Range16.ptr(6992, 7001, 1), new Range16.ptr(7088, 7097, 1), new Range16.ptr(7232, 7241, 1), new Range16.ptr(7248, 7257, 1), new Range16.ptr(42528, 42537, 1), new Range16.ptr(43216, 43225, 1), new Range16.ptr(43264, 43273, 1), new Range16.ptr(43472, 43481, 1), new Range16.ptr(43504, 43513, 1), new Range16.ptr(43600, 43609, 1), new Range16.ptr(44016, 44025, 1), new Range16.ptr(65296, 65305, 1)]), new sliceType$1([new Range32.ptr(66720, 66729, 1), new Range32.ptr(69734, 69743, 1), new Range32.ptr(69872, 69881, 1), new Range32.ptr(69942, 69951, 1), new Range32.ptr(70096, 70105, 1), new Range32.ptr(70384, 70393, 1), new Range32.ptr(70736, 70745, 1), new Range32.ptr(70864, 70873, 1), new Range32.ptr(71248, 71257, 1), new Range32.ptr(71360, 71369, 1), new Range32.ptr(71472, 71481, 1), new Range32.ptr(71904, 71913, 1), new Range32.ptr(72784, 72793, 1), new Range32.ptr(92768, 92777, 1), new Range32.ptr(93008, 93017, 1), new Range32.ptr(120782, 120831, 1), new Range32.ptr(125264, 125273, 1)]), 1); _Nl = new RangeTable.ptr(new sliceType([new Range16.ptr(5870, 5872, 1), new Range16.ptr(8544, 8578, 1), new Range16.ptr(8581, 8584, 1), new Range16.ptr(12295, 12321, 26), new Range16.ptr(12322, 12329, 1), new Range16.ptr(12344, 12346, 1), new Range16.ptr(42726, 42735, 1)]), new sliceType$1([new Range32.ptr(65856, 65908, 1), new Range32.ptr(66369, 66378, 9), new Range32.ptr(66513, 66517, 1), new Range32.ptr(74752, 74862, 1)]), 0); _No = new RangeTable.ptr(new sliceType([new Range16.ptr(178, 179, 1), new Range16.ptr(185, 188, 3), new Range16.ptr(189, 190, 1), new Range16.ptr(2548, 2553, 1), new Range16.ptr(2930, 2935, 1), new Range16.ptr(3056, 3058, 1), new Range16.ptr(3192, 3198, 1), new Range16.ptr(3416, 3422, 1), new Range16.ptr(3440, 3448, 1), new Range16.ptr(3882, 3891, 1), new Range16.ptr(4969, 4988, 1), new Range16.ptr(6128, 6137, 1), new Range16.ptr(6618, 8304, 1686), new Range16.ptr(8308, 8313, 1), new Range16.ptr(8320, 8329, 1), new Range16.ptr(8528, 8543, 1), new Range16.ptr(8585, 9312, 727), new Range16.ptr(9313, 9371, 1), new Range16.ptr(9450, 9471, 1), new Range16.ptr(10102, 10131, 1), new Range16.ptr(11517, 12690, 1173), new Range16.ptr(12691, 12693, 1), new Range16.ptr(12832, 12841, 1), new Range16.ptr(12872, 12879, 1), new Range16.ptr(12881, 12895, 1), new Range16.ptr(12928, 12937, 1), new Range16.ptr(12977, 12991, 1), new Range16.ptr(43056, 43061, 1)]), new sliceType$1([new Range32.ptr(65799, 65843, 1), new Range32.ptr(65909, 65912, 1), new Range32.ptr(65930, 65931, 1), new Range32.ptr(66273, 66299, 1), new Range32.ptr(66336, 66339, 1), new Range32.ptr(67672, 67679, 1), new Range32.ptr(67705, 67711, 1), new Range32.ptr(67751, 67759, 1), new Range32.ptr(67835, 67839, 1), new Range32.ptr(67862, 67867, 1), new Range32.ptr(68028, 68029, 1), new Range32.ptr(68032, 68047, 1), new Range32.ptr(68050, 68095, 1), new Range32.ptr(68160, 68167, 1), new Range32.ptr(68221, 68222, 1), new Range32.ptr(68253, 68255, 1), new Range32.ptr(68331, 68335, 1), new Range32.ptr(68440, 68447, 1), new Range32.ptr(68472, 68479, 1), new Range32.ptr(68521, 68527, 1), new Range32.ptr(68858, 68863, 1), new Range32.ptr(69216, 69246, 1), new Range32.ptr(69714, 69733, 1), new Range32.ptr(70113, 70132, 1), new Range32.ptr(71482, 71483, 1), new Range32.ptr(71914, 71922, 1), new Range32.ptr(72794, 72812, 1), new Range32.ptr(93019, 93025, 1), new Range32.ptr(119648, 119665, 1), new Range32.ptr(125127, 125135, 1), new Range32.ptr(127232, 127244, 1)]), 3); _P = new RangeTable.ptr(new sliceType([new Range16.ptr(33, 35, 1), new Range16.ptr(37, 42, 1), new Range16.ptr(44, 47, 1), new Range16.ptr(58, 59, 1), new Range16.ptr(63, 64, 1), new Range16.ptr(91, 93, 1), new Range16.ptr(95, 123, 28), new Range16.ptr(125, 161, 36), new Range16.ptr(167, 171, 4), new Range16.ptr(182, 183, 1), new Range16.ptr(187, 191, 4), new Range16.ptr(894, 903, 9), new Range16.ptr(1370, 1375, 1), new Range16.ptr(1417, 1418, 1), new Range16.ptr(1470, 1472, 2), new Range16.ptr(1475, 1478, 3), new Range16.ptr(1523, 1524, 1), new Range16.ptr(1545, 1546, 1), new Range16.ptr(1548, 1549, 1), new Range16.ptr(1563, 1566, 3), new Range16.ptr(1567, 1642, 75), new Range16.ptr(1643, 1645, 1), new Range16.ptr(1748, 1792, 44), new Range16.ptr(1793, 1805, 1), new Range16.ptr(2039, 2041, 1), new Range16.ptr(2096, 2110, 1), new Range16.ptr(2142, 2404, 262), new Range16.ptr(2405, 2416, 11), new Range16.ptr(2800, 3572, 772), new Range16.ptr(3663, 3674, 11), new Range16.ptr(3675, 3844, 169), new Range16.ptr(3845, 3858, 1), new Range16.ptr(3860, 3898, 38), new Range16.ptr(3899, 3901, 1), new Range16.ptr(3973, 4048, 75), new Range16.ptr(4049, 4052, 1), new Range16.ptr(4057, 4058, 1), new Range16.ptr(4170, 4175, 1), new Range16.ptr(4347, 4960, 613), new Range16.ptr(4961, 4968, 1), new Range16.ptr(5120, 5741, 621), new Range16.ptr(5742, 5787, 45), new Range16.ptr(5788, 5867, 79), new Range16.ptr(5868, 5869, 1), new Range16.ptr(5941, 5942, 1), new Range16.ptr(6100, 6102, 1), new Range16.ptr(6104, 6106, 1), new Range16.ptr(6144, 6154, 1), new Range16.ptr(6468, 6469, 1), new Range16.ptr(6686, 6687, 1), new Range16.ptr(6816, 6822, 1), new Range16.ptr(6824, 6829, 1), new Range16.ptr(7002, 7008, 1), new Range16.ptr(7164, 7167, 1), new Range16.ptr(7227, 7231, 1), new Range16.ptr(7294, 7295, 1), new Range16.ptr(7360, 7367, 1), new Range16.ptr(7379, 8208, 829), new Range16.ptr(8209, 8231, 1), new Range16.ptr(8240, 8259, 1), new Range16.ptr(8261, 8273, 1), new Range16.ptr(8275, 8286, 1), new Range16.ptr(8317, 8318, 1), new Range16.ptr(8333, 8334, 1), new Range16.ptr(8968, 8971, 1), new Range16.ptr(9001, 9002, 1), new Range16.ptr(10088, 10101, 1), new Range16.ptr(10181, 10182, 1), new Range16.ptr(10214, 10223, 1), new Range16.ptr(10627, 10648, 1), new Range16.ptr(10712, 10715, 1), new Range16.ptr(10748, 10749, 1), new Range16.ptr(11513, 11516, 1), new Range16.ptr(11518, 11519, 1), new Range16.ptr(11632, 11776, 144), new Range16.ptr(11777, 11822, 1), new Range16.ptr(11824, 11844, 1), new Range16.ptr(12289, 12291, 1), new Range16.ptr(12296, 12305, 1), new Range16.ptr(12308, 12319, 1), new Range16.ptr(12336, 12349, 13), new Range16.ptr(12448, 12539, 91), new Range16.ptr(42238, 42239, 1), new Range16.ptr(42509, 42511, 1), new Range16.ptr(42611, 42622, 11), new Range16.ptr(42738, 42743, 1), new Range16.ptr(43124, 43127, 1), new Range16.ptr(43214, 43215, 1), new Range16.ptr(43256, 43258, 1), new Range16.ptr(43260, 43310, 50), new Range16.ptr(43311, 43359, 48), new Range16.ptr(43457, 43469, 1), new Range16.ptr(43486, 43487, 1), new Range16.ptr(43612, 43615, 1), new Range16.ptr(43742, 43743, 1), new Range16.ptr(43760, 43761, 1), new Range16.ptr(44011, 64830, 20819), new Range16.ptr(64831, 65040, 209), new Range16.ptr(65041, 65049, 1), new Range16.ptr(65072, 65106, 1), new Range16.ptr(65108, 65121, 1), new Range16.ptr(65123, 65128, 5), new Range16.ptr(65130, 65131, 1), new Range16.ptr(65281, 65283, 1), new Range16.ptr(65285, 65290, 1), new Range16.ptr(65292, 65295, 1), new Range16.ptr(65306, 65307, 1), new Range16.ptr(65311, 65312, 1), new Range16.ptr(65339, 65341, 1), new Range16.ptr(65343, 65371, 28), new Range16.ptr(65373, 65375, 2), new Range16.ptr(65376, 65381, 1)]), new sliceType$1([new Range32.ptr(65792, 65794, 1), new Range32.ptr(66463, 66512, 49), new Range32.ptr(66927, 67671, 744), new Range32.ptr(67871, 67903, 32), new Range32.ptr(68176, 68184, 1), new Range32.ptr(68223, 68336, 113), new Range32.ptr(68337, 68342, 1), new Range32.ptr(68409, 68415, 1), new Range32.ptr(68505, 68508, 1), new Range32.ptr(69703, 69709, 1), new Range32.ptr(69819, 69820, 1), new Range32.ptr(69822, 69825, 1), new Range32.ptr(69952, 69955, 1), new Range32.ptr(70004, 70005, 1), new Range32.ptr(70085, 70089, 1), new Range32.ptr(70093, 70107, 14), new Range32.ptr(70109, 70111, 1), new Range32.ptr(70200, 70205, 1), new Range32.ptr(70313, 70731, 418), new Range32.ptr(70732, 70735, 1), new Range32.ptr(70747, 70749, 2), new Range32.ptr(70854, 71105, 251), new Range32.ptr(71106, 71127, 1), new Range32.ptr(71233, 71235, 1), new Range32.ptr(71264, 71276, 1), new Range32.ptr(71484, 71486, 1), new Range32.ptr(72769, 72773, 1), new Range32.ptr(72816, 72817, 1), new Range32.ptr(74864, 74868, 1), new Range32.ptr(92782, 92783, 1), new Range32.ptr(92917, 92983, 66), new Range32.ptr(92984, 92987, 1), new Range32.ptr(92996, 113823, 20827), new Range32.ptr(121479, 121483, 1), new Range32.ptr(125278, 125279, 1)]), 11); _Pc = new RangeTable.ptr(new sliceType([new Range16.ptr(95, 8255, 8160), new Range16.ptr(8256, 8276, 20), new Range16.ptr(65075, 65076, 1), new Range16.ptr(65101, 65103, 1), new Range16.ptr(65343, 65343, 1)]), sliceType$1.nil, 0); _Pd = new RangeTable.ptr(new sliceType([new Range16.ptr(45, 1418, 1373), new Range16.ptr(1470, 5120, 3650), new Range16.ptr(6150, 8208, 2058), new Range16.ptr(8209, 8213, 1), new Range16.ptr(11799, 11802, 3), new Range16.ptr(11834, 11835, 1), new Range16.ptr(11840, 12316, 476), new Range16.ptr(12336, 12448, 112), new Range16.ptr(65073, 65074, 1), new Range16.ptr(65112, 65123, 11), new Range16.ptr(65293, 65293, 1)]), sliceType$1.nil, 0); _Pe = new RangeTable.ptr(new sliceType([new Range16.ptr(41, 93, 52), new Range16.ptr(125, 3899, 3774), new Range16.ptr(3901, 5788, 1887), new Range16.ptr(8262, 8318, 56), new Range16.ptr(8334, 8969, 635), new Range16.ptr(8971, 9002, 31), new Range16.ptr(10089, 10101, 2), new Range16.ptr(10182, 10215, 33), new Range16.ptr(10217, 10223, 2), new Range16.ptr(10628, 10648, 2), new Range16.ptr(10713, 10715, 2), new Range16.ptr(10749, 11811, 1062), new Range16.ptr(11813, 11817, 2), new Range16.ptr(12297, 12305, 2), new Range16.ptr(12309, 12315, 2), new Range16.ptr(12318, 12319, 1), new Range16.ptr(64830, 65048, 218), new Range16.ptr(65078, 65092, 2), new Range16.ptr(65096, 65114, 18), new Range16.ptr(65116, 65118, 2), new Range16.ptr(65289, 65341, 52), new Range16.ptr(65373, 65379, 3)]), sliceType$1.nil, 1); _Pf = new RangeTable.ptr(new sliceType([new Range16.ptr(187, 8217, 8030), new Range16.ptr(8221, 8250, 29), new Range16.ptr(11779, 11781, 2), new Range16.ptr(11786, 11789, 3), new Range16.ptr(11805, 11809, 4)]), sliceType$1.nil, 0); _Pi = new RangeTable.ptr(new sliceType([new Range16.ptr(171, 8216, 8045), new Range16.ptr(8219, 8220, 1), new Range16.ptr(8223, 8249, 26), new Range16.ptr(11778, 11780, 2), new Range16.ptr(11785, 11788, 3), new Range16.ptr(11804, 11808, 4)]), sliceType$1.nil, 0); _Po = new RangeTable.ptr(new sliceType([new Range16.ptr(33, 35, 1), new Range16.ptr(37, 39, 1), new Range16.ptr(42, 46, 2), new Range16.ptr(47, 58, 11), new Range16.ptr(59, 63, 4), new Range16.ptr(64, 92, 28), new Range16.ptr(161, 167, 6), new Range16.ptr(182, 183, 1), new Range16.ptr(191, 894, 703), new Range16.ptr(903, 1370, 467), new Range16.ptr(1371, 1375, 1), new Range16.ptr(1417, 1472, 55), new Range16.ptr(1475, 1478, 3), new Range16.ptr(1523, 1524, 1), new Range16.ptr(1545, 1546, 1), new Range16.ptr(1548, 1549, 1), new Range16.ptr(1563, 1566, 3), new Range16.ptr(1567, 1642, 75), new Range16.ptr(1643, 1645, 1), new Range16.ptr(1748, 1792, 44), new Range16.ptr(1793, 1805, 1), new Range16.ptr(2039, 2041, 1), new Range16.ptr(2096, 2110, 1), new Range16.ptr(2142, 2404, 262), new Range16.ptr(2405, 2416, 11), new Range16.ptr(2800, 3572, 772), new Range16.ptr(3663, 3674, 11), new Range16.ptr(3675, 3844, 169), new Range16.ptr(3845, 3858, 1), new Range16.ptr(3860, 3973, 113), new Range16.ptr(4048, 4052, 1), new Range16.ptr(4057, 4058, 1), new Range16.ptr(4170, 4175, 1), new Range16.ptr(4347, 4960, 613), new Range16.ptr(4961, 4968, 1), new Range16.ptr(5741, 5742, 1), new Range16.ptr(5867, 5869, 1), new Range16.ptr(5941, 5942, 1), new Range16.ptr(6100, 6102, 1), new Range16.ptr(6104, 6106, 1), new Range16.ptr(6144, 6149, 1), new Range16.ptr(6151, 6154, 1), new Range16.ptr(6468, 6469, 1), new Range16.ptr(6686, 6687, 1), new Range16.ptr(6816, 6822, 1), new Range16.ptr(6824, 6829, 1), new Range16.ptr(7002, 7008, 1), new Range16.ptr(7164, 7167, 1), new Range16.ptr(7227, 7231, 1), new Range16.ptr(7294, 7295, 1), new Range16.ptr(7360, 7367, 1), new Range16.ptr(7379, 8214, 835), new Range16.ptr(8215, 8224, 9), new Range16.ptr(8225, 8231, 1), new Range16.ptr(8240, 8248, 1), new Range16.ptr(8251, 8254, 1), new Range16.ptr(8257, 8259, 1), new Range16.ptr(8263, 8273, 1), new Range16.ptr(8275, 8277, 2), new Range16.ptr(8278, 8286, 1), new Range16.ptr(11513, 11516, 1), new Range16.ptr(11518, 11519, 1), new Range16.ptr(11632, 11776, 144), new Range16.ptr(11777, 11782, 5), new Range16.ptr(11783, 11784, 1), new Range16.ptr(11787, 11790, 3), new Range16.ptr(11791, 11798, 1), new Range16.ptr(11800, 11801, 1), new Range16.ptr(11803, 11806, 3), new Range16.ptr(11807, 11818, 11), new Range16.ptr(11819, 11822, 1), new Range16.ptr(11824, 11833, 1), new Range16.ptr(11836, 11839, 1), new Range16.ptr(11841, 11843, 2), new Range16.ptr(11844, 12289, 445), new Range16.ptr(12290, 12291, 1), new Range16.ptr(12349, 12539, 190), new Range16.ptr(42238, 42239, 1), new Range16.ptr(42509, 42511, 1), new Range16.ptr(42611, 42622, 11), new Range16.ptr(42738, 42743, 1), new Range16.ptr(43124, 43127, 1), new Range16.ptr(43214, 43215, 1), new Range16.ptr(43256, 43258, 1), new Range16.ptr(43260, 43310, 50), new Range16.ptr(43311, 43359, 48), new Range16.ptr(43457, 43469, 1), new Range16.ptr(43486, 43487, 1), new Range16.ptr(43612, 43615, 1), new Range16.ptr(43742, 43743, 1), new Range16.ptr(43760, 43761, 1), new Range16.ptr(44011, 65040, 21029), new Range16.ptr(65041, 65046, 1), new Range16.ptr(65049, 65072, 23), new Range16.ptr(65093, 65094, 1), new Range16.ptr(65097, 65100, 1), new Range16.ptr(65104, 65106, 1), new Range16.ptr(65108, 65111, 1), new Range16.ptr(65119, 65121, 1), new Range16.ptr(65128, 65130, 2), new Range16.ptr(65131, 65281, 150), new Range16.ptr(65282, 65283, 1), new Range16.ptr(65285, 65287, 1), new Range16.ptr(65290, 65294, 2), new Range16.ptr(65295, 65306, 11), new Range16.ptr(65307, 65311, 4), new Range16.ptr(65312, 65340, 28), new Range16.ptr(65377, 65380, 3), new Range16.ptr(65381, 65381, 1)]), new sliceType$1([new Range32.ptr(65792, 65792, 1), new Range32.ptr(65793, 65794, 1), new Range32.ptr(66463, 66512, 49), new Range32.ptr(66927, 67671, 744), new Range32.ptr(67871, 67903, 32), new Range32.ptr(68176, 68184, 1), new Range32.ptr(68223, 68336, 113), new Range32.ptr(68337, 68342, 1), new Range32.ptr(68409, 68415, 1), new Range32.ptr(68505, 68508, 1), new Range32.ptr(69703, 69709, 1), new Range32.ptr(69819, 69820, 1), new Range32.ptr(69822, 69825, 1), new Range32.ptr(69952, 69955, 1), new Range32.ptr(70004, 70005, 1), new Range32.ptr(70085, 70089, 1), new Range32.ptr(70093, 70107, 14), new Range32.ptr(70109, 70111, 1), new Range32.ptr(70200, 70205, 1), new Range32.ptr(70313, 70731, 418), new Range32.ptr(70732, 70735, 1), new Range32.ptr(70747, 70749, 2), new Range32.ptr(70854, 71105, 251), new Range32.ptr(71106, 71127, 1), new Range32.ptr(71233, 71235, 1), new Range32.ptr(71264, 71276, 1), new Range32.ptr(71484, 71486, 1), new Range32.ptr(72769, 72773, 1), new Range32.ptr(72816, 72817, 1), new Range32.ptr(74864, 74868, 1), new Range32.ptr(92782, 92783, 1), new Range32.ptr(92917, 92983, 66), new Range32.ptr(92984, 92987, 1), new Range32.ptr(92996, 113823, 20827), new Range32.ptr(121479, 121483, 1), new Range32.ptr(125278, 125279, 1)]), 8); _Ps = new RangeTable.ptr(new sliceType([new Range16.ptr(40, 91, 51), new Range16.ptr(123, 3898, 3775), new Range16.ptr(3900, 5787, 1887), new Range16.ptr(8218, 8222, 4), new Range16.ptr(8261, 8317, 56), new Range16.ptr(8333, 8968, 635), new Range16.ptr(8970, 9001, 31), new Range16.ptr(10088, 10100, 2), new Range16.ptr(10181, 10214, 33), new Range16.ptr(10216, 10222, 2), new Range16.ptr(10627, 10647, 2), new Range16.ptr(10712, 10714, 2), new Range16.ptr(10748, 11810, 1062), new Range16.ptr(11812, 11816, 2), new Range16.ptr(11842, 12296, 454), new Range16.ptr(12298, 12304, 2), new Range16.ptr(12308, 12314, 2), new Range16.ptr(12317, 64831, 52514), new Range16.ptr(65047, 65077, 30), new Range16.ptr(65079, 65091, 2), new Range16.ptr(65095, 65113, 18), new Range16.ptr(65115, 65117, 2), new Range16.ptr(65288, 65339, 51), new Range16.ptr(65371, 65375, 4), new Range16.ptr(65378, 65378, 1)]), sliceType$1.nil, 1); _S = new RangeTable.ptr(new sliceType([new Range16.ptr(36, 43, 7), new Range16.ptr(60, 62, 1), new Range16.ptr(94, 96, 2), new Range16.ptr(124, 126, 2), new Range16.ptr(162, 166, 1), new Range16.ptr(168, 169, 1), new Range16.ptr(172, 174, 2), new Range16.ptr(175, 177, 1), new Range16.ptr(180, 184, 4), new Range16.ptr(215, 247, 32), new Range16.ptr(706, 709, 1), new Range16.ptr(722, 735, 1), new Range16.ptr(741, 747, 1), new Range16.ptr(749, 751, 2), new Range16.ptr(752, 767, 1), new Range16.ptr(885, 900, 15), new Range16.ptr(901, 1014, 113), new Range16.ptr(1154, 1421, 267), new Range16.ptr(1422, 1423, 1), new Range16.ptr(1542, 1544, 1), new Range16.ptr(1547, 1550, 3), new Range16.ptr(1551, 1758, 207), new Range16.ptr(1769, 1789, 20), new Range16.ptr(1790, 2038, 248), new Range16.ptr(2546, 2547, 1), new Range16.ptr(2554, 2555, 1), new Range16.ptr(2801, 2928, 127), new Range16.ptr(3059, 3066, 1), new Range16.ptr(3199, 3407, 208), new Range16.ptr(3449, 3647, 198), new Range16.ptr(3841, 3843, 1), new Range16.ptr(3859, 3861, 2), new Range16.ptr(3862, 3863, 1), new Range16.ptr(3866, 3871, 1), new Range16.ptr(3892, 3896, 2), new Range16.ptr(4030, 4037, 1), new Range16.ptr(4039, 4044, 1), new Range16.ptr(4046, 4047, 1), new Range16.ptr(4053, 4056, 1), new Range16.ptr(4254, 4255, 1), new Range16.ptr(5008, 5017, 1), new Range16.ptr(6107, 6464, 357), new Range16.ptr(6622, 6655, 1), new Range16.ptr(7009, 7018, 1), new Range16.ptr(7028, 7036, 1), new Range16.ptr(8125, 8127, 2), new Range16.ptr(8128, 8129, 1), new Range16.ptr(8141, 8143, 1), new Range16.ptr(8157, 8159, 1), new Range16.ptr(8173, 8175, 1), new Range16.ptr(8189, 8190, 1), new Range16.ptr(8260, 8274, 14), new Range16.ptr(8314, 8316, 1), new Range16.ptr(8330, 8332, 1), new Range16.ptr(8352, 8382, 1), new Range16.ptr(8448, 8449, 1), new Range16.ptr(8451, 8454, 1), new Range16.ptr(8456, 8457, 1), new Range16.ptr(8468, 8470, 2), new Range16.ptr(8471, 8472, 1), new Range16.ptr(8478, 8483, 1), new Range16.ptr(8485, 8489, 2), new Range16.ptr(8494, 8506, 12), new Range16.ptr(8507, 8512, 5), new Range16.ptr(8513, 8516, 1), new Range16.ptr(8522, 8525, 1), new Range16.ptr(8527, 8586, 59), new Range16.ptr(8587, 8592, 5), new Range16.ptr(8593, 8967, 1), new Range16.ptr(8972, 9000, 1), new Range16.ptr(9003, 9214, 1), new Range16.ptr(9216, 9254, 1), new Range16.ptr(9280, 9290, 1), new Range16.ptr(9372, 9449, 1), new Range16.ptr(9472, 10087, 1), new Range16.ptr(10132, 10180, 1), new Range16.ptr(10183, 10213, 1), new Range16.ptr(10224, 10626, 1), new Range16.ptr(10649, 10711, 1), new Range16.ptr(10716, 10747, 1), new Range16.ptr(10750, 11123, 1), new Range16.ptr(11126, 11157, 1), new Range16.ptr(11160, 11193, 1), new Range16.ptr(11197, 11208, 1), new Range16.ptr(11210, 11217, 1), new Range16.ptr(11244, 11247, 1), new Range16.ptr(11493, 11498, 1), new Range16.ptr(11904, 11929, 1), new Range16.ptr(11931, 12019, 1), new Range16.ptr(12032, 12245, 1), new Range16.ptr(12272, 12283, 1), new Range16.ptr(12292, 12306, 14), new Range16.ptr(12307, 12320, 13), new Range16.ptr(12342, 12343, 1), new Range16.ptr(12350, 12351, 1), new Range16.ptr(12443, 12444, 1), new Range16.ptr(12688, 12689, 1), new Range16.ptr(12694, 12703, 1), new Range16.ptr(12736, 12771, 1), new Range16.ptr(12800, 12830, 1), new Range16.ptr(12842, 12871, 1), new Range16.ptr(12880, 12896, 16), new Range16.ptr(12897, 12927, 1), new Range16.ptr(12938, 12976, 1), new Range16.ptr(12992, 13054, 1), new Range16.ptr(13056, 13311, 1), new Range16.ptr(19904, 19967, 1), new Range16.ptr(42128, 42182, 1), new Range16.ptr(42752, 42774, 1), new Range16.ptr(42784, 42785, 1), new Range16.ptr(42889, 42890, 1), new Range16.ptr(43048, 43051, 1), new Range16.ptr(43062, 43065, 1), new Range16.ptr(43639, 43641, 1), new Range16.ptr(43867, 64297, 20430), new Range16.ptr(64434, 64449, 1), new Range16.ptr(65020, 65021, 1), new Range16.ptr(65122, 65124, 2), new Range16.ptr(65125, 65126, 1), new Range16.ptr(65129, 65284, 155), new Range16.ptr(65291, 65308, 17), new Range16.ptr(65309, 65310, 1), new Range16.ptr(65342, 65344, 2), new Range16.ptr(65372, 65374, 2), new Range16.ptr(65504, 65510, 1), new Range16.ptr(65512, 65518, 1), new Range16.ptr(65532, 65533, 1)]), new sliceType$1([new Range32.ptr(65847, 65855, 1), new Range32.ptr(65913, 65929, 1), new Range32.ptr(65932, 65934, 1), new Range32.ptr(65936, 65947, 1), new Range32.ptr(65952, 66000, 48), new Range32.ptr(66001, 66044, 1), new Range32.ptr(67703, 67704, 1), new Range32.ptr(68296, 71487, 3191), new Range32.ptr(92988, 92991, 1), new Range32.ptr(92997, 113820, 20823), new Range32.ptr(118784, 119029, 1), new Range32.ptr(119040, 119078, 1), new Range32.ptr(119081, 119140, 1), new Range32.ptr(119146, 119148, 1), new Range32.ptr(119171, 119172, 1), new Range32.ptr(119180, 119209, 1), new Range32.ptr(119214, 119272, 1), new Range32.ptr(119296, 119361, 1), new Range32.ptr(119365, 119552, 187), new Range32.ptr(119553, 119638, 1), new Range32.ptr(120513, 120539, 26), new Range32.ptr(120571, 120597, 26), new Range32.ptr(120629, 120655, 26), new Range32.ptr(120687, 120713, 26), new Range32.ptr(120745, 120771, 26), new Range32.ptr(120832, 121343, 1), new Range32.ptr(121399, 121402, 1), new Range32.ptr(121453, 121460, 1), new Range32.ptr(121462, 121475, 1), new Range32.ptr(121477, 121478, 1), new Range32.ptr(126704, 126705, 1), new Range32.ptr(126976, 127019, 1), new Range32.ptr(127024, 127123, 1), new Range32.ptr(127136, 127150, 1), new Range32.ptr(127153, 127167, 1), new Range32.ptr(127169, 127183, 1), new Range32.ptr(127185, 127221, 1), new Range32.ptr(127248, 127278, 1), new Range32.ptr(127280, 127339, 1), new Range32.ptr(127344, 127404, 1), new Range32.ptr(127462, 127490, 1), new Range32.ptr(127504, 127547, 1), new Range32.ptr(127552, 127560, 1), new Range32.ptr(127568, 127569, 1), new Range32.ptr(127744, 128722, 1), new Range32.ptr(128736, 128748, 1), new Range32.ptr(128752, 128758, 1), new Range32.ptr(128768, 128883, 1), new Range32.ptr(128896, 128980, 1), new Range32.ptr(129024, 129035, 1), new Range32.ptr(129040, 129095, 1), new Range32.ptr(129104, 129113, 1), new Range32.ptr(129120, 129159, 1), new Range32.ptr(129168, 129197, 1), new Range32.ptr(129296, 129310, 1), new Range32.ptr(129312, 129319, 1), new Range32.ptr(129328, 129331, 3), new Range32.ptr(129332, 129342, 1), new Range32.ptr(129344, 129355, 1), new Range32.ptr(129360, 129374, 1), new Range32.ptr(129408, 129425, 1), new Range32.ptr(129472, 129472, 1)]), 10); _Sc = new RangeTable.ptr(new sliceType([new Range16.ptr(36, 162, 126), new Range16.ptr(163, 165, 1), new Range16.ptr(1423, 1547, 124), new Range16.ptr(2546, 2547, 1), new Range16.ptr(2555, 2801, 246), new Range16.ptr(3065, 3647, 582), new Range16.ptr(6107, 8352, 2245), new Range16.ptr(8353, 8382, 1), new Range16.ptr(43064, 65020, 21956), new Range16.ptr(65129, 65284, 155), new Range16.ptr(65504, 65505, 1), new Range16.ptr(65509, 65510, 1)]), sliceType$1.nil, 2); _Sk = new RangeTable.ptr(new sliceType([new Range16.ptr(94, 96, 2), new Range16.ptr(168, 175, 7), new Range16.ptr(180, 184, 4), new Range16.ptr(706, 709, 1), new Range16.ptr(722, 735, 1), new Range16.ptr(741, 747, 1), new Range16.ptr(749, 751, 2), new Range16.ptr(752, 767, 1), new Range16.ptr(885, 900, 15), new Range16.ptr(901, 8125, 7224), new Range16.ptr(8127, 8129, 1), new Range16.ptr(8141, 8143, 1), new Range16.ptr(8157, 8159, 1), new Range16.ptr(8173, 8175, 1), new Range16.ptr(8189, 8190, 1), new Range16.ptr(12443, 12444, 1), new Range16.ptr(42752, 42774, 1), new Range16.ptr(42784, 42785, 1), new Range16.ptr(42889, 42890, 1), new Range16.ptr(43867, 64434, 20567), new Range16.ptr(64435, 64449, 1), new Range16.ptr(65342, 65344, 2), new Range16.ptr(65507, 65507, 1)]), new sliceType$1([new Range32.ptr(127995, 127995, 1), new Range32.ptr(127996, 127999, 1)]), 3); _Sm = new RangeTable.ptr(new sliceType([new Range16.ptr(43, 60, 17), new Range16.ptr(61, 62, 1), new Range16.ptr(124, 126, 2), new Range16.ptr(172, 177, 5), new Range16.ptr(215, 247, 32), new Range16.ptr(1014, 1542, 528), new Range16.ptr(1543, 1544, 1), new Range16.ptr(8260, 8274, 14), new Range16.ptr(8314, 8316, 1), new Range16.ptr(8330, 8332, 1), new Range16.ptr(8472, 8512, 40), new Range16.ptr(8513, 8516, 1), new Range16.ptr(8523, 8592, 69), new Range16.ptr(8593, 8596, 1), new Range16.ptr(8602, 8603, 1), new Range16.ptr(8608, 8614, 3), new Range16.ptr(8622, 8654, 32), new Range16.ptr(8655, 8658, 3), new Range16.ptr(8660, 8692, 32), new Range16.ptr(8693, 8959, 1), new Range16.ptr(8992, 8993, 1), new Range16.ptr(9084, 9115, 31), new Range16.ptr(9116, 9139, 1), new Range16.ptr(9180, 9185, 1), new Range16.ptr(9655, 9665, 10), new Range16.ptr(9720, 9727, 1), new Range16.ptr(9839, 10176, 337), new Range16.ptr(10177, 10180, 1), new Range16.ptr(10183, 10213, 1), new Range16.ptr(10224, 10239, 1), new Range16.ptr(10496, 10626, 1), new Range16.ptr(10649, 10711, 1), new Range16.ptr(10716, 10747, 1), new Range16.ptr(10750, 11007, 1), new Range16.ptr(11056, 11076, 1), new Range16.ptr(11079, 11084, 1), new Range16.ptr(64297, 65122, 825), new Range16.ptr(65124, 65126, 1), new Range16.ptr(65291, 65308, 17), new Range16.ptr(65309, 65310, 1), new Range16.ptr(65372, 65374, 2), new Range16.ptr(65506, 65513, 7), new Range16.ptr(65514, 65516, 1)]), new sliceType$1([new Range32.ptr(120513, 120539, 26), new Range32.ptr(120571, 120597, 26), new Range32.ptr(120629, 120655, 26), new Range32.ptr(120687, 120713, 26), new Range32.ptr(120745, 120771, 26), new Range32.ptr(126704, 126705, 1)]), 5); _So = new RangeTable.ptr(new sliceType([new Range16.ptr(166, 169, 3), new Range16.ptr(174, 176, 2), new Range16.ptr(1154, 1421, 267), new Range16.ptr(1422, 1550, 128), new Range16.ptr(1551, 1758, 207), new Range16.ptr(1769, 1789, 20), new Range16.ptr(1790, 2038, 248), new Range16.ptr(2554, 2928, 374), new Range16.ptr(3059, 3064, 1), new Range16.ptr(3066, 3199, 133), new Range16.ptr(3407, 3449, 42), new Range16.ptr(3841, 3843, 1), new Range16.ptr(3859, 3861, 2), new Range16.ptr(3862, 3863, 1), new Range16.ptr(3866, 3871, 1), new Range16.ptr(3892, 3896, 2), new Range16.ptr(4030, 4037, 1), new Range16.ptr(4039, 4044, 1), new Range16.ptr(4046, 4047, 1), new Range16.ptr(4053, 4056, 1), new Range16.ptr(4254, 4255, 1), new Range16.ptr(5008, 5017, 1), new Range16.ptr(6464, 6622, 158), new Range16.ptr(6623, 6655, 1), new Range16.ptr(7009, 7018, 1), new Range16.ptr(7028, 7036, 1), new Range16.ptr(8448, 8449, 1), new Range16.ptr(8451, 8454, 1), new Range16.ptr(8456, 8457, 1), new Range16.ptr(8468, 8470, 2), new Range16.ptr(8471, 8478, 7), new Range16.ptr(8479, 8483, 1), new Range16.ptr(8485, 8489, 2), new Range16.ptr(8494, 8506, 12), new Range16.ptr(8507, 8522, 15), new Range16.ptr(8524, 8525, 1), new Range16.ptr(8527, 8586, 59), new Range16.ptr(8587, 8597, 10), new Range16.ptr(8598, 8601, 1), new Range16.ptr(8604, 8607, 1), new Range16.ptr(8609, 8610, 1), new Range16.ptr(8612, 8613, 1), new Range16.ptr(8615, 8621, 1), new Range16.ptr(8623, 8653, 1), new Range16.ptr(8656, 8657, 1), new Range16.ptr(8659, 8661, 2), new Range16.ptr(8662, 8691, 1), new Range16.ptr(8960, 8967, 1), new Range16.ptr(8972, 8991, 1), new Range16.ptr(8994, 9000, 1), new Range16.ptr(9003, 9083, 1), new Range16.ptr(9085, 9114, 1), new Range16.ptr(9140, 9179, 1), new Range16.ptr(9186, 9214, 1), new Range16.ptr(9216, 9254, 1), new Range16.ptr(9280, 9290, 1), new Range16.ptr(9372, 9449, 1), new Range16.ptr(9472, 9654, 1), new Range16.ptr(9656, 9664, 1), new Range16.ptr(9666, 9719, 1), new Range16.ptr(9728, 9838, 1), new Range16.ptr(9840, 10087, 1), new Range16.ptr(10132, 10175, 1), new Range16.ptr(10240, 10495, 1), new Range16.ptr(11008, 11055, 1), new Range16.ptr(11077, 11078, 1), new Range16.ptr(11085, 11123, 1), new Range16.ptr(11126, 11157, 1), new Range16.ptr(11160, 11193, 1), new Range16.ptr(11197, 11208, 1), new Range16.ptr(11210, 11217, 1), new Range16.ptr(11244, 11247, 1), new Range16.ptr(11493, 11498, 1), new Range16.ptr(11904, 11929, 1), new Range16.ptr(11931, 12019, 1), new Range16.ptr(12032, 12245, 1), new Range16.ptr(12272, 12283, 1), new Range16.ptr(12292, 12306, 14), new Range16.ptr(12307, 12320, 13), new Range16.ptr(12342, 12343, 1), new Range16.ptr(12350, 12351, 1), new Range16.ptr(12688, 12689, 1), new Range16.ptr(12694, 12703, 1), new Range16.ptr(12736, 12771, 1), new Range16.ptr(12800, 12830, 1), new Range16.ptr(12842, 12871, 1), new Range16.ptr(12880, 12896, 16), new Range16.ptr(12897, 12927, 1), new Range16.ptr(12938, 12976, 1), new Range16.ptr(12992, 13054, 1), new Range16.ptr(13056, 13311, 1), new Range16.ptr(19904, 19967, 1), new Range16.ptr(42128, 42182, 1), new Range16.ptr(43048, 43051, 1), new Range16.ptr(43062, 43063, 1), new Range16.ptr(43065, 43639, 574), new Range16.ptr(43640, 43641, 1), new Range16.ptr(65021, 65508, 487), new Range16.ptr(65512, 65517, 5), new Range16.ptr(65518, 65532, 14), new Range16.ptr(65533, 65533, 1)]), new sliceType$1([new Range32.ptr(65847, 65847, 1), new Range32.ptr(65848, 65855, 1), new Range32.ptr(65913, 65929, 1), new Range32.ptr(65932, 65934, 1), new Range32.ptr(65936, 65947, 1), new Range32.ptr(65952, 66000, 48), new Range32.ptr(66001, 66044, 1), new Range32.ptr(67703, 67704, 1), new Range32.ptr(68296, 71487, 3191), new Range32.ptr(92988, 92991, 1), new Range32.ptr(92997, 113820, 20823), new Range32.ptr(118784, 119029, 1), new Range32.ptr(119040, 119078, 1), new Range32.ptr(119081, 119140, 1), new Range32.ptr(119146, 119148, 1), new Range32.ptr(119171, 119172, 1), new Range32.ptr(119180, 119209, 1), new Range32.ptr(119214, 119272, 1), new Range32.ptr(119296, 119361, 1), new Range32.ptr(119365, 119552, 187), new Range32.ptr(119553, 119638, 1), new Range32.ptr(120832, 121343, 1), new Range32.ptr(121399, 121402, 1), new Range32.ptr(121453, 121460, 1), new Range32.ptr(121462, 121475, 1), new Range32.ptr(121477, 121478, 1), new Range32.ptr(126976, 127019, 1), new Range32.ptr(127024, 127123, 1), new Range32.ptr(127136, 127150, 1), new Range32.ptr(127153, 127167, 1), new Range32.ptr(127169, 127183, 1), new Range32.ptr(127185, 127221, 1), new Range32.ptr(127248, 127278, 1), new Range32.ptr(127280, 127339, 1), new Range32.ptr(127344, 127404, 1), new Range32.ptr(127462, 127490, 1), new Range32.ptr(127504, 127547, 1), new Range32.ptr(127552, 127560, 1), new Range32.ptr(127568, 127569, 1), new Range32.ptr(127744, 127994, 1), new Range32.ptr(128000, 128722, 1), new Range32.ptr(128736, 128748, 1), new Range32.ptr(128752, 128758, 1), new Range32.ptr(128768, 128883, 1), new Range32.ptr(128896, 128980, 1), new Range32.ptr(129024, 129035, 1), new Range32.ptr(129040, 129095, 1), new Range32.ptr(129104, 129113, 1), new Range32.ptr(129120, 129159, 1), new Range32.ptr(129168, 129197, 1), new Range32.ptr(129296, 129310, 1), new Range32.ptr(129312, 129319, 1), new Range32.ptr(129328, 129331, 3), new Range32.ptr(129332, 129342, 1), new Range32.ptr(129344, 129355, 1), new Range32.ptr(129360, 129374, 1), new Range32.ptr(129408, 129425, 1), new Range32.ptr(129472, 129472, 1)]), 2); _Z = new RangeTable.ptr(new sliceType([new Range16.ptr(32, 160, 128), new Range16.ptr(5760, 8192, 2432), new Range16.ptr(8193, 8202, 1), new Range16.ptr(8232, 8233, 1), new Range16.ptr(8239, 8287, 48), new Range16.ptr(12288, 12288, 1)]), sliceType$1.nil, 1); _Zl = new RangeTable.ptr(new sliceType([new Range16.ptr(8232, 8232, 1)]), sliceType$1.nil, 0); _Zp = new RangeTable.ptr(new sliceType([new Range16.ptr(8233, 8233, 1)]), sliceType$1.nil, 0); _Zs = new RangeTable.ptr(new sliceType([new Range16.ptr(32, 160, 128), new Range16.ptr(5760, 8192, 2432), new Range16.ptr(8193, 8202, 1), new Range16.ptr(8239, 8287, 48), new Range16.ptr(12288, 12288, 1)]), sliceType$1.nil, 1); $pkg.Cc = _Cc; $pkg.Cf = _Cf; $pkg.Co = _Co; $pkg.Cs = _Cs; $pkg.Digit = _Nd; $pkg.Nd = _Nd; $pkg.Letter = _L; $pkg.L = _L; $pkg.Lm = _Lm; $pkg.Lo = _Lo; $pkg.Ll = _Ll; $pkg.M = _M; $pkg.Mc = _Mc; $pkg.Me = _Me; $pkg.Mn = _Mn; $pkg.Nl = _Nl; $pkg.No = _No; $pkg.N = _N; $pkg.C = _C; $pkg.Pc = _Pc; $pkg.Pd = _Pd; $pkg.Pe = _Pe; $pkg.Pf = _Pf; $pkg.Pi = _Pi; $pkg.Po = _Po; $pkg.Ps = _Ps; $pkg.P = _P; $pkg.Sc = _Sc; $pkg.Sk = _Sk; $pkg.Sm = _Sm; $pkg.So = _So; $pkg.Z = _Z; $pkg.S = _S; $pkg.PrintRanges = new sliceType$2([$pkg.L, $pkg.M, $pkg.N, $pkg.P, $pkg.S]); $pkg.Lt = _Lt; $pkg.Lu = _Lu; $pkg.Zl = _Zl; $pkg.Zp = _Zp; $pkg.Zs = _Zs; $pkg.Categories = $makeMap($String.keyFor, [{ k: "C", v: $pkg.C }, { k: "Cc", v: $pkg.Cc }, { k: "Cf", v: $pkg.Cf }, { k: "Co", v: $pkg.Co }, { k: "Cs", v: $pkg.Cs }, { k: "L", v: $pkg.L }, { k: "Ll", v: $pkg.Ll }, { k: "Lm", v: $pkg.Lm }, { k: "Lo", v: $pkg.Lo }, { k: "Lt", v: $pkg.Lt }, { k: "Lu", v: $pkg.Lu }, { k: "M", v: $pkg.M }, { k: "Mc", v: $pkg.Mc }, { k: "Me", v: $pkg.Me }, { k: "Mn", v: $pkg.Mn }, { k: "N", v: $pkg.N }, { k: "Nd", v: $pkg.Nd }, { k: "Nl", v: $pkg.Nl }, { k: "No", v: $pkg.No }, { k: "P", v: $pkg.P }, { k: "Pc", v: $pkg.Pc }, { k: "Pd", v: $pkg.Pd }, { k: "Pe", v: $pkg.Pe }, { k: "Pf", v: $pkg.Pf }, { k: "Pi", v: $pkg.Pi }, { k: "Po", v: $pkg.Po }, { k: "Ps", v: $pkg.Ps }, { k: "S", v: $pkg.S }, { k: "Sc", v: $pkg.Sc }, { k: "Sk", v: $pkg.Sk }, { k: "Sm", v: $pkg.Sm }, { k: "So", v: $pkg.So }, { k: "Z", v: $pkg.Z }, { k: "Zl", v: $pkg.Zl }, { k: "Zp", v: $pkg.Zp }, { k: "Zs", v: $pkg.Zs }]); _Adlam = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(125184, 125258, 1), new Range32.ptr(125264, 125273, 1), new Range32.ptr(125278, 125279, 1)]), 0); _Ahom = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(71424, 71449, 1), new Range32.ptr(71453, 71467, 1), new Range32.ptr(71472, 71487, 1)]), 0); _Anatolian_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(82944, 83526, 1)]), 0); _Arabic = new RangeTable.ptr(new sliceType([new Range16.ptr(1536, 1540, 1), new Range16.ptr(1542, 1547, 1), new Range16.ptr(1549, 1562, 1), new Range16.ptr(1566, 1566, 1), new Range16.ptr(1568, 1599, 1), new Range16.ptr(1601, 1610, 1), new Range16.ptr(1622, 1647, 1), new Range16.ptr(1649, 1756, 1), new Range16.ptr(1758, 1791, 1), new Range16.ptr(1872, 1919, 1), new Range16.ptr(2208, 2228, 1), new Range16.ptr(2230, 2237, 1), new Range16.ptr(2260, 2273, 1), new Range16.ptr(2275, 2303, 1), new Range16.ptr(64336, 64449, 1), new Range16.ptr(64467, 64829, 1), new Range16.ptr(64848, 64911, 1), new Range16.ptr(64914, 64967, 1), new Range16.ptr(65008, 65021, 1), new Range16.ptr(65136, 65140, 1), new Range16.ptr(65142, 65276, 1)]), new sliceType$1([new Range32.ptr(69216, 69246, 1), new Range32.ptr(126464, 126467, 1), new Range32.ptr(126469, 126495, 1), new Range32.ptr(126497, 126498, 1), new Range32.ptr(126500, 126500, 1), new Range32.ptr(126503, 126503, 1), new Range32.ptr(126505, 126514, 1), new Range32.ptr(126516, 126519, 1), new Range32.ptr(126521, 126521, 1), new Range32.ptr(126523, 126523, 1), new Range32.ptr(126530, 126530, 1), new Range32.ptr(126535, 126535, 1), new Range32.ptr(126537, 126537, 1), new Range32.ptr(126539, 126539, 1), new Range32.ptr(126541, 126543, 1), new Range32.ptr(126545, 126546, 1), new Range32.ptr(126548, 126548, 1), new Range32.ptr(126551, 126551, 1), new Range32.ptr(126553, 126553, 1), new Range32.ptr(126555, 126555, 1), new Range32.ptr(126557, 126557, 1), new Range32.ptr(126559, 126559, 1), new Range32.ptr(126561, 126562, 1), new Range32.ptr(126564, 126564, 1), new Range32.ptr(126567, 126570, 1), new Range32.ptr(126572, 126578, 1), new Range32.ptr(126580, 126583, 1), new Range32.ptr(126585, 126588, 1), new Range32.ptr(126590, 126590, 1), new Range32.ptr(126592, 126601, 1), new Range32.ptr(126603, 126619, 1), new Range32.ptr(126625, 126627, 1), new Range32.ptr(126629, 126633, 1), new Range32.ptr(126635, 126651, 1), new Range32.ptr(126704, 126705, 1)]), 0); _Armenian = new RangeTable.ptr(new sliceType([new Range16.ptr(1329, 1366, 1), new Range16.ptr(1369, 1375, 1), new Range16.ptr(1377, 1415, 1), new Range16.ptr(1418, 1418, 1), new Range16.ptr(1421, 1423, 1), new Range16.ptr(64275, 64279, 1)]), sliceType$1.nil, 0); _Avestan = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68352, 68405, 1), new Range32.ptr(68409, 68415, 1)]), 0); _Balinese = new RangeTable.ptr(new sliceType([new Range16.ptr(6912, 6987, 1), new Range16.ptr(6992, 7036, 1)]), sliceType$1.nil, 0); _Bamum = new RangeTable.ptr(new sliceType([new Range16.ptr(42656, 42743, 1)]), new sliceType$1([new Range32.ptr(92160, 92728, 1)]), 0); _Bassa_Vah = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(92880, 92909, 1), new Range32.ptr(92912, 92917, 1)]), 0); _Batak = new RangeTable.ptr(new sliceType([new Range16.ptr(7104, 7155, 1), new Range16.ptr(7164, 7167, 1)]), sliceType$1.nil, 0); _Bengali = new RangeTable.ptr(new sliceType([new Range16.ptr(2432, 2435, 1), new Range16.ptr(2437, 2444, 1), new Range16.ptr(2447, 2448, 1), new Range16.ptr(2451, 2472, 1), new Range16.ptr(2474, 2480, 1), new Range16.ptr(2482, 2482, 1), new Range16.ptr(2486, 2489, 1), new Range16.ptr(2492, 2500, 1), new Range16.ptr(2503, 2504, 1), new Range16.ptr(2507, 2510, 1), new Range16.ptr(2519, 2519, 1), new Range16.ptr(2524, 2525, 1), new Range16.ptr(2527, 2531, 1), new Range16.ptr(2534, 2555, 1)]), sliceType$1.nil, 0); _Bhaiksuki = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(72704, 72712, 1), new Range32.ptr(72714, 72758, 1), new Range32.ptr(72760, 72773, 1), new Range32.ptr(72784, 72812, 1)]), 0); _Bopomofo = new RangeTable.ptr(new sliceType([new Range16.ptr(746, 747, 1), new Range16.ptr(12549, 12589, 1), new Range16.ptr(12704, 12730, 1)]), sliceType$1.nil, 0); _Brahmi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(69632, 69709, 1), new Range32.ptr(69714, 69743, 1), new Range32.ptr(69759, 69759, 1)]), 0); _Braille = new RangeTable.ptr(new sliceType([new Range16.ptr(10240, 10495, 1)]), sliceType$1.nil, 0); _Buginese = new RangeTable.ptr(new sliceType([new Range16.ptr(6656, 6683, 1), new Range16.ptr(6686, 6687, 1)]), sliceType$1.nil, 0); _Buhid = new RangeTable.ptr(new sliceType([new Range16.ptr(5952, 5971, 1)]), sliceType$1.nil, 0); _Canadian_Aboriginal = new RangeTable.ptr(new sliceType([new Range16.ptr(5120, 5759, 1), new Range16.ptr(6320, 6389, 1)]), sliceType$1.nil, 0); _Carian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66208, 66256, 1)]), 0); _Caucasian_Albanian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66864, 66915, 1), new Range32.ptr(66927, 66927, 1)]), 0); _Chakma = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(69888, 69940, 1), new Range32.ptr(69942, 69955, 1)]), 0); _Cham = new RangeTable.ptr(new sliceType([new Range16.ptr(43520, 43574, 1), new Range16.ptr(43584, 43597, 1), new Range16.ptr(43600, 43609, 1), new Range16.ptr(43612, 43615, 1)]), sliceType$1.nil, 0); _Cherokee = new RangeTable.ptr(new sliceType([new Range16.ptr(5024, 5109, 1), new Range16.ptr(5112, 5117, 1), new Range16.ptr(43888, 43967, 1)]), sliceType$1.nil, 0); _Common = new RangeTable.ptr(new sliceType([new Range16.ptr(0, 64, 1), new Range16.ptr(91, 96, 1), new Range16.ptr(123, 169, 1), new Range16.ptr(171, 185, 1), new Range16.ptr(187, 191, 1), new Range16.ptr(215, 215, 1), new Range16.ptr(247, 247, 1), new Range16.ptr(697, 735, 1), new Range16.ptr(741, 745, 1), new Range16.ptr(748, 767, 1), new Range16.ptr(884, 884, 1), new Range16.ptr(894, 894, 1), new Range16.ptr(901, 901, 1), new Range16.ptr(903, 903, 1), new Range16.ptr(1417, 1417, 1), new Range16.ptr(1541, 1541, 1), new Range16.ptr(1548, 1548, 1), new Range16.ptr(1563, 1564, 1), new Range16.ptr(1567, 1567, 1), new Range16.ptr(1600, 1600, 1), new Range16.ptr(1757, 1757, 1), new Range16.ptr(2274, 2274, 1), new Range16.ptr(2404, 2405, 1), new Range16.ptr(3647, 3647, 1), new Range16.ptr(4053, 4056, 1), new Range16.ptr(4347, 4347, 1), new Range16.ptr(5867, 5869, 1), new Range16.ptr(5941, 5942, 1), new Range16.ptr(6146, 6147, 1), new Range16.ptr(6149, 6149, 1), new Range16.ptr(7379, 7379, 1), new Range16.ptr(7393, 7393, 1), new Range16.ptr(7401, 7404, 1), new Range16.ptr(7406, 7411, 1), new Range16.ptr(7413, 7414, 1), new Range16.ptr(8192, 8203, 1), new Range16.ptr(8206, 8292, 1), new Range16.ptr(8294, 8304, 1), new Range16.ptr(8308, 8318, 1), new Range16.ptr(8320, 8334, 1), new Range16.ptr(8352, 8382, 1), new Range16.ptr(8448, 8485, 1), new Range16.ptr(8487, 8489, 1), new Range16.ptr(8492, 8497, 1), new Range16.ptr(8499, 8525, 1), new Range16.ptr(8527, 8543, 1), new Range16.ptr(8585, 8587, 1), new Range16.ptr(8592, 9214, 1), new Range16.ptr(9216, 9254, 1), new Range16.ptr(9280, 9290, 1), new Range16.ptr(9312, 10239, 1), new Range16.ptr(10496, 11123, 1), new Range16.ptr(11126, 11157, 1), new Range16.ptr(11160, 11193, 1), new Range16.ptr(11197, 11208, 1), new Range16.ptr(11210, 11217, 1), new Range16.ptr(11244, 11247, 1), new Range16.ptr(11776, 11844, 1), new Range16.ptr(12272, 12283, 1), new Range16.ptr(12288, 12292, 1), new Range16.ptr(12294, 12294, 1), new Range16.ptr(12296, 12320, 1), new Range16.ptr(12336, 12343, 1), new Range16.ptr(12348, 12351, 1), new Range16.ptr(12443, 12444, 1), new Range16.ptr(12448, 12448, 1), new Range16.ptr(12539, 12540, 1), new Range16.ptr(12688, 12703, 1), new Range16.ptr(12736, 12771, 1), new Range16.ptr(12832, 12895, 1), new Range16.ptr(12927, 13007, 1), new Range16.ptr(13144, 13311, 1), new Range16.ptr(19904, 19967, 1), new Range16.ptr(42752, 42785, 1), new Range16.ptr(42888, 42890, 1), new Range16.ptr(43056, 43065, 1), new Range16.ptr(43310, 43310, 1), new Range16.ptr(43471, 43471, 1), new Range16.ptr(43867, 43867, 1), new Range16.ptr(64830, 64831, 1), new Range16.ptr(65040, 65049, 1), new Range16.ptr(65072, 65106, 1), new Range16.ptr(65108, 65126, 1), new Range16.ptr(65128, 65131, 1), new Range16.ptr(65279, 65279, 1), new Range16.ptr(65281, 65312, 1), new Range16.ptr(65339, 65344, 1), new Range16.ptr(65371, 65381, 1), new Range16.ptr(65392, 65392, 1), new Range16.ptr(65438, 65439, 1), new Range16.ptr(65504, 65510, 1), new Range16.ptr(65512, 65518, 1), new Range16.ptr(65529, 65533, 1)]), new sliceType$1([new Range32.ptr(65792, 65794, 1), new Range32.ptr(65799, 65843, 1), new Range32.ptr(65847, 65855, 1), new Range32.ptr(65936, 65947, 1), new Range32.ptr(66000, 66044, 1), new Range32.ptr(66273, 66299, 1), new Range32.ptr(113824, 113827, 1), new Range32.ptr(118784, 119029, 1), new Range32.ptr(119040, 119078, 1), new Range32.ptr(119081, 119142, 1), new Range32.ptr(119146, 119162, 1), new Range32.ptr(119171, 119172, 1), new Range32.ptr(119180, 119209, 1), new Range32.ptr(119214, 119272, 1), new Range32.ptr(119552, 119638, 1), new Range32.ptr(119648, 119665, 1), new Range32.ptr(119808, 119892, 1), new Range32.ptr(119894, 119964, 1), new Range32.ptr(119966, 119967, 1), new Range32.ptr(119970, 119970, 1), new Range32.ptr(119973, 119974, 1), new Range32.ptr(119977, 119980, 1), new Range32.ptr(119982, 119993, 1), new Range32.ptr(119995, 119995, 1), new Range32.ptr(119997, 120003, 1), new Range32.ptr(120005, 120069, 1), new Range32.ptr(120071, 120074, 1), new Range32.ptr(120077, 120084, 1), new Range32.ptr(120086, 120092, 1), new Range32.ptr(120094, 120121, 1), new Range32.ptr(120123, 120126, 1), new Range32.ptr(120128, 120132, 1), new Range32.ptr(120134, 120134, 1), new Range32.ptr(120138, 120144, 1), new Range32.ptr(120146, 120485, 1), new Range32.ptr(120488, 120779, 1), new Range32.ptr(120782, 120831, 1), new Range32.ptr(126976, 127019, 1), new Range32.ptr(127024, 127123, 1), new Range32.ptr(127136, 127150, 1), new Range32.ptr(127153, 127167, 1), new Range32.ptr(127169, 127183, 1), new Range32.ptr(127185, 127221, 1), new Range32.ptr(127232, 127244, 1), new Range32.ptr(127248, 127278, 1), new Range32.ptr(127280, 127339, 1), new Range32.ptr(127344, 127404, 1), new Range32.ptr(127462, 127487, 1), new Range32.ptr(127489, 127490, 1), new Range32.ptr(127504, 127547, 1), new Range32.ptr(127552, 127560, 1), new Range32.ptr(127568, 127569, 1), new Range32.ptr(127744, 128722, 1), new Range32.ptr(128736, 128748, 1), new Range32.ptr(128752, 128758, 1), new Range32.ptr(128768, 128883, 1), new Range32.ptr(128896, 128980, 1), new Range32.ptr(129024, 129035, 1), new Range32.ptr(129040, 129095, 1), new Range32.ptr(129104, 129113, 1), new Range32.ptr(129120, 129159, 1), new Range32.ptr(129168, 129197, 1), new Range32.ptr(129296, 129310, 1), new Range32.ptr(129312, 129319, 1), new Range32.ptr(129328, 129328, 1), new Range32.ptr(129331, 129342, 1), new Range32.ptr(129344, 129355, 1), new Range32.ptr(129360, 129374, 1), new Range32.ptr(129408, 129425, 1), new Range32.ptr(129472, 129472, 1), new Range32.ptr(917505, 917505, 1), new Range32.ptr(917536, 917631, 1)]), 7); _Coptic = new RangeTable.ptr(new sliceType([new Range16.ptr(994, 1007, 1), new Range16.ptr(11392, 11507, 1), new Range16.ptr(11513, 11519, 1)]), sliceType$1.nil, 0); _Cuneiform = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(73728, 74649, 1), new Range32.ptr(74752, 74862, 1), new Range32.ptr(74864, 74868, 1), new Range32.ptr(74880, 75075, 1)]), 0); _Cypriot = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67584, 67589, 1), new Range32.ptr(67592, 67592, 1), new Range32.ptr(67594, 67637, 1), new Range32.ptr(67639, 67640, 1), new Range32.ptr(67644, 67644, 1), new Range32.ptr(67647, 67647, 1)]), 0); _Cyrillic = new RangeTable.ptr(new sliceType([new Range16.ptr(1024, 1156, 1), new Range16.ptr(1159, 1327, 1), new Range16.ptr(7296, 7304, 1), new Range16.ptr(7467, 7467, 1), new Range16.ptr(7544, 7544, 1), new Range16.ptr(11744, 11775, 1), new Range16.ptr(42560, 42655, 1), new Range16.ptr(65070, 65071, 1)]), sliceType$1.nil, 0); _Deseret = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66560, 66639, 1)]), 0); _Devanagari = new RangeTable.ptr(new sliceType([new Range16.ptr(2304, 2384, 1), new Range16.ptr(2387, 2403, 1), new Range16.ptr(2406, 2431, 1), new Range16.ptr(43232, 43261, 1)]), sliceType$1.nil, 0); _Duployan = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(113664, 113770, 1), new Range32.ptr(113776, 113788, 1), new Range32.ptr(113792, 113800, 1), new Range32.ptr(113808, 113817, 1), new Range32.ptr(113820, 113823, 1)]), 0); _Egyptian_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(77824, 78894, 1)]), 0); _Elbasan = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66816, 66855, 1)]), 0); _Ethiopic = new RangeTable.ptr(new sliceType([new Range16.ptr(4608, 4680, 1), new Range16.ptr(4682, 4685, 1), new Range16.ptr(4688, 4694, 1), new Range16.ptr(4696, 4696, 1), new Range16.ptr(4698, 4701, 1), new Range16.ptr(4704, 4744, 1), new Range16.ptr(4746, 4749, 1), new Range16.ptr(4752, 4784, 1), new Range16.ptr(4786, 4789, 1), new Range16.ptr(4792, 4798, 1), new Range16.ptr(4800, 4800, 1), new Range16.ptr(4802, 4805, 1), new Range16.ptr(4808, 4822, 1), new Range16.ptr(4824, 4880, 1), new Range16.ptr(4882, 4885, 1), new Range16.ptr(4888, 4954, 1), new Range16.ptr(4957, 4988, 1), new Range16.ptr(4992, 5017, 1), new Range16.ptr(11648, 11670, 1), new Range16.ptr(11680, 11686, 1), new Range16.ptr(11688, 11694, 1), new Range16.ptr(11696, 11702, 1), new Range16.ptr(11704, 11710, 1), new Range16.ptr(11712, 11718, 1), new Range16.ptr(11720, 11726, 1), new Range16.ptr(11728, 11734, 1), new Range16.ptr(11736, 11742, 1), new Range16.ptr(43777, 43782, 1), new Range16.ptr(43785, 43790, 1), new Range16.ptr(43793, 43798, 1), new Range16.ptr(43808, 43814, 1), new Range16.ptr(43816, 43822, 1)]), sliceType$1.nil, 0); _Georgian = new RangeTable.ptr(new sliceType([new Range16.ptr(4256, 4293, 1), new Range16.ptr(4295, 4295, 1), new Range16.ptr(4301, 4301, 1), new Range16.ptr(4304, 4346, 1), new Range16.ptr(4348, 4351, 1), new Range16.ptr(11520, 11557, 1), new Range16.ptr(11559, 11559, 1), new Range16.ptr(11565, 11565, 1)]), sliceType$1.nil, 0); _Glagolitic = new RangeTable.ptr(new sliceType([new Range16.ptr(11264, 11310, 1), new Range16.ptr(11312, 11358, 1)]), new sliceType$1([new Range32.ptr(122880, 122886, 1), new Range32.ptr(122888, 122904, 1), new Range32.ptr(122907, 122913, 1), new Range32.ptr(122915, 122916, 1), new Range32.ptr(122918, 122922, 1)]), 0); _Gothic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66352, 66378, 1)]), 0); _Grantha = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70400, 70403, 1), new Range32.ptr(70405, 70412, 1), new Range32.ptr(70415, 70416, 1), new Range32.ptr(70419, 70440, 1), new Range32.ptr(70442, 70448, 1), new Range32.ptr(70450, 70451, 1), new Range32.ptr(70453, 70457, 1), new Range32.ptr(70460, 70468, 1), new Range32.ptr(70471, 70472, 1), new Range32.ptr(70475, 70477, 1), new Range32.ptr(70480, 70480, 1), new Range32.ptr(70487, 70487, 1), new Range32.ptr(70493, 70499, 1), new Range32.ptr(70502, 70508, 1), new Range32.ptr(70512, 70516, 1)]), 0); _Greek = new RangeTable.ptr(new sliceType([new Range16.ptr(880, 883, 1), new Range16.ptr(885, 887, 1), new Range16.ptr(890, 893, 1), new Range16.ptr(895, 895, 1), new Range16.ptr(900, 900, 1), new Range16.ptr(902, 902, 1), new Range16.ptr(904, 906, 1), new Range16.ptr(908, 908, 1), new Range16.ptr(910, 929, 1), new Range16.ptr(931, 993, 1), new Range16.ptr(1008, 1023, 1), new Range16.ptr(7462, 7466, 1), new Range16.ptr(7517, 7521, 1), new Range16.ptr(7526, 7530, 1), new Range16.ptr(7615, 7615, 1), new Range16.ptr(7936, 7957, 1), new Range16.ptr(7960, 7965, 1), new Range16.ptr(7968, 8005, 1), new Range16.ptr(8008, 8013, 1), new Range16.ptr(8016, 8023, 1), new Range16.ptr(8025, 8025, 1), new Range16.ptr(8027, 8027, 1), new Range16.ptr(8029, 8029, 1), new Range16.ptr(8031, 8061, 1), new Range16.ptr(8064, 8116, 1), new Range16.ptr(8118, 8132, 1), new Range16.ptr(8134, 8147, 1), new Range16.ptr(8150, 8155, 1), new Range16.ptr(8157, 8175, 1), new Range16.ptr(8178, 8180, 1), new Range16.ptr(8182, 8190, 1), new Range16.ptr(8486, 8486, 1), new Range16.ptr(43877, 43877, 1)]), new sliceType$1([new Range32.ptr(65856, 65934, 1), new Range32.ptr(65952, 65952, 1), new Range32.ptr(119296, 119365, 1)]), 0); _Gujarati = new RangeTable.ptr(new sliceType([new Range16.ptr(2689, 2691, 1), new Range16.ptr(2693, 2701, 1), new Range16.ptr(2703, 2705, 1), new Range16.ptr(2707, 2728, 1), new Range16.ptr(2730, 2736, 1), new Range16.ptr(2738, 2739, 1), new Range16.ptr(2741, 2745, 1), new Range16.ptr(2748, 2757, 1), new Range16.ptr(2759, 2761, 1), new Range16.ptr(2763, 2765, 1), new Range16.ptr(2768, 2768, 1), new Range16.ptr(2784, 2787, 1), new Range16.ptr(2790, 2801, 1), new Range16.ptr(2809, 2809, 1)]), sliceType$1.nil, 0); _Gurmukhi = new RangeTable.ptr(new sliceType([new Range16.ptr(2561, 2563, 1), new Range16.ptr(2565, 2570, 1), new Range16.ptr(2575, 2576, 1), new Range16.ptr(2579, 2600, 1), new Range16.ptr(2602, 2608, 1), new Range16.ptr(2610, 2611, 1), new Range16.ptr(2613, 2614, 1), new Range16.ptr(2616, 2617, 1), new Range16.ptr(2620, 2620, 1), new Range16.ptr(2622, 2626, 1), new Range16.ptr(2631, 2632, 1), new Range16.ptr(2635, 2637, 1), new Range16.ptr(2641, 2641, 1), new Range16.ptr(2649, 2652, 1), new Range16.ptr(2654, 2654, 1), new Range16.ptr(2662, 2677, 1)]), sliceType$1.nil, 0); _Han = new RangeTable.ptr(new sliceType([new Range16.ptr(11904, 11929, 1), new Range16.ptr(11931, 12019, 1), new Range16.ptr(12032, 12245, 1), new Range16.ptr(12293, 12293, 1), new Range16.ptr(12295, 12295, 1), new Range16.ptr(12321, 12329, 1), new Range16.ptr(12344, 12347, 1), new Range16.ptr(13312, 19893, 1), new Range16.ptr(19968, 40917, 1), new Range16.ptr(63744, 64109, 1), new Range16.ptr(64112, 64217, 1)]), new sliceType$1([new Range32.ptr(131072, 173782, 1), new Range32.ptr(173824, 177972, 1), new Range32.ptr(177984, 178205, 1), new Range32.ptr(178208, 183969, 1), new Range32.ptr(194560, 195101, 1)]), 0); _Hangul = new RangeTable.ptr(new sliceType([new Range16.ptr(4352, 4607, 1), new Range16.ptr(12334, 12335, 1), new Range16.ptr(12593, 12686, 1), new Range16.ptr(12800, 12830, 1), new Range16.ptr(12896, 12926, 1), new Range16.ptr(43360, 43388, 1), new Range16.ptr(44032, 55203, 1), new Range16.ptr(55216, 55238, 1), new Range16.ptr(55243, 55291, 1), new Range16.ptr(65440, 65470, 1), new Range16.ptr(65474, 65479, 1), new Range16.ptr(65482, 65487, 1), new Range16.ptr(65490, 65495, 1), new Range16.ptr(65498, 65500, 1)]), sliceType$1.nil, 0); _Hanunoo = new RangeTable.ptr(new sliceType([new Range16.ptr(5920, 5940, 1)]), sliceType$1.nil, 0); _Hatran = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67808, 67826, 1), new Range32.ptr(67828, 67829, 1), new Range32.ptr(67835, 67839, 1)]), 0); _Hebrew = new RangeTable.ptr(new sliceType([new Range16.ptr(1425, 1479, 1), new Range16.ptr(1488, 1514, 1), new Range16.ptr(1520, 1524, 1), new Range16.ptr(64285, 64310, 1), new Range16.ptr(64312, 64316, 1), new Range16.ptr(64318, 64318, 1), new Range16.ptr(64320, 64321, 1), new Range16.ptr(64323, 64324, 1), new Range16.ptr(64326, 64335, 1)]), sliceType$1.nil, 0); _Hiragana = new RangeTable.ptr(new sliceType([new Range16.ptr(12353, 12438, 1), new Range16.ptr(12445, 12447, 1)]), new sliceType$1([new Range32.ptr(110593, 110593, 1), new Range32.ptr(127488, 127488, 1)]), 0); _Imperial_Aramaic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67648, 67669, 1), new Range32.ptr(67671, 67679, 1)]), 0); _Inherited = new RangeTable.ptr(new sliceType([new Range16.ptr(768, 879, 1), new Range16.ptr(1157, 1158, 1), new Range16.ptr(1611, 1621, 1), new Range16.ptr(1648, 1648, 1), new Range16.ptr(2385, 2386, 1), new Range16.ptr(6832, 6846, 1), new Range16.ptr(7376, 7378, 1), new Range16.ptr(7380, 7392, 1), new Range16.ptr(7394, 7400, 1), new Range16.ptr(7405, 7405, 1), new Range16.ptr(7412, 7412, 1), new Range16.ptr(7416, 7417, 1), new Range16.ptr(7616, 7669, 1), new Range16.ptr(7675, 7679, 1), new Range16.ptr(8204, 8205, 1), new Range16.ptr(8400, 8432, 1), new Range16.ptr(12330, 12333, 1), new Range16.ptr(12441, 12442, 1), new Range16.ptr(65024, 65039, 1), new Range16.ptr(65056, 65069, 1)]), new sliceType$1([new Range32.ptr(66045, 66045, 1), new Range32.ptr(66272, 66272, 1), new Range32.ptr(119143, 119145, 1), new Range32.ptr(119163, 119170, 1), new Range32.ptr(119173, 119179, 1), new Range32.ptr(119210, 119213, 1), new Range32.ptr(917760, 917999, 1)]), 0); _Inscriptional_Pahlavi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68448, 68466, 1), new Range32.ptr(68472, 68479, 1)]), 0); _Inscriptional_Parthian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68416, 68437, 1), new Range32.ptr(68440, 68447, 1)]), 0); _Javanese = new RangeTable.ptr(new sliceType([new Range16.ptr(43392, 43469, 1), new Range16.ptr(43472, 43481, 1), new Range16.ptr(43486, 43487, 1)]), sliceType$1.nil, 0); _Kaithi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(69760, 69825, 1)]), 0); _Kannada = new RangeTable.ptr(new sliceType([new Range16.ptr(3200, 3203, 1), new Range16.ptr(3205, 3212, 1), new Range16.ptr(3214, 3216, 1), new Range16.ptr(3218, 3240, 1), new Range16.ptr(3242, 3251, 1), new Range16.ptr(3253, 3257, 1), new Range16.ptr(3260, 3268, 1), new Range16.ptr(3270, 3272, 1), new Range16.ptr(3274, 3277, 1), new Range16.ptr(3285, 3286, 1), new Range16.ptr(3294, 3294, 1), new Range16.ptr(3296, 3299, 1), new Range16.ptr(3302, 3311, 1), new Range16.ptr(3313, 3314, 1)]), sliceType$1.nil, 0); _Katakana = new RangeTable.ptr(new sliceType([new Range16.ptr(12449, 12538, 1), new Range16.ptr(12541, 12543, 1), new Range16.ptr(12784, 12799, 1), new Range16.ptr(13008, 13054, 1), new Range16.ptr(13056, 13143, 1), new Range16.ptr(65382, 65391, 1), new Range16.ptr(65393, 65437, 1)]), new sliceType$1([new Range32.ptr(110592, 110592, 1)]), 0); _Kayah_Li = new RangeTable.ptr(new sliceType([new Range16.ptr(43264, 43309, 1), new Range16.ptr(43311, 43311, 1)]), sliceType$1.nil, 0); _Kharoshthi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68096, 68099, 1), new Range32.ptr(68101, 68102, 1), new Range32.ptr(68108, 68115, 1), new Range32.ptr(68117, 68119, 1), new Range32.ptr(68121, 68147, 1), new Range32.ptr(68152, 68154, 1), new Range32.ptr(68159, 68167, 1), new Range32.ptr(68176, 68184, 1)]), 0); _Khmer = new RangeTable.ptr(new sliceType([new Range16.ptr(6016, 6109, 1), new Range16.ptr(6112, 6121, 1), new Range16.ptr(6128, 6137, 1), new Range16.ptr(6624, 6655, 1)]), sliceType$1.nil, 0); _Khojki = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70144, 70161, 1), new Range32.ptr(70163, 70206, 1)]), 0); _Khudawadi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70320, 70378, 1), new Range32.ptr(70384, 70393, 1)]), 0); _Lao = new RangeTable.ptr(new sliceType([new Range16.ptr(3713, 3714, 1), new Range16.ptr(3716, 3716, 1), new Range16.ptr(3719, 3720, 1), new Range16.ptr(3722, 3722, 1), new Range16.ptr(3725, 3725, 1), new Range16.ptr(3732, 3735, 1), new Range16.ptr(3737, 3743, 1), new Range16.ptr(3745, 3747, 1), new Range16.ptr(3749, 3749, 1), new Range16.ptr(3751, 3751, 1), new Range16.ptr(3754, 3755, 1), new Range16.ptr(3757, 3769, 1), new Range16.ptr(3771, 3773, 1), new Range16.ptr(3776, 3780, 1), new Range16.ptr(3782, 3782, 1), new Range16.ptr(3784, 3789, 1), new Range16.ptr(3792, 3801, 1), new Range16.ptr(3804, 3807, 1)]), sliceType$1.nil, 0); _Latin = new RangeTable.ptr(new sliceType([new Range16.ptr(65, 90, 1), new Range16.ptr(97, 122, 1), new Range16.ptr(170, 170, 1), new Range16.ptr(186, 186, 1), new Range16.ptr(192, 214, 1), new Range16.ptr(216, 246, 1), new Range16.ptr(248, 696, 1), new Range16.ptr(736, 740, 1), new Range16.ptr(7424, 7461, 1), new Range16.ptr(7468, 7516, 1), new Range16.ptr(7522, 7525, 1), new Range16.ptr(7531, 7543, 1), new Range16.ptr(7545, 7614, 1), new Range16.ptr(7680, 7935, 1), new Range16.ptr(8305, 8305, 1), new Range16.ptr(8319, 8319, 1), new Range16.ptr(8336, 8348, 1), new Range16.ptr(8490, 8491, 1), new Range16.ptr(8498, 8498, 1), new Range16.ptr(8526, 8526, 1), new Range16.ptr(8544, 8584, 1), new Range16.ptr(11360, 11391, 1), new Range16.ptr(42786, 42887, 1), new Range16.ptr(42891, 42926, 1), new Range16.ptr(42928, 42935, 1), new Range16.ptr(42999, 43007, 1), new Range16.ptr(43824, 43866, 1), new Range16.ptr(43868, 43876, 1), new Range16.ptr(64256, 64262, 1), new Range16.ptr(65313, 65338, 1), new Range16.ptr(65345, 65370, 1)]), sliceType$1.nil, 6); _Lepcha = new RangeTable.ptr(new sliceType([new Range16.ptr(7168, 7223, 1), new Range16.ptr(7227, 7241, 1), new Range16.ptr(7245, 7247, 1)]), sliceType$1.nil, 0); _Limbu = new RangeTable.ptr(new sliceType([new Range16.ptr(6400, 6430, 1), new Range16.ptr(6432, 6443, 1), new Range16.ptr(6448, 6459, 1), new Range16.ptr(6464, 6464, 1), new Range16.ptr(6468, 6479, 1)]), sliceType$1.nil, 0); _Linear_A = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67072, 67382, 1), new Range32.ptr(67392, 67413, 1), new Range32.ptr(67424, 67431, 1)]), 0); _Linear_B = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(65536, 65547, 1), new Range32.ptr(65549, 65574, 1), new Range32.ptr(65576, 65594, 1), new Range32.ptr(65596, 65597, 1), new Range32.ptr(65599, 65613, 1), new Range32.ptr(65616, 65629, 1), new Range32.ptr(65664, 65786, 1)]), 0); _Lisu = new RangeTable.ptr(new sliceType([new Range16.ptr(42192, 42239, 1)]), sliceType$1.nil, 0); _Lycian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66176, 66204, 1)]), 0); _Lydian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67872, 67897, 1), new Range32.ptr(67903, 67903, 1)]), 0); _Mahajani = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(69968, 70006, 1)]), 0); _Malayalam = new RangeTable.ptr(new sliceType([new Range16.ptr(3329, 3331, 1), new Range16.ptr(3333, 3340, 1), new Range16.ptr(3342, 3344, 1), new Range16.ptr(3346, 3386, 1), new Range16.ptr(3389, 3396, 1), new Range16.ptr(3398, 3400, 1), new Range16.ptr(3402, 3407, 1), new Range16.ptr(3412, 3427, 1), new Range16.ptr(3430, 3455, 1)]), sliceType$1.nil, 0); _Mandaic = new RangeTable.ptr(new sliceType([new Range16.ptr(2112, 2139, 1), new Range16.ptr(2142, 2142, 1)]), sliceType$1.nil, 0); _Manichaean = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68288, 68326, 1), new Range32.ptr(68331, 68342, 1)]), 0); _Marchen = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(72816, 72847, 1), new Range32.ptr(72850, 72871, 1), new Range32.ptr(72873, 72886, 1)]), 0); _Meetei_Mayek = new RangeTable.ptr(new sliceType([new Range16.ptr(43744, 43766, 1), new Range16.ptr(43968, 44013, 1), new Range16.ptr(44016, 44025, 1)]), sliceType$1.nil, 0); _Mende_Kikakui = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(124928, 125124, 1), new Range32.ptr(125127, 125142, 1)]), 0); _Meroitic_Cursive = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68000, 68023, 1), new Range32.ptr(68028, 68047, 1), new Range32.ptr(68050, 68095, 1)]), 0); _Meroitic_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67968, 67999, 1)]), 0); _Miao = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(93952, 94020, 1), new Range32.ptr(94032, 94078, 1), new Range32.ptr(94095, 94111, 1)]), 0); _Modi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(71168, 71236, 1), new Range32.ptr(71248, 71257, 1)]), 0); _Mongolian = new RangeTable.ptr(new sliceType([new Range16.ptr(6144, 6145, 1), new Range16.ptr(6148, 6148, 1), new Range16.ptr(6150, 6158, 1), new Range16.ptr(6160, 6169, 1), new Range16.ptr(6176, 6263, 1), new Range16.ptr(6272, 6314, 1)]), new sliceType$1([new Range32.ptr(71264, 71276, 1)]), 0); _Mro = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(92736, 92766, 1), new Range32.ptr(92768, 92777, 1), new Range32.ptr(92782, 92783, 1)]), 0); _Multani = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70272, 70278, 1), new Range32.ptr(70280, 70280, 1), new Range32.ptr(70282, 70285, 1), new Range32.ptr(70287, 70301, 1), new Range32.ptr(70303, 70313, 1)]), 0); _Myanmar = new RangeTable.ptr(new sliceType([new Range16.ptr(4096, 4255, 1), new Range16.ptr(43488, 43518, 1), new Range16.ptr(43616, 43647, 1)]), sliceType$1.nil, 0); _Nabataean = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67712, 67742, 1), new Range32.ptr(67751, 67759, 1)]), 0); _New_Tai_Lue = new RangeTable.ptr(new sliceType([new Range16.ptr(6528, 6571, 1), new Range16.ptr(6576, 6601, 1), new Range16.ptr(6608, 6618, 1), new Range16.ptr(6622, 6623, 1)]), sliceType$1.nil, 0); _Newa = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70656, 70745, 1), new Range32.ptr(70747, 70747, 1), new Range32.ptr(70749, 70749, 1)]), 0); _Nko = new RangeTable.ptr(new sliceType([new Range16.ptr(1984, 2042, 1)]), sliceType$1.nil, 0); _Ogham = new RangeTable.ptr(new sliceType([new Range16.ptr(5760, 5788, 1)]), sliceType$1.nil, 0); _Ol_Chiki = new RangeTable.ptr(new sliceType([new Range16.ptr(7248, 7295, 1)]), sliceType$1.nil, 0); _Old_Hungarian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68736, 68786, 1), new Range32.ptr(68800, 68850, 1), new Range32.ptr(68858, 68863, 1)]), 0); _Old_Italic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66304, 66339, 1)]), 0); _Old_North_Arabian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68224, 68255, 1)]), 0); _Old_Permic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66384, 66426, 1)]), 0); _Old_Persian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66464, 66499, 1), new Range32.ptr(66504, 66517, 1)]), 0); _Old_South_Arabian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68192, 68223, 1)]), 0); _Old_Turkic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68608, 68680, 1)]), 0); _Oriya = new RangeTable.ptr(new sliceType([new Range16.ptr(2817, 2819, 1), new Range16.ptr(2821, 2828, 1), new Range16.ptr(2831, 2832, 1), new Range16.ptr(2835, 2856, 1), new Range16.ptr(2858, 2864, 1), new Range16.ptr(2866, 2867, 1), new Range16.ptr(2869, 2873, 1), new Range16.ptr(2876, 2884, 1), new Range16.ptr(2887, 2888, 1), new Range16.ptr(2891, 2893, 1), new Range16.ptr(2902, 2903, 1), new Range16.ptr(2908, 2909, 1), new Range16.ptr(2911, 2915, 1), new Range16.ptr(2918, 2935, 1)]), sliceType$1.nil, 0); _Osage = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66736, 66771, 1), new Range32.ptr(66776, 66811, 1)]), 0); _Osmanya = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66688, 66717, 1), new Range32.ptr(66720, 66729, 1)]), 0); _Pahawh_Hmong = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(92928, 92997, 1), new Range32.ptr(93008, 93017, 1), new Range32.ptr(93019, 93025, 1), new Range32.ptr(93027, 93047, 1), new Range32.ptr(93053, 93071, 1)]), 0); _Palmyrene = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67680, 67711, 1)]), 0); _Pau_Cin_Hau = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(72384, 72440, 1)]), 0); _Phags_Pa = new RangeTable.ptr(new sliceType([new Range16.ptr(43072, 43127, 1)]), sliceType$1.nil, 0); _Phoenician = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67840, 67867, 1), new Range32.ptr(67871, 67871, 1)]), 0); _Psalter_Pahlavi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68480, 68497, 1), new Range32.ptr(68505, 68508, 1), new Range32.ptr(68521, 68527, 1)]), 0); _Rejang = new RangeTable.ptr(new sliceType([new Range16.ptr(43312, 43347, 1), new Range16.ptr(43359, 43359, 1)]), sliceType$1.nil, 0); _Runic = new RangeTable.ptr(new sliceType([new Range16.ptr(5792, 5866, 1), new Range16.ptr(5870, 5880, 1)]), sliceType$1.nil, 0); _Samaritan = new RangeTable.ptr(new sliceType([new Range16.ptr(2048, 2093, 1), new Range16.ptr(2096, 2110, 1)]), sliceType$1.nil, 0); _Saurashtra = new RangeTable.ptr(new sliceType([new Range16.ptr(43136, 43205, 1), new Range16.ptr(43214, 43225, 1)]), sliceType$1.nil, 0); _Sharada = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70016, 70093, 1), new Range32.ptr(70096, 70111, 1)]), 0); _Shavian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66640, 66687, 1)]), 0); _Siddham = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(71040, 71093, 1), new Range32.ptr(71096, 71133, 1)]), 0); _SignWriting = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(120832, 121483, 1), new Range32.ptr(121499, 121503, 1), new Range32.ptr(121505, 121519, 1)]), 0); _Sinhala = new RangeTable.ptr(new sliceType([new Range16.ptr(3458, 3459, 1), new Range16.ptr(3461, 3478, 1), new Range16.ptr(3482, 3505, 1), new Range16.ptr(3507, 3515, 1), new Range16.ptr(3517, 3517, 1), new Range16.ptr(3520, 3526, 1), new Range16.ptr(3530, 3530, 1), new Range16.ptr(3535, 3540, 1), new Range16.ptr(3542, 3542, 1), new Range16.ptr(3544, 3551, 1), new Range16.ptr(3558, 3567, 1), new Range16.ptr(3570, 3572, 1)]), new sliceType$1([new Range32.ptr(70113, 70132, 1)]), 0); _Sora_Sompeng = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(69840, 69864, 1), new Range32.ptr(69872, 69881, 1)]), 0); _Sundanese = new RangeTable.ptr(new sliceType([new Range16.ptr(7040, 7103, 1), new Range16.ptr(7360, 7367, 1)]), sliceType$1.nil, 0); _Syloti_Nagri = new RangeTable.ptr(new sliceType([new Range16.ptr(43008, 43051, 1)]), sliceType$1.nil, 0); _Syriac = new RangeTable.ptr(new sliceType([new Range16.ptr(1792, 1805, 1), new Range16.ptr(1807, 1866, 1), new Range16.ptr(1869, 1871, 1)]), sliceType$1.nil, 0); _Tagalog = new RangeTable.ptr(new sliceType([new Range16.ptr(5888, 5900, 1), new Range16.ptr(5902, 5908, 1)]), sliceType$1.nil, 0); _Tagbanwa = new RangeTable.ptr(new sliceType([new Range16.ptr(5984, 5996, 1), new Range16.ptr(5998, 6000, 1), new Range16.ptr(6002, 6003, 1)]), sliceType$1.nil, 0); _Tai_Le = new RangeTable.ptr(new sliceType([new Range16.ptr(6480, 6509, 1), new Range16.ptr(6512, 6516, 1)]), sliceType$1.nil, 0); _Tai_Tham = new RangeTable.ptr(new sliceType([new Range16.ptr(6688, 6750, 1), new Range16.ptr(6752, 6780, 1), new Range16.ptr(6783, 6793, 1), new Range16.ptr(6800, 6809, 1), new Range16.ptr(6816, 6829, 1)]), sliceType$1.nil, 0); _Tai_Viet = new RangeTable.ptr(new sliceType([new Range16.ptr(43648, 43714, 1), new Range16.ptr(43739, 43743, 1)]), sliceType$1.nil, 0); _Takri = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(71296, 71351, 1), new Range32.ptr(71360, 71369, 1)]), 0); _Tamil = new RangeTable.ptr(new sliceType([new Range16.ptr(2946, 2947, 1), new Range16.ptr(2949, 2954, 1), new Range16.ptr(2958, 2960, 1), new Range16.ptr(2962, 2965, 1), new Range16.ptr(2969, 2970, 1), new Range16.ptr(2972, 2972, 1), new Range16.ptr(2974, 2975, 1), new Range16.ptr(2979, 2980, 1), new Range16.ptr(2984, 2986, 1), new Range16.ptr(2990, 3001, 1), new Range16.ptr(3006, 3010, 1), new Range16.ptr(3014, 3016, 1), new Range16.ptr(3018, 3021, 1), new Range16.ptr(3024, 3024, 1), new Range16.ptr(3031, 3031, 1), new Range16.ptr(3046, 3066, 1)]), sliceType$1.nil, 0); _Tangut = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(94176, 94176, 1), new Range32.ptr(94208, 100332, 1), new Range32.ptr(100352, 101106, 1)]), 0); _Telugu = new RangeTable.ptr(new sliceType([new Range16.ptr(3072, 3075, 1), new Range16.ptr(3077, 3084, 1), new Range16.ptr(3086, 3088, 1), new Range16.ptr(3090, 3112, 1), new Range16.ptr(3114, 3129, 1), new Range16.ptr(3133, 3140, 1), new Range16.ptr(3142, 3144, 1), new Range16.ptr(3146, 3149, 1), new Range16.ptr(3157, 3158, 1), new Range16.ptr(3160, 3162, 1), new Range16.ptr(3168, 3171, 1), new Range16.ptr(3174, 3183, 1), new Range16.ptr(3192, 3199, 1)]), sliceType$1.nil, 0); _Thaana = new RangeTable.ptr(new sliceType([new Range16.ptr(1920, 1969, 1)]), sliceType$1.nil, 0); _Thai = new RangeTable.ptr(new sliceType([new Range16.ptr(3585, 3642, 1), new Range16.ptr(3648, 3675, 1)]), sliceType$1.nil, 0); _Tibetan = new RangeTable.ptr(new sliceType([new Range16.ptr(3840, 3911, 1), new Range16.ptr(3913, 3948, 1), new Range16.ptr(3953, 3991, 1), new Range16.ptr(3993, 4028, 1), new Range16.ptr(4030, 4044, 1), new Range16.ptr(4046, 4052, 1), new Range16.ptr(4057, 4058, 1)]), sliceType$1.nil, 0); _Tifinagh = new RangeTable.ptr(new sliceType([new Range16.ptr(11568, 11623, 1), new Range16.ptr(11631, 11632, 1), new Range16.ptr(11647, 11647, 1)]), sliceType$1.nil, 0); _Tirhuta = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70784, 70855, 1), new Range32.ptr(70864, 70873, 1)]), 0); _Ugaritic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66432, 66461, 1), new Range32.ptr(66463, 66463, 1)]), 0); _Vai = new RangeTable.ptr(new sliceType([new Range16.ptr(42240, 42539, 1)]), sliceType$1.nil, 0); _Warang_Citi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(71840, 71922, 1), new Range32.ptr(71935, 71935, 1)]), 0); _Yi = new RangeTable.ptr(new sliceType([new Range16.ptr(40960, 42124, 1), new Range16.ptr(42128, 42182, 1)]), sliceType$1.nil, 0); $pkg.Adlam = _Adlam; $pkg.Ahom = _Ahom; $pkg.Anatolian_Hieroglyphs = _Anatolian_Hieroglyphs; $pkg.Arabic = _Arabic; $pkg.Armenian = _Armenian; $pkg.Avestan = _Avestan; $pkg.Balinese = _Balinese; $pkg.Bamum = _Bamum; $pkg.Bassa_Vah = _Bassa_Vah; $pkg.Batak = _Batak; $pkg.Bengali = _Bengali; $pkg.Bhaiksuki = _Bhaiksuki; $pkg.Bopomofo = _Bopomofo; $pkg.Brahmi = _Brahmi; $pkg.Braille = _Braille; $pkg.Buginese = _Buginese; $pkg.Buhid = _Buhid; $pkg.Canadian_Aboriginal = _Canadian_Aboriginal; $pkg.Carian = _Carian; $pkg.Caucasian_Albanian = _Caucasian_Albanian; $pkg.Chakma = _Chakma; $pkg.Cham = _Cham; $pkg.Cherokee = _Cherokee; $pkg.Common = _Common; $pkg.Coptic = _Coptic; $pkg.Cuneiform = _Cuneiform; $pkg.Cypriot = _Cypriot; $pkg.Cyrillic = _Cyrillic; $pkg.Deseret = _Deseret; $pkg.Devanagari = _Devanagari; $pkg.Duployan = _Duployan; $pkg.Egyptian_Hieroglyphs = _Egyptian_Hieroglyphs; $pkg.Elbasan = _Elbasan; $pkg.Ethiopic = _Ethiopic; $pkg.Georgian = _Georgian; $pkg.Glagolitic = _Glagolitic; $pkg.Gothic = _Gothic; $pkg.Grantha = _Grantha; $pkg.Greek = _Greek; $pkg.Gujarati = _Gujarati; $pkg.Gurmukhi = _Gurmukhi; $pkg.Han = _Han; $pkg.Hangul = _Hangul; $pkg.Hanunoo = _Hanunoo; $pkg.Hatran = _Hatran; $pkg.Hebrew = _Hebrew; $pkg.Hiragana = _Hiragana; $pkg.Imperial_Aramaic = _Imperial_Aramaic; $pkg.Inherited = _Inherited; $pkg.Inscriptional_Pahlavi = _Inscriptional_Pahlavi; $pkg.Inscriptional_Parthian = _Inscriptional_Parthian; $pkg.Javanese = _Javanese; $pkg.Kaithi = _Kaithi; $pkg.Kannada = _Kannada; $pkg.Katakana = _Katakana; $pkg.Kayah_Li = _Kayah_Li; $pkg.Kharoshthi = _Kharoshthi; $pkg.Khmer = _Khmer; $pkg.Khojki = _Khojki; $pkg.Khudawadi = _Khudawadi; $pkg.Lao = _Lao; $pkg.Latin = _Latin; $pkg.Lepcha = _Lepcha; $pkg.Limbu = _Limbu; $pkg.Linear_A = _Linear_A; $pkg.Linear_B = _Linear_B; $pkg.Lisu = _Lisu; $pkg.Lycian = _Lycian; $pkg.Lydian = _Lydian; $pkg.Mahajani = _Mahajani; $pkg.Malayalam = _Malayalam; $pkg.Mandaic = _Mandaic; $pkg.Manichaean = _Manichaean; $pkg.Marchen = _Marchen; $pkg.Meetei_Mayek = _Meetei_Mayek; $pkg.Mende_Kikakui = _Mende_Kikakui; $pkg.Meroitic_Cursive = _Meroitic_Cursive; $pkg.Meroitic_Hieroglyphs = _Meroitic_Hieroglyphs; $pkg.Miao = _Miao; $pkg.Modi = _Modi; $pkg.Mongolian = _Mongolian; $pkg.Mro = _Mro; $pkg.Multani = _Multani; $pkg.Myanmar = _Myanmar; $pkg.Nabataean = _Nabataean; $pkg.New_Tai_Lue = _New_Tai_Lue; $pkg.Newa = _Newa; $pkg.Nko = _Nko; $pkg.Ogham = _Ogham; $pkg.Ol_Chiki = _Ol_Chiki; $pkg.Old_Hungarian = _Old_Hungarian; $pkg.Old_Italic = _Old_Italic; $pkg.Old_North_Arabian = _Old_North_Arabian; $pkg.Old_Permic = _Old_Permic; $pkg.Old_Persian = _Old_Persian; $pkg.Old_South_Arabian = _Old_South_Arabian; $pkg.Old_Turkic = _Old_Turkic; $pkg.Oriya = _Oriya; $pkg.Osage = _Osage; $pkg.Osmanya = _Osmanya; $pkg.Pahawh_Hmong = _Pahawh_Hmong; $pkg.Palmyrene = _Palmyrene; $pkg.Pau_Cin_Hau = _Pau_Cin_Hau; $pkg.Phags_Pa = _Phags_Pa; $pkg.Phoenician = _Phoenician; $pkg.Psalter_Pahlavi = _Psalter_Pahlavi; $pkg.Rejang = _Rejang; $pkg.Runic = _Runic; $pkg.Samaritan = _Samaritan; $pkg.Saurashtra = _Saurashtra; $pkg.Sharada = _Sharada; $pkg.Shavian = _Shavian; $pkg.Siddham = _Siddham; $pkg.SignWriting = _SignWriting; $pkg.Sinhala = _Sinhala; $pkg.Sora_Sompeng = _Sora_Sompeng; $pkg.Sundanese = _Sundanese; $pkg.Syloti_Nagri = _Syloti_Nagri; $pkg.Syriac = _Syriac; $pkg.Tagalog = _Tagalog; $pkg.Tagbanwa = _Tagbanwa; $pkg.Tai_Le = _Tai_Le; $pkg.Tai_Tham = _Tai_Tham; $pkg.Tai_Viet = _Tai_Viet; $pkg.Takri = _Takri; $pkg.Tamil = _Tamil; $pkg.Tangut = _Tangut; $pkg.Telugu = _Telugu; $pkg.Thaana = _Thaana; $pkg.Thai = _Thai; $pkg.Tibetan = _Tibetan; $pkg.Tifinagh = _Tifinagh; $pkg.Tirhuta = _Tirhuta; $pkg.Ugaritic = _Ugaritic; $pkg.Vai = _Vai; $pkg.Warang_Citi = _Warang_Citi; $pkg.Yi = _Yi; $pkg.Scripts = $makeMap($String.keyFor, [{ k: "Adlam", v: $pkg.Adlam }, { k: "Ahom", v: $pkg.Ahom }, { k: "Anatolian_Hieroglyphs", v: $pkg.Anatolian_Hieroglyphs }, { k: "Arabic", v: $pkg.Arabic }, { k: "Armenian", v: $pkg.Armenian }, { k: "Avestan", v: $pkg.Avestan }, { k: "Balinese", v: $pkg.Balinese }, { k: "Bamum", v: $pkg.Bamum }, { k: "Bassa_Vah", v: $pkg.Bassa_Vah }, { k: "Batak", v: $pkg.Batak }, { k: "Bengali", v: $pkg.Bengali }, { k: "Bhaiksuki", v: $pkg.Bhaiksuki }, { k: "Bopomofo", v: $pkg.Bopomofo }, { k: "Brahmi", v: $pkg.Brahmi }, { k: "Braille", v: $pkg.Braille }, { k: "Buginese", v: $pkg.Buginese }, { k: "Buhid", v: $pkg.Buhid }, { k: "Canadian_Aboriginal", v: $pkg.Canadian_Aboriginal }, { k: "Carian", v: $pkg.Carian }, { k: "Caucasian_Albanian", v: $pkg.Caucasian_Albanian }, { k: "Chakma", v: $pkg.Chakma }, { k: "Cham", v: $pkg.Cham }, { k: "Cherokee", v: $pkg.Cherokee }, { k: "Common", v: $pkg.Common }, { k: "Coptic", v: $pkg.Coptic }, { k: "Cuneiform", v: $pkg.Cuneiform }, { k: "Cypriot", v: $pkg.Cypriot }, { k: "Cyrillic", v: $pkg.Cyrillic }, { k: "Deseret", v: $pkg.Deseret }, { k: "Devanagari", v: $pkg.Devanagari }, { k: "Duployan", v: $pkg.Duployan }, { k: "Egyptian_Hieroglyphs", v: $pkg.Egyptian_Hieroglyphs }, { k: "Elbasan", v: $pkg.Elbasan }, { k: "Ethiopic", v: $pkg.Ethiopic }, { k: "Georgian", v: $pkg.Georgian }, { k: "Glagolitic", v: $pkg.Glagolitic }, { k: "Gothic", v: $pkg.Gothic }, { k: "Grantha", v: $pkg.Grantha }, { k: "Greek", v: $pkg.Greek }, { k: "Gujarati", v: $pkg.Gujarati }, { k: "Gurmukhi", v: $pkg.Gurmukhi }, { k: "Han", v: $pkg.Han }, { k: "Hangul", v: $pkg.Hangul }, { k: "Hanunoo", v: $pkg.Hanunoo }, { k: "Hatran", v: $pkg.Hatran }, { k: "Hebrew", v: $pkg.Hebrew }, { k: "Hiragana", v: $pkg.Hiragana }, { k: "Imperial_Aramaic", v: $pkg.Imperial_Aramaic }, { k: "Inherited", v: $pkg.Inherited }, { k: "Inscriptional_Pahlavi", v: $pkg.Inscriptional_Pahlavi }, { k: "Inscriptional_Parthian", v: $pkg.Inscriptional_Parthian }, { k: "Javanese", v: $pkg.Javanese }, { k: "Kaithi", v: $pkg.Kaithi }, { k: "Kannada", v: $pkg.Kannada }, { k: "Katakana", v: $pkg.Katakana }, { k: "Kayah_Li", v: $pkg.Kayah_Li }, { k: "Kharoshthi", v: $pkg.Kharoshthi }, { k: "Khmer", v: $pkg.Khmer }, { k: "Khojki", v: $pkg.Khojki }, { k: "Khudawadi", v: $pkg.Khudawadi }, { k: "Lao", v: $pkg.Lao }, { k: "Latin", v: $pkg.Latin }, { k: "Lepcha", v: $pkg.Lepcha }, { k: "Limbu", v: $pkg.Limbu }, { k: "Linear_A", v: $pkg.Linear_A }, { k: "Linear_B", v: $pkg.Linear_B }, { k: "Lisu", v: $pkg.Lisu }, { k: "Lycian", v: $pkg.Lycian }, { k: "Lydian", v: $pkg.Lydian }, { k: "Mahajani", v: $pkg.Mahajani }, { k: "Malayalam", v: $pkg.Malayalam }, { k: "Mandaic", v: $pkg.Mandaic }, { k: "Manichaean", v: $pkg.Manichaean }, { k: "Marchen", v: $pkg.Marchen }, { k: "Meetei_Mayek", v: $pkg.Meetei_Mayek }, { k: "Mende_Kikakui", v: $pkg.Mende_Kikakui }, { k: "Meroitic_Cursive", v: $pkg.Meroitic_Cursive }, { k: "Meroitic_Hieroglyphs", v: $pkg.Meroitic_Hieroglyphs }, { k: "Miao", v: $pkg.Miao }, { k: "Modi", v: $pkg.Modi }, { k: "Mongolian", v: $pkg.Mongolian }, { k: "Mro", v: $pkg.Mro }, { k: "Multani", v: $pkg.Multani }, { k: "Myanmar", v: $pkg.Myanmar }, { k: "Nabataean", v: $pkg.Nabataean }, { k: "New_Tai_Lue", v: $pkg.New_Tai_Lue }, { k: "Newa", v: $pkg.Newa }, { k: "Nko", v: $pkg.Nko }, { k: "Ogham", v: $pkg.Ogham }, { k: "Ol_Chiki", v: $pkg.Ol_Chiki }, { k: "Old_Hungarian", v: $pkg.Old_Hungarian }, { k: "Old_Italic", v: $pkg.Old_Italic }, { k: "Old_North_Arabian", v: $pkg.Old_North_Arabian }, { k: "Old_Permic", v: $pkg.Old_Permic }, { k: "Old_Persian", v: $pkg.Old_Persian }, { k: "Old_South_Arabian", v: $pkg.Old_South_Arabian }, { k: "Old_Turkic", v: $pkg.Old_Turkic }, { k: "Oriya", v: $pkg.Oriya }, { k: "Osage", v: $pkg.Osage }, { k: "Osmanya", v: $pkg.Osmanya }, { k: "Pahawh_Hmong", v: $pkg.Pahawh_Hmong }, { k: "Palmyrene", v: $pkg.Palmyrene }, { k: "Pau_Cin_Hau", v: $pkg.Pau_Cin_Hau }, { k: "Phags_Pa", v: $pkg.Phags_Pa }, { k: "Phoenician", v: $pkg.Phoenician }, { k: "Psalter_Pahlavi", v: $pkg.Psalter_Pahlavi }, { k: "Rejang", v: $pkg.Rejang }, { k: "Runic", v: $pkg.Runic }, { k: "Samaritan", v: $pkg.Samaritan }, { k: "Saurashtra", v: $pkg.Saurashtra }, { k: "Sharada", v: $pkg.Sharada }, { k: "Shavian", v: $pkg.Shavian }, { k: "Siddham", v: $pkg.Siddham }, { k: "SignWriting", v: $pkg.SignWriting }, { k: "Sinhala", v: $pkg.Sinhala }, { k: "Sora_Sompeng", v: $pkg.Sora_Sompeng }, { k: "Sundanese", v: $pkg.Sundanese }, { k: "Syloti_Nagri", v: $pkg.Syloti_Nagri }, { k: "Syriac", v: $pkg.Syriac }, { k: "Tagalog", v: $pkg.Tagalog }, { k: "Tagbanwa", v: $pkg.Tagbanwa }, { k: "Tai_Le", v: $pkg.Tai_Le }, { k: "Tai_Tham", v: $pkg.Tai_Tham }, { k: "Tai_Viet", v: $pkg.Tai_Viet }, { k: "Takri", v: $pkg.Takri }, { k: "Tamil", v: $pkg.Tamil }, { k: "Tangut", v: $pkg.Tangut }, { k: "Telugu", v: $pkg.Telugu }, { k: "Thaana", v: $pkg.Thaana }, { k: "Thai", v: $pkg.Thai }, { k: "Tibetan", v: $pkg.Tibetan }, { k: "Tifinagh", v: $pkg.Tifinagh }, { k: "Tirhuta", v: $pkg.Tirhuta }, { k: "Ugaritic", v: $pkg.Ugaritic }, { k: "Vai", v: $pkg.Vai }, { k: "Warang_Citi", v: $pkg.Warang_Citi }, { k: "Yi", v: $pkg.Yi }]); _CaseRanges = new sliceType$3([new CaseRange.ptr(65, 90, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(97, 122, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(181, 181, $toNativeArray($kindInt32, [743, 0, 743])), new CaseRange.ptr(192, 214, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(216, 222, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(224, 246, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(248, 254, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(255, 255, $toNativeArray($kindInt32, [121, 0, 121])), new CaseRange.ptr(256, 303, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(304, 304, $toNativeArray($kindInt32, [0, -199, 0])), new CaseRange.ptr(305, 305, $toNativeArray($kindInt32, [-232, 0, -232])), new CaseRange.ptr(306, 311, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(313, 328, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(330, 375, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(376, 376, $toNativeArray($kindInt32, [0, -121, 0])), new CaseRange.ptr(377, 382, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(383, 383, $toNativeArray($kindInt32, [-300, 0, -300])), new CaseRange.ptr(384, 384, $toNativeArray($kindInt32, [195, 0, 195])), new CaseRange.ptr(385, 385, $toNativeArray($kindInt32, [0, 210, 0])), new CaseRange.ptr(386, 389, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(390, 390, $toNativeArray($kindInt32, [0, 206, 0])), new CaseRange.ptr(391, 392, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(393, 394, $toNativeArray($kindInt32, [0, 205, 0])), new CaseRange.ptr(395, 396, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(398, 398, $toNativeArray($kindInt32, [0, 79, 0])), new CaseRange.ptr(399, 399, $toNativeArray($kindInt32, [0, 202, 0])), new CaseRange.ptr(400, 400, $toNativeArray($kindInt32, [0, 203, 0])), new CaseRange.ptr(401, 402, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(403, 403, $toNativeArray($kindInt32, [0, 205, 0])), new CaseRange.ptr(404, 404, $toNativeArray($kindInt32, [0, 207, 0])), new CaseRange.ptr(405, 405, $toNativeArray($kindInt32, [97, 0, 97])), new CaseRange.ptr(406, 406, $toNativeArray($kindInt32, [0, 211, 0])), new CaseRange.ptr(407, 407, $toNativeArray($kindInt32, [0, 209, 0])), new CaseRange.ptr(408, 409, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(410, 410, $toNativeArray($kindInt32, [163, 0, 163])), new CaseRange.ptr(412, 412, $toNativeArray($kindInt32, [0, 211, 0])), new CaseRange.ptr(413, 413, $toNativeArray($kindInt32, [0, 213, 0])), new CaseRange.ptr(414, 414, $toNativeArray($kindInt32, [130, 0, 130])), new CaseRange.ptr(415, 415, $toNativeArray($kindInt32, [0, 214, 0])), new CaseRange.ptr(416, 421, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(422, 422, $toNativeArray($kindInt32, [0, 218, 0])), new CaseRange.ptr(423, 424, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(425, 425, $toNativeArray($kindInt32, [0, 218, 0])), new CaseRange.ptr(428, 429, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(430, 430, $toNativeArray($kindInt32, [0, 218, 0])), new CaseRange.ptr(431, 432, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(433, 434, $toNativeArray($kindInt32, [0, 217, 0])), new CaseRange.ptr(435, 438, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(439, 439, $toNativeArray($kindInt32, [0, 219, 0])), new CaseRange.ptr(440, 441, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(444, 445, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(447, 447, $toNativeArray($kindInt32, [56, 0, 56])), new CaseRange.ptr(452, 452, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(453, 453, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(454, 454, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(455, 455, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(456, 456, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(457, 457, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(458, 458, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(459, 459, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(460, 460, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(461, 476, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(477, 477, $toNativeArray($kindInt32, [-79, 0, -79])), new CaseRange.ptr(478, 495, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(497, 497, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(498, 498, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(499, 499, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(500, 501, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(502, 502, $toNativeArray($kindInt32, [0, -97, 0])), new CaseRange.ptr(503, 503, $toNativeArray($kindInt32, [0, -56, 0])), new CaseRange.ptr(504, 543, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(544, 544, $toNativeArray($kindInt32, [0, -130, 0])), new CaseRange.ptr(546, 563, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(570, 570, $toNativeArray($kindInt32, [0, 10795, 0])), new CaseRange.ptr(571, 572, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(573, 573, $toNativeArray($kindInt32, [0, -163, 0])), new CaseRange.ptr(574, 574, $toNativeArray($kindInt32, [0, 10792, 0])), new CaseRange.ptr(575, 576, $toNativeArray($kindInt32, [10815, 0, 10815])), new CaseRange.ptr(577, 578, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(579, 579, $toNativeArray($kindInt32, [0, -195, 0])), new CaseRange.ptr(580, 580, $toNativeArray($kindInt32, [0, 69, 0])), new CaseRange.ptr(581, 581, $toNativeArray($kindInt32, [0, 71, 0])), new CaseRange.ptr(582, 591, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(592, 592, $toNativeArray($kindInt32, [10783, 0, 10783])), new CaseRange.ptr(593, 593, $toNativeArray($kindInt32, [10780, 0, 10780])), new CaseRange.ptr(594, 594, $toNativeArray($kindInt32, [10782, 0, 10782])), new CaseRange.ptr(595, 595, $toNativeArray($kindInt32, [-210, 0, -210])), new CaseRange.ptr(596, 596, $toNativeArray($kindInt32, [-206, 0, -206])), new CaseRange.ptr(598, 599, $toNativeArray($kindInt32, [-205, 0, -205])), new CaseRange.ptr(601, 601, $toNativeArray($kindInt32, [-202, 0, -202])), new CaseRange.ptr(603, 603, $toNativeArray($kindInt32, [-203, 0, -203])), new CaseRange.ptr(604, 604, $toNativeArray($kindInt32, [42319, 0, 42319])), new CaseRange.ptr(608, 608, $toNativeArray($kindInt32, [-205, 0, -205])), new CaseRange.ptr(609, 609, $toNativeArray($kindInt32, [42315, 0, 42315])), new CaseRange.ptr(611, 611, $toNativeArray($kindInt32, [-207, 0, -207])), new CaseRange.ptr(613, 613, $toNativeArray($kindInt32, [42280, 0, 42280])), new CaseRange.ptr(614, 614, $toNativeArray($kindInt32, [42308, 0, 42308])), new CaseRange.ptr(616, 616, $toNativeArray($kindInt32, [-209, 0, -209])), new CaseRange.ptr(617, 617, $toNativeArray($kindInt32, [-211, 0, -211])), new CaseRange.ptr(618, 618, $toNativeArray($kindInt32, [42308, 0, 42308])), new CaseRange.ptr(619, 619, $toNativeArray($kindInt32, [10743, 0, 10743])), new CaseRange.ptr(620, 620, $toNativeArray($kindInt32, [42305, 0, 42305])), new CaseRange.ptr(623, 623, $toNativeArray($kindInt32, [-211, 0, -211])), new CaseRange.ptr(625, 625, $toNativeArray($kindInt32, [10749, 0, 10749])), new CaseRange.ptr(626, 626, $toNativeArray($kindInt32, [-213, 0, -213])), new CaseRange.ptr(629, 629, $toNativeArray($kindInt32, [-214, 0, -214])), new CaseRange.ptr(637, 637, $toNativeArray($kindInt32, [10727, 0, 10727])), new CaseRange.ptr(640, 640, $toNativeArray($kindInt32, [-218, 0, -218])), new CaseRange.ptr(643, 643, $toNativeArray($kindInt32, [-218, 0, -218])), new CaseRange.ptr(647, 647, $toNativeArray($kindInt32, [42282, 0, 42282])), new CaseRange.ptr(648, 648, $toNativeArray($kindInt32, [-218, 0, -218])), new CaseRange.ptr(649, 649, $toNativeArray($kindInt32, [-69, 0, -69])), new CaseRange.ptr(650, 651, $toNativeArray($kindInt32, [-217, 0, -217])), new CaseRange.ptr(652, 652, $toNativeArray($kindInt32, [-71, 0, -71])), new CaseRange.ptr(658, 658, $toNativeArray($kindInt32, [-219, 0, -219])), new CaseRange.ptr(669, 669, $toNativeArray($kindInt32, [42261, 0, 42261])), new CaseRange.ptr(670, 670, $toNativeArray($kindInt32, [42258, 0, 42258])), new CaseRange.ptr(837, 837, $toNativeArray($kindInt32, [84, 0, 84])), new CaseRange.ptr(880, 883, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(886, 887, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(891, 893, $toNativeArray($kindInt32, [130, 0, 130])), new CaseRange.ptr(895, 895, $toNativeArray($kindInt32, [0, 116, 0])), new CaseRange.ptr(902, 902, $toNativeArray($kindInt32, [0, 38, 0])), new CaseRange.ptr(904, 906, $toNativeArray($kindInt32, [0, 37, 0])), new CaseRange.ptr(908, 908, $toNativeArray($kindInt32, [0, 64, 0])), new CaseRange.ptr(910, 911, $toNativeArray($kindInt32, [0, 63, 0])), new CaseRange.ptr(913, 929, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(931, 939, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(940, 940, $toNativeArray($kindInt32, [-38, 0, -38])), new CaseRange.ptr(941, 943, $toNativeArray($kindInt32, [-37, 0, -37])), new CaseRange.ptr(945, 961, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(962, 962, $toNativeArray($kindInt32, [-31, 0, -31])), new CaseRange.ptr(963, 971, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(972, 972, $toNativeArray($kindInt32, [-64, 0, -64])), new CaseRange.ptr(973, 974, $toNativeArray($kindInt32, [-63, 0, -63])), new CaseRange.ptr(975, 975, $toNativeArray($kindInt32, [0, 8, 0])), new CaseRange.ptr(976, 976, $toNativeArray($kindInt32, [-62, 0, -62])), new CaseRange.ptr(977, 977, $toNativeArray($kindInt32, [-57, 0, -57])), new CaseRange.ptr(981, 981, $toNativeArray($kindInt32, [-47, 0, -47])), new CaseRange.ptr(982, 982, $toNativeArray($kindInt32, [-54, 0, -54])), new CaseRange.ptr(983, 983, $toNativeArray($kindInt32, [-8, 0, -8])), new CaseRange.ptr(984, 1007, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1008, 1008, $toNativeArray($kindInt32, [-86, 0, -86])), new CaseRange.ptr(1009, 1009, $toNativeArray($kindInt32, [-80, 0, -80])), new CaseRange.ptr(1010, 1010, $toNativeArray($kindInt32, [7, 0, 7])), new CaseRange.ptr(1011, 1011, $toNativeArray($kindInt32, [-116, 0, -116])), new CaseRange.ptr(1012, 1012, $toNativeArray($kindInt32, [0, -60, 0])), new CaseRange.ptr(1013, 1013, $toNativeArray($kindInt32, [-96, 0, -96])), new CaseRange.ptr(1015, 1016, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1017, 1017, $toNativeArray($kindInt32, [0, -7, 0])), new CaseRange.ptr(1018, 1019, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1021, 1023, $toNativeArray($kindInt32, [0, -130, 0])), new CaseRange.ptr(1024, 1039, $toNativeArray($kindInt32, [0, 80, 0])), new CaseRange.ptr(1040, 1071, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(1072, 1103, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(1104, 1119, $toNativeArray($kindInt32, [-80, 0, -80])), new CaseRange.ptr(1120, 1153, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1162, 1215, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1216, 1216, $toNativeArray($kindInt32, [0, 15, 0])), new CaseRange.ptr(1217, 1230, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1231, 1231, $toNativeArray($kindInt32, [-15, 0, -15])), new CaseRange.ptr(1232, 1327, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1329, 1366, $toNativeArray($kindInt32, [0, 48, 0])), new CaseRange.ptr(1377, 1414, $toNativeArray($kindInt32, [-48, 0, -48])), new CaseRange.ptr(4256, 4293, $toNativeArray($kindInt32, [0, 7264, 0])), new CaseRange.ptr(4295, 4295, $toNativeArray($kindInt32, [0, 7264, 0])), new CaseRange.ptr(4301, 4301, $toNativeArray($kindInt32, [0, 7264, 0])), new CaseRange.ptr(5024, 5103, $toNativeArray($kindInt32, [0, 38864, 0])), new CaseRange.ptr(5104, 5109, $toNativeArray($kindInt32, [0, 8, 0])), new CaseRange.ptr(5112, 5117, $toNativeArray($kindInt32, [-8, 0, -8])), new CaseRange.ptr(7296, 7296, $toNativeArray($kindInt32, [-6254, 0, -6254])), new CaseRange.ptr(7297, 7297, $toNativeArray($kindInt32, [-6253, 0, -6253])), new CaseRange.ptr(7298, 7298, $toNativeArray($kindInt32, [-6244, 0, -6244])), new CaseRange.ptr(7299, 7300, $toNativeArray($kindInt32, [-6242, 0, -6242])), new CaseRange.ptr(7301, 7301, $toNativeArray($kindInt32, [-6243, 0, -6243])), new CaseRange.ptr(7302, 7302, $toNativeArray($kindInt32, [-6236, 0, -6236])), new CaseRange.ptr(7303, 7303, $toNativeArray($kindInt32, [-6181, 0, -6181])), new CaseRange.ptr(7304, 7304, $toNativeArray($kindInt32, [35266, 0, 35266])), new CaseRange.ptr(7545, 7545, $toNativeArray($kindInt32, [35332, 0, 35332])), new CaseRange.ptr(7549, 7549, $toNativeArray($kindInt32, [3814, 0, 3814])), new CaseRange.ptr(7680, 7829, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(7835, 7835, $toNativeArray($kindInt32, [-59, 0, -59])), new CaseRange.ptr(7838, 7838, $toNativeArray($kindInt32, [0, -7615, 0])), new CaseRange.ptr(7840, 7935, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(7936, 7943, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7944, 7951, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(7952, 7957, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7960, 7965, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(7968, 7975, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7976, 7983, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(7984, 7991, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7992, 7999, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8000, 8005, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8008, 8013, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8017, 8017, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8019, 8019, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8021, 8021, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8023, 8023, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8025, 8025, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8027, 8027, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8029, 8029, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8031, 8031, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8032, 8039, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8040, 8047, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8048, 8049, $toNativeArray($kindInt32, [74, 0, 74])), new CaseRange.ptr(8050, 8053, $toNativeArray($kindInt32, [86, 0, 86])), new CaseRange.ptr(8054, 8055, $toNativeArray($kindInt32, [100, 0, 100])), new CaseRange.ptr(8056, 8057, $toNativeArray($kindInt32, [128, 0, 128])), new CaseRange.ptr(8058, 8059, $toNativeArray($kindInt32, [112, 0, 112])), new CaseRange.ptr(8060, 8061, $toNativeArray($kindInt32, [126, 0, 126])), new CaseRange.ptr(8064, 8071, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8072, 8079, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8080, 8087, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8088, 8095, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8096, 8103, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8104, 8111, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8112, 8113, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8115, 8115, $toNativeArray($kindInt32, [9, 0, 9])), new CaseRange.ptr(8120, 8121, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8122, 8123, $toNativeArray($kindInt32, [0, -74, 0])), new CaseRange.ptr(8124, 8124, $toNativeArray($kindInt32, [0, -9, 0])), new CaseRange.ptr(8126, 8126, $toNativeArray($kindInt32, [-7205, 0, -7205])), new CaseRange.ptr(8131, 8131, $toNativeArray($kindInt32, [9, 0, 9])), new CaseRange.ptr(8136, 8139, $toNativeArray($kindInt32, [0, -86, 0])), new CaseRange.ptr(8140, 8140, $toNativeArray($kindInt32, [0, -9, 0])), new CaseRange.ptr(8144, 8145, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8152, 8153, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8154, 8155, $toNativeArray($kindInt32, [0, -100, 0])), new CaseRange.ptr(8160, 8161, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8165, 8165, $toNativeArray($kindInt32, [7, 0, 7])), new CaseRange.ptr(8168, 8169, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8170, 8171, $toNativeArray($kindInt32, [0, -112, 0])), new CaseRange.ptr(8172, 8172, $toNativeArray($kindInt32, [0, -7, 0])), new CaseRange.ptr(8179, 8179, $toNativeArray($kindInt32, [9, 0, 9])), new CaseRange.ptr(8184, 8185, $toNativeArray($kindInt32, [0, -128, 0])), new CaseRange.ptr(8186, 8187, $toNativeArray($kindInt32, [0, -126, 0])), new CaseRange.ptr(8188, 8188, $toNativeArray($kindInt32, [0, -9, 0])), new CaseRange.ptr(8486, 8486, $toNativeArray($kindInt32, [0, -7517, 0])), new CaseRange.ptr(8490, 8490, $toNativeArray($kindInt32, [0, -8383, 0])), new CaseRange.ptr(8491, 8491, $toNativeArray($kindInt32, [0, -8262, 0])), new CaseRange.ptr(8498, 8498, $toNativeArray($kindInt32, [0, 28, 0])), new CaseRange.ptr(8526, 8526, $toNativeArray($kindInt32, [-28, 0, -28])), new CaseRange.ptr(8544, 8559, $toNativeArray($kindInt32, [0, 16, 0])), new CaseRange.ptr(8560, 8575, $toNativeArray($kindInt32, [-16, 0, -16])), new CaseRange.ptr(8579, 8580, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(9398, 9423, $toNativeArray($kindInt32, [0, 26, 0])), new CaseRange.ptr(9424, 9449, $toNativeArray($kindInt32, [-26, 0, -26])), new CaseRange.ptr(11264, 11310, $toNativeArray($kindInt32, [0, 48, 0])), new CaseRange.ptr(11312, 11358, $toNativeArray($kindInt32, [-48, 0, -48])), new CaseRange.ptr(11360, 11361, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11362, 11362, $toNativeArray($kindInt32, [0, -10743, 0])), new CaseRange.ptr(11363, 11363, $toNativeArray($kindInt32, [0, -3814, 0])), new CaseRange.ptr(11364, 11364, $toNativeArray($kindInt32, [0, -10727, 0])), new CaseRange.ptr(11365, 11365, $toNativeArray($kindInt32, [-10795, 0, -10795])), new CaseRange.ptr(11366, 11366, $toNativeArray($kindInt32, [-10792, 0, -10792])), new CaseRange.ptr(11367, 11372, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11373, 11373, $toNativeArray($kindInt32, [0, -10780, 0])), new CaseRange.ptr(11374, 11374, $toNativeArray($kindInt32, [0, -10749, 0])), new CaseRange.ptr(11375, 11375, $toNativeArray($kindInt32, [0, -10783, 0])), new CaseRange.ptr(11376, 11376, $toNativeArray($kindInt32, [0, -10782, 0])), new CaseRange.ptr(11378, 11379, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11381, 11382, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11390, 11391, $toNativeArray($kindInt32, [0, -10815, 0])), new CaseRange.ptr(11392, 11491, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11499, 11502, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11506, 11507, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11520, 11557, $toNativeArray($kindInt32, [-7264, 0, -7264])), new CaseRange.ptr(11559, 11559, $toNativeArray($kindInt32, [-7264, 0, -7264])), new CaseRange.ptr(11565, 11565, $toNativeArray($kindInt32, [-7264, 0, -7264])), new CaseRange.ptr(42560, 42605, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42624, 42651, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42786, 42799, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42802, 42863, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42873, 42876, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42877, 42877, $toNativeArray($kindInt32, [0, -35332, 0])), new CaseRange.ptr(42878, 42887, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42891, 42892, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42893, 42893, $toNativeArray($kindInt32, [0, -42280, 0])), new CaseRange.ptr(42896, 42899, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42902, 42921, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42922, 42922, $toNativeArray($kindInt32, [0, -42308, 0])), new CaseRange.ptr(42923, 42923, $toNativeArray($kindInt32, [0, -42319, 0])), new CaseRange.ptr(42924, 42924, $toNativeArray($kindInt32, [0, -42315, 0])), new CaseRange.ptr(42925, 42925, $toNativeArray($kindInt32, [0, -42305, 0])), new CaseRange.ptr(42926, 42926, $toNativeArray($kindInt32, [0, -42308, 0])), new CaseRange.ptr(42928, 42928, $toNativeArray($kindInt32, [0, -42258, 0])), new CaseRange.ptr(42929, 42929, $toNativeArray($kindInt32, [0, -42282, 0])), new CaseRange.ptr(42930, 42930, $toNativeArray($kindInt32, [0, -42261, 0])), new CaseRange.ptr(42931, 42931, $toNativeArray($kindInt32, [0, 928, 0])), new CaseRange.ptr(42932, 42935, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(43859, 43859, $toNativeArray($kindInt32, [-928, 0, -928])), new CaseRange.ptr(43888, 43967, $toNativeArray($kindInt32, [-38864, 0, -38864])), new CaseRange.ptr(65313, 65338, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(65345, 65370, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(66560, 66599, $toNativeArray($kindInt32, [0, 40, 0])), new CaseRange.ptr(66600, 66639, $toNativeArray($kindInt32, [-40, 0, -40])), new CaseRange.ptr(66736, 66771, $toNativeArray($kindInt32, [0, 40, 0])), new CaseRange.ptr(66776, 66811, $toNativeArray($kindInt32, [-40, 0, -40])), new CaseRange.ptr(68736, 68786, $toNativeArray($kindInt32, [0, 64, 0])), new CaseRange.ptr(68800, 68850, $toNativeArray($kindInt32, [-64, 0, -64])), new CaseRange.ptr(71840, 71871, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(71872, 71903, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(125184, 125217, $toNativeArray($kindInt32, [0, 34, 0])), new CaseRange.ptr(125218, 125251, $toNativeArray($kindInt32, [-34, 0, -34]))]); $pkg.CaseRanges = _CaseRanges; properties = $toNativeArray($kindUint8, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 144, 130, 130, 130, 136, 130, 130, 130, 130, 130, 130, 136, 130, 130, 130, 130, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 130, 130, 136, 136, 136, 130, 130, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 130, 130, 130, 136, 130, 136, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 130, 136, 130, 136, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 130, 136, 136, 136, 136, 136, 130, 136, 136, 224, 130, 136, 0, 136, 136, 136, 136, 132, 132, 136, 192, 130, 130, 136, 132, 224, 130, 132, 132, 132, 130, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 136, 160, 160, 160, 160, 160, 160, 160, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 136, 192, 192, 192, 192, 192, 192, 192, 192]); asciiFold = $toNativeArray($kindUint16, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 91, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 8490, 76, 77, 78, 79, 80, 81, 82, 383, 84, 85, 86, 87, 88, 89, 90, 123, 124, 125, 126, 127]); caseOrbit = new sliceType$4([new foldPair.ptr(75, 107), new foldPair.ptr(83, 115), new foldPair.ptr(107, 8490), new foldPair.ptr(115, 383), new foldPair.ptr(181, 924), new foldPair.ptr(197, 229), new foldPair.ptr(223, 7838), new foldPair.ptr(229, 8491), new foldPair.ptr(304, 304), new foldPair.ptr(305, 305), new foldPair.ptr(383, 83), new foldPair.ptr(452, 453), new foldPair.ptr(453, 454), new foldPair.ptr(454, 452), new foldPair.ptr(455, 456), new foldPair.ptr(456, 457), new foldPair.ptr(457, 455), new foldPair.ptr(458, 459), new foldPair.ptr(459, 460), new foldPair.ptr(460, 458), new foldPair.ptr(497, 498), new foldPair.ptr(498, 499), new foldPair.ptr(499, 497), new foldPair.ptr(837, 921), new foldPair.ptr(914, 946), new foldPair.ptr(917, 949), new foldPair.ptr(920, 952), new foldPair.ptr(921, 953), new foldPair.ptr(922, 954), new foldPair.ptr(924, 956), new foldPair.ptr(928, 960), new foldPair.ptr(929, 961), new foldPair.ptr(931, 962), new foldPair.ptr(934, 966), new foldPair.ptr(937, 969), new foldPair.ptr(946, 976), new foldPair.ptr(949, 1013), new foldPair.ptr(952, 977), new foldPair.ptr(953, 8126), new foldPair.ptr(954, 1008), new foldPair.ptr(956, 181), new foldPair.ptr(960, 982), new foldPair.ptr(961, 1009), new foldPair.ptr(962, 963), new foldPair.ptr(963, 931), new foldPair.ptr(966, 981), new foldPair.ptr(969, 8486), new foldPair.ptr(976, 914), new foldPair.ptr(977, 1012), new foldPair.ptr(981, 934), new foldPair.ptr(982, 928), new foldPair.ptr(1008, 922), new foldPair.ptr(1009, 929), new foldPair.ptr(1012, 920), new foldPair.ptr(1013, 917), new foldPair.ptr(1042, 1074), new foldPair.ptr(1044, 1076), new foldPair.ptr(1054, 1086), new foldPair.ptr(1057, 1089), new foldPair.ptr(1058, 1090), new foldPair.ptr(1066, 1098), new foldPair.ptr(1074, 7296), new foldPair.ptr(1076, 7297), new foldPair.ptr(1086, 7298), new foldPair.ptr(1089, 7299), new foldPair.ptr(1090, 7300), new foldPair.ptr(1098, 7302), new foldPair.ptr(1122, 1123), new foldPair.ptr(1123, 7303), new foldPair.ptr(7296, 1042), new foldPair.ptr(7297, 1044), new foldPair.ptr(7298, 1054), new foldPair.ptr(7299, 1057), new foldPair.ptr(7300, 7301), new foldPair.ptr(7301, 1058), new foldPair.ptr(7302, 1066), new foldPair.ptr(7303, 1122), new foldPair.ptr(7304, 42570), new foldPair.ptr(7776, 7777), new foldPair.ptr(7777, 7835), new foldPair.ptr(7835, 7776), new foldPair.ptr(7838, 223), new foldPair.ptr(8126, 837), new foldPair.ptr(8486, 937), new foldPair.ptr(8490, 75), new foldPair.ptr(8491, 197), new foldPair.ptr(42570, 42571), new foldPair.ptr(42571, 7304)]); foldL = new RangeTable.ptr(new sliceType([new Range16.ptr(837, 837, 1)]), sliceType$1.nil, 0); foldLl = new RangeTable.ptr(new sliceType([new Range16.ptr(65, 90, 1), new Range16.ptr(192, 214, 1), new Range16.ptr(216, 222, 1), new Range16.ptr(256, 302, 2), new Range16.ptr(306, 310, 2), new Range16.ptr(313, 327, 2), new Range16.ptr(330, 376, 2), new Range16.ptr(377, 381, 2), new Range16.ptr(385, 386, 1), new Range16.ptr(388, 390, 2), new Range16.ptr(391, 393, 2), new Range16.ptr(394, 395, 1), new Range16.ptr(398, 401, 1), new Range16.ptr(403, 404, 1), new Range16.ptr(406, 408, 1), new Range16.ptr(412, 413, 1), new Range16.ptr(415, 416, 1), new Range16.ptr(418, 422, 2), new Range16.ptr(423, 425, 2), new Range16.ptr(428, 430, 2), new Range16.ptr(431, 433, 2), new Range16.ptr(434, 435, 1), new Range16.ptr(437, 439, 2), new Range16.ptr(440, 444, 4), new Range16.ptr(452, 453, 1), new Range16.ptr(455, 456, 1), new Range16.ptr(458, 459, 1), new Range16.ptr(461, 475, 2), new Range16.ptr(478, 494, 2), new Range16.ptr(497, 498, 1), new Range16.ptr(500, 502, 2), new Range16.ptr(503, 504, 1), new Range16.ptr(506, 562, 2), new Range16.ptr(570, 571, 1), new Range16.ptr(573, 574, 1), new Range16.ptr(577, 579, 2), new Range16.ptr(580, 582, 1), new Range16.ptr(584, 590, 2), new Range16.ptr(837, 880, 43), new Range16.ptr(882, 886, 4), new Range16.ptr(895, 902, 7), new Range16.ptr(904, 906, 1), new Range16.ptr(908, 910, 2), new Range16.ptr(911, 913, 2), new Range16.ptr(914, 929, 1), new Range16.ptr(931, 939, 1), new Range16.ptr(975, 984, 9), new Range16.ptr(986, 1006, 2), new Range16.ptr(1012, 1015, 3), new Range16.ptr(1017, 1018, 1), new Range16.ptr(1021, 1071, 1), new Range16.ptr(1120, 1152, 2), new Range16.ptr(1162, 1216, 2), new Range16.ptr(1217, 1229, 2), new Range16.ptr(1232, 1326, 2), new Range16.ptr(1329, 1366, 1), new Range16.ptr(4256, 4293, 1), new Range16.ptr(4295, 4301, 6), new Range16.ptr(5024, 5109, 1), new Range16.ptr(7680, 7828, 2), new Range16.ptr(7838, 7934, 2), new Range16.ptr(7944, 7951, 1), new Range16.ptr(7960, 7965, 1), new Range16.ptr(7976, 7983, 1), new Range16.ptr(7992, 7999, 1), new Range16.ptr(8008, 8013, 1), new Range16.ptr(8025, 8031, 2), new Range16.ptr(8040, 8047, 1), new Range16.ptr(8072, 8079, 1), new Range16.ptr(8088, 8095, 1), new Range16.ptr(8104, 8111, 1), new Range16.ptr(8120, 8124, 1), new Range16.ptr(8136, 8140, 1), new Range16.ptr(8152, 8155, 1), new Range16.ptr(8168, 8172, 1), new Range16.ptr(8184, 8188, 1), new Range16.ptr(8486, 8490, 4), new Range16.ptr(8491, 8498, 7), new Range16.ptr(8579, 11264, 2685), new Range16.ptr(11265, 11310, 1), new Range16.ptr(11360, 11362, 2), new Range16.ptr(11363, 11364, 1), new Range16.ptr(11367, 11373, 2), new Range16.ptr(11374, 11376, 1), new Range16.ptr(11378, 11381, 3), new Range16.ptr(11390, 11392, 1), new Range16.ptr(11394, 11490, 2), new Range16.ptr(11499, 11501, 2), new Range16.ptr(11506, 42560, 31054), new Range16.ptr(42562, 42604, 2), new Range16.ptr(42624, 42650, 2), new Range16.ptr(42786, 42798, 2), new Range16.ptr(42802, 42862, 2), new Range16.ptr(42873, 42877, 2), new Range16.ptr(42878, 42886, 2), new Range16.ptr(42891, 42893, 2), new Range16.ptr(42896, 42898, 2), new Range16.ptr(42902, 42922, 2), new Range16.ptr(42923, 42926, 1), new Range16.ptr(42928, 42932, 1), new Range16.ptr(42934, 65313, 22379), new Range16.ptr(65314, 65338, 1)]), new sliceType$1([new Range32.ptr(66560, 66599, 1), new Range32.ptr(66736, 66771, 1), new Range32.ptr(68736, 68786, 1), new Range32.ptr(71840, 71871, 1), new Range32.ptr(125184, 125217, 1)]), 3); foldLt = new RangeTable.ptr(new sliceType([new Range16.ptr(452, 454, 2), new Range16.ptr(455, 457, 2), new Range16.ptr(458, 460, 2), new Range16.ptr(497, 499, 2), new Range16.ptr(8064, 8071, 1), new Range16.ptr(8080, 8087, 1), new Range16.ptr(8096, 8103, 1), new Range16.ptr(8115, 8131, 16), new Range16.ptr(8179, 8179, 1)]), sliceType$1.nil, 0); foldLu = new RangeTable.ptr(new sliceType([new Range16.ptr(97, 122, 1), new Range16.ptr(181, 223, 42), new Range16.ptr(224, 246, 1), new Range16.ptr(248, 255, 1), new Range16.ptr(257, 303, 2), new Range16.ptr(307, 311, 2), new Range16.ptr(314, 328, 2), new Range16.ptr(331, 375, 2), new Range16.ptr(378, 382, 2), new Range16.ptr(383, 384, 1), new Range16.ptr(387, 389, 2), new Range16.ptr(392, 396, 4), new Range16.ptr(402, 405, 3), new Range16.ptr(409, 410, 1), new Range16.ptr(414, 417, 3), new Range16.ptr(419, 421, 2), new Range16.ptr(424, 429, 5), new Range16.ptr(432, 436, 4), new Range16.ptr(438, 441, 3), new Range16.ptr(445, 447, 2), new Range16.ptr(453, 454, 1), new Range16.ptr(456, 457, 1), new Range16.ptr(459, 460, 1), new Range16.ptr(462, 476, 2), new Range16.ptr(477, 495, 2), new Range16.ptr(498, 499, 1), new Range16.ptr(501, 505, 4), new Range16.ptr(507, 543, 2), new Range16.ptr(547, 563, 2), new Range16.ptr(572, 575, 3), new Range16.ptr(576, 578, 2), new Range16.ptr(583, 591, 2), new Range16.ptr(592, 596, 1), new Range16.ptr(598, 599, 1), new Range16.ptr(601, 603, 2), new Range16.ptr(604, 608, 4), new Range16.ptr(609, 613, 2), new Range16.ptr(614, 616, 2), new Range16.ptr(617, 620, 1), new Range16.ptr(623, 625, 2), new Range16.ptr(626, 629, 3), new Range16.ptr(637, 643, 3), new Range16.ptr(647, 652, 1), new Range16.ptr(658, 669, 11), new Range16.ptr(670, 837, 167), new Range16.ptr(881, 883, 2), new Range16.ptr(887, 891, 4), new Range16.ptr(892, 893, 1), new Range16.ptr(940, 943, 1), new Range16.ptr(945, 974, 1), new Range16.ptr(976, 977, 1), new Range16.ptr(981, 983, 1), new Range16.ptr(985, 1007, 2), new Range16.ptr(1008, 1011, 1), new Range16.ptr(1013, 1019, 3), new Range16.ptr(1072, 1119, 1), new Range16.ptr(1121, 1153, 2), new Range16.ptr(1163, 1215, 2), new Range16.ptr(1218, 1230, 2), new Range16.ptr(1231, 1327, 2), new Range16.ptr(1377, 1414, 1), new Range16.ptr(5112, 5117, 1), new Range16.ptr(7296, 7304, 1), new Range16.ptr(7545, 7549, 4), new Range16.ptr(7681, 7829, 2), new Range16.ptr(7835, 7841, 6), new Range16.ptr(7843, 7935, 2), new Range16.ptr(7936, 7943, 1), new Range16.ptr(7952, 7957, 1), new Range16.ptr(7968, 7975, 1), new Range16.ptr(7984, 7991, 1), new Range16.ptr(8000, 8005, 1), new Range16.ptr(8017, 8023, 2), new Range16.ptr(8032, 8039, 1), new Range16.ptr(8048, 8061, 1), new Range16.ptr(8112, 8113, 1), new Range16.ptr(8126, 8144, 18), new Range16.ptr(8145, 8160, 15), new Range16.ptr(8161, 8165, 4), new Range16.ptr(8526, 8580, 54), new Range16.ptr(11312, 11358, 1), new Range16.ptr(11361, 11365, 4), new Range16.ptr(11366, 11372, 2), new Range16.ptr(11379, 11382, 3), new Range16.ptr(11393, 11491, 2), new Range16.ptr(11500, 11502, 2), new Range16.ptr(11507, 11520, 13), new Range16.ptr(11521, 11557, 1), new Range16.ptr(11559, 11565, 6), new Range16.ptr(42561, 42605, 2), new Range16.ptr(42625, 42651, 2), new Range16.ptr(42787, 42799, 2), new Range16.ptr(42803, 42863, 2), new Range16.ptr(42874, 42876, 2), new Range16.ptr(42879, 42887, 2), new Range16.ptr(42892, 42897, 5), new Range16.ptr(42899, 42903, 4), new Range16.ptr(42905, 42921, 2), new Range16.ptr(42933, 42935, 2), new Range16.ptr(43859, 43888, 29), new Range16.ptr(43889, 43967, 1), new Range16.ptr(65345, 65370, 1)]), new sliceType$1([new Range32.ptr(66600, 66639, 1), new Range32.ptr(66776, 66811, 1), new Range32.ptr(68800, 68850, 1), new Range32.ptr(71872, 71903, 1), new Range32.ptr(125218, 125251, 1)]), 4); foldM = new RangeTable.ptr(new sliceType([new Range16.ptr(921, 953, 32), new Range16.ptr(8126, 8126, 1)]), sliceType$1.nil, 0); foldMn = new RangeTable.ptr(new sliceType([new Range16.ptr(921, 953, 32), new Range16.ptr(8126, 8126, 1)]), sliceType$1.nil, 0); $pkg.FoldCategory = $makeMap($String.keyFor, [{ k: "L", v: foldL }, { k: "Ll", v: foldLl }, { k: "Lt", v: foldLt }, { k: "Lu", v: foldLu }, { k: "M", v: foldM }, { k: "Mn", v: foldMn }]); foldCommon = new RangeTable.ptr(new sliceType([new Range16.ptr(924, 956, 32)]), sliceType$1.nil, 0); foldGreek = new RangeTable.ptr(new sliceType([new Range16.ptr(181, 837, 656)]), sliceType$1.nil, 0); foldInherited = new RangeTable.ptr(new sliceType([new Range16.ptr(921, 953, 32), new Range16.ptr(8126, 8126, 1)]), sliceType$1.nil, 0); $pkg.FoldScript = $makeMap($String.keyFor, [{ k: "Common", v: foldCommon }, { k: "Greek", v: foldGreek }, { k: "Inherited", v: foldInherited }]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["unicode/utf8"] = (function() { var $pkg = {}, $init, acceptRange, first, acceptRanges, FullRune, DecodeRune, DecodeRuneInString, DecodeLastRune, DecodeLastRuneInString, RuneLen, EncodeRune, RuneCount, RuneCountInString, RuneStart, ValidRune; acceptRange = $pkg.acceptRange = $newType(0, $kindStruct, "utf8.acceptRange", true, "unicode/utf8", false, function(lo_, hi_) { this.$val = this; if (arguments.length === 0) { this.lo = 0; this.hi = 0; return; } this.lo = lo_; this.hi = hi_; }); FullRune = function(p) { var accept, c, n, p, x, x$1, x$2; n = p.$length; if (n === 0) { return false; } x$1 = (x = (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]), ((x < 0 || x >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[x])); if (n >= ((((x$1 & 7) >>> 0) >> 0))) { return true; } accept = $clone((x$2 = x$1 >>> 4 << 24 >>> 24, ((x$2 < 0 || x$2 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$2])), acceptRange); if (n > 1) { c = (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]); if (c < accept.lo || accept.hi < c) { return true; } else if (n > 2 && ((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]) < 128 || 191 < (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]))) { return true; } } return false; }; $pkg.FullRune = FullRune; DecodeRune = function(p) { var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, b1, b2, b3, mask, n, p, p0, r, size, sz, x, x$1; r = 0; size = 0; n = p.$length; if (n < 1) { _tmp = 65533; _tmp$1 = 0; r = _tmp; size = _tmp$1; return [r, size]; } p0 = (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]); x = ((p0 < 0 || p0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[p0]); if (x >= 240) { mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0; _tmp$2 = (((((0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]) >> 0)) & ~mask) >> 0) | (65533 & mask); _tmp$3 = 1; r = _tmp$2; size = _tmp$3; return [r, size]; } sz = (x & 7) >>> 0; accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); if (n < ((sz >> 0))) { _tmp$4 = 65533; _tmp$5 = 1; r = _tmp$4; size = _tmp$5; return [r, size]; } b1 = (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]); if (b1 < accept.lo || accept.hi < b1) { _tmp$6 = 65533; _tmp$7 = 1; r = _tmp$6; size = _tmp$7; return [r, size]; } if (sz === 2) { _tmp$8 = (((((p0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((b1 & 63) >>> 0) >> 0)); _tmp$9 = 2; r = _tmp$8; size = _tmp$9; return [r, size]; } b2 = (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]); if (b2 < 128 || 191 < b2) { _tmp$10 = 65533; _tmp$11 = 1; r = _tmp$10; size = _tmp$11; return [r, size]; } if (sz === 3) { _tmp$12 = ((((((p0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b2 & 63) >>> 0) >> 0)); _tmp$13 = 3; r = _tmp$12; size = _tmp$13; return [r, size]; } b3 = (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3]); if (b3 < 128 || 191 < b3) { _tmp$14 = 65533; _tmp$15 = 1; r = _tmp$14; size = _tmp$15; return [r, size]; } _tmp$16 = (((((((p0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((b2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b3 & 63) >>> 0) >> 0)); _tmp$17 = 4; r = _tmp$16; size = _tmp$17; return [r, size]; }; $pkg.DecodeRune = DecodeRune; DecodeRuneInString = function(s) { var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, mask, n, r, s, s0, s1, s2, s3, size, sz, x, x$1; r = 0; size = 0; n = s.length; if (n < 1) { _tmp = 65533; _tmp$1 = 0; r = _tmp; size = _tmp$1; return [r, size]; } s0 = s.charCodeAt(0); x = ((s0 < 0 || s0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[s0]); if (x >= 240) { mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0; _tmp$2 = ((((s.charCodeAt(0) >> 0)) & ~mask) >> 0) | (65533 & mask); _tmp$3 = 1; r = _tmp$2; size = _tmp$3; return [r, size]; } sz = (x & 7) >>> 0; accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); if (n < ((sz >> 0))) { _tmp$4 = 65533; _tmp$5 = 1; r = _tmp$4; size = _tmp$5; return [r, size]; } s1 = s.charCodeAt(1); if (s1 < accept.lo || accept.hi < s1) { _tmp$6 = 65533; _tmp$7 = 1; r = _tmp$6; size = _tmp$7; return [r, size]; } if (sz === 2) { _tmp$8 = (((((s0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((s1 & 63) >>> 0) >> 0)); _tmp$9 = 2; r = _tmp$8; size = _tmp$9; return [r, size]; } s2 = s.charCodeAt(2); if (s2 < 128 || 191 < s2) { _tmp$10 = 65533; _tmp$11 = 1; r = _tmp$10; size = _tmp$11; return [r, size]; } if (sz === 3) { _tmp$12 = ((((((s0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s2 & 63) >>> 0) >> 0)); _tmp$13 = 3; r = _tmp$12; size = _tmp$13; return [r, size]; } s3 = s.charCodeAt(3); if (s3 < 128 || 191 < s3) { _tmp$14 = 65533; _tmp$15 = 1; r = _tmp$14; size = _tmp$15; return [r, size]; } _tmp$16 = (((((((s0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((s2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s3 & 63) >>> 0) >> 0)); _tmp$17 = 4; r = _tmp$16; size = _tmp$17; return [r, size]; }; $pkg.DecodeRuneInString = DecodeRuneInString; DecodeLastRune = function(p) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, end, lim, p, r, size, start; r = 0; size = 0; end = p.$length; if (end === 0) { _tmp = 65533; _tmp$1 = 0; r = _tmp; size = _tmp$1; return [r, size]; } start = end - 1 >> 0; r = ((((start < 0 || start >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + start]) >> 0)); if (r < 128) { _tmp$2 = r; _tmp$3 = 1; r = _tmp$2; size = _tmp$3; return [r, size]; } lim = end - 4 >> 0; if (lim < 0) { lim = 0; } start = start - (1) >> 0; while (true) { if (!(start >= lim)) { break; } if (RuneStart(((start < 0 || start >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + start]))) { break; } start = start - (1) >> 0; } if (start < 0) { start = 0; } _tuple = DecodeRune($subslice(p, start, end)); r = _tuple[0]; size = _tuple[1]; if (!(((start + size >> 0) === end))) { _tmp$4 = 65533; _tmp$5 = 1; r = _tmp$4; size = _tmp$5; return [r, size]; } _tmp$6 = r; _tmp$7 = size; r = _tmp$6; size = _tmp$7; return [r, size]; }; $pkg.DecodeLastRune = DecodeLastRune; DecodeLastRuneInString = function(s) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, end, lim, r, s, size, start; r = 0; size = 0; end = s.length; if (end === 0) { _tmp = 65533; _tmp$1 = 0; r = _tmp; size = _tmp$1; return [r, size]; } start = end - 1 >> 0; r = ((s.charCodeAt(start) >> 0)); if (r < 128) { _tmp$2 = r; _tmp$3 = 1; r = _tmp$2; size = _tmp$3; return [r, size]; } lim = end - 4 >> 0; if (lim < 0) { lim = 0; } start = start - (1) >> 0; while (true) { if (!(start >= lim)) { break; } if (RuneStart(s.charCodeAt(start))) { break; } start = start - (1) >> 0; } if (start < 0) { start = 0; } _tuple = DecodeRuneInString($substring(s, start, end)); r = _tuple[0]; size = _tuple[1]; if (!(((start + size >> 0) === end))) { _tmp$4 = 65533; _tmp$5 = 1; r = _tmp$4; size = _tmp$5; return [r, size]; } _tmp$6 = r; _tmp$7 = size; r = _tmp$6; size = _tmp$7; return [r, size]; }; $pkg.DecodeLastRuneInString = DecodeLastRuneInString; RuneLen = function(r) { var r; if (r < 0) { return -1; } else if (r <= 127) { return 1; } else if (r <= 2047) { return 2; } else if (55296 <= r && r <= 57343) { return -1; } else if (r <= 65535) { return 3; } else if (r <= 1114111) { return 4; } return -1; }; $pkg.RuneLen = RuneLen; EncodeRune = function(p, r) { var i, p, r; i = ((r >>> 0)); if (i <= 127) { (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((r << 24 >>> 24))); return 1; } else if (i <= 2047) { $unused((1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1])); (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((192 | (((r >> 6 >> 0) << 24 >>> 24))) >>> 0)); (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); return 2; } else if ((i > 1114111) || (55296 <= i && i <= 57343)) { r = 65533; $unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2])); (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0)); (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); return 3; } else if (i <= 65535) { $unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2])); (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0)); (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); return 3; } else { $unused((3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3])); (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((240 | (((r >> 18 >> 0) << 24 >>> 24))) >>> 0)); (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 12 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); return 4; } }; $pkg.EncodeRune = EncodeRune; RuneCount = function(p) { var accept, c, c$1, c$2, c$3, i, n, np, p, size, x, x$1, x$2, x$3, x$4; np = p.$length; n = 0; i = 0; while (true) { if (!(i < np)) { break; } n = n + (1) >> 0; c = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); if (c < 128) { i = i + (1) >> 0; continue; } x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]); if (x === 241) { i = i + (1) >> 0; continue; } size = ((((x & 7) >>> 0) >> 0)); if ((i + size >> 0) > np) { i = i + (1) >> 0; continue; } accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); c$1 = (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2])); if (c$1 < accept.lo || accept.hi < c$1) { size = 1; } else if (size === 2) { } else { c$2 = (x$3 = i + 2 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3])); if (c$2 < 128 || 191 < c$2) { size = 1; } else if (size === 3) { } else { c$3 = (x$4 = i + 3 >> 0, ((x$4 < 0 || x$4 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$4])); if (c$3 < 128 || 191 < c$3) { size = 1; } } } i = i + (size) >> 0; } return n; }; $pkg.RuneCount = RuneCount; RuneCountInString = function(s) { var accept, c, c$1, c$2, c$3, i, n, ns, s, size, x, x$1; n = 0; ns = s.length; i = 0; while (true) { if (!(i < ns)) { break; } c = s.charCodeAt(i); if (c < 128) { i = i + (1) >> 0; n = n + (1) >> 0; continue; } x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]); if (x === 241) { i = i + (1) >> 0; n = n + (1) >> 0; continue; } size = ((((x & 7) >>> 0) >> 0)); if ((i + size >> 0) > ns) { i = i + (1) >> 0; n = n + (1) >> 0; continue; } accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); c$1 = s.charCodeAt((i + 1 >> 0)); if (c$1 < accept.lo || accept.hi < c$1) { size = 1; } else if (size === 2) { } else { c$2 = s.charCodeAt((i + 2 >> 0)); if (c$2 < 128 || 191 < c$2) { size = 1; } else if (size === 3) { } else { c$3 = s.charCodeAt((i + 3 >> 0)); if (c$3 < 128 || 191 < c$3) { size = 1; } } } i = i + (size) >> 0; n = n + (1) >> 0; } n = n; return n; }; $pkg.RuneCountInString = RuneCountInString; RuneStart = function(b) { var b; return !((((b & 192) >>> 0) === 128)); }; $pkg.RuneStart = RuneStart; ValidRune = function(r) { var r; if (0 <= r && r < 55296) { return true; } else if (57343 < r && r <= 1114111) { return true; } return false; }; $pkg.ValidRune = ValidRune; acceptRange.init("unicode/utf8", [{prop: "lo", name: "lo", anonymous: false, exported: false, typ: $Uint8, tag: ""}, {prop: "hi", name: "hi", anonymous: false, exported: false, typ: $Uint8, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: first = $toNativeArray($kindUint8, [240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 35, 3, 3, 52, 4, 4, 4, 68, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241]); acceptRanges = $toNativeArray($kindStruct, [new acceptRange.ptr(128, 191), new acceptRange.ptr(160, 191), new acceptRange.ptr(128, 159), new acceptRange.ptr(144, 191), new acceptRange.ptr(128, 143)]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["bytes"] = (function() { var $pkg = {}, $init, errors, io, unicode, utf8, Buffer, readOp, ptrType, sliceType, arrayType, IndexByte, Equal, makeSlice, HasPrefix, Index; errors = $packages["errors"]; io = $packages["io"]; unicode = $packages["unicode"]; utf8 = $packages["unicode/utf8"]; Buffer = $pkg.Buffer = $newType(0, $kindStruct, "bytes.Buffer", true, "bytes", true, function(buf_, off_, lastRead_, bootstrap_) { this.$val = this; if (arguments.length === 0) { this.buf = sliceType.nil; this.off = 0; this.lastRead = 0; this.bootstrap = arrayType.zero(); return; } this.buf = buf_; this.off = off_; this.lastRead = lastRead_; this.bootstrap = bootstrap_; }); readOp = $pkg.readOp = $newType(4, $kindInt, "bytes.readOp", true, "bytes", false, null); ptrType = $ptrType(Buffer); sliceType = $sliceType($Uint8); arrayType = $arrayType($Uint8, 64); IndexByte = function(s, c) { var _i, _ref, b, c, i, s; _ref = s; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (b === c) { return i; } _i++; } return -1; }; $pkg.IndexByte = IndexByte; Equal = function(a, b) { var _i, _ref, a, b, c, i; if (!((a.$length === b.$length))) { return false; } _ref = a; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (!((c === ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i])))) { return false; } _i++; } return true; }; $pkg.Equal = Equal; Buffer.ptr.prototype.Bytes = function() { var b; b = this; return $subslice(b.buf, b.off); }; Buffer.prototype.Bytes = function() { return this.$val.Bytes(); }; Buffer.ptr.prototype.String = function() { var b; b = this; if (b === ptrType.nil) { return ""; } return ($bytesToString($subslice(b.buf, b.off))); }; Buffer.prototype.String = function() { return this.$val.String(); }; Buffer.ptr.prototype.Len = function() { var b; b = this; return b.buf.$length - b.off >> 0; }; Buffer.prototype.Len = function() { return this.$val.Len(); }; Buffer.ptr.prototype.Cap = function() { var b; b = this; return b.buf.$capacity; }; Buffer.prototype.Cap = function() { return this.$val.Cap(); }; Buffer.ptr.prototype.Truncate = function(n) { var b, n; b = this; if (n === 0) { b.Reset(); return; } b.lastRead = 0; if (n < 0 || n > b.Len()) { $panic(new $String("bytes.Buffer: truncation out of range")); } b.buf = $subslice(b.buf, 0, (b.off + n >> 0)); }; Buffer.prototype.Truncate = function(n) { return this.$val.Truncate(n); }; Buffer.ptr.prototype.Reset = function() { var b; b = this; b.buf = $subslice(b.buf, 0, 0); b.off = 0; b.lastRead = 0; }; Buffer.prototype.Reset = function() { return this.$val.Reset(); }; Buffer.ptr.prototype.tryGrowByReslice = function(n) { var b, l, n; b = this; l = b.buf.$length; if ((l + n >> 0) <= b.buf.$capacity) { b.buf = $subslice(b.buf, 0, (l + n >> 0)); return [l, true]; } return [0, false]; }; Buffer.prototype.tryGrowByReslice = function(n) { return this.$val.tryGrowByReslice(n); }; Buffer.ptr.prototype.grow = function(n) { var _q, _tuple, b, buf, i, m, n, ok; b = this; m = b.Len(); if ((m === 0) && !((b.off === 0))) { b.Reset(); } _tuple = b.tryGrowByReslice(n); i = _tuple[0]; ok = _tuple[1]; if (ok) { return i; } if (b.buf === sliceType.nil && n <= 64) { b.buf = $subslice(new sliceType(b.bootstrap), 0, n); return 0; } if ((m + n >> 0) <= (_q = b.buf.$capacity / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) { $copySlice(b.buf, $subslice(b.buf, b.off)); } else { buf = makeSlice(($imul(2, b.buf.$capacity)) + n >> 0); $copySlice(buf, $subslice(b.buf, b.off)); b.buf = buf; } b.off = 0; b.buf = $subslice(b.buf, 0, (m + n >> 0)); return m; }; Buffer.prototype.grow = function(n) { return this.$val.grow(n); }; Buffer.ptr.prototype.Grow = function(n) { var b, m, n; b = this; if (n < 0) { $panic(new $String("bytes.Buffer.Grow: negative count")); } m = b.grow(n); b.buf = $subslice(b.buf, 0, m); }; Buffer.prototype.Grow = function(n) { return this.$val.Grow(n); }; Buffer.ptr.prototype.Write = function(p) { var _tmp, _tmp$1, _tuple, b, err, m, n, ok, p; n = 0; err = $ifaceNil; b = this; b.lastRead = 0; _tuple = b.tryGrowByReslice(p.$length); m = _tuple[0]; ok = _tuple[1]; if (!ok) { m = b.grow(p.$length); } _tmp = $copySlice($subslice(b.buf, m), p); _tmp$1 = $ifaceNil; n = _tmp; err = _tmp$1; return [n, err]; }; Buffer.prototype.Write = function(p) { return this.$val.Write(p); }; Buffer.ptr.prototype.WriteString = function(s) { var _tmp, _tmp$1, _tuple, b, err, m, n, ok, s; n = 0; err = $ifaceNil; b = this; b.lastRead = 0; _tuple = b.tryGrowByReslice(s.length); m = _tuple[0]; ok = _tuple[1]; if (!ok) { m = b.grow(s.length); } _tmp = $copyString($subslice(b.buf, m), s); _tmp$1 = $ifaceNil; n = _tmp; err = _tmp$1; return [n, err]; }; Buffer.prototype.WriteString = function(s) { return this.$val.WriteString(s); }; Buffer.ptr.prototype.ReadFrom = function(r) { var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, free, m, n, newBuf, r, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; free = $f.free; m = $f.m; n = $f.n; newBuf = $f.newBuf; r = $f.r; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = new $Int64(0, 0); err = $ifaceNil; b = this; b.lastRead = 0; if (b.off >= b.buf.$length) { b.Reset(); } /* while (true) { */ case 1: free = b.buf.$capacity - b.buf.$length >> 0; if (free < 512) { newBuf = b.buf; if ((b.off + free >> 0) < 512) { newBuf = makeSlice(($imul(2, b.buf.$capacity)) + 512 >> 0); } $copySlice(newBuf, $subslice(b.buf, b.off)); b.buf = $subslice(newBuf, 0, (b.buf.$length - b.off >> 0)); b.off = 0; } _r = r.Read($subslice(b.buf, b.buf.$length, b.buf.$capacity)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; m = _tuple[0]; e = _tuple[1]; b.buf = $subslice(b.buf, 0, (b.buf.$length + m >> 0)); n = (x = (new $Int64(0, m)), new $Int64(n.$high + x.$high, n.$low + x.$low)); if ($interfaceIsEqual(e, io.EOF)) { /* break; */ $s = 2; continue; } if (!($interfaceIsEqual(e, $ifaceNil))) { _tmp = n; _tmp$1 = e; n = _tmp; err = _tmp$1; $s = -1; return [n, err]; } /* } */ $s = 1; continue; case 2: _tmp$2 = n; _tmp$3 = $ifaceNil; n = _tmp$2; err = _tmp$3; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Buffer.ptr.prototype.ReadFrom }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.free = free; $f.m = m; $f.n = n; $f.newBuf = newBuf; $f.r = r; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; Buffer.prototype.ReadFrom = function(r) { return this.$val.ReadFrom(r); }; makeSlice = function(n) { var n, $deferred; /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); $deferred.push([(function() { if (!($interfaceIsEqual($recover(), $ifaceNil))) { $panic($pkg.ErrTooLarge); } }), []]); return $makeSlice(sliceType, n); /* */ } catch(err) { $err = err; return sliceType.nil; } finally { $callDeferred($deferred, $err); } }; Buffer.ptr.prototype.WriteTo = function(w) { var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, m, n, nBytes, w, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; m = $f.m; n = $f.n; nBytes = $f.nBytes; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = new $Int64(0, 0); err = $ifaceNil; b = this; b.lastRead = 0; /* */ if (b.off < b.buf.$length) { $s = 1; continue; } /* */ $s = 2; continue; /* if (b.off < b.buf.$length) { */ case 1: nBytes = b.Len(); _r = w.Write($subslice(b.buf, b.off)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; m = _tuple[0]; e = _tuple[1]; if (m > nBytes) { $panic(new $String("bytes.Buffer.WriteTo: invalid Write count")); } b.off = b.off + (m) >> 0; n = (new $Int64(0, m)); if (!($interfaceIsEqual(e, $ifaceNil))) { _tmp = n; _tmp$1 = e; n = _tmp; err = _tmp$1; $s = -1; return [n, err]; } if (!((m === nBytes))) { _tmp$2 = n; _tmp$3 = io.ErrShortWrite; n = _tmp$2; err = _tmp$3; $s = -1; return [n, err]; } /* } */ case 2: b.Reset(); $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Buffer.ptr.prototype.WriteTo }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.m = m; $f.n = n; $f.nBytes = nBytes; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; }; Buffer.prototype.WriteTo = function(w) { return this.$val.WriteTo(w); }; Buffer.ptr.prototype.WriteByte = function(c) { var _tuple, b, c, m, ok, x; b = this; b.lastRead = 0; _tuple = b.tryGrowByReslice(1); m = _tuple[0]; ok = _tuple[1]; if (!ok) { m = b.grow(1); } (x = b.buf, ((m < 0 || m >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + m] = c)); return $ifaceNil; }; Buffer.prototype.WriteByte = function(c) { return this.$val.WriteByte(c); }; Buffer.ptr.prototype.WriteRune = function(r) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, err, m, n, ok, r; n = 0; err = $ifaceNil; b = this; if (r < 128) { b.WriteByte(((r << 24 >>> 24))); _tmp = 1; _tmp$1 = $ifaceNil; n = _tmp; err = _tmp$1; return [n, err]; } b.lastRead = 0; _tuple = b.tryGrowByReslice(4); m = _tuple[0]; ok = _tuple[1]; if (!ok) { m = b.grow(4); } n = utf8.EncodeRune($subslice(b.buf, m, (m + 4 >> 0)), r); b.buf = $subslice(b.buf, 0, (m + n >> 0)); _tmp$2 = n; _tmp$3 = $ifaceNil; n = _tmp$2; err = _tmp$3; return [n, err]; }; Buffer.prototype.WriteRune = function(r) { return this.$val.WriteRune(r); }; Buffer.ptr.prototype.Read = function(p) { var _tmp, _tmp$1, b, err, n, p; n = 0; err = $ifaceNil; b = this; b.lastRead = 0; if (b.off >= b.buf.$length) { b.Reset(); if (p.$length === 0) { return [n, err]; } _tmp = 0; _tmp$1 = io.EOF; n = _tmp; err = _tmp$1; return [n, err]; } n = $copySlice(p, $subslice(b.buf, b.off)); b.off = b.off + (n) >> 0; if (n > 0) { b.lastRead = -1; } return [n, err]; }; Buffer.prototype.Read = function(p) { return this.$val.Read(p); }; Buffer.ptr.prototype.Next = function(n) { var b, data, m, n; b = this; b.lastRead = 0; m = b.Len(); if (n > m) { n = m; } data = $subslice(b.buf, b.off, (b.off + n >> 0)); b.off = b.off + (n) >> 0; if (n > 0) { b.lastRead = -1; } return data; }; Buffer.prototype.Next = function(n) { return this.$val.Next(n); }; Buffer.ptr.prototype.ReadByte = function() { var b, c, x, x$1; b = this; b.lastRead = 0; if (b.off >= b.buf.$length) { b.Reset(); return [0, io.EOF]; } c = (x = b.buf, x$1 = b.off, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); b.off = b.off + (1) >> 0; b.lastRead = -1; return [c, $ifaceNil]; }; Buffer.prototype.ReadByte = function() { return this.$val.ReadByte(); }; Buffer.ptr.prototype.ReadRune = function() { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, b, c, err, n, r, size, x, x$1; r = 0; size = 0; err = $ifaceNil; b = this; b.lastRead = 0; if (b.off >= b.buf.$length) { b.Reset(); _tmp = 0; _tmp$1 = 0; _tmp$2 = io.EOF; r = _tmp; size = _tmp$1; err = _tmp$2; return [r, size, err]; } c = (x = b.buf, x$1 = b.off, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); if (c < 128) { b.off = b.off + (1) >> 0; b.lastRead = 1; _tmp$3 = ((c >> 0)); _tmp$4 = 1; _tmp$5 = $ifaceNil; r = _tmp$3; size = _tmp$4; err = _tmp$5; return [r, size, err]; } _tuple = utf8.DecodeRune($subslice(b.buf, b.off)); r = _tuple[0]; n = _tuple[1]; b.off = b.off + (n) >> 0; b.lastRead = ((n >> 0)); _tmp$6 = r; _tmp$7 = n; _tmp$8 = $ifaceNil; r = _tmp$6; size = _tmp$7; err = _tmp$8; return [r, size, err]; }; Buffer.prototype.ReadRune = function() { return this.$val.ReadRune(); }; Buffer.ptr.prototype.UnreadRune = function() { var b; b = this; if (b.lastRead <= 0) { return errors.New("bytes.Buffer: UnreadRune: previous operation was not a successful ReadRune"); } if (b.off >= ((b.lastRead >> 0))) { b.off = b.off - (((b.lastRead >> 0))) >> 0; } b.lastRead = 0; return $ifaceNil; }; Buffer.prototype.UnreadRune = function() { return this.$val.UnreadRune(); }; Buffer.ptr.prototype.UnreadByte = function() { var b; b = this; if (b.lastRead === 0) { return errors.New("bytes.Buffer: UnreadByte: previous operation was not a successful read"); } b.lastRead = 0; if (b.off > 0) { b.off = b.off - (1) >> 0; } return $ifaceNil; }; Buffer.prototype.UnreadByte = function() { return this.$val.UnreadByte(); }; Buffer.ptr.prototype.ReadBytes = function(delim) { var _tuple, b, delim, err, line, slice; line = sliceType.nil; err = $ifaceNil; b = this; _tuple = b.readSlice(delim); slice = _tuple[0]; err = _tuple[1]; line = $appendSlice(line, slice); return [line, err]; }; Buffer.prototype.ReadBytes = function(delim) { return this.$val.ReadBytes(delim); }; Buffer.ptr.prototype.readSlice = function(delim) { var _tmp, _tmp$1, b, delim, end, err, i, line; line = sliceType.nil; err = $ifaceNil; b = this; i = IndexByte($subslice(b.buf, b.off), delim); end = (b.off + i >> 0) + 1 >> 0; if (i < 0) { end = b.buf.$length; err = io.EOF; } line = $subslice(b.buf, b.off, end); b.off = end; b.lastRead = -1; _tmp = line; _tmp$1 = err; line = _tmp; err = _tmp$1; return [line, err]; }; Buffer.prototype.readSlice = function(delim) { return this.$val.readSlice(delim); }; Buffer.ptr.prototype.ReadString = function(delim) { var _tmp, _tmp$1, _tuple, b, delim, err, line, slice; line = ""; err = $ifaceNil; b = this; _tuple = b.readSlice(delim); slice = _tuple[0]; err = _tuple[1]; _tmp = ($bytesToString(slice)); _tmp$1 = err; line = _tmp; err = _tmp$1; return [line, err]; }; Buffer.prototype.ReadString = function(delim) { return this.$val.ReadString(delim); }; HasPrefix = function(s, prefix) { var prefix, s; return s.$length >= prefix.$length && Equal($subslice(s, 0, prefix.$length), prefix); }; $pkg.HasPrefix = HasPrefix; Index = function(s, sep) { var c, i, n, o, s, sep, t; n = sep.$length; if (n === 0) { return 0; } if (n > s.$length) { return -1; } c = (0 >= sep.$length ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + 0]); if (n === 1) { return IndexByte(s, c); } i = 0; t = $subslice(s, 0, ((s.$length - n >> 0) + 1 >> 0)); while (true) { if (!(i < t.$length)) { break; } if (!((((i < 0 || i >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + i]) === c))) { o = IndexByte($subslice(t, i), c); if (o < 0) { break; } i = i + (o) >> 0; } if (Equal($subslice(s, i, (i + n >> 0)), sep)) { return i; } i = i + (1) >> 0; } return -1; }; $pkg.Index = Index; ptrType.methods = [{prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "tryGrowByReslice", name: "tryGrowByReslice", pkg: "bytes", typ: $funcType([$Int], [$Int, $Bool], false)}, {prop: "grow", name: "grow", pkg: "bytes", typ: $funcType([$Int], [$Int], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([$Int], [sliceType], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "readSlice", name: "readSlice", pkg: "bytes", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "ReadString", name: "ReadString", pkg: "", typ: $funcType([$Uint8], [$String, $error], false)}]; Buffer.init("bytes", [{prop: "buf", name: "buf", anonymous: false, exported: false, typ: sliceType, tag: ""}, {prop: "off", name: "off", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "lastRead", name: "lastRead", anonymous: false, exported: false, typ: readOp, tag: ""}, {prop: "bootstrap", name: "bootstrap", anonymous: false, exported: false, typ: arrayType, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = unicode.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $pkg.ErrTooLarge = errors.New("bytes.Buffer: too large"); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["math"] = (function() { var $pkg = {}, $init, js, arrayType, arrayType$1, arrayType$2, structType, math, zero, posInf, negInf, nan, buf, pow10tab, pow10postab32, pow10negtab32, Atan, Atanh, Atan2, Ceil, Cos, Cosh, Exp, Floor, Inf, Log, NaN, Pow, Sin, Sinh, Sqrt, Tan, Tanh, Trunc, init, Float32bits, Float32frombits, Float64bits, Float64frombits, Abs, Pow10; js = $packages["github.com/gopherjs/gopherjs/js"]; arrayType = $arrayType($Uint32, 2); arrayType$1 = $arrayType($Float32, 2); arrayType$2 = $arrayType($Float64, 1); structType = $structType("math", [{prop: "uint32array", name: "uint32array", anonymous: false, exported: false, typ: arrayType, tag: ""}, {prop: "float32array", name: "float32array", anonymous: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "float64array", name: "float64array", anonymous: false, exported: false, typ: arrayType$2, tag: ""}]); Atan = function(x) { var x; return $parseFloat(math.atan(x)); }; $pkg.Atan = Atan; Atanh = function(x) { var x; return $parseFloat(math.atanh(x)); }; $pkg.Atanh = Atanh; Atan2 = function(y, x) { var x, y; return $parseFloat(math.atan2(y, x)); }; $pkg.Atan2 = Atan2; Ceil = function(x) { var x; return $parseFloat(math.ceil(x)); }; $pkg.Ceil = Ceil; Cos = function(x) { var x; return $parseFloat(math.cos(x)); }; $pkg.Cos = Cos; Cosh = function(x) { var x; return $parseFloat(math.cosh(x)); }; $pkg.Cosh = Cosh; Exp = function(x) { var x; return $parseFloat(math.exp(x)); }; $pkg.Exp = Exp; Floor = function(x) { var x; return $parseFloat(math.floor(x)); }; $pkg.Floor = Floor; Inf = function(sign) { var sign; if (sign >= 0) { return posInf; } else { return negInf; } }; $pkg.Inf = Inf; Log = function(x) { var x; if (!((x === x))) { return nan; } return $parseFloat(math.log(x)); }; $pkg.Log = Log; NaN = function() { return nan; }; $pkg.NaN = NaN; Pow = function(x, y) { var x, y; if ((x === 1) || ((x === -1) && ((y === posInf) || (y === negInf)))) { return 1; } return $parseFloat(math.pow(x, y)); }; $pkg.Pow = Pow; Sin = function(x) { var x; return $parseFloat(math.sin(x)); }; $pkg.Sin = Sin; Sinh = function(x) { var x; return $parseFloat(math.sinh(x)); }; $pkg.Sinh = Sinh; Sqrt = function(x) { var x; return $parseFloat(math.sqrt(x)); }; $pkg.Sqrt = Sqrt; Tan = function(x) { var x; return $parseFloat(math.tan(x)); }; $pkg.Tan = Tan; Tanh = function(x) { var x; return $parseFloat(math.tanh(x)); }; $pkg.Tanh = Tanh; Trunc = function(x) { var x; if ((x === posInf) || (x === negInf) || !((x === x)) || (1 / x === negInf)) { return x; } return (((x >> 0))); }; $pkg.Trunc = Trunc; init = function() { var ab; ab = new ($global.ArrayBuffer)(8); buf.uint32array = new ($global.Uint32Array)(ab); buf.float32array = new ($global.Float32Array)(ab); buf.float64array = new ($global.Float64Array)(ab); }; Float32bits = function(f) { var f; buf.float32array[0] = f; return buf.uint32array[0]; }; $pkg.Float32bits = Float32bits; Float32frombits = function(b) { var b; buf.uint32array[0] = b; return buf.float32array[0]; }; $pkg.Float32frombits = Float32frombits; Float64bits = function(f) { var f, x, x$1; buf.float64array[0] = f; return (x = $shiftLeft64((new $Uint64(0, buf.uint32array[1])), 32), x$1 = (new $Uint64(0, buf.uint32array[0])), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); }; $pkg.Float64bits = Float64bits; Float64frombits = function(b) { var b; buf.uint32array[0] = ((b.$low >>> 0)); buf.uint32array[1] = (($shiftRightUint64(b, 32).$low >>> 0)); return buf.float64array[0]; }; $pkg.Float64frombits = Float64frombits; Abs = function(x) { var x; if (x < 0) { return -x; } if (x === 0) { return 0; } return x; }; $pkg.Abs = Abs; Pow10 = function(n) { var _q, _q$1, _r, _r$1, n, x, x$1, x$2, x$3; if (0 <= n && n <= 308) { return (x = (_q = ((n >>> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x < 0 || x >= pow10postab32.length) ? ($throwRuntimeError("index out of range"), undefined) : pow10postab32[x])) * (x$1 = (_r = ((n >>> 0)) % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= pow10tab.length) ? ($throwRuntimeError("index out of range"), undefined) : pow10tab[x$1])); } if (-323 <= n && n <= 0) { return (x$2 = (_q$1 = ((-n >>> 0)) / 32, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$2 < 0 || x$2 >= pow10negtab32.length) ? ($throwRuntimeError("index out of range"), undefined) : pow10negtab32[x$2])) / (x$3 = (_r$1 = ((-n >>> 0)) % 32, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")), ((x$3 < 0 || x$3 >= pow10tab.length) ? ($throwRuntimeError("index out of range"), undefined) : pow10tab[x$3])); } if (n > 0) { return Inf(1); } return 0; }; $pkg.Pow10 = Pow10; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } buf = new structType.ptr(arrayType.zero(), arrayType$1.zero(), arrayType$2.zero()); math = $global.Math; zero = 0; posInf = 1 / zero; negInf = -1 / zero; nan = 0 / zero; pow10tab = $toNativeArray($kindFloat64, [1, 10, 100, 1000, 10000, 100000, 1e+06, 1e+07, 1e+08, 1e+09, 1e+10, 1e+11, 1e+12, 1e+13, 1e+14, 1e+15, 1e+16, 1e+17, 1e+18, 1e+19, 1e+20, 1e+21, 1e+22, 1e+23, 1e+24, 1e+25, 1e+26, 1e+27, 1e+28, 1e+29, 1e+30, 1e+31]); pow10postab32 = $toNativeArray($kindFloat64, [1, 1e+32, 1e+64, 1e+96, 1e+128, 1e+160, 1e+192, 1e+224, 1e+256, 1e+288]); pow10negtab32 = $toNativeArray($kindFloat64, [1, 1e-32, 1e-64, 1e-96, 1e-128, 1e-160, 1e-192, 1e-224, 1e-256, 1e-288, 1e-320]); init(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["syscall"] = (function() { var $pkg = {}, $init, errors, js, race, runtime, sync, SockaddrDatalink, mmapper, Errno, Sockaddr, SockaddrInet4, SockaddrInet6, SockaddrUnix, Timespec, Stat_t, RawSockaddrInet4, RawSockaddrInet6, RawSockaddrUnix, RawSockaddrDatalink, RawSockaddr, RawSockaddrAny, _Socklen, Linger, Iovec, IPMreq, IPv6Mreq, Msghdr, sliceType, sliceType$1, ptrType$2, arrayType, arrayType$1, ptrType$11, arrayType$3, arrayType$4, arrayType$5, arrayType$6, arrayType$10, ptrType$16, arrayType$11, ptrType$17, ptrType$18, structType, ptrType$20, ptrType$21, ptrType$27, mapType, funcType$2, funcType$3, ptrType$28, ptrType$29, ptrType$30, ptrType$31, arrayType$15, ptrType$32, warningPrinted, lineBuffer, syscallModule, alreadyTriedToLoad, minusOne, envs, freebsdConfArch, minRoutingSockaddrLen, mapper, errEAGAIN, errEINVAL, errENOENT, ioSync, ioSync$24ptr, errors$1, init, printWarning, printToConsole, indexByte, runtime_envs, syscall, Syscall, Syscall6, BytePtrFromString, readInt, readIntBE, readIntLE, ParseDirent, CloseOnExec, SetNonblock, msanRead, msanWrite, rsaAlignOf, itoa, uitoa, ReadDirent, anyToSockaddr, Accept, Recvmsg, SendmsgN, direntIno, direntReclen, direntNamlen, errnoErr, Read, Write, Recvfrom, Sendto, SetsockoptByte, SetsockoptInt, SetsockoptInet4Addr, SetsockoptIPMreq, SetsockoptIPv6Mreq, SetsockoptLinger, accept, setsockopt, Shutdown, recvfrom, sendto, recvmsg, sendmsg, fcntl, Chmod, Close, Exit, Fchdir, Fchmod, Fchown, Fstat, Fsync, Ftruncate, Getdirentries, Lstat, Open, Pread, Pwrite, read, Seek, Stat, write, mmap, munmap; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; race = $packages["internal/race"]; runtime = $packages["runtime"]; sync = $packages["sync"]; SockaddrDatalink = $pkg.SockaddrDatalink = $newType(0, $kindStruct, "syscall.SockaddrDatalink", true, "syscall", true, function(Len_, Family_, Index_, Type_, Nlen_, Alen_, Slen_, Data_, raw_) { this.$val = this; if (arguments.length === 0) { this.Len = 0; this.Family = 0; this.Index = 0; this.Type = 0; this.Nlen = 0; this.Alen = 0; this.Slen = 0; this.Data = arrayType$3.zero(); this.raw = new RawSockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero()); return; } this.Len = Len_; this.Family = Family_; this.Index = Index_; this.Type = Type_; this.Nlen = Nlen_; this.Alen = Alen_; this.Slen = Slen_; this.Data = Data_; this.raw = raw_; }); mmapper = $pkg.mmapper = $newType(0, $kindStruct, "syscall.mmapper", true, "syscall", false, function(Mutex_, active_, mmap_, munmap_) { this.$val = this; if (arguments.length === 0) { this.Mutex = new sync.Mutex.ptr(0, 0); this.active = false; this.mmap = $throwNilPointerError; this.munmap = $throwNilPointerError; return; } this.Mutex = Mutex_; this.active = active_; this.mmap = mmap_; this.munmap = munmap_; }); Errno = $pkg.Errno = $newType(4, $kindUintptr, "syscall.Errno", true, "syscall", true, null); Sockaddr = $pkg.Sockaddr = $newType(8, $kindInterface, "syscall.Sockaddr", true, "syscall", true, null); SockaddrInet4 = $pkg.SockaddrInet4 = $newType(0, $kindStruct, "syscall.SockaddrInet4", true, "syscall", true, function(Port_, Addr_, raw_) { this.$val = this; if (arguments.length === 0) { this.Port = 0; this.Addr = arrayType$1.zero(); this.raw = new RawSockaddrInet4.ptr(0, 0, 0, arrayType$1.zero(), arrayType$6.zero()); return; } this.Port = Port_; this.Addr = Addr_; this.raw = raw_; }); SockaddrInet6 = $pkg.SockaddrInet6 = $newType(0, $kindStruct, "syscall.SockaddrInet6", true, "syscall", true, function(Port_, ZoneId_, Addr_, raw_) { this.$val = this; if (arguments.length === 0) { this.Port = 0; this.ZoneId = 0; this.Addr = arrayType.zero(); this.raw = new RawSockaddrInet6.ptr(0, 0, 0, 0, arrayType.zero(), 0); return; } this.Port = Port_; this.ZoneId = ZoneId_; this.Addr = Addr_; this.raw = raw_; }); SockaddrUnix = $pkg.SockaddrUnix = $newType(0, $kindStruct, "syscall.SockaddrUnix", true, "syscall", true, function(Name_, raw_) { this.$val = this; if (arguments.length === 0) { this.Name = ""; this.raw = new RawSockaddrUnix.ptr(0, 0, arrayType$11.zero()); return; } this.Name = Name_; this.raw = raw_; }); Timespec = $pkg.Timespec = $newType(0, $kindStruct, "syscall.Timespec", true, "syscall", true, function(Sec_, Nsec_) { this.$val = this; if (arguments.length === 0) { this.Sec = new $Int64(0, 0); this.Nsec = new $Int64(0, 0); return; } this.Sec = Sec_; this.Nsec = Nsec_; }); Stat_t = $pkg.Stat_t = $newType(0, $kindStruct, "syscall.Stat_t", true, "syscall", true, function(Dev_, Mode_, Nlink_, Ino_, Uid_, Gid_, Rdev_, Pad_cgo_0_, Atimespec_, Mtimespec_, Ctimespec_, Birthtimespec_, Size_, Blocks_, Blksize_, Flags_, Gen_, Lspare_, Qspare_) { this.$val = this; if (arguments.length === 0) { this.Dev = 0; this.Mode = 0; this.Nlink = 0; this.Ino = new $Uint64(0, 0); this.Uid = 0; this.Gid = 0; this.Rdev = 0; this.Pad_cgo_0 = arrayType$1.zero(); this.Atimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); this.Mtimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); this.Ctimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); this.Birthtimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); this.Size = new $Int64(0, 0); this.Blocks = new $Int64(0, 0); this.Blksize = 0; this.Flags = 0; this.Gen = 0; this.Lspare = 0; this.Qspare = arrayType$15.zero(); return; } this.Dev = Dev_; this.Mode = Mode_; this.Nlink = Nlink_; this.Ino = Ino_; this.Uid = Uid_; this.Gid = Gid_; this.Rdev = Rdev_; this.Pad_cgo_0 = Pad_cgo_0_; this.Atimespec = Atimespec_; this.Mtimespec = Mtimespec_; this.Ctimespec = Ctimespec_; this.Birthtimespec = Birthtimespec_; this.Size = Size_; this.Blocks = Blocks_; this.Blksize = Blksize_; this.Flags = Flags_; this.Gen = Gen_; this.Lspare = Lspare_; this.Qspare = Qspare_; }); RawSockaddrInet4 = $pkg.RawSockaddrInet4 = $newType(0, $kindStruct, "syscall.RawSockaddrInet4", true, "syscall", true, function(Len_, Family_, Port_, Addr_, Zero_) { this.$val = this; if (arguments.length === 0) { this.Len = 0; this.Family = 0; this.Port = 0; this.Addr = arrayType$1.zero(); this.Zero = arrayType$6.zero(); return; } this.Len = Len_; this.Family = Family_; this.Port = Port_; this.Addr = Addr_; this.Zero = Zero_; }); RawSockaddrInet6 = $pkg.RawSockaddrInet6 = $newType(0, $kindStruct, "syscall.RawSockaddrInet6", true, "syscall", true, function(Len_, Family_, Port_, Flowinfo_, Addr_, Scope_id_) { this.$val = this; if (arguments.length === 0) { this.Len = 0; this.Family = 0; this.Port = 0; this.Flowinfo = 0; this.Addr = arrayType.zero(); this.Scope_id = 0; return; } this.Len = Len_; this.Family = Family_; this.Port = Port_; this.Flowinfo = Flowinfo_; this.Addr = Addr_; this.Scope_id = Scope_id_; }); RawSockaddrUnix = $pkg.RawSockaddrUnix = $newType(0, $kindStruct, "syscall.RawSockaddrUnix", true, "syscall", true, function(Len_, Family_, Path_) { this.$val = this; if (arguments.length === 0) { this.Len = 0; this.Family = 0; this.Path = arrayType$11.zero(); return; } this.Len = Len_; this.Family = Family_; this.Path = Path_; }); RawSockaddrDatalink = $pkg.RawSockaddrDatalink = $newType(0, $kindStruct, "syscall.RawSockaddrDatalink", true, "syscall", true, function(Len_, Family_, Index_, Type_, Nlen_, Alen_, Slen_, Data_) { this.$val = this; if (arguments.length === 0) { this.Len = 0; this.Family = 0; this.Index = 0; this.Type = 0; this.Nlen = 0; this.Alen = 0; this.Slen = 0; this.Data = arrayType$3.zero(); return; } this.Len = Len_; this.Family = Family_; this.Index = Index_; this.Type = Type_; this.Nlen = Nlen_; this.Alen = Alen_; this.Slen = Slen_; this.Data = Data_; }); RawSockaddr = $pkg.RawSockaddr = $newType(0, $kindStruct, "syscall.RawSockaddr", true, "syscall", true, function(Len_, Family_, Data_) { this.$val = this; if (arguments.length === 0) { this.Len = 0; this.Family = 0; this.Data = arrayType$4.zero(); return; } this.Len = Len_; this.Family = Family_; this.Data = Data_; }); RawSockaddrAny = $pkg.RawSockaddrAny = $newType(0, $kindStruct, "syscall.RawSockaddrAny", true, "syscall", true, function(Addr_, Pad_) { this.$val = this; if (arguments.length === 0) { this.Addr = new RawSockaddr.ptr(0, 0, arrayType$4.zero()); this.Pad = arrayType$5.zero(); return; } this.Addr = Addr_; this.Pad = Pad_; }); _Socklen = $pkg._Socklen = $newType(4, $kindUint32, "syscall._Socklen", true, "syscall", false, null); Linger = $pkg.Linger = $newType(0, $kindStruct, "syscall.Linger", true, "syscall", true, function(Onoff_, Linger_) { this.$val = this; if (arguments.length === 0) { this.Onoff = 0; this.Linger = 0; return; } this.Onoff = Onoff_; this.Linger = Linger_; }); Iovec = $pkg.Iovec = $newType(0, $kindStruct, "syscall.Iovec", true, "syscall", true, function(Base_, Len_) { this.$val = this; if (arguments.length === 0) { this.Base = ptrType$2.nil; this.Len = new $Uint64(0, 0); return; } this.Base = Base_; this.Len = Len_; }); IPMreq = $pkg.IPMreq = $newType(0, $kindStruct, "syscall.IPMreq", true, "syscall", true, function(Multiaddr_, Interface_) { this.$val = this; if (arguments.length === 0) { this.Multiaddr = arrayType$1.zero(); this.Interface = arrayType$1.zero(); return; } this.Multiaddr = Multiaddr_; this.Interface = Interface_; }); IPv6Mreq = $pkg.IPv6Mreq = $newType(0, $kindStruct, "syscall.IPv6Mreq", true, "syscall", true, function(Multiaddr_, Interface_) { this.$val = this; if (arguments.length === 0) { this.Multiaddr = arrayType.zero(); this.Interface = 0; return; } this.Multiaddr = Multiaddr_; this.Interface = Interface_; }); Msghdr = $pkg.Msghdr = $newType(0, $kindStruct, "syscall.Msghdr", true, "syscall", true, function(Name_, Namelen_, Pad_cgo_0_, Iov_, Iovlen_, Pad_cgo_1_, Control_, Controllen_, Flags_) { this.$val = this; if (arguments.length === 0) { this.Name = ptrType$2.nil; this.Namelen = 0; this.Pad_cgo_0 = arrayType$1.zero(); this.Iov = ptrType$18.nil; this.Iovlen = 0; this.Pad_cgo_1 = arrayType$1.zero(); this.Control = ptrType$2.nil; this.Controllen = 0; this.Flags = 0; return; } this.Name = Name_; this.Namelen = Namelen_; this.Pad_cgo_0 = Pad_cgo_0_; this.Iov = Iov_; this.Iovlen = Iovlen_; this.Pad_cgo_1 = Pad_cgo_1_; this.Control = Control_; this.Controllen = Controllen_; this.Flags = Flags_; }); sliceType = $sliceType($Uint8); sliceType$1 = $sliceType($String); ptrType$2 = $ptrType($Uint8); arrayType = $arrayType($Uint8, 16); arrayType$1 = $arrayType($Uint8, 4); ptrType$11 = $ptrType(SockaddrDatalink); arrayType$3 = $arrayType($Int8, 12); arrayType$4 = $arrayType($Int8, 14); arrayType$5 = $arrayType($Int8, 92); arrayType$6 = $arrayType($Int8, 8); arrayType$10 = $arrayType($Uint8, 32); ptrType$16 = $ptrType($Uint16); arrayType$11 = $arrayType($Int8, 104); ptrType$17 = $ptrType(_Socklen); ptrType$18 = $ptrType(Iovec); structType = $structType("syscall", [{prop: "addr", name: "addr", anonymous: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "len", name: "len", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "cap", name: "cap", anonymous: false, exported: false, typ: $Int, tag: ""}]); ptrType$20 = $ptrType($Int64); ptrType$21 = $ptrType($Int32); ptrType$27 = $ptrType(mmapper); mapType = $mapType(ptrType$2, sliceType); funcType$2 = $funcType([$Uintptr, $Uintptr, $Int, $Int, $Int, $Int64], [$Uintptr, $error], false); funcType$3 = $funcType([$Uintptr, $Uintptr], [$error], false); ptrType$28 = $ptrType(SockaddrInet4); ptrType$29 = $ptrType(SockaddrInet6); ptrType$30 = $ptrType(SockaddrUnix); ptrType$31 = $ptrType(Timespec); arrayType$15 = $arrayType($Int64, 2); ptrType$32 = $ptrType(Msghdr); init = function() { $flushConsole = (function() { if (!((lineBuffer.$length === 0))) { $global.console.log($externalize(($bytesToString(lineBuffer)), $String)); lineBuffer = sliceType.nil; } }); }; printWarning = function() { if (!warningPrinted) { $global.console.error($externalize("warning: system calls not available, see https://github.com/gopherjs/gopherjs/blob/master/doc/syscalls.md", $String)); } warningPrinted = true; }; printToConsole = function(b) { var b, goPrintToConsole, i; goPrintToConsole = $global.goPrintToConsole; if (!(goPrintToConsole === undefined)) { goPrintToConsole(b); return; } lineBuffer = $appendSlice(lineBuffer, b); while (true) { i = indexByte(lineBuffer, 10); if (i === -1) { break; } $global.console.log($externalize(($bytesToString($subslice(lineBuffer, 0, i))), $String)); lineBuffer = $subslice(lineBuffer, (i + 1 >> 0)); } }; indexByte = function(s, c) { var _i, _ref, b, c, i, s; _ref = s; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (b === c) { return i; } _i++; } return -1; }; runtime_envs = function() { var envkeys, envs$1, i, jsEnv, key, process; process = $global.process; if (process === undefined) { return sliceType$1.nil; } jsEnv = process.env; envkeys = $global.Object.keys(jsEnv); envs$1 = $makeSlice(sliceType$1, $parseInt(envkeys.length)); i = 0; while (true) { if (!(i < $parseInt(envkeys.length))) { break; } key = $internalize(envkeys[i], $String); ((i < 0 || i >= envs$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : envs$1.$array[envs$1.$offset + i] = key + "=" + $internalize(jsEnv[$externalize(key, $String)], $String)); i = i + (1) >> 0; } return envs$1; }; syscall = function(name) { var name, require, $deferred; /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); $deferred.push([(function() { $recover(); }), []]); if (syscallModule === null) { if (alreadyTriedToLoad) { return null; } alreadyTriedToLoad = true; require = $global.require; if (require === undefined) { $panic(new $String("")); } syscallModule = require($externalize("syscall", $String)); } return syscallModule[$externalize(name, $String)]; /* */ } catch(err) { $err = err; return null; } finally { $callDeferred($deferred, $err); } }; Syscall = function(trap, a1, a2, a3) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, a1, a2, a3, array, err, f, r, r1, r2, slice, trap; r1 = 0; r2 = 0; err = 0; f = syscall("Syscall"); if (!(f === null)) { r = f(trap, a1, a2, a3); _tmp = ((($parseInt(r[0]) >> 0) >>> 0)); _tmp$1 = ((($parseInt(r[1]) >> 0) >>> 0)); _tmp$2 = ((($parseInt(r[2]) >> 0) >>> 0)); r1 = _tmp; r2 = _tmp$1; err = _tmp$2; return [r1, r2, err]; } if ((trap === 4) && ((a1 === 1) || (a1 === 2))) { array = a2; slice = $makeSlice(sliceType, $parseInt(array.length)); slice.$array = array; printToConsole(slice); _tmp$3 = (($parseInt(array.length) >>> 0)); _tmp$4 = 0; _tmp$5 = 0; r1 = _tmp$3; r2 = _tmp$4; err = _tmp$5; return [r1, r2, err]; } if (trap === 1) { runtime.Goexit(); } printWarning(); _tmp$6 = ((minusOne >>> 0)); _tmp$7 = 0; _tmp$8 = 13; r1 = _tmp$6; r2 = _tmp$7; err = _tmp$8; return [r1, r2, err]; }; $pkg.Syscall = Syscall; Syscall6 = function(trap, a1, a2, a3, a4, a5, a6) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a1, a2, a3, a4, a5, a6, err, f, r, r1, r2, trap; r1 = 0; r2 = 0; err = 0; f = syscall("Syscall6"); if (!(f === null)) { r = f(trap, a1, a2, a3, a4, a5, a6); _tmp = ((($parseInt(r[0]) >> 0) >>> 0)); _tmp$1 = ((($parseInt(r[1]) >> 0) >>> 0)); _tmp$2 = ((($parseInt(r[2]) >> 0) >>> 0)); r1 = _tmp; r2 = _tmp$1; err = _tmp$2; return [r1, r2, err]; } if (!((trap === 202))) { printWarning(); } _tmp$3 = ((minusOne >>> 0)); _tmp$4 = 0; _tmp$5 = 13; r1 = _tmp$3; r2 = _tmp$4; err = _tmp$5; return [r1, r2, err]; }; $pkg.Syscall6 = Syscall6; BytePtrFromString = function(s) { var _i, _ref, array, b, i, s; array = new ($global.Uint8Array)(s.length + 1 >> 0); _ref = (new sliceType($stringToBytes(s))); _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (b === 0) { return [ptrType$2.nil, new Errno(22)]; } array[i] = b; _i++; } array[s.length] = 0; return [((array)), $ifaceNil]; }; $pkg.BytePtrFromString = BytePtrFromString; readInt = function(b, off, size) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, off, ok, size, u; u = new $Uint64(0, 0); ok = false; if (b.$length < (((off + size >>> 0) >> 0))) { _tmp = new $Uint64(0, 0); _tmp$1 = false; u = _tmp; ok = _tmp$1; return [u, ok]; } if (false) { _tmp$2 = readIntBE($subslice(b, off), size); _tmp$3 = true; u = _tmp$2; ok = _tmp$3; return [u, ok]; } _tmp$4 = readIntLE($subslice(b, off), size); _tmp$5 = true; u = _tmp$4; ok = _tmp$5; return [u, ok]; }; readIntBE = function(b, size) { var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9; _1 = size; if (_1 === (1)) { return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))); } else if (_1 === (2)) { $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); return (x = (new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), x$1 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); } else if (_1 === (4)) { $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), x$5 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0)); } else if (_1 === (8)) { $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), x$15 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0)); } else { $panic(new $String("syscall: readInt with unsupported size")); } }; readIntLE = function(b, size) { var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9; _1 = size; if (_1 === (1)) { return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))); } else if (_1 === (2)) { $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); return (x = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$1 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); } else if (_1 === (4)) { $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$5 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0)); } else if (_1 === (8)) { $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$15 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0)); } else { $panic(new $String("syscall: readInt with unsupported size")); } }; ParseDirent = function(buf, max, names) { var _i, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, buf, c, consumed, count, i, ino, max, name, names, namlen, newnames, ok, origlen, rec, reclen, x, x$1, x$2; consumed = 0; count = 0; newnames = sliceType$1.nil; origlen = buf.$length; count = 0; while (true) { if (!(!((max === 0)) && buf.$length > 0)) { break; } _tuple = direntReclen(buf); reclen = _tuple[0]; ok = _tuple[1]; if (!ok || (x = (new $Uint64(0, buf.$length)), (reclen.$high > x.$high || (reclen.$high === x.$high && reclen.$low > x.$low)))) { _tmp = origlen; _tmp$1 = count; _tmp$2 = names; consumed = _tmp; count = _tmp$1; newnames = _tmp$2; return [consumed, count, newnames]; } rec = $subslice(buf, 0, $flatten64(reclen)); buf = $subslice(buf, $flatten64(reclen)); _tuple$1 = direntIno(rec); ino = _tuple$1[0]; ok = _tuple$1[1]; if (!ok) { break; } if ((ino.$high === 0 && ino.$low === 0)) { continue; } _tuple$2 = direntNamlen(rec); namlen = _tuple$2[0]; ok = _tuple$2[1]; if (!ok || (x$1 = new $Uint64(0 + namlen.$high, 21 + namlen.$low), x$2 = (new $Uint64(0, rec.$length)), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { break; } name = $subslice(rec, 21, $flatten64(new $Uint64(0 + namlen.$high, 21 + namlen.$low))); _ref = name; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (c === 0) { name = $subslice(name, 0, i); break; } _i++; } if (($bytesToString(name)) === "." || ($bytesToString(name)) === "..") { continue; } max = max - (1) >> 0; count = count + (1) >> 0; names = $append(names, ($bytesToString(name))); } _tmp$3 = origlen - buf.$length >> 0; _tmp$4 = count; _tmp$5 = names; consumed = _tmp$3; count = _tmp$4; newnames = _tmp$5; return [consumed, count, newnames]; }; $pkg.ParseDirent = ParseDirent; CloseOnExec = function(fd) { var fd; fcntl(fd, 2, 1); }; $pkg.CloseOnExec = CloseOnExec; SetNonblock = function(fd, nonblocking) { var _tuple, _tuple$1, err, fd, flag, nonblocking; err = $ifaceNil; _tuple = fcntl(fd, 3, 0); flag = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { err = err; return err; } if (nonblocking) { flag = flag | (4); } else { flag = (flag & ~(4)) >> 0; } _tuple$1 = fcntl(fd, 4, flag); err = _tuple$1[1]; err = err; return err; }; $pkg.SetNonblock = SetNonblock; msanRead = function(addr, len) { var addr, len; }; msanWrite = function(addr, len) { var addr, len; }; rsaAlignOf = function(salen) { var salen, salign; salign = 8; if (true) { salign = 4; } else if (false) { salign = 8; } else if (false) { if (freebsdConfArch === "amd64") { salign = 8; } } if (salen === 0) { return salign; } return (((salen + salign >> 0) - 1 >> 0)) & (~((salign - 1 >> 0)) >> 0); }; itoa = function(val) { var val; if (val < 0) { return "-" + uitoa(((-val >>> 0))); } return uitoa(((val >>> 0))); }; uitoa = function(val) { var _q, _r, buf, i, val; buf = arrayType$10.zero(); i = 31; while (true) { if (!(val >= 10)) { break; } ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((_r = val % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) + 48 >>> 0) << 24 >>> 24))); i = i - (1) >> 0; val = (_q = val / (10), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); } ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((val + 48 >>> 0) << 24 >>> 24))); return ($bytesToString($subslice(new sliceType(buf), i))); }; Timespec.ptr.prototype.Unix = function() { var _tmp, _tmp$1, nsec, sec, ts; sec = new $Int64(0, 0); nsec = new $Int64(0, 0); ts = this; _tmp = (ts.Sec); _tmp$1 = (ts.Nsec); sec = _tmp; nsec = _tmp$1; return [sec, nsec]; }; Timespec.prototype.Unix = function() { return this.$val.Unix(); }; Timespec.ptr.prototype.Nano = function() { var ts, x, x$1; ts = this; return (x = $mul64((ts.Sec), new $Int64(0, 1000000000)), x$1 = (ts.Nsec), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); }; Timespec.prototype.Nano = function() { return this.$val.Nano(); }; ReadDirent = function(fd, buf) { var _tuple, base, buf, err, fd, n; n = 0; err = $ifaceNil; base = ((new Uint8Array(8))); _tuple = Getdirentries(fd, buf, base); n = _tuple[0]; err = _tuple[1]; return [n, err]; }; $pkg.ReadDirent = ReadDirent; SockaddrInet4.ptr.prototype.sockaddr = function() { var _array, _struct, _view, i, p, sa, x, x$1, x$2; sa = this; if (sa.Port < 0 || sa.Port > 65535) { return [0, 0, new Errno(22)]; } sa.raw.Len = 16; sa.raw.Family = 2; p = (((x = sa.raw, (x.$ptr_Port || (x.$ptr_Port = new ptrType$16(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, x)))))); p.nilCheck, p[0] = (((sa.Port >> 8 >> 0) << 24 >>> 24)); p.nilCheck, p[1] = ((sa.Port << 24 >>> 24)); i = 0; while (true) { if (!(i < 4)) { break; } (x$2 = sa.raw.Addr, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = (x$1 = sa.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])))); i = i + (1) >> 0; } _array = new Uint8Array(16); return [(_array), ((sa.raw.Len >>> 0)), $ifaceNil]; }; SockaddrInet4.prototype.sockaddr = function() { return this.$val.sockaddr(); }; SockaddrInet6.ptr.prototype.sockaddr = function() { var _array, _struct, _view, i, p, sa, x, x$1, x$2; sa = this; if (sa.Port < 0 || sa.Port > 65535) { return [0, 0, new Errno(22)]; } sa.raw.Len = 28; sa.raw.Family = 30; p = (((x = sa.raw, (x.$ptr_Port || (x.$ptr_Port = new ptrType$16(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, x)))))); p.nilCheck, p[0] = (((sa.Port >> 8 >> 0) << 24 >>> 24)); p.nilCheck, p[1] = ((sa.Port << 24 >>> 24)); sa.raw.Scope_id = sa.ZoneId; i = 0; while (true) { if (!(i < 16)) { break; } (x$2 = sa.raw.Addr, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = (x$1 = sa.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])))); i = i + (1) >> 0; } _array = new Uint8Array(28); return [(_array), ((sa.raw.Len >>> 0)), $ifaceNil]; }; SockaddrInet6.prototype.sockaddr = function() { return this.$val.sockaddr(); }; SockaddrUnix.ptr.prototype.sockaddr = function() { var _array, _struct, _view, i, n, name, sa, x; sa = this; name = sa.Name; n = name.length; if (n >= 104 || (n === 0)) { return [0, 0, new Errno(22)]; } sa.raw.Len = (((3 + n >> 0) << 24 >>> 24)); sa.raw.Family = 1; i = 0; while (true) { if (!(i < n)) { break; } (x = sa.raw.Path, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = ((name.charCodeAt(i) << 24 >> 24)))); i = i + (1) >> 0; } _array = new Uint8Array(106); return [(_array), ((sa.raw.Len >>> 0)), $ifaceNil]; }; SockaddrUnix.prototype.sockaddr = function() { return this.$val.sockaddr(); }; SockaddrDatalink.ptr.prototype.sockaddr = function() { var _array, _struct, _view, i, sa, x, x$1; sa = this; if (sa.Index === 0) { return [0, 0, new Errno(22)]; } sa.raw.Len = sa.Len; sa.raw.Family = 18; sa.raw.Index = sa.Index; sa.raw.Type = sa.Type; sa.raw.Nlen = sa.Nlen; sa.raw.Alen = sa.Alen; sa.raw.Slen = sa.Slen; i = 0; while (true) { if (!(i < 12)) { break; } (x$1 = sa.raw.Data, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i] = (x = sa.Data, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])))); i = i + (1) >> 0; } _array = new Uint8Array(20); return [(_array), 20, $ifaceNil]; }; SockaddrDatalink.prototype.sockaddr = function() { return this.$val.sockaddr(); }; anyToSockaddr = function(rsa) { var _1, _array, _array$1, _array$2, _array$3, _array$4, _array$5, _array$6, _array$7, _struct, _struct$1, _struct$2, _struct$3, _struct$4, _struct$5, _struct$6, _struct$7, _view, _view$1, _view$2, _view$3, _view$4, _view$5, _view$6, _view$7, bytes, i, i$1, i$2, i$3, n, p, p$1, pp, pp$1, pp$2, pp$3, rsa, sa, sa$1, sa$2, sa$3, x, x$1, x$2, x$3, x$4, x$5, x$6; _1 = rsa.Addr.Family; if (_1 === (18)) { _array$1 = new Uint8Array(108); pp = ((_array = (_array$1), _struct = new RawSockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero()), _view = new DataView(_array.buffer, _array.byteOffset), _struct.Len = _view.getUint8(0, true), _struct.Family = _view.getUint8(1, true), _struct.Index = _view.getUint16(2, true), _struct.Type = _view.getUint8(4, true), _struct.Nlen = _view.getUint8(5, true), _struct.Alen = _view.getUint8(6, true), _struct.Slen = _view.getUint8(7, true), _struct.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct)); _struct$1 = rsa, _view$1 = new DataView(_array$1.buffer, _array$1.byteOffset), _struct$1.Addr.Len = _view$1.getUint8(0, true), _struct$1.Addr.Family = _view$1.getUint8(1, true), _struct$1.Addr.Data = new ($nativeArray($kindInt8))(_array$1.buffer, $min(_array$1.byteOffset + 2, _array$1.buffer.byteLength)), _struct$1.Pad = new ($nativeArray($kindInt8))(_array$1.buffer, $min(_array$1.byteOffset + 16, _array$1.buffer.byteLength)); sa = new SockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero(), new RawSockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero())); sa.Len = pp.Len; sa.Family = pp.Family; sa.Index = pp.Index; sa.Type = pp.Type; sa.Nlen = pp.Nlen; sa.Alen = pp.Alen; sa.Slen = pp.Slen; i = 0; while (true) { if (!(i < 12)) { break; } (x$1 = sa.Data, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i] = (x = pp.Data, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])))); i = i + (1) >> 0; } return [sa, $ifaceNil]; } else if (_1 === (1)) { _array$3 = new Uint8Array(108); pp$1 = ((_array$2 = (_array$3), _struct$2 = new RawSockaddrUnix.ptr(0, 0, arrayType$11.zero()), _view$2 = new DataView(_array$2.buffer, _array$2.byteOffset), _struct$2.Len = _view$2.getUint8(0, true), _struct$2.Family = _view$2.getUint8(1, true), _struct$2.Path = new ($nativeArray($kindInt8))(_array$2.buffer, $min(_array$2.byteOffset + 2, _array$2.buffer.byteLength)), _struct$2)); _struct$3 = rsa, _view$3 = new DataView(_array$3.buffer, _array$3.byteOffset), _struct$3.Addr.Len = _view$3.getUint8(0, true), _struct$3.Addr.Family = _view$3.getUint8(1, true), _struct$3.Addr.Data = new ($nativeArray($kindInt8))(_array$3.buffer, $min(_array$3.byteOffset + 2, _array$3.buffer.byteLength)), _struct$3.Pad = new ($nativeArray($kindInt8))(_array$3.buffer, $min(_array$3.byteOffset + 16, _array$3.buffer.byteLength)); if (pp$1.Len < 2 || pp$1.Len > 106) { return [$ifaceNil, new Errno(22)]; } sa$1 = new SockaddrUnix.ptr("", new RawSockaddrUnix.ptr(0, 0, arrayType$11.zero())); n = ((pp$1.Len >> 0)) - 2 >> 0; i$1 = 0; while (true) { if (!(i$1 < n)) { break; } if ((x$2 = pp$1.Path, ((i$1 < 0 || i$1 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i$1])) === 0) { n = i$1; break; } i$1 = i$1 + (1) >> 0; } bytes = $subslice(new sliceType((($sliceToArray(new sliceType(pp$1.Path))))), 0, n); sa$1.Name = ($bytesToString(bytes)); return [sa$1, $ifaceNil]; } else if (_1 === (2)) { _array$5 = new Uint8Array(108); pp$2 = ((_array$4 = (_array$5), _struct$4 = new RawSockaddrInet4.ptr(0, 0, 0, arrayType$1.zero(), arrayType$6.zero()), _view$4 = new DataView(_array$4.buffer, _array$4.byteOffset), _struct$4.Len = _view$4.getUint8(0, true), _struct$4.Family = _view$4.getUint8(1, true), _struct$4.Port = _view$4.getUint16(2, true), _struct$4.Addr = new ($nativeArray($kindUint8))(_array$4.buffer, $min(_array$4.byteOffset + 4, _array$4.buffer.byteLength)), _struct$4.Zero = new ($nativeArray($kindInt8))(_array$4.buffer, $min(_array$4.byteOffset + 8, _array$4.buffer.byteLength)), _struct$4)); _struct$5 = rsa, _view$5 = new DataView(_array$5.buffer, _array$5.byteOffset), _struct$5.Addr.Len = _view$5.getUint8(0, true), _struct$5.Addr.Family = _view$5.getUint8(1, true), _struct$5.Addr.Data = new ($nativeArray($kindInt8))(_array$5.buffer, $min(_array$5.byteOffset + 2, _array$5.buffer.byteLength)), _struct$5.Pad = new ($nativeArray($kindInt8))(_array$5.buffer, $min(_array$5.byteOffset + 16, _array$5.buffer.byteLength)); sa$2 = new SockaddrInet4.ptr(0, arrayType$1.zero(), new RawSockaddrInet4.ptr(0, 0, 0, arrayType$1.zero(), arrayType$6.zero())); p = (((pp$2.$ptr_Port || (pp$2.$ptr_Port = new ptrType$16(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, pp$2))))); sa$2.Port = ((((p.nilCheck, p[0]) >> 0)) << 8 >> 0) + (((p.nilCheck, p[1]) >> 0)) >> 0; i$2 = 0; while (true) { if (!(i$2 < 4)) { break; } (x$4 = sa$2.Addr, ((i$2 < 0 || i$2 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[i$2] = (x$3 = pp$2.Addr, ((i$2 < 0 || i$2 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i$2])))); i$2 = i$2 + (1) >> 0; } return [sa$2, $ifaceNil]; } else if (_1 === (30)) { _array$7 = new Uint8Array(108); pp$3 = ((_array$6 = (_array$7), _struct$6 = new RawSockaddrInet6.ptr(0, 0, 0, 0, arrayType.zero(), 0), _view$6 = new DataView(_array$6.buffer, _array$6.byteOffset), _struct$6.Len = _view$6.getUint8(0, true), _struct$6.Family = _view$6.getUint8(1, true), _struct$6.Port = _view$6.getUint16(2, true), _struct$6.Flowinfo = _view$6.getUint32(4, true), _struct$6.Addr = new ($nativeArray($kindUint8))(_array$6.buffer, $min(_array$6.byteOffset + 8, _array$6.buffer.byteLength)), _struct$6.Scope_id = _view$6.getUint32(24, true), _struct$6)); _struct$7 = rsa, _view$7 = new DataView(_array$7.buffer, _array$7.byteOffset), _struct$7.Addr.Len = _view$7.getUint8(0, true), _struct$7.Addr.Family = _view$7.getUint8(1, true), _struct$7.Addr.Data = new ($nativeArray($kindInt8))(_array$7.buffer, $min(_array$7.byteOffset + 2, _array$7.buffer.byteLength)), _struct$7.Pad = new ($nativeArray($kindInt8))(_array$7.buffer, $min(_array$7.byteOffset + 16, _array$7.buffer.byteLength)); sa$3 = new SockaddrInet6.ptr(0, 0, arrayType.zero(), new RawSockaddrInet6.ptr(0, 0, 0, 0, arrayType.zero(), 0)); p$1 = (((pp$3.$ptr_Port || (pp$3.$ptr_Port = new ptrType$16(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, pp$3))))); sa$3.Port = ((((p$1.nilCheck, p$1[0]) >> 0)) << 8 >> 0) + (((p$1.nilCheck, p$1[1]) >> 0)) >> 0; sa$3.ZoneId = pp$3.Scope_id; i$3 = 0; while (true) { if (!(i$3 < 16)) { break; } (x$6 = sa$3.Addr, ((i$3 < 0 || i$3 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[i$3] = (x$5 = pp$3.Addr, ((i$3 < 0 || i$3 >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i$3])))); i$3 = i$3 + (1) >> 0; } return [sa$3, $ifaceNil]; } return [$ifaceNil, new Errno(47)]; }; Accept = function(fd) { var _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, err, fd, len, len$24ptr, nfd, rsa, sa; nfd = 0; sa = $ifaceNil; err = $ifaceNil; rsa = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, 0, arrayType$4.zero()), arrayType$5.zero()); len = 108; _tuple = accept(fd, rsa, (len$24ptr || (len$24ptr = new ptrType$17(function() { return len; }, function($v) { len = $v; })))); nfd = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { return [nfd, sa, err]; } if (true && (len === 0)) { Close(nfd); _tmp = 0; _tmp$1 = $ifaceNil; _tmp$2 = new Errno(53); nfd = _tmp; sa = _tmp$1; err = _tmp$2; return [nfd, sa, err]; } _tuple$1 = anyToSockaddr(rsa); sa = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { Close(nfd); nfd = 0; } return [nfd, sa, err]; }; $pkg.Accept = Accept; Recvmsg = function(fd, p, oob, flags) { var _array, _struct, _tuple, _tuple$1, _view, dummy, dummy$24ptr, err, fd, flags, from, iov, msg, n, oob, oobn, p, recvflags, rsa; n = 0; oobn = 0; recvflags = 0; from = $ifaceNil; err = $ifaceNil; msg = new Msghdr.ptr(ptrType$2.nil, 0, arrayType$1.zero(), ptrType$18.nil, 0, arrayType$1.zero(), ptrType$2.nil, 0, 0); rsa = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, 0, arrayType$4.zero()), arrayType$5.zero()); _array = new Uint8Array(108); msg.Name = ((_array)); _struct = rsa, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Len = _view.getUint8(0, true), _struct.Addr.Family = _view.getUint8(1, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); msg.Namelen = 108; iov = new Iovec.ptr(ptrType$2.nil, new $Uint64(0, 0)); if (p.$length > 0) { iov.Base = (($sliceToArray(p))); iov.SetLen(p.$length); } dummy = 0; if (oob.$length > 0) { if (p.$length === 0) { iov.Base = (dummy$24ptr || (dummy$24ptr = new ptrType$2(function() { return dummy; }, function($v) { dummy = $v; }))); iov.SetLen(1); } msg.Control = (($sliceToArray(oob))); msg.SetControllen(oob.$length); } msg.Iov = iov; msg.Iovlen = 1; _tuple = recvmsg(fd, msg, flags); n = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { return [n, oobn, recvflags, from, err]; } oobn = ((msg.Controllen >> 0)); recvflags = ((msg.Flags >> 0)); if (!((rsa.Addr.Family === 0))) { _tuple$1 = anyToSockaddr(rsa); from = _tuple$1[0]; err = _tuple$1[1]; } return [n, oobn, recvflags, from, err]; }; $pkg.Recvmsg = Recvmsg; SendmsgN = function(fd, p, oob, to, flags) { var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, dummy, err, fd, flags, iov, msg, n, oob, p, ptr, salen, to, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; dummy = $f.dummy; err = $f.err; fd = $f.fd; flags = $f.flags; iov = $f.iov; msg = $f.msg; n = $f.n; oob = $f.oob; p = $f.p; ptr = $f.ptr; salen = $f.salen; to = $f.to; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: dummy = [dummy]; iov = [iov]; msg = [msg]; n = 0; err = $ifaceNil; ptr = 0; salen = 0; /* */ if (!($interfaceIsEqual(to, $ifaceNil))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!($interfaceIsEqual(to, $ifaceNil))) { */ case 1: _r = to.sockaddr(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ptr = _tuple[0]; salen = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { _tmp = 0; _tmp$1 = err; n = _tmp; err = _tmp$1; $s = -1; return [n, err]; } /* } */ case 2: msg[0] = new Msghdr.ptr(ptrType$2.nil, 0, arrayType$1.zero(), ptrType$18.nil, 0, arrayType$1.zero(), ptrType$2.nil, 0, 0); msg[0].Name = ((ptr)); msg[0].Namelen = ((salen >>> 0)); iov[0] = new Iovec.ptr(ptrType$2.nil, new $Uint64(0, 0)); if (p.$length > 0) { iov[0].Base = (($sliceToArray(p))); iov[0].SetLen(p.$length); } dummy[0] = 0; if (oob.$length > 0) { if (p.$length === 0) { iov[0].Base = (dummy.$ptr || (dummy.$ptr = new ptrType$2(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, dummy))); iov[0].SetLen(1); } msg[0].Control = (($sliceToArray(oob))); msg[0].SetControllen(oob.$length); } msg[0].Iov = iov[0]; msg[0].Iovlen = 1; _tuple$1 = sendmsg(fd, msg[0], flags); n = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { _tmp$2 = 0; _tmp$3 = err; n = _tmp$2; err = _tmp$3; $s = -1; return [n, err]; } if (oob.$length > 0 && (p.$length === 0)) { n = 0; } _tmp$4 = n; _tmp$5 = $ifaceNil; n = _tmp$4; err = _tmp$5; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: SendmsgN }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.dummy = dummy; $f.err = err; $f.fd = fd; $f.flags = flags; $f.iov = iov; $f.msg = msg; $f.n = n; $f.oob = oob; $f.p = p; $f.ptr = ptr; $f.salen = salen; $f.to = to; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.SendmsgN = SendmsgN; direntIno = function(buf) { var buf; return readInt(buf, 0, 8); }; direntReclen = function(buf) { var buf; return readInt(buf, 16, 2); }; direntNamlen = function(buf) { var buf; return readInt(buf, 18, 2); }; Iovec.ptr.prototype.SetLen = function(length) { var iov, length; iov = this; iov.Len = (new $Uint64(0, length)); }; Iovec.prototype.SetLen = function(length) { return this.$val.SetLen(length); }; Msghdr.ptr.prototype.SetControllen = function(length) { var length, msghdr; msghdr = this; msghdr.Controllen = ((length >>> 0)); }; Msghdr.prototype.SetControllen = function(length) { return this.$val.SetControllen(length); }; mmapper.ptr.prototype.Mmap = function(fd, offset, length, prot, flags) { var _key, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, addr, b, data, err, errno, fd, flags, length, m, offset, p, prot, sl, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _key = $f._key; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; addr = $f.addr; b = $f.b; data = $f.data; err = $f.err; errno = $f.errno; fd = $f.fd; flags = $f.flags; length = $f.length; m = $f.m; offset = $f.offset; p = $f.p; prot = $f.prot; sl = $f.sl; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); sl = [sl]; data = sliceType.nil; err = $ifaceNil; m = this; if (length <= 0) { _tmp = sliceType.nil; _tmp$1 = new Errno(22); data = _tmp; err = _tmp$1; $s = -1; return [data, err]; } _r = m.mmap(0, ((length >>> 0)), prot, flags, fd, offset); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; addr = _tuple[0]; errno = _tuple[1]; if (!($interfaceIsEqual(errno, $ifaceNil))) { _tmp$2 = sliceType.nil; _tmp$3 = errno; data = _tmp$2; err = _tmp$3; $s = -1; return [data, err]; } sl[0] = new structType.ptr(addr, length, length); b = sl[0]; p = $indexPtr(b.$array, b.$offset + (b.$capacity - 1 >> 0), ptrType$2); $r = m.Mutex.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $deferred.push([$methodVal(m.Mutex, "Unlock"), []]); _key = p; (m.active || $throwRuntimeError("assignment to entry in nil map"))[ptrType$2.keyFor(_key)] = { k: _key, v: b }; _tmp$4 = b; _tmp$5 = $ifaceNil; data = _tmp$4; err = _tmp$5; $s = -1; return [data, err]; /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [data, err]; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: mmapper.ptr.prototype.Mmap }; } $f._key = _key; $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.addr = addr; $f.b = b; $f.data = data; $f.err = err; $f.errno = errno; $f.fd = fd; $f.flags = flags; $f.length = length; $f.m = m; $f.offset = offset; $f.p = p; $f.prot = prot; $f.sl = sl; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; mmapper.prototype.Mmap = function(fd, offset, length, prot, flags) { return this.$val.Mmap(fd, offset, length, prot, flags); }; mmapper.ptr.prototype.Munmap = function(data) { var _entry, _r, b, data, err, errno, m, p, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _r = $f._r; b = $f.b; data = $f.data; err = $f.err; errno = $f.errno; m = $f.m; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); err = $ifaceNil; m = this; if ((data.$length === 0) || !((data.$length === data.$capacity))) { err = new Errno(22); $s = -1; return err; } p = $indexPtr(data.$array, data.$offset + (data.$capacity - 1 >> 0), ptrType$2); $r = m.Mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $deferred.push([$methodVal(m.Mutex, "Unlock"), []]); b = (_entry = m.active[ptrType$2.keyFor(p)], _entry !== undefined ? _entry.v : sliceType.nil); if (b === sliceType.nil || !($indexPtr(b.$array, b.$offset + 0, ptrType$2) === $indexPtr(data.$array, data.$offset + 0, ptrType$2))) { err = new Errno(22); $s = -1; return err; } _r = m.munmap((($sliceToArray(b))), ((b.$length >>> 0))); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } errno = _r; if (!($interfaceIsEqual(errno, $ifaceNil))) { err = errno; $s = -1; return err; } delete m.active[ptrType$2.keyFor(p)]; err = $ifaceNil; $s = -1; return err; /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: mmapper.ptr.prototype.Munmap }; } $f._entry = _entry; $f._r = _r; $f.b = b; $f.data = data; $f.err = err; $f.errno = errno; $f.m = m; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; mmapper.prototype.Munmap = function(data) { return this.$val.Munmap(data); }; Errno.prototype.Error = function() { var e, s; e = this.$val; if (0 <= ((e >> 0)) && ((e >> 0)) < 106) { s = ((e < 0 || e >= errors$1.length) ? ($throwRuntimeError("index out of range"), undefined) : errors$1[e]); if (!(s === "")) { return s; } } return "errno " + itoa(((e >> 0))); }; $ptrType(Errno).prototype.Error = function() { return new Errno(this.$get()).Error(); }; Errno.prototype.Temporary = function() { var e; e = this.$val; return (e === 4) || (e === 24) || (e === 54) || (e === 53) || new Errno(e).Timeout(); }; $ptrType(Errno).prototype.Temporary = function() { return new Errno(this.$get()).Temporary(); }; Errno.prototype.Timeout = function() { var e; e = this.$val; return (e === 35) || (e === 35) || (e === 60); }; $ptrType(Errno).prototype.Timeout = function() { return new Errno(this.$get()).Timeout(); }; errnoErr = function(e) { var _1, e; _1 = e; if (_1 === (0)) { return $ifaceNil; } else if (_1 === (35)) { return errEAGAIN; } else if (_1 === (22)) { return errEINVAL; } else if (_1 === (2)) { return errENOENT; } return new Errno(e); }; Read = function(fd, p) { var _tuple, err, fd, n, p; n = 0; err = $ifaceNil; _tuple = read(fd, p); n = _tuple[0]; err = _tuple[1]; if (false) { if (n > 0) { race.WriteRange(($sliceToArray(p)), n); } if ($interfaceIsEqual(err, $ifaceNil)) { race.Acquire(((ioSync$24ptr || (ioSync$24ptr = new ptrType$20(function() { return ioSync; }, function($v) { ioSync = $v; }))))); } } if (false && n > 0) { msanWrite(($sliceToArray(p)), n); } return [n, err]; }; $pkg.Read = Read; Write = function(fd, p) { var _tuple, err, fd, n, p; n = 0; err = $ifaceNil; if (false) { race.ReleaseMerge(((ioSync$24ptr || (ioSync$24ptr = new ptrType$20(function() { return ioSync; }, function($v) { ioSync = $v; }))))); } _tuple = write(fd, p); n = _tuple[0]; err = _tuple[1]; if (false && n > 0) { race.ReadRange(($sliceToArray(p)), n); } if (false && n > 0) { msanRead(($sliceToArray(p)), n); } return [n, err]; }; $pkg.Write = Write; Recvfrom = function(fd, p, flags) { var _tuple, _tuple$1, err, fd, flags, from, len, len$24ptr, n, p, rsa; n = 0; from = $ifaceNil; err = $ifaceNil; rsa = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, 0, arrayType$4.zero()), arrayType$5.zero()); len = 108; _tuple = recvfrom(fd, p, flags, rsa, (len$24ptr || (len$24ptr = new ptrType$17(function() { return len; }, function($v) { len = $v; })))); n = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { return [n, from, err]; } if (!((rsa.Addr.Family === 0))) { _tuple$1 = anyToSockaddr(rsa); from = _tuple$1[0]; err = _tuple$1[1]; } return [n, from, err]; }; $pkg.Recvfrom = Recvfrom; Sendto = function(fd, p, flags, to) { var _r, _tuple, err, fd, flags, n, p, ptr, to, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; fd = $f.fd; flags = $f.flags; n = $f.n; p = $f.p; ptr = $f.ptr; to = $f.to; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: err = $ifaceNil; _r = to.sockaddr(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ptr = _tuple[0]; n = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { err = err; $s = -1; return err; } err = sendto(fd, p, flags, ptr, n); $s = -1; return err; /* */ } return; } if ($f === undefined) { $f = { $blk: Sendto }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.fd = fd; $f.flags = flags; $f.n = n; $f.p = p; $f.ptr = ptr; $f.to = to; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Sendto = Sendto; SetsockoptByte = function(fd, level, opt, value) { var err, fd, level, opt, value, value$24ptr; err = $ifaceNil; err = setsockopt(fd, level, opt, ((value$24ptr || (value$24ptr = new ptrType$2(function() { return value; }, function($v) { value = $v; })))), 1); return err; }; $pkg.SetsockoptByte = SetsockoptByte; SetsockoptInt = function(fd, level, opt, value) { var err, fd, level, n, n$24ptr, opt, value; err = $ifaceNil; n = ((value >> 0)); err = setsockopt(fd, level, opt, ((n$24ptr || (n$24ptr = new ptrType$21(function() { return n; }, function($v) { n = $v; })))), 4); return err; }; $pkg.SetsockoptInt = SetsockoptInt; SetsockoptInet4Addr = function(fd, level, opt, value) { var err, fd, level, opt, value; err = $ifaceNil; err = setsockopt(fd, level, opt, ($sliceToArray(new sliceType(value))), 4); return err; }; $pkg.SetsockoptInet4Addr = SetsockoptInet4Addr; SetsockoptIPMreq = function(fd, level, opt, mreq) { var _array, _struct, _view, err, fd, level, mreq, opt; err = $ifaceNil; _array = new Uint8Array(8); err = setsockopt(fd, level, opt, (_array), 8); _struct = mreq, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Multiaddr = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 0, _array.buffer.byteLength)), _struct.Interface = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 4, _array.buffer.byteLength)); return err; }; $pkg.SetsockoptIPMreq = SetsockoptIPMreq; SetsockoptIPv6Mreq = function(fd, level, opt, mreq) { var _array, _struct, _view, err, fd, level, mreq, opt; err = $ifaceNil; _array = new Uint8Array(20); err = setsockopt(fd, level, opt, (_array), 20); _struct = mreq, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Multiaddr = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 0, _array.buffer.byteLength)), _struct.Interface = _view.getUint32(16, true); return err; }; $pkg.SetsockoptIPv6Mreq = SetsockoptIPv6Mreq; SetsockoptLinger = function(fd, level, opt, l) { var _array, _struct, _view, err, fd, l, level, opt; err = $ifaceNil; _array = new Uint8Array(8); err = setsockopt(fd, level, opt, (_array), 8); _struct = l, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Onoff = _view.getInt32(0, true), _struct.Linger = _view.getInt32(4, true); return err; }; $pkg.SetsockoptLinger = SetsockoptLinger; accept = function(s, rsa, addrlen) { var _array, _struct, _tuple, _view, addrlen, e1, err, fd, r0, rsa, s; fd = 0; err = $ifaceNil; _array = new Uint8Array(108); _tuple = Syscall(30, ((s >>> 0)), ((_array)), ((addrlen))); _struct = rsa, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Len = _view.getUint8(0, true), _struct.Addr.Family = _view.getUint8(1, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); r0 = _tuple[0]; e1 = _tuple[2]; fd = ((r0 >> 0)); if (!((e1 === 0))) { err = errnoErr(e1); } return [fd, err]; }; setsockopt = function(s, level, name, val, vallen) { var _tuple, e1, err, level, name, s, val, vallen; err = $ifaceNil; _tuple = Syscall6(105, ((s >>> 0)), ((level >>> 0)), ((name >>> 0)), (val), (vallen), 0); e1 = _tuple[2]; if (!((e1 === 0))) { err = errnoErr(e1); } return err; }; Shutdown = function(s, how) { var _tuple, e1, err, how, s; err = $ifaceNil; _tuple = Syscall(134, ((s >>> 0)), ((how >>> 0)), 0); e1 = _tuple[2]; if (!((e1 === 0))) { err = errnoErr(e1); } return err; }; $pkg.Shutdown = Shutdown; recvfrom = function(fd, p, flags, from, fromlen) { var _array, _p0, _struct, _tuple, _view, e1, err, fd, flags, from, fromlen, n, p, r0; n = 0; err = $ifaceNil; _p0 = 0; if (p.$length > 0) { _p0 = ($sliceToArray(p)); } else { _p0 = (new Uint8Array(0)); } _array = new Uint8Array(108); _tuple = Syscall6(29, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((flags >>> 0)), ((_array)), ((fromlen))); _struct = from, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Len = _view.getUint8(0, true), _struct.Addr.Family = _view.getUint8(1, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); r0 = _tuple[0]; e1 = _tuple[2]; n = ((r0 >> 0)); if (!((e1 === 0))) { err = errnoErr(e1); } return [n, err]; }; sendto = function(s, buf, flags, to, addrlen) { var _p0, _tuple, addrlen, buf, e1, err, flags, s, to; err = $ifaceNil; _p0 = 0; if (buf.$length > 0) { _p0 = ($sliceToArray(buf)); } else { _p0 = (new Uint8Array(0)); } _tuple = Syscall6(133, ((s >>> 0)), (_p0), ((buf.$length >>> 0)), ((flags >>> 0)), (to), ((addrlen >>> 0))); e1 = _tuple[2]; if (!((e1 === 0))) { err = errnoErr(e1); } return err; }; recvmsg = function(s, msg, flags) { var _array, _struct, _tuple, _view, e1, err, flags, msg, n, r0, s; n = 0; err = $ifaceNil; _array = new Uint8Array(36); _tuple = Syscall(27, ((s >>> 0)), ((_array)), ((flags >>> 0))); _struct = msg, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Namelen = _view.getUint32(4, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct.Iovlen = _view.getInt32(16, true), _struct.Pad_cgo_1 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 20, _array.buffer.byteLength)), _struct.Controllen = _view.getUint32(28, true), _struct.Flags = _view.getInt32(32, true); r0 = _tuple[0]; e1 = _tuple[2]; n = ((r0 >> 0)); if (!((e1 === 0))) { err = errnoErr(e1); } return [n, err]; }; sendmsg = function(s, msg, flags) { var _array, _struct, _tuple, _view, e1, err, flags, msg, n, r0, s; n = 0; err = $ifaceNil; _array = new Uint8Array(36); _tuple = Syscall(28, ((s >>> 0)), ((_array)), ((flags >>> 0))); _struct = msg, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Namelen = _view.getUint32(4, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct.Iovlen = _view.getInt32(16, true), _struct.Pad_cgo_1 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 20, _array.buffer.byteLength)), _struct.Controllen = _view.getUint32(28, true), _struct.Flags = _view.getInt32(32, true); r0 = _tuple[0]; e1 = _tuple[2]; n = ((r0 >> 0)); if (!((e1 === 0))) { err = errnoErr(e1); } return [n, err]; }; fcntl = function(fd, cmd, arg) { var _tuple, arg, cmd, e1, err, fd, r0, val; val = 0; err = $ifaceNil; _tuple = Syscall(92, ((fd >>> 0)), ((cmd >>> 0)), ((arg >>> 0))); r0 = _tuple[0]; e1 = _tuple[2]; val = ((r0 >> 0)); if (!((e1 === 0))) { err = errnoErr(e1); } return [val, err]; }; Chmod = function(path, mode) { var _p0, _tuple, _tuple$1, e1, err, mode, path; err = $ifaceNil; _p0 = ptrType$2.nil; _tuple = BytePtrFromString(path); _p0 = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { return err; } _tuple$1 = Syscall(15, ((_p0)), ((mode >>> 0)), 0); e1 = _tuple$1[2]; if (!((e1 === 0))) { err = errnoErr(e1); } return err; }; $pkg.Chmod = Chmod; Close = function(fd) { var _tuple, e1, err, fd; err = $ifaceNil; _tuple = Syscall(6, ((fd >>> 0)), 0, 0); e1 = _tuple[2]; if (!((e1 === 0))) { err = errnoErr(e1); } return err; }; $pkg.Close = Close; Exit = function(code) { var code; Syscall(1, ((code >>> 0)), 0, 0); return; }; $pkg.Exit = Exit; Fchdir = function(fd) { var _tuple, e1, err, fd; err = $ifaceNil; _tuple = Syscall(13, ((fd >>> 0)), 0, 0); e1 = _tuple[2]; if (!((e1 === 0))) { err = errnoErr(e1); } return err; }; $pkg.Fchdir = Fchdir; Fchmod = function(fd, mode) { var _tuple, e1, err, fd, mode; err = $ifaceNil; _tuple = Syscall(124, ((fd >>> 0)), ((mode >>> 0)), 0); e1 = _tuple[2]; if (!((e1 === 0))) { err = errnoErr(e1); } return err; }; $pkg.Fchmod = Fchmod; Fchown = function(fd, uid, gid) { var _tuple, e1, err, fd, gid, uid; err = $ifaceNil; _tuple = Syscall(123, ((fd >>> 0)), ((uid >>> 0)), ((gid >>> 0))); e1 = _tuple[2]; if (!((e1 === 0))) { err = errnoErr(e1); } return err; }; $pkg.Fchown = Fchown; Fstat = function(fd, stat) { var _array, _struct, _tuple, _view, e1, err, fd, stat; err = $ifaceNil; _array = new Uint8Array(144); _tuple = Syscall(339, ((fd >>> 0)), ((_array)), 0); _struct = stat, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Dev = _view.getInt32(0, true), _struct.Mode = _view.getUint16(4, true), _struct.Nlink = _view.getUint16(6, true), _struct.Ino = new $Uint64(_view.getUint32(12, true), _view.getUint32(8, true)), _struct.Uid = _view.getUint32(16, true), _struct.Gid = _view.getUint32(20, true), _struct.Rdev = _view.getInt32(24, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 28, _array.buffer.byteLength)), _struct.Atimespec.Sec = new $Int64(_view.getUint32(36, true), _view.getUint32(32, true)), _struct.Atimespec.Nsec = new $Int64(_view.getUint32(44, true), _view.getUint32(40, true)), _struct.Mtimespec.Sec = new $Int64(_view.getUint32(52, true), _view.getUint32(48, true)), _struct.Mtimespec.Nsec = new $Int64(_view.getUint32(60, true), _view.getUint32(56, true)), _struct.Ctimespec.Sec = new $Int64(_view.getUint32(68, true), _view.getUint32(64, true)), _struct.Ctimespec.Nsec = new $Int64(_view.getUint32(76, true), _view.getUint32(72, true)), _struct.Birthtimespec.Sec = new $Int64(_view.getUint32(84, true), _view.getUint32(80, true)), _struct.Birthtimespec.Nsec = new $Int64(_view.getUint32(92, true), _view.getUint32(88, true)), _struct.Size = new $Int64(_view.getUint32(100, true), _view.getUint32(96, true)), _struct.Blocks = new $Int64(_view.getUint32(108, true), _view.getUint32(104, true)), _struct.Blksize = _view.getInt32(112, true), _struct.Flags = _view.getUint32(116, true), _struct.Gen = _view.getUint32(120, true), _struct.Lspare = _view.getInt32(124, true), _struct.Qspare = new ($nativeArray($kindInt64))(_array.buffer, $min(_array.byteOffset + 128, _array.buffer.byteLength)); e1 = _tuple[2]; if (!((e1 === 0))) { err = errnoErr(e1); } return err; }; $pkg.Fstat = Fstat; Fsync = function(fd) { var _tuple, e1, err, fd; err = $ifaceNil; _tuple = Syscall(95, ((fd >>> 0)), 0, 0); e1 = _tuple[2]; if (!((e1 === 0))) { err = errnoErr(e1); } return err; }; $pkg.Fsync = Fsync; Ftruncate = function(fd, length) { var _tuple, e1, err, fd, length; err = $ifaceNil; _tuple = Syscall(201, ((fd >>> 0)), ((length.$low >>> 0)), 0); e1 = _tuple[2]; if (!((e1 === 0))) { err = errnoErr(e1); } return err; }; $pkg.Ftruncate = Ftruncate; Getdirentries = function(fd, buf, basep) { var _p0, _tuple, basep, buf, e1, err, fd, n, r0; n = 0; err = $ifaceNil; _p0 = 0; if (buf.$length > 0) { _p0 = ($sliceToArray(buf)); } else { _p0 = (new Uint8Array(0)); } _tuple = Syscall6(344, ((fd >>> 0)), (_p0), ((buf.$length >>> 0)), ((basep)), 0, 0); r0 = _tuple[0]; e1 = _tuple[2]; n = ((r0 >> 0)); if (!((e1 === 0))) { err = errnoErr(e1); } return [n, err]; }; $pkg.Getdirentries = Getdirentries; Lstat = function(path, stat) { var _array, _p0, _struct, _tuple, _tuple$1, _view, e1, err, path, stat; err = $ifaceNil; _p0 = ptrType$2.nil; _tuple = BytePtrFromString(path); _p0 = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { return err; } _array = new Uint8Array(144); _tuple$1 = Syscall(340, ((_p0)), ((_array)), 0); _struct = stat, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Dev = _view.getInt32(0, true), _struct.Mode = _view.getUint16(4, true), _struct.Nlink = _view.getUint16(6, true), _struct.Ino = new $Uint64(_view.getUint32(12, true), _view.getUint32(8, true)), _struct.Uid = _view.getUint32(16, true), _struct.Gid = _view.getUint32(20, true), _struct.Rdev = _view.getInt32(24, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 28, _array.buffer.byteLength)), _struct.Atimespec.Sec = new $Int64(_view.getUint32(36, true), _view.getUint32(32, true)), _struct.Atimespec.Nsec = new $Int64(_view.getUint32(44, true), _view.getUint32(40, true)), _struct.Mtimespec.Sec = new $Int64(_view.getUint32(52, true), _view.getUint32(48, true)), _struct.Mtimespec.Nsec = new $Int64(_view.getUint32(60, true), _view.getUint32(56, true)), _struct.Ctimespec.Sec = new $Int64(_view.getUint32(68, true), _view.getUint32(64, true)), _struct.Ctimespec.Nsec = new $Int64(_view.getUint32(76, true), _view.getUint32(72, true)), _struct.Birthtimespec.Sec = new $Int64(_view.getUint32(84, true), _view.getUint32(80, true)), _struct.Birthtimespec.Nsec = new $Int64(_view.getUint32(92, true), _view.getUint32(88, true)), _struct.Size = new $Int64(_view.getUint32(100, true), _view.getUint32(96, true)), _struct.Blocks = new $Int64(_view.getUint32(108, true), _view.getUint32(104, true)), _struct.Blksize = _view.getInt32(112, true), _struct.Flags = _view.getUint32(116, true), _struct.Gen = _view.getUint32(120, true), _struct.Lspare = _view.getInt32(124, true), _struct.Qspare = new ($nativeArray($kindInt64))(_array.buffer, $min(_array.byteOffset + 128, _array.buffer.byteLength)); e1 = _tuple$1[2]; if (!((e1 === 0))) { err = errnoErr(e1); } return err; }; $pkg.Lstat = Lstat; Open = function(path, mode, perm) { var _p0, _tuple, _tuple$1, e1, err, fd, mode, path, perm, r0; fd = 0; err = $ifaceNil; _p0 = ptrType$2.nil; _tuple = BytePtrFromString(path); _p0 = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { return [fd, err]; } _tuple$1 = Syscall(5, ((_p0)), ((mode >>> 0)), ((perm >>> 0))); r0 = _tuple$1[0]; e1 = _tuple$1[2]; fd = ((r0 >> 0)); if (!((e1 === 0))) { err = errnoErr(e1); } return [fd, err]; }; $pkg.Open = Open; Pread = function(fd, p, offset) { var _p0, _tuple, e1, err, fd, n, offset, p, r0; n = 0; err = $ifaceNil; _p0 = 0; if (p.$length > 0) { _p0 = ($sliceToArray(p)); } else { _p0 = (new Uint8Array(0)); } _tuple = Syscall6(153, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((offset.$low >>> 0)), 0, 0); r0 = _tuple[0]; e1 = _tuple[2]; n = ((r0 >> 0)); if (!((e1 === 0))) { err = errnoErr(e1); } return [n, err]; }; $pkg.Pread = Pread; Pwrite = function(fd, p, offset) { var _p0, _tuple, e1, err, fd, n, offset, p, r0; n = 0; err = $ifaceNil; _p0 = 0; if (p.$length > 0) { _p0 = ($sliceToArray(p)); } else { _p0 = (new Uint8Array(0)); } _tuple = Syscall6(154, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((offset.$low >>> 0)), 0, 0); r0 = _tuple[0]; e1 = _tuple[2]; n = ((r0 >> 0)); if (!((e1 === 0))) { err = errnoErr(e1); } return [n, err]; }; $pkg.Pwrite = Pwrite; read = function(fd, p) { var _p0, _tuple, e1, err, fd, n, p, r0; n = 0; err = $ifaceNil; _p0 = 0; if (p.$length > 0) { _p0 = ($sliceToArray(p)); } else { _p0 = (new Uint8Array(0)); } _tuple = Syscall(3, ((fd >>> 0)), (_p0), ((p.$length >>> 0))); r0 = _tuple[0]; e1 = _tuple[2]; n = ((r0 >> 0)); if (!((e1 === 0))) { err = errnoErr(e1); } return [n, err]; }; Seek = function(fd, offset, whence) { var _tuple, e1, err, fd, newoffset, offset, r0, whence; newoffset = new $Int64(0, 0); err = $ifaceNil; _tuple = Syscall(199, ((fd >>> 0)), ((offset.$low >>> 0)), ((whence >>> 0))); r0 = _tuple[0]; e1 = _tuple[2]; newoffset = (new $Int64(0, r0.constructor === Number ? r0 : 1)); if (!((e1 === 0))) { err = errnoErr(e1); } return [newoffset, err]; }; $pkg.Seek = Seek; Stat = function(path, stat) { var _array, _p0, _struct, _tuple, _tuple$1, _view, e1, err, path, stat; err = $ifaceNil; _p0 = ptrType$2.nil; _tuple = BytePtrFromString(path); _p0 = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { return err; } _array = new Uint8Array(144); _tuple$1 = Syscall(338, ((_p0)), ((_array)), 0); _struct = stat, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Dev = _view.getInt32(0, true), _struct.Mode = _view.getUint16(4, true), _struct.Nlink = _view.getUint16(6, true), _struct.Ino = new $Uint64(_view.getUint32(12, true), _view.getUint32(8, true)), _struct.Uid = _view.getUint32(16, true), _struct.Gid = _view.getUint32(20, true), _struct.Rdev = _view.getInt32(24, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 28, _array.buffer.byteLength)), _struct.Atimespec.Sec = new $Int64(_view.getUint32(36, true), _view.getUint32(32, true)), _struct.Atimespec.Nsec = new $Int64(_view.getUint32(44, true), _view.getUint32(40, true)), _struct.Mtimespec.Sec = new $Int64(_view.getUint32(52, true), _view.getUint32(48, true)), _struct.Mtimespec.Nsec = new $Int64(_view.getUint32(60, true), _view.getUint32(56, true)), _struct.Ctimespec.Sec = new $Int64(_view.getUint32(68, true), _view.getUint32(64, true)), _struct.Ctimespec.Nsec = new $Int64(_view.getUint32(76, true), _view.getUint32(72, true)), _struct.Birthtimespec.Sec = new $Int64(_view.getUint32(84, true), _view.getUint32(80, true)), _struct.Birthtimespec.Nsec = new $Int64(_view.getUint32(92, true), _view.getUint32(88, true)), _struct.Size = new $Int64(_view.getUint32(100, true), _view.getUint32(96, true)), _struct.Blocks = new $Int64(_view.getUint32(108, true), _view.getUint32(104, true)), _struct.Blksize = _view.getInt32(112, true), _struct.Flags = _view.getUint32(116, true), _struct.Gen = _view.getUint32(120, true), _struct.Lspare = _view.getInt32(124, true), _struct.Qspare = new ($nativeArray($kindInt64))(_array.buffer, $min(_array.byteOffset + 128, _array.buffer.byteLength)); e1 = _tuple$1[2]; if (!((e1 === 0))) { err = errnoErr(e1); } return err; }; $pkg.Stat = Stat; write = function(fd, p) { var _p0, _tuple, e1, err, fd, n, p, r0; n = 0; err = $ifaceNil; _p0 = 0; if (p.$length > 0) { _p0 = ($sliceToArray(p)); } else { _p0 = (new Uint8Array(0)); } _tuple = Syscall(4, ((fd >>> 0)), (_p0), ((p.$length >>> 0))); r0 = _tuple[0]; e1 = _tuple[2]; n = ((r0 >> 0)); if (!((e1 === 0))) { err = errnoErr(e1); } return [n, err]; }; mmap = function(addr, length, prot, flag, fd, pos) { var _tuple, addr, e1, err, fd, flag, length, pos, prot, r0, ret; ret = 0; err = $ifaceNil; _tuple = Syscall6(197, (addr), (length), ((prot >>> 0)), ((flag >>> 0)), ((fd >>> 0)), ((pos.$low >>> 0))); r0 = _tuple[0]; e1 = _tuple[2]; ret = (r0); if (!((e1 === 0))) { err = errnoErr(e1); } return [ret, err]; }; munmap = function(addr, length) { var _tuple, addr, e1, err, length; err = $ifaceNil; _tuple = Syscall(73, (addr), (length), 0); e1 = _tuple[2]; if (!((e1 === 0))) { err = errnoErr(e1); } return err; }; ptrType$11.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; ptrType$27.methods = [{prop: "Mmap", name: "Mmap", pkg: "", typ: $funcType([$Int, $Int64, $Int, $Int, $Int], [sliceType, $error], false)}, {prop: "Munmap", name: "Munmap", pkg: "", typ: $funcType([sliceType], [$error], false)}]; Errno.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; ptrType$28.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; ptrType$29.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; ptrType$30.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; ptrType$31.methods = [{prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64, $Int64], false)}, {prop: "Nano", name: "Nano", pkg: "", typ: $funcType([], [$Int64], false)}]; ptrType$18.methods = [{prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}]; ptrType$32.methods = [{prop: "SetControllen", name: "SetControllen", pkg: "", typ: $funcType([$Int], [], false)}]; SockaddrDatalink.init("syscall", [{prop: "Len", name: "Len", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Index", name: "Index", anonymous: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Type", name: "Type", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Nlen", name: "Nlen", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Alen", name: "Alen", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Slen", name: "Slen", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Data", name: "Data", anonymous: false, exported: true, typ: arrayType$3, tag: ""}, {prop: "raw", name: "raw", anonymous: false, exported: false, typ: RawSockaddrDatalink, tag: ""}]); mmapper.init("syscall", [{prop: "Mutex", name: "Mutex", anonymous: true, exported: true, typ: sync.Mutex, tag: ""}, {prop: "active", name: "active", anonymous: false, exported: false, typ: mapType, tag: ""}, {prop: "mmap", name: "mmap", anonymous: false, exported: false, typ: funcType$2, tag: ""}, {prop: "munmap", name: "munmap", anonymous: false, exported: false, typ: funcType$3, tag: ""}]); Sockaddr.init([{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]); SockaddrInet4.init("syscall", [{prop: "Port", name: "Port", anonymous: false, exported: true, typ: $Int, tag: ""}, {prop: "Addr", name: "Addr", anonymous: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "raw", name: "raw", anonymous: false, exported: false, typ: RawSockaddrInet4, tag: ""}]); SockaddrInet6.init("syscall", [{prop: "Port", name: "Port", anonymous: false, exported: true, typ: $Int, tag: ""}, {prop: "ZoneId", name: "ZoneId", anonymous: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Addr", name: "Addr", anonymous: false, exported: true, typ: arrayType, tag: ""}, {prop: "raw", name: "raw", anonymous: false, exported: false, typ: RawSockaddrInet6, tag: ""}]); SockaddrUnix.init("syscall", [{prop: "Name", name: "Name", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "raw", name: "raw", anonymous: false, exported: false, typ: RawSockaddrUnix, tag: ""}]); Timespec.init("", [{prop: "Sec", name: "Sec", anonymous: false, exported: true, typ: $Int64, tag: ""}, {prop: "Nsec", name: "Nsec", anonymous: false, exported: true, typ: $Int64, tag: ""}]); Stat_t.init("", [{prop: "Dev", name: "Dev", anonymous: false, exported: true, typ: $Int32, tag: ""}, {prop: "Mode", name: "Mode", anonymous: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Nlink", name: "Nlink", anonymous: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Ino", name: "Ino", anonymous: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Uid", name: "Uid", anonymous: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Gid", name: "Gid", anonymous: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Rdev", name: "Rdev", anonymous: false, exported: true, typ: $Int32, tag: ""}, {prop: "Pad_cgo_0", name: "Pad_cgo_0", anonymous: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Atimespec", name: "Atimespec", anonymous: false, exported: true, typ: Timespec, tag: ""}, {prop: "Mtimespec", name: "Mtimespec", anonymous: false, exported: true, typ: Timespec, tag: ""}, {prop: "Ctimespec", name: "Ctimespec", anonymous: false, exported: true, typ: Timespec, tag: ""}, {prop: "Birthtimespec", name: "Birthtimespec", anonymous: false, exported: true, typ: Timespec, tag: ""}, {prop: "Size", name: "Size", anonymous: false, exported: true, typ: $Int64, tag: ""}, {prop: "Blocks", name: "Blocks", anonymous: false, exported: true, typ: $Int64, tag: ""}, {prop: "Blksize", name: "Blksize", anonymous: false, exported: true, typ: $Int32, tag: ""}, {prop: "Flags", name: "Flags", anonymous: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Gen", name: "Gen", anonymous: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Lspare", name: "Lspare", anonymous: false, exported: true, typ: $Int32, tag: ""}, {prop: "Qspare", name: "Qspare", anonymous: false, exported: true, typ: arrayType$15, tag: ""}]); RawSockaddrInet4.init("", [{prop: "Len", name: "Len", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Port", name: "Port", anonymous: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Addr", name: "Addr", anonymous: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Zero", name: "Zero", anonymous: false, exported: true, typ: arrayType$6, tag: ""}]); RawSockaddrInet6.init("", [{prop: "Len", name: "Len", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Port", name: "Port", anonymous: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Flowinfo", name: "Flowinfo", anonymous: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Addr", name: "Addr", anonymous: false, exported: true, typ: arrayType, tag: ""}, {prop: "Scope_id", name: "Scope_id", anonymous: false, exported: true, typ: $Uint32, tag: ""}]); RawSockaddrUnix.init("", [{prop: "Len", name: "Len", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Path", name: "Path", anonymous: false, exported: true, typ: arrayType$11, tag: ""}]); RawSockaddrDatalink.init("", [{prop: "Len", name: "Len", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Index", name: "Index", anonymous: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Type", name: "Type", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Nlen", name: "Nlen", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Alen", name: "Alen", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Slen", name: "Slen", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Data", name: "Data", anonymous: false, exported: true, typ: arrayType$3, tag: ""}]); RawSockaddr.init("", [{prop: "Len", name: "Len", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", anonymous: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Data", name: "Data", anonymous: false, exported: true, typ: arrayType$4, tag: ""}]); RawSockaddrAny.init("", [{prop: "Addr", name: "Addr", anonymous: false, exported: true, typ: RawSockaddr, tag: ""}, {prop: "Pad", name: "Pad", anonymous: false, exported: true, typ: arrayType$5, tag: ""}]); Linger.init("", [{prop: "Onoff", name: "Onoff", anonymous: false, exported: true, typ: $Int32, tag: ""}, {prop: "Linger", name: "Linger", anonymous: false, exported: true, typ: $Int32, tag: ""}]); Iovec.init("", [{prop: "Base", name: "Base", anonymous: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Len", name: "Len", anonymous: false, exported: true, typ: $Uint64, tag: ""}]); IPMreq.init("", [{prop: "Multiaddr", name: "Multiaddr", anonymous: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Interface", name: "Interface", anonymous: false, exported: true, typ: arrayType$1, tag: ""}]); IPv6Mreq.init("", [{prop: "Multiaddr", name: "Multiaddr", anonymous: false, exported: true, typ: arrayType, tag: ""}, {prop: "Interface", name: "Interface", anonymous: false, exported: true, typ: $Uint32, tag: ""}]); Msghdr.init("", [{prop: "Name", name: "Name", anonymous: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Namelen", name: "Namelen", anonymous: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Pad_cgo_0", name: "Pad_cgo_0", anonymous: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Iov", name: "Iov", anonymous: false, exported: true, typ: ptrType$18, tag: ""}, {prop: "Iovlen", name: "Iovlen", anonymous: false, exported: true, typ: $Int32, tag: ""}, {prop: "Pad_cgo_1", name: "Pad_cgo_1", anonymous: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Control", name: "Control", anonymous: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Controllen", name: "Controllen", anonymous: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Flags", name: "Flags", anonymous: false, exported: true, typ: $Int32, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = race.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } lineBuffer = sliceType.nil; syscallModule = null; freebsdConfArch = ""; ioSync = new $Int64(0, 0); warningPrinted = false; alreadyTriedToLoad = false; minusOne = -1; envs = runtime_envs(); $pkg.Stdin = 0; $pkg.Stdout = 1; $pkg.Stderr = 2; errEAGAIN = new Errno(35); errEINVAL = new Errno(22); errENOENT = new Errno(2); errors$1 = $toNativeArray($kindString, ["", "operation not permitted", "no such file or directory", "no such process", "interrupted system call", "input/output error", "device not configured", "argument list too long", "exec format error", "bad file descriptor", "no child processes", "resource deadlock avoided", "cannot allocate memory", "permission denied", "bad address", "block device required", "resource busy", "file exists", "cross-device link", "operation not supported by device", "not a directory", "is a directory", "invalid argument", "too many open files in system", "too many open files", "inappropriate ioctl for device", "text file busy", "file too large", "no space left on device", "illegal seek", "read-only file system", "too many links", "broken pipe", "numerical argument out of domain", "result too large", "resource temporarily unavailable", "operation now in progress", "operation already in progress", "socket operation on non-socket", "destination address required", "message too long", "protocol wrong type for socket", "protocol not available", "protocol not supported", "socket type not supported", "operation not supported", "protocol family not supported", "address family not supported by protocol family", "address already in use", "can't assign requested address", "network is down", "network is unreachable", "network dropped connection on reset", "software caused connection abort", "connection reset by peer", "no buffer space available", "socket is already connected", "socket is not connected", "can't send after socket shutdown", "too many references: can't splice", "operation timed out", "connection refused", "too many levels of symbolic links", "file name too long", "host is down", "no route to host", "directory not empty", "too many processes", "too many users", "disc quota exceeded", "stale NFS file handle", "too many levels of remote in path", "RPC struct is bad", "RPC version wrong", "RPC prog. not avail", "program version wrong", "bad procedure for program", "no locks available", "function not implemented", "inappropriate file type or format", "authentication error", "need authenticator", "device power is off", "device error", "value too large to be stored in data type", "bad executable (or shared library)", "bad CPU type in executable", "shared library version mismatch", "malformed Mach-o file", "operation canceled", "identifier removed", "no message of desired type", "illegal byte sequence", "attribute not found", "bad message", "EMULTIHOP (Reserved)", "no message available on STREAM", "ENOLINK (Reserved)", "no STREAM resources", "not a STREAM", "protocol error", "STREAM ioctl timeout", "operation not supported on socket", "policy not found", "state not recoverable", "previous owner died"]); mapper = new mmapper.ptr(new sync.Mutex.ptr(0, 0), {}, mmap, munmap); minRoutingSockaddrLen = rsaAlignOf(0); init(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["github.com/gopherjs/gopherjs/nosync"] = (function() { var $pkg = {}, $init, Mutex, Once, ptrType$1, funcType$1, ptrType$4; Mutex = $pkg.Mutex = $newType(0, $kindStruct, "nosync.Mutex", true, "github.com/gopherjs/gopherjs/nosync", true, function(locked_) { this.$val = this; if (arguments.length === 0) { this.locked = false; return; } this.locked = locked_; }); Once = $pkg.Once = $newType(0, $kindStruct, "nosync.Once", true, "github.com/gopherjs/gopherjs/nosync", true, function(doing_, done_) { this.$val = this; if (arguments.length === 0) { this.doing = false; this.done = false; return; } this.doing = doing_; this.done = done_; }); ptrType$1 = $ptrType(Mutex); funcType$1 = $funcType([], [], false); ptrType$4 = $ptrType(Once); Mutex.ptr.prototype.Lock = function() { var m; m = this; if (m.locked) { $panic(new $String("nosync: mutex is already locked")); } m.locked = true; }; Mutex.prototype.Lock = function() { return this.$val.Lock(); }; Mutex.ptr.prototype.Unlock = function() { var m; m = this; if (!m.locked) { $panic(new $String("nosync: unlock of unlocked mutex")); } m.locked = false; }; Mutex.prototype.Unlock = function() { return this.$val.Unlock(); }; Once.ptr.prototype.Do = function(f) { var f, o, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; o = $f.o; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); o = [o]; o[0] = this; if (o[0].done) { $s = -1; return; } if (o[0].doing) { $panic(new $String("nosync: Do called within f")); } o[0].doing = true; $deferred.push([(function(o) { return function() { o[0].doing = false; o[0].done = true; }; })(o), []]); $r = f(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Once.ptr.prototype.Do }; } $f.f = f; $f.o = o; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; Once.prototype.Do = function(f) { return this.$val.Do(f); }; ptrType$1.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; ptrType$4.methods = [{prop: "Do", name: "Do", pkg: "", typ: $funcType([funcType$1], [], false)}]; Mutex.init("github.com/gopherjs/gopherjs/nosync", [{prop: "locked", name: "locked", anonymous: false, exported: false, typ: $Bool, tag: ""}]); Once.init("github.com/gopherjs/gopherjs/nosync", [{prop: "doing", name: "doing", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "done", name: "done", anonymous: false, exported: false, typ: $Bool, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["time"] = (function() { var $pkg = {}, $init, errors, js, nosync, runtime, syscall, ParseError, Time, Month, Weekday, Duration, Location, zone, zoneTrans, sliceType, sliceType$1, ptrType, sliceType$2, arrayType, sliceType$3, arrayType$1, arrayType$2, ptrType$2, arrayType$4, ptrType$4, ptrType$7, std0x, longDayNames, shortDayNames, shortMonthNames, longMonthNames, atoiError, errBad, errLeadingInt, unitMap, months, days, daysBefore, utcLoc, utcLoc$24ptr, localLoc, localLoc$24ptr, localOnce, errLocation, badData, init, initLocal, indexByte, startsWithLowerCase, nextStdChunk, match, lookup, appendInt, atoi, formatNano, quote, isDigit, getnum, cutspace, skip, Parse, parse, parseTimeZone, parseGMT, parseNanoseconds, leadingInt, leadingFraction, ParseDuration, absWeekday, absClock, fmtFrac, fmtInt, lessThanHalf, absDate, daysIn, unixTime, Unix, isLeap, norm, Date, div, FixedZone; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; runtime = $packages["runtime"]; syscall = $packages["syscall"]; ParseError = $pkg.ParseError = $newType(0, $kindStruct, "time.ParseError", true, "time", true, function(Layout_, Value_, LayoutElem_, ValueElem_, Message_) { this.$val = this; if (arguments.length === 0) { this.Layout = ""; this.Value = ""; this.LayoutElem = ""; this.ValueElem = ""; this.Message = ""; return; } this.Layout = Layout_; this.Value = Value_; this.LayoutElem = LayoutElem_; this.ValueElem = ValueElem_; this.Message = Message_; }); Time = $pkg.Time = $newType(0, $kindStruct, "time.Time", true, "time", true, function(wall_, ext_, loc_) { this.$val = this; if (arguments.length === 0) { this.wall = new $Uint64(0, 0); this.ext = new $Int64(0, 0); this.loc = ptrType$2.nil; return; } this.wall = wall_; this.ext = ext_; this.loc = loc_; }); Month = $pkg.Month = $newType(4, $kindInt, "time.Month", true, "time", true, null); Weekday = $pkg.Weekday = $newType(4, $kindInt, "time.Weekday", true, "time", true, null); Duration = $pkg.Duration = $newType(8, $kindInt64, "time.Duration", true, "time", true, null); Location = $pkg.Location = $newType(0, $kindStruct, "time.Location", true, "time", true, function(name_, zone_, tx_, cacheStart_, cacheEnd_, cacheZone_) { this.$val = this; if (arguments.length === 0) { this.name = ""; this.zone = sliceType.nil; this.tx = sliceType$1.nil; this.cacheStart = new $Int64(0, 0); this.cacheEnd = new $Int64(0, 0); this.cacheZone = ptrType.nil; return; } this.name = name_; this.zone = zone_; this.tx = tx_; this.cacheStart = cacheStart_; this.cacheEnd = cacheEnd_; this.cacheZone = cacheZone_; }); zone = $pkg.zone = $newType(0, $kindStruct, "time.zone", true, "time", false, function(name_, offset_, isDST_) { this.$val = this; if (arguments.length === 0) { this.name = ""; this.offset = 0; this.isDST = false; return; } this.name = name_; this.offset = offset_; this.isDST = isDST_; }); zoneTrans = $pkg.zoneTrans = $newType(0, $kindStruct, "time.zoneTrans", true, "time", false, function(when_, index_, isstd_, isutc_) { this.$val = this; if (arguments.length === 0) { this.when = new $Int64(0, 0); this.index = 0; this.isstd = false; this.isutc = false; return; } this.when = when_; this.index = index_; this.isstd = isstd_; this.isutc = isutc_; }); sliceType = $sliceType(zone); sliceType$1 = $sliceType(zoneTrans); ptrType = $ptrType(zone); sliceType$2 = $sliceType($String); arrayType = $arrayType($Uint8, 20); sliceType$3 = $sliceType($Uint8); arrayType$1 = $arrayType($Uint8, 9); arrayType$2 = $arrayType($Uint8, 64); ptrType$2 = $ptrType(Location); arrayType$4 = $arrayType($Uint8, 32); ptrType$4 = $ptrType(ParseError); ptrType$7 = $ptrType(Time); init = function() { $unused(Unix(new $Int64(0, 0), new $Int64(0, 0))); }; initLocal = function() { var d, i, j, s; d = new ($global.Date)(); s = $internalize(d, $String); i = indexByte(s, 40); j = indexByte(s, 41); if ((i === -1) || (j === -1)) { localLoc.name = "UTC"; return; } localLoc.name = $substring(s, (i + 1 >> 0), j); localLoc.zone = new sliceType([new zone.ptr(localLoc.name, $imul(($parseInt(d.getTimezoneOffset()) >> 0), -60), false)]); }; indexByte = function(s, c) { var c, s; return $parseInt(s.indexOf($global.String.fromCharCode(c))) >> 0; }; startsWithLowerCase = function(str) { var c, str; if (str.length === 0) { return false; } c = str.charCodeAt(0); return 97 <= c && c <= 122; }; nextStdChunk = function(layout) { var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$6, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$65, _tmp$66, _tmp$67, _tmp$68, _tmp$69, _tmp$7, _tmp$70, _tmp$71, _tmp$72, _tmp$73, _tmp$74, _tmp$75, _tmp$76, _tmp$77, _tmp$78, _tmp$79, _tmp$8, _tmp$80, _tmp$81, _tmp$82, _tmp$83, _tmp$84, _tmp$85, _tmp$86, _tmp$9, c, ch, i, j, layout, prefix, std, std$1, suffix, x; prefix = ""; std = 0; suffix = ""; i = 0; while (true) { if (!(i < layout.length)) { break; } c = ((layout.charCodeAt(i) >> 0)); _1 = c; if (_1 === (74)) { if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Jan") { if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "January") { _tmp = $substring(layout, 0, i); _tmp$1 = 257; _tmp$2 = $substring(layout, (i + 7 >> 0)); prefix = _tmp; std = _tmp$1; suffix = _tmp$2; return [prefix, std, suffix]; } if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) { _tmp$3 = $substring(layout, 0, i); _tmp$4 = 258; _tmp$5 = $substring(layout, (i + 3 >> 0)); prefix = _tmp$3; std = _tmp$4; suffix = _tmp$5; return [prefix, std, suffix]; } } } else if (_1 === (77)) { if (layout.length >= (i + 3 >> 0)) { if ($substring(layout, i, (i + 3 >> 0)) === "Mon") { if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Monday") { _tmp$6 = $substring(layout, 0, i); _tmp$7 = 261; _tmp$8 = $substring(layout, (i + 6 >> 0)); prefix = _tmp$6; std = _tmp$7; suffix = _tmp$8; return [prefix, std, suffix]; } if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) { _tmp$9 = $substring(layout, 0, i); _tmp$10 = 262; _tmp$11 = $substring(layout, (i + 3 >> 0)); prefix = _tmp$9; std = _tmp$10; suffix = _tmp$11; return [prefix, std, suffix]; } } if ($substring(layout, i, (i + 3 >> 0)) === "MST") { _tmp$12 = $substring(layout, 0, i); _tmp$13 = 21; _tmp$14 = $substring(layout, (i + 3 >> 0)); prefix = _tmp$12; std = _tmp$13; suffix = _tmp$14; return [prefix, std, suffix]; } } } else if (_1 === (48)) { if (layout.length >= (i + 2 >> 0) && 49 <= layout.charCodeAt((i + 1 >> 0)) && layout.charCodeAt((i + 1 >> 0)) <= 54) { _tmp$15 = $substring(layout, 0, i); _tmp$16 = (x = layout.charCodeAt((i + 1 >> 0)) - 49 << 24 >>> 24, ((x < 0 || x >= std0x.length) ? ($throwRuntimeError("index out of range"), undefined) : std0x[x])); _tmp$17 = $substring(layout, (i + 2 >> 0)); prefix = _tmp$15; std = _tmp$16; suffix = _tmp$17; return [prefix, std, suffix]; } } else if (_1 === (49)) { if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 53)) { _tmp$18 = $substring(layout, 0, i); _tmp$19 = 522; _tmp$20 = $substring(layout, (i + 2 >> 0)); prefix = _tmp$18; std = _tmp$19; suffix = _tmp$20; return [prefix, std, suffix]; } _tmp$21 = $substring(layout, 0, i); _tmp$22 = 259; _tmp$23 = $substring(layout, (i + 1 >> 0)); prefix = _tmp$21; std = _tmp$22; suffix = _tmp$23; return [prefix, std, suffix]; } else if (_1 === (50)) { if (layout.length >= (i + 4 >> 0) && $substring(layout, i, (i + 4 >> 0)) === "2006") { _tmp$24 = $substring(layout, 0, i); _tmp$25 = 273; _tmp$26 = $substring(layout, (i + 4 >> 0)); prefix = _tmp$24; std = _tmp$25; suffix = _tmp$26; return [prefix, std, suffix]; } _tmp$27 = $substring(layout, 0, i); _tmp$28 = 263; _tmp$29 = $substring(layout, (i + 1 >> 0)); prefix = _tmp$27; std = _tmp$28; suffix = _tmp$29; return [prefix, std, suffix]; } else if (_1 === (95)) { if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 50)) { if (layout.length >= (i + 5 >> 0) && $substring(layout, (i + 1 >> 0), (i + 5 >> 0)) === "2006") { _tmp$30 = $substring(layout, 0, (i + 1 >> 0)); _tmp$31 = 273; _tmp$32 = $substring(layout, (i + 5 >> 0)); prefix = _tmp$30; std = _tmp$31; suffix = _tmp$32; return [prefix, std, suffix]; } _tmp$33 = $substring(layout, 0, i); _tmp$34 = 264; _tmp$35 = $substring(layout, (i + 2 >> 0)); prefix = _tmp$33; std = _tmp$34; suffix = _tmp$35; return [prefix, std, suffix]; } } else if (_1 === (51)) { _tmp$36 = $substring(layout, 0, i); _tmp$37 = 523; _tmp$38 = $substring(layout, (i + 1 >> 0)); prefix = _tmp$36; std = _tmp$37; suffix = _tmp$38; return [prefix, std, suffix]; } else if (_1 === (52)) { _tmp$39 = $substring(layout, 0, i); _tmp$40 = 525; _tmp$41 = $substring(layout, (i + 1 >> 0)); prefix = _tmp$39; std = _tmp$40; suffix = _tmp$41; return [prefix, std, suffix]; } else if (_1 === (53)) { _tmp$42 = $substring(layout, 0, i); _tmp$43 = 527; _tmp$44 = $substring(layout, (i + 1 >> 0)); prefix = _tmp$42; std = _tmp$43; suffix = _tmp$44; return [prefix, std, suffix]; } else if (_1 === (80)) { if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 77)) { _tmp$45 = $substring(layout, 0, i); _tmp$46 = 531; _tmp$47 = $substring(layout, (i + 2 >> 0)); prefix = _tmp$45; std = _tmp$46; suffix = _tmp$47; return [prefix, std, suffix]; } } else if (_1 === (112)) { if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 109)) { _tmp$48 = $substring(layout, 0, i); _tmp$49 = 532; _tmp$50 = $substring(layout, (i + 2 >> 0)); prefix = _tmp$48; std = _tmp$49; suffix = _tmp$50; return [prefix, std, suffix]; } } else if (_1 === (45)) { if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "-070000") { _tmp$51 = $substring(layout, 0, i); _tmp$52 = 28; _tmp$53 = $substring(layout, (i + 7 >> 0)); prefix = _tmp$51; std = _tmp$52; suffix = _tmp$53; return [prefix, std, suffix]; } if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "-07:00:00") { _tmp$54 = $substring(layout, 0, i); _tmp$55 = 31; _tmp$56 = $substring(layout, (i + 9 >> 0)); prefix = _tmp$54; std = _tmp$55; suffix = _tmp$56; return [prefix, std, suffix]; } if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "-0700") { _tmp$57 = $substring(layout, 0, i); _tmp$58 = 27; _tmp$59 = $substring(layout, (i + 5 >> 0)); prefix = _tmp$57; std = _tmp$58; suffix = _tmp$59; return [prefix, std, suffix]; } if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "-07:00") { _tmp$60 = $substring(layout, 0, i); _tmp$61 = 30; _tmp$62 = $substring(layout, (i + 6 >> 0)); prefix = _tmp$60; std = _tmp$61; suffix = _tmp$62; return [prefix, std, suffix]; } if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "-07") { _tmp$63 = $substring(layout, 0, i); _tmp$64 = 29; _tmp$65 = $substring(layout, (i + 3 >> 0)); prefix = _tmp$63; std = _tmp$64; suffix = _tmp$65; return [prefix, std, suffix]; } } else if (_1 === (90)) { if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "Z070000") { _tmp$66 = $substring(layout, 0, i); _tmp$67 = 23; _tmp$68 = $substring(layout, (i + 7 >> 0)); prefix = _tmp$66; std = _tmp$67; suffix = _tmp$68; return [prefix, std, suffix]; } if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "Z07:00:00") { _tmp$69 = $substring(layout, 0, i); _tmp$70 = 26; _tmp$71 = $substring(layout, (i + 9 >> 0)); prefix = _tmp$69; std = _tmp$70; suffix = _tmp$71; return [prefix, std, suffix]; } if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "Z0700") { _tmp$72 = $substring(layout, 0, i); _tmp$73 = 22; _tmp$74 = $substring(layout, (i + 5 >> 0)); prefix = _tmp$72; std = _tmp$73; suffix = _tmp$74; return [prefix, std, suffix]; } if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Z07:00") { _tmp$75 = $substring(layout, 0, i); _tmp$76 = 25; _tmp$77 = $substring(layout, (i + 6 >> 0)); prefix = _tmp$75; std = _tmp$76; suffix = _tmp$77; return [prefix, std, suffix]; } if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Z07") { _tmp$78 = $substring(layout, 0, i); _tmp$79 = 24; _tmp$80 = $substring(layout, (i + 3 >> 0)); prefix = _tmp$78; std = _tmp$79; suffix = _tmp$80; return [prefix, std, suffix]; } } else if (_1 === (46)) { if ((i + 1 >> 0) < layout.length && ((layout.charCodeAt((i + 1 >> 0)) === 48) || (layout.charCodeAt((i + 1 >> 0)) === 57))) { ch = layout.charCodeAt((i + 1 >> 0)); j = i + 1 >> 0; while (true) { if (!(j < layout.length && (layout.charCodeAt(j) === ch))) { break; } j = j + (1) >> 0; } if (!isDigit(layout, j)) { std$1 = 32; if (layout.charCodeAt((i + 1 >> 0)) === 57) { std$1 = 33; } std$1 = std$1 | ((((j - ((i + 1 >> 0)) >> 0)) << 16 >> 0)); _tmp$81 = $substring(layout, 0, i); _tmp$82 = std$1; _tmp$83 = $substring(layout, j); prefix = _tmp$81; std = _tmp$82; suffix = _tmp$83; return [prefix, std, suffix]; } } } i = i + (1) >> 0; } _tmp$84 = layout; _tmp$85 = 0; _tmp$86 = ""; prefix = _tmp$84; std = _tmp$85; suffix = _tmp$86; return [prefix, std, suffix]; }; match = function(s1, s2) { var c1, c2, i, s1, s2; i = 0; while (true) { if (!(i < s1.length)) { break; } c1 = s1.charCodeAt(i); c2 = s2.charCodeAt(i); if (!((c1 === c2))) { c1 = (c1 | (32)) >>> 0; c2 = (c2 | (32)) >>> 0; if (!((c1 === c2)) || c1 < 97 || c1 > 122) { return false; } } i = i + (1) >> 0; } return true; }; lookup = function(tab, val) { var _i, _ref, i, tab, v, val; _ref = tab; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (val.length >= v.length && match($substring(val, 0, v.length), v)) { return [i, $substring(val, v.length), $ifaceNil]; } _i++; } return [-1, val, errBad]; }; appendInt = function(b, x, width) { var _q, b, buf, i, q, u, w, width, x; u = ((x >>> 0)); if (x < 0) { b = $append(b, 45); u = ((-x >>> 0)); } buf = arrayType.zero(); i = 20; while (true) { if (!(u >= 10)) { break; } i = i - (1) >> 0; q = (_q = u / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((48 + u >>> 0) - (q * 10 >>> 0) >>> 0) << 24 >>> 24))); u = q; } i = i - (1) >> 0; ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((48 + u >>> 0) << 24 >>> 24))); w = 20 - i >> 0; while (true) { if (!(w < width)) { break; } b = $append(b, 48); w = w + (1) >> 0; } return $appendSlice(b, $subslice(new sliceType$3(buf), i)); }; atoi = function(s) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, neg, q, rem, s, x; x = 0; err = $ifaceNil; neg = false; if (!(s === "") && ((s.charCodeAt(0) === 45) || (s.charCodeAt(0) === 43))) { neg = s.charCodeAt(0) === 45; s = $substring(s, 1); } _tuple = leadingInt(s); q = _tuple[0]; rem = _tuple[1]; err = _tuple[2]; x = (((q.$low + ((q.$high >> 31) * 4294967296)) >> 0)); if (!($interfaceIsEqual(err, $ifaceNil)) || !(rem === "")) { _tmp = 0; _tmp$1 = atoiError; x = _tmp; err = _tmp$1; return [x, err]; } if (neg) { x = -x; } _tmp$2 = x; _tmp$3 = $ifaceNil; x = _tmp$2; err = _tmp$3; return [x, err]; }; formatNano = function(b, nanosec, n, trim) { var _q, _r, b, buf, n, nanosec, start, trim, u, x; u = nanosec; buf = arrayType$1.zero(); start = 9; while (true) { if (!(start > 0)) { break; } start = start - (1) >> 0; ((start < 0 || start >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[start] = ((((_r = u % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) + 48 >>> 0) << 24 >>> 24))); u = (_q = u / (10), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); } if (n > 9) { n = 9; } if (trim) { while (true) { if (!(n > 0 && ((x = n - 1 >> 0, ((x < 0 || x >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[x])) === 48))) { break; } n = n - (1) >> 0; } if (n === 0) { return b; } } b = $append(b, 46); return $appendSlice(b, $subslice(new sliceType$3(buf), 0, n)); }; Time.ptr.prototype.String = function() { var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, buf, m0, m1, m2, s, sign, t, wid, x, x$1, x$2, x$3, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; buf = $f.buf; m0 = $f.m0; m1 = $f.m1; m2 = $f.m2; s = $f.s; sign = $f.sign; t = $f.t; wid = $f.wid; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = $clone(t, Time).Format("2006-01-02 15:04:05.999999999 -0700 MST"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } s = _r; if (!((x = (x$1 = t.wall, new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { m2 = ((x$2 = t.ext, new $Uint64(x$2.$high, x$2.$low))); sign = 43; if ((x$3 = t.ext, (x$3.$high < 0 || (x$3.$high === 0 && x$3.$low < 0)))) { sign = 45; m2 = new $Uint64(-m2.$high, -m2.$low); } _tmp = $div64(m2, new $Uint64(0, 1000000000), false); _tmp$1 = $div64(m2, new $Uint64(0, 1000000000), true); m1 = _tmp; m2 = _tmp$1; _tmp$2 = $div64(m1, new $Uint64(0, 1000000000), false); _tmp$3 = $div64(m1, new $Uint64(0, 1000000000), true); m0 = _tmp$2; m1 = _tmp$3; buf = sliceType$3.nil; buf = $appendSlice(buf, " m="); buf = $append(buf, sign); wid = 0; if (!((m0.$high === 0 && m0.$low === 0))) { buf = appendInt(buf, ((m0.$low >> 0)), 0); wid = 9; } buf = appendInt(buf, ((m1.$low >> 0)), wid); buf = $append(buf, 46); buf = appendInt(buf, ((m2.$low >> 0)), 9); s = s + (($bytesToString(buf))); } $s = -1; return s; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.String }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.buf = buf; $f.m0 = m0; $f.m1 = m1; $f.m2 = m2; $f.s = s; $f.sign = sign; $f.t = t; $f.wid = wid; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.String = function() { return this.$val.String(); }; Time.ptr.prototype.Format = function(layout) { var _r, b, buf, layout, max, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; buf = $f.buf; layout = $f.layout; max = $f.max; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; b = sliceType$3.nil; max = layout.length + 10 >> 0; if (max < 64) { buf = arrayType$2.zero(); b = $subslice(new sliceType$3(buf), 0, 0); } else { b = $makeSlice(sliceType$3, 0, max); } _r = $clone(t, Time).AppendFormat(b, layout); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } b = _r; $s = -1; return ($bytesToString(b)); /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Format }; } $f._r = _r; $f.b = b; $f.buf = buf; $f.layout = layout; $f.max = max; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.Format = function(layout) { return this.$val.Format(layout); }; Time.ptr.prototype.AppendFormat = function(b, layout) { var _1, _q, _q$1, _q$2, _q$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _tuple$3, abs, absoffset, b, day, hour, hr, hr$1, layout, m, min, month, name, offset, prefix, s, sec, std, suffix, t, y, year, zone$1, zone$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _q = $f._q; _q$1 = $f._q$1; _q$2 = $f._q$2; _q$3 = $f._q$3; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; abs = $f.abs; absoffset = $f.absoffset; b = $f.b; day = $f.day; hour = $f.hour; hr = $f.hr; hr$1 = $f.hr$1; layout = $f.layout; m = $f.m; min = $f.min; month = $f.month; name = $f.name; offset = $f.offset; prefix = $f.prefix; s = $f.s; sec = $f.sec; std = $f.std; suffix = $f.suffix; t = $f.t; y = $f.y; year = $f.year; zone$1 = $f.zone$1; zone$2 = $f.zone$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = $clone(t, Time).locabs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; name = _tuple[0]; offset = _tuple[1]; abs = _tuple[2]; year = -1; month = 0; day = 0; hour = -1; min = 0; sec = 0; while (true) { if (!(!(layout === ""))) { break; } _tuple$1 = nextStdChunk(layout); prefix = _tuple$1[0]; std = _tuple$1[1]; suffix = _tuple$1[2]; if (!(prefix === "")) { b = $appendSlice(b, prefix); } if (std === 0) { break; } layout = suffix; if (year < 0 && !(((std & 256) === 0))) { _tuple$2 = absDate(abs, true); year = _tuple$2[0]; month = _tuple$2[1]; day = _tuple$2[2]; } if (hour < 0 && !(((std & 512) === 0))) { _tuple$3 = absClock(abs); hour = _tuple$3[0]; min = _tuple$3[1]; sec = _tuple$3[2]; } switch (0) { default: _1 = std & 65535; if (_1 === (274)) { y = year; if (y < 0) { y = -y; } b = appendInt(b, (_r$1 = y % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")), 2); } else if (_1 === (273)) { b = appendInt(b, year, 4); } else if (_1 === (258)) { b = $appendSlice(b, $substring(new Month(month).String(), 0, 3)); } else if (_1 === (257)) { m = new Month(month).String(); b = $appendSlice(b, m); } else if (_1 === (259)) { b = appendInt(b, ((month >> 0)), 0); } else if (_1 === (260)) { b = appendInt(b, ((month >> 0)), 2); } else if (_1 === (262)) { b = $appendSlice(b, $substring(new Weekday(absWeekday(abs)).String(), 0, 3)); } else if (_1 === (261)) { s = new Weekday(absWeekday(abs)).String(); b = $appendSlice(b, s); } else if (_1 === (263)) { b = appendInt(b, day, 0); } else if (_1 === (264)) { if (day < 10) { b = $append(b, 32); } b = appendInt(b, day, 0); } else if (_1 === (265)) { b = appendInt(b, day, 2); } else if (_1 === (522)) { b = appendInt(b, hour, 2); } else if (_1 === (523)) { hr = (_r$2 = hour % 12, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")); if (hr === 0) { hr = 12; } b = appendInt(b, hr, 0); } else if (_1 === (524)) { hr$1 = (_r$3 = hour % 12, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")); if (hr$1 === 0) { hr$1 = 12; } b = appendInt(b, hr$1, 2); } else if (_1 === (525)) { b = appendInt(b, min, 0); } else if (_1 === (526)) { b = appendInt(b, min, 2); } else if (_1 === (527)) { b = appendInt(b, sec, 0); } else if (_1 === (528)) { b = appendInt(b, sec, 2); } else if (_1 === (531)) { if (hour >= 12) { b = $appendSlice(b, "PM"); } else { b = $appendSlice(b, "AM"); } } else if (_1 === (532)) { if (hour >= 12) { b = $appendSlice(b, "pm"); } else { b = $appendSlice(b, "am"); } } else if ((_1 === (22)) || (_1 === (25)) || (_1 === (23)) || (_1 === (24)) || (_1 === (26)) || (_1 === (27)) || (_1 === (30)) || (_1 === (28)) || (_1 === (29)) || (_1 === (31))) { if ((offset === 0) && ((std === 22) || (std === 25) || (std === 23) || (std === 24) || (std === 26))) { b = $append(b, 90); break; } zone$1 = (_q = offset / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); absoffset = offset; if (zone$1 < 0) { b = $append(b, 45); zone$1 = -zone$1; absoffset = -absoffset; } else { b = $append(b, 43); } b = appendInt(b, (_q$1 = zone$1 / 60, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 2); if ((std === 25) || (std === 30) || (std === 26) || (std === 31)) { b = $append(b, 58); } if (!((std === 29)) && !((std === 24))) { b = appendInt(b, (_r$4 = zone$1 % 60, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")), 2); } if ((std === 23) || (std === 28) || (std === 31) || (std === 26)) { if ((std === 31) || (std === 26)) { b = $append(b, 58); } b = appendInt(b, (_r$5 = absoffset % 60, _r$5 === _r$5 ? _r$5 : $throwRuntimeError("integer divide by zero")), 2); } } else if (_1 === (21)) { if (!(name === "")) { b = $appendSlice(b, name); break; } zone$2 = (_q$2 = offset / 60, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")); if (zone$2 < 0) { b = $append(b, 45); zone$2 = -zone$2; } else { b = $append(b, 43); } b = appendInt(b, (_q$3 = zone$2 / 60, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")), 2); b = appendInt(b, (_r$6 = zone$2 % 60, _r$6 === _r$6 ? _r$6 : $throwRuntimeError("integer divide by zero")), 2); } else if ((_1 === (32)) || (_1 === (33))) { b = formatNano(b, (($clone(t, Time).Nanosecond() >>> 0)), std >> 16 >> 0, (std & 65535) === 33); } } } $s = -1; return b; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.AppendFormat }; } $f._1 = _1; $f._q = _q; $f._q$1 = _q$1; $f._q$2 = _q$2; $f._q$3 = _q$3; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.abs = abs; $f.absoffset = absoffset; $f.b = b; $f.day = day; $f.hour = hour; $f.hr = hr; $f.hr$1 = hr$1; $f.layout = layout; $f.m = m; $f.min = min; $f.month = month; $f.name = name; $f.offset = offset; $f.prefix = prefix; $f.s = s; $f.sec = sec; $f.std = std; $f.suffix = suffix; $f.t = t; $f.y = y; $f.year = year; $f.zone$1 = zone$1; $f.zone$2 = zone$2; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.AppendFormat = function(b, layout) { return this.$val.AppendFormat(b, layout); }; quote = function(s) { var s; return "\"" + s + "\""; }; ParseError.ptr.prototype.Error = function() { var e; e = this; if (e.Message === "") { return "parsing time " + quote(e.Value) + " as " + quote(e.Layout) + ": cannot parse " + quote(e.ValueElem) + " as " + quote(e.LayoutElem); } return "parsing time " + quote(e.Value) + e.Message; }; ParseError.prototype.Error = function() { return this.$val.Error(); }; isDigit = function(s, i) { var c, i, s; if (s.length <= i) { return false; } c = s.charCodeAt(i); return 48 <= c && c <= 57; }; getnum = function(s, fixed) { var fixed, s; if (!isDigit(s, 0)) { return [0, s, errBad]; } if (!isDigit(s, 1)) { if (fixed) { return [0, s, errBad]; } return [(((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), $substring(s, 1), $ifaceNil]; } return [($imul((((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), 10)) + (((s.charCodeAt(1) - 48 << 24 >>> 24) >> 0)) >> 0, $substring(s, 2), $ifaceNil]; }; cutspace = function(s) { var s; while (true) { if (!(s.length > 0 && (s.charCodeAt(0) === 32))) { break; } s = $substring(s, 1); } return s; }; skip = function(value, prefix) { var prefix, value; while (true) { if (!(prefix.length > 0)) { break; } if (prefix.charCodeAt(0) === 32) { if (value.length > 0 && !((value.charCodeAt(0) === 32))) { return [value, errBad]; } prefix = cutspace(prefix); value = cutspace(value); continue; } if ((value.length === 0) || !((value.charCodeAt(0) === prefix.charCodeAt(0)))) { return [value, errBad]; } prefix = $substring(prefix, 1); value = $substring(value, 1); } return [value, $ifaceNil]; }; Parse = function(layout, value) { var _r, layout, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; layout = $f.layout; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = parse(layout, value, $pkg.UTC, $pkg.Local); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Parse }; } $f._r = _r; $f.layout = layout; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Parse = Parse; parse = function(layout, value, defaultLocation, local) { var _1, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, alayout, amSet, avalue, day, defaultLocation, err, hour, hour$1, hr, i, layout, local, min, min$1, mm, month, n, n$1, name, ndigit, nsec, offset, offset$1, ok, ok$1, p, pmSet, prefix, rangeErrString, sec, seconds, sign, ss, std, stdstr, suffix, t, t$1, value, x, x$1, year, z, zoneName, zoneOffset, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$13 = $f._tmp$13; _tmp$14 = $f._tmp$14; _tmp$15 = $f._tmp$15; _tmp$16 = $f._tmp$16; _tmp$17 = $f._tmp$17; _tmp$18 = $f._tmp$18; _tmp$19 = $f._tmp$19; _tmp$2 = $f._tmp$2; _tmp$20 = $f._tmp$20; _tmp$21 = $f._tmp$21; _tmp$22 = $f._tmp$22; _tmp$23 = $f._tmp$23; _tmp$24 = $f._tmp$24; _tmp$25 = $f._tmp$25; _tmp$26 = $f._tmp$26; _tmp$27 = $f._tmp$27; _tmp$28 = $f._tmp$28; _tmp$29 = $f._tmp$29; _tmp$3 = $f._tmp$3; _tmp$30 = $f._tmp$30; _tmp$31 = $f._tmp$31; _tmp$32 = $f._tmp$32; _tmp$33 = $f._tmp$33; _tmp$34 = $f._tmp$34; _tmp$35 = $f._tmp$35; _tmp$36 = $f._tmp$36; _tmp$37 = $f._tmp$37; _tmp$38 = $f._tmp$38; _tmp$39 = $f._tmp$39; _tmp$4 = $f._tmp$4; _tmp$40 = $f._tmp$40; _tmp$41 = $f._tmp$41; _tmp$42 = $f._tmp$42; _tmp$43 = $f._tmp$43; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$10 = $f._tuple$10; _tuple$11 = $f._tuple$11; _tuple$12 = $f._tuple$12; _tuple$13 = $f._tuple$13; _tuple$14 = $f._tuple$14; _tuple$15 = $f._tuple$15; _tuple$16 = $f._tuple$16; _tuple$17 = $f._tuple$17; _tuple$18 = $f._tuple$18; _tuple$19 = $f._tuple$19; _tuple$2 = $f._tuple$2; _tuple$20 = $f._tuple$20; _tuple$21 = $f._tuple$21; _tuple$22 = $f._tuple$22; _tuple$23 = $f._tuple$23; _tuple$24 = $f._tuple$24; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; _tuple$8 = $f._tuple$8; _tuple$9 = $f._tuple$9; alayout = $f.alayout; amSet = $f.amSet; avalue = $f.avalue; day = $f.day; defaultLocation = $f.defaultLocation; err = $f.err; hour = $f.hour; hour$1 = $f.hour$1; hr = $f.hr; i = $f.i; layout = $f.layout; local = $f.local; min = $f.min; min$1 = $f.min$1; mm = $f.mm; month = $f.month; n = $f.n; n$1 = $f.n$1; name = $f.name; ndigit = $f.ndigit; nsec = $f.nsec; offset = $f.offset; offset$1 = $f.offset$1; ok = $f.ok; ok$1 = $f.ok$1; p = $f.p; pmSet = $f.pmSet; prefix = $f.prefix; rangeErrString = $f.rangeErrString; sec = $f.sec; seconds = $f.seconds; sign = $f.sign; ss = $f.ss; std = $f.std; stdstr = $f.stdstr; suffix = $f.suffix; t = $f.t; t$1 = $f.t$1; value = $f.value; x = $f.x; x$1 = $f.x$1; year = $f.year; z = $f.z; zoneName = $f.zoneName; zoneOffset = $f.zoneOffset; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tmp = layout; _tmp$1 = value; alayout = _tmp; avalue = _tmp$1; rangeErrString = ""; amSet = false; pmSet = false; year = 0; month = 1; day = 1; hour = 0; min = 0; sec = 0; nsec = 0; z = ptrType$2.nil; zoneOffset = -1; zoneName = ""; while (true) { err = $ifaceNil; _tuple = nextStdChunk(layout); prefix = _tuple[0]; std = _tuple[1]; suffix = _tuple[2]; stdstr = $substring(layout, prefix.length, (layout.length - suffix.length >> 0)); _tuple$1 = skip(value, prefix); value = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, prefix, value, "")]; } if (std === 0) { if (!((value.length === 0))) { $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": extra text: " + value)]; } break; } layout = suffix; p = ""; switch (0) { default: _1 = std & 65535; if (_1 === (274)) { if (value.length < 2) { err = errBad; break; } _tmp$2 = $substring(value, 0, 2); _tmp$3 = $substring(value, 2); p = _tmp$2; value = _tmp$3; _tuple$2 = atoi(p); year = _tuple$2[0]; err = _tuple$2[1]; if (year >= 69) { year = year + (1900) >> 0; } else { year = year + (2000) >> 0; } } else if (_1 === (273)) { if (value.length < 4 || !isDigit(value, 0)) { err = errBad; break; } _tmp$4 = $substring(value, 0, 4); _tmp$5 = $substring(value, 4); p = _tmp$4; value = _tmp$5; _tuple$3 = atoi(p); year = _tuple$3[0]; err = _tuple$3[1]; } else if (_1 === (258)) { _tuple$4 = lookup(shortMonthNames, value); month = _tuple$4[0]; value = _tuple$4[1]; err = _tuple$4[2]; } else if (_1 === (257)) { _tuple$5 = lookup(longMonthNames, value); month = _tuple$5[0]; value = _tuple$5[1]; err = _tuple$5[2]; } else if ((_1 === (259)) || (_1 === (260))) { _tuple$6 = getnum(value, std === 260); month = _tuple$6[0]; value = _tuple$6[1]; err = _tuple$6[2]; if (month <= 0 || 12 < month) { rangeErrString = "month"; } } else if (_1 === (262)) { _tuple$7 = lookup(shortDayNames, value); value = _tuple$7[1]; err = _tuple$7[2]; } else if (_1 === (261)) { _tuple$8 = lookup(longDayNames, value); value = _tuple$8[1]; err = _tuple$8[2]; } else if ((_1 === (263)) || (_1 === (264)) || (_1 === (265))) { if ((std === 264) && value.length > 0 && (value.charCodeAt(0) === 32)) { value = $substring(value, 1); } _tuple$9 = getnum(value, std === 265); day = _tuple$9[0]; value = _tuple$9[1]; err = _tuple$9[2]; if (day < 0) { rangeErrString = "day"; } } else if (_1 === (522)) { _tuple$10 = getnum(value, false); hour = _tuple$10[0]; value = _tuple$10[1]; err = _tuple$10[2]; if (hour < 0 || 24 <= hour) { rangeErrString = "hour"; } } else if ((_1 === (523)) || (_1 === (524))) { _tuple$11 = getnum(value, std === 524); hour = _tuple$11[0]; value = _tuple$11[1]; err = _tuple$11[2]; if (hour < 0 || 12 < hour) { rangeErrString = "hour"; } } else if ((_1 === (525)) || (_1 === (526))) { _tuple$12 = getnum(value, std === 526); min = _tuple$12[0]; value = _tuple$12[1]; err = _tuple$12[2]; if (min < 0 || 60 <= min) { rangeErrString = "minute"; } } else if ((_1 === (527)) || (_1 === (528))) { _tuple$13 = getnum(value, std === 528); sec = _tuple$13[0]; value = _tuple$13[1]; err = _tuple$13[2]; if (sec < 0 || 60 <= sec) { rangeErrString = "second"; break; } if (value.length >= 2 && (value.charCodeAt(0) === 46) && isDigit(value, 1)) { _tuple$14 = nextStdChunk(layout); std = _tuple$14[1]; std = std & (65535); if ((std === 32) || (std === 33)) { break; } n = 2; while (true) { if (!(n < value.length && isDigit(value, n))) { break; } n = n + (1) >> 0; } _tuple$15 = parseNanoseconds(value, n); nsec = _tuple$15[0]; rangeErrString = _tuple$15[1]; err = _tuple$15[2]; value = $substring(value, n); } } else if (_1 === (531)) { if (value.length < 2) { err = errBad; break; } _tmp$6 = $substring(value, 0, 2); _tmp$7 = $substring(value, 2); p = _tmp$6; value = _tmp$7; _2 = p; if (_2 === ("PM")) { pmSet = true; } else if (_2 === ("AM")) { amSet = true; } else { err = errBad; } } else if (_1 === (532)) { if (value.length < 2) { err = errBad; break; } _tmp$8 = $substring(value, 0, 2); _tmp$9 = $substring(value, 2); p = _tmp$8; value = _tmp$9; _3 = p; if (_3 === ("pm")) { pmSet = true; } else if (_3 === ("am")) { amSet = true; } else { err = errBad; } } else if ((_1 === (22)) || (_1 === (25)) || (_1 === (23)) || (_1 === (24)) || (_1 === (26)) || (_1 === (27)) || (_1 === (29)) || (_1 === (30)) || (_1 === (28)) || (_1 === (31))) { if (((std === 22) || (std === 24) || (std === 25)) && value.length >= 1 && (value.charCodeAt(0) === 90)) { value = $substring(value, 1); z = $pkg.UTC; break; } _tmp$10 = ""; _tmp$11 = ""; _tmp$12 = ""; _tmp$13 = ""; sign = _tmp$10; hour$1 = _tmp$11; min$1 = _tmp$12; seconds = _tmp$13; if ((std === 25) || (std === 30)) { if (value.length < 6) { err = errBad; break; } if (!((value.charCodeAt(3) === 58))) { err = errBad; break; } _tmp$14 = $substring(value, 0, 1); _tmp$15 = $substring(value, 1, 3); _tmp$16 = $substring(value, 4, 6); _tmp$17 = "00"; _tmp$18 = $substring(value, 6); sign = _tmp$14; hour$1 = _tmp$15; min$1 = _tmp$16; seconds = _tmp$17; value = _tmp$18; } else if ((std === 29) || (std === 24)) { if (value.length < 3) { err = errBad; break; } _tmp$19 = $substring(value, 0, 1); _tmp$20 = $substring(value, 1, 3); _tmp$21 = "00"; _tmp$22 = "00"; _tmp$23 = $substring(value, 3); sign = _tmp$19; hour$1 = _tmp$20; min$1 = _tmp$21; seconds = _tmp$22; value = _tmp$23; } else if ((std === 26) || (std === 31)) { if (value.length < 9) { err = errBad; break; } if (!((value.charCodeAt(3) === 58)) || !((value.charCodeAt(6) === 58))) { err = errBad; break; } _tmp$24 = $substring(value, 0, 1); _tmp$25 = $substring(value, 1, 3); _tmp$26 = $substring(value, 4, 6); _tmp$27 = $substring(value, 7, 9); _tmp$28 = $substring(value, 9); sign = _tmp$24; hour$1 = _tmp$25; min$1 = _tmp$26; seconds = _tmp$27; value = _tmp$28; } else if ((std === 23) || (std === 28)) { if (value.length < 7) { err = errBad; break; } _tmp$29 = $substring(value, 0, 1); _tmp$30 = $substring(value, 1, 3); _tmp$31 = $substring(value, 3, 5); _tmp$32 = $substring(value, 5, 7); _tmp$33 = $substring(value, 7); sign = _tmp$29; hour$1 = _tmp$30; min$1 = _tmp$31; seconds = _tmp$32; value = _tmp$33; } else { if (value.length < 5) { err = errBad; break; } _tmp$34 = $substring(value, 0, 1); _tmp$35 = $substring(value, 1, 3); _tmp$36 = $substring(value, 3, 5); _tmp$37 = "00"; _tmp$38 = $substring(value, 5); sign = _tmp$34; hour$1 = _tmp$35; min$1 = _tmp$36; seconds = _tmp$37; value = _tmp$38; } _tmp$39 = 0; _tmp$40 = 0; _tmp$41 = 0; hr = _tmp$39; mm = _tmp$40; ss = _tmp$41; _tuple$16 = atoi(hour$1); hr = _tuple$16[0]; err = _tuple$16[1]; if ($interfaceIsEqual(err, $ifaceNil)) { _tuple$17 = atoi(min$1); mm = _tuple$17[0]; err = _tuple$17[1]; } if ($interfaceIsEqual(err, $ifaceNil)) { _tuple$18 = atoi(seconds); ss = _tuple$18[0]; err = _tuple$18[1]; } zoneOffset = ($imul(((($imul(hr, 60)) + mm >> 0)), 60)) + ss >> 0; _4 = sign.charCodeAt(0); if (_4 === (43)) { } else if (_4 === (45)) { zoneOffset = -zoneOffset; } else { err = errBad; } } else if (_1 === (21)) { if (value.length >= 3 && $substring(value, 0, 3) === "UTC") { z = $pkg.UTC; value = $substring(value, 3); break; } _tuple$19 = parseTimeZone(value); n$1 = _tuple$19[0]; ok = _tuple$19[1]; if (!ok) { err = errBad; break; } _tmp$42 = $substring(value, 0, n$1); _tmp$43 = $substring(value, n$1); zoneName = _tmp$42; value = _tmp$43; } else if (_1 === (32)) { ndigit = 1 + ((std >> 16 >> 0)) >> 0; if (value.length < ndigit) { err = errBad; break; } _tuple$20 = parseNanoseconds(value, ndigit); nsec = _tuple$20[0]; rangeErrString = _tuple$20[1]; err = _tuple$20[2]; value = $substring(value, ndigit); } else if (_1 === (33)) { if (value.length < 2 || !((value.charCodeAt(0) === 46)) || value.charCodeAt(1) < 48 || 57 < value.charCodeAt(1)) { break; } i = 0; while (true) { if (!(i < 9 && (i + 1 >> 0) < value.length && 48 <= value.charCodeAt((i + 1 >> 0)) && value.charCodeAt((i + 1 >> 0)) <= 57)) { break; } i = i + (1) >> 0; } _tuple$21 = parseNanoseconds(value, 1 + i >> 0); nsec = _tuple$21[0]; rangeErrString = _tuple$21[1]; err = _tuple$21[2]; value = $substring(value, (1 + i >> 0)); } } if (!(rangeErrString === "")) { $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, ": " + rangeErrString + " out of range")]; } if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, "")]; } } if (pmSet && hour < 12) { hour = hour + (12) >> 0; } else if (amSet && (hour === 12)) { hour = 0; } if (day < 1 || day > daysIn(((month >> 0)), year)) { $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": day out of range")]; } /* */ if (!(z === ptrType$2.nil)) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!(z === ptrType$2.nil)) { */ case 1: _r = Date(year, ((month >> 0)), day, hour, min, sec, nsec, z); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return [_r, $ifaceNil]; /* } */ case 2: /* */ if (!((zoneOffset === -1))) { $s = 4; continue; } /* */ $s = 5; continue; /* if (!((zoneOffset === -1))) { */ case 4: _r$1 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, $pkg.UTC); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } t = $clone(_r$1, Time); t.addSec((x = (new $Int64(0, zoneOffset)), new $Int64(-x.$high, -x.$low))); _r$2 = local.lookup(t.unixSec()); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$22 = _r$2; name = _tuple$22[0]; offset = _tuple$22[1]; if ((offset === zoneOffset) && (zoneName === "" || name === zoneName)) { t.setLoc(local); $s = -1; return [t, $ifaceNil]; } t.setLoc(FixedZone(zoneName, zoneOffset)); $s = -1; return [t, $ifaceNil]; /* } */ case 5: /* */ if (!(zoneName === "")) { $s = 8; continue; } /* */ $s = 9; continue; /* if (!(zoneName === "")) { */ case 8: _r$3 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, $pkg.UTC); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } t$1 = $clone(_r$3, Time); _r$4 = local.lookupName(zoneName, t$1.unixSec()); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$23 = _r$4; offset$1 = _tuple$23[0]; ok$1 = _tuple$23[2]; if (ok$1) { t$1.addSec((x$1 = (new $Int64(0, offset$1)), new $Int64(-x$1.$high, -x$1.$low))); t$1.setLoc(local); $s = -1; return [t$1, $ifaceNil]; } if (zoneName.length > 3 && $substring(zoneName, 0, 3) === "GMT") { _tuple$24 = atoi($substring(zoneName, 3)); offset$1 = _tuple$24[0]; offset$1 = $imul(offset$1, (3600)); } t$1.setLoc(FixedZone(zoneName, offset$1)); $s = -1; return [t$1, $ifaceNil]; /* } */ case 9: _r$5 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, defaultLocation); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return [_r$5, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: parse }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$13 = _tmp$13; $f._tmp$14 = _tmp$14; $f._tmp$15 = _tmp$15; $f._tmp$16 = _tmp$16; $f._tmp$17 = _tmp$17; $f._tmp$18 = _tmp$18; $f._tmp$19 = _tmp$19; $f._tmp$2 = _tmp$2; $f._tmp$20 = _tmp$20; $f._tmp$21 = _tmp$21; $f._tmp$22 = _tmp$22; $f._tmp$23 = _tmp$23; $f._tmp$24 = _tmp$24; $f._tmp$25 = _tmp$25; $f._tmp$26 = _tmp$26; $f._tmp$27 = _tmp$27; $f._tmp$28 = _tmp$28; $f._tmp$29 = _tmp$29; $f._tmp$3 = _tmp$3; $f._tmp$30 = _tmp$30; $f._tmp$31 = _tmp$31; $f._tmp$32 = _tmp$32; $f._tmp$33 = _tmp$33; $f._tmp$34 = _tmp$34; $f._tmp$35 = _tmp$35; $f._tmp$36 = _tmp$36; $f._tmp$37 = _tmp$37; $f._tmp$38 = _tmp$38; $f._tmp$39 = _tmp$39; $f._tmp$4 = _tmp$4; $f._tmp$40 = _tmp$40; $f._tmp$41 = _tmp$41; $f._tmp$42 = _tmp$42; $f._tmp$43 = _tmp$43; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$10 = _tuple$10; $f._tuple$11 = _tuple$11; $f._tuple$12 = _tuple$12; $f._tuple$13 = _tuple$13; $f._tuple$14 = _tuple$14; $f._tuple$15 = _tuple$15; $f._tuple$16 = _tuple$16; $f._tuple$17 = _tuple$17; $f._tuple$18 = _tuple$18; $f._tuple$19 = _tuple$19; $f._tuple$2 = _tuple$2; $f._tuple$20 = _tuple$20; $f._tuple$21 = _tuple$21; $f._tuple$22 = _tuple$22; $f._tuple$23 = _tuple$23; $f._tuple$24 = _tuple$24; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f._tuple$8 = _tuple$8; $f._tuple$9 = _tuple$9; $f.alayout = alayout; $f.amSet = amSet; $f.avalue = avalue; $f.day = day; $f.defaultLocation = defaultLocation; $f.err = err; $f.hour = hour; $f.hour$1 = hour$1; $f.hr = hr; $f.i = i; $f.layout = layout; $f.local = local; $f.min = min; $f.min$1 = min$1; $f.mm = mm; $f.month = month; $f.n = n; $f.n$1 = n$1; $f.name = name; $f.ndigit = ndigit; $f.nsec = nsec; $f.offset = offset; $f.offset$1 = offset$1; $f.ok = ok; $f.ok$1 = ok$1; $f.p = p; $f.pmSet = pmSet; $f.prefix = prefix; $f.rangeErrString = rangeErrString; $f.sec = sec; $f.seconds = seconds; $f.sign = sign; $f.ss = ss; $f.std = std; $f.stdstr = stdstr; $f.suffix = suffix; $f.t = t; $f.t$1 = t$1; $f.value = value; $f.x = x; $f.x$1 = x$1; $f.year = year; $f.z = z; $f.zoneName = zoneName; $f.zoneOffset = zoneOffset; $f.$s = $s; $f.$r = $r; return $f; }; parseTimeZone = function(value) { var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, c, length, nUpper, ok, value; length = 0; ok = false; if (value.length < 3) { _tmp = 0; _tmp$1 = false; length = _tmp; ok = _tmp$1; return [length, ok]; } if (value.length >= 4 && ($substring(value, 0, 4) === "ChST" || $substring(value, 0, 4) === "MeST")) { _tmp$2 = 4; _tmp$3 = true; length = _tmp$2; ok = _tmp$3; return [length, ok]; } if ($substring(value, 0, 3) === "GMT") { length = parseGMT(value); _tmp$4 = length; _tmp$5 = true; length = _tmp$4; ok = _tmp$5; return [length, ok]; } nUpper = 0; nUpper = 0; while (true) { if (!(nUpper < 6)) { break; } if (nUpper >= value.length) { break; } c = value.charCodeAt(nUpper); if (c < 65 || 90 < c) { break; } nUpper = nUpper + (1) >> 0; } _1 = nUpper; if ((_1 === (0)) || (_1 === (1)) || (_1 === (2)) || (_1 === (6))) { _tmp$6 = 0; _tmp$7 = false; length = _tmp$6; ok = _tmp$7; return [length, ok]; } else if (_1 === (5)) { if (value.charCodeAt(4) === 84) { _tmp$8 = 5; _tmp$9 = true; length = _tmp$8; ok = _tmp$9; return [length, ok]; } } else if (_1 === (4)) { if ((value.charCodeAt(3) === 84) || $substring(value, 0, 4) === "WITA") { _tmp$10 = 4; _tmp$11 = true; length = _tmp$10; ok = _tmp$11; return [length, ok]; } } else if (_1 === (3)) { _tmp$12 = 3; _tmp$13 = true; length = _tmp$12; ok = _tmp$13; return [length, ok]; } _tmp$14 = 0; _tmp$15 = false; length = _tmp$14; ok = _tmp$15; return [length, ok]; }; parseGMT = function(value) { var _tuple, err, rem, sign, value, x; value = $substring(value, 3); if (value.length === 0) { return 3; } sign = value.charCodeAt(0); if (!((sign === 45)) && !((sign === 43))) { return 3; } _tuple = leadingInt($substring(value, 1)); x = _tuple[0]; rem = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { return 3; } if (sign === 45) { x = new $Int64(-x.$high, -x.$low); } if ((x.$high === 0 && x.$low === 0) || (x.$high < -1 || (x.$high === -1 && x.$low < 4294967282)) || (0 < x.$high || (0 === x.$high && 12 < x.$low))) { return 3; } return (3 + value.length >> 0) - rem.length >> 0; }; parseNanoseconds = function(value, nbytes) { var _tuple, err, i, nbytes, ns, rangeErrString, scaleDigits, value; ns = 0; rangeErrString = ""; err = $ifaceNil; if (!((value.charCodeAt(0) === 46))) { err = errBad; return [ns, rangeErrString, err]; } _tuple = atoi($substring(value, 1, nbytes)); ns = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { return [ns, rangeErrString, err]; } if (ns < 0 || 1000000000 <= ns) { rangeErrString = "fractional second"; return [ns, rangeErrString, err]; } scaleDigits = 10 - nbytes >> 0; i = 0; while (true) { if (!(i < scaleDigits)) { break; } ns = $imul(ns, (10)); i = i + (1) >> 0; } return [ns, rangeErrString, err]; }; leadingInt = function(s) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, c, err, i, rem, s, x, x$1, x$2, x$3; x = new $Int64(0, 0); rem = ""; err = $ifaceNil; i = 0; while (true) { if (!(i < s.length)) { break; } c = s.charCodeAt(i); if (c < 48 || c > 57) { break; } if ((x.$high > 214748364 || (x.$high === 214748364 && x.$low > 3435973836))) { _tmp = new $Int64(0, 0); _tmp$1 = ""; _tmp$2 = errLeadingInt; x = _tmp; rem = _tmp$1; err = _tmp$2; return [x, rem, err]; } x = (x$1 = (x$2 = $mul64(x, new $Int64(0, 10)), x$3 = (new $Int64(0, c)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)), new $Int64(x$1.$high - 0, x$1.$low - 48)); if ((x.$high < 0 || (x.$high === 0 && x.$low < 0))) { _tmp$3 = new $Int64(0, 0); _tmp$4 = ""; _tmp$5 = errLeadingInt; x = _tmp$3; rem = _tmp$4; err = _tmp$5; return [x, rem, err]; } i = i + (1) >> 0; } _tmp$6 = x; _tmp$7 = $substring(s, i); _tmp$8 = $ifaceNil; x = _tmp$6; rem = _tmp$7; err = _tmp$8; return [x, rem, err]; }; leadingFraction = function(s) { var _tmp, _tmp$1, _tmp$2, c, i, overflow, rem, s, scale, x, x$1, x$2, x$3, y; x = new $Int64(0, 0); scale = 0; rem = ""; i = 0; scale = 1; overflow = false; while (true) { if (!(i < s.length)) { break; } c = s.charCodeAt(i); if (c < 48 || c > 57) { break; } if (overflow) { i = i + (1) >> 0; continue; } if ((x.$high > 214748364 || (x.$high === 214748364 && x.$low > 3435973836))) { overflow = true; i = i + (1) >> 0; continue; } y = (x$1 = (x$2 = $mul64(x, new $Int64(0, 10)), x$3 = (new $Int64(0, c)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)), new $Int64(x$1.$high - 0, x$1.$low - 48)); if ((y.$high < 0 || (y.$high === 0 && y.$low < 0))) { overflow = true; i = i + (1) >> 0; continue; } x = y; scale = scale * (10); i = i + (1) >> 0; } _tmp = x; _tmp$1 = scale; _tmp$2 = $substring(s, i); x = _tmp; scale = _tmp$1; rem = _tmp$2; return [x, scale, rem]; }; ParseDuration = function(s) { var _entry, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, c, c$1, d, err, f, i, neg, ok, orig, pl, pl$1, post, pre, s, scale, u, unit, v, x, x$1, x$2; orig = s; d = new $Int64(0, 0); neg = false; if (!(s === "")) { c = s.charCodeAt(0); if ((c === 45) || (c === 43)) { neg = c === 45; s = $substring(s, 1); } } if (s === "0") { return [new Duration(0, 0), $ifaceNil]; } if (s === "") { return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; } while (true) { if (!(!(s === ""))) { break; } _tmp = new $Int64(0, 0); _tmp$1 = new $Int64(0, 0); v = _tmp; f = _tmp$1; scale = 1; err = $ifaceNil; if (!((s.charCodeAt(0) === 46) || 48 <= s.charCodeAt(0) && s.charCodeAt(0) <= 57)) { return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; } pl = s.length; _tuple = leadingInt(s); v = _tuple[0]; s = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; } pre = !((pl === s.length)); post = false; if (!(s === "") && (s.charCodeAt(0) === 46)) { s = $substring(s, 1); pl$1 = s.length; _tuple$1 = leadingFraction(s); f = _tuple$1[0]; scale = _tuple$1[1]; s = _tuple$1[2]; post = !((pl$1 === s.length)); } if (!pre && !post) { return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; } i = 0; while (true) { if (!(i < s.length)) { break; } c$1 = s.charCodeAt(i); if ((c$1 === 46) || 48 <= c$1 && c$1 <= 57) { break; } i = i + (1) >> 0; } if (i === 0) { return [new Duration(0, 0), errors.New("time: missing unit in duration " + orig)]; } u = $substring(s, 0, i); s = $substring(s, i); _tuple$2 = (_entry = unitMap[$String.keyFor(u)], _entry !== undefined ? [_entry.v, true] : [new $Int64(0, 0), false]); unit = _tuple$2[0]; ok = _tuple$2[1]; if (!ok) { return [new Duration(0, 0), errors.New("time: unknown unit " + u + " in duration " + orig)]; } if ((x = $div64(new $Int64(2147483647, 4294967295), unit, false), (v.$high > x.$high || (v.$high === x.$high && v.$low > x.$low)))) { return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; } v = $mul64(v, (unit)); if ((f.$high > 0 || (f.$high === 0 && f.$low > 0))) { v = (x$1 = (new $Int64(0, ($flatten64(f)) * (($flatten64(unit)) / scale))), new $Int64(v.$high + x$1.$high, v.$low + x$1.$low)); if ((v.$high < 0 || (v.$high === 0 && v.$low < 0))) { return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; } } d = (x$2 = v, new $Int64(d.$high + x$2.$high, d.$low + x$2.$low)); if ((d.$high < 0 || (d.$high === 0 && d.$low < 0))) { return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; } } if (neg) { d = new $Int64(-d.$high, -d.$low); } return [(new Duration(d.$high, d.$low)), $ifaceNil]; }; $pkg.ParseDuration = ParseDuration; Time.ptr.prototype.nsec = function() { var t, x; t = this; return (((x = t.wall, new $Uint64(x.$high & 0, (x.$low & 1073741823) >>> 0)).$low >> 0)); }; Time.prototype.nsec = function() { return this.$val.nsec(); }; Time.ptr.prototype.sec = function() { var t, x, x$1, x$2, x$3; t = this; if (!((x = (x$1 = t.wall, new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { return (x$2 = ((x$3 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$3.$high, x$3.$low))), new $Int64(13 + x$2.$high, 3618733952 + x$2.$low)); } return (t.ext); }; Time.prototype.sec = function() { return this.$val.sec(); }; Time.ptr.prototype.unixSec = function() { var t, x; t = this; return (x = t.sec(), new $Int64(x.$high + -15, x.$low + 2288912640)); }; Time.prototype.unixSec = function() { return this.$val.unixSec(); }; Time.ptr.prototype.addSec = function(d) { var d, dsec, sec, t, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; t = this; if (!((x = (x$1 = t.wall, new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { sec = ((x$2 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$2.$high, x$2.$low))); dsec = new $Int64(sec.$high + d.$high, sec.$low + d.$low); if ((0 < dsec.$high || (0 === dsec.$high && 0 <= dsec.$low)) && (dsec.$high < 1 || (dsec.$high === 1 && dsec.$low <= 4294967295))) { t.wall = (x$3 = (x$4 = (x$5 = t.wall, new $Uint64(x$5.$high & 0, (x$5.$low & 1073741823) >>> 0)), x$6 = $shiftLeft64((new $Uint64(dsec.$high, dsec.$low)), 30), new $Uint64(x$4.$high | x$6.$high, (x$4.$low | x$6.$low) >>> 0)), new $Uint64(x$3.$high | 2147483648, (x$3.$low | 0) >>> 0)); return; } t.stripMono(); } t.ext = (x$7 = t.ext, x$8 = d, new $Int64(x$7.$high + x$8.$high, x$7.$low + x$8.$low)); }; Time.prototype.addSec = function(d) { return this.$val.addSec(d); }; Time.ptr.prototype.setLoc = function(loc) { var loc, t; t = this; if (loc === utcLoc) { loc = ptrType$2.nil; } t.stripMono(); t.loc = loc; }; Time.prototype.setLoc = function(loc) { return this.$val.setLoc(loc); }; Time.ptr.prototype.stripMono = function() { var t, x, x$1, x$2, x$3; t = this; if (!((x = (x$1 = t.wall, new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { t.ext = t.sec(); t.wall = (x$2 = t.wall, x$3 = new $Uint64(0, 1073741823), new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)); } }; Time.prototype.stripMono = function() { return this.$val.stripMono(); }; Time.ptr.prototype.After = function(u) { var t, ts, u, us, x, x$1, x$2, x$3, x$4, x$5; t = this; if (!((x = (x$1 = (x$2 = t.wall, x$3 = u.wall, new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)), new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { return (x$4 = t.ext, x$5 = u.ext, (x$4.$high > x$5.$high || (x$4.$high === x$5.$high && x$4.$low > x$5.$low))); } ts = t.sec(); us = u.sec(); return (ts.$high > us.$high || (ts.$high === us.$high && ts.$low > us.$low)) || (ts.$high === us.$high && ts.$low === us.$low) && t.nsec() > u.nsec(); }; Time.prototype.After = function(u) { return this.$val.After(u); }; Time.ptr.prototype.Before = function(u) { var t, u, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; t = this; if (!((x = (x$1 = (x$2 = t.wall, x$3 = u.wall, new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)), new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { return (x$4 = t.ext, x$5 = u.ext, (x$4.$high < x$5.$high || (x$4.$high === x$5.$high && x$4.$low < x$5.$low))); } return (x$6 = t.sec(), x$7 = u.sec(), (x$6.$high < x$7.$high || (x$6.$high === x$7.$high && x$6.$low < x$7.$low))) || (x$8 = t.sec(), x$9 = u.sec(), (x$8.$high === x$9.$high && x$8.$low === x$9.$low)) && t.nsec() < u.nsec(); }; Time.prototype.Before = function(u) { return this.$val.Before(u); }; Time.ptr.prototype.Equal = function(u) { var t, u, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; t = this; if (!((x = (x$1 = (x$2 = t.wall, x$3 = u.wall, new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)), new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { return (x$4 = t.ext, x$5 = u.ext, (x$4.$high === x$5.$high && x$4.$low === x$5.$low)); } return (x$6 = t.sec(), x$7 = u.sec(), (x$6.$high === x$7.$high && x$6.$low === x$7.$low)) && (t.nsec() === u.nsec()); }; Time.prototype.Equal = function(u) { return this.$val.Equal(u); }; Month.prototype.String = function() { var buf, m, n, x; m = this.$val; if (1 <= m && m <= 12) { return (x = m - 1 >> 0, ((x < 0 || x >= months.length) ? ($throwRuntimeError("index out of range"), undefined) : months[x])); } buf = $makeSlice(sliceType$3, 20); n = fmtInt(buf, (new $Uint64(0, m))); return "%!Month(" + ($bytesToString($subslice(buf, n))) + ")"; }; $ptrType(Month).prototype.String = function() { return new Month(this.$get()).String(); }; Weekday.prototype.String = function() { var d; d = this.$val; return ((d < 0 || d >= days.length) ? ($throwRuntimeError("index out of range"), undefined) : days[d]); }; $ptrType(Weekday).prototype.String = function() { return new Weekday(this.$get()).String(); }; Time.ptr.prototype.IsZero = function() { var t, x; t = this; return (x = t.sec(), (x.$high === 0 && x.$low === 0)) && (t.nsec() === 0); }; Time.prototype.IsZero = function() { return this.$val.IsZero(); }; Time.ptr.prototype.abs = function() { var _r, _r$1, _tuple, l, offset, sec, t, x, x$1, x$2, x$3, x$4, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; l = $f.l; offset = $f.offset; sec = $f.sec; t = $f.t; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; l = t.loc; /* */ if (l === ptrType$2.nil || l === localLoc) { $s = 1; continue; } /* */ $s = 2; continue; /* if (l === ptrType$2.nil || l === localLoc) { */ case 1: _r = l.get(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } l = _r; /* } */ case 2: sec = t.unixSec(); /* */ if (!(l === utcLoc)) { $s = 4; continue; } /* */ $s = 5; continue; /* if (!(l === utcLoc)) { */ case 4: /* */ if (!(l.cacheZone === ptrType.nil) && (x = l.cacheStart, (x.$high < sec.$high || (x.$high === sec.$high && x.$low <= sec.$low))) && (x$1 = l.cacheEnd, (sec.$high < x$1.$high || (sec.$high === x$1.$high && sec.$low < x$1.$low)))) { $s = 6; continue; } /* */ $s = 7; continue; /* if (!(l.cacheZone === ptrType.nil) && (x = l.cacheStart, (x.$high < sec.$high || (x.$high === sec.$high && x.$low <= sec.$low))) && (x$1 = l.cacheEnd, (sec.$high < x$1.$high || (sec.$high === x$1.$high && sec.$low < x$1.$low)))) { */ case 6: sec = (x$2 = (new $Int64(0, l.cacheZone.offset)), new $Int64(sec.$high + x$2.$high, sec.$low + x$2.$low)); $s = 8; continue; /* } else { */ case 7: _r$1 = l.lookup(sec); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; offset = _tuple[1]; sec = (x$3 = (new $Int64(0, offset)), new $Int64(sec.$high + x$3.$high, sec.$low + x$3.$low)); /* } */ case 8: /* } */ case 5: $s = -1; return ((x$4 = new $Int64(sec.$high + 2147483646, sec.$low + 450480384), new $Uint64(x$4.$high, x$4.$low))); /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.abs }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.l = l; $f.offset = offset; $f.sec = sec; $f.t = t; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.abs = function() { return this.$val.abs(); }; Time.ptr.prototype.locabs = function() { var _r, _r$1, _tuple, abs, l, name, offset, sec, t, x, x$1, x$2, x$3, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; abs = $f.abs; l = $f.l; name = $f.name; offset = $f.offset; sec = $f.sec; t = $f.t; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: name = ""; offset = 0; abs = new $Uint64(0, 0); t = this; l = t.loc; /* */ if (l === ptrType$2.nil || l === localLoc) { $s = 1; continue; } /* */ $s = 2; continue; /* if (l === ptrType$2.nil || l === localLoc) { */ case 1: _r = l.get(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } l = _r; /* } */ case 2: sec = t.unixSec(); /* */ if (!(l === utcLoc)) { $s = 4; continue; } /* */ $s = 5; continue; /* if (!(l === utcLoc)) { */ case 4: /* */ if (!(l.cacheZone === ptrType.nil) && (x = l.cacheStart, (x.$high < sec.$high || (x.$high === sec.$high && x.$low <= sec.$low))) && (x$1 = l.cacheEnd, (sec.$high < x$1.$high || (sec.$high === x$1.$high && sec.$low < x$1.$low)))) { $s = 7; continue; } /* */ $s = 8; continue; /* if (!(l.cacheZone === ptrType.nil) && (x = l.cacheStart, (x.$high < sec.$high || (x.$high === sec.$high && x.$low <= sec.$low))) && (x$1 = l.cacheEnd, (sec.$high < x$1.$high || (sec.$high === x$1.$high && sec.$low < x$1.$low)))) { */ case 7: name = l.cacheZone.name; offset = l.cacheZone.offset; $s = 9; continue; /* } else { */ case 8: _r$1 = l.lookup(sec); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; name = _tuple[0]; offset = _tuple[1]; /* } */ case 9: sec = (x$2 = (new $Int64(0, offset)), new $Int64(sec.$high + x$2.$high, sec.$low + x$2.$low)); $s = 6; continue; /* } else { */ case 5: name = "UTC"; /* } */ case 6: abs = ((x$3 = new $Int64(sec.$high + 2147483646, sec.$low + 450480384), new $Uint64(x$3.$high, x$3.$low))); $s = -1; return [name, offset, abs]; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.locabs }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.abs = abs; $f.l = l; $f.name = name; $f.offset = offset; $f.sec = sec; $f.t = t; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.locabs = function() { return this.$val.locabs(); }; Time.ptr.prototype.Date = function() { var _r, _tuple, day, month, t, year, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; day = $f.day; month = $f.month; t = $f.t; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: year = 0; month = 0; day = 0; t = this; _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; year = _tuple[0]; month = _tuple[1]; day = _tuple[2]; $s = -1; return [year, month, day]; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Date }; } $f._r = _r; $f._tuple = _tuple; $f.day = day; $f.month = month; $f.t = t; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.Date = function() { return this.$val.Date(); }; Time.ptr.prototype.Year = function() { var _r, _tuple, t, year, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; t = $f.t; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = $clone(t, Time).date(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; year = _tuple[0]; $s = -1; return year; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Year }; } $f._r = _r; $f._tuple = _tuple; $f.t = t; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.Year = function() { return this.$val.Year(); }; Time.ptr.prototype.Month = function() { var _r, _tuple, month, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; month = $f.month; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; month = _tuple[1]; $s = -1; return month; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Month }; } $f._r = _r; $f._tuple = _tuple; $f.month = month; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.Month = function() { return this.$val.Month(); }; Time.ptr.prototype.Day = function() { var _r, _tuple, day, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; day = $f.day; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; day = _tuple[2]; $s = -1; return day; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Day }; } $f._r = _r; $f._tuple = _tuple; $f.day = day; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.Day = function() { return this.$val.Day(); }; Time.ptr.prototype.Weekday = function() { var _r, _r$1, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = absWeekday(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Weekday }; } $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.Weekday = function() { return this.$val.Weekday(); }; absWeekday = function(abs) { var _q, abs, sec; sec = $div64((new $Uint64(abs.$high + 0, abs.$low + 86400)), new $Uint64(0, 604800), true); return (((_q = ((sec.$low >> 0)) / 86400, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); }; Time.ptr.prototype.ISOWeek = function() { var _q, _r, _r$1, _r$2, _r$3, _r$4, _tuple, day, dec31wday, jan1wday, month, t, wday, week, yday, year, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; day = $f.day; dec31wday = $f.dec31wday; jan1wday = $f.jan1wday; month = $f.month; t = $f.t; wday = $f.wday; week = $f.week; yday = $f.yday; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: year = 0; week = 0; t = this; _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; year = _tuple[0]; month = _tuple[1]; day = _tuple[2]; yday = _tuple[3]; _r$2 = $clone(t, Time).Weekday(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } wday = (_r$1 = (((_r$2 + 6 >> 0) >> 0)) % 7, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")); week = (_q = (((yday - wday >> 0) + 7 >> 0)) / 7, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); jan1wday = (_r$3 = (((wday - yday >> 0) + 371 >> 0)) % 7, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")); if (1 <= jan1wday && jan1wday <= 3) { week = week + (1) >> 0; } if (week === 0) { year = year - (1) >> 0; week = 52; if ((jan1wday === 4) || ((jan1wday === 5) && isLeap(year))) { week = week + (1) >> 0; } } if ((month === 12) && day >= 29 && wday < 3) { dec31wday = (_r$4 = (((wday + 31 >> 0) - day >> 0)) % 7, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")); if (0 <= dec31wday && dec31wday <= 2) { year = year + (1) >> 0; week = 1; } } $s = -1; return [year, week]; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.ISOWeek }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f.day = day; $f.dec31wday = dec31wday; $f.jan1wday = jan1wday; $f.month = month; $f.t = t; $f.wday = wday; $f.week = week; $f.yday = yday; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.ISOWeek = function() { return this.$val.ISOWeek(); }; Time.ptr.prototype.Clock = function() { var _r, _r$1, _tuple, hour, min, sec, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; hour = $f.hour; min = $f.min; sec = $f.sec; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: hour = 0; min = 0; sec = 0; t = this; _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = absClock(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; hour = _tuple[0]; min = _tuple[1]; sec = _tuple[2]; $s = -1; return [hour, min, sec]; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Clock }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.hour = hour; $f.min = min; $f.sec = sec; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.Clock = function() { return this.$val.Clock(); }; absClock = function(abs) { var _q, _q$1, abs, hour, min, sec; hour = 0; min = 0; sec = 0; sec = (($div64(abs, new $Uint64(0, 86400), true).$low >> 0)); hour = (_q = sec / 3600, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); sec = sec - (($imul(hour, 3600))) >> 0; min = (_q$1 = sec / 60, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); sec = sec - (($imul(min, 60))) >> 0; return [hour, min, sec]; }; Time.ptr.prototype.Hour = function() { var _q, _r, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return (_q = (($div64(_r, new $Uint64(0, 86400), true).$low >> 0)) / 3600, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Hour }; } $f._q = _q; $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.Hour = function() { return this.$val.Hour(); }; Time.ptr.prototype.Minute = function() { var _q, _r, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return (_q = (($div64(_r, new $Uint64(0, 3600), true).$low >> 0)) / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Minute }; } $f._q = _q; $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.Minute = function() { return this.$val.Minute(); }; Time.ptr.prototype.Second = function() { var _r, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return (($div64(_r, new $Uint64(0, 60), true).$low >> 0)); /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Second }; } $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.Second = function() { return this.$val.Second(); }; Time.ptr.prototype.Nanosecond = function() { var t; t = this; return ((t.nsec() >> 0)); }; Time.prototype.Nanosecond = function() { return this.$val.Nanosecond(); }; Time.ptr.prototype.YearDay = function() { var _r, _tuple, t, yday, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; t = $f.t; yday = $f.yday; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = $clone(t, Time).date(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; yday = _tuple[3]; $s = -1; return yday + 1 >> 0; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.YearDay }; } $f._r = _r; $f._tuple = _tuple; $f.t = t; $f.yday = yday; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.YearDay = function() { return this.$val.YearDay(); }; Duration.prototype.String = function() { var _tuple, _tuple$1, buf, d, neg, prec, u, w; d = this; buf = arrayType$4.zero(); w = 32; u = (new $Uint64(d.$high, d.$low)); neg = (d.$high < 0 || (d.$high === 0 && d.$low < 0)); if (neg) { u = new $Uint64(-u.$high, -u.$low); } if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000000))) { prec = 0; w = w - (1) >> 0; ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115); w = w - (1) >> 0; if ((u.$high === 0 && u.$low === 0)) { return "0s"; } else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000))) { prec = 0; ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 110); } else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000))) { prec = 3; w = w - (1) >> 0; $copyString($subslice(new sliceType$3(buf), w), "\xC2\xB5"); } else { prec = 6; ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109); } _tuple = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, prec); w = _tuple[0]; u = _tuple[1]; w = fmtInt($subslice(new sliceType$3(buf), 0, w), u); } else { w = w - (1) >> 0; ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115); _tuple$1 = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, 9); w = _tuple$1[0]; u = _tuple$1[1]; w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true)); u = $div64(u, (new $Uint64(0, 60)), false); if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) { w = w - (1) >> 0; ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109); w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true)); u = $div64(u, (new $Uint64(0, 60)), false); if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) { w = w - (1) >> 0; ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 104); w = fmtInt($subslice(new sliceType$3(buf), 0, w), u); } } } if (neg) { w = w - (1) >> 0; ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); } return ($bytesToString($subslice(new sliceType$3(buf), w))); }; $ptrType(Duration).prototype.String = function() { return this.$get().String(); }; fmtFrac = function(buf, v, prec) { var _tmp, _tmp$1, buf, digit, i, nv, nw, prec, print, v, w; nw = 0; nv = new $Uint64(0, 0); w = buf.$length; print = false; i = 0; while (true) { if (!(i < prec)) { break; } digit = $div64(v, new $Uint64(0, 10), true); print = print || !((digit.$high === 0 && digit.$low === 0)); if (print) { w = w - (1) >> 0; ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = (((digit.$low << 24 >>> 24)) + 48 << 24 >>> 24)); } v = $div64(v, (new $Uint64(0, 10)), false); i = i + (1) >> 0; } if (print) { w = w - (1) >> 0; ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); } _tmp = w; _tmp$1 = v; nw = _tmp; nv = _tmp$1; return [nw, nv]; }; fmtInt = function(buf, v) { var buf, v, w; w = buf.$length; if ((v.$high === 0 && v.$low === 0)) { w = w - (1) >> 0; ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48); } else { while (true) { if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; } w = w - (1) >> 0; ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = ((($div64(v, new $Uint64(0, 10), true).$low << 24 >>> 24)) + 48 << 24 >>> 24)); v = $div64(v, (new $Uint64(0, 10)), false); } } return w; }; Duration.prototype.Nanoseconds = function() { var d; d = this; return (new $Int64(d.$high, d.$low)); }; $ptrType(Duration).prototype.Nanoseconds = function() { return this.$get().Nanoseconds(); }; Duration.prototype.Seconds = function() { var d, nsec, sec; d = this; sec = $div64(d, new Duration(0, 1000000000), false); nsec = $div64(d, new Duration(0, 1000000000), true); return ($flatten64(sec)) + ($flatten64(nsec)) / 1e+09; }; $ptrType(Duration).prototype.Seconds = function() { return this.$get().Seconds(); }; Duration.prototype.Minutes = function() { var d, min, nsec; d = this; min = $div64(d, new Duration(13, 4165425152), false); nsec = $div64(d, new Duration(13, 4165425152), true); return ($flatten64(min)) + ($flatten64(nsec)) / 6e+10; }; $ptrType(Duration).prototype.Minutes = function() { return this.$get().Minutes(); }; Duration.prototype.Hours = function() { var d, hour, nsec; d = this; hour = $div64(d, new Duration(838, 817405952), false); nsec = $div64(d, new Duration(838, 817405952), true); return ($flatten64(hour)) + ($flatten64(nsec)) / 3.6e+12; }; $ptrType(Duration).prototype.Hours = function() { return this.$get().Hours(); }; Duration.prototype.Truncate = function(m) { var d, m, x; d = this; if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) { return d; } return (x = $div64(d, m, true), new Duration(d.$high - x.$high, d.$low - x.$low)); }; $ptrType(Duration).prototype.Truncate = function(m) { return this.$get().Truncate(m); }; lessThanHalf = function(x, y) { var x, x$1, x$2, x$3, x$4, y; return (x$1 = (x$2 = (new $Uint64(x.$high, x.$low)), x$3 = (new $Uint64(x.$high, x.$low)), new $Uint64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)), x$4 = (new $Uint64(y.$high, y.$low)), (x$1.$high < x$4.$high || (x$1.$high === x$4.$high && x$1.$low < x$4.$low))); }; Duration.prototype.Round = function(m) { var d, d1, d1$1, m, r, x, x$1; d = this; if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) { return d; } r = $div64(d, m, true); if ((d.$high < 0 || (d.$high === 0 && d.$low < 0))) { r = new Duration(-r.$high, -r.$low); if (lessThanHalf(r, m)) { return new Duration(d.$high + r.$high, d.$low + r.$low); } d1 = (x = new Duration(d.$high - m.$high, d.$low - m.$low), new Duration(x.$high + r.$high, x.$low + r.$low)); if ((d1.$high < d.$high || (d1.$high === d.$high && d1.$low < d.$low))) { return d1; } return new Duration(-2147483648, 0); } if (lessThanHalf(r, m)) { return new Duration(d.$high - r.$high, d.$low - r.$low); } d1$1 = (x$1 = new Duration(d.$high + m.$high, d.$low + m.$low), new Duration(x$1.$high - r.$high, x$1.$low - r.$low)); if ((d1$1.$high > d.$high || (d1$1.$high === d.$high && d1$1.$low > d.$low))) { return d1$1; } return new Duration(2147483647, 4294967295); }; $ptrType(Duration).prototype.Round = function(m) { return this.$get().Round(m); }; Time.ptr.prototype.Add = function(d) { var d, dsec, nsec, t, te, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; t = this; dsec = ((x = $div64(d, new Duration(0, 1000000000), false), new $Int64(x.$high, x.$low))); nsec = t.nsec() + (((x$1 = $div64(d, new Duration(0, 1000000000), true), x$1.$low + ((x$1.$high >> 31) * 4294967296)) >> 0)) >> 0; if (nsec >= 1000000000) { dsec = (x$2 = new $Int64(0, 1), new $Int64(dsec.$high + x$2.$high, dsec.$low + x$2.$low)); nsec = nsec - (1000000000) >> 0; } else if (nsec < 0) { dsec = (x$3 = new $Int64(0, 1), new $Int64(dsec.$high - x$3.$high, dsec.$low - x$3.$low)); nsec = nsec + (1000000000) >> 0; } t.wall = (x$4 = (x$5 = t.wall, new $Uint64(x$5.$high & ~0, (x$5.$low & ~1073741823) >>> 0)), x$6 = (new $Uint64(0, nsec)), new $Uint64(x$4.$high | x$6.$high, (x$4.$low | x$6.$low) >>> 0)); t.addSec(dsec); if (!((x$7 = (x$8 = t.wall, new $Uint64(x$8.$high & 2147483648, (x$8.$low & 0) >>> 0)), (x$7.$high === 0 && x$7.$low === 0)))) { te = (x$9 = t.ext, x$10 = (new $Int64(d.$high, d.$low)), new $Int64(x$9.$high + x$10.$high, x$9.$low + x$10.$low)); if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (x$11 = (t.ext), (te.$high > x$11.$high || (te.$high === x$11.$high && te.$low > x$11.$low))) || (d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (x$12 = (t.ext), (te.$high < x$12.$high || (te.$high === x$12.$high && te.$low < x$12.$low)))) { t.stripMono(); } else { t.ext = te; } } return t; }; Time.prototype.Add = function(d) { return this.$val.Add(d); }; Time.ptr.prototype.Sub = function(u) { var d, d$1, t, te, u, ue, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; t = this; if (!((x = (x$1 = (x$2 = t.wall, x$3 = u.wall, new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)), new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { te = (t.ext); ue = (u.ext); d = ((x$4 = new $Int64(te.$high - ue.$high, te.$low - ue.$low), new Duration(x$4.$high, x$4.$low))); if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (te.$high > ue.$high || (te.$high === ue.$high && te.$low > ue.$low))) { return new Duration(2147483647, 4294967295); } if ((d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (te.$high < ue.$high || (te.$high === ue.$high && te.$low < ue.$low))) { return new Duration(-2147483648, 0); } return d; } d$1 = (x$5 = $mul64(((x$6 = (x$7 = t.sec(), x$8 = u.sec(), new $Int64(x$7.$high - x$8.$high, x$7.$low - x$8.$low)), new Duration(x$6.$high, x$6.$low))), new Duration(0, 1000000000)), x$9 = (new Duration(0, (t.nsec() - u.nsec() >> 0))), new Duration(x$5.$high + x$9.$high, x$5.$low + x$9.$low)); if ($clone($clone(u, Time).Add(d$1), Time).Equal($clone(t, Time))) { return d$1; } else if ($clone(t, Time).Before($clone(u, Time))) { return new Duration(-2147483648, 0); } else { return new Duration(2147483647, 4294967295); } }; Time.prototype.Sub = function(u) { return this.$val.Sub(u); }; Time.ptr.prototype.AddDate = function(years, months$1, days$1) { var _r, _r$1, _r$2, _tuple, _tuple$1, day, days$1, hour, min, month, months$1, sec, t, year, years, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; day = $f.day; days$1 = $f.days$1; hour = $f.hour; min = $f.min; month = $f.month; months$1 = $f.months$1; sec = $f.sec; t = $f.t; year = $f.year; years = $f.years; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = $clone(t, Time).Date(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; year = _tuple[0]; month = _tuple[1]; day = _tuple[2]; _r$1 = $clone(t, Time).Clock(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; hour = _tuple$1[0]; min = _tuple$1[1]; sec = _tuple$1[2]; _r$2 = Date(year + years >> 0, month + ((months$1 >> 0)) >> 0, day + days$1 >> 0, hour, min, sec, ((t.nsec() >> 0)), $clone(t, Time).Location()); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.AddDate }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.day = day; $f.days$1 = days$1; $f.hour = hour; $f.min = min; $f.month = month; $f.months$1 = months$1; $f.sec = sec; $f.t = t; $f.year = year; $f.years = years; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.AddDate = function(years, months$1, days$1) { return this.$val.AddDate(years, months$1, days$1); }; Time.ptr.prototype.date = function(full) { var _r, _r$1, _tuple, day, full, month, t, yday, year, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; day = $f.day; full = $f.full; month = $f.month; t = $f.t; yday = $f.yday; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: year = 0; month = 0; day = 0; yday = 0; t = this; _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = absDate(_r, full); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; year = _tuple[0]; month = _tuple[1]; day = _tuple[2]; yday = _tuple[3]; $s = -1; return [year, month, day, yday]; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.date }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.day = day; $f.full = full; $f.month = month; $f.t = t; $f.yday = yday; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.date = function(full) { return this.$val.date(full); }; absDate = function(abs, full) { var _q, abs, begin, d, day, end, full, month, n, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, yday, year; year = 0; month = 0; day = 0; yday = 0; d = $div64(abs, new $Uint64(0, 86400), false); n = $div64(d, new $Uint64(0, 146097), false); y = $mul64(new $Uint64(0, 400), n); d = (x = $mul64(new $Uint64(0, 146097), n), new $Uint64(d.$high - x.$high, d.$low - x.$low)); n = $div64(d, new $Uint64(0, 36524), false); n = (x$1 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$1.$high, n.$low - x$1.$low)); y = (x$2 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high + x$2.$high, y.$low + x$2.$low)); d = (x$3 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high - x$3.$high, d.$low - x$3.$low)); n = $div64(d, new $Uint64(0, 1461), false); y = (x$4 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high + x$4.$high, y.$low + x$4.$low)); d = (x$5 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high - x$5.$high, d.$low - x$5.$low)); n = $div64(d, new $Uint64(0, 365), false); n = (x$6 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$6.$high, n.$low - x$6.$low)); y = (x$7 = n, new $Uint64(y.$high + x$7.$high, y.$low + x$7.$low)); d = (x$8 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high - x$8.$high, d.$low - x$8.$low)); year = (((x$9 = (x$10 = (new $Int64(y.$high, y.$low)), new $Int64(x$10.$high + -69, x$10.$low + 4075721025)), x$9.$low + ((x$9.$high >> 31) * 4294967296)) >> 0)); yday = ((d.$low >> 0)); if (!full) { return [year, month, day, yday]; } day = yday; if (isLeap(year)) { if (day > 59) { day = day - (1) >> 0; } else if ((day === 59)) { month = 2; day = 29; return [year, month, day, yday]; } } month = (((_q = day / 31, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); end = (((x$11 = month + 1 >> 0, ((x$11 < 0 || x$11 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$11])) >> 0)); begin = 0; if (day >= end) { month = month + (1) >> 0; begin = end; } else { begin = ((((month < 0 || month >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[month]) >> 0)); } month = month + (1) >> 0; day = (day - begin >> 0) + 1 >> 0; return [year, month, day, yday]; }; daysIn = function(m, year) { var m, x, year; if ((m === 2) && isLeap(year)) { return 29; } return (((((m < 0 || m >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[m]) - (x = m - 1 >> 0, ((x < 0 || x >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x])) >> 0) >> 0)); }; unixTime = function(sec, nsec) { var nsec, sec; return new Time.ptr((new $Uint64(0, nsec)), new $Int64(sec.$high + 14, sec.$low + 2006054656), $pkg.Local); }; Time.ptr.prototype.UTC = function() { var t; t = this; t.setLoc(utcLoc); return t; }; Time.prototype.UTC = function() { return this.$val.UTC(); }; Time.ptr.prototype.Local = function() { var t; t = this; t.setLoc($pkg.Local); return t; }; Time.prototype.Local = function() { return this.$val.Local(); }; Time.ptr.prototype.In = function(loc) { var loc, t; t = this; if (loc === ptrType$2.nil) { $panic(new $String("time: missing Location in call to Time.In")); } t.setLoc(loc); return t; }; Time.prototype.In = function(loc) { return this.$val.In(loc); }; Time.ptr.prototype.Location = function() { var l, t; t = this; l = t.loc; if (l === ptrType$2.nil) { l = $pkg.UTC; } return l; }; Time.prototype.Location = function() { return this.$val.Location(); }; Time.ptr.prototype.Zone = function() { var _r, _tuple, name, offset, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; name = $f.name; offset = $f.offset; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: name = ""; offset = 0; t = this; _r = t.loc.lookup(t.unixSec()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; name = _tuple[0]; offset = _tuple[1]; $s = -1; return [name, offset]; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Zone }; } $f._r = _r; $f._tuple = _tuple; $f.name = name; $f.offset = offset; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.Zone = function() { return this.$val.Zone(); }; Time.ptr.prototype.Unix = function() { var t; t = this; return t.unixSec(); }; Time.prototype.Unix = function() { return this.$val.Unix(); }; Time.ptr.prototype.UnixNano = function() { var t, x, x$1; t = this; return (x = $mul64((t.unixSec()), new $Int64(0, 1000000000)), x$1 = (new $Int64(0, t.nsec())), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); }; Time.prototype.UnixNano = function() { return this.$val.UnixNano(); }; Time.ptr.prototype.MarshalBinary = function() { var _q, _r, _r$1, _tuple, enc, nsec, offset, offsetMin, sec, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; enc = $f.enc; nsec = $f.nsec; offset = $f.offset; offsetMin = $f.offsetMin; sec = $f.sec; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; offsetMin = 0; /* */ if ($clone(t, Time).Location() === $pkg.UTC) { $s = 1; continue; } /* */ $s = 2; continue; /* if ($clone(t, Time).Location() === $pkg.UTC) { */ case 1: offsetMin = -1; $s = 3; continue; /* } else { */ case 2: _r = $clone(t, Time).Zone(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; offset = _tuple[1]; if (!(((_r$1 = offset % 60, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0))) { $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalBinary: zone offset has fractional minute")]; } offset = (_q = offset / (60), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); if (offset < -32768 || (offset === -1) || offset > 32767) { $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalBinary: unexpected zone offset")]; } offsetMin = ((offset << 16 >> 16)); /* } */ case 3: sec = t.sec(); nsec = t.nsec(); enc = new sliceType$3([1, (($shiftRightInt64(sec, 56).$low << 24 >>> 24)), (($shiftRightInt64(sec, 48).$low << 24 >>> 24)), (($shiftRightInt64(sec, 40).$low << 24 >>> 24)), (($shiftRightInt64(sec, 32).$low << 24 >>> 24)), (($shiftRightInt64(sec, 24).$low << 24 >>> 24)), (($shiftRightInt64(sec, 16).$low << 24 >>> 24)), (($shiftRightInt64(sec, 8).$low << 24 >>> 24)), ((sec.$low << 24 >>> 24)), (((nsec >> 24 >> 0) << 24 >>> 24)), (((nsec >> 16 >> 0) << 24 >>> 24)), (((nsec >> 8 >> 0) << 24 >>> 24)), ((nsec << 24 >>> 24)), (((offsetMin >> 8 << 16 >> 16) << 24 >>> 24)), ((offsetMin << 24 >>> 24))]); $s = -1; return [enc, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.MarshalBinary }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.enc = enc; $f.nsec = nsec; $f.offset = offset; $f.offsetMin = offsetMin; $f.sec = sec; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.MarshalBinary = function() { return this.$val.MarshalBinary(); }; Time.ptr.prototype.UnmarshalBinary = function(data$1) { var _r, _tuple, buf, data$1, localoff, nsec, offset, sec, t, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; buf = $f.buf; data$1 = $f.data$1; localoff = $f.localoff; nsec = $f.nsec; offset = $f.offset; sec = $f.sec; t = $f.t; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; buf = data$1; if (buf.$length === 0) { $s = -1; return errors.New("Time.UnmarshalBinary: no data"); } if (!(((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 1))) { $s = -1; return errors.New("Time.UnmarshalBinary: unsupported version"); } if (!((buf.$length === 15))) { $s = -1; return errors.New("Time.UnmarshalBinary: invalid length"); } buf = $subslice(buf, 1); sec = (x = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (new $Int64(0, (7 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 7]))), x$7 = $shiftLeft64((new $Int64(0, (6 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 6]))), 8), new $Int64(x$6.$high | x$7.$high, (x$6.$low | x$7.$low) >>> 0)), x$8 = $shiftLeft64((new $Int64(0, (5 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 5]))), 16), new $Int64(x$5.$high | x$8.$high, (x$5.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Int64(0, (4 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 4]))), 24), new $Int64(x$4.$high | x$9.$high, (x$4.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Int64(0, (3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]))), 32), new $Int64(x$3.$high | x$10.$high, (x$3.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Int64(0, (2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]))), 40), new $Int64(x$2.$high | x$11.$high, (x$2.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Int64(0, (1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]))), 48), new $Int64(x$1.$high | x$12.$high, (x$1.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Int64(0, (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]))), 56), new $Int64(x.$high | x$13.$high, (x.$low | x$13.$low) >>> 0)); buf = $subslice(buf, 8); nsec = (((((3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]) >> 0)) | ((((2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]) >> 0)) << 8 >> 0)) | ((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) >> 0)) << 16 >> 0)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) >> 0)) << 24 >> 0); buf = $subslice(buf, 4); offset = $imul(((((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) << 16 >> 16)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) << 16 >> 16)) << 8 << 16 >> 16)) >> 0)), 60); Time.copy(t, new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil)); t.wall = (new $Uint64(0, nsec)); t.ext = sec; /* */ if (offset === -60) { $s = 1; continue; } /* */ $s = 2; continue; /* if (offset === -60) { */ case 1: t.setLoc(utcLoc); $s = 3; continue; /* } else { */ case 2: _r = $pkg.Local.lookup(t.unixSec()); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; localoff = _tuple[1]; if (offset === localoff) { t.setLoc($pkg.Local); } else { t.setLoc(FixedZone("", offset)); } /* } */ case 3: $s = -1; return $ifaceNil; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.UnmarshalBinary }; } $f._r = _r; $f._tuple = _tuple; $f.buf = buf; $f.data$1 = data$1; $f.localoff = localoff; $f.nsec = nsec; $f.offset = offset; $f.sec = sec; $f.t = t; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.UnmarshalBinary = function(data$1) { return this.$val.UnmarshalBinary(data$1); }; Time.ptr.prototype.GobEncode = function() { var _r, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = $clone(t, Time).MarshalBinary(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.GobEncode }; } $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.GobEncode = function() { return this.$val.GobEncode(); }; Time.ptr.prototype.GobDecode = function(data$1) { var _r, data$1, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; data$1 = $f.data$1; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = t.UnmarshalBinary(data$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.GobDecode }; } $f._r = _r; $f.data$1 = data$1; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.GobDecode = function(data$1) { return this.$val.GobDecode(data$1); }; Time.ptr.prototype.MarshalJSON = function() { var _r, _r$1, b, t, y, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; b = $f.b; t = $f.t; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } y = _r; if (y < 0 || y >= 10000) { $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalJSON: year outside of range [0,9999]")]; } b = $makeSlice(sliceType$3, 0, 37); b = $append(b, 34); _r$1 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } b = _r$1; b = $append(b, 34); $s = -1; return [b, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.MarshalJSON }; } $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.t = t; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.MarshalJSON = function() { return this.$val.MarshalJSON(); }; Time.ptr.prototype.UnmarshalJSON = function(data$1) { var _r, _tuple, data$1, err, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; data$1 = $f.data$1; err = $f.err; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; if (($bytesToString(data$1)) === "null") { $s = -1; return $ifaceNil; } err = $ifaceNil; _r = Parse("\"2006-01-02T15:04:05Z07:00\"", ($bytesToString(data$1))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; Time.copy(t, _tuple[0]); err = _tuple[1]; $s = -1; return err; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.UnmarshalJSON }; } $f._r = _r; $f._tuple = _tuple; $f.data$1 = data$1; $f.err = err; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.UnmarshalJSON = function(data$1) { return this.$val.UnmarshalJSON(data$1); }; Time.ptr.prototype.MarshalText = function() { var _r, _r$1, b, t, y, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; b = $f.b; t = $f.t; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } y = _r; if (y < 0 || y >= 10000) { $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalText: year outside of range [0,9999]")]; } b = $makeSlice(sliceType$3, 0, 35); _r$1 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return [_r$1, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.MarshalText }; } $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.t = t; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.MarshalText = function() { return this.$val.MarshalText(); }; Time.ptr.prototype.UnmarshalText = function(data$1) { var _r, _tuple, data$1, err, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; data$1 = $f.data$1; err = $f.err; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; err = $ifaceNil; _r = Parse("2006-01-02T15:04:05Z07:00", ($bytesToString(data$1))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; Time.copy(t, _tuple[0]); err = _tuple[1]; $s = -1; return err; /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.UnmarshalText }; } $f._r = _r; $f._tuple = _tuple; $f.data$1 = data$1; $f.err = err; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Time.prototype.UnmarshalText = function(data$1) { return this.$val.UnmarshalText(data$1); }; Unix = function(sec, nsec) { var n, nsec, sec, x, x$1, x$2, x$3; if ((nsec.$high < 0 || (nsec.$high === 0 && nsec.$low < 0)) || (nsec.$high > 0 || (nsec.$high === 0 && nsec.$low >= 1000000000))) { n = $div64(nsec, new $Int64(0, 1000000000), false); sec = (x = n, new $Int64(sec.$high + x.$high, sec.$low + x.$low)); nsec = (x$1 = $mul64(n, new $Int64(0, 1000000000)), new $Int64(nsec.$high - x$1.$high, nsec.$low - x$1.$low)); if ((nsec.$high < 0 || (nsec.$high === 0 && nsec.$low < 0))) { nsec = (x$2 = new $Int64(0, 1000000000), new $Int64(nsec.$high + x$2.$high, nsec.$low + x$2.$low)); sec = (x$3 = new $Int64(0, 1), new $Int64(sec.$high - x$3.$high, sec.$low - x$3.$low)); } } return unixTime(sec, (((nsec.$low + ((nsec.$high >> 31) * 4294967296)) >> 0))); }; $pkg.Unix = Unix; isLeap = function(year) { var _r, _r$1, _r$2, year; return ((_r = year % 4, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0) && (!(((_r$1 = year % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0)) || ((_r$2 = year % 400, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 0)); }; norm = function(hi, lo, base) { var _q, _q$1, _tmp, _tmp$1, base, hi, lo, n, n$1, nhi, nlo; nhi = 0; nlo = 0; if (lo < 0) { n = (_q = ((-lo - 1 >> 0)) / base, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0; hi = hi - (n) >> 0; lo = lo + (($imul(n, base))) >> 0; } if (lo >= base) { n$1 = (_q$1 = lo / base, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); hi = hi + (n$1) >> 0; lo = lo - (($imul(n$1, base))) >> 0; } _tmp = hi; _tmp$1 = lo; nhi = _tmp; nlo = _tmp$1; return [nhi, nlo]; }; Date = function(year, month, day, hour, min, sec, nsec, loc) { var _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, abs, d, day, end, hour, loc, m, min, month, n, nsec, offset, sec, start, t, unix, utc, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, year, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; abs = $f.abs; d = $f.d; day = $f.day; end = $f.end; hour = $f.hour; loc = $f.loc; m = $f.m; min = $f.min; month = $f.month; n = $f.n; nsec = $f.nsec; offset = $f.offset; sec = $f.sec; start = $f.start; t = $f.t; unix = $f.unix; utc = $f.utc; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; y = $f.y; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: if (loc === ptrType$2.nil) { $panic(new $String("time: missing Location in call to Date")); } m = ((month >> 0)) - 1 >> 0; _tuple = norm(year, m, 12); year = _tuple[0]; m = _tuple[1]; month = ((m >> 0)) + 1 >> 0; _tuple$1 = norm(sec, nsec, 1000000000); sec = _tuple$1[0]; nsec = _tuple$1[1]; _tuple$2 = norm(min, sec, 60); min = _tuple$2[0]; sec = _tuple$2[1]; _tuple$3 = norm(hour, min, 60); hour = _tuple$3[0]; min = _tuple$3[1]; _tuple$4 = norm(day, hour, 24); day = _tuple$4[0]; hour = _tuple$4[1]; y = ((x = (x$1 = (new $Int64(0, year)), new $Int64(x$1.$high - -69, x$1.$low - 4075721025)), new $Uint64(x.$high, x.$low))); n = $div64(y, new $Uint64(0, 400), false); y = (x$2 = $mul64(new $Uint64(0, 400), n), new $Uint64(y.$high - x$2.$high, y.$low - x$2.$low)); d = $mul64(new $Uint64(0, 146097), n); n = $div64(y, new $Uint64(0, 100), false); y = (x$3 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high - x$3.$high, y.$low - x$3.$low)); d = (x$4 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high + x$4.$high, d.$low + x$4.$low)); n = $div64(y, new $Uint64(0, 4), false); y = (x$5 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high - x$5.$high, y.$low - x$5.$low)); d = (x$6 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high + x$6.$high, d.$low + x$6.$low)); n = y; d = (x$7 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high + x$7.$high, d.$low + x$7.$low)); d = (x$8 = (new $Uint64(0, (x$9 = month - 1 >> 0, ((x$9 < 0 || x$9 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$9])))), new $Uint64(d.$high + x$8.$high, d.$low + x$8.$low)); if (isLeap(year) && month >= 3) { d = (x$10 = new $Uint64(0, 1), new $Uint64(d.$high + x$10.$high, d.$low + x$10.$low)); } d = (x$11 = (new $Uint64(0, (day - 1 >> 0))), new $Uint64(d.$high + x$11.$high, d.$low + x$11.$low)); abs = $mul64(d, new $Uint64(0, 86400)); abs = (x$12 = (new $Uint64(0, ((($imul(hour, 3600)) + ($imul(min, 60)) >> 0) + sec >> 0))), new $Uint64(abs.$high + x$12.$high, abs.$low + x$12.$low)); unix = (x$13 = (new $Int64(abs.$high, abs.$low)), new $Int64(x$13.$high + -2147483647, x$13.$low + 3844486912)); _r = loc.lookup(unix); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple$5 = _r; offset = _tuple$5[1]; start = _tuple$5[3]; end = _tuple$5[4]; /* */ if (!((offset === 0))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!((offset === 0))) { */ case 2: utc = (x$14 = (new $Int64(0, offset)), new $Int64(unix.$high - x$14.$high, unix.$low - x$14.$low)); /* */ if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low))) { $s = 5; continue; } /* */ if ((utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { $s = 6; continue; } /* */ $s = 7; continue; /* if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low))) { */ case 5: _r$1 = loc.lookup(new $Int64(start.$high - 0, start.$low - 1)); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$6 = _r$1; offset = _tuple$6[1]; $s = 7; continue; /* } else if ((utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { */ case 6: _r$2 = loc.lookup(end); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$7 = _r$2; offset = _tuple$7[1]; /* } */ case 7: case 4: unix = (x$15 = (new $Int64(0, offset)), new $Int64(unix.$high - x$15.$high, unix.$low - x$15.$low)); /* } */ case 3: t = $clone(unixTime(unix, ((nsec >> 0))), Time); t.setLoc(loc); $s = -1; return t; /* */ } return; } if ($f === undefined) { $f = { $blk: Date }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f.abs = abs; $f.d = d; $f.day = day; $f.end = end; $f.hour = hour; $f.loc = loc; $f.m = m; $f.min = min; $f.month = month; $f.n = n; $f.nsec = nsec; $f.offset = offset; $f.sec = sec; $f.start = start; $f.t = t; $f.unix = unix; $f.utc = utc; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.y = y; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Date = Date; Time.ptr.prototype.Truncate = function(d) { var _tuple, d, r, t; t = this; t.stripMono(); if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) { return t; } _tuple = div($clone(t, Time), d); r = _tuple[1]; return $clone(t, Time).Add(new Duration(-r.$high, -r.$low)); }; Time.prototype.Truncate = function(d) { return this.$val.Truncate(d); }; Time.ptr.prototype.Round = function(d) { var _tuple, d, r, t; t = this; t.stripMono(); if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) { return t; } _tuple = div($clone(t, Time), d); r = _tuple[1]; if (lessThanHalf(r, d)) { return $clone(t, Time).Add(new Duration(-r.$high, -r.$low)); } return $clone(t, Time).Add(new Duration(d.$high - r.$high, d.$low - r.$low)); }; Time.prototype.Round = function(d) { return this.$val.Round(d); }; div = function(t, d) { var _q, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, d, d0, d1, d1$1, neg, nsec, qmod2, r, sec, sec$1, t, tmp, u0, u0x, u1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; qmod2 = 0; r = new Duration(0, 0); neg = false; nsec = t.nsec(); sec = t.sec(); if ((sec.$high < 0 || (sec.$high === 0 && sec.$low < 0))) { neg = true; sec = new $Int64(-sec.$high, -sec.$low); nsec = -nsec; if (nsec < 0) { nsec = nsec + (1000000000) >> 0; sec = (x = new $Int64(0, 1), new $Int64(sec.$high - x.$high, sec.$low - x.$low)); } } if ((d.$high < 0 || (d.$high === 0 && d.$low < 1000000000)) && (x$1 = $div64(new Duration(0, 1000000000), (new Duration(d.$high + d.$high, d.$low + d.$low)), true), (x$1.$high === 0 && x$1.$low === 0))) { qmod2 = (((_q = nsec / (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) & 1; r = (new Duration(0, (_r = nsec % (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), _r === _r ? _r : $throwRuntimeError("integer divide by zero")))); } else if ((x$2 = $div64(d, new Duration(0, 1000000000), true), (x$2.$high === 0 && x$2.$low === 0))) { d1 = ((x$3 = $div64(d, new Duration(0, 1000000000), false), new $Int64(x$3.$high, x$3.$low))); qmod2 = (((x$4 = $div64(sec, d1, false), x$4.$low + ((x$4.$high >> 31) * 4294967296)) >> 0)) & 1; r = (x$5 = $mul64(((x$6 = $div64(sec, d1, true), new Duration(x$6.$high, x$6.$low))), new Duration(0, 1000000000)), x$7 = (new Duration(0, nsec)), new Duration(x$5.$high + x$7.$high, x$5.$low + x$7.$low)); } else { sec$1 = (new $Uint64(sec.$high, sec.$low)); tmp = $mul64(($shiftRightUint64(sec$1, 32)), new $Uint64(0, 1000000000)); u1 = $shiftRightUint64(tmp, 32); u0 = $shiftLeft64(tmp, 32); tmp = $mul64((new $Uint64(sec$1.$high & 0, (sec$1.$low & 4294967295) >>> 0)), new $Uint64(0, 1000000000)); _tmp = u0; _tmp$1 = new $Uint64(u0.$high + tmp.$high, u0.$low + tmp.$low); u0x = _tmp; u0 = _tmp$1; if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) { u1 = (x$8 = new $Uint64(0, 1), new $Uint64(u1.$high + x$8.$high, u1.$low + x$8.$low)); } _tmp$2 = u0; _tmp$3 = (x$9 = (new $Uint64(0, nsec)), new $Uint64(u0.$high + x$9.$high, u0.$low + x$9.$low)); u0x = _tmp$2; u0 = _tmp$3; if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) { u1 = (x$10 = new $Uint64(0, 1), new $Uint64(u1.$high + x$10.$high, u1.$low + x$10.$low)); } d1$1 = (new $Uint64(d.$high, d.$low)); while (true) { if (!(!((x$11 = $shiftRightUint64(d1$1, 63), (x$11.$high === 0 && x$11.$low === 1))))) { break; } d1$1 = $shiftLeft64(d1$1, (1)); } d0 = new $Uint64(0, 0); while (true) { qmod2 = 0; if ((u1.$high > d1$1.$high || (u1.$high === d1$1.$high && u1.$low > d1$1.$low)) || (u1.$high === d1$1.$high && u1.$low === d1$1.$low) && (u0.$high > d0.$high || (u0.$high === d0.$high && u0.$low >= d0.$low))) { qmod2 = 1; _tmp$4 = u0; _tmp$5 = new $Uint64(u0.$high - d0.$high, u0.$low - d0.$low); u0x = _tmp$4; u0 = _tmp$5; if ((u0.$high > u0x.$high || (u0.$high === u0x.$high && u0.$low > u0x.$low))) { u1 = (x$12 = new $Uint64(0, 1), new $Uint64(u1.$high - x$12.$high, u1.$low - x$12.$low)); } u1 = (x$13 = d1$1, new $Uint64(u1.$high - x$13.$high, u1.$low - x$13.$low)); } if ((d1$1.$high === 0 && d1$1.$low === 0) && (x$14 = (new $Uint64(d.$high, d.$low)), (d0.$high === x$14.$high && d0.$low === x$14.$low))) { break; } d0 = $shiftRightUint64(d0, (1)); d0 = (x$15 = $shiftLeft64((new $Uint64(d1$1.$high & 0, (d1$1.$low & 1) >>> 0)), 63), new $Uint64(d0.$high | x$15.$high, (d0.$low | x$15.$low) >>> 0)); d1$1 = $shiftRightUint64(d1$1, (1)); } r = (new Duration(u0.$high, u0.$low)); } if (neg && !((r.$high === 0 && r.$low === 0))) { qmod2 = (qmod2 ^ (1)) >> 0; r = new Duration(d.$high - r.$high, d.$low - r.$low); } return [qmod2, r]; }; Location.ptr.prototype.get = function() { var l, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; l = $f.l; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: l = this; if (l === ptrType$2.nil) { $s = -1; return utcLoc; } /* */ if (l === localLoc) { $s = 1; continue; } /* */ $s = 2; continue; /* if (l === localLoc) { */ case 1: $r = localOnce.Do(initLocal); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: $s = -1; return l; /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.get }; } $f.l = l; $f.$s = $s; $f.$r = $r; return $f; }; Location.prototype.get = function() { return this.$val.get(); }; Location.ptr.prototype.String = function() { var _r, l, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; l = $f.l; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: l = this; _r = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r.name; /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.String }; } $f._r = _r; $f.l = l; $f.$s = $s; $f.$r = $r; return $f; }; Location.prototype.String = function() { return this.$val.String(); }; FixedZone = function(name, offset) { var l, name, offset, x; l = new Location.ptr(name, new sliceType([new zone.ptr(name, offset, false)]), new sliceType$1([new zoneTrans.ptr(new $Int64(-2147483648, 0), 0, false, false)]), new $Int64(-2147483648, 0), new $Int64(2147483647, 4294967295), ptrType.nil); l.cacheZone = (x = l.zone, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); return l; }; $pkg.FixedZone = FixedZone; Location.ptr.prototype.lookup = function(sec) { var _q, _r, end, hi, isDST, l, lim, lo, m, name, offset, sec, start, tx, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, zone$1, zone$2, zone$3, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; end = $f.end; hi = $f.hi; isDST = $f.isDST; l = $f.l; lim = $f.lim; lo = $f.lo; m = $f.m; name = $f.name; offset = $f.offset; sec = $f.sec; start = $f.start; tx = $f.tx; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; zone$1 = $f.zone$1; zone$2 = $f.zone$2; zone$3 = $f.zone$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: name = ""; offset = 0; isDST = false; start = new $Int64(0, 0); end = new $Int64(0, 0); l = this; _r = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } l = _r; if (l.zone.$length === 0) { name = "UTC"; offset = 0; isDST = false; start = new $Int64(-2147483648, 0); end = new $Int64(2147483647, 4294967295); $s = -1; return [name, offset, isDST, start, end]; } zone$1 = l.cacheZone; if (!(zone$1 === ptrType.nil) && (x = l.cacheStart, (x.$high < sec.$high || (x.$high === sec.$high && x.$low <= sec.$low))) && (x$1 = l.cacheEnd, (sec.$high < x$1.$high || (sec.$high === x$1.$high && sec.$low < x$1.$low)))) { name = zone$1.name; offset = zone$1.offset; isDST = zone$1.isDST; start = l.cacheStart; end = l.cacheEnd; $s = -1; return [name, offset, isDST, start, end]; } if ((l.tx.$length === 0) || (x$2 = (x$3 = l.tx, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).when, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { zone$2 = (x$4 = l.zone, x$5 = l.lookupFirstZone(), ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])); name = zone$2.name; offset = zone$2.offset; isDST = zone$2.isDST; start = new $Int64(-2147483648, 0); if (l.tx.$length > 0) { end = (x$6 = l.tx, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])).when; } else { end = new $Int64(2147483647, 4294967295); } $s = -1; return [name, offset, isDST, start, end]; } tx = l.tx; end = new $Int64(2147483647, 4294967295); lo = 0; hi = tx.$length; while (true) { if (!((hi - lo >> 0) > 1)) { break; } m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; lim = ((m < 0 || m >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + m]).when; if ((sec.$high < lim.$high || (sec.$high === lim.$high && sec.$low < lim.$low))) { end = lim; hi = m; } else { lo = m; } } zone$3 = (x$7 = l.zone, x$8 = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).index, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])); name = zone$3.name; offset = zone$3.offset; isDST = zone$3.isDST; start = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).when; $s = -1; return [name, offset, isDST, start, end]; /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.lookup }; } $f._q = _q; $f._r = _r; $f.end = end; $f.hi = hi; $f.isDST = isDST; $f.l = l; $f.lim = lim; $f.lo = lo; $f.m = m; $f.name = name; $f.offset = offset; $f.sec = sec; $f.start = start; $f.tx = tx; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.zone$1 = zone$1; $f.zone$2 = zone$2; $f.zone$3 = zone$3; $f.$s = $s; $f.$r = $r; return $f; }; Location.prototype.lookup = function(sec) { return this.$val.lookup(sec); }; Location.ptr.prototype.lookupFirstZone = function() { var _i, _ref, l, x, x$1, x$2, x$3, x$4, x$5, zi, zi$1; l = this; if (!l.firstZoneUsed()) { return 0; } if (l.tx.$length > 0 && (x = l.zone, x$1 = (x$2 = l.tx, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])).index, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).isDST) { zi = (((x$3 = l.tx, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).index >> 0)) - 1 >> 0; while (true) { if (!(zi >= 0)) { break; } if (!(x$4 = l.zone, ((zi < 0 || zi >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + zi])).isDST) { return zi; } zi = zi - (1) >> 0; } } _ref = l.zone; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } zi$1 = _i; if (!(x$5 = l.zone, ((zi$1 < 0 || zi$1 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + zi$1])).isDST) { return zi$1; } _i++; } return 0; }; Location.prototype.lookupFirstZone = function() { return this.$val.lookupFirstZone(); }; Location.ptr.prototype.firstZoneUsed = function() { var _i, _ref, l, tx; l = this; _ref = l.tx; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } tx = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), zoneTrans); if (tx.index === 0) { return true; } _i++; } return false; }; Location.prototype.firstZoneUsed = function() { return this.$val.firstZoneUsed(); }; Location.ptr.prototype.lookupName = function(name, unix) { var _i, _i$1, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, i, i$1, isDST, isDST$1, l, nam, name, offset, offset$1, ok, unix, x, x$1, x$2, zone$1, zone$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; i = $f.i; i$1 = $f.i$1; isDST = $f.isDST; isDST$1 = $f.isDST$1; l = $f.l; nam = $f.nam; name = $f.name; offset = $f.offset; offset$1 = $f.offset$1; ok = $f.ok; unix = $f.unix; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; zone$1 = $f.zone$1; zone$2 = $f.zone$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: offset = 0; isDST = false; ok = false; l = this; _r = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } l = _r; _ref = l.zone; _i = 0; /* while (true) { */ case 2: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } i = _i; zone$1 = (x = l.zone, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); /* */ if (zone$1.name === name) { $s = 4; continue; } /* */ $s = 5; continue; /* if (zone$1.name === name) { */ case 4: _r$1 = l.lookup((x$1 = (new $Int64(0, zone$1.offset)), new $Int64(unix.$high - x$1.$high, unix.$low - x$1.$low))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; nam = _tuple[0]; offset$1 = _tuple[1]; isDST$1 = _tuple[2]; if (nam === zone$1.name) { _tmp = offset$1; _tmp$1 = isDST$1; _tmp$2 = true; offset = _tmp; isDST = _tmp$1; ok = _tmp$2; $s = -1; return [offset, isDST, ok]; } /* } */ case 5: _i++; /* } */ $s = 2; continue; case 3: _ref$1 = l.zone; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } i$1 = _i$1; zone$2 = (x$2 = l.zone, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); if (zone$2.name === name) { _tmp$3 = zone$2.offset; _tmp$4 = zone$2.isDST; _tmp$5 = true; offset = _tmp$3; isDST = _tmp$4; ok = _tmp$5; $s = -1; return [offset, isDST, ok]; } _i$1++; } $s = -1; return [offset, isDST, ok]; /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.lookupName }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.i = i; $f.i$1 = i$1; $f.isDST = isDST; $f.isDST$1 = isDST$1; $f.l = l; $f.nam = nam; $f.name = name; $f.offset = offset; $f.offset$1 = offset$1; $f.ok = ok; $f.unix = unix; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.zone$1 = zone$1; $f.zone$2 = zone$2; $f.$s = $s; $f.$r = $r; return $f; }; Location.prototype.lookupName = function(name, unix) { return this.$val.lookupName(name, unix); }; ptrType$4.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; Time.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "AppendFormat", name: "AppendFormat", pkg: "", typ: $funcType([sliceType$3, $String], [sliceType$3], false)}, {prop: "After", name: "After", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Before", name: "Before", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "abs", name: "abs", pkg: "time", typ: $funcType([], [$Uint64], false)}, {prop: "locabs", name: "locabs", pkg: "time", typ: $funcType([], [$String, $Int, $Uint64], false)}, {prop: "Date", name: "Date", pkg: "", typ: $funcType([], [$Int, Month, $Int], false)}, {prop: "Year", name: "Year", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Month", name: "Month", pkg: "", typ: $funcType([], [Month], false)}, {prop: "Day", name: "Day", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Weekday", name: "Weekday", pkg: "", typ: $funcType([], [Weekday], false)}, {prop: "ISOWeek", name: "ISOWeek", pkg: "", typ: $funcType([], [$Int, $Int], false)}, {prop: "Clock", name: "Clock", pkg: "", typ: $funcType([], [$Int, $Int, $Int], false)}, {prop: "Hour", name: "Hour", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Minute", name: "Minute", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Second", name: "Second", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Nanosecond", name: "Nanosecond", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "YearDay", name: "YearDay", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([Time], [Duration], false)}, {prop: "AddDate", name: "AddDate", pkg: "", typ: $funcType([$Int, $Int, $Int], [Time], false)}, {prop: "date", name: "date", pkg: "time", typ: $funcType([$Bool], [$Int, Month, $Int, $Int], false)}, {prop: "UTC", name: "UTC", pkg: "", typ: $funcType([], [Time], false)}, {prop: "Local", name: "Local", pkg: "", typ: $funcType([], [Time], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([ptrType$2], [Time], false)}, {prop: "Location", name: "Location", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Zone", name: "Zone", pkg: "", typ: $funcType([], [$String, $Int], false)}, {prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixNano", name: "UnixNano", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Time], false)}]; ptrType$7.methods = [{prop: "nsec", name: "nsec", pkg: "time", typ: $funcType([], [$Int32], false)}, {prop: "sec", name: "sec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "unixSec", name: "unixSec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "addSec", name: "addSec", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "setLoc", name: "setLoc", pkg: "time", typ: $funcType([ptrType$2], [], false)}, {prop: "stripMono", name: "stripMono", pkg: "time", typ: $funcType([], [], false)}, {prop: "setMono", name: "setMono", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "mono", name: "mono", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$3], [$error], false)}]; Month.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; Weekday.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; Duration.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Nanoseconds", name: "Nanoseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seconds", name: "Seconds", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Minutes", name: "Minutes", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Hours", name: "Hours", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Duration], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Duration], false)}]; ptrType$2.methods = [{prop: "get", name: "get", pkg: "time", typ: $funcType([], [ptrType$2], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "lookup", name: "lookup", pkg: "time", typ: $funcType([$Int64], [$String, $Int, $Bool, $Int64, $Int64], false)}, {prop: "lookupFirstZone", name: "lookupFirstZone", pkg: "time", typ: $funcType([], [$Int], false)}, {prop: "firstZoneUsed", name: "firstZoneUsed", pkg: "time", typ: $funcType([], [$Bool], false)}, {prop: "lookupName", name: "lookupName", pkg: "time", typ: $funcType([$String, $Int64], [$Int, $Bool, $Bool], false)}]; ParseError.init("", [{prop: "Layout", name: "Layout", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "Value", name: "Value", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "LayoutElem", name: "LayoutElem", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "ValueElem", name: "ValueElem", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "Message", name: "Message", anonymous: false, exported: true, typ: $String, tag: ""}]); Time.init("time", [{prop: "wall", name: "wall", anonymous: false, exported: false, typ: $Uint64, tag: ""}, {prop: "ext", name: "ext", anonymous: false, exported: false, typ: $Int64, tag: ""}, {prop: "loc", name: "loc", anonymous: false, exported: false, typ: ptrType$2, tag: ""}]); Location.init("time", [{prop: "name", name: "name", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "zone", name: "zone", anonymous: false, exported: false, typ: sliceType, tag: ""}, {prop: "tx", name: "tx", anonymous: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "cacheStart", name: "cacheStart", anonymous: false, exported: false, typ: $Int64, tag: ""}, {prop: "cacheEnd", name: "cacheEnd", anonymous: false, exported: false, typ: $Int64, tag: ""}, {prop: "cacheZone", name: "cacheZone", anonymous: false, exported: false, typ: ptrType, tag: ""}]); zone.init("time", [{prop: "name", name: "name", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "offset", name: "offset", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "isDST", name: "isDST", anonymous: false, exported: false, typ: $Bool, tag: ""}]); zoneTrans.init("time", [{prop: "when", name: "when", anonymous: false, exported: false, typ: $Int64, tag: ""}, {prop: "index", name: "index", anonymous: false, exported: false, typ: $Uint8, tag: ""}, {prop: "isstd", name: "isstd", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "isutc", name: "isutc", anonymous: false, exported: false, typ: $Bool, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = nosync.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = syscall.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } localLoc = new Location.ptr("", sliceType.nil, sliceType$1.nil, new $Int64(0, 0), new $Int64(0, 0), ptrType.nil); localOnce = new nosync.Once.ptr(false, false); std0x = $toNativeArray($kindInt, [260, 265, 524, 526, 528, 274]); longDayNames = new sliceType$2(["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); shortDayNames = new sliceType$2(["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]); shortMonthNames = new sliceType$2(["---", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]); longMonthNames = new sliceType$2(["---", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]); atoiError = errors.New("time: invalid number"); errBad = errors.New("bad value for field"); errLeadingInt = errors.New("time: bad [0-9]*"); months = $toNativeArray($kindString, ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]); days = $toNativeArray($kindString, ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); unitMap = $makeMap($String.keyFor, [{ k: "ns", v: new $Int64(0, 1) }, { k: "us", v: new $Int64(0, 1000) }, { k: "\xC2\xB5s", v: new $Int64(0, 1000) }, { k: "\xCE\xBCs", v: new $Int64(0, 1000) }, { k: "ms", v: new $Int64(0, 1000000) }, { k: "s", v: new $Int64(0, 1000000000) }, { k: "m", v: new $Int64(13, 4165425152) }, { k: "h", v: new $Int64(838, 817405952) }]); daysBefore = $toNativeArray($kindInt32, [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]); utcLoc = new Location.ptr("UTC", sliceType.nil, sliceType$1.nil, new $Int64(0, 0), new $Int64(0, 0), ptrType.nil); $pkg.UTC = utcLoc; $pkg.Local = localLoc; errLocation = errors.New("time: invalid location name"); badData = errors.New("malformed time zone information"); init(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["internal/poll"] = (function() { var $pkg = {}, $init, errors, io, atomic, syscall, time, pollDesc, TimeoutError, fdMutex, FD, ptrType, ptrType$1, arrayType, sliceType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, sliceType$1, ptrType$8, funcType, funcType$1, ptrType$9, ptrType$10, ptrType$11, sliceType$2, ptrType$12, errClosing, consume, runtime_Semacquire, runtime_Semrelease, accept; errors = $packages["errors"]; io = $packages["io"]; atomic = $packages["sync/atomic"]; syscall = $packages["syscall"]; time = $packages["time"]; pollDesc = $pkg.pollDesc = $newType(0, $kindStruct, "poll.pollDesc", true, "internal/poll", false, function(closing_) { this.$val = this; if (arguments.length === 0) { this.closing = false; return; } this.closing = closing_; }); TimeoutError = $pkg.TimeoutError = $newType(0, $kindStruct, "poll.TimeoutError", true, "internal/poll", true, function() { this.$val = this; if (arguments.length === 0) { return; } }); fdMutex = $pkg.fdMutex = $newType(0, $kindStruct, "poll.fdMutex", true, "internal/poll", false, function(state_, rsema_, wsema_) { this.$val = this; if (arguments.length === 0) { this.state = new $Uint64(0, 0); this.rsema = 0; this.wsema = 0; return; } this.state = state_; this.rsema = rsema_; this.wsema = wsema_; }); FD = $pkg.FD = $newType(0, $kindStruct, "poll.FD", true, "internal/poll", true, function(fdmu_, Sysfd_, pd_, iovecs_, IsStream_, ZeroReadIsEOF_, isFile_) { this.$val = this; if (arguments.length === 0) { this.fdmu = new fdMutex.ptr(new $Uint64(0, 0), 0, 0); this.Sysfd = 0; this.pd = new pollDesc.ptr(false); this.iovecs = ptrType$2.nil; this.IsStream = false; this.ZeroReadIsEOF = false; this.isFile = false; return; } this.fdmu = fdmu_; this.Sysfd = Sysfd_; this.pd = pd_; this.iovecs = iovecs_; this.IsStream = IsStream_; this.ZeroReadIsEOF = ZeroReadIsEOF_; this.isFile = isFile_; }); ptrType = $ptrType($Uint64); ptrType$1 = $ptrType($Uint32); arrayType = $arrayType($Uint8, 4); sliceType = $sliceType(syscall.Iovec); ptrType$2 = $ptrType(sliceType); ptrType$3 = $ptrType($Uint8); ptrType$4 = $ptrType(FD); ptrType$5 = $ptrType(pollDesc); ptrType$6 = $ptrType(TimeoutError); ptrType$7 = $ptrType(fdMutex); sliceType$1 = $sliceType($Uint8); ptrType$8 = $ptrType(syscall.Stat_t); funcType = $funcType([$Uintptr], [], false); funcType$1 = $funcType([$Uintptr], [$Bool], false); ptrType$9 = $ptrType(syscall.Linger); ptrType$10 = $ptrType(syscall.IPMreq); ptrType$11 = $ptrType(syscall.IPv6Mreq); sliceType$2 = $sliceType(sliceType$1); ptrType$12 = $ptrType(sliceType$2); pollDesc.ptr.prototype.init = function(fd) { var fd, pd; pd = this; return $ifaceNil; }; pollDesc.prototype.init = function(fd) { return this.$val.init(fd); }; pollDesc.ptr.prototype.close = function() { var pd; pd = this; }; pollDesc.prototype.close = function() { return this.$val.close(); }; pollDesc.ptr.prototype.evict = function() { var pd; pd = this; pd.closing = true; }; pollDesc.prototype.evict = function() { return this.$val.evict(); }; pollDesc.ptr.prototype.prepare = function(mode, isFile) { var isFile, mode, pd; pd = this; if (pd.closing) { return errClosing(isFile); } return $ifaceNil; }; pollDesc.prototype.prepare = function(mode, isFile) { return this.$val.prepare(mode, isFile); }; pollDesc.ptr.prototype.prepareRead = function(isFile) { var isFile, pd; pd = this; return pd.prepare(114, isFile); }; pollDesc.prototype.prepareRead = function(isFile) { return this.$val.prepareRead(isFile); }; pollDesc.ptr.prototype.prepareWrite = function(isFile) { var isFile, pd; pd = this; return pd.prepare(119, isFile); }; pollDesc.prototype.prepareWrite = function(isFile) { return this.$val.prepareWrite(isFile); }; pollDesc.ptr.prototype.wait = function(mode, isFile) { var isFile, mode, pd; pd = this; if (pd.closing) { return errClosing(isFile); } return $pkg.ErrTimeout; }; pollDesc.prototype.wait = function(mode, isFile) { return this.$val.wait(mode, isFile); }; pollDesc.ptr.prototype.waitRead = function(isFile) { var isFile, pd; pd = this; return pd.wait(114, isFile); }; pollDesc.prototype.waitRead = function(isFile) { return this.$val.waitRead(isFile); }; pollDesc.ptr.prototype.waitWrite = function(isFile) { var isFile, pd; pd = this; return pd.wait(119, isFile); }; pollDesc.prototype.waitWrite = function(isFile) { return this.$val.waitWrite(isFile); }; pollDesc.ptr.prototype.pollable = function() { return true; }; pollDesc.prototype.pollable = function() { return this.$val.pollable(); }; FD.ptr.prototype.SetDeadline = function(t) { var t; return $ifaceNil; }; FD.prototype.SetDeadline = function(t) { return this.$val.SetDeadline(t); }; FD.ptr.prototype.SetReadDeadline = function(t) { var t; return $ifaceNil; }; FD.prototype.SetReadDeadline = function(t) { return this.$val.SetReadDeadline(t); }; FD.ptr.prototype.SetWriteDeadline = function(t) { var t; return $ifaceNil; }; FD.prototype.SetWriteDeadline = function(t) { return this.$val.SetWriteDeadline(t); }; errClosing = function(isFile) { var isFile; if (isFile) { return $pkg.ErrFileClosing; } return $pkg.ErrNetClosing; }; TimeoutError.ptr.prototype.Error = function() { var e; e = this; return "i/o timeout"; }; TimeoutError.prototype.Error = function() { return this.$val.Error(); }; TimeoutError.ptr.prototype.Timeout = function() { var e; e = this; return true; }; TimeoutError.prototype.Timeout = function() { return this.$val.Timeout(); }; TimeoutError.ptr.prototype.Temporary = function() { var e; e = this; return true; }; TimeoutError.prototype.Temporary = function() { return this.$val.Temporary(); }; consume = function(v, n) { var ln0, n, v, x, x$1, x$2, x$3; while (true) { if (!(v.$get().$length > 0)) { break; } ln0 = (new $Int64(0, (x = v.$get(), (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).$length)); if ((ln0.$high > n.$high || (ln0.$high === n.$high && ln0.$low > n.$low))) { (x$2 = v.$get(), (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = $subslice((x$1 = v.$get(), (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), $flatten64(n)))); return; } n = (x$3 = ln0, new $Int64(n.$high - x$3.$high, n.$low - x$3.$low)); v.$set($subslice((v.$get()), 1)); } }; fdMutex.ptr.prototype.incref = function() { var mu, new$1, old, x, x$1; mu = this; while (true) { old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { return false; } new$1 = new $Uint64(old.$high + 0, old.$low + 8); if ((x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { $panic(new $String("inconsistent poll.fdMutex")); } if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { return true; } } }; fdMutex.prototype.incref = function() { return this.$val.incref(); }; fdMutex.ptr.prototype.increfAndClose = function() { var mu, new$1, old, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; mu = this; while (true) { old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { return false; } new$1 = (x$1 = new $Uint64(old.$high | 0, (old.$low | 1) >>> 0), new $Uint64(x$1.$high + 0, x$1.$low + 8)); if ((x$2 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$2.$high === 0 && x$2.$low === 0))) { $panic(new $String("inconsistent poll.fdMutex")); } new$1 = (x$3 = new $Uint64(2147483647, 4286578688), new $Uint64(new$1.$high & ~x$3.$high, (new$1.$low & ~x$3.$low) >>> 0)); if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { while (true) { if (!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { break; } old = (x$5 = new $Uint64(0, 8388608), new $Uint64(old.$high - x$5.$high, old.$low - x$5.$low)); runtime_Semrelease((mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType$1(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)))); } while (true) { if (!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { break; } old = (x$7 = new $Uint64(2048, 0), new $Uint64(old.$high - x$7.$high, old.$low - x$7.$low)); runtime_Semrelease((mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType$1(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)))); } return true; } } }; fdMutex.prototype.increfAndClose = function() { return this.$val.increfAndClose(); }; fdMutex.ptr.prototype.decref = function() { var mu, new$1, old, x, x$1; mu = this; while (true) { old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); if ((x = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x.$high === 0 && x.$low === 0))) { $panic(new $String("inconsistent poll.fdMutex")); } new$1 = new $Uint64(old.$high - 0, old.$low - 8); if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { return (x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$1.$high === 0 && x$1.$low === 1)); } } }; fdMutex.prototype.decref = function() { return this.$val.decref(); }; fdMutex.ptr.prototype.rwlock = function(read) { var _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5; mu = this; _tmp = new $Uint64(0, 0); _tmp$1 = new $Uint64(0, 0); _tmp$2 = new $Uint64(0, 0); mutexBit = _tmp; mutexWait = _tmp$1; mutexMask = _tmp$2; mutexSema = ptrType$1.nil; if (read) { mutexBit = new $Uint64(0, 2); mutexWait = new $Uint64(0, 8388608); mutexMask = new $Uint64(2047, 4286578688); mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType$1(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))); } else { mutexBit = new $Uint64(0, 4); mutexWait = new $Uint64(2048, 0); mutexMask = new $Uint64(2147481600, 0); mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType$1(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))); } while (true) { old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { return false; } new$1 = new $Uint64(0, 0); if ((x$1 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { new$1 = (x$2 = new $Uint64(old.$high | mutexBit.$high, (old.$low | mutexBit.$low) >>> 0), new $Uint64(x$2.$high + 0, x$2.$low + 8)); if ((x$3 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$3.$high === 0 && x$3.$low === 0))) { $panic(new $String("inconsistent poll.fdMutex")); } } else { new$1 = new $Uint64(old.$high + mutexWait.$high, old.$low + mutexWait.$low); if ((x$4 = new $Uint64(new$1.$high & mutexMask.$high, (new$1.$low & mutexMask.$low) >>> 0), (x$4.$high === 0 && x$4.$low === 0))) { $panic(new $String("inconsistent poll.fdMutex")); } } if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { if ((x$5 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0))) { return true; } runtime_Semacquire(mutexSema); } } }; fdMutex.prototype.rwlock = function(read) { return this.$val.rwlock(read); }; fdMutex.ptr.prototype.rwunlock = function(read) { var _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, x$6; mu = this; _tmp = new $Uint64(0, 0); _tmp$1 = new $Uint64(0, 0); _tmp$2 = new $Uint64(0, 0); mutexBit = _tmp; mutexWait = _tmp$1; mutexMask = _tmp$2; mutexSema = ptrType$1.nil; if (read) { mutexBit = new $Uint64(0, 2); mutexWait = new $Uint64(0, 8388608); mutexMask = new $Uint64(2047, 4286578688); mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType$1(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))); } else { mutexBit = new $Uint64(0, 4); mutexWait = new $Uint64(2048, 0); mutexMask = new $Uint64(2147481600, 0); mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType$1(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))); } while (true) { old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); if ((x = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x.$high === 0 && x.$low === 0)) || (x$1 = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { $panic(new $String("inconsistent poll.fdMutex")); } new$1 = (x$2 = new $Uint64(old.$high & ~mutexBit.$high, (old.$low & ~mutexBit.$low) >>> 0), new $Uint64(x$2.$high - 0, x$2.$low - 8)); if (!((x$3 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$3.$high === 0 && x$3.$low === 0)))) { new$1 = (x$4 = mutexWait, new $Uint64(new$1.$high - x$4.$high, new$1.$low - x$4.$low)); } if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { runtime_Semrelease(mutexSema); } return (x$6 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$6.$high === 0 && x$6.$low === 1)); } } }; fdMutex.prototype.rwunlock = function(read) { return this.$val.rwunlock(read); }; runtime_Semacquire = function() { $throwRuntimeError("native function not implemented: internal/poll.runtime_Semacquire"); }; runtime_Semrelease = function() { $throwRuntimeError("native function not implemented: internal/poll.runtime_Semrelease"); }; FD.ptr.prototype.incref = function() { var fd; fd = this; if (!fd.fdmu.incref()) { return errClosing(fd.isFile); } return $ifaceNil; }; FD.prototype.incref = function() { return this.$val.incref(); }; FD.ptr.prototype.decref = function() { var _r, fd, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: fd = this; /* */ if (fd.fdmu.decref()) { $s = 1; continue; } /* */ $s = 2; continue; /* if (fd.fdmu.decref()) { */ case 1: _r = fd.destroy(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* } */ case 2: $s = -1; return $ifaceNil; /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.decref }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; }; FD.prototype.decref = function() { return this.$val.decref(); }; FD.ptr.prototype.readLock = function() { var fd; fd = this; if (!fd.fdmu.rwlock(true)) { return errClosing(fd.isFile); } return $ifaceNil; }; FD.prototype.readLock = function() { return this.$val.readLock(); }; FD.ptr.prototype.readUnlock = function() { var _r, fd, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: fd = this; /* */ if (fd.fdmu.rwunlock(true)) { $s = 1; continue; } /* */ $s = 2; continue; /* if (fd.fdmu.rwunlock(true)) { */ case 1: _r = fd.destroy(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; /* } */ case 2: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.readUnlock }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; }; FD.prototype.readUnlock = function() { return this.$val.readUnlock(); }; FD.ptr.prototype.writeLock = function() { var fd; fd = this; if (!fd.fdmu.rwlock(false)) { return errClosing(fd.isFile); } return $ifaceNil; }; FD.prototype.writeLock = function() { return this.$val.writeLock(); }; FD.ptr.prototype.writeUnlock = function() { var _r, fd, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: fd = this; /* */ if (fd.fdmu.rwunlock(false)) { $s = 1; continue; } /* */ $s = 2; continue; /* if (fd.fdmu.rwunlock(false)) { */ case 1: _r = fd.destroy(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; /* } */ case 2: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.writeUnlock }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; }; FD.prototype.writeUnlock = function() { return this.$val.writeUnlock(); }; FD.ptr.prototype.eofError = function(n, err) { var err, fd, n; fd = this; if ((n === 0) && $interfaceIsEqual(err, $ifaceNil) && fd.ZeroReadIsEOF) { return io.EOF; } return err; }; FD.prototype.eofError = function(n, err) { return this.$val.eofError(n, err); }; FD.ptr.prototype.Fchmod = function(mode) { var err, fd, mode, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; mode = $f.mode; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); $s = -1; return syscall.Fchmod(fd.Sysfd, mode); /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fchmod }; } $f.err = err; $f.fd = fd; $f.mode = mode; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.Fchmod = function(mode) { return this.$val.Fchmod(mode); }; FD.ptr.prototype.Fchown = function(uid, gid) { var err, fd, gid, uid, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; gid = $f.gid; uid = $f.uid; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); $s = -1; return syscall.Fchown(fd.Sysfd, uid, gid); /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fchown }; } $f.err = err; $f.fd = fd; $f.gid = gid; $f.uid = uid; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.Fchown = function(uid, gid) { return this.$val.Fchown(uid, gid); }; FD.ptr.prototype.Ftruncate = function(size) { var err, fd, size, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; size = $f.size; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); $s = -1; return syscall.Ftruncate(fd.Sysfd, size); /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Ftruncate }; } $f.err = err; $f.fd = fd; $f.size = size; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.Ftruncate = function(size) { return this.$val.Ftruncate(size); }; FD.ptr.prototype.Fsync = function() { var err, fd, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); $s = -1; return syscall.Fsync(fd.Sysfd); /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fsync }; } $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.Fsync = function() { return this.$val.Fsync(); }; FD.ptr.prototype.Init = function(net, pollable) { var fd, net, pollable; fd = this; if (net === "file") { fd.isFile = true; } if (!pollable) { return $ifaceNil; } return fd.pd.init(fd); }; FD.prototype.Init = function(net, pollable) { return this.$val.Init(net, pollable); }; FD.ptr.prototype.destroy = function() { var _r, err, fd, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: fd = this; fd.pd.close(); _r = $pkg.CloseFunc(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; fd.Sysfd = -1; $s = -1; return err; /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.destroy }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; }; FD.prototype.destroy = function() { return this.$val.destroy(); }; FD.ptr.prototype.Close = function() { var _r, fd, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: fd = this; if (!fd.fdmu.increfAndClose()) { $s = -1; return errClosing(fd.isFile); } fd.pd.evict(); _r = fd.decref(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Close }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; }; FD.prototype.Close = function() { return this.$val.Close(); }; FD.ptr.prototype.Shutdown = function(how) { var err, fd, how, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; how = $f.how; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); $s = -1; return syscall.Shutdown(fd.Sysfd, how); /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Shutdown }; } $f.err = err; $f.fd = fd; $f.how = how; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.Shutdown = function(how) { return this.$val.Shutdown(how); }; FD.ptr.prototype.Read = function(p) { var _tuple, err, err$1, err$2, fd, n, p, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; n = $f.n; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.readLock(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [0, err]; } $deferred.push([$methodVal(fd, "readUnlock"), []]); if (p.$length === 0) { $s = -1; return [0, $ifaceNil]; } err$1 = fd.pd.prepareRead(fd.isFile); if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [0, err$1]; } if (fd.IsStream && p.$length > 1073741824) { p = $subslice(p, 0, 1073741824); } while (true) { _tuple = syscall.Read(fd.Sysfd, p); n = _tuple[0]; err$2 = _tuple[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { n = 0; if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { err$2 = fd.pd.waitRead(fd.isFile); if ($interfaceIsEqual(err$2, $ifaceNil)) { continue; } } } err$2 = fd.eofError(n, err$2); $s = -1; return [n, err$2]; } $s = -1; return [0, $ifaceNil]; /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Read }; } $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.n = n; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.Read = function(p) { return this.$val.Read(p); }; FD.ptr.prototype.Pread = function(p, off) { var _r, _tuple, err, err$1, fd, n, off, p, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; fd = $f.fd; n = $f.n; off = $f.off; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [0, err]; } if (fd.IsStream && p.$length > 1073741824) { p = $subslice(p, 0, 1073741824); } _tuple = syscall.Pread(fd.Sysfd, p, off); n = _tuple[0]; err$1 = _tuple[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { n = 0; } _r = fd.decref(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; err$1 = fd.eofError(n, err$1); $s = -1; return [n, err$1]; /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Pread }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.n = n; $f.off = off; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; }; FD.prototype.Pread = function(p, off) { return this.$val.Pread(p, off); }; FD.ptr.prototype.ReadFrom = function(p) { var _tuple, err, err$1, err$2, fd, n, p, sa, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; n = $f.n; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.readLock(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [0, $ifaceNil, err]; } $deferred.push([$methodVal(fd, "readUnlock"), []]); err$1 = fd.pd.prepareRead(fd.isFile); if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [0, $ifaceNil, err$1]; } while (true) { _tuple = syscall.Recvfrom(fd.Sysfd, p, 0); n = _tuple[0]; sa = _tuple[1]; err$2 = _tuple[2]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { n = 0; if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { err$2 = fd.pd.waitRead(fd.isFile); if ($interfaceIsEqual(err$2, $ifaceNil)) { continue; } } } err$2 = fd.eofError(n, err$2); $s = -1; return [n, sa, err$2]; } $s = -1; return [0, $ifaceNil, $ifaceNil]; /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.ReadFrom }; } $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.n = n; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.ReadFrom = function(p) { return this.$val.ReadFrom(p); }; FD.ptr.prototype.ReadMsg = function(p, oob) { var _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; flags = $f.flags; n = $f.n; oob = $f.oob; oobn = $f.oobn; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.readLock(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [0, 0, 0, $ifaceNil, err]; } $deferred.push([$methodVal(fd, "readUnlock"), []]); err$1 = fd.pd.prepareRead(fd.isFile); if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [0, 0, 0, $ifaceNil, err$1]; } while (true) { _tuple = syscall.Recvmsg(fd.Sysfd, p, oob, 0); n = _tuple[0]; oobn = _tuple[1]; flags = _tuple[2]; sa = _tuple[3]; err$2 = _tuple[4]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { err$2 = fd.pd.waitRead(fd.isFile); if ($interfaceIsEqual(err$2, $ifaceNil)) { continue; } } } err$2 = fd.eofError(n, err$2); $s = -1; return [n, oobn, flags, sa, err$2]; } $s = -1; return [0, 0, 0, $ifaceNil, $ifaceNil]; /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, 0, $ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.ReadMsg }; } $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.flags = flags; $f.n = n; $f.oob = oob; $f.oobn = oobn; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.ReadMsg = function(p, oob) { return this.$val.ReadMsg(p, oob); }; FD.ptr.prototype.Write = function(p) { var _tuple, err, err$1, err$2, fd, max, n, nn, p, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; max = $f.max; n = $f.n; nn = $f.nn; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.writeLock(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [0, err]; } $deferred.push([$methodVal(fd, "writeUnlock"), []]); err$1 = fd.pd.prepareWrite(fd.isFile); if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [0, err$1]; } nn = 0; while (true) { max = p.$length; if (fd.IsStream && (max - nn >> 0) > 1073741824) { max = nn + 1073741824 >> 0; } _tuple = syscall.Write(fd.Sysfd, $subslice(p, nn, max)); n = _tuple[0]; err$2 = _tuple[1]; if (n > 0) { nn = nn + (n) >> 0; } if (nn === p.$length) { $s = -1; return [nn, err$2]; } if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { err$2 = fd.pd.waitWrite(fd.isFile); if ($interfaceIsEqual(err$2, $ifaceNil)) { continue; } } if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [nn, err$2]; } if (n === 0) { $s = -1; return [nn, io.ErrUnexpectedEOF]; } } $s = -1; return [0, $ifaceNil]; /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Write }; } $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.max = max; $f.n = n; $f.nn = nn; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.Write = function(p) { return this.$val.Write(p); }; FD.ptr.prototype.Pwrite = function(p, off) { var _tuple, err, err$1, fd, max, n, nn, off, p, x, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; fd = $f.fd; max = $f.max; n = $f.n; nn = $f.nn; off = $f.off; p = $f.p; x = $f.x; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [0, err]; } $deferred.push([$methodVal(fd, "decref"), []]); nn = 0; while (true) { max = p.$length; if (fd.IsStream && (max - nn >> 0) > 1073741824) { max = nn + 1073741824 >> 0; } _tuple = syscall.Pwrite(fd.Sysfd, $subslice(p, nn, max), (x = (new $Int64(0, nn)), new $Int64(off.$high + x.$high, off.$low + x.$low))); n = _tuple[0]; err$1 = _tuple[1]; if (n > 0) { nn = nn + (n) >> 0; } if (nn === p.$length) { $s = -1; return [nn, err$1]; } if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [nn, err$1]; } if (n === 0) { $s = -1; return [nn, io.ErrUnexpectedEOF]; } } $s = -1; return [0, $ifaceNil]; /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Pwrite }; } $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.max = max; $f.n = n; $f.nn = nn; $f.off = off; $f.p = p; $f.x = x; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.Pwrite = function(p, off) { return this.$val.Pwrite(p, off); }; FD.ptr.prototype.WriteTo = function(p, sa) { var _r, err, err$1, err$2, fd, p, sa, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.writeLock(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [0, err]; } $deferred.push([$methodVal(fd, "writeUnlock"), []]); err$1 = fd.pd.prepareWrite(fd.isFile); if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [0, err$1]; } /* while (true) { */ case 1: _r = syscall.Sendto(fd.Sysfd, p, 0, sa); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err$2 = _r; if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { err$2 = fd.pd.waitWrite(fd.isFile); if ($interfaceIsEqual(err$2, $ifaceNil)) { /* continue; */ $s = 1; continue; } } if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [0, err$2]; } $s = -1; return [p.$length, $ifaceNil]; /* } */ $s = 1; continue; case 2: $s = -1; return [0, $ifaceNil]; /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.WriteTo }; } $f._r = _r; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.WriteTo = function(p, sa) { return this.$val.WriteTo(p, sa); }; FD.ptr.prototype.WriteMsg = function(p, oob, sa) { var _r, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; n = $f.n; oob = $f.oob; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.writeLock(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [0, 0, err]; } $deferred.push([$methodVal(fd, "writeUnlock"), []]); err$1 = fd.pd.prepareWrite(fd.isFile); if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [0, 0, err$1]; } /* while (true) { */ case 1: _r = syscall.SendmsgN(fd.Sysfd, p, oob, sa, 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err$2 = _tuple[1]; if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { err$2 = fd.pd.waitWrite(fd.isFile); if ($interfaceIsEqual(err$2, $ifaceNil)) { /* continue; */ $s = 1; continue; } } if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [n, 0, err$2]; } $s = -1; return [n, oob.$length, err$2]; /* } */ $s = 1; continue; case 2: $s = -1; return [0, 0, $ifaceNil]; /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.WriteMsg }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.n = n; $f.oob = oob; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.WriteMsg = function(p, oob, sa) { return this.$val.WriteMsg(p, oob, sa); }; FD.ptr.prototype.Accept = function() { var _1, _r, _tuple, err, err$1, err$2, errcall, fd, rsa, s, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; errcall = $f.errcall; fd = $f.fd; rsa = $f.rsa; s = $f.s; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.readLock(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [-1, $ifaceNil, "", err]; } $deferred.push([$methodVal(fd, "readUnlock"), []]); err$1 = fd.pd.prepareRead(fd.isFile); if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [-1, $ifaceNil, "", err$1]; } /* while (true) { */ case 1: _r = accept(fd.Sysfd); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; s = _tuple[0]; rsa = _tuple[1]; errcall = _tuple[2]; err$2 = _tuple[3]; if ($interfaceIsEqual(err$2, $ifaceNil)) { $s = -1; return [s, rsa, "", err$2]; } _1 = err$2; if ($interfaceIsEqual(_1, new syscall.Errno((35)))) { if (fd.pd.pollable()) { err$2 = fd.pd.waitRead(fd.isFile); if ($interfaceIsEqual(err$2, $ifaceNil)) { /* continue; */ $s = 1; continue; } } } else if ($interfaceIsEqual(_1, new syscall.Errno((53)))) { /* continue; */ $s = 1; continue; } $s = -1; return [-1, $ifaceNil, errcall, err$2]; /* } */ $s = 1; continue; case 2: $s = -1; return [0, $ifaceNil, "", $ifaceNil]; /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Accept }; } $f._1 = _1; $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.errcall = errcall; $f.fd = fd; $f.rsa = rsa; $f.s = s; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.Accept = function() { return this.$val.Accept(); }; FD.ptr.prototype.Seek = function(offset, whence) { var err, fd, offset, whence, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; offset = $f.offset; whence = $f.whence; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [new $Int64(0, 0), err]; } $deferred.push([$methodVal(fd, "decref"), []]); $s = -1; return syscall.Seek(fd.Sysfd, offset, whence); /* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Seek }; } $f.err = err; $f.fd = fd; $f.offset = offset; $f.whence = whence; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.Seek = function(offset, whence) { return this.$val.Seek(offset, whence); }; FD.ptr.prototype.ReadDirent = function(buf) { var _tuple, buf, err, err$1, fd, n, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; buf = $f.buf; err = $f.err; err$1 = $f.err$1; fd = $f.fd; n = $f.n; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [0, err]; } $deferred.push([$methodVal(fd, "decref"), []]); while (true) { _tuple = syscall.ReadDirent(fd.Sysfd, buf); n = _tuple[0]; err$1 = _tuple[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { n = 0; if ($interfaceIsEqual(err$1, new syscall.Errno(35)) && fd.pd.pollable()) { err$1 = fd.pd.waitRead(fd.isFile); if ($interfaceIsEqual(err$1, $ifaceNil)) { continue; } } } $s = -1; return [n, err$1]; } $s = -1; return [0, $ifaceNil]; /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.ReadDirent }; } $f._tuple = _tuple; $f.buf = buf; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.n = n; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.ReadDirent = function(buf) { return this.$val.ReadDirent(buf); }; FD.ptr.prototype.Fchdir = function() { var err, fd, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); $s = -1; return syscall.Fchdir(fd.Sysfd); /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fchdir }; } $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.Fchdir = function() { return this.$val.Fchdir(); }; FD.ptr.prototype.Fstat = function(s) { var err, fd, s, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; s = $f.s; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); $s = -1; return syscall.Fstat(fd.Sysfd, s); /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fstat }; } $f.err = err; $f.fd = fd; $f.s = s; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.Fstat = function(s) { return this.$val.Fstat(s); }; FD.ptr.prototype.WaitWrite = function() { var fd; fd = this; return fd.pd.waitWrite(fd.isFile); }; FD.prototype.WaitWrite = function() { return this.$val.WaitWrite(); }; FD.ptr.prototype.RawControl = function(f) { var err, f, fd, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; f = $f.f; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); $r = f(((fd.Sysfd >>> 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $ifaceNil; /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.RawControl }; } $f.err = err; $f.f = f; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.RawControl = function(f) { return this.$val.RawControl(f); }; FD.ptr.prototype.RawRead = function(f) { var _r, err, err$1, err$2, f, fd, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.readLock(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "readUnlock"), []]); err$1 = fd.pd.prepareRead(fd.isFile); if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return err$1; } /* while (true) { */ case 1: _r = f(((fd.Sysfd >>> 0))); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 3; continue; } /* */ $s = 4; continue; /* if (_r) { */ case 3: $s = -1; return $ifaceNil; /* } */ case 4: err$2 = fd.pd.waitRead(fd.isFile); if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return err$2; } /* } */ $s = 1; continue; case 2: $s = -1; return $ifaceNil; /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.RawRead }; } $f._r = _r; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.RawRead = function(f) { return this.$val.RawRead(f); }; FD.ptr.prototype.RawWrite = function(f) { var _r, err, err$1, err$2, f, fd, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.writeLock(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "writeUnlock"), []]); err$1 = fd.pd.prepareWrite(fd.isFile); if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return err$1; } /* while (true) { */ case 1: _r = f(((fd.Sysfd >>> 0))); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 3; continue; } /* */ $s = 4; continue; /* if (_r) { */ case 3: $s = -1; return $ifaceNil; /* } */ case 4: err$2 = fd.pd.waitWrite(fd.isFile); if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return err$2; } /* } */ $s = 1; continue; case 2: $s = -1; return $ifaceNil; /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.RawWrite }; } $f._r = _r; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.RawWrite = function(f) { return this.$val.RawWrite(f); }; FD.ptr.prototype.SetsockoptInt = function(level, name, arg) { var arg, err, fd, level, name, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; arg = $f.arg; err = $f.err; fd = $f.fd; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); $s = -1; return syscall.SetsockoptInt(fd.Sysfd, level, name, arg); /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptInt }; } $f.arg = arg; $f.err = err; $f.fd = fd; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.SetsockoptInt = function(level, name, arg) { return this.$val.SetsockoptInt(level, name, arg); }; FD.ptr.prototype.SetsockoptInet4Addr = function(level, name, arg) { var arg, err, fd, level, name, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; arg = $f.arg; err = $f.err; fd = $f.fd; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); $s = -1; return syscall.SetsockoptInet4Addr(fd.Sysfd, level, name, $clone(arg, arrayType)); /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptInet4Addr }; } $f.arg = arg; $f.err = err; $f.fd = fd; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.SetsockoptInet4Addr = function(level, name, arg) { return this.$val.SetsockoptInet4Addr(level, name, arg); }; FD.ptr.prototype.SetsockoptLinger = function(level, name, l) { var err, fd, l, level, name, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; l = $f.l; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); $s = -1; return syscall.SetsockoptLinger(fd.Sysfd, level, name, l); /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptLinger }; } $f.err = err; $f.fd = fd; $f.l = l; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.SetsockoptLinger = function(level, name, l) { return this.$val.SetsockoptLinger(level, name, l); }; FD.ptr.prototype.SetsockoptByte = function(level, name, arg) { var arg, err, fd, level, name, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; arg = $f.arg; err = $f.err; fd = $f.fd; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); $s = -1; return syscall.SetsockoptByte(fd.Sysfd, level, name, arg); /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptByte }; } $f.arg = arg; $f.err = err; $f.fd = fd; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.SetsockoptByte = function(level, name, arg) { return this.$val.SetsockoptByte(level, name, arg); }; FD.ptr.prototype.SetsockoptIPMreq = function(level, name, mreq) { var err, fd, level, mreq, name, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; level = $f.level; mreq = $f.mreq; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); $s = -1; return syscall.SetsockoptIPMreq(fd.Sysfd, level, name, mreq); /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptIPMreq }; } $f.err = err; $f.fd = fd; $f.level = level; $f.mreq = mreq; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.SetsockoptIPMreq = function(level, name, mreq) { return this.$val.SetsockoptIPMreq(level, name, mreq); }; FD.ptr.prototype.SetsockoptIPv6Mreq = function(level, name, mreq) { var err, fd, level, mreq, name, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; level = $f.level; mreq = $f.mreq; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); fd = this; err = fd.incref(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); $s = -1; return syscall.SetsockoptIPv6Mreq(fd.Sysfd, level, name, mreq); /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptIPv6Mreq }; } $f.err = err; $f.fd = fd; $f.level = level; $f.mreq = mreq; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.SetsockoptIPv6Mreq = function(level, name, mreq) { return this.$val.SetsockoptIPv6Mreq(level, name, mreq); }; accept = function(s) { var _r, _r$1, _tuple, err, ns, s, sa, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; ns = $f.ns; s = $f.s; sa = $f.sa; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = $pkg.AcceptFunc(s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ns = _tuple[0]; sa = _tuple[1]; err = _tuple[2]; if ($interfaceIsEqual(err, $ifaceNil)) { syscall.CloseOnExec(ns); } if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [-1, $ifaceNil, "accept", err]; } err = syscall.SetNonblock(ns, true); /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: _r$1 = $pkg.CloseFunc(ns); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; $s = -1; return [-1, $ifaceNil, "setnonblock", err]; /* } */ case 3: $s = -1; return [ns, sa, "", $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: accept }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.ns = ns; $f.s = s; $f.sa = sa; $f.$s = $s; $f.$r = $r; return $f; }; FD.ptr.prototype.Writev = function(v) { var _i, _ref, _tuple, chunk, e0, err, err$1, err$2, fd, iovecs, maxVec, n, v, wrote, x, x$1, x$2, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _ref = $f._ref; _tuple = $f._tuple; chunk = $f.chunk; e0 = $f.e0; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; iovecs = $f.iovecs; maxVec = $f.maxVec; n = $f.n; v = $f.v; wrote = $f.wrote; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); iovecs = [iovecs]; fd = this; err = fd.writeLock(); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [new $Int64(0, 0), err]; } $deferred.push([$methodVal(fd, "writeUnlock"), []]); err$1 = fd.pd.prepareWrite(fd.isFile); if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [new $Int64(0, 0), err$1]; } iovecs[0] = sliceType.nil; if (!(fd.iovecs === ptrType$2.nil)) { iovecs[0] = fd.iovecs.$get(); } maxVec = 1024; n = new $Int64(0, 0); err$2 = $ifaceNil; /* while (true) { */ case 1: /* if (!(v.$get().$length > 0)) { break; } */ if(!(v.$get().$length > 0)) { $s = 2; continue; } iovecs[0] = $subslice(iovecs[0], 0, 0); _ref = v.$get(); _i = 0; /* while (true) { */ case 3: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } chunk = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (chunk.$length === 0) { _i++; /* continue; */ $s = 3; continue; } iovecs[0] = $append(iovecs[0], new syscall.Iovec.ptr($indexPtr(chunk.$array, chunk.$offset + 0, ptrType$3), new $Uint64(0, 0))); if (fd.IsStream && chunk.$length > 1073741824) { (x = iovecs[0].$length - 1 >> 0, ((x < 0 || x >= iovecs[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : iovecs[0].$array[iovecs[0].$offset + x])).SetLen(1073741824); /* break; */ $s = 4; continue; } (x$1 = iovecs[0].$length - 1 >> 0, ((x$1 < 0 || x$1 >= iovecs[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : iovecs[0].$array[iovecs[0].$offset + x$1])).SetLen(chunk.$length); if (iovecs[0].$length === maxVec) { /* break; */ $s = 4; continue; } _i++; /* } */ $s = 3; continue; case 4: if (iovecs[0].$length === 0) { /* break; */ $s = 2; continue; } fd.iovecs = (iovecs.$ptr || (iovecs.$ptr = new ptrType$2(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, iovecs))); _tuple = syscall.Syscall(121, ((fd.Sysfd >>> 0)), (($sliceToArray(iovecs[0]))), ((iovecs[0].$length >>> 0))); wrote = _tuple[0]; e0 = _tuple[2]; if (wrote === 4294967295) { wrote = 0; } $r = $pkg.TestHookDidWritev(((wrote >> 0))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } n = (x$2 = (new $Int64(0, wrote.constructor === Number ? wrote : 1)), new $Int64(n.$high + x$2.$high, n.$low + x$2.$low)); consume(v, (new $Int64(0, wrote.constructor === Number ? wrote : 1))); if (e0 === 35) { err$2 = fd.pd.waitWrite(fd.isFile); if ($interfaceIsEqual(err$2, $ifaceNil)) { /* continue; */ $s = 1; continue; } } else if (!((e0 === 0))) { err$2 = new syscall.Errno((e0)); } if (!($interfaceIsEqual(err$2, $ifaceNil))) { /* break; */ $s = 2; continue; } if ((n.$high === 0 && n.$low === 0)) { err$2 = io.ErrUnexpectedEOF; /* break; */ $s = 2; continue; } /* } */ $s = 1; continue; case 2: $s = -1; return [n, err$2]; /* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Writev }; } $f._i = _i; $f._ref = _ref; $f._tuple = _tuple; $f.chunk = chunk; $f.e0 = e0; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.iovecs = iovecs; $f.maxVec = maxVec; $f.n = n; $f.v = v; $f.wrote = wrote; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; FD.prototype.Writev = function(v) { return this.$val.Writev(v); }; ptrType$5.methods = [{prop: "init", name: "init", pkg: "internal/poll", typ: $funcType([ptrType$4], [$error], false)}, {prop: "close", name: "close", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "evict", name: "evict", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "prepare", name: "prepare", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "prepareRead", name: "prepareRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "prepareWrite", name: "prepareWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "wait", name: "wait", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "waitRead", name: "waitRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitWrite", name: "waitWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitCanceled", name: "waitCanceled", pkg: "internal/poll", typ: $funcType([$Int], [], false)}, {prop: "pollable", name: "pollable", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}]; ptrType$6.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; ptrType$7.methods = [{prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "increfAndClose", name: "increfAndClose", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "rwlock", name: "rwlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}, {prop: "rwunlock", name: "rwunlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}]; ptrType$4.methods = [{prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readLock", name: "readLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readUnlock", name: "readUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "writeLock", name: "writeLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "writeUnlock", name: "writeUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "eofError", name: "eofError", pkg: "internal/poll", typ: $funcType([$Int, $error], [$error], false)}, {prop: "Fchmod", name: "Fchmod", pkg: "", typ: $funcType([$Uint32], [$error], false)}, {prop: "Fchown", name: "Fchown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Ftruncate", name: "Ftruncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Fsync", name: "Fsync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([$String, $Bool], [$error], false)}, {prop: "destroy", name: "destroy", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Pread", name: "Pread", pkg: "", typ: $funcType([sliceType$1, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([sliceType$1], [$Int, syscall.Sockaddr, $error], false)}, {prop: "ReadMsg", name: "ReadMsg", pkg: "", typ: $funcType([sliceType$1, sliceType$1], [$Int, $Int, $Int, syscall.Sockaddr, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Pwrite", name: "Pwrite", pkg: "", typ: $funcType([sliceType$1, $Int64], [$Int, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([sliceType$1, syscall.Sockaddr], [$Int, $error], false)}, {prop: "WriteMsg", name: "WriteMsg", pkg: "", typ: $funcType([sliceType$1, sliceType$1, syscall.Sockaddr], [$Int, $Int, $error], false)}, {prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [$Int, syscall.Sockaddr, $String, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "ReadDirent", name: "ReadDirent", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Fchdir", name: "Fchdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Fstat", name: "Fstat", pkg: "", typ: $funcType([ptrType$8], [$error], false)}, {prop: "WaitWrite", name: "WaitWrite", pkg: "", typ: $funcType([], [$error], false)}, {prop: "RawControl", name: "RawControl", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "RawRead", name: "RawRead", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "RawWrite", name: "RawWrite", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "SetsockoptInt", name: "SetsockoptInt", pkg: "", typ: $funcType([$Int, $Int, $Int], [$error], false)}, {prop: "SetsockoptInet4Addr", name: "SetsockoptInet4Addr", pkg: "", typ: $funcType([$Int, $Int, arrayType], [$error], false)}, {prop: "SetsockoptLinger", name: "SetsockoptLinger", pkg: "", typ: $funcType([$Int, $Int, ptrType$9], [$error], false)}, {prop: "SetsockoptByte", name: "SetsockoptByte", pkg: "", typ: $funcType([$Int, $Int, $Uint8], [$error], false)}, {prop: "SetsockoptIPMreq", name: "SetsockoptIPMreq", pkg: "", typ: $funcType([$Int, $Int, ptrType$10], [$error], false)}, {prop: "SetsockoptIPv6Mreq", name: "SetsockoptIPv6Mreq", pkg: "", typ: $funcType([$Int, $Int, ptrType$11], [$error], false)}, {prop: "Writev", name: "Writev", pkg: "", typ: $funcType([ptrType$12], [$Int64, $error], false)}]; pollDesc.init("internal/poll", [{prop: "closing", name: "closing", anonymous: false, exported: false, typ: $Bool, tag: ""}]); TimeoutError.init("", []); fdMutex.init("internal/poll", [{prop: "state", name: "state", anonymous: false, exported: false, typ: $Uint64, tag: ""}, {prop: "rsema", name: "rsema", anonymous: false, exported: false, typ: $Uint32, tag: ""}, {prop: "wsema", name: "wsema", anonymous: false, exported: false, typ: $Uint32, tag: ""}]); FD.init("internal/poll", [{prop: "fdmu", name: "fdmu", anonymous: false, exported: false, typ: fdMutex, tag: ""}, {prop: "Sysfd", name: "Sysfd", anonymous: false, exported: true, typ: $Int, tag: ""}, {prop: "pd", name: "pd", anonymous: false, exported: false, typ: pollDesc, tag: ""}, {prop: "iovecs", name: "iovecs", anonymous: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "IsStream", name: "IsStream", anonymous: false, exported: true, typ: $Bool, tag: ""}, {prop: "ZeroReadIsEOF", name: "ZeroReadIsEOF", anonymous: false, exported: true, typ: $Bool, tag: ""}, {prop: "isFile", name: "isFile", anonymous: false, exported: false, typ: $Bool, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = atomic.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = syscall.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = time.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $pkg.ErrNetClosing = errors.New("use of closed network connection"); $pkg.ErrFileClosing = errors.New("use of closed file"); $pkg.ErrTimeout = new TimeoutError.ptr(); $pkg.TestHookDidWritev = (function(wrote) { var wrote; }); $pkg.CloseFunc = syscall.Close; $pkg.AcceptFunc = syscall.Accept; /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["os"] = (function() { var $pkg = {}, $init, errors, js, poll, io, runtime, sync, atomic, syscall, time, PathError, SyscallError, LinkError, file, dirInfo, File, FileInfo, FileMode, fileStat, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, ptrType$3, ptrType$4, arrayType, sliceType$5, ptrType$12, ptrType$13, funcType$1, ptrType$15, arrayType$3, arrayType$5, ptrType$16, errFinished, lstat, useSyscallwd, runtime_args, init, runtime_beforeExit, NewSyscallError, IsNotExist, underlyingError, wrapSyscallError, isNotExist, Open, Chmod, sigpipe, syscallMode, chmod, fixLongPath, NewFile, newFile, epipecheck, OpenFile, init$1, useSyscallwdDarwin, basename, init$2, Exit, fillFileStatFromSys, timespecToTime, Stat, Lstat; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; poll = $packages["internal/poll"]; io = $packages["io"]; runtime = $packages["runtime"]; sync = $packages["sync"]; atomic = $packages["sync/atomic"]; syscall = $packages["syscall"]; time = $packages["time"]; PathError = $pkg.PathError = $newType(0, $kindStruct, "os.PathError", true, "os", true, function(Op_, Path_, Err_) { this.$val = this; if (arguments.length === 0) { this.Op = ""; this.Path = ""; this.Err = $ifaceNil; return; } this.Op = Op_; this.Path = Path_; this.Err = Err_; }); SyscallError = $pkg.SyscallError = $newType(0, $kindStruct, "os.SyscallError", true, "os", true, function(Syscall_, Err_) { this.$val = this; if (arguments.length === 0) { this.Syscall = ""; this.Err = $ifaceNil; return; } this.Syscall = Syscall_; this.Err = Err_; }); LinkError = $pkg.LinkError = $newType(0, $kindStruct, "os.LinkError", true, "os", true, function(Op_, Old_, New_, Err_) { this.$val = this; if (arguments.length === 0) { this.Op = ""; this.Old = ""; this.New = ""; this.Err = $ifaceNil; return; } this.Op = Op_; this.Old = Old_; this.New = New_; this.Err = Err_; }); file = $pkg.file = $newType(0, $kindStruct, "os.file", true, "os", false, function(pfd_, name_, dirinfo_, nonblock_) { this.$val = this; if (arguments.length === 0) { this.pfd = new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.pollDesc.ptr(false), ptrType$12.nil, false, false, false); this.name = ""; this.dirinfo = ptrType$1.nil; this.nonblock = false; return; } this.pfd = pfd_; this.name = name_; this.dirinfo = dirinfo_; this.nonblock = nonblock_; }); dirInfo = $pkg.dirInfo = $newType(0, $kindStruct, "os.dirInfo", true, "os", false, function(buf_, nbuf_, bufp_) { this.$val = this; if (arguments.length === 0) { this.buf = sliceType$2.nil; this.nbuf = 0; this.bufp = 0; return; } this.buf = buf_; this.nbuf = nbuf_; this.bufp = bufp_; }); File = $pkg.File = $newType(0, $kindStruct, "os.File", true, "os", true, function(file_) { this.$val = this; if (arguments.length === 0) { this.file = ptrType$13.nil; return; } this.file = file_; }); FileInfo = $pkg.FileInfo = $newType(8, $kindInterface, "os.FileInfo", true, "os", true, null); FileMode = $pkg.FileMode = $newType(4, $kindUint32, "os.FileMode", true, "os", true, null); fileStat = $pkg.fileStat = $newType(0, $kindStruct, "os.fileStat", true, "os", false, function(name_, size_, mode_, modTime_, sys_) { this.$val = this; if (arguments.length === 0) { this.name = ""; this.size = new $Int64(0, 0); this.mode = 0; this.modTime = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil); this.sys = new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$3.zero()); return; } this.name = name_; this.size = size_; this.mode = mode_; this.modTime = modTime_; this.sys = sys_; }); sliceType = $sliceType($String); ptrType = $ptrType(File); sliceType$1 = $sliceType(FileInfo); ptrType$1 = $ptrType(dirInfo); sliceType$2 = $sliceType($Uint8); ptrType$2 = $ptrType(PathError); ptrType$3 = $ptrType(LinkError); ptrType$4 = $ptrType(SyscallError); arrayType = $arrayType($Uint8, 4); sliceType$5 = $sliceType(syscall.Iovec); ptrType$12 = $ptrType(sliceType$5); ptrType$13 = $ptrType(file); funcType$1 = $funcType([ptrType$13], [$error], false); ptrType$15 = $ptrType(time.Location); arrayType$3 = $arrayType($Int64, 2); arrayType$5 = $arrayType($Uint8, 32); ptrType$16 = $ptrType(fileStat); runtime_args = function() { return $pkg.Args; }; init = function() { var argv, i, process; process = $global.process; if (!(process === undefined)) { argv = process.argv; $pkg.Args = $makeSlice(sliceType, ($parseInt(argv.length) - 1 >> 0)); i = 0; while (true) { if (!(i < ($parseInt(argv.length) - 1 >> 0))) { break; } ((i < 0 || i >= $pkg.Args.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Args.$array[$pkg.Args.$offset + i] = $internalize(argv[(i + 1 >> 0)], $String)); i = i + (1) >> 0; } } if ($pkg.Args.$length === 0) { $pkg.Args = new sliceType(["?"]); } }; runtime_beforeExit = function() { }; File.ptr.prototype.Readdir = function(n) { var _r, f, n, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; if (f === ptrType.nil) { $s = -1; return [sliceType$1.nil, $pkg.ErrInvalid]; } _r = f.readdir(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Readdir }; } $f._r = _r; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.Readdir = function(n) { return this.$val.Readdir(n); }; File.ptr.prototype.Readdirnames = function(n) { var _r, _tmp, _tmp$1, _tuple, err, f, n, names, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; err = $f.err; f = $f.f; n = $f.n; names = $f.names; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: names = sliceType.nil; err = $ifaceNil; f = this; if (f === ptrType.nil) { _tmp = sliceType.nil; _tmp$1 = $pkg.ErrInvalid; names = _tmp; err = _tmp$1; $s = -1; return [names, err]; } _r = f.readdirnames(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; names = _tuple[0]; err = _tuple[1]; $s = -1; return [names, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Readdirnames }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.n = n; $f.names = names; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.Readdirnames = function(n) { return this.$val.Readdirnames(n); }; File.ptr.prototype.readdir = function(n) { var _i, _r, _r$1, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, dirname, err, f, fi, filename, fip, lerr, n, names, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; dirname = $f.dirname; err = $f.err; f = $f.f; fi = $f.fi; filename = $f.filename; fip = $f.fip; lerr = $f.lerr; n = $f.n; names = $f.names; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: fi = sliceType$1.nil; err = $ifaceNil; f = this; dirname = f.file.name; if (dirname === "") { dirname = "."; } _r = f.Readdirnames(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; names = _tuple[0]; err = _tuple[1]; fi = $makeSlice(sliceType$1, 0, names.$length); _ref = names; _i = 0; /* while (true) { */ case 2: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } filename = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$1 = lstat(dirname + "/" + filename); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; fip = _tuple$1[0]; lerr = _tuple$1[1]; if (IsNotExist(lerr)) { _i++; /* continue; */ $s = 2; continue; } if (!($interfaceIsEqual(lerr, $ifaceNil))) { _tmp = fi; _tmp$1 = lerr; fi = _tmp; err = _tmp$1; $s = -1; return [fi, err]; } fi = $append(fi, fip); _i++; /* } */ $s = 2; continue; case 3: if ((fi.$length === 0) && $interfaceIsEqual(err, $ifaceNil) && n > 0) { err = io.EOF; } _tmp$2 = fi; _tmp$3 = err; fi = _tmp$2; err = _tmp$3; $s = -1; return [fi, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.readdir }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.dirname = dirname; $f.err = err; $f.f = f; $f.fi = fi; $f.filename = filename; $f.fip = fip; $f.lerr = lerr; $f.n = n; $f.names = names; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.readdir = function(n) { return this.$val.readdir(n); }; File.ptr.prototype.readdirnames = function(n) { var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, d, err, errno, f, n, names, nb, nc, size, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; d = $f.d; err = $f.err; errno = $f.errno; f = $f.f; n = $f.n; names = $f.names; nb = $f.nb; nc = $f.nc; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: names = sliceType.nil; err = $ifaceNil; f = this; if (f.file.dirinfo === ptrType$1.nil) { f.file.dirinfo = new dirInfo.ptr(sliceType$2.nil, 0, 0); f.file.dirinfo.buf = $makeSlice(sliceType$2, 4096); } d = f.file.dirinfo; size = n; if (size <= 0) { size = 100; n = -1; } names = $makeSlice(sliceType, 0, size); /* while (true) { */ case 1: /* if (!(!((n === 0)))) { break; } */ if(!(!((n === 0)))) { $s = 2; continue; } /* */ if (d.bufp >= d.nbuf) { $s = 3; continue; } /* */ $s = 4; continue; /* if (d.bufp >= d.nbuf) { */ case 3: d.bufp = 0; errno = $ifaceNil; _r = f.file.pfd.ReadDirent(d.buf); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; d.nbuf = _tuple[0]; errno = _tuple[1]; runtime.KeepAlive(f); if (!($interfaceIsEqual(errno, $ifaceNil))) { _tmp = names; _tmp$1 = wrapSyscallError("readdirent", errno); names = _tmp; err = _tmp$1; $s = -1; return [names, err]; } if (d.nbuf <= 0) { /* break; */ $s = 2; continue; } /* } */ case 4: _tmp$2 = 0; _tmp$3 = 0; nb = _tmp$2; nc = _tmp$3; _tuple$1 = syscall.ParseDirent($subslice(d.buf, d.bufp, d.nbuf), n, names); nb = _tuple$1[0]; nc = _tuple$1[1]; names = _tuple$1[2]; d.bufp = d.bufp + (nb) >> 0; n = n - (nc) >> 0; /* } */ $s = 1; continue; case 2: if (n >= 0 && (names.$length === 0)) { _tmp$4 = names; _tmp$5 = io.EOF; names = _tmp$4; err = _tmp$5; $s = -1; return [names, err]; } _tmp$6 = names; _tmp$7 = $ifaceNil; names = _tmp$6; err = _tmp$7; $s = -1; return [names, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.readdirnames }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.d = d; $f.err = err; $f.errno = errno; $f.f = f; $f.n = n; $f.names = names; $f.nb = nb; $f.nc = nc; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.readdirnames = function(n) { return this.$val.readdirnames(n); }; PathError.ptr.prototype.Error = function() { var _r, e, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: e = this; _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return e.Op + " " + e.Path + ": " + _r; /* */ } return; } if ($f === undefined) { $f = { $blk: PathError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; }; PathError.prototype.Error = function() { return this.$val.Error(); }; SyscallError.ptr.prototype.Error = function() { var _r, e, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: e = this; _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return e.Syscall + ": " + _r; /* */ } return; } if ($f === undefined) { $f = { $blk: SyscallError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; }; SyscallError.prototype.Error = function() { return this.$val.Error(); }; NewSyscallError = function(syscall$1, err) { var err, syscall$1; if ($interfaceIsEqual(err, $ifaceNil)) { return $ifaceNil; } return new SyscallError.ptr(syscall$1, err); }; $pkg.NewSyscallError = NewSyscallError; IsNotExist = function(err) { var err; return isNotExist(err); }; $pkg.IsNotExist = IsNotExist; underlyingError = function(err) { var _ref, err, err$1, err$2, err$3; _ref = err; if ($assertType(_ref, ptrType$2, true)[1]) { err$1 = _ref.$val; return err$1.Err; } else if ($assertType(_ref, ptrType$3, true)[1]) { err$2 = _ref.$val; return err$2.Err; } else if ($assertType(_ref, ptrType$4, true)[1]) { err$3 = _ref.$val; return err$3.Err; } return err; }; wrapSyscallError = function(name, err) { var _tuple, err, name, ok; _tuple = $assertType(err, syscall.Errno, true); ok = _tuple[1]; if (ok) { err = NewSyscallError(name, err); } return err; }; isNotExist = function(err) { var err; err = underlyingError(err); return $interfaceIsEqual(err, new syscall.Errno(2)) || $interfaceIsEqual(err, $pkg.ErrNotExist); }; File.ptr.prototype.Name = function() { var f; f = this; return f.file.name; }; File.prototype.Name = function() { return this.$val.Name(); }; LinkError.ptr.prototype.Error = function() { var _r, e, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: e = this; _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return e.Op + " " + e.Old + " " + e.New + ": " + _r; /* */ } return; } if ($f === undefined) { $f = { $blk: LinkError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; }; LinkError.prototype.Error = function() { return this.$val.Error(); }; File.ptr.prototype.Read = function(b) { var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; f = this; err$1 = f.checkValid("read"); if (!($interfaceIsEqual(err$1, $ifaceNil))) { _tmp = 0; _tmp$1 = err$1; n = _tmp; err = _tmp$1; $s = -1; return [n, err]; } _r = f.read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; e = _tuple[1]; _tmp$2 = n; _tmp$3 = f.wrapErr("read", e); n = _tmp$2; err = _tmp$3; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Read }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.Read = function(b) { return this.$val.Read(b); }; File.ptr.prototype.ReadAt = function(b, off) { var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; m = $f.m; n = $f.n; off = $f.off; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; f = this; err$1 = f.checkValid("read"); if (!($interfaceIsEqual(err$1, $ifaceNil))) { _tmp = 0; _tmp$1 = err$1; n = _tmp; err = _tmp$1; $s = -1; return [n, err]; } if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { _tmp$2 = 0; _tmp$3 = new PathError.ptr("readat", f.file.name, errors.New("negative offset")); n = _tmp$2; err = _tmp$3; $s = -1; return [n, err]; } /* while (true) { */ case 1: /* if (!(b.$length > 0)) { break; } */ if(!(b.$length > 0)) { $s = 2; continue; } _r = f.pread(b, off); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; m = _tuple[0]; e = _tuple[1]; if (!($interfaceIsEqual(e, $ifaceNil))) { err = f.wrapErr("read", e); /* break; */ $s = 2; continue; } n = n + (m) >> 0; b = $subslice(b, m); off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); /* } */ $s = 1; continue; case 2: $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.ReadAt }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.m = m; $f.n = n; $f.off = off; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.ReadAt = function(b, off) { return this.$val.ReadAt(b, off); }; File.ptr.prototype.Write = function(b) { var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; f = this; err$1 = f.checkValid("write"); if (!($interfaceIsEqual(err$1, $ifaceNil))) { _tmp = 0; _tmp$1 = err$1; n = _tmp; err = _tmp$1; $s = -1; return [n, err]; } _r = f.write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; e = _tuple[1]; if (n < 0) { n = 0; } if (!((n === b.$length))) { err = io.ErrShortWrite; } epipecheck(f, e); if (!($interfaceIsEqual(e, $ifaceNil))) { err = f.wrapErr("write", e); } _tmp$2 = n; _tmp$3 = err; n = _tmp$2; err = _tmp$3; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Write }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.Write = function(b) { return this.$val.Write(b); }; File.ptr.prototype.WriteAt = function(b, off) { var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; m = $f.m; n = $f.n; off = $f.off; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; f = this; err$1 = f.checkValid("write"); if (!($interfaceIsEqual(err$1, $ifaceNil))) { _tmp = 0; _tmp$1 = err$1; n = _tmp; err = _tmp$1; $s = -1; return [n, err]; } if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { _tmp$2 = 0; _tmp$3 = new PathError.ptr("writeat", f.file.name, errors.New("negative offset")); n = _tmp$2; err = _tmp$3; $s = -1; return [n, err]; } /* while (true) { */ case 1: /* if (!(b.$length > 0)) { break; } */ if(!(b.$length > 0)) { $s = 2; continue; } _r = f.pwrite(b, off); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; m = _tuple[0]; e = _tuple[1]; if (!($interfaceIsEqual(e, $ifaceNil))) { err = f.wrapErr("write", e); /* break; */ $s = 2; continue; } n = n + (m) >> 0; b = $subslice(b, m); off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); /* } */ $s = 1; continue; case 2: $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.WriteAt }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.m = m; $f.n = n; $f.off = off; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.WriteAt = function(b, off) { return this.$val.WriteAt(b, off); }; File.ptr.prototype.Seek = function(offset, whence) { var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; offset = $f.offset; r = $f.r; ret = $f.ret; whence = $f.whence; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: ret = new $Int64(0, 0); err = $ifaceNil; f = this; err$1 = f.checkValid("seek"); if (!($interfaceIsEqual(err$1, $ifaceNil))) { _tmp = new $Int64(0, 0); _tmp$1 = err$1; ret = _tmp; err = _tmp$1; $s = -1; return [ret, err]; } _r = f.seek(offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; r = _tuple[0]; e = _tuple[1]; if ($interfaceIsEqual(e, $ifaceNil) && !(f.file.dirinfo === ptrType$1.nil) && !((r.$high === 0 && r.$low === 0))) { e = new syscall.Errno(21); } if (!($interfaceIsEqual(e, $ifaceNil))) { _tmp$2 = new $Int64(0, 0); _tmp$3 = f.wrapErr("seek", e); ret = _tmp$2; err = _tmp$3; $s = -1; return [ret, err]; } _tmp$4 = r; _tmp$5 = $ifaceNil; ret = _tmp$4; err = _tmp$5; $s = -1; return [ret, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Seek }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.offset = offset; $f.r = r; $f.ret = ret; $f.whence = whence; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.Seek = function(offset, whence) { return this.$val.Seek(offset, whence); }; File.ptr.prototype.WriteString = function(s) { var _r, _tuple, err, f, n, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; f = $f.f; n = $f.n; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; f = this; _r = f.Write((new sliceType$2($stringToBytes(s)))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.WriteString }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.n = n; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.WriteString = function(s) { return this.$val.WriteString(s); }; Open = function(name) { var name; return OpenFile(name, 0, 0); }; $pkg.Open = Open; File.ptr.prototype.wrapErr = function(op, err) { var err, f, op; f = this; if ($interfaceIsEqual(err, $ifaceNil) || $interfaceIsEqual(err, io.EOF)) { return err; } if ($interfaceIsEqual(err, poll.ErrFileClosing)) { err = $pkg.ErrClosed; } return new PathError.ptr(op, f.file.name, err); }; File.prototype.wrapErr = function(op, err) { return this.$val.wrapErr(op, err); }; Chmod = function(name, mode) { var mode, name; return chmod(name, mode); }; $pkg.Chmod = Chmod; File.ptr.prototype.Chmod = function(mode) { var _r, f, mode, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; mode = $f.mode; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; _r = f.chmod(mode); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Chmod }; } $f._r = _r; $f.f = f; $f.mode = mode; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.Chmod = function(mode) { return this.$val.Chmod(mode); }; sigpipe = function() { $throwRuntimeError("native function not implemented: os.sigpipe"); }; syscallMode = function(i) { var i, o; o = 0; o = (o | (((new FileMode(i).Perm() >>> 0)))) >>> 0; if (!((((i & 8388608) >>> 0) === 0))) { o = (o | (2048)) >>> 0; } if (!((((i & 4194304) >>> 0) === 0))) { o = (o | (1024)) >>> 0; } if (!((((i & 1048576) >>> 0) === 0))) { o = (o | (512)) >>> 0; } return o; }; chmod = function(name, mode) { var e, mode, name; e = syscall.Chmod(fixLongPath(name), syscallMode(mode)); if (!($interfaceIsEqual(e, $ifaceNil))) { return new PathError.ptr("chmod", name, e); } return $ifaceNil; }; File.ptr.prototype.chmod = function(mode) { var _r, e, err, f, mode, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; mode = $f.mode; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; err = f.checkValid("chmod"); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } _r = f.file.pfd.Fchmod(syscallMode(mode)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } e = _r; if (!($interfaceIsEqual(e, $ifaceNil))) { $s = -1; return f.wrapErr("chmod", e); } $s = -1; return $ifaceNil; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.chmod }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.mode = mode; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.chmod = function(mode) { return this.$val.chmod(mode); }; File.ptr.prototype.Chown = function(uid, gid) { var _r, e, err, f, gid, uid, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; gid = $f.gid; uid = $f.uid; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; err = f.checkValid("chown"); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } _r = f.file.pfd.Fchown(uid, gid); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } e = _r; if (!($interfaceIsEqual(e, $ifaceNil))) { $s = -1; return f.wrapErr("chown", e); } $s = -1; return $ifaceNil; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Chown }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.gid = gid; $f.uid = uid; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.Chown = function(uid, gid) { return this.$val.Chown(uid, gid); }; File.ptr.prototype.Truncate = function(size) { var _r, e, err, f, size, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; err = f.checkValid("truncate"); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } _r = f.file.pfd.Ftruncate(size); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } e = _r; if (!($interfaceIsEqual(e, $ifaceNil))) { $s = -1; return f.wrapErr("truncate", e); } $s = -1; return $ifaceNil; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Truncate }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.Truncate = function(size) { return this.$val.Truncate(size); }; File.ptr.prototype.Sync = function() { var _r, e, err, f, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; err = f.checkValid("sync"); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } _r = f.file.pfd.Fsync(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } e = _r; if (!($interfaceIsEqual(e, $ifaceNil))) { $s = -1; return f.wrapErr("sync", e); } $s = -1; return $ifaceNil; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Sync }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.Sync = function() { return this.$val.Sync(); }; File.ptr.prototype.Chdir = function() { var _r, e, err, f, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; err = f.checkValid("chdir"); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } _r = f.file.pfd.Fchdir(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } e = _r; if (!($interfaceIsEqual(e, $ifaceNil))) { $s = -1; return f.wrapErr("chdir", e); } $s = -1; return $ifaceNil; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Chdir }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.Chdir = function() { return this.$val.Chdir(); }; File.ptr.prototype.checkValid = function(op) { var f, op; f = this; if (f === ptrType.nil) { return $pkg.ErrInvalid; } return $ifaceNil; }; File.prototype.checkValid = function(op) { return this.$val.checkValid(op); }; fixLongPath = function(path) { var path; return path; }; File.ptr.prototype.Fd = function() { var f; f = this; if (f === ptrType.nil) { return 4294967295; } if (f.file.nonblock) { syscall.SetNonblock(f.file.pfd.Sysfd, false); } return ((f.file.pfd.Sysfd >>> 0)); }; File.prototype.Fd = function() { return this.$val.Fd(); }; NewFile = function(fd, name) { var fd, name; return newFile(fd, name, false); }; $pkg.NewFile = NewFile; newFile = function(fd, name, pollable) { var err, err$1, f, fd, fdi, name, pollable; fdi = ((fd >> 0)); if (fdi < 0) { return ptrType.nil; } f = new File.ptr(new file.ptr(new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), fdi, new poll.pollDesc.ptr(false), ptrType$12.nil, true, true, false), name, ptrType$1.nil, false)); if (false) { pollable = false; } err = f.file.pfd.Init("file", pollable); if (!($interfaceIsEqual(err, $ifaceNil))) { } else if (pollable) { err$1 = syscall.SetNonblock(fdi, true); if ($interfaceIsEqual(err$1, $ifaceNil)) { f.file.nonblock = true; } } runtime.SetFinalizer(f.file, new funcType$1($methodExpr(ptrType$13, "close"))); return f; }; epipecheck = function(file$1, e) { var e, file$1; if ($interfaceIsEqual(e, new syscall.Errno(32)) && ((file$1.file.pfd.Sysfd === 1) || (file$1.file.pfd.Sysfd === 2))) { sigpipe(); } }; OpenFile = function(name, flag, perm) { var _tuple, _tuple$1, chmod$1, e, err, flag, name, perm, r; chmod$1 = false; if (true && !(((flag & 512) === 0)) && !((((perm & 1048576) >>> 0) === 0))) { _tuple = Stat(name); err = _tuple[1]; if (IsNotExist(err)) { chmod$1 = true; } } r = 0; while (true) { e = $ifaceNil; _tuple$1 = syscall.Open(name, flag | 16777216, syscallMode(perm)); r = _tuple$1[0]; e = _tuple$1[1]; if ($interfaceIsEqual(e, $ifaceNil)) { break; } if (true && $interfaceIsEqual(e, new syscall.Errno(4))) { continue; } return [ptrType.nil, new PathError.ptr("open", name, e)]; } if (chmod$1) { Chmod(name, perm); } if (false) { syscall.CloseOnExec(r); } return [newFile(((r >>> 0)), name, true), $ifaceNil]; }; $pkg.OpenFile = OpenFile; File.ptr.prototype.Close = function() { var _r, f, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; if (f === ptrType.nil) { $s = -1; return $pkg.ErrInvalid; } _r = f.file.close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Close }; } $f._r = _r; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.Close = function() { return this.$val.Close(); }; file.ptr.prototype.close = function() { var _r, e, err, file$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; file$1 = $f.file$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: file$1 = this; if (file$1 === ptrType$13.nil) { $s = -1; return new syscall.Errno(22); } err = $ifaceNil; _r = file$1.pfd.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } e = _r; if (!($interfaceIsEqual(e, $ifaceNil))) { if ($interfaceIsEqual(e, poll.ErrFileClosing)) { e = $pkg.ErrClosed; } err = new PathError.ptr("close", file$1.name, e); } runtime.SetFinalizer(file$1, $ifaceNil); $s = -1; return err; /* */ } return; } if ($f === undefined) { $f = { $blk: file.ptr.prototype.close }; } $f._r = _r; $f.e = e; $f.err = err; $f.file$1 = file$1; $f.$s = $s; $f.$r = $r; return $f; }; file.prototype.close = function() { return this.$val.close(); }; File.ptr.prototype.read = function(b) { var _r, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; f = this; _r = f.file.pfd.Read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; runtime.KeepAlive(f); _tmp = n; _tmp$1 = err; n = _tmp; err = _tmp$1; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.read }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.read = function(b) { return this.$val.read(b); }; File.ptr.prototype.pread = function(b, off) { var _r, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; off = $f.off; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; f = this; _r = f.file.pfd.Pread(b, off); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; runtime.KeepAlive(f); _tmp = n; _tmp$1 = err; n = _tmp; err = _tmp$1; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.pread }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.off = off; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.pread = function(b, off) { return this.$val.pread(b, off); }; File.ptr.prototype.write = function(b) { var _r, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; f = this; _r = f.file.pfd.Write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; runtime.KeepAlive(f); _tmp = n; _tmp$1 = err; n = _tmp; err = _tmp$1; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.write }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.write = function(b) { return this.$val.write(b); }; File.ptr.prototype.pwrite = function(b, off) { var _r, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; off = $f.off; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; f = this; _r = f.file.pfd.Pwrite(b, off); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; runtime.KeepAlive(f); _tmp = n; _tmp$1 = err; n = _tmp; err = _tmp$1; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.pwrite }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.off = off; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.pwrite = function(b, off) { return this.$val.pwrite(b, off); }; File.ptr.prototype.seek = function(offset, whence) { var _r, _tmp, _tmp$1, _tuple, err, f, offset, ret, whence, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; err = $f.err; f = $f.f; offset = $f.offset; ret = $f.ret; whence = $f.whence; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: ret = new $Int64(0, 0); err = $ifaceNil; f = this; _r = f.file.pfd.Seek(offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ret = _tuple[0]; err = _tuple[1]; runtime.KeepAlive(f); _tmp = ret; _tmp$1 = err; ret = _tmp; err = _tmp$1; $s = -1; return [ret, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.seek }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.offset = offset; $f.ret = ret; $f.whence = whence; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.seek = function(offset, whence) { return this.$val.seek(offset, whence); }; init$1 = function() { useSyscallwd = useSyscallwdDarwin; }; useSyscallwdDarwin = function(err) { var err; return !($interfaceIsEqual(err, new syscall.Errno(45))); }; basename = function(name) { var i, name; i = name.length - 1 >> 0; while (true) { if (!(i > 0 && (name.charCodeAt(i) === 47))) { break; } name = $substring(name, 0, i); i = i - (1) >> 0; } i = i - (1) >> 0; while (true) { if (!(i >= 0)) { break; } if (name.charCodeAt(i) === 47) { name = $substring(name, (i + 1 >> 0)); break; } i = i - (1) >> 0; } return name; }; init$2 = function() { if (false) { return; } $pkg.Args = runtime_args(); }; Exit = function(code) { var code; if (code === 0) { runtime_beforeExit(); } syscall.Exit(code); }; $pkg.Exit = Exit; fillFileStatFromSys = function(fs, name) { var _1, fs, name; fs.name = basename(name); fs.size = fs.sys.Size; time.Time.copy(fs.modTime, timespecToTime($clone(fs.sys.Mtimespec, syscall.Timespec))); fs.mode = ((((fs.sys.Mode & 511) >>> 0) >>> 0)); _1 = (fs.sys.Mode & 61440) >>> 0; if ((_1 === (24576)) || (_1 === (57344))) { fs.mode = (fs.mode | (67108864)) >>> 0; } else if (_1 === (8192)) { fs.mode = (fs.mode | (69206016)) >>> 0; } else if (_1 === (16384)) { fs.mode = (fs.mode | (2147483648)) >>> 0; } else if (_1 === (4096)) { fs.mode = (fs.mode | (33554432)) >>> 0; } else if (_1 === (40960)) { fs.mode = (fs.mode | (134217728)) >>> 0; } else if (_1 === (32768)) { } else if (_1 === (49152)) { fs.mode = (fs.mode | (16777216)) >>> 0; } if (!((((fs.sys.Mode & 1024) >>> 0) === 0))) { fs.mode = (fs.mode | (4194304)) >>> 0; } if (!((((fs.sys.Mode & 2048) >>> 0) === 0))) { fs.mode = (fs.mode | (8388608)) >>> 0; } if (!((((fs.sys.Mode & 512) >>> 0) === 0))) { fs.mode = (fs.mode | (1048576)) >>> 0; } }; timespecToTime = function(ts) { var ts; return time.Unix((ts.Sec), (ts.Nsec)); }; File.ptr.prototype.Stat = function() { var _r, err, f, fs, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; f = $f.f; fs = $f.fs; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: fs = [fs]; f = this; if (f === ptrType.nil) { $s = -1; return [$ifaceNil, $pkg.ErrInvalid]; } fs[0] = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil), new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$3.zero())); _r = f.file.pfd.Fstat(fs[0].sys); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, new PathError.ptr("stat", f.file.name, err)]; } fillFileStatFromSys(fs[0], f.file.name); $s = -1; return [fs[0], $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Stat }; } $f._r = _r; $f.err = err; $f.f = f; $f.fs = fs; $f.$s = $s; $f.$r = $r; return $f; }; File.prototype.Stat = function() { return this.$val.Stat(); }; Stat = function(name) { var err, fs, name; fs = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil), new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$3.zero())); err = syscall.Stat(name, fs.sys); if (!($interfaceIsEqual(err, $ifaceNil))) { return [$ifaceNil, new PathError.ptr("stat", name, err)]; } fillFileStatFromSys(fs, name); return [fs, $ifaceNil]; }; $pkg.Stat = Stat; Lstat = function(name) { var err, fs, name; fs = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil), new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$3.zero())); err = syscall.Lstat(name, fs.sys); if (!($interfaceIsEqual(err, $ifaceNil))) { return [$ifaceNil, new PathError.ptr("lstat", name, err)]; } fillFileStatFromSys(fs, name); return [fs, $ifaceNil]; }; $pkg.Lstat = Lstat; FileMode.prototype.String = function() { var _i, _i$1, _ref, _ref$1, _rune, _rune$1, buf, c, c$1, i, i$1, m, w, y, y$1; m = this.$val; buf = arrayType$5.zero(); w = 0; _ref = "dalTLDpSugct"; _i = 0; while (true) { if (!(_i < _ref.length)) { break; } _rune = $decodeRune(_ref, _i); i = _i; c = _rune[0]; if (!((((m & (((y = (((31 - i >> 0) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c << 24 >>> 24))); w = w + (1) >> 0; } _i += _rune[1]; } if (w === 0) { ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); w = w + (1) >> 0; } _ref$1 = "rwxrwxrwx"; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.length)) { break; } _rune$1 = $decodeRune(_ref$1, _i$1); i$1 = _i$1; c$1 = _rune$1[0]; if (!((((m & (((y$1 = (((8 - i$1 >> 0) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0) === 0))) { ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c$1 << 24 >>> 24))); } else { ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); } w = w + (1) >> 0; _i$1 += _rune$1[1]; } return ($bytesToString($subslice(new sliceType$2(buf), 0, w))); }; $ptrType(FileMode).prototype.String = function() { return new FileMode(this.$get()).String(); }; FileMode.prototype.IsDir = function() { var m; m = this.$val; return !((((m & 2147483648) >>> 0) === 0)); }; $ptrType(FileMode).prototype.IsDir = function() { return new FileMode(this.$get()).IsDir(); }; FileMode.prototype.IsRegular = function() { var m; m = this.$val; return ((m & 2399141888) >>> 0) === 0; }; $ptrType(FileMode).prototype.IsRegular = function() { return new FileMode(this.$get()).IsRegular(); }; FileMode.prototype.Perm = function() { var m; m = this.$val; return (m & 511) >>> 0; }; $ptrType(FileMode).prototype.Perm = function() { return new FileMode(this.$get()).Perm(); }; fileStat.ptr.prototype.Name = function() { var fs; fs = this; return fs.name; }; fileStat.prototype.Name = function() { return this.$val.Name(); }; fileStat.ptr.prototype.IsDir = function() { var fs; fs = this; return new FileMode(fs.Mode()).IsDir(); }; fileStat.prototype.IsDir = function() { return this.$val.IsDir(); }; fileStat.ptr.prototype.Size = function() { var fs; fs = this; return fs.size; }; fileStat.prototype.Size = function() { return this.$val.Size(); }; fileStat.ptr.prototype.Mode = function() { var fs; fs = this; return fs.mode; }; fileStat.prototype.Mode = function() { return this.$val.Mode(); }; fileStat.ptr.prototype.ModTime = function() { var fs; fs = this; return fs.modTime; }; fileStat.prototype.ModTime = function() { return this.$val.ModTime(); }; fileStat.ptr.prototype.Sys = function() { var fs; fs = this; return fs.sys; }; fileStat.prototype.Sys = function() { return this.$val.Sys(); }; ptrType$2.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$4.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$3.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$13.methods = [{prop: "close", name: "close", pkg: "os", typ: $funcType([], [$error], false)}]; ptrType.methods = [{prop: "Readdir", name: "Readdir", pkg: "", typ: $funcType([$Int], [sliceType$1, $error], false)}, {prop: "Readdirnames", name: "Readdirnames", pkg: "", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "readdir", name: "readdir", pkg: "os", typ: $funcType([$Int], [sliceType$1, $error], false)}, {prop: "readdirnames", name: "readdirnames", pkg: "os", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteAt", name: "WriteAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "wrapErr", name: "wrapErr", pkg: "os", typ: $funcType([$String, $error], [$error], false)}, {prop: "Chmod", name: "Chmod", pkg: "", typ: $funcType([FileMode], [$error], false)}, {prop: "chmod", name: "chmod", pkg: "os", typ: $funcType([FileMode], [$error], false)}, {prop: "Chown", name: "Chown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Sync", name: "Sync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "checkValid", name: "checkValid", pkg: "os", typ: $funcType([$String], [$error], false)}, {prop: "Fd", name: "Fd", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "read", name: "read", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pread", name: "pread", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "write", name: "write", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pwrite", name: "pwrite", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "seek", name: "seek", pkg: "os", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [FileInfo, $error], false)}]; FileMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsRegular", name: "IsRegular", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Perm", name: "Perm", pkg: "", typ: $funcType([], [FileMode], false)}]; ptrType$16.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}]; PathError.init("", [{prop: "Op", name: "Op", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "Path", name: "Path", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", anonymous: false, exported: true, typ: $error, tag: ""}]); SyscallError.init("", [{prop: "Syscall", name: "Syscall", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", anonymous: false, exported: true, typ: $error, tag: ""}]); LinkError.init("", [{prop: "Op", name: "Op", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "Old", name: "Old", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "New", name: "New", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", anonymous: false, exported: true, typ: $error, tag: ""}]); file.init("os", [{prop: "pfd", name: "pfd", anonymous: false, exported: false, typ: poll.FD, tag: ""}, {prop: "name", name: "name", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "dirinfo", name: "dirinfo", anonymous: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "nonblock", name: "nonblock", anonymous: false, exported: false, typ: $Bool, tag: ""}]); dirInfo.init("os", [{prop: "buf", name: "buf", anonymous: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "nbuf", name: "nbuf", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "bufp", name: "bufp", anonymous: false, exported: false, typ: $Int, tag: ""}]); File.init("os", [{prop: "file", name: "file", anonymous: true, exported: false, typ: ptrType$13, tag: ""}]); FileInfo.init([{prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}]); fileStat.init("os", [{prop: "name", name: "name", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "size", name: "size", anonymous: false, exported: false, typ: $Int64, tag: ""}, {prop: "mode", name: "mode", anonymous: false, exported: false, typ: FileMode, tag: ""}, {prop: "modTime", name: "modTime", anonymous: false, exported: false, typ: time.Time, tag: ""}, {prop: "sys", name: "sys", anonymous: false, exported: false, typ: syscall.Stat_t, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = poll.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = io.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = runtime.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = sync.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = atomic.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = syscall.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = time.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $pkg.Args = sliceType.nil; $pkg.ErrInvalid = errors.New("invalid argument"); $pkg.ErrPermission = errors.New("permission denied"); $pkg.ErrExist = errors.New("file already exists"); $pkg.ErrNotExist = errors.New("file does not exist"); $pkg.ErrClosed = errors.New("file already closed"); errFinished = errors.New("os: process already finished"); $pkg.Stdin = NewFile(((syscall.Stdin >>> 0)), "/dev/stdin"); $pkg.Stdout = NewFile(((syscall.Stdout >>> 0)), "/dev/stdout"); $pkg.Stderr = NewFile(((syscall.Stderr >>> 0)), "/dev/stderr"); useSyscallwd = (function(param) { var param; return true; }); lstat = Lstat; init(); init$1(); init$2(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["strconv"] = (function() { var $pkg = {}, $init, errors, math, utf8, NumError, decimal, leftCheat, extFloat, floatInfo, decimalSlice, sliceType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, sliceType$5, arrayType, ptrType, sliceType$6, arrayType$1, arrayType$2, ptrType$1, arrayType$3, arrayType$4, ptrType$2, ptrType$3, ptrType$4, optimize, powtab, float64pow10, float32pow10, leftcheats, smallPowersOfTen, powersOfTen, uint64pow10, float32info, float32info$24ptr, float64info, float64info$24ptr, isPrint16, isNotPrint16, isPrint32, isNotPrint32, isGraphic, shifts, ParseBool, FormatBool, equalIgnoreCase, special, readFloat, atof64exact, atof32exact, atof32, atof64, ParseFloat, syntaxError, rangeError, ParseUint, ParseInt, Atoi, digitZero, trim, rightShift, prefixIsLessThan, leftShift, shouldRoundUp, frexp10Many, adjustLastDigitFixed, adjustLastDigit, FormatFloat, AppendFloat, genericFtoa, bigFtoa, formatDigits, roundShortest, fmtE, fmtF, fmtB, min, max, FormatUint, FormatInt, Itoa, small, formatBits, quoteWith, appendQuotedWith, appendQuotedRuneWith, appendEscapedRune, Quote, AppendQuote, QuoteToASCII, AppendQuoteToASCII, AppendQuoteRune, AppendQuoteRuneToASCII, CanBackquote, unhex, UnquoteChar, Unquote, contains, bsearch16, bsearch32, IsPrint, isInGraphicList; errors = $packages["errors"]; math = $packages["math"]; utf8 = $packages["unicode/utf8"]; NumError = $pkg.NumError = $newType(0, $kindStruct, "strconv.NumError", true, "strconv", true, function(Func_, Num_, Err_) { this.$val = this; if (arguments.length === 0) { this.Func = ""; this.Num = ""; this.Err = $ifaceNil; return; } this.Func = Func_; this.Num = Num_; this.Err = Err_; }); decimal = $pkg.decimal = $newType(0, $kindStruct, "strconv.decimal", true, "strconv", false, function(d_, nd_, dp_, neg_, trunc_) { this.$val = this; if (arguments.length === 0) { this.d = arrayType.zero(); this.nd = 0; this.dp = 0; this.neg = false; this.trunc = false; return; } this.d = d_; this.nd = nd_; this.dp = dp_; this.neg = neg_; this.trunc = trunc_; }); leftCheat = $pkg.leftCheat = $newType(0, $kindStruct, "strconv.leftCheat", true, "strconv", false, function(delta_, cutoff_) { this.$val = this; if (arguments.length === 0) { this.delta = 0; this.cutoff = ""; return; } this.delta = delta_; this.cutoff = cutoff_; }); extFloat = $pkg.extFloat = $newType(0, $kindStruct, "strconv.extFloat", true, "strconv", false, function(mant_, exp_, neg_) { this.$val = this; if (arguments.length === 0) { this.mant = new $Uint64(0, 0); this.exp = 0; this.neg = false; return; } this.mant = mant_; this.exp = exp_; this.neg = neg_; }); floatInfo = $pkg.floatInfo = $newType(0, $kindStruct, "strconv.floatInfo", true, "strconv", false, function(mantbits_, expbits_, bias_) { this.$val = this; if (arguments.length === 0) { this.mantbits = 0; this.expbits = 0; this.bias = 0; return; } this.mantbits = mantbits_; this.expbits = expbits_; this.bias = bias_; }); decimalSlice = $pkg.decimalSlice = $newType(0, $kindStruct, "strconv.decimalSlice", true, "strconv", false, function(d_, nd_, dp_, neg_) { this.$val = this; if (arguments.length === 0) { this.d = sliceType$6.nil; this.nd = 0; this.dp = 0; this.neg = false; return; } this.d = d_; this.nd = nd_; this.dp = dp_; this.neg = neg_; }); sliceType = $sliceType($Int); sliceType$1 = $sliceType($Float64); sliceType$2 = $sliceType($Float32); sliceType$3 = $sliceType(leftCheat); sliceType$4 = $sliceType($Uint16); sliceType$5 = $sliceType($Uint32); arrayType = $arrayType($Uint8, 800); ptrType = $ptrType(NumError); sliceType$6 = $sliceType($Uint8); arrayType$1 = $arrayType($Uint8, 24); arrayType$2 = $arrayType($Uint8, 32); ptrType$1 = $ptrType(floatInfo); arrayType$3 = $arrayType($Uint8, 65); arrayType$4 = $arrayType($Uint8, 4); ptrType$2 = $ptrType(decimal); ptrType$3 = $ptrType(decimalSlice); ptrType$4 = $ptrType(extFloat); ParseBool = function(str) { var _1, str; _1 = str; if (_1 === ("1") || _1 === ("t") || _1 === ("T") || _1 === ("true") || _1 === ("TRUE") || _1 === ("True")) { return [true, $ifaceNil]; } else if (_1 === ("0") || _1 === ("f") || _1 === ("F") || _1 === ("false") || _1 === ("FALSE") || _1 === ("False")) { return [false, $ifaceNil]; } return [false, syntaxError("ParseBool", str)]; }; $pkg.ParseBool = ParseBool; FormatBool = function(b) { var b; if (b) { return "true"; } return "false"; }; $pkg.FormatBool = FormatBool; equalIgnoreCase = function(s1, s2) { var c1, c2, i, s1, s2; if (!((s1.length === s2.length))) { return false; } i = 0; while (true) { if (!(i < s1.length)) { break; } c1 = s1.charCodeAt(i); if (65 <= c1 && c1 <= 90) { c1 = c1 + (32) << 24 >>> 24; } c2 = s2.charCodeAt(i); if (65 <= c2 && c2 <= 90) { c2 = c2 + (32) << 24 >>> 24; } if (!((c1 === c2))) { return false; } i = i + (1) >> 0; } return true; }; special = function(s) { var _1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, f, ok, s; f = 0; ok = false; if (s.length === 0) { return [f, ok]; } _1 = s.charCodeAt(0); if (_1 === (43)) { if (equalIgnoreCase(s, "+inf") || equalIgnoreCase(s, "+infinity")) { _tmp = math.Inf(1); _tmp$1 = true; f = _tmp; ok = _tmp$1; return [f, ok]; } } else if (_1 === (45)) { if (equalIgnoreCase(s, "-inf") || equalIgnoreCase(s, "-infinity")) { _tmp$2 = math.Inf(-1); _tmp$3 = true; f = _tmp$2; ok = _tmp$3; return [f, ok]; } } else if ((_1 === (110)) || (_1 === (78))) { if (equalIgnoreCase(s, "nan")) { _tmp$4 = math.NaN(); _tmp$5 = true; f = _tmp$4; ok = _tmp$5; return [f, ok]; } } else if ((_1 === (105)) || (_1 === (73))) { if (equalIgnoreCase(s, "inf") || equalIgnoreCase(s, "infinity")) { _tmp$6 = math.Inf(1); _tmp$7 = true; f = _tmp$6; ok = _tmp$7; return [f, ok]; } } else { return [f, ok]; } return [f, ok]; }; decimal.ptr.prototype.set = function(s) { var b, e, esign, i, ok, s, sawdigits, sawdot, x, x$1; ok = false; b = this; i = 0; b.neg = false; b.trunc = false; if (i >= s.length) { return ok; } if ((s.charCodeAt(i) === 43)) { i = i + (1) >> 0; } else if ((s.charCodeAt(i) === 45)) { b.neg = true; i = i + (1) >> 0; } sawdot = false; sawdigits = false; while (true) { if (!(i < s.length)) { break; } if ((s.charCodeAt(i) === 46)) { if (sawdot) { return ok; } sawdot = true; b.dp = b.nd; i = i + (1) >> 0; continue; } else if (48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57) { sawdigits = true; if ((s.charCodeAt(i) === 48) && (b.nd === 0)) { b.dp = b.dp - (1) >> 0; i = i + (1) >> 0; continue; } if (b.nd < 800) { (x = b.d, x$1 = b.nd, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1] = s.charCodeAt(i))); b.nd = b.nd + (1) >> 0; } else if (!((s.charCodeAt(i) === 48))) { b.trunc = true; } i = i + (1) >> 0; continue; } break; } if (!sawdigits) { return ok; } if (!sawdot) { b.dp = b.nd; } if (i < s.length && ((s.charCodeAt(i) === 101) || (s.charCodeAt(i) === 69))) { i = i + (1) >> 0; if (i >= s.length) { return ok; } esign = 1; if (s.charCodeAt(i) === 43) { i = i + (1) >> 0; } else if (s.charCodeAt(i) === 45) { i = i + (1) >> 0; esign = -1; } if (i >= s.length || s.charCodeAt(i) < 48 || s.charCodeAt(i) > 57) { return ok; } e = 0; while (true) { if (!(i < s.length && 48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57)) { break; } if (e < 10000) { e = (($imul(e, 10)) + ((s.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; } i = i + (1) >> 0; } b.dp = b.dp + (($imul(e, esign))) >> 0; } if (!((i === s.length))) { return ok; } ok = true; return ok; }; decimal.prototype.set = function(s) { return this.$val.set(s); }; readFloat = function(s) { var _1, c, dp, e, esign, exp, i, mantissa, nd, ndMant, neg, ok, s, sawdigits, sawdot, trunc, x; mantissa = new $Uint64(0, 0); exp = 0; neg = false; trunc = false; ok = false; i = 0; if (i >= s.length) { return [mantissa, exp, neg, trunc, ok]; } if ((s.charCodeAt(i) === 43)) { i = i + (1) >> 0; } else if ((s.charCodeAt(i) === 45)) { neg = true; i = i + (1) >> 0; } sawdot = false; sawdigits = false; nd = 0; ndMant = 0; dp = 0; while (true) { if (!(i < s.length)) { break; } c = s.charCodeAt(i); _1 = true; if (_1 === ((c === 46))) { if (sawdot) { return [mantissa, exp, neg, trunc, ok]; } sawdot = true; dp = nd; i = i + (1) >> 0; continue; } else if (_1 === (48 <= c && c <= 57)) { sawdigits = true; if ((c === 48) && (nd === 0)) { dp = dp - (1) >> 0; i = i + (1) >> 0; continue; } nd = nd + (1) >> 0; if (ndMant < 19) { mantissa = $mul64(mantissa, (new $Uint64(0, 10))); mantissa = (x = (new $Uint64(0, (c - 48 << 24 >>> 24))), new $Uint64(mantissa.$high + x.$high, mantissa.$low + x.$low)); ndMant = ndMant + (1) >> 0; } else if (!((s.charCodeAt(i) === 48))) { trunc = true; } i = i + (1) >> 0; continue; } break; } if (!sawdigits) { return [mantissa, exp, neg, trunc, ok]; } if (!sawdot) { dp = nd; } if (i < s.length && ((s.charCodeAt(i) === 101) || (s.charCodeAt(i) === 69))) { i = i + (1) >> 0; if (i >= s.length) { return [mantissa, exp, neg, trunc, ok]; } esign = 1; if (s.charCodeAt(i) === 43) { i = i + (1) >> 0; } else if (s.charCodeAt(i) === 45) { i = i + (1) >> 0; esign = -1; } if (i >= s.length || s.charCodeAt(i) < 48 || s.charCodeAt(i) > 57) { return [mantissa, exp, neg, trunc, ok]; } e = 0; while (true) { if (!(i < s.length && 48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57)) { break; } if (e < 10000) { e = (($imul(e, 10)) + ((s.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; } i = i + (1) >> 0; } dp = dp + (($imul(e, esign))) >> 0; } if (!((i === s.length))) { return [mantissa, exp, neg, trunc, ok]; } if (!((mantissa.$high === 0 && mantissa.$low === 0))) { exp = dp - ndMant >> 0; } ok = true; return [mantissa, exp, neg, trunc, ok]; }; decimal.ptr.prototype.floatBits = function(flt) { var _tmp, _tmp$1, b, bits, d, exp, flt, mant, n, n$1, n$2, overflow, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y, y$1, y$2, y$3, $s; /* */ $s = 0; s: while (true) { switch ($s) { case 0: b = new $Uint64(0, 0); overflow = false; d = this; exp = 0; mant = new $Uint64(0, 0); /* */ if (d.nd === 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if (d.nd === 0) { */ case 1: mant = new $Uint64(0, 0); exp = flt.bias; /* goto out */ $s = 3; continue; /* } */ case 2: /* */ if (d.dp > 310) { $s = 4; continue; } /* */ $s = 5; continue; /* if (d.dp > 310) { */ case 4: /* goto overflow */ $s = 6; continue; /* } */ case 5: /* */ if (d.dp < -330) { $s = 7; continue; } /* */ $s = 8; continue; /* if (d.dp < -330) { */ case 7: mant = new $Uint64(0, 0); exp = flt.bias; /* goto out */ $s = 3; continue; /* } */ case 8: exp = 0; while (true) { if (!(d.dp > 0)) { break; } n = 0; if (d.dp >= powtab.$length) { n = 27; } else { n = (x = d.dp, ((x < 0 || x >= powtab.$length) ? ($throwRuntimeError("index out of range"), undefined) : powtab.$array[powtab.$offset + x])); } d.Shift(-n); exp = exp + (n) >> 0; } while (true) { if (!(d.dp < 0 || (d.dp === 0) && d.d[0] < 53)) { break; } n$1 = 0; if (-d.dp >= powtab.$length) { n$1 = 27; } else { n$1 = (x$1 = -d.dp, ((x$1 < 0 || x$1 >= powtab.$length) ? ($throwRuntimeError("index out of range"), undefined) : powtab.$array[powtab.$offset + x$1])); } d.Shift(n$1); exp = exp - (n$1) >> 0; } exp = exp - (1) >> 0; if (exp < (flt.bias + 1 >> 0)) { n$2 = (flt.bias + 1 >> 0) - exp >> 0; d.Shift(-n$2); exp = exp + (n$2) >> 0; } /* */ if ((exp - flt.bias >> 0) >= (((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)) { $s = 9; continue; } /* */ $s = 10; continue; /* if ((exp - flt.bias >> 0) >= (((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)) { */ case 9: /* goto overflow */ $s = 6; continue; /* } */ case 10: d.Shift((((1 + flt.mantbits >>> 0) >> 0))); mant = d.RoundedInteger(); /* */ if ((x$2 = $shiftLeft64(new $Uint64(0, 2), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) { $s = 11; continue; } /* */ $s = 12; continue; /* if ((x$2 = $shiftLeft64(new $Uint64(0, 2), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) { */ case 11: mant = $shiftRightUint64(mant, (1)); exp = exp + (1) >> 0; /* */ if ((exp - flt.bias >> 0) >= (((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0)) { $s = 13; continue; } /* */ $s = 14; continue; /* if ((exp - flt.bias >> 0) >= (((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0)) { */ case 13: /* goto overflow */ $s = 6; continue; /* } */ case 14: /* } */ case 12: if ((x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high & x$4.$high, (mant.$low & x$4.$low) >>> 0)), (x$3.$high === 0 && x$3.$low === 0))) { exp = flt.bias; } /* goto out */ $s = 3; continue; /* overflow: */ case 6: mant = new $Uint64(0, 0); exp = (((y$2 = flt.expbits, y$2 < 32 ? (1 << y$2) : 0) >> 0) - 1 >> 0) + flt.bias >> 0; overflow = true; /* out: */ case 3: bits = (x$5 = (x$6 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$6.$high - 0, x$6.$low - 1)), new $Uint64(mant.$high & x$5.$high, (mant.$low & x$5.$low) >>> 0)); bits = (x$7 = $shiftLeft64((new $Uint64(0, (((exp - flt.bias >> 0)) & ((((y$3 = flt.expbits, y$3 < 32 ? (1 << y$3) : 0) >> 0) - 1 >> 0))))), flt.mantbits), new $Uint64(bits.$high | x$7.$high, (bits.$low | x$7.$low) >>> 0)); if (d.neg) { bits = (x$8 = $shiftLeft64($shiftLeft64(new $Uint64(0, 1), flt.mantbits), flt.expbits), new $Uint64(bits.$high | x$8.$high, (bits.$low | x$8.$low) >>> 0)); } _tmp = bits; _tmp$1 = overflow; b = _tmp; overflow = _tmp$1; $s = -1; return [b, overflow]; /* */ } return; } }; decimal.prototype.floatBits = function(flt) { return this.$val.floatBits(flt); }; atof64exact = function(mantissa, exp, neg) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, exp, f, mantissa, neg, ok, x, x$1, x$2; f = 0; ok = false; if (!((x = $shiftRightUint64(mantissa, float64info.mantbits), (x.$high === 0 && x.$low === 0)))) { return [f, ok]; } f = ($flatten64(mantissa)); if (neg) { f = -f; } if ((exp === 0)) { _tmp = f; _tmp$1 = true; f = _tmp; ok = _tmp$1; return [f, ok]; } else if (exp > 0 && exp <= 37) { if (exp > 22) { f = f * ((x$1 = exp - 22 >> 0, ((x$1 < 0 || x$1 >= float64pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float64pow10.$array[float64pow10.$offset + x$1]))); exp = 22; } if (f > 1e+15 || f < -1e+15) { return [f, ok]; } _tmp$2 = f * ((exp < 0 || exp >= float64pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float64pow10.$array[float64pow10.$offset + exp]); _tmp$3 = true; f = _tmp$2; ok = _tmp$3; return [f, ok]; } else if (exp < 0 && exp >= -22) { _tmp$4 = f / (x$2 = -exp, ((x$2 < 0 || x$2 >= float64pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float64pow10.$array[float64pow10.$offset + x$2])); _tmp$5 = true; f = _tmp$4; ok = _tmp$5; return [f, ok]; } return [f, ok]; }; atof32exact = function(mantissa, exp, neg) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, exp, f, mantissa, neg, ok, x, x$1, x$2; f = 0; ok = false; if (!((x = $shiftRightUint64(mantissa, float32info.mantbits), (x.$high === 0 && x.$low === 0)))) { return [f, ok]; } f = ($flatten64(mantissa)); if (neg) { f = -f; } if ((exp === 0)) { _tmp = f; _tmp$1 = true; f = _tmp; ok = _tmp$1; return [f, ok]; } else if (exp > 0 && exp <= 17) { if (exp > 10) { f = $fround(f * ((x$1 = exp - 10 >> 0, ((x$1 < 0 || x$1 >= float32pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float32pow10.$array[float32pow10.$offset + x$1])))); exp = 10; } if (f > 1e+07 || f < -1e+07) { return [f, ok]; } _tmp$2 = $fround(f * ((exp < 0 || exp >= float32pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float32pow10.$array[float32pow10.$offset + exp])); _tmp$3 = true; f = _tmp$2; ok = _tmp$3; return [f, ok]; } else if (exp < 0 && exp >= -10) { _tmp$4 = $fround(f / (x$2 = -exp, ((x$2 < 0 || x$2 >= float32pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float32pow10.$array[float32pow10.$offset + x$2]))); _tmp$5 = true; f = _tmp$4; ok = _tmp$5; return [f, ok]; } return [f, ok]; }; atof32 = function(s) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, b$1, d, err, exp, ext, f, f$1, mantissa, neg, ok, ok$1, ok$2, ok$3, ovf, ovf$1, s, trunc, val; f = 0; err = $ifaceNil; _tuple = special(s); val = _tuple[0]; ok = _tuple[1]; if (ok) { _tmp = ($fround(val)); _tmp$1 = $ifaceNil; f = _tmp; err = _tmp$1; return [f, err]; } if (optimize) { _tuple$1 = readFloat(s); mantissa = _tuple$1[0]; exp = _tuple$1[1]; neg = _tuple$1[2]; trunc = _tuple$1[3]; ok$1 = _tuple$1[4]; if (ok$1) { if (!trunc) { _tuple$2 = atof32exact(mantissa, exp, neg); f$1 = _tuple$2[0]; ok$2 = _tuple$2[1]; if (ok$2) { _tmp$2 = f$1; _tmp$3 = $ifaceNil; f = _tmp$2; err = _tmp$3; return [f, err]; } } ext = new extFloat.ptr(new $Uint64(0, 0), 0, false); ok$3 = ext.AssignDecimal(mantissa, exp, neg, trunc, float32info); if (ok$3) { _tuple$3 = ext.floatBits(float32info); b = _tuple$3[0]; ovf = _tuple$3[1]; f = math.Float32frombits(((b.$low >>> 0))); if (ovf) { err = rangeError("ParseFloat", s); } _tmp$4 = f; _tmp$5 = err; f = _tmp$4; err = _tmp$5; return [f, err]; } } } d = new decimal.ptr(arrayType.zero(), 0, 0, false, false); if (!d.set(s)) { _tmp$6 = 0; _tmp$7 = syntaxError("ParseFloat", s); f = _tmp$6; err = _tmp$7; return [f, err]; } _tuple$4 = d.floatBits(float32info); b$1 = _tuple$4[0]; ovf$1 = _tuple$4[1]; f = math.Float32frombits(((b$1.$low >>> 0))); if (ovf$1) { err = rangeError("ParseFloat", s); } _tmp$8 = f; _tmp$9 = err; f = _tmp$8; err = _tmp$9; return [f, err]; }; atof64 = function(s) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, b$1, d, err, exp, ext, f, f$1, mantissa, neg, ok, ok$1, ok$2, ok$3, ovf, ovf$1, s, trunc, val; f = 0; err = $ifaceNil; _tuple = special(s); val = _tuple[0]; ok = _tuple[1]; if (ok) { _tmp = val; _tmp$1 = $ifaceNil; f = _tmp; err = _tmp$1; return [f, err]; } if (optimize) { _tuple$1 = readFloat(s); mantissa = _tuple$1[0]; exp = _tuple$1[1]; neg = _tuple$1[2]; trunc = _tuple$1[3]; ok$1 = _tuple$1[4]; if (ok$1) { if (!trunc) { _tuple$2 = atof64exact(mantissa, exp, neg); f$1 = _tuple$2[0]; ok$2 = _tuple$2[1]; if (ok$2) { _tmp$2 = f$1; _tmp$3 = $ifaceNil; f = _tmp$2; err = _tmp$3; return [f, err]; } } ext = new extFloat.ptr(new $Uint64(0, 0), 0, false); ok$3 = ext.AssignDecimal(mantissa, exp, neg, trunc, float64info); if (ok$3) { _tuple$3 = ext.floatBits(float64info); b = _tuple$3[0]; ovf = _tuple$3[1]; f = math.Float64frombits(b); if (ovf) { err = rangeError("ParseFloat", s); } _tmp$4 = f; _tmp$5 = err; f = _tmp$4; err = _tmp$5; return [f, err]; } } } d = new decimal.ptr(arrayType.zero(), 0, 0, false, false); if (!d.set(s)) { _tmp$6 = 0; _tmp$7 = syntaxError("ParseFloat", s); f = _tmp$6; err = _tmp$7; return [f, err]; } _tuple$4 = d.floatBits(float64info); b$1 = _tuple$4[0]; ovf$1 = _tuple$4[1]; f = math.Float64frombits(b$1); if (ovf$1) { err = rangeError("ParseFloat", s); } _tmp$8 = f; _tmp$9 = err; f = _tmp$8; err = _tmp$9; return [f, err]; }; ParseFloat = function(s, bitSize) { var _tuple, bitSize, err, f, s; if (bitSize === 32) { _tuple = atof32(s); f = _tuple[0]; err = _tuple[1]; return [(f), err]; } return atof64(s); }; $pkg.ParseFloat = ParseFloat; NumError.ptr.prototype.Error = function() { var _r, e, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: e = this; _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return "strconv." + e.Func + ": " + "parsing " + Quote(e.Num) + ": " + _r; /* */ } return; } if ($f === undefined) { $f = { $blk: NumError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; }; NumError.prototype.Error = function() { return this.$val.Error(); }; syntaxError = function(fn, str) { var fn, str; return new NumError.ptr(fn, str, $pkg.ErrSyntax); }; rangeError = function(fn, str) { var fn, str; return new NumError.ptr(fn, str, $pkg.ErrRange); }; ParseUint = function(s, base, bitSize) { var _1, _tmp, _tmp$1, base, bitSize, cutoff, d, err, i, maxVal, n, n1, s, v, x, x$1, x$2, $s; /* */ $s = 0; s: while (true) { switch ($s) { case 0: n = new $Uint64(0, 0); err = $ifaceNil; _tmp = new $Uint64(0, 0); _tmp$1 = new $Uint64(0, 0); cutoff = _tmp; maxVal = _tmp$1; if (bitSize === 0) { bitSize = 32; } i = 0; /* */ if (s.length < 1) { $s = 2; continue; } /* */ if (2 <= base && base <= 36) { $s = 3; continue; } /* */ if ((base === 0)) { $s = 4; continue; } /* */ $s = 5; continue; /* if (s.length < 1) { */ case 2: err = $pkg.ErrSyntax; /* goto Error */ $s = 7; continue; $s = 6; continue; /* } else if (2 <= base && base <= 36) { */ case 3: $s = 6; continue; /* } else if ((base === 0)) { */ case 4: /* */ if ((s.charCodeAt(0) === 48) && s.length > 1 && ((s.charCodeAt(1) === 120) || (s.charCodeAt(1) === 88))) { $s = 9; continue; } /* */ if ((s.charCodeAt(0) === 48)) { $s = 10; continue; } /* */ $s = 11; continue; /* if ((s.charCodeAt(0) === 48) && s.length > 1 && ((s.charCodeAt(1) === 120) || (s.charCodeAt(1) === 88))) { */ case 9: /* */ if (s.length < 3) { $s = 13; continue; } /* */ $s = 14; continue; /* if (s.length < 3) { */ case 13: err = $pkg.ErrSyntax; /* goto Error */ $s = 7; continue; /* } */ case 14: base = 16; i = 2; $s = 12; continue; /* } else if ((s.charCodeAt(0) === 48)) { */ case 10: base = 8; i = 1; $s = 12; continue; /* } else { */ case 11: base = 10; /* } */ case 12: case 8: $s = 6; continue; /* } else { */ case 5: err = errors.New("invalid base " + Itoa(base)); /* goto Error */ $s = 7; continue; /* } */ case 6: case 1: _1 = base; if (_1 === (10)) { cutoff = new $Uint64(429496729, 2576980378); } else if (_1 === (16)) { cutoff = new $Uint64(268435456, 0); } else { cutoff = (x = $div64(new $Uint64(4294967295, 4294967295), (new $Uint64(0, base)), false), new $Uint64(x.$high + 0, x.$low + 1)); } maxVal = (x$1 = $shiftLeft64(new $Uint64(0, 1), ((bitSize >>> 0))), new $Uint64(x$1.$high - 0, x$1.$low - 1)); /* while (true) { */ case 15: /* if (!(i < s.length)) { break; } */ if(!(i < s.length)) { $s = 16; continue; } v = 0; d = s.charCodeAt(i); /* */ if (48 <= d && d <= 57) { $s = 18; continue; } /* */ if (97 <= d && d <= 122) { $s = 19; continue; } /* */ if (65 <= d && d <= 90) { $s = 20; continue; } /* */ $s = 21; continue; /* if (48 <= d && d <= 57) { */ case 18: v = d - 48 << 24 >>> 24; $s = 22; continue; /* } else if (97 <= d && d <= 122) { */ case 19: v = (d - 97 << 24 >>> 24) + 10 << 24 >>> 24; $s = 22; continue; /* } else if (65 <= d && d <= 90) { */ case 20: v = (d - 65 << 24 >>> 24) + 10 << 24 >>> 24; $s = 22; continue; /* } else { */ case 21: n = new $Uint64(0, 0); err = $pkg.ErrSyntax; /* goto Error */ $s = 7; continue; /* } */ case 22: case 17: /* */ if (v >= ((base << 24 >>> 24))) { $s = 23; continue; } /* */ $s = 24; continue; /* if (v >= ((base << 24 >>> 24))) { */ case 23: n = new $Uint64(0, 0); err = $pkg.ErrSyntax; /* goto Error */ $s = 7; continue; /* } */ case 24: /* */ if ((n.$high > cutoff.$high || (n.$high === cutoff.$high && n.$low >= cutoff.$low))) { $s = 25; continue; } /* */ $s = 26; continue; /* if ((n.$high > cutoff.$high || (n.$high === cutoff.$high && n.$low >= cutoff.$low))) { */ case 25: n = new $Uint64(4294967295, 4294967295); err = $pkg.ErrRange; /* goto Error */ $s = 7; continue; /* } */ case 26: n = $mul64(n, ((new $Uint64(0, base)))); n1 = (x$2 = (new $Uint64(0, v)), new $Uint64(n.$high + x$2.$high, n.$low + x$2.$low)); /* */ if ((n1.$high < n.$high || (n1.$high === n.$high && n1.$low < n.$low)) || (n1.$high > maxVal.$high || (n1.$high === maxVal.$high && n1.$low > maxVal.$low))) { $s = 27; continue; } /* */ $s = 28; continue; /* if ((n1.$high < n.$high || (n1.$high === n.$high && n1.$low < n.$low)) || (n1.$high > maxVal.$high || (n1.$high === maxVal.$high && n1.$low > maxVal.$low))) { */ case 27: n = new $Uint64(4294967295, 4294967295); err = $pkg.ErrRange; /* goto Error */ $s = 7; continue; /* } */ case 28: n = n1; i = i + (1) >> 0; /* } */ $s = 15; continue; case 16: $s = -1; return [n, $ifaceNil]; /* Error: */ case 7: $s = -1; return [n, new NumError.ptr("ParseUint", s, err)]; $s = -1; return [new $Uint64(0, 0), $ifaceNil]; /* */ } return; } }; $pkg.ParseUint = ParseUint; ParseInt = function(s, base, bitSize) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, base, bitSize, cutoff, err, i, n, neg, s, s0, un, x, x$1; i = new $Int64(0, 0); err = $ifaceNil; if (bitSize === 0) { bitSize = 32; } if (s.length === 0) { _tmp = new $Int64(0, 0); _tmp$1 = syntaxError("ParseInt", s); i = _tmp; err = _tmp$1; return [i, err]; } s0 = s; neg = false; if (s.charCodeAt(0) === 43) { s = $substring(s, 1); } else if (s.charCodeAt(0) === 45) { neg = true; s = $substring(s, 1); } un = new $Uint64(0, 0); _tuple = ParseUint(s, base, bitSize); un = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil)) && !($interfaceIsEqual($assertType(err, ptrType).Err, $pkg.ErrRange))) { $assertType(err, ptrType).Func = "ParseInt"; $assertType(err, ptrType).Num = s0; _tmp$2 = new $Int64(0, 0); _tmp$3 = err; i = _tmp$2; err = _tmp$3; return [i, err]; } cutoff = ($shiftLeft64(new $Uint64(0, 1), (((bitSize - 1 >> 0) >>> 0)))); if (!neg && (un.$high > cutoff.$high || (un.$high === cutoff.$high && un.$low >= cutoff.$low))) { _tmp$4 = ((x = new $Uint64(cutoff.$high - 0, cutoff.$low - 1), new $Int64(x.$high, x.$low))); _tmp$5 = rangeError("ParseInt", s0); i = _tmp$4; err = _tmp$5; return [i, err]; } if (neg && (un.$high > cutoff.$high || (un.$high === cutoff.$high && un.$low > cutoff.$low))) { _tmp$6 = (x$1 = (new $Int64(cutoff.$high, cutoff.$low)), new $Int64(-x$1.$high, -x$1.$low)); _tmp$7 = rangeError("ParseInt", s0); i = _tmp$6; err = _tmp$7; return [i, err]; } n = (new $Int64(un.$high, un.$low)); if (neg) { n = new $Int64(-n.$high, -n.$low); } _tmp$8 = n; _tmp$9 = $ifaceNil; i = _tmp$8; err = _tmp$9; return [i, err]; }; $pkg.ParseInt = ParseInt; Atoi = function(s) { var _tuple, _tuple$1, err, i64, nerr, ok, s; _tuple = ParseInt(s, 10, 0); i64 = _tuple[0]; err = _tuple[1]; _tuple$1 = $assertType(err, ptrType, true); nerr = _tuple$1[0]; ok = _tuple$1[1]; if (ok) { nerr.Func = "Atoi"; } return [(((i64.$low + ((i64.$high >> 31) * 4294967296)) >> 0)), err]; }; $pkg.Atoi = Atoi; decimal.ptr.prototype.String = function() { var a, buf, n, w; a = this; n = 10 + a.nd >> 0; if (a.dp > 0) { n = n + (a.dp) >> 0; } if (a.dp < 0) { n = n + (-a.dp) >> 0; } buf = $makeSlice(sliceType$6, n); w = 0; if ((a.nd === 0)) { return "0"; } else if (a.dp <= 0) { ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48); w = w + (1) >> 0; ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); w = w + (1) >> 0; w = w + (digitZero($subslice(buf, w, (w + -a.dp >> 0)))) >> 0; w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0; } else if (a.dp < a.nd) { w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.dp))) >> 0; ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); w = w + (1) >> 0; w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), a.dp, a.nd))) >> 0; } else { w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0; w = w + (digitZero($subslice(buf, w, ((w + a.dp >> 0) - a.nd >> 0)))) >> 0; } return ($bytesToString($subslice(buf, 0, w))); }; decimal.prototype.String = function() { return this.$val.String(); }; digitZero = function(dst) { var _i, _ref, dst, i; _ref = dst; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; ((i < 0 || i >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + i] = 48); _i++; } return dst.$length; }; trim = function(a) { var a, x, x$1; while (true) { if (!(a.nd > 0 && ((x = a.d, x$1 = a.nd - 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) === 48))) { break; } a.nd = a.nd - (1) >> 0; } if (a.nd === 0) { a.dp = 0; } }; decimal.ptr.prototype.Assign = function(v) { var a, buf, n, v, v1, x, x$1, x$2; a = this; buf = arrayType$1.zero(); n = 0; while (true) { if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; } v1 = $div64(v, new $Uint64(0, 10), false); v = (x = $mul64(new $Uint64(0, 10), v1), new $Uint64(v.$high - x.$high, v.$low - x.$low)); ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n] = ((new $Uint64(v.$high + 0, v.$low + 48).$low << 24 >>> 24))); n = n + (1) >> 0; v = v1; } a.nd = 0; n = n - (1) >> 0; while (true) { if (!(n >= 0)) { break; } (x$1 = a.d, x$2 = a.nd, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2] = ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n]))); a.nd = a.nd + (1) >> 0; n = n - (1) >> 0; } a.dp = a.nd; trim(a); }; decimal.prototype.Assign = function(v) { return this.$val.Assign(v); }; rightShift = function(a, k) { var a, c, c$1, dig, dig$1, k, mask, n, r, w, x, x$1, x$2, x$3, y, y$1, y$2, y$3, y$4; r = 0; w = 0; n = 0; while (true) { if (!(((y = k, y < 32 ? (n >>> y) : 0) >>> 0) === 0)) { break; } if (r >= a.nd) { if (n === 0) { a.nd = 0; return; } while (true) { if (!(((y$1 = k, y$1 < 32 ? (n >>> y$1) : 0) >>> 0) === 0)) { break; } n = n * 10 >>> 0; r = r + (1) >> 0; } break; } c = (((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0)); n = ((n * 10 >>> 0) + c >>> 0) - 48 >>> 0; r = r + (1) >> 0; } a.dp = a.dp - ((r - 1 >> 0)) >> 0; mask = (((y$2 = k, y$2 < 32 ? (1 << y$2) : 0) >>> 0)) - 1 >>> 0; while (true) { if (!(r < a.nd)) { break; } c$1 = (((x$1 = a.d, ((r < 0 || r >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[r])) >>> 0)); dig = (y$3 = k, y$3 < 32 ? (n >>> y$3) : 0) >>> 0; n = (n & (mask)) >>> 0; (x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((dig + 48 >>> 0) << 24 >>> 24)))); w = w + (1) >> 0; n = ((n * 10 >>> 0) + c$1 >>> 0) - 48 >>> 0; r = r + (1) >> 0; } while (true) { if (!(n > 0)) { break; } dig$1 = (y$4 = k, y$4 < 32 ? (n >>> y$4) : 0) >>> 0; n = (n & (mask)) >>> 0; if (w < 800) { (x$3 = a.d, ((w < 0 || w >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[w] = (((dig$1 + 48 >>> 0) << 24 >>> 24)))); w = w + (1) >> 0; } else if (dig$1 > 0) { a.trunc = true; } n = n * 10 >>> 0; } a.nd = w; trim(a); }; prefixIsLessThan = function(b, s) { var b, i, s; i = 0; while (true) { if (!(i < s.length)) { break; } if (i >= b.$length) { return true; } if (!((((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) === s.charCodeAt(i)))) { return ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) < s.charCodeAt(i); } i = i + (1) >> 0; } return false; }; leftShift = function(a, k) { var _q, _q$1, a, delta, k, n, quo, quo$1, r, rem, rem$1, w, x, x$1, x$2, y; delta = ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).delta; if (prefixIsLessThan($subslice(new sliceType$6(a.d), 0, a.nd), ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).cutoff)) { delta = delta - (1) >> 0; } r = a.nd; w = a.nd + delta >> 0; n = 0; r = r - (1) >> 0; while (true) { if (!(r >= 0)) { break; } n = n + (((y = k, y < 32 ? ((((((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0)) - 48 >>> 0)) << y) : 0) >>> 0)) >>> 0; quo = (_q = n / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); rem = n - (10 * quo >>> 0) >>> 0; w = w - (1) >> 0; if (w < 800) { (x$1 = a.d, ((w < 0 || w >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[w] = (((rem + 48 >>> 0) << 24 >>> 24)))); } else if (!((rem === 0))) { a.trunc = true; } n = quo; r = r - (1) >> 0; } while (true) { if (!(n > 0)) { break; } quo$1 = (_q$1 = n / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); rem$1 = n - (10 * quo$1 >>> 0) >>> 0; w = w - (1) >> 0; if (w < 800) { (x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((rem$1 + 48 >>> 0) << 24 >>> 24)))); } else if (!((rem$1 === 0))) { a.trunc = true; } n = quo$1; } a.nd = a.nd + (delta) >> 0; if (a.nd >= 800) { a.nd = 800; } a.dp = a.dp + (delta) >> 0; trim(a); }; decimal.ptr.prototype.Shift = function(k) { var a, k; a = this; if ((a.nd === 0)) { } else if (k > 0) { while (true) { if (!(k > 28)) { break; } leftShift(a, 28); k = k - (28) >> 0; } leftShift(a, ((k >>> 0))); } else if (k < 0) { while (true) { if (!(k < -28)) { break; } rightShift(a, 28); k = k + (28) >> 0; } rightShift(a, ((-k >>> 0))); } }; decimal.prototype.Shift = function(k) { return this.$val.Shift(k); }; shouldRoundUp = function(a, nd) { var _r, a, nd, x, x$1, x$2, x$3; if (nd < 0 || nd >= a.nd) { return false; } if (((x = a.d, ((nd < 0 || nd >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[nd])) === 53) && ((nd + 1 >> 0) === a.nd)) { if (a.trunc) { return true; } return nd > 0 && !(((_r = (((x$1 = a.d, x$2 = nd - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])) - 48 << 24 >>> 24)) % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0)); } return (x$3 = a.d, ((nd < 0 || nd >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[nd])) >= 53; }; decimal.ptr.prototype.Round = function(nd) { var a, nd; a = this; if (nd < 0 || nd >= a.nd) { return; } if (shouldRoundUp(a, nd)) { a.RoundUp(nd); } else { a.RoundDown(nd); } }; decimal.prototype.Round = function(nd) { return this.$val.Round(nd); }; decimal.ptr.prototype.RoundDown = function(nd) { var a, nd; a = this; if (nd < 0 || nd >= a.nd) { return; } a.nd = nd; trim(a); }; decimal.prototype.RoundDown = function(nd) { return this.$val.RoundDown(nd); }; decimal.ptr.prototype.RoundUp = function(nd) { var a, c, i, nd, x, x$1, x$2; a = this; if (nd < 0 || nd >= a.nd) { return; } i = nd - 1 >> 0; while (true) { if (!(i >= 0)) { break; } c = (x = a.d, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])); if (c < 57) { (x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = ((x$1 = a.d, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])) + (1) << 24 >>> 24))); a.nd = i + 1 >> 0; return; } i = i - (1) >> 0; } a.d[0] = 49; a.nd = 1; a.dp = a.dp + (1) >> 0; }; decimal.prototype.RoundUp = function(nd) { return this.$val.RoundUp(nd); }; decimal.ptr.prototype.RoundedInteger = function() { var a, i, n, x, x$1, x$2, x$3; a = this; if (a.dp > 20) { return new $Uint64(4294967295, 4294967295); } i = 0; n = new $Uint64(0, 0); i = 0; while (true) { if (!(i < a.dp && i < a.nd)) { break; } n = (x = $mul64(n, new $Uint64(0, 10)), x$1 = (new $Uint64(0, ((x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])) - 48 << 24 >>> 24))), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); i = i + (1) >> 0; } while (true) { if (!(i < a.dp)) { break; } n = $mul64(n, (new $Uint64(0, 10))); i = i + (1) >> 0; } if (shouldRoundUp(a, a.dp)) { n = (x$3 = new $Uint64(0, 1), new $Uint64(n.$high + x$3.$high, n.$low + x$3.$low)); } return n; }; decimal.prototype.RoundedInteger = function() { return this.$val.RoundedInteger(); }; extFloat.ptr.prototype.floatBits = function(flt) { var bits, exp, f, flt, mant, n, overflow, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, y$1, y$2; bits = new $Uint64(0, 0); overflow = false; f = this; f.Normalize(); exp = f.exp + 63 >> 0; if (exp < (flt.bias + 1 >> 0)) { n = (flt.bias + 1 >> 0) - exp >> 0; f.mant = $shiftRightUint64(f.mant, (((n >>> 0)))); exp = exp + (n) >> 0; } mant = $shiftRightUint64(f.mant, ((63 - flt.mantbits >>> 0))); if (!((x = (x$1 = f.mant, x$2 = $shiftLeft64(new $Uint64(0, 1), ((62 - flt.mantbits >>> 0))), new $Uint64(x$1.$high & x$2.$high, (x$1.$low & x$2.$low) >>> 0)), (x.$high === 0 && x.$low === 0)))) { mant = (x$3 = new $Uint64(0, 1), new $Uint64(mant.$high + x$3.$high, mant.$low + x$3.$low)); } if ((x$4 = $shiftLeft64(new $Uint64(0, 2), flt.mantbits), (mant.$high === x$4.$high && mant.$low === x$4.$low))) { mant = $shiftRightUint64(mant, (1)); exp = exp + (1) >> 0; } if ((exp - flt.bias >> 0) >= (((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)) { mant = new $Uint64(0, 0); exp = (((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0) + flt.bias >> 0; overflow = true; } else if ((x$5 = (x$6 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high & x$6.$high, (mant.$low & x$6.$low) >>> 0)), (x$5.$high === 0 && x$5.$low === 0))) { exp = flt.bias; } bits = (x$7 = (x$8 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$8.$high - 0, x$8.$low - 1)), new $Uint64(mant.$high & x$7.$high, (mant.$low & x$7.$low) >>> 0)); bits = (x$9 = $shiftLeft64((new $Uint64(0, (((exp - flt.bias >> 0)) & ((((y$2 = flt.expbits, y$2 < 32 ? (1 << y$2) : 0) >> 0) - 1 >> 0))))), flt.mantbits), new $Uint64(bits.$high | x$9.$high, (bits.$low | x$9.$low) >>> 0)); if (f.neg) { bits = (x$10 = $shiftLeft64(new $Uint64(0, 1), ((flt.mantbits + flt.expbits >>> 0))), new $Uint64(bits.$high | x$10.$high, (bits.$low | x$10.$low) >>> 0)); } return [bits, overflow]; }; extFloat.prototype.floatBits = function(flt) { return this.$val.floatBits(flt); }; extFloat.ptr.prototype.AssignComputeBounds = function(mant, exp, neg, flt) { var _tmp, _tmp$1, exp, expBiased, f, flt, lower, mant, neg, upper, x, x$1, x$2, x$3, x$4; lower = new extFloat.ptr(new $Uint64(0, 0), 0, false); upper = new extFloat.ptr(new $Uint64(0, 0), 0, false); f = this; f.mant = mant; f.exp = exp - ((flt.mantbits >> 0)) >> 0; f.neg = neg; if (f.exp <= 0 && (x = $shiftLeft64(($shiftRightUint64(mant, ((-f.exp >>> 0)))), ((-f.exp >>> 0))), (mant.$high === x.$high && mant.$low === x.$low))) { f.mant = $shiftRightUint64(f.mant, (((-f.exp >>> 0)))); f.exp = 0; _tmp = $clone(f, extFloat); _tmp$1 = $clone(f, extFloat); extFloat.copy(lower, _tmp); extFloat.copy(upper, _tmp$1); return [lower, upper]; } expBiased = exp - flt.bias >> 0; extFloat.copy(upper, new extFloat.ptr((x$1 = $mul64(new $Uint64(0, 2), f.mant), new $Uint64(x$1.$high + 0, x$1.$low + 1)), f.exp - 1 >> 0, f.neg)); if (!((x$2 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) || (expBiased === 1)) { extFloat.copy(lower, new extFloat.ptr((x$3 = $mul64(new $Uint64(0, 2), f.mant), new $Uint64(x$3.$high - 0, x$3.$low - 1)), f.exp - 1 >> 0, f.neg)); } else { extFloat.copy(lower, new extFloat.ptr((x$4 = $mul64(new $Uint64(0, 4), f.mant), new $Uint64(x$4.$high - 0, x$4.$low - 1)), f.exp - 2 >> 0, f.neg)); } return [lower, upper]; }; extFloat.prototype.AssignComputeBounds = function(mant, exp, neg, flt) { return this.$val.AssignComputeBounds(mant, exp, neg, flt); }; extFloat.ptr.prototype.Normalize = function() { var _tmp, _tmp$1, _tmp$2, _tmp$3, exp, f, mant, shift, x, x$1, x$2, x$3, x$4, x$5; shift = 0; f = this; _tmp = f.mant; _tmp$1 = f.exp; mant = _tmp; exp = _tmp$1; if ((mant.$high === 0 && mant.$low === 0)) { shift = 0; return shift; } if ((x = $shiftRightUint64(mant, 32), (x.$high === 0 && x.$low === 0))) { mant = $shiftLeft64(mant, (32)); exp = exp - (32) >> 0; } if ((x$1 = $shiftRightUint64(mant, 48), (x$1.$high === 0 && x$1.$low === 0))) { mant = $shiftLeft64(mant, (16)); exp = exp - (16) >> 0; } if ((x$2 = $shiftRightUint64(mant, 56), (x$2.$high === 0 && x$2.$low === 0))) { mant = $shiftLeft64(mant, (8)); exp = exp - (8) >> 0; } if ((x$3 = $shiftRightUint64(mant, 60), (x$3.$high === 0 && x$3.$low === 0))) { mant = $shiftLeft64(mant, (4)); exp = exp - (4) >> 0; } if ((x$4 = $shiftRightUint64(mant, 62), (x$4.$high === 0 && x$4.$low === 0))) { mant = $shiftLeft64(mant, (2)); exp = exp - (2) >> 0; } if ((x$5 = $shiftRightUint64(mant, 63), (x$5.$high === 0 && x$5.$low === 0))) { mant = $shiftLeft64(mant, (1)); exp = exp - (1) >> 0; } shift = (((f.exp - exp >> 0) >>> 0)); _tmp$2 = mant; _tmp$3 = exp; f.mant = _tmp$2; f.exp = _tmp$3; return shift; }; extFloat.prototype.Normalize = function() { return this.$val.Normalize(); }; extFloat.ptr.prototype.Multiply = function(g) { var _tmp, _tmp$1, _tmp$2, _tmp$3, cross1, cross2, f, fhi, flo, g, ghi, glo, rem, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; f = this; _tmp = $shiftRightUint64(f.mant, 32); _tmp$1 = (new $Uint64(0, ((f.mant.$low >>> 0)))); fhi = _tmp; flo = _tmp$1; _tmp$2 = $shiftRightUint64(g.mant, 32); _tmp$3 = (new $Uint64(0, ((g.mant.$low >>> 0)))); ghi = _tmp$2; glo = _tmp$3; cross1 = $mul64(fhi, glo); cross2 = $mul64(flo, ghi); f.mant = (x = (x$1 = $mul64(fhi, ghi), x$2 = $shiftRightUint64(cross1, 32), new $Uint64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)), x$3 = $shiftRightUint64(cross2, 32), new $Uint64(x.$high + x$3.$high, x.$low + x$3.$low)); rem = (x$4 = (x$5 = (new $Uint64(0, ((cross1.$low >>> 0)))), x$6 = (new $Uint64(0, ((cross2.$low >>> 0)))), new $Uint64(x$5.$high + x$6.$high, x$5.$low + x$6.$low)), x$7 = $shiftRightUint64(($mul64(flo, glo)), 32), new $Uint64(x$4.$high + x$7.$high, x$4.$low + x$7.$low)); rem = (x$8 = new $Uint64(0, 2147483648), new $Uint64(rem.$high + x$8.$high, rem.$low + x$8.$low)); f.mant = (x$9 = f.mant, x$10 = ($shiftRightUint64(rem, 32)), new $Uint64(x$9.$high + x$10.$high, x$9.$low + x$10.$low)); f.exp = (f.exp + g.exp >> 0) + 64 >> 0; }; extFloat.prototype.Multiply = function(g) { return this.$val.Multiply(g); }; extFloat.ptr.prototype.AssignDecimal = function(mantissa, exp10, neg, trunc, flt) { var _q, _r, adjExp, denormalExp, errors$1, exp10, extrabits, f, flt, halfway, i, mant_extra, mantissa, neg, ok, shift, trunc, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y; ok = false; f = this; errors$1 = 0; if (trunc) { errors$1 = errors$1 + (4) >> 0; } f.mant = mantissa; f.exp = 0; f.neg = neg; i = (_q = ((exp10 - -348 >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); if (exp10 < -348 || i >= 87) { ok = false; return ok; } adjExp = (_r = ((exp10 - -348 >> 0)) % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); if (adjExp < 19 && (x = (x$1 = 19 - adjExp >> 0, ((x$1 < 0 || x$1 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$1])), (mantissa.$high < x.$high || (mantissa.$high === x.$high && mantissa.$low < x.$low)))) { f.mant = $mul64(f.mant, (((adjExp < 0 || adjExp >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[adjExp]))); f.Normalize(); } else { f.Normalize(); f.Multiply($clone(((adjExp < 0 || adjExp >= smallPowersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : smallPowersOfTen[adjExp]), extFloat)); errors$1 = errors$1 + (4) >> 0; } f.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); if (errors$1 > 0) { errors$1 = errors$1 + (1) >> 0; } errors$1 = errors$1 + (4) >> 0; shift = f.Normalize(); errors$1 = (y = (shift), y < 32 ? (errors$1 << y) : 0) >> 0; denormalExp = flt.bias - 63 >> 0; extrabits = 0; if (f.exp <= denormalExp) { extrabits = ((63 - flt.mantbits >>> 0) + 1 >>> 0) + (((denormalExp - f.exp >> 0) >>> 0)) >>> 0; } else { extrabits = 63 - flt.mantbits >>> 0; } halfway = $shiftLeft64(new $Uint64(0, 1), ((extrabits - 1 >>> 0))); mant_extra = (x$2 = f.mant, x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), extrabits), new $Uint64(x$4.$high - 0, x$4.$low - 1)), new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)); if ((x$5 = (x$6 = (new $Int64(halfway.$high, halfway.$low)), x$7 = (new $Int64(0, errors$1)), new $Int64(x$6.$high - x$7.$high, x$6.$low - x$7.$low)), x$8 = (new $Int64(mant_extra.$high, mant_extra.$low)), (x$5.$high < x$8.$high || (x$5.$high === x$8.$high && x$5.$low < x$8.$low))) && (x$9 = (new $Int64(mant_extra.$high, mant_extra.$low)), x$10 = (x$11 = (new $Int64(halfway.$high, halfway.$low)), x$12 = (new $Int64(0, errors$1)), new $Int64(x$11.$high + x$12.$high, x$11.$low + x$12.$low)), (x$9.$high < x$10.$high || (x$9.$high === x$10.$high && x$9.$low < x$10.$low)))) { ok = false; return ok; } ok = true; return ok; }; extFloat.prototype.AssignDecimal = function(mantissa, exp10, neg, trunc, flt) { return this.$val.AssignDecimal(mantissa, exp10, neg, trunc, flt); }; extFloat.ptr.prototype.frexp10 = function() { var _q, _q$1, _tmp, _tmp$1, approxExp10, exp, exp10, f, i, index; exp10 = 0; index = 0; f = this; approxExp10 = (_q = ($imul(((-46 - f.exp >> 0)), 28)) / 93, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); i = (_q$1 = ((approxExp10 - -348 >> 0)) / 8, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); Loop: while (true) { exp = (f.exp + ((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]).exp >> 0) + 64 >> 0; if (exp < -60) { i = i + (1) >> 0; } else if (exp > -32) { i = i - (1) >> 0; } else { break Loop; } } f.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); _tmp = -((-348 + ($imul(i, 8)) >> 0)); _tmp$1 = i; exp10 = _tmp; index = _tmp$1; return [exp10, index]; }; extFloat.prototype.frexp10 = function() { return this.$val.frexp10(); }; frexp10Many = function(a, b, c) { var _tuple, a, b, c, exp10, i; exp10 = 0; _tuple = c.frexp10(); exp10 = _tuple[0]; i = _tuple[1]; a.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); b.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); return exp10; }; extFloat.ptr.prototype.FixedDecimal = function(d, n) { var $CE$B5, _q, _q$1, _tmp, _tmp$1, _tuple, buf, d, digit, exp10, f, fraction, i, i$1, i$2, integer, integerDigits, n, nd, needed, ok, pos, pow, pow10, rest, shift, v, v1, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; f = this; if ((x = f.mant, (x.$high === 0 && x.$low === 0))) { d.nd = 0; d.dp = 0; d.neg = f.neg; return true; } if (n === 0) { $panic(new $String("strconv: internal error: extFloat.FixedDecimal called with n == 0")); } f.Normalize(); _tuple = f.frexp10(); exp10 = _tuple[0]; shift = ((-f.exp >>> 0)); integer = (($shiftRightUint64(f.mant, shift).$low >>> 0)); fraction = (x$1 = f.mant, x$2 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)); $CE$B5 = new $Uint64(0, 1); needed = n; integerDigits = 0; pow10 = new $Uint64(0, 1); _tmp = 0; _tmp$1 = new $Uint64(0, 1); i = _tmp; pow = _tmp$1; while (true) { if (!(i < 20)) { break; } if ((x$3 = (new $Uint64(0, integer)), (pow.$high > x$3.$high || (pow.$high === x$3.$high && pow.$low > x$3.$low)))) { integerDigits = i; break; } pow = $mul64(pow, (new $Uint64(0, 10))); i = i + (1) >> 0; } rest = integer; if (integerDigits > needed) { pow10 = (x$4 = integerDigits - needed >> 0, ((x$4 < 0 || x$4 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$4])); integer = (_q = integer / (((pow10.$low >>> 0))), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); rest = rest - (($imul(integer, ((pow10.$low >>> 0))) >>> 0)) >>> 0; } else { rest = 0; } buf = arrayType$2.zero(); pos = 32; v = integer; while (true) { if (!(v > 0)) { break; } v1 = (_q$1 = v / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); v = v - (($imul(10, v1) >>> 0)) >>> 0; pos = pos - (1) >> 0; ((pos < 0 || pos >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[pos] = (((v + 48 >>> 0) << 24 >>> 24))); v = v1; } i$1 = pos; while (true) { if (!(i$1 < 32)) { break; } (x$5 = d.d, x$6 = i$1 - pos >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = ((i$1 < 0 || i$1 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i$1]))); i$1 = i$1 + (1) >> 0; } nd = 32 - pos >> 0; d.nd = nd; d.dp = integerDigits + exp10 >> 0; needed = needed - (nd) >> 0; if (needed > 0) { if (!((rest === 0)) || !((pow10.$high === 0 && pow10.$low === 1))) { $panic(new $String("strconv: internal error, rest != 0 but needed > 0")); } while (true) { if (!(needed > 0)) { break; } fraction = $mul64(fraction, (new $Uint64(0, 10))); $CE$B5 = $mul64($CE$B5, (new $Uint64(0, 10))); if ((x$7 = $mul64(new $Uint64(0, 2), $CE$B5), x$8 = $shiftLeft64(new $Uint64(0, 1), shift), (x$7.$high > x$8.$high || (x$7.$high === x$8.$high && x$7.$low > x$8.$low)))) { return false; } digit = $shiftRightUint64(fraction, shift); (x$9 = d.d, ((nd < 0 || nd >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + nd] = ((new $Uint64(digit.$high + 0, digit.$low + 48).$low << 24 >>> 24)))); fraction = (x$10 = $shiftLeft64(digit, shift), new $Uint64(fraction.$high - x$10.$high, fraction.$low - x$10.$low)); nd = nd + (1) >> 0; needed = needed - (1) >> 0; } d.nd = nd; } ok = adjustLastDigitFixed(d, (x$11 = $shiftLeft64((new $Uint64(0, rest)), shift), new $Uint64(x$11.$high | fraction.$high, (x$11.$low | fraction.$low) >>> 0)), pow10, shift, $CE$B5); if (!ok) { return false; } i$2 = d.nd - 1 >> 0; while (true) { if (!(i$2 >= 0)) { break; } if (!(((x$12 = d.d, ((i$2 < 0 || i$2 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + i$2])) === 48))) { d.nd = i$2 + 1 >> 0; break; } i$2 = i$2 - (1) >> 0; } return true; }; extFloat.prototype.FixedDecimal = function(d, n) { return this.$val.FixedDecimal(d, n); }; adjustLastDigitFixed = function(d, num, den, shift, $CE$B5) { var $CE$B5, d, den, i, num, shift, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; if ((x = $shiftLeft64(den, shift), (num.$high > x.$high || (num.$high === x.$high && num.$low > x.$low)))) { $panic(new $String("strconv: num > den< x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { $panic(new $String("strconv: \xCE\xB5 > (den< x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)))) { i = d.nd - 1 >> 0; while (true) { if (!(i >= 0)) { break; } if ((x$7 = d.d, ((i < 0 || i >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i])) === 57) { d.nd = d.nd - (1) >> 0; } else { break; } i = i - (1) >> 0; } if (i < 0) { (x$8 = d.d, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0] = 49)); d.nd = 1; d.dp = d.dp + (1) >> 0; } else { (x$10 = d.d, ((i < 0 || i >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + i] = ((x$9 = d.d, ((i < 0 || i >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i])) + (1) << 24 >>> 24))); } return true; } return false; }; extFloat.ptr.prototype.ShortestDecimal = function(d, lower, upper) { var _q, _tmp, _tmp$1, _tmp$2, _tmp$3, allowance, buf, currentDiff, d, digit, digit$1, exp10, f, fraction, i, i$1, i$2, integer, integerDigits, lower, multiplier, n, nd, pow, pow$1, shift, targetDiff, upper, v, v1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$3, x$4, x$5, x$6, x$7, x$8, x$9; f = this; if ((x = f.mant, (x.$high === 0 && x.$low === 0))) { d.nd = 0; d.dp = 0; d.neg = f.neg; return true; } if ((f.exp === 0) && $equal(lower, f, extFloat) && $equal(lower, upper, extFloat)) { buf = arrayType$1.zero(); n = 23; v = f.mant; while (true) { if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; } v1 = $div64(v, new $Uint64(0, 10), false); v = (x$1 = $mul64(new $Uint64(0, 10), v1), new $Uint64(v.$high - x$1.$high, v.$low - x$1.$low)); ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n] = ((new $Uint64(v.$high + 0, v.$low + 48).$low << 24 >>> 24))); n = n - (1) >> 0; v = v1; } nd = (24 - n >> 0) - 1 >> 0; i = 0; while (true) { if (!(i < nd)) { break; } (x$3 = d.d, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i] = (x$2 = (n + 1 >> 0) + i >> 0, ((x$2 < 0 || x$2 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[x$2])))); i = i + (1) >> 0; } _tmp = nd; _tmp$1 = nd; d.nd = _tmp; d.dp = _tmp$1; while (true) { if (!(d.nd > 0 && ((x$4 = d.d, x$5 = d.nd - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) === 48))) { break; } d.nd = d.nd - (1) >> 0; } if (d.nd === 0) { d.dp = 0; } d.neg = f.neg; return true; } upper.Normalize(); if (f.exp > upper.exp) { f.mant = $shiftLeft64(f.mant, ((((f.exp - upper.exp >> 0) >>> 0)))); f.exp = upper.exp; } if (lower.exp > upper.exp) { lower.mant = $shiftLeft64(lower.mant, ((((lower.exp - upper.exp >> 0) >>> 0)))); lower.exp = upper.exp; } exp10 = frexp10Many(lower, f, upper); upper.mant = (x$6 = upper.mant, x$7 = new $Uint64(0, 1), new $Uint64(x$6.$high + x$7.$high, x$6.$low + x$7.$low)); lower.mant = (x$8 = lower.mant, x$9 = new $Uint64(0, 1), new $Uint64(x$8.$high - x$9.$high, x$8.$low - x$9.$low)); shift = ((-upper.exp >>> 0)); integer = (($shiftRightUint64(upper.mant, shift).$low >>> 0)); fraction = (x$10 = upper.mant, x$11 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$10.$high - x$11.$high, x$10.$low - x$11.$low)); allowance = (x$12 = upper.mant, x$13 = lower.mant, new $Uint64(x$12.$high - x$13.$high, x$12.$low - x$13.$low)); targetDiff = (x$14 = upper.mant, x$15 = f.mant, new $Uint64(x$14.$high - x$15.$high, x$14.$low - x$15.$low)); integerDigits = 0; _tmp$2 = 0; _tmp$3 = new $Uint64(0, 1); i$1 = _tmp$2; pow = _tmp$3; while (true) { if (!(i$1 < 20)) { break; } if ((x$16 = (new $Uint64(0, integer)), (pow.$high > x$16.$high || (pow.$high === x$16.$high && pow.$low > x$16.$low)))) { integerDigits = i$1; break; } pow = $mul64(pow, (new $Uint64(0, 10))); i$1 = i$1 + (1) >> 0; } i$2 = 0; while (true) { if (!(i$2 < integerDigits)) { break; } pow$1 = (x$17 = (integerDigits - i$2 >> 0) - 1 >> 0, ((x$17 < 0 || x$17 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$17])); digit = (_q = integer / ((pow$1.$low >>> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); (x$18 = d.d, ((i$2 < 0 || i$2 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + i$2] = (((digit + 48 >>> 0) << 24 >>> 24)))); integer = integer - (($imul(digit, ((pow$1.$low >>> 0))) >>> 0)) >>> 0; currentDiff = (x$19 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$19.$high + fraction.$high, x$19.$low + fraction.$low)); if ((currentDiff.$high < allowance.$high || (currentDiff.$high === allowance.$high && currentDiff.$low < allowance.$low))) { d.nd = i$2 + 1 >> 0; d.dp = integerDigits + exp10 >> 0; d.neg = f.neg; return adjustLastDigit(d, currentDiff, targetDiff, allowance, $shiftLeft64(pow$1, shift), new $Uint64(0, 2)); } i$2 = i$2 + (1) >> 0; } d.nd = integerDigits; d.dp = d.nd + exp10 >> 0; d.neg = f.neg; digit$1 = 0; multiplier = new $Uint64(0, 1); while (true) { fraction = $mul64(fraction, (new $Uint64(0, 10))); multiplier = $mul64(multiplier, (new $Uint64(0, 10))); digit$1 = (($shiftRightUint64(fraction, shift).$low >> 0)); (x$20 = d.d, x$21 = d.nd, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21] = (((digit$1 + 48 >> 0) << 24 >>> 24)))); d.nd = d.nd + (1) >> 0; fraction = (x$22 = $shiftLeft64((new $Uint64(0, digit$1)), shift), new $Uint64(fraction.$high - x$22.$high, fraction.$low - x$22.$low)); if ((x$23 = $mul64(allowance, multiplier), (fraction.$high < x$23.$high || (fraction.$high === x$23.$high && fraction.$low < x$23.$low)))) { return adjustLastDigit(d, fraction, $mul64(targetDiff, multiplier), $mul64(allowance, multiplier), $shiftLeft64(new $Uint64(0, 1), shift), $mul64(multiplier, new $Uint64(0, 2))); } } }; extFloat.prototype.ShortestDecimal = function(d, lower, upper) { return this.$val.ShortestDecimal(d, lower, upper); }; adjustLastDigit = function(d, currentDiff, targetDiff, maxDiff, ulpDecimal, ulpBinary) { var _index, currentDiff, d, maxDiff, targetDiff, ulpBinary, ulpDecimal, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; if ((x = $mul64(new $Uint64(0, 2), ulpBinary), (ulpDecimal.$high < x.$high || (ulpDecimal.$high === x.$high && ulpDecimal.$low < x.$low)))) { return false; } while (true) { if (!((x$1 = (x$2 = (x$3 = $div64(ulpDecimal, new $Uint64(0, 2), false), new $Uint64(currentDiff.$high + x$3.$high, currentDiff.$low + x$3.$low)), new $Uint64(x$2.$high + ulpBinary.$high, x$2.$low + ulpBinary.$low)), (x$1.$high < targetDiff.$high || (x$1.$high === targetDiff.$high && x$1.$low < targetDiff.$low))))) { break; } _index = d.nd - 1 >> 0; (x$5 = d.d, ((_index < 0 || _index >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + _index] = ((x$4 = d.d, ((_index < 0 || _index >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + _index])) - (1) << 24 >>> 24))); currentDiff = (x$6 = ulpDecimal, new $Uint64(currentDiff.$high + x$6.$high, currentDiff.$low + x$6.$low)); } if ((x$7 = new $Uint64(currentDiff.$high + ulpDecimal.$high, currentDiff.$low + ulpDecimal.$low), x$8 = (x$9 = (x$10 = $div64(ulpDecimal, new $Uint64(0, 2), false), new $Uint64(targetDiff.$high + x$10.$high, targetDiff.$low + x$10.$low)), new $Uint64(x$9.$high + ulpBinary.$high, x$9.$low + ulpBinary.$low)), (x$7.$high < x$8.$high || (x$7.$high === x$8.$high && x$7.$low <= x$8.$low)))) { return false; } if ((currentDiff.$high < ulpBinary.$high || (currentDiff.$high === ulpBinary.$high && currentDiff.$low < ulpBinary.$low)) || (x$11 = new $Uint64(maxDiff.$high - ulpBinary.$high, maxDiff.$low - ulpBinary.$low), (currentDiff.$high > x$11.$high || (currentDiff.$high === x$11.$high && currentDiff.$low > x$11.$low)))) { return false; } if ((d.nd === 1) && ((x$12 = d.d, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0])) === 48)) { d.nd = 0; d.dp = 0; } return true; }; FormatFloat = function(f, fmt, prec, bitSize) { var bitSize, f, fmt, prec; return ($bytesToString(genericFtoa($makeSlice(sliceType$6, 0, max(prec + 4 >> 0, 24)), f, fmt, prec, bitSize))); }; $pkg.FormatFloat = FormatFloat; AppendFloat = function(dst, f, fmt, prec, bitSize) { var bitSize, dst, f, fmt, prec; return genericFtoa(dst, f, fmt, prec, bitSize); }; $pkg.AppendFloat = AppendFloat; genericFtoa = function(dst, val, fmt, prec, bitSize) { var _1, _2, _3, _4, _tuple, bitSize, bits, buf, buf$1, digits, digs, dst, exp, f, f$1, flt, fmt, lower, mant, neg, ok, prec, s, shortest, upper, val, x, x$1, x$2, x$3, y, y$1; bits = new $Uint64(0, 0); flt = ptrType$1.nil; _1 = bitSize; if (_1 === (32)) { bits = (new $Uint64(0, math.Float32bits(($fround(val))))); flt = float32info; } else if (_1 === (64)) { bits = math.Float64bits(val); flt = float64info; } else { $panic(new $String("strconv: illegal AppendFloat/FormatFloat bitSize")); } neg = !((x = $shiftRightUint64(bits, ((flt.expbits + flt.mantbits >>> 0))), (x.$high === 0 && x.$low === 0))); exp = (($shiftRightUint64(bits, flt.mantbits).$low >> 0)) & ((((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)); mant = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$2.$high - 0, x$2.$low - 1)), new $Uint64(bits.$high & x$1.$high, (bits.$low & x$1.$low) >>> 0)); _2 = exp; if (_2 === ((((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0))) { s = ""; if (!((mant.$high === 0 && mant.$low === 0))) { s = "NaN"; } else if (neg) { s = "-Inf"; } else { s = "+Inf"; } return $appendSlice(dst, s); } else if (_2 === (0)) { exp = exp + (1) >> 0; } else { mant = (x$3 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high | x$3.$high, (mant.$low | x$3.$low) >>> 0)); } exp = exp + (flt.bias) >> 0; if (fmt === 98) { return fmtB(dst, neg, mant, exp, flt); } if (!optimize) { return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); } digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false); ok = false; shortest = prec < 0; if (shortest) { f = new extFloat.ptr(new $Uint64(0, 0), 0, false); _tuple = f.AssignComputeBounds(mant, exp, neg, flt); lower = $clone(_tuple[0], extFloat); upper = $clone(_tuple[1], extFloat); buf = arrayType$2.zero(); digs.d = new sliceType$6(buf); ok = f.ShortestDecimal(digs, lower, upper); if (!ok) { return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); } _3 = fmt; if ((_3 === (101)) || (_3 === (69))) { prec = max(digs.nd - 1 >> 0, 0); } else if (_3 === (102)) { prec = max(digs.nd - digs.dp >> 0, 0); } else if ((_3 === (103)) || (_3 === (71))) { prec = digs.nd; } } else if (!((fmt === 102))) { digits = prec; _4 = fmt; if ((_4 === (101)) || (_4 === (69))) { digits = digits + (1) >> 0; } else if ((_4 === (103)) || (_4 === (71))) { if (prec === 0) { prec = 1; } digits = prec; } if (digits <= 15) { buf$1 = arrayType$1.zero(); digs.d = new sliceType$6(buf$1); f$1 = new extFloat.ptr(mant, exp - ((flt.mantbits >> 0)) >> 0, neg); ok = f$1.FixedDecimal(digs, digits); } } if (!ok) { return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); } return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt); }; bigFtoa = function(dst, prec, fmt, neg, mant, exp, flt) { var _1, _2, d, digs, dst, exp, flt, fmt, mant, neg, prec, shortest; d = new decimal.ptr(arrayType.zero(), 0, 0, false, false); d.Assign(mant); d.Shift(exp - ((flt.mantbits >> 0)) >> 0); digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false); shortest = prec < 0; if (shortest) { roundShortest(d, mant, exp, flt); decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false)); _1 = fmt; if ((_1 === (101)) || (_1 === (69))) { prec = digs.nd - 1 >> 0; } else if (_1 === (102)) { prec = max(digs.nd - digs.dp >> 0, 0); } else if ((_1 === (103)) || (_1 === (71))) { prec = digs.nd; } } else { _2 = fmt; if ((_2 === (101)) || (_2 === (69))) { d.Round(prec + 1 >> 0); } else if (_2 === (102)) { d.Round(d.dp + prec >> 0); } else if ((_2 === (103)) || (_2 === (71))) { if (prec === 0) { prec = 1; } d.Round(prec); } decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false)); } return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt); }; formatDigits = function(dst, shortest, neg, digs, prec, fmt) { var _1, digs, dst, eprec, exp, fmt, neg, prec, shortest; _1 = fmt; if ((_1 === (101)) || (_1 === (69))) { return fmtE(dst, neg, $clone(digs, decimalSlice), prec, fmt); } else if (_1 === (102)) { return fmtF(dst, neg, $clone(digs, decimalSlice), prec); } else if ((_1 === (103)) || (_1 === (71))) { eprec = prec; if (eprec > digs.nd && digs.nd >= digs.dp) { eprec = digs.nd; } if (shortest) { eprec = 6; } exp = digs.dp - 1 >> 0; if (exp < -4 || exp >= eprec) { if (prec > digs.nd) { prec = digs.nd; } return fmtE(dst, neg, $clone(digs, decimalSlice), prec - 1 >> 0, (fmt + 101 << 24 >>> 24) - 103 << 24 >>> 24); } if (prec > digs.dp) { prec = digs.nd; } return fmtF(dst, neg, $clone(digs, decimalSlice), max(prec - digs.dp >> 0, 0)); } return $append(dst, 37, fmt); }; roundShortest = function(d, mant, exp, flt) { var d, exp, explo, flt, i, inclusive, l, lower, m, mant, mantlo, minexp, okdown, okup, u, upper, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; if ((mant.$high === 0 && mant.$low === 0)) { d.nd = 0; return; } minexp = flt.bias + 1 >> 0; if (exp > minexp && ($imul(332, ((d.dp - d.nd >> 0)))) >= ($imul(100, ((exp - ((flt.mantbits >> 0)) >> 0))))) { return; } upper = new decimal.ptr(arrayType.zero(), 0, 0, false, false); upper.Assign((x = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x.$high + 0, x.$low + 1))); upper.Shift((exp - ((flt.mantbits >> 0)) >> 0) - 1 >> 0); mantlo = new $Uint64(0, 0); explo = 0; if ((x$1 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high > x$1.$high || (mant.$high === x$1.$high && mant.$low > x$1.$low))) || (exp === minexp)) { mantlo = new $Uint64(mant.$high - 0, mant.$low - 1); explo = exp; } else { mantlo = (x$2 = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x$2.$high - 0, x$2.$low - 1)); explo = exp - 1 >> 0; } lower = new decimal.ptr(arrayType.zero(), 0, 0, false, false); lower.Assign((x$3 = $mul64(mantlo, new $Uint64(0, 2)), new $Uint64(x$3.$high + 0, x$3.$low + 1))); lower.Shift((explo - ((flt.mantbits >> 0)) >> 0) - 1 >> 0); inclusive = (x$4 = $div64(mant, new $Uint64(0, 2), true), (x$4.$high === 0 && x$4.$low === 0)); i = 0; while (true) { if (!(i < d.nd)) { break; } l = 48; if (i < lower.nd) { l = (x$5 = lower.d, ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i])); } m = (x$6 = d.d, ((i < 0 || i >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[i])); u = 48; if (i < upper.nd) { u = (x$7 = upper.d, ((i < 0 || i >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : x$7[i])); } okdown = !((l === m)) || inclusive && ((i + 1 >> 0) === lower.nd); okup = !((m === u)) && (inclusive || (m + 1 << 24 >>> 24) < u || (i + 1 >> 0) < upper.nd); if (okdown && okup) { d.Round(i + 1 >> 0); return; } else if (okdown) { d.RoundDown(i + 1 >> 0); return; } else if (okup) { d.RoundUp(i + 1 >> 0); return; } i = i + (1) >> 0; } }; fmtE = function(dst, neg, d, prec, fmt) { var _q, _q$1, _q$2, _r, _r$1, _r$2, ch, d, dst, exp, fmt, i, m, neg, prec, x; if (neg) { dst = $append(dst, 45); } ch = 48; if (!((d.nd === 0))) { ch = (x = d.d, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); } dst = $append(dst, ch); if (prec > 0) { dst = $append(dst, 46); i = 1; m = min(d.nd, prec + 1 >> 0); if (i < m) { dst = $appendSlice(dst, $subslice(d.d, i, m)); i = m; } while (true) { if (!(i <= prec)) { break; } dst = $append(dst, 48); i = i + (1) >> 0; } } dst = $append(dst, fmt); exp = d.dp - 1 >> 0; if (d.nd === 0) { exp = 0; } if (exp < 0) { ch = 45; exp = -exp; } else { ch = 43; } dst = $append(dst, ch); if (exp < 10) { dst = $append(dst, 48, ((exp << 24 >>> 24)) + 48 << 24 >>> 24); } else if (exp < 100) { dst = $append(dst, (((_q = exp / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r = exp % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24); } else { dst = $append(dst, (((_q$1 = exp / 100, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (_r$1 = (((_q$2 = exp / 10, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) % 10, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24, (((_r$2 = exp % 10, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24); } return dst; }; fmtF = function(dst, neg, d, prec) { var ch, d, dst, i, j, m, neg, prec, x; if (neg) { dst = $append(dst, 45); } if (d.dp > 0) { m = min(d.nd, d.dp); dst = $appendSlice(dst, $subslice(d.d, 0, m)); while (true) { if (!(m < d.dp)) { break; } dst = $append(dst, 48); m = m + (1) >> 0; } } else { dst = $append(dst, 48); } if (prec > 0) { dst = $append(dst, 46); i = 0; while (true) { if (!(i < prec)) { break; } ch = 48; j = d.dp + i >> 0; if (0 <= j && j < d.nd) { ch = (x = d.d, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); } dst = $append(dst, ch); i = i + (1) >> 0; } } return dst; }; fmtB = function(dst, neg, mant, exp, flt) { var _tuple, _tuple$1, dst, exp, flt, mant, neg; if (neg) { dst = $append(dst, 45); } _tuple = formatBits(dst, mant, 10, false, true); dst = _tuple[0]; dst = $append(dst, 112); exp = exp - (((flt.mantbits >> 0))) >> 0; if (exp >= 0) { dst = $append(dst, 43); } _tuple$1 = formatBits(dst, (new $Uint64(0, exp)), 10, exp < 0, true); dst = _tuple$1[0]; return dst; }; min = function(a, b) { var a, b; if (a < b) { return a; } return b; }; max = function(a, b) { var a, b; if (a > b) { return a; } return b; }; FormatUint = function(i, base) { var _tuple, base, i, s; if (true && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) { return small(((i.$low >> 0))); } _tuple = formatBits(sliceType$6.nil, i, base, false, false); s = _tuple[1]; return s; }; $pkg.FormatUint = FormatUint; FormatInt = function(i, base) { var _tuple, base, i, s; if (true && (0 < i.$high || (0 === i.$high && 0 <= i.$low)) && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) { return small((((i.$low + ((i.$high >> 31) * 4294967296)) >> 0))); } _tuple = formatBits(sliceType$6.nil, (new $Uint64(i.$high, i.$low)), base, (i.$high < 0 || (i.$high === 0 && i.$low < 0)), false); s = _tuple[1]; return s; }; $pkg.FormatInt = FormatInt; Itoa = function(i) { var i; return FormatInt((new $Int64(0, i)), 10); }; $pkg.Itoa = Itoa; small = function(i) { var i, off; off = 0; if (i < 10) { off = 1; } return $substring("00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899", (($imul(i, 2)) + off >> 0), (($imul(i, 2)) + 2 >> 0)); }; formatBits = function(dst, u, base, neg, append_) { var _q, _q$1, _r, _r$1, a, append_, b, b$1, base, d, dst, i, is, is$1, is$2, j, m, neg, q, q$1, s, s$1, u, us, us$1, x, x$1, x$2, x$3, x$4, x$5; d = sliceType$6.nil; s = ""; if (base < 2 || base > 36) { $panic(new $String("strconv: illegal AppendInt/FormatInt base")); } a = arrayType$3.zero(); i = 65; if (neg) { u = new $Uint64(-u.$high, -u.$low); } if (base === 10) { if (true) { while (true) { if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 1000000000)))) { break; } q = $div64(u, new $Uint64(0, 1000000000), false); us = (((x = $mul64(q, new $Uint64(0, 1000000000)), new $Uint64(u.$high - x.$high, u.$low - x.$low)).$low >>> 0)); j = 4; while (true) { if (!(j > 0)) { break; } is = (_r = us % 100, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) * 2 >>> 0; us = (_q = us / (100), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); i = i - (2) >> 0; (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$1] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 1 >>> 0)))); (x$2 = i + 0 >> 0, ((x$2 < 0 || x$2 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$2] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 0 >>> 0)))); j = j - (1) >> 0; } i = i - (1) >> 0; ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(((us * 2 >>> 0) + 1 >>> 0))); u = q; } } us$1 = ((u.$low >>> 0)); while (true) { if (!(us$1 >= 100)) { break; } is$1 = (_r$1 = us$1 % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) * 2 >>> 0; us$1 = (_q$1 = us$1 / (100), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); i = i - (2) >> 0; (x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$3] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 1 >>> 0)))); (x$4 = i + 0 >> 0, ((x$4 < 0 || x$4 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$4] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 0 >>> 0)))); } is$2 = us$1 * 2 >>> 0; i = i - (1) >> 0; ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$2 + 1 >>> 0))); if (us$1 >= 10) { i = i - (1) >> 0; ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(is$2)); } } else { s$1 = ((base < 0 || base >= shifts.length) ? ($throwRuntimeError("index out of range"), undefined) : shifts[base]); if (s$1 > 0) { b = (new $Uint64(0, base)); m = ((base >>> 0)) - 1 >>> 0; while (true) { if (!((u.$high > b.$high || (u.$high === b.$high && u.$low >= b.$low)))) { break; } i = i - (1) >> 0; ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((((u.$low >>> 0)) & m) >>> 0))); u = $shiftRightUint64(u, (s$1)); } i = i - (1) >> 0; ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0)))); } else { b$1 = (new $Uint64(0, base)); while (true) { if (!((u.$high > b$1.$high || (u.$high === b$1.$high && u.$low >= b$1.$low)))) { break; } i = i - (1) >> 0; q$1 = $div64(u, b$1, false); ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt((((x$5 = $mul64(q$1, b$1), new $Uint64(u.$high - x$5.$high, u.$low - x$5.$low)).$low >>> 0)))); u = q$1; } i = i - (1) >> 0; ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0)))); } } if (neg) { i = i - (1) >> 0; ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = 45); } if (append_) { d = $appendSlice(dst, $subslice(new sliceType$6(a), i)); return [d, s]; } s = ($bytesToString($subslice(new sliceType$6(a), i))); return [d, s]; }; quoteWith = function(s, quote, ASCIIonly, graphicOnly) { var ASCIIonly, _q, graphicOnly, quote, s; return ($bytesToString(appendQuotedWith($makeSlice(sliceType$6, 0, (_q = ($imul(3, s.length)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), s, quote, ASCIIonly, graphicOnly))); }; appendQuotedWith = function(buf, s, quote, ASCIIonly, graphicOnly) { var ASCIIonly, _tuple, buf, graphicOnly, quote, r, s, width; buf = $append(buf, quote); width = 0; while (true) { if (!(s.length > 0)) { break; } r = ((s.charCodeAt(0) >> 0)); width = 1; if (r >= 128) { _tuple = utf8.DecodeRuneInString(s); r = _tuple[0]; width = _tuple[1]; } if ((width === 1) && (r === 65533)) { buf = $appendSlice(buf, "\\x"); buf = $append(buf, "0123456789abcdef".charCodeAt((s.charCodeAt(0) >>> 4 << 24 >>> 24))); buf = $append(buf, "0123456789abcdef".charCodeAt(((s.charCodeAt(0) & 15) >>> 0))); s = $substring(s, width); continue; } buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly); s = $substring(s, width); } buf = $append(buf, quote); return buf; }; appendQuotedRuneWith = function(buf, r, quote, ASCIIonly, graphicOnly) { var ASCIIonly, buf, graphicOnly, quote, r; buf = $append(buf, quote); if (!utf8.ValidRune(r)) { r = 65533; } buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly); buf = $append(buf, quote); return buf; }; appendEscapedRune = function(buf, r, quote, ASCIIonly, graphicOnly) { var ASCIIonly, _1, buf, graphicOnly, n, quote, r, runeTmp, s, s$1; runeTmp = arrayType$4.zero(); if ((r === ((quote >> 0))) || (r === 92)) { buf = $append(buf, 92); buf = $append(buf, ((r << 24 >>> 24))); return buf; } if (ASCIIonly) { if (r < 128 && IsPrint(r)) { buf = $append(buf, ((r << 24 >>> 24))); return buf; } } else if (IsPrint(r) || graphicOnly && isInGraphicList(r)) { n = utf8.EncodeRune(new sliceType$6(runeTmp), r); buf = $appendSlice(buf, $subslice(new sliceType$6(runeTmp), 0, n)); return buf; } _1 = r; if (_1 === (7)) { buf = $appendSlice(buf, "\\a"); } else if (_1 === (8)) { buf = $appendSlice(buf, "\\b"); } else if (_1 === (12)) { buf = $appendSlice(buf, "\\f"); } else if (_1 === (10)) { buf = $appendSlice(buf, "\\n"); } else if (_1 === (13)) { buf = $appendSlice(buf, "\\r"); } else if (_1 === (9)) { buf = $appendSlice(buf, "\\t"); } else if (_1 === (11)) { buf = $appendSlice(buf, "\\v"); } else { if (r < 32) { buf = $appendSlice(buf, "\\x"); buf = $append(buf, "0123456789abcdef".charCodeAt((((r << 24 >>> 24)) >>> 4 << 24 >>> 24))); buf = $append(buf, "0123456789abcdef".charCodeAt(((((r << 24 >>> 24)) & 15) >>> 0))); } else if (r > 1114111) { r = 65533; buf = $appendSlice(buf, "\\u"); s = 12; while (true) { if (!(s >= 0)) { break; } buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15))); s = s - (4) >> 0; } } else if (r < 65536) { buf = $appendSlice(buf, "\\u"); s = 12; while (true) { if (!(s >= 0)) { break; } buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15))); s = s - (4) >> 0; } } else { buf = $appendSlice(buf, "\\U"); s$1 = 28; while (true) { if (!(s$1 >= 0)) { break; } buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s$1 >>> 0)), 31)) >> 0) & 15))); s$1 = s$1 - (4) >> 0; } } } return buf; }; Quote = function(s) { var s; return quoteWith(s, 34, false, false); }; $pkg.Quote = Quote; AppendQuote = function(dst, s) { var dst, s; return appendQuotedWith(dst, s, 34, false, false); }; $pkg.AppendQuote = AppendQuote; QuoteToASCII = function(s) { var s; return quoteWith(s, 34, true, false); }; $pkg.QuoteToASCII = QuoteToASCII; AppendQuoteToASCII = function(dst, s) { var dst, s; return appendQuotedWith(dst, s, 34, true, false); }; $pkg.AppendQuoteToASCII = AppendQuoteToASCII; AppendQuoteRune = function(dst, r) { var dst, r; return appendQuotedRuneWith(dst, r, 39, false, false); }; $pkg.AppendQuoteRune = AppendQuoteRune; AppendQuoteRuneToASCII = function(dst, r) { var dst, r; return appendQuotedRuneWith(dst, r, 39, true, false); }; $pkg.AppendQuoteRuneToASCII = AppendQuoteRuneToASCII; CanBackquote = function(s) { var _tuple, r, s, wid; while (true) { if (!(s.length > 0)) { break; } _tuple = utf8.DecodeRuneInString(s); r = _tuple[0]; wid = _tuple[1]; s = $substring(s, wid); if (wid > 1) { if (r === 65279) { return false; } continue; } if (r === 65533) { return false; } if ((r < 32 && !((r === 9))) || (r === 96) || (r === 127)) { return false; } } return true; }; $pkg.CanBackquote = CanBackquote; unhex = function(b) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, c, ok, v; v = 0; ok = false; c = ((b >> 0)); if (48 <= c && c <= 57) { _tmp = c - 48 >> 0; _tmp$1 = true; v = _tmp; ok = _tmp$1; return [v, ok]; } else if (97 <= c && c <= 102) { _tmp$2 = (c - 97 >> 0) + 10 >> 0; _tmp$3 = true; v = _tmp$2; ok = _tmp$3; return [v, ok]; } else if (65 <= c && c <= 70) { _tmp$4 = (c - 65 >> 0) + 10 >> 0; _tmp$5 = true; v = _tmp$4; ok = _tmp$5; return [v, ok]; } return [v, ok]; }; UnquoteChar = function(s, quote) { var _1, _2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, c, c$1, err, j, j$1, multibyte, n, ok, quote, r, s, size, tail, v, v$1, value, x, x$1; value = 0; multibyte = false; tail = ""; err = $ifaceNil; c = s.charCodeAt(0); if ((c === quote) && ((quote === 39) || (quote === 34))) { err = $pkg.ErrSyntax; return [value, multibyte, tail, err]; } else if (c >= 128) { _tuple = utf8.DecodeRuneInString(s); r = _tuple[0]; size = _tuple[1]; _tmp = r; _tmp$1 = true; _tmp$2 = $substring(s, size); _tmp$3 = $ifaceNil; value = _tmp; multibyte = _tmp$1; tail = _tmp$2; err = _tmp$3; return [value, multibyte, tail, err]; } else if (!((c === 92))) { _tmp$4 = ((s.charCodeAt(0) >> 0)); _tmp$5 = false; _tmp$6 = $substring(s, 1); _tmp$7 = $ifaceNil; value = _tmp$4; multibyte = _tmp$5; tail = _tmp$6; err = _tmp$7; return [value, multibyte, tail, err]; } if (s.length <= 1) { err = $pkg.ErrSyntax; return [value, multibyte, tail, err]; } c$1 = s.charCodeAt(1); s = $substring(s, 2); switch (0) { default: _1 = c$1; if (_1 === (97)) { value = 7; } else if (_1 === (98)) { value = 8; } else if (_1 === (102)) { value = 12; } else if (_1 === (110)) { value = 10; } else if (_1 === (114)) { value = 13; } else if (_1 === (116)) { value = 9; } else if (_1 === (118)) { value = 11; } else if ((_1 === (120)) || (_1 === (117)) || (_1 === (85))) { n = 0; _2 = c$1; if (_2 === (120)) { n = 2; } else if (_2 === (117)) { n = 4; } else if (_2 === (85)) { n = 8; } v = 0; if (s.length < n) { err = $pkg.ErrSyntax; return [value, multibyte, tail, err]; } j = 0; while (true) { if (!(j < n)) { break; } _tuple$1 = unhex(s.charCodeAt(j)); x = _tuple$1[0]; ok = _tuple$1[1]; if (!ok) { err = $pkg.ErrSyntax; return [value, multibyte, tail, err]; } v = (v << 4 >> 0) | x; j = j + (1) >> 0; } s = $substring(s, n); if (c$1 === 120) { value = v; break; } if (v > 1114111) { err = $pkg.ErrSyntax; return [value, multibyte, tail, err]; } value = v; multibyte = true; } else if ((_1 === (48)) || (_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) { v$1 = ((c$1 >> 0)) - 48 >> 0; if (s.length < 2) { err = $pkg.ErrSyntax; return [value, multibyte, tail, err]; } j$1 = 0; while (true) { if (!(j$1 < 2)) { break; } x$1 = ((s.charCodeAt(j$1) >> 0)) - 48 >> 0; if (x$1 < 0 || x$1 > 7) { err = $pkg.ErrSyntax; return [value, multibyte, tail, err]; } v$1 = ((v$1 << 3 >> 0)) | x$1; j$1 = j$1 + (1) >> 0; } s = $substring(s, 2); if (v$1 > 255) { err = $pkg.ErrSyntax; return [value, multibyte, tail, err]; } value = v$1; } else if (_1 === (92)) { value = 92; } else if ((_1 === (39)) || (_1 === (34))) { if (!((c$1 === quote))) { err = $pkg.ErrSyntax; return [value, multibyte, tail, err]; } value = ((c$1 >> 0)); } else { err = $pkg.ErrSyntax; return [value, multibyte, tail, err]; } } tail = s; return [value, multibyte, tail, err]; }; $pkg.UnquoteChar = UnquoteChar; Unquote = function(s) { var _1, _q, _tuple, _tuple$1, buf, buf$1, c, err, i, multibyte, n, n$1, quote, r, runeTmp, s, size, ss; n = s.length; if (n < 2) { return ["", $pkg.ErrSyntax]; } quote = s.charCodeAt(0); if (!((quote === s.charCodeAt((n - 1 >> 0))))) { return ["", $pkg.ErrSyntax]; } s = $substring(s, 1, (n - 1 >> 0)); if (quote === 96) { if (contains(s, 96)) { return ["", $pkg.ErrSyntax]; } if (contains(s, 13)) { buf = $makeSlice(sliceType$6, 0, (s.length - 1 >> 0)); i = 0; while (true) { if (!(i < s.length)) { break; } if (!((s.charCodeAt(i) === 13))) { buf = $append(buf, s.charCodeAt(i)); } i = i + (1) >> 0; } return [($bytesToString(buf)), $ifaceNil]; } return [s, $ifaceNil]; } if (!((quote === 34)) && !((quote === 39))) { return ["", $pkg.ErrSyntax]; } if (contains(s, 10)) { return ["", $pkg.ErrSyntax]; } if (!contains(s, 92) && !contains(s, quote)) { _1 = quote; if (_1 === (34)) { return [s, $ifaceNil]; } else if (_1 === (39)) { _tuple = utf8.DecodeRuneInString(s); r = _tuple[0]; size = _tuple[1]; if ((size === s.length) && (!((r === 65533)) || !((size === 1)))) { return [s, $ifaceNil]; } } } runeTmp = arrayType$4.zero(); buf$1 = $makeSlice(sliceType$6, 0, (_q = ($imul(3, s.length)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); while (true) { if (!(s.length > 0)) { break; } _tuple$1 = UnquoteChar(s, quote); c = _tuple$1[0]; multibyte = _tuple$1[1]; ss = _tuple$1[2]; err = _tuple$1[3]; if (!($interfaceIsEqual(err, $ifaceNil))) { return ["", err]; } s = ss; if (c < 128 || !multibyte) { buf$1 = $append(buf$1, ((c << 24 >>> 24))); } else { n$1 = utf8.EncodeRune(new sliceType$6(runeTmp), c); buf$1 = $appendSlice(buf$1, $subslice(new sliceType$6(runeTmp), 0, n$1)); } if ((quote === 39) && !((s.length === 0))) { return ["", $pkg.ErrSyntax]; } } return [($bytesToString(buf$1)), $ifaceNil]; }; $pkg.Unquote = Unquote; contains = function(s, c) { var c, i, s; i = 0; while (true) { if (!(i < s.length)) { break; } if (s.charCodeAt(i) === c) { return true; } i = i + (1) >> 0; } return false; }; bsearch16 = function(a, x) { var _q, _tmp, _tmp$1, a, h, i, j, x; _tmp = 0; _tmp$1 = a.$length; i = _tmp; j = _tmp$1; while (true) { if (!(i < j)) { break; } h = i + (_q = ((j - i >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) { i = h + 1 >> 0; } else { j = h; } } return i; }; bsearch32 = function(a, x) { var _q, _tmp, _tmp$1, a, h, i, j, x; _tmp = 0; _tmp$1 = a.$length; i = _tmp; j = _tmp$1; while (true) { if (!(i < j)) { break; } h = i + (_q = ((j - i >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) { i = h + 1 >> 0; } else { j = h; } } return i; }; IsPrint = function(r) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, i, i$1, isNotPrint, isNotPrint$1, isPrint, isPrint$1, j, j$1, r, rr, rr$1, x, x$1, x$2, x$3; if (r <= 255) { if (32 <= r && r <= 126) { return true; } if (161 <= r && r <= 255) { return !((r === 173)); } return false; } if (0 <= r && r < 65536) { _tmp = ((r << 16 >>> 16)); _tmp$1 = isPrint16; _tmp$2 = isNotPrint16; rr = _tmp; isPrint = _tmp$1; isNotPrint = _tmp$2; i = bsearch16(isPrint, rr); if (i >= isPrint.$length || rr < (x = (i & ~1) >> 0, ((x < 0 || x >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x])) || (x$1 = i | 1, ((x$1 < 0 || x$1 >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x$1])) < rr) { return false; } j = bsearch16(isNotPrint, rr); return j >= isNotPrint.$length || !((((j < 0 || j >= isNotPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint.$array[isNotPrint.$offset + j]) === rr)); } _tmp$3 = ((r >>> 0)); _tmp$4 = isPrint32; _tmp$5 = isNotPrint32; rr$1 = _tmp$3; isPrint$1 = _tmp$4; isNotPrint$1 = _tmp$5; i$1 = bsearch32(isPrint$1, rr$1); if (i$1 >= isPrint$1.$length || rr$1 < (x$2 = (i$1 & ~1) >> 0, ((x$2 < 0 || x$2 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$2])) || (x$3 = i$1 | 1, ((x$3 < 0 || x$3 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$3])) < rr$1) { return false; } if (r >= 131072) { return true; } r = r - (65536) >> 0; j$1 = bsearch16(isNotPrint$1, ((r << 16 >>> 16))); return j$1 >= isNotPrint$1.$length || !((((j$1 < 0 || j$1 >= isNotPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint$1.$array[isNotPrint$1.$offset + j$1]) === ((r << 16 >>> 16)))); }; $pkg.IsPrint = IsPrint; isInGraphicList = function(r) { var i, r, rr; if (r > 65535) { return false; } rr = ((r << 16 >>> 16)); i = bsearch16(isGraphic, rr); return i < isGraphic.$length && (rr === ((i < 0 || i >= isGraphic.$length) ? ($throwRuntimeError("index out of range"), undefined) : isGraphic.$array[isGraphic.$offset + i])); }; ptrType.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$2.methods = [{prop: "set", name: "set", pkg: "strconv", typ: $funcType([$String], [$Bool], false)}, {prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType$1], [$Uint64, $Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Assign", name: "Assign", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "Shift", name: "Shift", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundDown", name: "RoundDown", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundUp", name: "RoundUp", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundedInteger", name: "RoundedInteger", pkg: "", typ: $funcType([], [$Uint64], false)}]; ptrType$4.methods = [{prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType$1], [$Uint64, $Bool], false)}, {prop: "AssignComputeBounds", name: "AssignComputeBounds", pkg: "", typ: $funcType([$Uint64, $Int, $Bool, ptrType$1], [extFloat, extFloat], false)}, {prop: "Normalize", name: "Normalize", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "Multiply", name: "Multiply", pkg: "", typ: $funcType([extFloat], [], false)}, {prop: "AssignDecimal", name: "AssignDecimal", pkg: "", typ: $funcType([$Uint64, $Int, $Bool, $Bool, ptrType$1], [$Bool], false)}, {prop: "frexp10", name: "frexp10", pkg: "strconv", typ: $funcType([], [$Int, $Int], false)}, {prop: "FixedDecimal", name: "FixedDecimal", pkg: "", typ: $funcType([ptrType$3, $Int], [$Bool], false)}, {prop: "ShortestDecimal", name: "ShortestDecimal", pkg: "", typ: $funcType([ptrType$3, ptrType$4, ptrType$4], [$Bool], false)}]; NumError.init("", [{prop: "Func", name: "Func", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "Num", name: "Num", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", anonymous: false, exported: true, typ: $error, tag: ""}]); decimal.init("strconv", [{prop: "d", name: "d", anonymous: false, exported: false, typ: arrayType, tag: ""}, {prop: "nd", name: "nd", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "dp", name: "dp", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "trunc", name: "trunc", anonymous: false, exported: false, typ: $Bool, tag: ""}]); leftCheat.init("strconv", [{prop: "delta", name: "delta", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "cutoff", name: "cutoff", anonymous: false, exported: false, typ: $String, tag: ""}]); extFloat.init("strconv", [{prop: "mant", name: "mant", anonymous: false, exported: false, typ: $Uint64, tag: ""}, {prop: "exp", name: "exp", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", anonymous: false, exported: false, typ: $Bool, tag: ""}]); floatInfo.init("strconv", [{prop: "mantbits", name: "mantbits", anonymous: false, exported: false, typ: $Uint, tag: ""}, {prop: "expbits", name: "expbits", anonymous: false, exported: false, typ: $Uint, tag: ""}, {prop: "bias", name: "bias", anonymous: false, exported: false, typ: $Int, tag: ""}]); decimalSlice.init("strconv", [{prop: "d", name: "d", anonymous: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "nd", name: "nd", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "dp", name: "dp", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", anonymous: false, exported: false, typ: $Bool, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = math.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } optimize = true; powtab = new sliceType([1, 3, 6, 9, 13, 16, 19, 23, 26]); float64pow10 = new sliceType$1([1, 10, 100, 1000, 10000, 100000, 1e+06, 1e+07, 1e+08, 1e+09, 1e+10, 1e+11, 1e+12, 1e+13, 1e+14, 1e+15, 1e+16, 1e+17, 1e+18, 1e+19, 1e+20, 1e+21, 1e+22]); float32pow10 = new sliceType$2([1, 10, 100, 1000, 10000, 100000, 1e+06, 1e+07, 1e+08, 1e+09, 1e+10]); $pkg.ErrRange = errors.New("value out of range"); $pkg.ErrSyntax = errors.New("invalid syntax"); leftcheats = new sliceType$3([new leftCheat.ptr(0, ""), new leftCheat.ptr(1, "5"), new leftCheat.ptr(1, "25"), new leftCheat.ptr(1, "125"), new leftCheat.ptr(2, "625"), new leftCheat.ptr(2, "3125"), new leftCheat.ptr(2, "15625"), new leftCheat.ptr(3, "78125"), new leftCheat.ptr(3, "390625"), new leftCheat.ptr(3, "1953125"), new leftCheat.ptr(4, "9765625"), new leftCheat.ptr(4, "48828125"), new leftCheat.ptr(4, "244140625"), new leftCheat.ptr(4, "1220703125"), new leftCheat.ptr(5, "6103515625"), new leftCheat.ptr(5, "30517578125"), new leftCheat.ptr(5, "152587890625"), new leftCheat.ptr(6, "762939453125"), new leftCheat.ptr(6, "3814697265625"), new leftCheat.ptr(6, "19073486328125"), new leftCheat.ptr(7, "95367431640625"), new leftCheat.ptr(7, "476837158203125"), new leftCheat.ptr(7, "2384185791015625"), new leftCheat.ptr(7, "11920928955078125"), new leftCheat.ptr(8, "59604644775390625"), new leftCheat.ptr(8, "298023223876953125"), new leftCheat.ptr(8, "1490116119384765625"), new leftCheat.ptr(9, "7450580596923828125"), new leftCheat.ptr(9, "37252902984619140625"), new leftCheat.ptr(9, "186264514923095703125"), new leftCheat.ptr(10, "931322574615478515625"), new leftCheat.ptr(10, "4656612873077392578125"), new leftCheat.ptr(10, "23283064365386962890625"), new leftCheat.ptr(10, "116415321826934814453125"), new leftCheat.ptr(11, "582076609134674072265625"), new leftCheat.ptr(11, "2910383045673370361328125"), new leftCheat.ptr(11, "14551915228366851806640625"), new leftCheat.ptr(12, "72759576141834259033203125"), new leftCheat.ptr(12, "363797880709171295166015625"), new leftCheat.ptr(12, "1818989403545856475830078125"), new leftCheat.ptr(13, "9094947017729282379150390625"), new leftCheat.ptr(13, "45474735088646411895751953125"), new leftCheat.ptr(13, "227373675443232059478759765625"), new leftCheat.ptr(13, "1136868377216160297393798828125"), new leftCheat.ptr(14, "5684341886080801486968994140625"), new leftCheat.ptr(14, "28421709430404007434844970703125"), new leftCheat.ptr(14, "142108547152020037174224853515625"), new leftCheat.ptr(15, "710542735760100185871124267578125"), new leftCheat.ptr(15, "3552713678800500929355621337890625"), new leftCheat.ptr(15, "17763568394002504646778106689453125"), new leftCheat.ptr(16, "88817841970012523233890533447265625"), new leftCheat.ptr(16, "444089209850062616169452667236328125"), new leftCheat.ptr(16, "2220446049250313080847263336181640625"), new leftCheat.ptr(16, "11102230246251565404236316680908203125"), new leftCheat.ptr(17, "55511151231257827021181583404541015625"), new leftCheat.ptr(17, "277555756156289135105907917022705078125"), new leftCheat.ptr(17, "1387778780781445675529539585113525390625"), new leftCheat.ptr(18, "6938893903907228377647697925567626953125"), new leftCheat.ptr(18, "34694469519536141888238489627838134765625"), new leftCheat.ptr(18, "173472347597680709441192448139190673828125"), new leftCheat.ptr(19, "867361737988403547205962240695953369140625")]); smallPowersOfTen = $toNativeArray($kindStruct, [new extFloat.ptr(new $Uint64(2147483648, 0), -63, false), new extFloat.ptr(new $Uint64(2684354560, 0), -60, false), new extFloat.ptr(new $Uint64(3355443200, 0), -57, false), new extFloat.ptr(new $Uint64(4194304000, 0), -54, false), new extFloat.ptr(new $Uint64(2621440000, 0), -50, false), new extFloat.ptr(new $Uint64(3276800000, 0), -47, false), new extFloat.ptr(new $Uint64(4096000000, 0), -44, false), new extFloat.ptr(new $Uint64(2560000000, 0), -40, false)]); powersOfTen = $toNativeArray($kindStruct, [new extFloat.ptr(new $Uint64(4203730336, 136053384), -1220, false), new extFloat.ptr(new $Uint64(3132023167, 2722021238), -1193, false), new extFloat.ptr(new $Uint64(2333539104, 810921078), -1166, false), new extFloat.ptr(new $Uint64(3477244234, 1573795306), -1140, false), new extFloat.ptr(new $Uint64(2590748842, 1432697645), -1113, false), new extFloat.ptr(new $Uint64(3860516611, 1025131999), -1087, false), new extFloat.ptr(new $Uint64(2876309015, 3348809418), -1060, false), new extFloat.ptr(new $Uint64(4286034428, 3200048207), -1034, false), new extFloat.ptr(new $Uint64(3193344495, 1097586188), -1007, false), new extFloat.ptr(new $Uint64(2379227053, 2424306748), -980, false), new extFloat.ptr(new $Uint64(3545324584, 827693699), -954, false), new extFloat.ptr(new $Uint64(2641472655, 2913388981), -927, false), new extFloat.ptr(new $Uint64(3936100983, 602835915), -901, false), new extFloat.ptr(new $Uint64(2932623761, 1081627501), -874, false), new extFloat.ptr(new $Uint64(2184974969, 1572261463), -847, false), new extFloat.ptr(new $Uint64(3255866422, 1308317239), -821, false), new extFloat.ptr(new $Uint64(2425809519, 944281679), -794, false), new extFloat.ptr(new $Uint64(3614737867, 629291719), -768, false), new extFloat.ptr(new $Uint64(2693189581, 2545915892), -741, false), new extFloat.ptr(new $Uint64(4013165208, 388672741), -715, false), new extFloat.ptr(new $Uint64(2990041083, 708162190), -688, false), new extFloat.ptr(new $Uint64(2227754207, 3536207675), -661, false), new extFloat.ptr(new $Uint64(3319612455, 450088378), -635, false), new extFloat.ptr(new $Uint64(2473304014, 3139815830), -608, false), new extFloat.ptr(new $Uint64(3685510180, 2103616900), -582, false), new extFloat.ptr(new $Uint64(2745919064, 224385782), -555, false), new extFloat.ptr(new $Uint64(4091738259, 3737383206), -529, false), new extFloat.ptr(new $Uint64(3048582568, 2868871352), -502, false), new extFloat.ptr(new $Uint64(2271371013, 1820084875), -475, false), new extFloat.ptr(new $Uint64(3384606560, 885076051), -449, false), new extFloat.ptr(new $Uint64(2521728396, 2444895829), -422, false), new extFloat.ptr(new $Uint64(3757668132, 1881767613), -396, false), new extFloat.ptr(new $Uint64(2799680927, 3102062735), -369, false), new extFloat.ptr(new $Uint64(4171849679, 2289335700), -343, false), new extFloat.ptr(new $Uint64(3108270227, 2410191823), -316, false), new extFloat.ptr(new $Uint64(2315841784, 3205436779), -289, false), new extFloat.ptr(new $Uint64(3450873173, 1697722806), -263, false), new extFloat.ptr(new $Uint64(2571100870, 3497754540), -236, false), new extFloat.ptr(new $Uint64(3831238852, 707476230), -210, false), new extFloat.ptr(new $Uint64(2854495385, 1769181907), -183, false), new extFloat.ptr(new $Uint64(4253529586, 2197867022), -157, false), new extFloat.ptr(new $Uint64(3169126500, 2450594539), -130, false), new extFloat.ptr(new $Uint64(2361183241, 1867548876), -103, false), new extFloat.ptr(new $Uint64(3518437208, 3793315116), -77, false), new extFloat.ptr(new $Uint64(2621440000, 0), -50, false), new extFloat.ptr(new $Uint64(3906250000, 0), -24, false), new extFloat.ptr(new $Uint64(2910383045, 2892103680), 3, false), new extFloat.ptr(new $Uint64(2168404344, 4170451332), 30, false), new extFloat.ptr(new $Uint64(3231174267, 3372684723), 56, false), new extFloat.ptr(new $Uint64(2407412430, 2078956656), 83, false), new extFloat.ptr(new $Uint64(3587324068, 2884206696), 109, false), new extFloat.ptr(new $Uint64(2672764710, 395977285), 136, false), new extFloat.ptr(new $Uint64(3982729777, 3569679143), 162, false), new extFloat.ptr(new $Uint64(2967364920, 2361961896), 189, false), new extFloat.ptr(new $Uint64(2210859150, 447440347), 216, false), new extFloat.ptr(new $Uint64(3294436857, 1114709402), 242, false), new extFloat.ptr(new $Uint64(2454546732, 2786846552), 269, false), new extFloat.ptr(new $Uint64(3657559652, 443583978), 295, false), new extFloat.ptr(new $Uint64(2725094297, 2599384906), 322, false), new extFloat.ptr(new $Uint64(4060706939, 3028118405), 348, false), new extFloat.ptr(new $Uint64(3025462433, 2044532855), 375, false), new extFloat.ptr(new $Uint64(2254145170, 1536935362), 402, false), new extFloat.ptr(new $Uint64(3358938053, 3365297469), 428, false), new extFloat.ptr(new $Uint64(2502603868, 4204241075), 455, false), new extFloat.ptr(new $Uint64(3729170365, 2577424355), 481, false), new extFloat.ptr(new $Uint64(2778448436, 3677981733), 508, false), new extFloat.ptr(new $Uint64(4140210802, 2744688476), 534, false), new extFloat.ptr(new $Uint64(3084697427, 1424604878), 561, false), new extFloat.ptr(new $Uint64(2298278679, 4062331362), 588, false), new extFloat.ptr(new $Uint64(3424702107, 3546052773), 614, false), new extFloat.ptr(new $Uint64(2551601907, 2065781727), 641, false), new extFloat.ptr(new $Uint64(3802183132, 2535403578), 667, false), new extFloat.ptr(new $Uint64(2832847187, 1558426518), 694, false), new extFloat.ptr(new $Uint64(4221271257, 2762425404), 720, false), new extFloat.ptr(new $Uint64(3145092172, 2812560400), 747, false), new extFloat.ptr(new $Uint64(2343276271, 3057687578), 774, false), new extFloat.ptr(new $Uint64(3491753744, 2790753324), 800, false), new extFloat.ptr(new $Uint64(2601559269, 3918606633), 827, false), new extFloat.ptr(new $Uint64(3876625403, 2711358621), 853, false), new extFloat.ptr(new $Uint64(2888311001, 1648096297), 880, false), new extFloat.ptr(new $Uint64(2151959390, 2057817989), 907, false), new extFloat.ptr(new $Uint64(3206669376, 61660461), 933, false), new extFloat.ptr(new $Uint64(2389154863, 1581580175), 960, false), new extFloat.ptr(new $Uint64(3560118173, 2626467905), 986, false), new extFloat.ptr(new $Uint64(2652494738, 3034782633), 1013, false), new extFloat.ptr(new $Uint64(3952525166, 3135207385), 1039, false), new extFloat.ptr(new $Uint64(2944860731, 2616258155), 1066, false)]); uint64pow10 = $toNativeArray($kindUint64, [new $Uint64(0, 1), new $Uint64(0, 10), new $Uint64(0, 100), new $Uint64(0, 1000), new $Uint64(0, 10000), new $Uint64(0, 100000), new $Uint64(0, 1000000), new $Uint64(0, 10000000), new $Uint64(0, 100000000), new $Uint64(0, 1000000000), new $Uint64(2, 1410065408), new $Uint64(23, 1215752192), new $Uint64(232, 3567587328), new $Uint64(2328, 1316134912), new $Uint64(23283, 276447232), new $Uint64(232830, 2764472320), new $Uint64(2328306, 1874919424), new $Uint64(23283064, 1569325056), new $Uint64(232830643, 2808348672), new $Uint64(2328306436, 2313682944)]); float32info = new floatInfo.ptr(23, 8, -127); float64info = new floatInfo.ptr(52, 11, -1023); isPrint16 = new sliceType$4([32, 126, 161, 887, 890, 895, 900, 1366, 1369, 1418, 1421, 1479, 1488, 1514, 1520, 1524, 1542, 1563, 1566, 1805, 1808, 1866, 1869, 1969, 1984, 2042, 2048, 2093, 2096, 2139, 2142, 2142, 2208, 2237, 2260, 2444, 2447, 2448, 2451, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2531, 2534, 2555, 2561, 2570, 2575, 2576, 2579, 2617, 2620, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2654, 2662, 2677, 2689, 2745, 2748, 2765, 2768, 2768, 2784, 2787, 2790, 2801, 2809, 2809, 2817, 2828, 2831, 2832, 2835, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2915, 2918, 2935, 2946, 2954, 2958, 2965, 2969, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3021, 3024, 3024, 3031, 3031, 3046, 3066, 3072, 3129, 3133, 3149, 3157, 3162, 3168, 3171, 3174, 3183, 3192, 3257, 3260, 3277, 3285, 3286, 3294, 3299, 3302, 3314, 3329, 3386, 3389, 3407, 3412, 3427, 3430, 3455, 3458, 3478, 3482, 3517, 3520, 3526, 3530, 3530, 3535, 3551, 3558, 3567, 3570, 3572, 3585, 3642, 3647, 3675, 3713, 3716, 3719, 3722, 3725, 3725, 3732, 3751, 3754, 3773, 3776, 3789, 3792, 3801, 3804, 3807, 3840, 3948, 3953, 4058, 4096, 4295, 4301, 4301, 4304, 4685, 4688, 4701, 4704, 4749, 4752, 4789, 4792, 4805, 4808, 4885, 4888, 4954, 4957, 4988, 4992, 5017, 5024, 5109, 5112, 5117, 5120, 5788, 5792, 5880, 5888, 5908, 5920, 5942, 5952, 5971, 5984, 6003, 6016, 6109, 6112, 6121, 6128, 6137, 6144, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6443, 6448, 6459, 6464, 6464, 6468, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6622, 6683, 6686, 6780, 6783, 6793, 6800, 6809, 6816, 6829, 6832, 6846, 6912, 6987, 6992, 7036, 7040, 7155, 7164, 7223, 7227, 7241, 7245, 7304, 7360, 7367, 7376, 7417, 7424, 7669, 7675, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8061, 8064, 8147, 8150, 8175, 8178, 8190, 8208, 8231, 8240, 8286, 8304, 8305, 8308, 8348, 8352, 8382, 8400, 8432, 8448, 8587, 8592, 9254, 9280, 9290, 9312, 11123, 11126, 11157, 11160, 11193, 11197, 11217, 11244, 11247, 11264, 11507, 11513, 11559, 11565, 11565, 11568, 11623, 11631, 11632, 11647, 11670, 11680, 11844, 11904, 12019, 12032, 12245, 12272, 12283, 12289, 12438, 12441, 12543, 12549, 12589, 12593, 12730, 12736, 12771, 12784, 19893, 19904, 40917, 40960, 42124, 42128, 42182, 42192, 42539, 42560, 42743, 42752, 42935, 42999, 43051, 43056, 43065, 43072, 43127, 43136, 43205, 43214, 43225, 43232, 43261, 43264, 43347, 43359, 43388, 43392, 43481, 43486, 43574, 43584, 43597, 43600, 43609, 43612, 43714, 43739, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43877, 43888, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64449, 64467, 64831, 64848, 64911, 64914, 64967, 65008, 65021, 65024, 65049, 65056, 65131, 65136, 65276, 65281, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65504, 65518, 65532, 65533]); isNotPrint16 = new sliceType$4([173, 907, 909, 930, 1328, 1376, 1416, 1424, 1757, 2111, 2229, 2274, 2436, 2473, 2481, 2526, 2564, 2601, 2609, 2612, 2615, 2621, 2653, 2692, 2702, 2706, 2729, 2737, 2740, 2758, 2762, 2820, 2857, 2865, 2868, 2910, 2948, 2961, 2971, 2973, 3017, 3076, 3085, 3089, 3113, 3141, 3145, 3159, 3204, 3213, 3217, 3241, 3252, 3269, 3273, 3295, 3312, 3332, 3341, 3345, 3397, 3401, 3460, 3506, 3516, 3541, 3543, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3770, 3781, 3783, 3912, 3992, 4029, 4045, 4294, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, 4881, 5760, 5901, 5997, 6001, 6431, 6751, 7415, 8024, 8026, 8028, 8030, 8117, 8133, 8156, 8181, 8335, 9215, 11209, 11311, 11359, 11558, 11687, 11695, 11703, 11711, 11719, 11727, 11735, 11743, 11930, 12352, 12687, 12831, 13055, 42927, 43470, 43519, 43815, 43823, 64311, 64317, 64319, 64322, 64325, 65107, 65127, 65141, 65511]); isPrint32 = new sliceType$5([65536, 65613, 65616, 65629, 65664, 65786, 65792, 65794, 65799, 65843, 65847, 65947, 65952, 65952, 66000, 66045, 66176, 66204, 66208, 66256, 66272, 66299, 66304, 66339, 66352, 66378, 66384, 66426, 66432, 66499, 66504, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66927, 66927, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67640, 67644, 67644, 67647, 67742, 67751, 67759, 67808, 67829, 67835, 67867, 67871, 67897, 67903, 67903, 67968, 68023, 68028, 68047, 68050, 68102, 68108, 68147, 68152, 68154, 68159, 68167, 68176, 68184, 68192, 68255, 68288, 68326, 68331, 68342, 68352, 68405, 68409, 68437, 68440, 68466, 68472, 68497, 68505, 68508, 68521, 68527, 68608, 68680, 68736, 68786, 68800, 68850, 68858, 68863, 69216, 69246, 69632, 69709, 69714, 69743, 69759, 69825, 69840, 69864, 69872, 69881, 69888, 69955, 69968, 70006, 70016, 70093, 70096, 70132, 70144, 70206, 70272, 70313, 70320, 70378, 70384, 70393, 70400, 70412, 70415, 70416, 70419, 70457, 70460, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70749, 70784, 70855, 70864, 70873, 71040, 71093, 71096, 71133, 71168, 71236, 71248, 71257, 71264, 71276, 71296, 71351, 71360, 71369, 71424, 71449, 71453, 71467, 71472, 71487, 71840, 71922, 71935, 71935, 72384, 72440, 72704, 72773, 72784, 72812, 72816, 72847, 72850, 72886, 73728, 74649, 74752, 74868, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92777, 92782, 92783, 92880, 92909, 92912, 92917, 92928, 92997, 93008, 93047, 93053, 93071, 93952, 94020, 94032, 94078, 94095, 94111, 94176, 94176, 94208, 100332, 100352, 101106, 110592, 110593, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113820, 113823, 118784, 119029, 119040, 119078, 119081, 119154, 119163, 119272, 119296, 119365, 119552, 119638, 119648, 119665, 119808, 119967, 119970, 119970, 119973, 119974, 119977, 120074, 120077, 120134, 120138, 120485, 120488, 120779, 120782, 121483, 121499, 121519, 122880, 122904, 122907, 122922, 124928, 125124, 125127, 125142, 125184, 125258, 125264, 125273, 125278, 125279, 126464, 126500, 126503, 126523, 126530, 126530, 126535, 126548, 126551, 126564, 126567, 126619, 126625, 126651, 126704, 126705, 126976, 127019, 127024, 127123, 127136, 127150, 127153, 127221, 127232, 127244, 127248, 127339, 127344, 127404, 127462, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127744, 128722, 128736, 128748, 128752, 128758, 128768, 128883, 128896, 128980, 129024, 129035, 129040, 129095, 129104, 129113, 129120, 129159, 129168, 129197, 129296, 129319, 129328, 129328, 129331, 129355, 129360, 129374, 129408, 129425, 129472, 129472, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 194560, 195101, 917760, 917999]); isNotPrint32 = new sliceType$4([12, 39, 59, 62, 399, 926, 2057, 2102, 2134, 2291, 2564, 2580, 2584, 4285, 4405, 4576, 4626, 4743, 4745, 4750, 4766, 4868, 4905, 4913, 4916, 5210, 5212, 7177, 7223, 7336, 9327, 27231, 27482, 27490, 54357, 54429, 54445, 54458, 54460, 54468, 54534, 54549, 54557, 54586, 54591, 54597, 54609, 55968, 57351, 57378, 57381, 60932, 60960, 60963, 60968, 60979, 60984, 60986, 61000, 61002, 61004, 61008, 61011, 61016, 61018, 61020, 61022, 61024, 61027, 61035, 61043, 61048, 61053, 61055, 61066, 61092, 61098, 61632, 61648, 61743, 63775, 63807]); isGraphic = new sliceType$4([160, 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8239, 8287, 12288]); shifts = $toNativeArray($kindUint, [0, 0, 1, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["reflect"] = (function() { var $pkg = {}, $init, errors, js, math, runtime, strconv, sync, unicode, utf8, uncommonType, funcType, name, nameData, mapIter, Type, Kind, tflag, rtype, typeAlg, method, ChanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, Method, nameOff, typeOff, textOff, StructField, StructTag, fieldScan, Value, flag, ValueError, sliceType$1, ptrType$1, sliceType$2, sliceType$3, ptrType$2, funcType$1, sliceType$4, ptrType$3, ptrType$4, sliceType$5, sliceType$6, sliceType$7, ptrType$5, ptrType$6, structType$3, sliceType$8, sliceType$9, sliceType$10, sliceType$11, arrayType$1, sliceType$12, ptrType$7, ptrType$8, sliceType$13, sliceType$14, ptrType$9, sliceType$15, ptrType$15, sliceType$17, ptrType$16, funcType$3, funcType$4, funcType$5, ptrType$17, arrayType$12, ptrType$18, initialized, uncommonTypeMap, nameMap, nameOffList, typeOffList, callHelper, jsObjectPtr, selectHelper, kindNames, methodCache, uint8Type, init, jsType, reflectType, setKindType, newName, newNameOff, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, MakeSlice, TypeOf, ValueOf, FuncOf, SliceOf, Zero, unsafe_New, makeInt, typedmemmove, keyFor, mapaccess, mapassign, mapdelete, mapiterinit, mapiterkey, mapiternext, maplen, cvtDirect, methodReceiver, valueInterface, ifaceE2I, methodName, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, chanrecv, chansend, DeepEqual, deepValueEqualJs, Swapper, PtrTo, implements$1, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, overflowFloat32, New, convertOp, makeFloat, makeComplex, makeString, makeBytes, makeRunes, cvtInt, cvtUint, cvtFloatInt, cvtFloatUint, cvtIntFloat, cvtUintFloat, cvtFloat, cvtComplex, cvtIntString, cvtUintString, cvtBytesString, cvtStringBytes, cvtRunesString, cvtStringRunes, cvtT2I, cvtI2I; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; math = $packages["math"]; runtime = $packages["runtime"]; strconv = $packages["strconv"]; sync = $packages["sync"]; unicode = $packages["unicode"]; utf8 = $packages["unicode/utf8"]; uncommonType = $pkg.uncommonType = $newType(0, $kindStruct, "reflect.uncommonType", true, "reflect", false, function(pkgPath_, mcount_, _$2_, moff_, _$4_, _methods_) { this.$val = this; if (arguments.length === 0) { this.pkgPath = 0; this.mcount = 0; this._$2 = 0; this.moff = 0; this._$4 = 0; this._methods = sliceType$5.nil; return; } this.pkgPath = pkgPath_; this.mcount = mcount_; this._$2 = _$2_; this.moff = moff_; this._$4 = _$4_; this._methods = _methods_; }); funcType = $pkg.funcType = $newType(0, $kindStruct, "reflect.funcType", true, "reflect", false, function(rtype_, inCount_, outCount_, _in_, _out_) { this.$val = this; if (arguments.length === 0) { this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); this.inCount = 0; this.outCount = 0; this._in = sliceType$2.nil; this._out = sliceType$2.nil; return; } this.rtype = rtype_; this.inCount = inCount_; this.outCount = outCount_; this._in = _in_; this._out = _out_; }); name = $pkg.name = $newType(0, $kindStruct, "reflect.name", true, "reflect", false, function(bytes_) { this.$val = this; if (arguments.length === 0) { this.bytes = ptrType$4.nil; return; } this.bytes = bytes_; }); nameData = $pkg.nameData = $newType(0, $kindStruct, "reflect.nameData", true, "reflect", false, function(name_, tag_, pkgPath_, exported_) { this.$val = this; if (arguments.length === 0) { this.name = ""; this.tag = ""; this.pkgPath = ""; this.exported = false; return; } this.name = name_; this.tag = tag_; this.pkgPath = pkgPath_; this.exported = exported_; }); mapIter = $pkg.mapIter = $newType(0, $kindStruct, "reflect.mapIter", true, "reflect", false, function(t_, m_, keys_, i_) { this.$val = this; if (arguments.length === 0) { this.t = $ifaceNil; this.m = null; this.keys = null; this.i = 0; return; } this.t = t_; this.m = m_; this.keys = keys_; this.i = i_; }); Type = $pkg.Type = $newType(8, $kindInterface, "reflect.Type", true, "reflect", true, null); Kind = $pkg.Kind = $newType(4, $kindUint, "reflect.Kind", true, "reflect", true, null); tflag = $pkg.tflag = $newType(1, $kindUint8, "reflect.tflag", true, "reflect", false, null); rtype = $pkg.rtype = $newType(0, $kindStruct, "reflect.rtype", true, "reflect", false, function(size_, ptrdata_, hash_, tflag_, align_, fieldAlign_, kind_, alg_, gcdata_, str_, ptrToThis_) { this.$val = this; if (arguments.length === 0) { this.size = 0; this.ptrdata = 0; this.hash = 0; this.tflag = 0; this.align = 0; this.fieldAlign = 0; this.kind = 0; this.alg = ptrType$3.nil; this.gcdata = ptrType$4.nil; this.str = 0; this.ptrToThis = 0; return; } this.size = size_; this.ptrdata = ptrdata_; this.hash = hash_; this.tflag = tflag_; this.align = align_; this.fieldAlign = fieldAlign_; this.kind = kind_; this.alg = alg_; this.gcdata = gcdata_; this.str = str_; this.ptrToThis = ptrToThis_; }); typeAlg = $pkg.typeAlg = $newType(0, $kindStruct, "reflect.typeAlg", true, "reflect", false, function(hash_, equal_) { this.$val = this; if (arguments.length === 0) { this.hash = $throwNilPointerError; this.equal = $throwNilPointerError; return; } this.hash = hash_; this.equal = equal_; }); method = $pkg.method = $newType(0, $kindStruct, "reflect.method", true, "reflect", false, function(name_, mtyp_, ifn_, tfn_) { this.$val = this; if (arguments.length === 0) { this.name = 0; this.mtyp = 0; this.ifn = 0; this.tfn = 0; return; } this.name = name_; this.mtyp = mtyp_; this.ifn = ifn_; this.tfn = tfn_; }); ChanDir = $pkg.ChanDir = $newType(4, $kindInt, "reflect.ChanDir", true, "reflect", true, null); arrayType = $pkg.arrayType = $newType(0, $kindStruct, "reflect.arrayType", true, "reflect", false, function(rtype_, elem_, slice_, len_) { this.$val = this; if (arguments.length === 0) { this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); this.elem = ptrType$1.nil; this.slice = ptrType$1.nil; this.len = 0; return; } this.rtype = rtype_; this.elem = elem_; this.slice = slice_; this.len = len_; }); chanType = $pkg.chanType = $newType(0, $kindStruct, "reflect.chanType", true, "reflect", false, function(rtype_, elem_, dir_) { this.$val = this; if (arguments.length === 0) { this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); this.elem = ptrType$1.nil; this.dir = 0; return; } this.rtype = rtype_; this.elem = elem_; this.dir = dir_; }); imethod = $pkg.imethod = $newType(0, $kindStruct, "reflect.imethod", true, "reflect", false, function(name_, typ_) { this.$val = this; if (arguments.length === 0) { this.name = 0; this.typ = 0; return; } this.name = name_; this.typ = typ_; }); interfaceType = $pkg.interfaceType = $newType(0, $kindStruct, "reflect.interfaceType", true, "reflect", false, function(rtype_, pkgPath_, methods_) { this.$val = this; if (arguments.length === 0) { this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); this.pkgPath = new name.ptr(ptrType$4.nil); this.methods = sliceType$6.nil; return; } this.rtype = rtype_; this.pkgPath = pkgPath_; this.methods = methods_; }); mapType = $pkg.mapType = $newType(0, $kindStruct, "reflect.mapType", true, "reflect", false, function(rtype_, key_, elem_, bucket_, hmap_, keysize_, indirectkey_, valuesize_, indirectvalue_, bucketsize_, reflexivekey_, needkeyupdate_) { this.$val = this; if (arguments.length === 0) { this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); this.key = ptrType$1.nil; this.elem = ptrType$1.nil; this.bucket = ptrType$1.nil; this.hmap = ptrType$1.nil; this.keysize = 0; this.indirectkey = 0; this.valuesize = 0; this.indirectvalue = 0; this.bucketsize = 0; this.reflexivekey = false; this.needkeyupdate = false; return; } this.rtype = rtype_; this.key = key_; this.elem = elem_; this.bucket = bucket_; this.hmap = hmap_; this.keysize = keysize_; this.indirectkey = indirectkey_; this.valuesize = valuesize_; this.indirectvalue = indirectvalue_; this.bucketsize = bucketsize_; this.reflexivekey = reflexivekey_; this.needkeyupdate = needkeyupdate_; }); ptrType = $pkg.ptrType = $newType(0, $kindStruct, "reflect.ptrType", true, "reflect", false, function(rtype_, elem_) { this.$val = this; if (arguments.length === 0) { this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); this.elem = ptrType$1.nil; return; } this.rtype = rtype_; this.elem = elem_; }); sliceType = $pkg.sliceType = $newType(0, $kindStruct, "reflect.sliceType", true, "reflect", false, function(rtype_, elem_) { this.$val = this; if (arguments.length === 0) { this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); this.elem = ptrType$1.nil; return; } this.rtype = rtype_; this.elem = elem_; }); structField = $pkg.structField = $newType(0, $kindStruct, "reflect.structField", true, "reflect", false, function(name_, typ_, offsetAnon_) { this.$val = this; if (arguments.length === 0) { this.name = new name.ptr(ptrType$4.nil); this.typ = ptrType$1.nil; this.offsetAnon = 0; return; } this.name = name_; this.typ = typ_; this.offsetAnon = offsetAnon_; }); structType = $pkg.structType = $newType(0, $kindStruct, "reflect.structType", true, "reflect", false, function(rtype_, pkgPath_, fields_) { this.$val = this; if (arguments.length === 0) { this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); this.pkgPath = new name.ptr(ptrType$4.nil); this.fields = sliceType$7.nil; return; } this.rtype = rtype_; this.pkgPath = pkgPath_; this.fields = fields_; }); Method = $pkg.Method = $newType(0, $kindStruct, "reflect.Method", true, "reflect", true, function(Name_, PkgPath_, Type_, Func_, Index_) { this.$val = this; if (arguments.length === 0) { this.Name = ""; this.PkgPath = ""; this.Type = $ifaceNil; this.Func = new Value.ptr(ptrType$1.nil, 0, 0); this.Index = 0; return; } this.Name = Name_; this.PkgPath = PkgPath_; this.Type = Type_; this.Func = Func_; this.Index = Index_; }); nameOff = $pkg.nameOff = $newType(4, $kindInt32, "reflect.nameOff", true, "reflect", false, null); typeOff = $pkg.typeOff = $newType(4, $kindInt32, "reflect.typeOff", true, "reflect", false, null); textOff = $pkg.textOff = $newType(4, $kindInt32, "reflect.textOff", true, "reflect", false, null); StructField = $pkg.StructField = $newType(0, $kindStruct, "reflect.StructField", true, "reflect", true, function(Name_, PkgPath_, Type_, Tag_, Offset_, Index_, Anonymous_) { this.$val = this; if (arguments.length === 0) { this.Name = ""; this.PkgPath = ""; this.Type = $ifaceNil; this.Tag = ""; this.Offset = 0; this.Index = sliceType$13.nil; this.Anonymous = false; return; } this.Name = Name_; this.PkgPath = PkgPath_; this.Type = Type_; this.Tag = Tag_; this.Offset = Offset_; this.Index = Index_; this.Anonymous = Anonymous_; }); StructTag = $pkg.StructTag = $newType(8, $kindString, "reflect.StructTag", true, "reflect", true, null); fieldScan = $pkg.fieldScan = $newType(0, $kindStruct, "reflect.fieldScan", true, "reflect", false, function(typ_, index_) { this.$val = this; if (arguments.length === 0) { this.typ = ptrType$9.nil; this.index = sliceType$13.nil; return; } this.typ = typ_; this.index = index_; }); Value = $pkg.Value = $newType(0, $kindStruct, "reflect.Value", true, "reflect", true, function(typ_, ptr_, flag_) { this.$val = this; if (arguments.length === 0) { this.typ = ptrType$1.nil; this.ptr = 0; this.flag = 0; return; } this.typ = typ_; this.ptr = ptr_; this.flag = flag_; }); flag = $pkg.flag = $newType(4, $kindUintptr, "reflect.flag", true, "reflect", false, null); ValueError = $pkg.ValueError = $newType(0, $kindStruct, "reflect.ValueError", true, "reflect", true, function(Method_, Kind_) { this.$val = this; if (arguments.length === 0) { this.Method = ""; this.Kind = 0; return; } this.Method = Method_; this.Kind = Kind_; }); sliceType$1 = $sliceType(name); ptrType$1 = $ptrType(rtype); sliceType$2 = $sliceType(ptrType$1); sliceType$3 = $sliceType($emptyInterface); ptrType$2 = $ptrType(js.Object); funcType$1 = $funcType([sliceType$3], [ptrType$2], true); sliceType$4 = $sliceType($String); ptrType$3 = $ptrType(typeAlg); ptrType$4 = $ptrType($Uint8); sliceType$5 = $sliceType(method); sliceType$6 = $sliceType(imethod); sliceType$7 = $sliceType(structField); ptrType$5 = $ptrType(uncommonType); ptrType$6 = $ptrType(nameData); structType$3 = $structType("reflect", [{prop: "str", name: "str", anonymous: false, exported: false, typ: $String, tag: ""}]); sliceType$8 = $sliceType(ptrType$2); sliceType$9 = $sliceType(Value); sliceType$10 = $sliceType(Type); sliceType$11 = $sliceType(sliceType$8); arrayType$1 = $arrayType($UnsafePointer, 2); sliceType$12 = $sliceType(arrayType$1); ptrType$7 = $ptrType(interfaceType); ptrType$8 = $ptrType(imethod); sliceType$13 = $sliceType($Int); sliceType$14 = $sliceType(fieldScan); ptrType$9 = $ptrType(structType); sliceType$15 = $sliceType($Uint8); ptrType$15 = $ptrType($UnsafePointer); sliceType$17 = $sliceType($Int32); ptrType$16 = $ptrType(funcType); funcType$3 = $funcType([$String], [$Bool], false); funcType$4 = $funcType([$UnsafePointer, $Uintptr], [$Uintptr], false); funcType$5 = $funcType([$UnsafePointer, $UnsafePointer], [$Bool], false); ptrType$17 = $ptrType(structField); arrayType$12 = $arrayType($Uintptr, 2); ptrType$18 = $ptrType(ValueError); init = function() { var used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; used = $f.used; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: used = (function(i) { var i; }); $r = used((x = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = used((x$1 = new uncommonType.ptr(0, 0, 0, 0, 0, sliceType$5.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = used((x$2 = new method.ptr(0, 0, 0, 0), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = used((x$3 = new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, 0), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = used((x$4 = new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, 0), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = used((x$5 = new funcType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), 0, 0, sliceType$2.nil, sliceType$2.nil), new x$5.constructor.elem(x$5))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = used((x$6 = new interfaceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new name.ptr(ptrType$4.nil), sliceType$6.nil), new x$6.constructor.elem(x$6))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = used((x$7 = new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, 0, 0, 0, 0, 0, false, false), new x$7.constructor.elem(x$7))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = used((x$8 = new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil), new x$8.constructor.elem(x$8))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = used((x$9 = new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil), new x$9.constructor.elem(x$9))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = used((x$10 = new structType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new name.ptr(ptrType$4.nil), sliceType$7.nil), new x$10.constructor.elem(x$10))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = used((x$11 = new imethod.ptr(0, 0), new x$11.constructor.elem(x$11))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = used((x$12 = new structField.ptr(new name.ptr(ptrType$4.nil), ptrType$1.nil, 0), new x$12.constructor.elem(x$12))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } initialized = true; uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1); $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: init }; } $f.used = used; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; }; jsType = function(typ) { var typ; return typ.jsType; }; reflectType = function(typ) { var _1, _i, _i$1, _i$2, _i$3, _i$4, _key, _ref, _ref$1, _ref$2, _ref$3, _ref$4, dir, f, fields, i, i$1, i$2, i$3, i$4, imethods, in$1, m, m$1, methodSet, methods, offsetAnon, out, outCount, params, reflectFields, reflectMethods, results, rt, typ, ut; if (typ.reflectType === undefined) { rt = new rtype.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), ptrType$3.nil, ptrType$4.nil, newNameOff($clone(newName(internalStr(typ.string), "", "", !!(typ.exported)), name)), 0); rt.jsType = typ; typ.reflectType = rt; methodSet = $methodSet(typ); if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) { rt.tflag = (rt.tflag | (1)) >>> 0; if (!!(typ.named)) { rt.tflag = (rt.tflag | (4)) >>> 0; } reflectMethods = $makeSlice(sliceType$5, $parseInt(methodSet.length)); _ref = reflectMethods; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; m = methodSet[i]; method.copy(((i < 0 || i >= reflectMethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectMethods.$array[reflectMethods.$offset + i]), new method.ptr(newNameOff($clone(newName(internalStr(m.name), "", "", internalStr(m.pkg) === ""), name)), newTypeOff(reflectType(m.typ)), 0, 0)); _i++; } ut = new uncommonType.ptr(newNameOff($clone(newName(internalStr(typ.pkg), "", "", false), name)), (($parseInt(methodSet.length) << 16 >>> 16)), 0, 0, 0, reflectMethods); _key = rt; (uncommonTypeMap || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: ut }; ut.jsType = typ; } _1 = rt.Kind(); if (_1 === (17)) { setKindType(rt, new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem), ptrType$1.nil, ((($parseInt(typ.len) >> 0) >>> 0)))); } else if (_1 === (18)) { dir = 3; if (!!(typ.sendOnly)) { dir = 2; } if (!!(typ.recvOnly)) { dir = 1; } setKindType(rt, new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem), ((dir >>> 0)))); } else if (_1 === (19)) { params = typ.params; in$1 = $makeSlice(sliceType$2, $parseInt(params.length)); _ref$1 = in$1; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } i$1 = _i$1; ((i$1 < 0 || i$1 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$1] = reflectType(params[i$1])); _i$1++; } results = typ.results; out = $makeSlice(sliceType$2, $parseInt(results.length)); _ref$2 = out; _i$2 = 0; while (true) { if (!(_i$2 < _ref$2.$length)) { break; } i$2 = _i$2; ((i$2 < 0 || i$2 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$2] = reflectType(results[i$2])); _i$2++; } outCount = (($parseInt(results.length) << 16 >>> 16)); if (!!(typ.variadic)) { outCount = (outCount | (32768)) >>> 0; } setKindType(rt, new funcType.ptr($clone(rt, rtype), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out)); } else if (_1 === (20)) { methods = typ.methods; imethods = $makeSlice(sliceType$6, $parseInt(methods.length)); _ref$3 = imethods; _i$3 = 0; while (true) { if (!(_i$3 < _ref$3.$length)) { break; } i$3 = _i$3; m$1 = methods[i$3]; imethod.copy(((i$3 < 0 || i$3 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$3]), new imethod.ptr(newNameOff($clone(newName(internalStr(m$1.name), "", "", internalStr(m$1.pkg) === ""), name)), newTypeOff(reflectType(m$1.typ)))); _i$3++; } setKindType(rt, new interfaceType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkg), "", "", false), name), imethods)); } else if (_1 === (21)) { setKindType(rt, new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.key), reflectType(typ.elem), ptrType$1.nil, ptrType$1.nil, 0, 0, 0, 0, 0, false, false)); } else if (_1 === (22)) { setKindType(rt, new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem))); } else if (_1 === (23)) { setKindType(rt, new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem))); } else if (_1 === (25)) { fields = typ.fields; reflectFields = $makeSlice(sliceType$7, $parseInt(fields.length)); _ref$4 = reflectFields; _i$4 = 0; while (true) { if (!(_i$4 < _ref$4.$length)) { break; } i$4 = _i$4; f = fields[i$4]; offsetAnon = ((i$4 >>> 0)) << 1 >>> 0; if (!!(f.anonymous)) { offsetAnon = (offsetAnon | (1)) >>> 0; } structField.copy(((i$4 < 0 || i$4 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$4]), new structField.ptr($clone(newName(internalStr(f.name), internalStr(f.tag), "", !!(f.exported)), name), reflectType(f.typ), offsetAnon)); _i$4++; } setKindType(rt, new structType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkgPath), "", "", false), name), reflectFields)); } } return ((typ.reflectType)); }; setKindType = function(rt, kindType) { var kindType, rt; rt.kindType = kindType; kindType.rtype = rt; }; uncommonType.ptr.prototype.methods = function() { var t; t = this; return t._methods; }; uncommonType.prototype.methods = function() { return this.$val.methods(); }; rtype.ptr.prototype.uncommon = function() { var _entry, t; t = this; return (_entry = uncommonTypeMap[ptrType$1.keyFor(t)], _entry !== undefined ? _entry.v : ptrType$5.nil); }; rtype.prototype.uncommon = function() { return this.$val.uncommon(); }; funcType.ptr.prototype.in$ = function() { var t; t = this; return t._in; }; funcType.prototype.in$ = function() { return this.$val.in$(); }; funcType.ptr.prototype.out = function() { var t; t = this; return t._out; }; funcType.prototype.out = function() { return this.$val.out(); }; name.ptr.prototype.name = function() { var _entry, n, s; s = ""; n = this; s = (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).name; return s; }; name.prototype.name = function() { return this.$val.name(); }; name.ptr.prototype.tag = function() { var _entry, n, s; s = ""; n = this; s = (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).tag; return s; }; name.prototype.tag = function() { return this.$val.tag(); }; name.ptr.prototype.pkgPath = function() { var _entry, n; n = this; return (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).pkgPath; }; name.prototype.pkgPath = function() { return this.$val.pkgPath(); }; name.ptr.prototype.isExported = function() { var _entry, n; n = this; return (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).exported; }; name.prototype.isExported = function() { return this.$val.isExported(); }; newName = function(n, tag, pkgPath, exported) { var _key, b, exported, n, pkgPath, tag; b = $newDataPointer(0, ptrType$4); _key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map"))[ptrType$4.keyFor(_key)] = { k: _key, v: new nameData.ptr(n, tag, pkgPath, exported) }; return new name.ptr(b); }; rtype.ptr.prototype.nameOff = function(off) { var off, t, x; t = this; return (x = ((off >> 0)), ((x < 0 || x >= nameOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : nameOffList.$array[nameOffList.$offset + x])); }; rtype.prototype.nameOff = function(off) { return this.$val.nameOff(off); }; newNameOff = function(n) { var i, n; i = nameOffList.$length; nameOffList = $append(nameOffList, n); return ((i >> 0)); }; rtype.ptr.prototype.typeOff = function(off) { var off, t, x; t = this; return (x = ((off >> 0)), ((x < 0 || x >= typeOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeOffList.$array[typeOffList.$offset + x])); }; rtype.prototype.typeOff = function(off) { return this.$val.typeOff(off); }; newTypeOff = function(t) { var i, t; i = typeOffList.$length; typeOffList = $append(typeOffList, t); return ((i >> 0)); }; internalStr = function(strObj) { var c, strObj; c = new structType$3.ptr(""); c.str = strObj; return c.str; }; isWrapped = function(typ) { var typ; return !!(jsType(typ).wrapped); }; copyStruct = function(dst, src, typ) { var dst, fields, i, prop, src, typ; fields = jsType(typ).fields; i = 0; while (true) { if (!(i < $parseInt(fields.length))) { break; } prop = $internalize(fields[i].prop, $String); dst[$externalize(prop, $String)] = src[$externalize(prop, $String)]; i = i + (1) >> 0; } }; makeValue = function(t, v, fl) { var _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _v = $f._v; _v$1 = $f._v$1; fl = $f.fl; rt = $f.rt; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } rt = _r; _r$1 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } if (_r$1 === 17) { _v$1 = true; $s = 5; continue s; } _r$2 = t.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _v$1 = _r$2 === 25; case 5: if (_v$1) { _v = true; $s = 4; continue s; } _r$3 = t.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _v = _r$3 === 22; case 4: /* */ if (_v) { $s = 2; continue; } /* */ $s = 3; continue; /* if (_v) { */ case 2: _r$4 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return new Value.ptr(rt, (v), (fl | ((_r$4 >>> 0))) >>> 0); /* } */ case 3: _r$5 = t.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return new Value.ptr(rt, ($newDataPointer(v, jsType(rt.ptrTo()))), (((fl | ((_r$5 >>> 0))) >>> 0) | 128) >>> 0); /* */ } return; } if ($f === undefined) { $f = { $blk: makeValue }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._v = _v; $f._v$1 = _v$1; $f.fl = fl; $f.rt = rt; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; MakeSlice = function(typ, len, cap) { var _r, _r$1, cap, len, typ, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; cap = $f.cap; len = $f.len; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: typ = [typ]; _r = typ[0].Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!((_r === 23))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((_r === 23))) { */ case 1: $panic(new $String("reflect.MakeSlice of non-slice type")); /* } */ case 2: if (len < 0) { $panic(new $String("reflect.MakeSlice: negative len")); } if (cap < 0) { $panic(new $String("reflect.MakeSlice: negative cap")); } if (len > cap) { $panic(new $String("reflect.MakeSlice: len > cap")); } _r$1 = makeValue(typ[0], $makeSlice(jsType(typ[0]), len, cap, (function(typ) { return function $b() { var _r$1, _r$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _r$2 = $f._r$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r$1 = typ[0].Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = jsType(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2.zero(); /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$1 = _r$1; $f._r$2 = _r$2; $f.$s = $s; $f.$r = $r; return $f; }; })(typ)), 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: MakeSlice }; } $f._r = _r; $f._r$1 = _r$1; $f.cap = cap; $f.len = len; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.MakeSlice = MakeSlice; TypeOf = function(i) { var i; if (!initialized) { return new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); } if ($interfaceIsEqual(i, $ifaceNil)) { return $ifaceNil; } return reflectType(i.constructor); }; $pkg.TypeOf = TypeOf; ValueOf = function(i) { var _r, i, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: if ($interfaceIsEqual(i, $ifaceNil)) { $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); } _r = makeValue(reflectType(i.constructor), i.$val, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: ValueOf }; } $f._r = _r; $f.i = i; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.ValueOf = ValueOf; FuncOf = function(in$1, out, variadic) { var _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$1, jsIn, jsOut, out, v, v$1, variadic, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; _v = $f._v; _v$1 = $f._v$1; i = $f.i; i$1 = $f.i$1; in$1 = $f.in$1; jsIn = $f.jsIn; jsOut = $f.jsOut; out = $f.out; v = $f.v; v$1 = $f.v$1; variadic = $f.variadic; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: if (!(variadic)) { _v = false; $s = 3; continue s; } if (in$1.$length === 0) { _v$1 = true; $s = 4; continue s; } _r = (x = in$1.$length - 1 >> 0, ((x < 0 || x >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x])).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v$1 = !((_r === 23)); case 4: _v = _v$1; case 3: /* */ if (_v) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_v) { */ case 1: $panic(new $String("reflect.FuncOf: last arg of variadic func must be slice")); /* } */ case 2: jsIn = $makeSlice(sliceType$8, in$1.$length); _ref = in$1; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); ((i < 0 || i >= jsIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsIn.$array[jsIn.$offset + i] = jsType(v)); _i++; } jsOut = $makeSlice(sliceType$8, out.$length); _ref$1 = out; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } i$1 = _i$1; v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); ((i$1 < 0 || i$1 >= jsOut.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsOut.$array[jsOut.$offset + i$1] = jsType(v$1)); _i$1++; } $s = -1; return reflectType($funcType($externalize(jsIn, sliceType$8), $externalize(jsOut, sliceType$8), $externalize(variadic, $Bool))); /* */ } return; } if ($f === undefined) { $f = { $blk: FuncOf }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f._v = _v; $f._v$1 = _v$1; $f.i = i; $f.i$1 = i$1; $f.in$1 = in$1; $f.jsIn = jsIn; $f.jsOut = jsOut; $f.out = out; $f.v = v; $f.v$1 = v$1; $f.variadic = variadic; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.FuncOf = FuncOf; rtype.ptr.prototype.ptrTo = function() { var t; t = this; return reflectType($ptrType(jsType(t))); }; rtype.prototype.ptrTo = function() { return this.$val.ptrTo(); }; SliceOf = function(t) { var t; return reflectType($sliceType(jsType(t))); }; $pkg.SliceOf = SliceOf; Zero = function(typ) { var _r, typ, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = makeValue(typ, jsType(typ).zero(), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Zero }; } $f._r = _r; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Zero = Zero; unsafe_New = function(typ) { var _1, typ; _1 = typ.Kind(); if (_1 === (25)) { return (new (jsType(typ).ptr)()); } else if (_1 === (17)) { return (jsType(typ).zero()); } else { return ($newDataPointer(jsType(typ).zero(), jsType(typ.ptrTo()))); } }; makeInt = function(f, bits, t) { var _1, _r, bits, f, ptr, t, typ, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; bits = $f.bits; f = $f.f; ptr = $f.ptr; t = $f.t; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } typ = _r; ptr = unsafe_New(typ); _1 = typ.Kind(); if (_1 === (3)) { (ptr).$set(((bits.$low << 24 >> 24))); } else if (_1 === (4)) { (ptr).$set(((bits.$low << 16 >> 16))); } else if ((_1 === (2)) || (_1 === (5))) { (ptr).$set(((bits.$low >> 0))); } else if (_1 === (6)) { (ptr).$set((new $Int64(bits.$high, bits.$low))); } else if (_1 === (8)) { (ptr).$set(((bits.$low << 24 >>> 24))); } else if (_1 === (9)) { (ptr).$set(((bits.$low << 16 >>> 16))); } else if ((_1 === (7)) || (_1 === (10)) || (_1 === (12))) { (ptr).$set(((bits.$low >>> 0))); } else if (_1 === (11)) { (ptr).$set((bits)); } $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); /* */ } return; } if ($f === undefined) { $f = { $blk: makeInt }; } $f._1 = _1; $f._r = _r; $f.bits = bits; $f.f = f; $f.ptr = ptr; $f.t = t; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f; }; typedmemmove = function(t, dst, src) { var dst, src, t; dst.$set(src.$get()); }; keyFor = function(t, key) { var k, key, kv, t; kv = key; if (!(kv.$get === undefined)) { kv = kv.$get(); } k = $internalize(jsType(t.Key()).keyFor(kv), $String); return [kv, k]; }; mapaccess = function(t, m, key) { var _tuple, entry, k, key, m, t; _tuple = keyFor(t, key); k = _tuple[1]; entry = m[$externalize(k, $String)]; if (entry === undefined) { return 0; } return ($newDataPointer(entry.v, jsType(PtrTo(t.Elem())))); }; mapassign = function(t, m, key, val) { var _r, _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; entry = $f.entry; et = $f.et; jsVal = $f.jsVal; k = $f.k; key = $f.key; kv = $f.kv; m = $f.m; newVal = $f.newVal; t = $f.t; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tuple = keyFor(t, key); kv = _tuple[0]; k = _tuple[1]; jsVal = val.$get(); et = t.Elem(); _r = et.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r === 25) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r === 25) { */ case 1: newVal = jsType(et).zero(); copyStruct(newVal, jsVal, et); jsVal = newVal; /* } */ case 2: entry = new ($global.Object)(); entry.k = kv; entry.v = jsVal; m[$externalize(k, $String)] = entry; $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: mapassign }; } $f._r = _r; $f._tuple = _tuple; $f.entry = entry; $f.et = et; $f.jsVal = jsVal; $f.k = k; $f.key = key; $f.kv = kv; $f.m = m; $f.newVal = newVal; $f.t = t; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; }; mapdelete = function(t, m, key) { var _tuple, k, key, m, t; _tuple = keyFor(t, key); k = _tuple[1]; delete m[$externalize(k, $String)]; }; mapiterinit = function(t, m) { var m, t; return ((new mapIter.ptr(t, m, $keys(m), 0))); }; mapiterkey = function(it) { var _r, _r$1, _r$2, it, iter, k, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; it = $f.it; iter = $f.iter; k = $f.k; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: iter = ((it)); k = iter.keys[iter.i]; _r = iter.t.Key(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return ($newDataPointer(iter.m[$externalize($internalize(k, $String), $String)].k, _r$2)); /* */ } return; } if ($f === undefined) { $f = { $blk: mapiterkey }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.it = it; $f.iter = iter; $f.k = k; $f.$s = $s; $f.$r = $r; return $f; }; mapiternext = function(it) { var it, iter; iter = ((it)); iter.i = iter.i + (1) >> 0; }; maplen = function(m) { var m; return $parseInt($keys(m).length); }; cvtDirect = function(v, typ) { var _1, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, k, slice, srcVal, typ, v, val, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; k = $f.k; slice = $f.slice; srcVal = $f.srcVal; typ = $f.typ; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: srcVal = $clone(v, Value).object(); /* */ if (srcVal === jsType(v.typ).nil) { $s = 1; continue; } /* */ $s = 2; continue; /* if (srcVal === jsType(v.typ).nil) { */ case 1: _r = makeValue(typ, jsType(typ).nil, v.flag); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* } */ case 2: val = null; _r$1 = typ.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } k = _r$1; _1 = k; /* */ if (_1 === (23)) { $s = 6; continue; } /* */ if (_1 === (22)) { $s = 7; continue; } /* */ if (_1 === (25)) { $s = 8; continue; } /* */ if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24))) { $s = 9; continue; } /* */ $s = 10; continue; /* if (_1 === (23)) { */ case 6: slice = new (jsType(typ))(srcVal.$array); slice.$offset = srcVal.$offset; slice.$length = srcVal.$length; slice.$capacity = srcVal.$capacity; val = $newDataPointer(slice, jsType(PtrTo(typ))); $s = 11; continue; /* } else if (_1 === (22)) { */ case 7: _r$2 = typ.Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$3 = _r$2.Kind(); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3 === 25) { $s = 12; continue; } /* */ $s = 13; continue; /* if (_r$3 === 25) { */ case 12: _r$4 = typ.Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } /* */ if ($interfaceIsEqual(_r$4, v.typ.Elem())) { $s = 16; continue; } /* */ $s = 17; continue; /* if ($interfaceIsEqual(_r$4, v.typ.Elem())) { */ case 16: val = srcVal; /* break; */ $s = 4; continue; /* } */ case 17: val = new (jsType(typ))(); _arg = val; _arg$1 = srcVal; _r$5 = typ.Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$2 = _r$5; $r = copyStruct(_arg, _arg$1, _arg$2); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* break; */ $s = 4; continue; /* } */ case 13: val = new (jsType(typ))(srcVal.$get, srcVal.$set); $s = 11; continue; /* } else if (_1 === (25)) { */ case 8: val = new (jsType(typ).ptr)(); copyStruct(val, srcVal, typ); $s = 11; continue; /* } else if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24))) { */ case 9: val = v.ptr; $s = 11; continue; /* } else { */ case 10: $panic(new ValueError.ptr("reflect.Convert", k)); /* } */ case 11: case 4: _r$6 = typ.common(); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _r$7 = typ.Kind(); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $s = -1; return new Value.ptr(_r$6, (val), (((v.flag & 224) >>> 0) | ((_r$7 >>> 0))) >>> 0); /* */ } return; } if ($f === undefined) { $f = { $blk: cvtDirect }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f.k = k; $f.slice = slice; $f.srcVal = srcVal; $f.typ = typ; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; }; methodReceiver = function(op, v, i) { var _$38, fn, i, m, m$1, op, prop, rcvr, t, tt, ut, v, x, x$1; _$38 = ptrType$1.nil; t = ptrType$1.nil; fn = 0; prop = ""; if (v.typ.Kind() === 20) { tt = (v.typ.kindType); if (i < 0 || i >= tt.methods.$length) { $panic(new $String("reflect: internal error: invalid method index")); } m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); if (!$clone(tt.rtype.nameOff(m.name), name).isExported()) { $panic(new $String("reflect: " + op + " of unexported method")); } t = tt.rtype.typeOff(m.typ); prop = $clone(tt.rtype.nameOff(m.name), name).name(); } else { ut = v.typ.uncommon(); if (ut === ptrType$5.nil || ((i >>> 0)) >= ((ut.mcount >>> 0))) { $panic(new $String("reflect: internal error: invalid method index")); } m$1 = $clone((x$1 = ut.methods(), ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])), method); if (!$clone(v.typ.nameOff(m$1.name), name).isExported()) { $panic(new $String("reflect: " + op + " of unexported method")); } t = v.typ.typeOff(m$1.mtyp); prop = $internalize($methodSet(jsType(v.typ))[i].prop, $String); } rcvr = $clone(v, Value).object(); if (isWrapped(v.typ)) { rcvr = new (jsType(v.typ))(rcvr); } fn = (rcvr[$externalize(prop, $String)]); return [_$38, t, fn]; }; valueInterface = function(v, safe) { var _r, safe, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; safe = $f.safe; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: if (v.flag === 0) { $panic(new ValueError.ptr("reflect.Value.Interface", 0)); } if (safe && !((((v.flag & 96) >>> 0) === 0))) { $panic(new $String("reflect.Value.Interface: cannot return value obtained from unexported field or method")); } /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: _r = makeMethodValue("Interface", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } v = _r; /* } */ case 2: if (isWrapped(v.typ)) { $s = -1; return ((new (jsType(v.typ))($clone(v, Value).object()))); } $s = -1; return (($clone(v, Value).object())); /* */ } return; } if ($f === undefined) { $f = { $blk: valueInterface }; } $f._r = _r; $f.safe = safe; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; ifaceE2I = function(t, src, dst) { var dst, src, t; dst.$set(src); }; methodName = function() { return "?FIXME?"; }; makeMethodValue = function(op, v) { var _r, _tuple, fn, fv, op, rcvr, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; fn = $f.fn; fv = $f.fv; op = $f.op; rcvr = $f.rcvr; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: fn = [fn]; rcvr = [rcvr]; if (((v.flag & 512) >>> 0) === 0) { $panic(new $String("reflect: internal error: invalid use of makePartialFunc")); } _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); fn[0] = _tuple[2]; rcvr[0] = $clone(v, Value).object(); if (isWrapped(v.typ)) { rcvr[0] = new (jsType(v.typ))(rcvr[0]); } fv = js.MakeFunc((function(fn, rcvr) { return function(this$1, arguments$1) { var arguments$1, this$1; return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$8))); }; })(fn, rcvr)); _r = $clone(v, Value).Type().common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return new Value.ptr(_r, (fv), (((v.flag & 96) >>> 0) | 19) >>> 0); /* */ } return; } if ($f === undefined) { $f = { $blk: makeMethodValue }; } $f._r = _r; $f._tuple = _tuple; $f.fn = fn; $f.fv = fv; $f.op = op; $f.rcvr = rcvr; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; rtype.ptr.prototype.pointers = function() { var _1, t; t = this; _1 = t.Kind(); if ((_1 === (22)) || (_1 === (21)) || (_1 === (18)) || (_1 === (19)) || (_1 === (25)) || (_1 === (17))) { return true; } else { return false; } }; rtype.prototype.pointers = function() { return this.$val.pointers(); }; rtype.ptr.prototype.Comparable = function() { var _1, _r, _r$1, i, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; i = $f.i; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _1 = t.Kind(); /* */ if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { $s = 2; continue; } /* */ if (_1 === (17)) { $s = 3; continue; } /* */ if (_1 === (25)) { $s = 4; continue; } /* */ $s = 5; continue; /* if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { */ case 2: $s = -1; return false; /* } else if (_1 === (17)) { */ case 3: _r = t.Elem().Comparable(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* } else if (_1 === (25)) { */ case 4: i = 0; /* while (true) { */ case 7: /* if (!(i < t.NumField())) { break; } */ if(!(i < t.NumField())) { $s = 8; continue; } _r$1 = t.Field(i).Type.Comparable(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (!_r$1) { $s = 9; continue; } /* */ $s = 10; continue; /* if (!_r$1) { */ case 9: $s = -1; return false; /* } */ case 10: i = i + (1) >> 0; /* } */ $s = 7; continue; case 8: /* } */ case 5: case 1: $s = -1; return true; /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.Comparable }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; rtype.prototype.Comparable = function() { return this.$val.Comparable(); }; rtype.ptr.prototype.Method = function(i) { var _i, _i$1, _r, _r$1, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; arg = $f.arg; fl = $f.fl; fn = $f.fn; ft = $f.ft; i = $f.i; in$1 = $f.in$1; m = $f.m; methods = $f.methods; mt = $f.mt; mtyp = $f.mtyp; out = $f.out; p = $f.p; pname = $f.pname; prop = $f.prop; ret = $f.ret; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: prop = [prop]; m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); t = this; if (t.Kind() === 20) { tt = (t.kindType); Method.copy(m, tt.Method(i)); $s = -1; return m; } _r = t.exportedMethods(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } methods = _r; if (i < 0 || i >= methods.$length) { $panic(new $String("reflect: Method index out of range")); } p = $clone(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]), method); pname = $clone(t.nameOff(p.name), name); m.Name = $clone(pname, name).name(); fl = 19; mtyp = t.typeOff(p.mtyp); ft = (mtyp.kindType); in$1 = $makeSlice(sliceType$10, 0, (1 + ft.in$().$length >> 0)); in$1 = $append(in$1, t); _ref = ft.in$(); _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); in$1 = $append(in$1, arg); _i++; } out = $makeSlice(sliceType$10, 0, ft.out().$length); _ref$1 = ft.out(); _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } ret = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); out = $append(out, ret); _i$1++; } _r$1 = FuncOf(in$1, out, ft.rtype.IsVariadic()); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } mt = _r$1; m.Type = mt; prop[0] = $internalize($methodSet(t.jsType)[i].prop, $String); fn = js.MakeFunc((function(prop) { return function(this$1, arguments$1) { var arguments$1, rcvr, this$1; rcvr = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]); return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$8))); }; })(prop)); m.Func = new Value.ptr($assertType(mt, ptrType$1), (fn), fl); m.Index = i; Method.copy(m, m); $s = -1; return m; /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.Method }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f.arg = arg; $f.fl = fl; $f.fn = fn; $f.ft = ft; $f.i = i; $f.in$1 = in$1; $f.m = m; $f.methods = methods; $f.mt = mt; $f.mtyp = mtyp; $f.out = out; $f.p = p; $f.pname = pname; $f.prop = prop; $f.ret = ret; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; }; rtype.prototype.Method = function(i) { return this.$val.Method(i); }; Value.ptr.prototype.object = function() { var _1, newVal, v, val; v = this; if ((v.typ.Kind() === 17) || (v.typ.Kind() === 25)) { return v.ptr; } if (!((((v.flag & 128) >>> 0) === 0))) { val = v.ptr.$get(); if (!(val === $ifaceNil) && !(val.constructor === jsType(v.typ))) { switch (0) { default: _1 = v.typ.Kind(); if ((_1 === (11)) || (_1 === (6))) { val = new (jsType(v.typ))(val.$high, val.$low); } else if ((_1 === (15)) || (_1 === (16))) { val = new (jsType(v.typ))(val.$real, val.$imag); } else if (_1 === (23)) { if (val === val.constructor.nil) { val = jsType(v.typ).nil; break; } newVal = new (jsType(v.typ))(val.$array); newVal.$offset = val.$offset; newVal.$length = val.$length; newVal.$capacity = val.$capacity; val = newVal; } } } return val; } return v.ptr; }; Value.prototype.object = function() { return this.$val.object(); }; Value.ptr.prototype.call = function(op, in$1) { var _1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem, fn, i, i$1, i$2, i$3, in$1, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; arg = $f.arg; argsArray = $f.argsArray; elem = $f.elem; fn = $f.fn; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; in$1 = $f.in$1; isSlice = $f.isSlice; m = $f.m; n = $f.n; nin = $f.nin; nout = $f.nout; op = $f.op; origIn = $f.origIn; rcvr = $f.rcvr; results = $f.results; ret = $f.ret; slice = $f.slice; t = $f.t; targ = $f.targ; v = $f.v; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; xt = $f.xt; xt$1 = $f.xt$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; t = ptrType$1.nil; fn = 0; rcvr = null; if (!((((v.flag & 512) >>> 0) === 0))) { _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); t = _tuple[1]; fn = _tuple[2]; rcvr = $clone(v, Value).object(); if (isWrapped(v.typ)) { rcvr = new (jsType(v.typ))(rcvr); } } else { t = v.typ; fn = ($clone(v, Value).object()); rcvr = undefined; } if (fn === 0) { $panic(new $String("reflect.Value.Call: call of nil function")); } isSlice = op === "CallSlice"; n = t.NumIn(); if (isSlice) { if (!t.IsVariadic()) { $panic(new $String("reflect: CallSlice of non-variadic function")); } if (in$1.$length < n) { $panic(new $String("reflect: CallSlice with too few input arguments")); } if (in$1.$length > n) { $panic(new $String("reflect: CallSlice with too many input arguments")); } } else { if (t.IsVariadic()) { n = n - (1) >> 0; } if (in$1.$length < n) { $panic(new $String("reflect: Call with too few input arguments")); } if (!t.IsVariadic() && in$1.$length > n) { $panic(new $String("reflect: Call with too many input arguments")); } } _ref = in$1; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if ($clone(x, Value).Kind() === 0) { $panic(new $String("reflect: " + op + " using zero Value argument")); } _i++; } i = 0; /* while (true) { */ case 1: /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; } _tmp = $clone(((i < 0 || i >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i]), Value).Type(); _tmp$1 = t.In(i); xt = _tmp; targ = _tmp$1; _r = xt.AssignableTo(targ); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!_r) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!_r) { */ case 3: _r$1 = xt.String(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = targ.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $panic(new $String("reflect: " + op + " using " + _r$1 + " as type " + _r$2)); /* } */ case 4: i = i + (1) >> 0; /* } */ $s = 1; continue; case 2: /* */ if (!isSlice && t.IsVariadic()) { $s = 8; continue; } /* */ $s = 9; continue; /* if (!isSlice && t.IsVariadic()) { */ case 8: m = in$1.$length - n >> 0; _r$3 = MakeSlice(t.In(n), m, m); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } slice = _r$3; _r$4 = t.In(n).Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } elem = _r$4; i$1 = 0; /* while (true) { */ case 12: /* if (!(i$1 < m)) { break; } */ if(!(i$1 < m)) { $s = 13; continue; } x$2 = (x$1 = n + i$1 >> 0, ((x$1 < 0 || x$1 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x$1])); xt$1 = $clone(x$2, Value).Type(); _r$5 = xt$1.AssignableTo(elem); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } /* */ if (!_r$5) { $s = 14; continue; } /* */ $s = 15; continue; /* if (!_r$5) { */ case 14: _r$6 = xt$1.String(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _r$7 = elem.String(); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $panic(new $String("reflect: cannot use " + _r$6 + " as type " + _r$7 + " in " + op)); /* } */ case 15: _r$8 = $clone(slice, Value).Index(i$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $r = $clone(_r$8, Value).Set($clone(x$2, Value)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$1 = i$1 + (1) >> 0; /* } */ $s = 12; continue; case 13: origIn = in$1; in$1 = $makeSlice(sliceType$9, (n + 1 >> 0)); $copySlice($subslice(in$1, 0, n), origIn); ((n < 0 || n >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + n] = slice); /* } */ case 9: nin = in$1.$length; if (!((nin === t.NumIn()))) { $panic(new $String("reflect.Value.Call: wrong argument count")); } nout = t.NumOut(); argsArray = new ($global.Array)(t.NumIn()); _ref$1 = in$1; _i$1 = 0; /* while (true) { */ case 21: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 22; continue; } i$2 = _i$1; arg = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); _arg = t.In(i$2); _r$9 = t.In(i$2).common(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _arg$1 = _r$9; _arg$2 = 0; _r$10 = $clone(arg, Value).assignTo("reflect.Value.Call", _arg$1, _arg$2); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _r$11 = $clone(_r$10, Value).object(); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _arg$3 = _r$11; _r$12 = unwrapJsObject(_arg, _arg$3); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } argsArray[i$2] = _r$12; _i$1++; /* } */ $s = 21; continue; case 22: _r$13 = callHelper(new sliceType$3([new $jsObjectPtr(fn), new $jsObjectPtr(rcvr), new $jsObjectPtr(argsArray)])); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } results = _r$13; _1 = nout; /* */ if (_1 === (0)) { $s = 29; continue; } /* */ if (_1 === (1)) { $s = 30; continue; } /* */ $s = 31; continue; /* if (_1 === (0)) { */ case 29: $s = -1; return sliceType$9.nil; /* } else if (_1 === (1)) { */ case 30: _r$14 = makeValue(t.Out(0), wrapJsObject(t.Out(0), results), 0); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } $s = -1; return new sliceType$9([$clone(_r$14, Value)]); /* } else { */ case 31: ret = $makeSlice(sliceType$9, nout); _ref$2 = ret; _i$2 = 0; /* while (true) { */ case 34: /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 35; continue; } i$3 = _i$2; _r$15 = makeValue(t.Out(i$3), wrapJsObject(t.Out(i$3), results[i$3]), 0); /* */ $s = 36; case 36: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } ((i$3 < 0 || i$3 >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i$3] = _r$15); _i$2++; /* } */ $s = 34; continue; case 35: $s = -1; return ret; /* } */ case 32: case 28: $s = -1; return sliceType$9.nil; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.call }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.arg = arg; $f.argsArray = argsArray; $f.elem = elem; $f.fn = fn; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.in$1 = in$1; $f.isSlice = isSlice; $f.m = m; $f.n = n; $f.nin = nin; $f.nout = nout; $f.op = op; $f.origIn = origIn; $f.rcvr = rcvr; $f.results = results; $f.ret = ret; $f.slice = slice; $f.t = t; $f.targ = targ; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.xt = xt; $f.xt$1 = xt$1; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.call = function(op, in$1) { return this.$val.call(op, in$1); }; Value.ptr.prototype.Cap = function() { var _1, k, v; v = this; k = new flag(v.flag).kind(); _1 = k; if (_1 === (17)) { return v.typ.Len(); } else if ((_1 === (18)) || (_1 === (23))) { return $parseInt($clone(v, Value).object().$capacity) >> 0; } $panic(new ValueError.ptr("reflect.Value.Cap", k)); }; Value.prototype.Cap = function() { return this.$val.Cap(); }; wrapJsObject = function(typ, val) { var typ, val; if ($interfaceIsEqual(typ, jsObjectPtr)) { return new (jsType(jsObjectPtr))(val); } return val; }; unwrapJsObject = function(typ, val) { var typ, val; if ($interfaceIsEqual(typ, jsObjectPtr)) { return val.object; } return val; }; Value.ptr.prototype.Elem = function() { var _1, _r, fl, k, tt, typ, v, val, val$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; fl = $f.fl; k = $f.k; tt = $f.tt; typ = $f.typ; v = $f.v; val = $f.val; val$1 = $f.val$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; k = new flag(v.flag).kind(); _1 = k; /* */ if (_1 === (20)) { $s = 2; continue; } /* */ if (_1 === (22)) { $s = 3; continue; } /* */ $s = 4; continue; /* if (_1 === (20)) { */ case 2: val = $clone(v, Value).object(); if (val === $ifaceNil) { $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); } typ = reflectType(val.constructor); _r = makeValue(typ, val.$val, (v.flag & 96) >>> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* } else if (_1 === (22)) { */ case 3: if ($clone(v, Value).IsNil()) { $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); } val$1 = $clone(v, Value).object(); tt = (v.typ.kindType); fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0; fl = (fl | (((tt.elem.Kind() >>> 0)))) >>> 0; $s = -1; return new Value.ptr(tt.elem, (wrapJsObject(tt.elem, val$1)), fl); /* } else { */ case 4: $panic(new ValueError.ptr("reflect.Value.Elem", k)); /* } */ case 5: case 1: $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Elem }; } $f._1 = _1; $f._r = _r; $f.fl = fl; $f.k = k; $f.tt = tt; $f.typ = typ; $f.v = v; $f.val = val; $f.val$1 = val$1; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.Elem = function() { return this.$val.Elem(); }; Value.ptr.prototype.Field = function(i) { var _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; field = $f.field; fl = $f.fl; i = $f.i; jsTag = $f.jsTag; o = $f.o; prop = $f.prop; s = $f.s; tag = $f.tag; tt = $f.tt; typ = $f.typ; v = $f.v; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: jsTag = [jsTag]; prop = [prop]; s = [s]; typ = [typ]; v = this; if (!((new flag(v.flag).kind() === 25))) { $panic(new ValueError.ptr("reflect.Value.Field", new flag(v.flag).kind())); } tt = (v.typ.kindType); if (((i >>> 0)) >= ((tt.fields.$length >>> 0))) { $panic(new $String("reflect: Field index out of range")); } prop[0] = $internalize(jsType(v.typ).fields[i].prop, $String); field = (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); typ[0] = field.typ; fl = (((v.flag & 416) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; if (!$clone(field.name, name).isExported()) { if (field.anon()) { fl = (fl | (64)) >>> 0; } else { fl = (fl | (32)) >>> 0; } } tag = $clone((x$1 = tt.fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).name, name).tag(); /* */ if (!(tag === "") && !((i === 0))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!(tag === "") && !((i === 0))) { */ case 1: jsTag[0] = getJsTag(tag); /* */ if (!(jsTag[0] === "")) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!(jsTag[0] === "")) { */ case 3: /* while (true) { */ case 5: o = [o]; _r = $clone(v, Value).Field(0); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } v = _r; /* */ if (v.typ === jsObjectPtr) { $s = 8; continue; } /* */ $s = 9; continue; /* if (v.typ === jsObjectPtr) { */ case 8: o[0] = $clone(v, Value).object().object; $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, o, prop, s, typ) { return function() { return $internalize(o[0][$externalize(jsTag[0], $String)], jsType(typ[0])); }; })(jsTag, o, prop, s, typ), (function(jsTag, o, prop, s, typ) { return function(x$2) { var x$2; o[0][$externalize(jsTag[0], $String)] = $externalize(x$2, jsType(typ[0])); }; })(jsTag, o, prop, s, typ))), fl); /* } */ case 9: /* */ if (v.typ.Kind() === 22) { $s = 10; continue; } /* */ $s = 11; continue; /* if (v.typ.Kind() === 22) { */ case 10: _r$1 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } v = _r$1; /* } */ case 11: /* } */ $s = 5; continue; case 6: /* } */ case 4: /* } */ case 2: s[0] = v.ptr; /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 13; continue; } /* */ $s = 14; continue; /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 13: $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, prop, s, typ) { return function() { return wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]); }; })(jsTag, prop, s, typ), (function(jsTag, prop, s, typ) { return function(x$2) { var x$2; s[0][$externalize(prop[0], $String)] = unwrapJsObject(typ[0], x$2); }; })(jsTag, prop, s, typ))), fl); /* } */ case 14: _r$2 = makeValue(typ[0], wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]), fl); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Field }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.field = field; $f.fl = fl; $f.i = i; $f.jsTag = jsTag; $f.o = o; $f.prop = prop; $f.s = s; $f.tag = tag; $f.tt = tt; $f.typ = typ; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.Field = function(i) { return this.$val.Field(i); }; getJsTag = function(tag) { var _tuple, i, name$1, qvalue, tag, value; while (true) { if (!(!(tag === ""))) { break; } i = 0; while (true) { if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { break; } i = i + (1) >> 0; } tag = $substring(tag, i); if (tag === "") { break; } i = 0; while (true) { if (!(i < tag.length && !((tag.charCodeAt(i) === 32)) && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)))) { break; } i = i + (1) >> 0; } if ((i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) { break; } name$1 = ($substring(tag, 0, i)); tag = $substring(tag, (i + 1 >> 0)); i = 1; while (true) { if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { break; } if (tag.charCodeAt(i) === 92) { i = i + (1) >> 0; } i = i + (1) >> 0; } if (i >= tag.length) { break; } qvalue = ($substring(tag, 0, (i + 1 >> 0))); tag = $substring(tag, (i + 1 >> 0)); if (name$1 === "js") { _tuple = strconv.Unquote(qvalue); value = _tuple[0]; return value; } } return ""; }; Value.ptr.prototype.Index = function(i) { var _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; a = $f.a; a$1 = $f.a$1; c = $f.c; fl = $f.fl; fl$1 = $f.fl$1; fl$2 = $f.fl$2; i = $f.i; k = $f.k; s = $f.s; str = $f.str; tt = $f.tt; tt$1 = $f.tt$1; typ = $f.typ; typ$1 = $f.typ$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: a = [a]; a$1 = [a$1]; c = [c]; i = [i]; typ = [typ]; typ$1 = [typ$1]; v = this; k = new flag(v.flag).kind(); _1 = k; /* */ if (_1 === (17)) { $s = 2; continue; } /* */ if (_1 === (23)) { $s = 3; continue; } /* */ if (_1 === (24)) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_1 === (17)) { */ case 2: tt = (v.typ.kindType); if (i[0] < 0 || i[0] > ((tt.len >> 0))) { $panic(new $String("reflect: array index out of range")); } typ[0] = tt.elem; fl = (v.flag & 480) >>> 0; fl = (fl | (((typ[0].Kind() >>> 0)))) >>> 0; a[0] = v.ptr; /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 7; continue; } /* */ $s = 8; continue; /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 7: $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(a, a$1, c, i, typ, typ$1) { return function() { return wrapJsObject(typ[0], a[0][i[0]]); }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function(x) { var x; a[0][i[0]] = unwrapJsObject(typ[0], x); }; })(a, a$1, c, i, typ, typ$1))), fl); /* } */ case 8: _r = makeValue(typ[0], wrapJsObject(typ[0], a[0][i[0]]), fl); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* } else if (_1 === (23)) { */ case 3: s = $clone(v, Value).object(); if (i[0] < 0 || i[0] >= ($parseInt(s.$length) >> 0)) { $panic(new $String("reflect: slice index out of range")); } tt$1 = (v.typ.kindType); typ$1[0] = tt$1.elem; fl$1 = (384 | ((v.flag & 96) >>> 0)) >>> 0; fl$1 = (fl$1 | (((typ$1[0].Kind() >>> 0)))) >>> 0; i[0] = i[0] + (($parseInt(s.$offset) >> 0)) >> 0; a$1[0] = s.$array; /* */ if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { $s = 10; continue; } /* */ $s = 11; continue; /* if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { */ case 10: $s = -1; return new Value.ptr(typ$1[0], (new (jsType(PtrTo(typ$1[0])))((function(a, a$1, c, i, typ, typ$1) { return function() { return wrapJsObject(typ$1[0], a$1[0][i[0]]); }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function(x) { var x; a$1[0][i[0]] = unwrapJsObject(typ$1[0], x); }; })(a, a$1, c, i, typ, typ$1))), fl$1); /* } */ case 11: _r$1 = makeValue(typ$1[0], wrapJsObject(typ$1[0], a$1[0][i[0]]), fl$1); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } else if (_1 === (24)) { */ case 4: str = (v.ptr).$get(); if (i[0] < 0 || i[0] >= str.length) { $panic(new $String("reflect: string index out of range")); } fl$2 = (((v.flag & 96) >>> 0) | 8) >>> 0; c[0] = str.charCodeAt(i[0]); $s = -1; return new Value.ptr(uint8Type, ((c.$ptr || (c.$ptr = new ptrType$4(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, c)))), (fl$2 | 128) >>> 0); /* } else { */ case 5: $panic(new ValueError.ptr("reflect.Value.Index", k)); /* } */ case 6: case 1: $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Index }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.a = a; $f.a$1 = a$1; $f.c = c; $f.fl = fl; $f.fl$1 = fl$1; $f.fl$2 = fl$2; $f.i = i; $f.k = k; $f.s = s; $f.str = str; $f.tt = tt; $f.tt$1 = tt$1; $f.typ = typ; $f.typ$1 = typ$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.Index = function(i) { return this.$val.Index(i); }; Value.ptr.prototype.InterfaceData = function() { var v; v = this; $panic(errors.New("InterfaceData is not supported by GopherJS")); }; Value.prototype.InterfaceData = function() { return this.$val.InterfaceData(); }; Value.ptr.prototype.IsNil = function() { var _1, k, v; v = this; k = new flag(v.flag).kind(); _1 = k; if ((_1 === (22)) || (_1 === (23))) { return $clone(v, Value).object() === jsType(v.typ).nil; } else if (_1 === (18)) { return $clone(v, Value).object() === $chanNil; } else if (_1 === (19)) { return $clone(v, Value).object() === $throwNilPointerError; } else if (_1 === (21)) { return $clone(v, Value).object() === false; } else if (_1 === (20)) { return $clone(v, Value).object() === $ifaceNil; } else { $panic(new ValueError.ptr("reflect.Value.IsNil", k)); } }; Value.prototype.IsNil = function() { return this.$val.IsNil(); }; Value.ptr.prototype.Len = function() { var _1, k, v; v = this; k = new flag(v.flag).kind(); _1 = k; if ((_1 === (17)) || (_1 === (24))) { return $parseInt($clone(v, Value).object().length); } else if (_1 === (23)) { return $parseInt($clone(v, Value).object().$length) >> 0; } else if (_1 === (18)) { return $parseInt($clone(v, Value).object().$buffer.length) >> 0; } else if (_1 === (21)) { return $parseInt($keys($clone(v, Value).object()).length); } else { $panic(new ValueError.ptr("reflect.Value.Len", k)); } }; Value.prototype.Len = function() { return this.$val.Len(); }; Value.ptr.prototype.Pointer = function() { var _1, k, v; v = this; k = new flag(v.flag).kind(); _1 = k; if ((_1 === (18)) || (_1 === (21)) || (_1 === (22)) || (_1 === (26))) { if ($clone(v, Value).IsNil()) { return 0; } return $clone(v, Value).object(); } else if (_1 === (19)) { if ($clone(v, Value).IsNil()) { return 0; } return 1; } else if (_1 === (23)) { if ($clone(v, Value).IsNil()) { return 0; } return $clone(v, Value).object().$array; } else { $panic(new ValueError.ptr("reflect.Value.Pointer", k)); } }; Value.prototype.Pointer = function() { return this.$val.Pointer(); }; Value.ptr.prototype.Set = function(x) { var _1, _r, _r$1, v, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBeAssignable(); new flag(x.flag).mustBeExported(); _r = $clone(x, Value).assignTo("reflect.Set", v.typ, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } x = _r; /* */ if (!((((v.flag & 128) >>> 0) === 0))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!((((v.flag & 128) >>> 0) === 0))) { */ case 2: _1 = v.typ.Kind(); /* */ if (_1 === (17)) { $s = 5; continue; } /* */ if (_1 === (20)) { $s = 6; continue; } /* */ if (_1 === (25)) { $s = 7; continue; } /* */ $s = 8; continue; /* if (_1 === (17)) { */ case 5: jsType(v.typ).copy(v.ptr, x.ptr); $s = 9; continue; /* } else if (_1 === (20)) { */ case 6: _r$1 = valueInterface($clone(x, Value), false); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } v.ptr.$set(_r$1); $s = 9; continue; /* } else if (_1 === (25)) { */ case 7: copyStruct(v.ptr, x.ptr, v.typ); $s = 9; continue; /* } else { */ case 8: v.ptr.$set($clone(x, Value).object()); /* } */ case 9: case 4: $s = -1; return; /* } */ case 3: v.ptr = x.ptr; $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Set }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.Set = function(x) { return this.$val.Set(x); }; Value.ptr.prototype.SetBytes = function(x) { var _r, _r$1, _v, slice, typedSlice, v, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _v = $f._v; slice = $f.slice; typedSlice = $f.typedSlice; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBeAssignable(); new flag(v.flag).mustBe(23); _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!((_r === 8))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((_r === 8))) { */ case 1: $panic(new $String("reflect.Value.SetBytes of non-byte slice")); /* } */ case 2: slice = x; if (!(v.typ.Name() === "")) { _v = true; $s = 6; continue s; } _r$1 = v.typ.Elem().Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _v = !(_r$1 === ""); case 6: /* */ if (_v) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_v) { */ case 4: typedSlice = new (jsType(v.typ))(slice.$array); typedSlice.$offset = slice.$offset; typedSlice.$length = slice.$length; typedSlice.$capacity = slice.$capacity; slice = typedSlice; /* } */ case 5: v.ptr.$set(slice); $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.SetBytes }; } $f._r = _r; $f._r$1 = _r$1; $f._v = _v; $f.slice = slice; $f.typedSlice = typedSlice; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.SetBytes = function(x) { return this.$val.SetBytes(x); }; Value.ptr.prototype.SetCap = function(n) { var n, newSlice, s, v; v = this; new flag(v.flag).mustBeAssignable(); new flag(v.flag).mustBe(23); s = v.ptr.$get(); if (n < ($parseInt(s.$length) >> 0) || n > ($parseInt(s.$capacity) >> 0)) { $panic(new $String("reflect: slice capacity out of range in SetCap")); } newSlice = new (jsType(v.typ))(s.$array); newSlice.$offset = s.$offset; newSlice.$length = s.$length; newSlice.$capacity = n; v.ptr.$set(newSlice); }; Value.prototype.SetCap = function(n) { return this.$val.SetCap(n); }; Value.ptr.prototype.SetLen = function(n) { var n, newSlice, s, v; v = this; new flag(v.flag).mustBeAssignable(); new flag(v.flag).mustBe(23); s = v.ptr.$get(); if (n < 0 || n > ($parseInt(s.$capacity) >> 0)) { $panic(new $String("reflect: slice length out of range in SetLen")); } newSlice = new (jsType(v.typ))(s.$array); newSlice.$offset = s.$offset; newSlice.$length = n; newSlice.$capacity = s.$capacity; v.ptr.$set(newSlice); }; Value.prototype.SetLen = function(n) { return this.$val.SetLen(n); }; Value.ptr.prototype.Slice = function(i, j) { var _1, _r, _r$1, cap, i, j, kind, s, str, tt, typ, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; cap = $f.cap; i = $f.i; j = $f.j; kind = $f.kind; s = $f.s; str = $f.str; tt = $f.tt; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; cap = 0; typ = $ifaceNil; s = null; kind = new flag(v.flag).kind(); _1 = kind; /* */ if (_1 === (17)) { $s = 2; continue; } /* */ if (_1 === (23)) { $s = 3; continue; } /* */ if (_1 === (24)) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_1 === (17)) { */ case 2: if (((v.flag & 256) >>> 0) === 0) { $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); } tt = (v.typ.kindType); cap = ((tt.len >> 0)); typ = SliceOf(tt.elem); s = new (jsType(typ))($clone(v, Value).object()); $s = 6; continue; /* } else if (_1 === (23)) { */ case 3: typ = v.typ; s = $clone(v, Value).object(); cap = $parseInt(s.$capacity) >> 0; $s = 6; continue; /* } else if (_1 === (24)) { */ case 4: str = (v.ptr).$get(); if (i < 0 || j < i || j > str.length) { $panic(new $String("reflect.Value.Slice: string slice index out of bounds")); } _r = ValueOf(new $String($substring(str, i, j))); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* } else { */ case 5: $panic(new ValueError.ptr("reflect.Value.Slice", kind)); /* } */ case 6: case 1: if (i < 0 || j < i || j > cap) { $panic(new $String("reflect.Value.Slice: slice index out of bounds")); } _r$1 = makeValue(typ, $subslice(s, i, j), (v.flag & 96) >>> 0); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Slice }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.cap = cap; $f.i = i; $f.j = j; $f.kind = kind; $f.s = s; $f.str = str; $f.tt = tt; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.Slice = function(i, j) { return this.$val.Slice(i, j); }; Value.ptr.prototype.Slice3 = function(i, j, k) { var _1, _r, cap, i, j, k, kind, s, tt, typ, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; cap = $f.cap; i = $f.i; j = $f.j; k = $f.k; kind = $f.kind; s = $f.s; tt = $f.tt; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; cap = 0; typ = $ifaceNil; s = null; kind = new flag(v.flag).kind(); _1 = kind; if (_1 === (17)) { if (((v.flag & 256) >>> 0) === 0) { $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); } tt = (v.typ.kindType); cap = ((tt.len >> 0)); typ = SliceOf(tt.elem); s = new (jsType(typ))($clone(v, Value).object()); } else if (_1 === (23)) { typ = v.typ; s = $clone(v, Value).object(); cap = $parseInt(s.$capacity) >> 0; } else { $panic(new ValueError.ptr("reflect.Value.Slice3", kind)); } if (i < 0 || j < i || k < j || k > cap) { $panic(new $String("reflect.Value.Slice3: slice index out of bounds")); } _r = makeValue(typ, $subslice(s, i, j, k), (v.flag & 96) >>> 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Slice3 }; } $f._1 = _1; $f._r = _r; $f.cap = cap; $f.i = i; $f.j = j; $f.k = k; $f.kind = kind; $f.s = s; $f.tt = tt; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.Slice3 = function(i, j, k) { return this.$val.Slice3(i, j, k); }; Value.ptr.prototype.Close = function() { var v; v = this; new flag(v.flag).mustBe(18); new flag(v.flag).mustBeExported(); $close($clone(v, Value).object()); }; Value.prototype.Close = function() { return this.$val.Close(); }; chanrecv = function(ch, nb, val) { var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, ch, comms, nb, received, recvRes, selectRes, selected, val, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; ch = $f.ch; comms = $f.comms; nb = $f.nb; received = $f.received; recvRes = $f.recvRes; selectRes = $f.selectRes; selected = $f.selected; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: selected = false; received = false; comms = new sliceType$11([new sliceType$8([ch])]); if (nb) { comms = $append(comms, new sliceType$8([])); } _r = selectHelper(new sliceType$3([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } selectRes = _r; if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { _tmp = false; _tmp$1 = false; selected = _tmp; received = _tmp$1; $s = -1; return [selected, received]; } recvRes = selectRes[1]; val.$set(recvRes[0]); _tmp$2 = true; _tmp$3 = !!(recvRes[1]); selected = _tmp$2; received = _tmp$3; $s = -1; return [selected, received]; /* */ } return; } if ($f === undefined) { $f = { $blk: chanrecv }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.ch = ch; $f.comms = comms; $f.nb = nb; $f.received = received; $f.recvRes = recvRes; $f.selectRes = selectRes; $f.selected = selected; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; }; chansend = function(ch, val, nb) { var _r, ch, comms, nb, selectRes, val, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; ch = $f.ch; comms = $f.comms; nb = $f.nb; selectRes = $f.selectRes; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: comms = new sliceType$11([new sliceType$8([ch, val.$get()])]); if (nb) { comms = $append(comms, new sliceType$8([])); } _r = selectHelper(new sliceType$3([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } selectRes = _r; if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { $s = -1; return false; } $s = -1; return true; /* */ } return; } if ($f === undefined) { $f = { $blk: chansend }; } $f._r = _r; $f.ch = ch; $f.comms = comms; $f.nb = nb; $f.selectRes = selectRes; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; }; DeepEqual = function(a1, a2) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, a1, a2, i1, i2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; a1 = $f.a1; a2 = $f.a2; i1 = $f.i1; i2 = $f.i2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i1 = a1; i2 = a2; if (i1 === i2) { $s = -1; return true; } if (i1 === null || i2 === null || !(i1.constructor === i2.constructor)) { $s = -1; return false; } _r = ValueOf(a1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg = $clone(_r, Value); _r$1 = ValueOf(a2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = $clone(_r$1, Value); _arg$2 = sliceType$12.nil; _r$2 = deepValueEqualJs(_arg, _arg$1, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* */ } return; } if ($f === undefined) { $f = { $blk: DeepEqual }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.a1 = a1; $f.a2 = a2; $f.i1 = i1; $f.i2 = i2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.DeepEqual = DeepEqual; deepValueEqualJs = function(v1, v2, visited) { var _1, _2, _arg, _arg$1, _arg$10, _arg$11, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _v, entry, i, i$1, k, keys, n, n$1, v1, v2, val1, val2, visited, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$10 = $f._arg$10; _arg$11 = $f._arg$11; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _arg$8 = $f._arg$8; _arg$9 = $f._arg$9; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _v = $f._v; entry = $f.entry; i = $f.i; i$1 = $f.i$1; k = $f.k; keys = $f.keys; n = $f.n; n$1 = $f.n$1; v1 = $f.v1; v2 = $f.v2; val1 = $f.val1; val2 = $f.val2; visited = $f.visited; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: if (!$clone(v1, Value).IsValid() || !$clone(v2, Value).IsValid()) { $s = -1; return !$clone(v1, Value).IsValid() && !$clone(v2, Value).IsValid(); } if (!($interfaceIsEqual($clone(v1, Value).Type(), $clone(v2, Value).Type()))) { $s = -1; return false; } if ($interfaceIsEqual($clone(v1, Value).Type(), jsObjectPtr)) { $s = -1; return unwrapJsObject(jsObjectPtr, $clone(v1, Value).object()) === unwrapJsObject(jsObjectPtr, $clone(v2, Value).object()); } _1 = $clone(v1, Value).Kind(); if ((_1 === (17)) || (_1 === (21)) || (_1 === (23)) || (_1 === (25))) { _ref = visited; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } entry = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), arrayType$1); if (v1.ptr === entry[0] && v2.ptr === entry[1]) { $s = -1; return true; } _i++; } visited = $append(visited, $toNativeArray($kindUnsafePointer, [v1.ptr, v2.ptr])); } _2 = $clone(v1, Value).Kind(); /* */ if ((_2 === (17)) || (_2 === (23))) { $s = 2; continue; } /* */ if (_2 === (20)) { $s = 3; continue; } /* */ if (_2 === (22)) { $s = 4; continue; } /* */ if (_2 === (25)) { $s = 5; continue; } /* */ if (_2 === (21)) { $s = 6; continue; } /* */ if (_2 === (19)) { $s = 7; continue; } /* */ if (_2 === (26)) { $s = 8; continue; } /* */ $s = 9; continue; /* if ((_2 === (17)) || (_2 === (23))) { */ case 2: if ($clone(v1, Value).Kind() === 23) { if (!($clone(v1, Value).IsNil() === $clone(v2, Value).IsNil())) { $s = -1; return false; } if ($clone(v1, Value).object() === $clone(v2, Value).object()) { $s = -1; return true; } } n = $clone(v1, Value).Len(); if (!((n === $clone(v2, Value).Len()))) { $s = -1; return false; } i = 0; /* while (true) { */ case 10: /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 11; continue; } _r = $clone(v1, Value).Index(i); /* */ $s = 14; case 14: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg = $clone(_r, Value); _r$1 = $clone(v2, Value).Index(i); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = $clone(_r$1, Value); _arg$2 = visited; _r$2 = deepValueEqualJs(_arg, _arg$1, _arg$2); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (!_r$2) { $s = 12; continue; } /* */ $s = 13; continue; /* if (!_r$2) { */ case 12: $s = -1; return false; /* } */ case 13: i = i + (1) >> 0; /* } */ $s = 10; continue; case 11: $s = -1; return true; /* } else if (_2 === (20)) { */ case 3: if ($clone(v1, Value).IsNil() || $clone(v2, Value).IsNil()) { $s = -1; return $clone(v1, Value).IsNil() && $clone(v2, Value).IsNil(); } _r$3 = $clone(v1, Value).Elem(); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$3 = $clone(_r$3, Value); _r$4 = $clone(v2, Value).Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$4 = $clone(_r$4, Value); _arg$5 = visited; _r$5 = deepValueEqualJs(_arg$3, _arg$4, _arg$5); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } else if (_2 === (22)) { */ case 4: _r$6 = $clone(v1, Value).Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _arg$6 = $clone(_r$6, Value); _r$7 = $clone(v2, Value).Elem(); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _arg$7 = $clone(_r$7, Value); _arg$8 = visited; _r$8 = deepValueEqualJs(_arg$6, _arg$7, _arg$8); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $s = -1; return _r$8; /* } else if (_2 === (25)) { */ case 5: n$1 = $clone(v1, Value).NumField(); i$1 = 0; /* while (true) { */ case 23: /* if (!(i$1 < n$1)) { break; } */ if(!(i$1 < n$1)) { $s = 24; continue; } _r$9 = $clone(v1, Value).Field(i$1); /* */ $s = 27; case 27: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _arg$9 = $clone(_r$9, Value); _r$10 = $clone(v2, Value).Field(i$1); /* */ $s = 28; case 28: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _arg$10 = $clone(_r$10, Value); _arg$11 = visited; _r$11 = deepValueEqualJs(_arg$9, _arg$10, _arg$11); /* */ $s = 29; case 29: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } /* */ if (!_r$11) { $s = 25; continue; } /* */ $s = 26; continue; /* if (!_r$11) { */ case 25: $s = -1; return false; /* } */ case 26: i$1 = i$1 + (1) >> 0; /* } */ $s = 23; continue; case 24: $s = -1; return true; /* } else if (_2 === (21)) { */ case 6: if (!($clone(v1, Value).IsNil() === $clone(v2, Value).IsNil())) { $s = -1; return false; } if ($clone(v1, Value).object() === $clone(v2, Value).object()) { $s = -1; return true; } _r$12 = $clone(v1, Value).MapKeys(); /* */ $s = 30; case 30: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } keys = _r$12; if (!((keys.$length === $clone(v2, Value).Len()))) { $s = -1; return false; } _ref$1 = keys; _i$1 = 0; /* while (true) { */ case 31: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 32; continue; } k = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); _r$13 = $clone(v1, Value).MapIndex($clone(k, Value)); /* */ $s = 33; case 33: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } val1 = _r$13; _r$14 = $clone(v2, Value).MapIndex($clone(k, Value)); /* */ $s = 34; case 34: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } val2 = _r$14; if (!$clone(val1, Value).IsValid() || !$clone(val2, Value).IsValid()) { _v = true; $s = 37; continue s; } _r$15 = deepValueEqualJs($clone(val1, Value), $clone(val2, Value), visited); /* */ $s = 38; case 38: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } _v = !_r$15; case 37: /* */ if (_v) { $s = 35; continue; } /* */ $s = 36; continue; /* if (_v) { */ case 35: $s = -1; return false; /* } */ case 36: _i$1++; /* } */ $s = 31; continue; case 32: $s = -1; return true; /* } else if (_2 === (19)) { */ case 7: $s = -1; return $clone(v1, Value).IsNil() && $clone(v2, Value).IsNil(); /* } else if (_2 === (26)) { */ case 8: $s = -1; return $clone(v1, Value).object() === $clone(v2, Value).object(); /* } */ case 9: case 1: _r$16 = valueInterface($clone(v1, Value), false); /* */ $s = 39; case 39: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } _r$17 = valueInterface($clone(v2, Value), false); /* */ $s = 40; case 40: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } $s = -1; return !!($interfaceIsEqual(_r$16, _r$17)); /* */ } return; } if ($f === undefined) { $f = { $blk: deepValueEqualJs }; } $f._1 = _1; $f._2 = _2; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$10 = _arg$10; $f._arg$11 = _arg$11; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._arg$8 = _arg$8; $f._arg$9 = _arg$9; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._v = _v; $f.entry = entry; $f.i = i; $f.i$1 = i$1; $f.k = k; $f.keys = keys; $f.n = n; $f.n$1 = n$1; $f.v1 = v1; $f.v2 = v2; $f.val1 = val1; $f.val2 = val2; $f.visited = visited; $f.$s = $s; $f.$r = $r; return $f; }; Swapper = function(slice) { var _1, _r, _r$1, _r$2, _r$3, slice, tmp, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; slice = $f.slice; tmp = $f.tmp; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: tmp = [tmp]; v = [v]; _r = ValueOf(slice); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } v[0] = _r; if (!(($clone(v[0], Value).Kind() === 23))) { $panic(new ValueError.ptr("Swapper", $clone(v[0], Value).Kind())); } _1 = $clone(v[0], Value).Len(); if (_1 === (0)) { $s = -1; return (function(tmp, v) { return function(i, j) { var i, j; $panic(new $String("reflect: slice index out of range")); }; })(tmp, v); } else if (_1 === (1)) { $s = -1; return (function(tmp, v) { return function(i, j) { var i, j; if (!((i === 0)) || !((j === 0))) { $panic(new $String("reflect: slice index out of range")); } }; })(tmp, v); } case 2: _r$1 = $clone(v[0], Value).Type().Elem(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = New(_r$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$3 = $clone(_r$2, Value).Elem(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } tmp[0] = _r$3; $s = -1; return (function(tmp, v) { return function $b(i, j) { var _r$4, _r$5, i, j, v1, v2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$4 = $f._r$4; _r$5 = $f._r$5; i = $f.i; j = $f.j; v1 = $f.v1; v2 = $f.v2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r$4 = $clone(v[0], Value).Index(i); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } v1 = _r$4; _r$5 = $clone(v[0], Value).Index(j); /* */ $s = 2; case 2: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } v2 = _r$5; $r = $clone(tmp[0], Value).Set($clone(v1, Value)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = $clone(v1, Value).Set($clone(v2, Value)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = $clone(v2, Value).Set($clone(tmp[0], Value)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$4 = _r$4; $f._r$5 = _r$5; $f.i = i; $f.j = j; $f.v1 = v1; $f.v2 = v2; $f.$s = $s; $f.$r = $r; return $f; }; })(tmp, v); /* */ } return; } if ($f === undefined) { $f = { $blk: Swapper }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.slice = slice; $f.tmp = tmp; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Swapper = Swapper; structField.ptr.prototype.offset = function() { var f; f = this; return f.offsetAnon >>> 1 >>> 0; }; structField.prototype.offset = function() { return this.$val.offset(); }; structField.ptr.prototype.anon = function() { var f; f = this; return !((((f.offsetAnon & 1) >>> 0) === 0)); }; structField.prototype.anon = function() { return this.$val.anon(); }; Kind.prototype.String = function() { var k; k = this.$val; if (((k >> 0)) < kindNames.$length) { return ((k < 0 || k >= kindNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + k]); } return "kind" + strconv.Itoa(((k >> 0))); }; $ptrType(Kind).prototype.String = function() { return new Kind(this.$get()).String(); }; rtype.ptr.prototype.String = function() { var s, t; t = this; s = $clone(t.nameOff(t.str), name).name(); if (!((((t.tflag & 2) >>> 0) === 0))) { return $substring(s, 1); } return s; }; rtype.prototype.String = function() { return this.$val.String(); }; rtype.ptr.prototype.Size = function() { var t; t = this; return t.size; }; rtype.prototype.Size = function() { return this.$val.Size(); }; rtype.ptr.prototype.Bits = function() { var k, t; t = this; if (t === ptrType$1.nil) { $panic(new $String("reflect: Bits of nil Type")); } k = t.Kind(); if (k < 2 || k > 16) { $panic(new $String("reflect: Bits of non-arithmetic Type " + t.String())); } return $imul(((t.size >> 0)), 8); }; rtype.prototype.Bits = function() { return this.$val.Bits(); }; rtype.ptr.prototype.Align = function() { var t; t = this; return ((t.align >> 0)); }; rtype.prototype.Align = function() { return this.$val.Align(); }; rtype.ptr.prototype.FieldAlign = function() { var t; t = this; return ((t.fieldAlign >> 0)); }; rtype.prototype.FieldAlign = function() { return this.$val.FieldAlign(); }; rtype.ptr.prototype.Kind = function() { var t; t = this; return ((((t.kind & 31) >>> 0) >>> 0)); }; rtype.prototype.Kind = function() { return this.$val.Kind(); }; rtype.ptr.prototype.common = function() { var t; t = this; return t; }; rtype.prototype.common = function() { return this.$val.common(); }; rtype.ptr.prototype.exportedMethods = function() { var _i, _i$1, _r, _r$1, _ref, _ref$1, _tuple, _tuple$1, allExported, allm, found, m, m$1, methods, methodsi, name$1, name$2, t, ut, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; allExported = $f.allExported; allm = $f.allm; found = $f.found; m = $f.m; m$1 = $f.m$1; methods = $f.methods; methodsi = $f.methodsi; name$1 = $f.name$1; name$2 = $f.name$2; t = $f.t; ut = $f.ut; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; _r = methodCache.Load(t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; methodsi = _tuple[0]; found = _tuple[1]; if (found) { $s = -1; return $assertType(methodsi, sliceType$5); } ut = t.uncommon(); if (ut === ptrType$5.nil) { $s = -1; return sliceType$5.nil; } allm = ut.methods(); allExported = true; _ref = allm; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } m = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), method); name$1 = $clone(t.nameOff(m.name), name); if (!$clone(name$1, name).isExported()) { allExported = false; break; } _i++; } methods = sliceType$5.nil; if (allExported) { methods = allm; } else { methods = $makeSlice(sliceType$5, 0, allm.$length); _ref$1 = allm; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } m$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), method); name$2 = $clone(t.nameOff(m$1.name), name); if ($clone(name$2, name).isExported()) { methods = $append(methods, m$1); } _i$1++; } methods = $subslice(methods, 0, methods.$length, methods.$length); } _r$1 = methodCache.LoadOrStore(t, methods); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; methodsi = _tuple$1[0]; $s = -1; return $assertType(methodsi, sliceType$5); /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.exportedMethods }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.allExported = allExported; $f.allm = allm; $f.found = found; $f.m = m; $f.m$1 = m$1; $f.methods = methods; $f.methodsi = methodsi; $f.name$1 = name$1; $f.name$2 = name$2; $f.t = t; $f.ut = ut; $f.$s = $s; $f.$r = $r; return $f; }; rtype.prototype.exportedMethods = function() { return this.$val.exportedMethods(); }; rtype.ptr.prototype.NumMethod = function() { var _r, t, tt, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; if (t.Kind() === 20) { tt = (t.kindType); $s = -1; return tt.NumMethod(); } if (((t.tflag & 1) >>> 0) === 0) { $s = -1; return 0; } _r = t.exportedMethods(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r.$length; /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.NumMethod }; } $f._r = _r; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; }; rtype.prototype.NumMethod = function() { return this.$val.NumMethod(); }; rtype.ptr.prototype.MethodByName = function(name$1) { var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, i, m, name$1, ok, p, pname, t, tt, ut, utmethods, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; i = $f.i; m = $f.m; name$1 = $f.name$1; ok = $f.ok; p = $f.p; pname = $f.pname; t = $f.t; tt = $f.tt; ut = $f.ut; utmethods = $f.utmethods; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); ok = false; t = this; if (t.Kind() === 20) { tt = (t.kindType); _tuple = tt.MethodByName(name$1); Method.copy(m, _tuple[0]); ok = _tuple[1]; $s = -1; return [m, ok]; } ut = t.uncommon(); if (ut === ptrType$5.nil) { _tmp = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); _tmp$1 = false; Method.copy(m, _tmp); ok = _tmp$1; $s = -1; return [m, ok]; } utmethods = ut.methods(); i = 0; /* while (true) { */ case 1: /* if (!(i < ((ut.mcount >> 0)))) { break; } */ if(!(i < ((ut.mcount >> 0)))) { $s = 2; continue; } p = $clone(((i < 0 || i >= utmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : utmethods.$array[utmethods.$offset + i]), method); pname = $clone(t.nameOff(p.name), name); /* */ if ($clone(pname, name).isExported() && $clone(pname, name).name() === name$1) { $s = 3; continue; } /* */ $s = 4; continue; /* if ($clone(pname, name).isExported() && $clone(pname, name).name() === name$1) { */ case 3: _r = t.Method(i); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tmp$2 = $clone(_r, Method); _tmp$3 = true; Method.copy(m, _tmp$2); ok = _tmp$3; $s = -1; return [m, ok]; /* } */ case 4: i = i + (1) >> 0; /* } */ $s = 1; continue; case 2: _tmp$4 = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); _tmp$5 = false; Method.copy(m, _tmp$4); ok = _tmp$5; $s = -1; return [m, ok]; /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.MethodByName }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.i = i; $f.m = m; $f.name$1 = name$1; $f.ok = ok; $f.p = p; $f.pname = pname; $f.t = t; $f.tt = tt; $f.ut = ut; $f.utmethods = utmethods; $f.$s = $s; $f.$r = $r; return $f; }; rtype.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); }; rtype.ptr.prototype.PkgPath = function() { var t, ut; t = this; if (((t.tflag & 4) >>> 0) === 0) { return ""; } ut = t.uncommon(); if (ut === ptrType$5.nil) { return ""; } return $clone(t.nameOff(ut.pkgPath), name).name(); }; rtype.prototype.PkgPath = function() { return this.$val.PkgPath(); }; rtype.ptr.prototype.Name = function() { var i, s, t; t = this; if (((t.tflag & 4) >>> 0) === 0) { return ""; } s = t.String(); i = s.length - 1 >> 0; while (true) { if (!(i >= 0)) { break; } if (s.charCodeAt(i) === 46) { break; } i = i - (1) >> 0; } return $substring(s, (i + 1 >> 0)); }; rtype.prototype.Name = function() { return this.$val.Name(); }; rtype.ptr.prototype.ChanDir = function() { var t, tt; t = this; if (!((t.Kind() === 18))) { $panic(new $String("reflect: ChanDir of non-chan type")); } tt = (t.kindType); return ((tt.dir >> 0)); }; rtype.prototype.ChanDir = function() { return this.$val.ChanDir(); }; rtype.ptr.prototype.IsVariadic = function() { var t, tt; t = this; if (!((t.Kind() === 19))) { $panic(new $String("reflect: IsVariadic of non-func type")); } tt = (t.kindType); return !((((tt.outCount & 32768) >>> 0) === 0)); }; rtype.prototype.IsVariadic = function() { return this.$val.IsVariadic(); }; rtype.ptr.prototype.Elem = function() { var _1, t, tt, tt$1, tt$2, tt$3, tt$4; t = this; _1 = t.Kind(); if (_1 === (17)) { tt = (t.kindType); return toType(tt.elem); } else if (_1 === (18)) { tt$1 = (t.kindType); return toType(tt$1.elem); } else if (_1 === (21)) { tt$2 = (t.kindType); return toType(tt$2.elem); } else if (_1 === (22)) { tt$3 = (t.kindType); return toType(tt$3.elem); } else if (_1 === (23)) { tt$4 = (t.kindType); return toType(tt$4.elem); } $panic(new $String("reflect: Elem of invalid type")); }; rtype.prototype.Elem = function() { return this.$val.Elem(); }; rtype.ptr.prototype.Field = function(i) { var i, t, tt; t = this; if (!((t.Kind() === 25))) { $panic(new $String("reflect: Field of non-struct type")); } tt = (t.kindType); return tt.Field(i); }; rtype.prototype.Field = function(i) { return this.$val.Field(i); }; rtype.ptr.prototype.FieldByIndex = function(index) { var _r, index, t, tt, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; index = $f.index; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; if (!((t.Kind() === 25))) { $panic(new $String("reflect: FieldByIndex of non-struct type")); } tt = (t.kindType); _r = tt.FieldByIndex(index); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.FieldByIndex }; } $f._r = _r; $f.index = index; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; }; rtype.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); }; rtype.ptr.prototype.FieldByName = function(name$1) { var _r, name$1, t, tt, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; name$1 = $f.name$1; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; if (!((t.Kind() === 25))) { $panic(new $String("reflect: FieldByName of non-struct type")); } tt = (t.kindType); _r = tt.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.FieldByName }; } $f._r = _r; $f.name$1 = name$1; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; }; rtype.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); }; rtype.ptr.prototype.FieldByNameFunc = function(match) { var _r, match, t, tt, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; match = $f.match; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; if (!((t.Kind() === 25))) { $panic(new $String("reflect: FieldByNameFunc of non-struct type")); } tt = (t.kindType); _r = tt.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.FieldByNameFunc }; } $f._r = _r; $f.match = match; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; }; rtype.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); }; rtype.ptr.prototype.In = function(i) { var i, t, tt, x; t = this; if (!((t.Kind() === 19))) { $panic(new $String("reflect: In of non-func type")); } tt = (t.kindType); return toType((x = tt.in$(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); }; rtype.prototype.In = function(i) { return this.$val.In(i); }; rtype.ptr.prototype.Key = function() { var t, tt; t = this; if (!((t.Kind() === 21))) { $panic(new $String("reflect: Key of non-map type")); } tt = (t.kindType); return toType(tt.key); }; rtype.prototype.Key = function() { return this.$val.Key(); }; rtype.ptr.prototype.Len = function() { var t, tt; t = this; if (!((t.Kind() === 17))) { $panic(new $String("reflect: Len of non-array type")); } tt = (t.kindType); return ((tt.len >> 0)); }; rtype.prototype.Len = function() { return this.$val.Len(); }; rtype.ptr.prototype.NumField = function() { var t, tt; t = this; if (!((t.Kind() === 25))) { $panic(new $String("reflect: NumField of non-struct type")); } tt = (t.kindType); return tt.fields.$length; }; rtype.prototype.NumField = function() { return this.$val.NumField(); }; rtype.ptr.prototype.NumIn = function() { var t, tt; t = this; if (!((t.Kind() === 19))) { $panic(new $String("reflect: NumIn of non-func type")); } tt = (t.kindType); return ((tt.inCount >> 0)); }; rtype.prototype.NumIn = function() { return this.$val.NumIn(); }; rtype.ptr.prototype.NumOut = function() { var t, tt; t = this; if (!((t.Kind() === 19))) { $panic(new $String("reflect: NumOut of non-func type")); } tt = (t.kindType); return tt.out().$length; }; rtype.prototype.NumOut = function() { return this.$val.NumOut(); }; rtype.ptr.prototype.Out = function(i) { var i, t, tt, x; t = this; if (!((t.Kind() === 19))) { $panic(new $String("reflect: Out of non-func type")); } tt = (t.kindType); return toType((x = tt.out(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); }; rtype.prototype.Out = function(i) { return this.$val.Out(i); }; ChanDir.prototype.String = function() { var _1, d; d = this.$val; _1 = d; if (_1 === (2)) { return "chan<-"; } else if (_1 === (1)) { return "<-chan"; } else if (_1 === (3)) { return "chan"; } return "ChanDir" + strconv.Itoa(((d >> 0))); }; $ptrType(ChanDir).prototype.String = function() { return new ChanDir(this.$get()).String(); }; interfaceType.ptr.prototype.Method = function(i) { var i, m, p, pname, t, x; m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); t = this; if (i < 0 || i >= t.methods.$length) { return m; } p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); pname = $clone(t.rtype.nameOff(p.name), name); m.Name = $clone(pname, name).name(); if (!$clone(pname, name).isExported()) { m.PkgPath = $clone(pname, name).pkgPath(); if (m.PkgPath === "") { m.PkgPath = $clone(t.pkgPath, name).name(); } } m.Type = toType(t.rtype.typeOff(p.typ)); m.Index = i; return m; }; interfaceType.prototype.Method = function(i) { return this.$val.Method(i); }; interfaceType.ptr.prototype.NumMethod = function() { var t; t = this; return t.methods.$length; }; interfaceType.prototype.NumMethod = function() { return this.$val.NumMethod(); }; interfaceType.ptr.prototype.MethodByName = function(name$1) { var _i, _ref, _tmp, _tmp$1, i, m, name$1, ok, p, t, x; m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); ok = false; t = this; if (t === ptrType$7.nil) { return [m, ok]; } p = ptrType$8.nil; _ref = t.methods; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); if ($clone(t.rtype.nameOff(p.name), name).name() === name$1) { _tmp = $clone(t.Method(i), Method); _tmp$1 = true; Method.copy(m, _tmp); ok = _tmp$1; return [m, ok]; } _i++; } return [m, ok]; }; interfaceType.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); }; StructTag.prototype.Get = function(key) { var _tuple, key, tag, v; tag = this.$val; _tuple = new StructTag(tag).Lookup(key); v = _tuple[0]; return v; }; $ptrType(StructTag).prototype.Get = function(key) { return new StructTag(this.$get()).Get(key); }; StructTag.prototype.Lookup = function(key) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, i, key, name$1, ok, qvalue, tag, value, value$1; value = ""; ok = false; tag = this.$val; while (true) { if (!(!(tag === ""))) { break; } i = 0; while (true) { if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { break; } i = i + (1) >> 0; } tag = $substring(tag, i); if (tag === "") { break; } i = 0; while (true) { if (!(i < tag.length && tag.charCodeAt(i) > 32 && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)) && !((tag.charCodeAt(i) === 127)))) { break; } i = i + (1) >> 0; } if ((i === 0) || (i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) { break; } name$1 = ($substring(tag, 0, i)); tag = $substring(tag, (i + 1 >> 0)); i = 1; while (true) { if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { break; } if (tag.charCodeAt(i) === 92) { i = i + (1) >> 0; } i = i + (1) >> 0; } if (i >= tag.length) { break; } qvalue = ($substring(tag, 0, (i + 1 >> 0))); tag = $substring(tag, (i + 1 >> 0)); if (key === name$1) { _tuple = strconv.Unquote(qvalue); value$1 = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { break; } _tmp = value$1; _tmp$1 = true; value = _tmp; ok = _tmp$1; return [value, ok]; } } _tmp$2 = ""; _tmp$3 = false; value = _tmp$2; ok = _tmp$3; return [value, ok]; }; $ptrType(StructTag).prototype.Lookup = function(key) { return new StructTag(this.$get()).Lookup(key); }; structType.ptr.prototype.Field = function(i) { var f, i, p, t, tag, x; f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); t = this; if (i < 0 || i >= t.fields.$length) { $panic(new $String("reflect: Field index out of bounds")); } p = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); f.Type = toType(p.typ); f.Name = $clone(p.name, name).name(); f.Anonymous = p.anon(); if (!$clone(p.name, name).isExported()) { f.PkgPath = $clone(p.name, name).pkgPath(); if (f.PkgPath === "") { f.PkgPath = $clone(t.pkgPath, name).name(); } } tag = $clone(p.name, name).tag(); if (!(tag === "")) { f.Tag = (tag); } f.Offset = p.offset(); f.Index = new sliceType$13([i]); return f; }; structType.prototype.Field = function(i) { return this.$val.Field(i); }; structType.ptr.prototype.FieldByIndex = function(index) { var _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, f, ft, i, index, t, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; _v = $f._v; f = $f.f; ft = $f.ft; i = $f.i; index = $f.index; t = $f.t; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); t = this; f.Type = toType(t.rtype); _ref = index; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } i = _i; x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); /* */ if (i > 0) { $s = 3; continue; } /* */ $s = 4; continue; /* if (i > 0) { */ case 3: ft = f.Type; _r = ft.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } if (!(_r === 22)) { _v = false; $s = 7; continue s; } _r$1 = ft.Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = _r$1.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _v = _r$2 === 25; case 7: /* */ if (_v) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_v) { */ case 5: _r$3 = ft.Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } ft = _r$3; /* } */ case 6: f.Type = ft; /* } */ case 4: _r$4 = f.Type.Field(x); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } StructField.copy(f, _r$4); _i++; /* } */ $s = 1; continue; case 2: $s = -1; return f; /* */ } return; } if ($f === undefined) { $f = { $blk: structType.ptr.prototype.FieldByIndex }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f._v = _v; $f.f = f; $f.ft = ft; $f.i = i; $f.index = index; $f.t = t; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; structType.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); }; structType.ptr.prototype.FieldByNameFunc = function(match) { var _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _i = $f._i; _i$1 = $f._i$1; _key = $f._key; _key$1 = $f._key$1; _key$2 = $f._key$2; _key$3 = $f._key$3; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; count = $f.count; current = $f.current; f = $f.f; fname = $f.fname; i = $f.i; index = $f.index; match = $f.match; next = $f.next; nextCount = $f.nextCount; ntyp = $f.ntyp; ok = $f.ok; result = $f.result; scan = $f.scan; styp = $f.styp; t = $f.t; t$1 = $f.t$1; visited = $f.visited; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: result = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); ok = false; t = this; current = new sliceType$14([]); next = new sliceType$14([new fieldScan.ptr(t, sliceType$13.nil)]); nextCount = false; visited = $makeMap(ptrType$9.keyFor, []); /* while (true) { */ case 1: /* if (!(next.$length > 0)) { break; } */ if(!(next.$length > 0)) { $s = 2; continue; } _tmp = next; _tmp$1 = $subslice(current, 0, 0); current = _tmp; next = _tmp$1; count = nextCount; nextCount = false; _ref = current; _i = 0; /* while (true) { */ case 3: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } scan = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), fieldScan); t$1 = scan.typ; /* */ if ((_entry = visited[ptrType$9.keyFor(t$1)], _entry !== undefined ? _entry.v : false)) { $s = 5; continue; } /* */ $s = 6; continue; /* if ((_entry = visited[ptrType$9.keyFor(t$1)], _entry !== undefined ? _entry.v : false)) { */ case 5: _i++; /* continue; */ $s = 3; continue; /* } */ case 6: _key = t$1; (visited || $throwRuntimeError("assignment to entry in nil map"))[ptrType$9.keyFor(_key)] = { k: _key, v: true }; _ref$1 = t$1.fields; _i$1 = 0; /* while (true) { */ case 7: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } i = _i$1; f = (x = t$1.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); fname = $clone(f.name, name).name(); ntyp = ptrType$1.nil; /* */ if (f.anon()) { $s = 9; continue; } /* */ $s = 10; continue; /* if (f.anon()) { */ case 9: ntyp = f.typ; /* */ if (ntyp.Kind() === 22) { $s = 11; continue; } /* */ $s = 12; continue; /* if (ntyp.Kind() === 22) { */ case 11: _r = ntyp.Elem().common(); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } ntyp = _r; /* } */ case 12: /* } */ case 10: _r$1 = match(fname); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 14; continue; } /* */ $s = 15; continue; /* if (_r$1) { */ case 14: if ((_entry$1 = count[ptrType$9.keyFor(t$1)], _entry$1 !== undefined ? _entry$1.v : 0) > 1 || ok) { _tmp$2 = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); _tmp$3 = false; StructField.copy(result, _tmp$2); ok = _tmp$3; $s = -1; return [result, ok]; } StructField.copy(result, t$1.Field(i)); result.Index = sliceType$13.nil; result.Index = $appendSlice(result.Index, scan.index); result.Index = $append(result.Index, i); ok = true; _i$1++; /* continue; */ $s = 7; continue; /* } */ case 15: if (ok || ntyp === ptrType$1.nil || !((ntyp.Kind() === 25))) { _i$1++; /* continue; */ $s = 7; continue; } styp = (ntyp.kindType); if ((_entry$2 = nextCount[ptrType$9.keyFor(styp)], _entry$2 !== undefined ? _entry$2.v : 0) > 0) { _key$1 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$9.keyFor(_key$1)] = { k: _key$1, v: 2 }; _i$1++; /* continue; */ $s = 7; continue; } if (nextCount === false) { nextCount = $makeMap(ptrType$9.keyFor, []); } _key$2 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$9.keyFor(_key$2)] = { k: _key$2, v: 1 }; if ((_entry$3 = count[ptrType$9.keyFor(t$1)], _entry$3 !== undefined ? _entry$3.v : 0) > 1) { _key$3 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$9.keyFor(_key$3)] = { k: _key$3, v: 2 }; } index = sliceType$13.nil; index = $appendSlice(index, scan.index); index = $append(index, i); next = $append(next, new fieldScan.ptr(styp, index)); _i$1++; /* } */ $s = 7; continue; case 8: _i++; /* } */ $s = 3; continue; case 4: if (ok) { /* break; */ $s = 2; continue; } /* } */ $s = 1; continue; case 2: $s = -1; return [result, ok]; /* */ } return; } if ($f === undefined) { $f = { $blk: structType.ptr.prototype.FieldByNameFunc }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._i = _i; $f._i$1 = _i$1; $f._key = _key; $f._key$1 = _key$1; $f._key$2 = _key$2; $f._key$3 = _key$3; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.count = count; $f.current = current; $f.f = f; $f.fname = fname; $f.i = i; $f.index = index; $f.match = match; $f.next = next; $f.nextCount = nextCount; $f.ntyp = ntyp; $f.ok = ok; $f.result = result; $f.scan = scan; $f.styp = styp; $f.t = t; $f.t$1 = t$1; $f.visited = visited; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; structType.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); }; structType.ptr.prototype.FieldByName = function(name$1) { var _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasAnon, i, name$1, present, t, tf, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; f = $f.f; hasAnon = $f.hasAnon; i = $f.i; name$1 = $f.name$1; present = $f.present; t = $f.t; tf = $f.tf; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: name$1 = [name$1]; f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); present = false; t = this; hasAnon = false; if (!(name$1[0] === "")) { _ref = t.fields; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; tf = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); if ($clone(tf.name, name).name() === name$1[0]) { _tmp = $clone(t.Field(i), StructField); _tmp$1 = true; StructField.copy(f, _tmp); present = _tmp$1; $s = -1; return [f, present]; } if (tf.anon()) { hasAnon = true; } _i++; } } if (!hasAnon) { $s = -1; return [f, present]; } _r = t.FieldByNameFunc((function(name$1) { return function(s) { var s; return s === name$1[0]; }; })(name$1)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; StructField.copy(f, _tuple[0]); present = _tuple[1]; $s = -1; return [f, present]; /* */ } return; } if ($f === undefined) { $f = { $blk: structType.ptr.prototype.FieldByName }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.f = f; $f.hasAnon = hasAnon; $f.i = i; $f.name$1 = name$1; $f.present = present; $f.t = t; $f.tf = tf; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; structType.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); }; PtrTo = function(t) { var t; return $assertType(t, ptrType$1).ptrTo(); }; $pkg.PtrTo = PtrTo; rtype.ptr.prototype.Implements = function(u) { var _r, t, u, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; u = $f.u; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; if ($interfaceIsEqual(u, $ifaceNil)) { $panic(new $String("reflect: nil type passed to Type.Implements")); } _r = u.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!((_r === 20))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((_r === 20))) { */ case 1: $panic(new $String("reflect: non-interface type passed to Type.Implements")); /* } */ case 2: $s = -1; return implements$1($assertType(u, ptrType$1), t); /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.Implements }; } $f._r = _r; $f.t = t; $f.u = u; $f.$s = $s; $f.$r = $r; return $f; }; rtype.prototype.Implements = function(u) { return this.$val.Implements(u); }; rtype.ptr.prototype.AssignableTo = function(u) { var _r, t, u, uu, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; u = $f.u; uu = $f.uu; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; if ($interfaceIsEqual(u, $ifaceNil)) { $panic(new $String("reflect: nil type passed to Type.AssignableTo")); } uu = $assertType(u, ptrType$1); _r = directlyAssignable(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r || implements$1(uu, t); /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.AssignableTo }; } $f._r = _r; $f.t = t; $f.u = u; $f.uu = uu; $f.$s = $s; $f.$r = $r; return $f; }; rtype.prototype.AssignableTo = function(u) { return this.$val.AssignableTo(u); }; rtype.ptr.prototype.ConvertibleTo = function(u) { var _r, t, u, uu, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; u = $f.u; uu = $f.uu; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: t = this; if ($interfaceIsEqual(u, $ifaceNil)) { $panic(new $String("reflect: nil type passed to Type.ConvertibleTo")); } uu = $assertType(u, ptrType$1); _r = convertOp(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return !(_r === $throwNilPointerError); /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.ConvertibleTo }; } $f._r = _r; $f.t = t; $f.u = u; $f.uu = uu; $f.$s = $s; $f.$r = $r; return $f; }; rtype.prototype.ConvertibleTo = function(u) { return this.$val.ConvertibleTo(u); }; implements$1 = function(T, V) { var T, V, i, i$1, j, j$1, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2; if (!((T.Kind() === 20))) { return false; } t = (T.kindType); if (t.methods.$length === 0) { return true; } if (V.Kind() === 20) { v = (V.kindType); i = 0; j = 0; while (true) { if (!(j < v.methods.$length)) { break; } tm = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); tmName = $clone(t.rtype.nameOff(tm.name), name); vm = (x$1 = v.methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])); vmName = $clone(V.nameOff(vm.name), name); if ($clone(vmName, name).name() === $clone(tmName, name).name() && V.typeOff(vm.typ) === t.rtype.typeOff(tm.typ)) { if (!$clone(tmName, name).isExported()) { tmPkgPath = $clone(tmName, name).pkgPath(); if (tmPkgPath === "") { tmPkgPath = $clone(t.pkgPath, name).name(); } vmPkgPath = $clone(vmName, name).pkgPath(); if (vmPkgPath === "") { vmPkgPath = $clone(v.pkgPath, name).name(); } if (!(tmPkgPath === vmPkgPath)) { j = j + (1) >> 0; continue; } } i = i + (1) >> 0; if (i >= t.methods.$length) { return true; } } j = j + (1) >> 0; } return false; } v$1 = V.uncommon(); if (v$1 === ptrType$5.nil) { return false; } i$1 = 0; vmethods = v$1.methods(); j$1 = 0; while (true) { if (!(j$1 < ((v$1.mcount >> 0)))) { break; } tm$1 = (x$2 = t.methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); tmName$1 = $clone(t.rtype.nameOff(tm$1.name), name); vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), method); vmName$1 = $clone(V.nameOff(vm$1.name), name); if ($clone(vmName$1, name).name() === $clone(tmName$1, name).name() && V.typeOff(vm$1.mtyp) === t.rtype.typeOff(tm$1.typ)) { if (!$clone(tmName$1, name).isExported()) { tmPkgPath$1 = $clone(tmName$1, name).pkgPath(); if (tmPkgPath$1 === "") { tmPkgPath$1 = $clone(t.pkgPath, name).name(); } vmPkgPath$1 = $clone(vmName$1, name).pkgPath(); if (vmPkgPath$1 === "") { vmPkgPath$1 = $clone(V.nameOff(v$1.pkgPath), name).name(); } if (!(tmPkgPath$1 === vmPkgPath$1)) { j$1 = j$1 + (1) >> 0; continue; } } i$1 = i$1 + (1) >> 0; if (i$1 >= t.methods.$length) { return true; } } j$1 = j$1 + (1) >> 0; } return false; }; directlyAssignable = function(T, V) { var T, V, _r, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; T = $f.T; V = $f.V; _r = $f._r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: if (T === V) { $s = -1; return true; } if (!(T.Name() === "") && !(V.Name() === "") || !((T.Kind() === V.Kind()))) { $s = -1; return false; } _r = haveIdenticalUnderlyingType(T, V, true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: directlyAssignable }; } $f.T = T; $f.V = V; $f._r = _r; $f.$s = $s; $f.$r = $r; return $f; }; haveIdenticalType = function(T, V, cmpTags) { var T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, cmpTags, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; T = $f.T; V = $f.V; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _v = $f._v; cmpTags = $f.cmpTags; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: if (cmpTags) { $s = -1; return $interfaceIsEqual(T, V); } _r = T.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = V.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } if (!(_r === _r$1)) { _v = true; $s = 3; continue s; } _r$2 = T.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$3 = V.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _v = !((_r$2 === _r$3)); case 3: /* */ if (_v) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_v) { */ case 1: $s = -1; return false; /* } */ case 2: _r$4 = T.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg = _r$4; _r$5 = V.common(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$1 = _r$5; _r$6 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* */ } return; } if ($f === undefined) { $f = { $blk: haveIdenticalType }; } $f.T = T; $f.V = V; $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._v = _v; $f.cmpTags = cmpTags; $f.$s = $s; $f.$r = $r; return $f; }; haveIdenticalUnderlyingType = function(T, V, cmpTags) { var T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _v, _v$1, _v$2, _v$3, cmpTags, i, i$1, i$2, kind, t, t$1, t$2, tf, tp, v, v$1, v$2, vf, vp, x, x$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; T = $f.T; V = $f.V; _1 = $f._1; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _ref = $f._ref; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; _v$3 = $f._v$3; cmpTags = $f.cmpTags; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; kind = $f.kind; t = $f.t; t$1 = $f.t$1; t$2 = $f.t$2; tf = $f.tf; tp = $f.tp; v = $f.v; v$1 = $f.v$1; v$2 = $f.v$2; vf = $f.vf; vp = $f.vp; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: if (T === V) { $s = -1; return true; } kind = T.Kind(); if (!((kind === V.Kind()))) { $s = -1; return false; } if (1 <= kind && kind <= 16 || (kind === 24) || (kind === 26)) { $s = -1; return true; } _1 = kind; /* */ if (_1 === (17)) { $s = 2; continue; } /* */ if (_1 === (18)) { $s = 3; continue; } /* */ if (_1 === (19)) { $s = 4; continue; } /* */ if (_1 === (20)) { $s = 5; continue; } /* */ if (_1 === (21)) { $s = 6; continue; } /* */ if ((_1 === (22)) || (_1 === (23))) { $s = 7; continue; } /* */ if (_1 === (25)) { $s = 8; continue; } /* */ $s = 9; continue; /* if (_1 === (17)) { */ case 2: if (!(T.Len() === V.Len())) { _v = false; $s = 10; continue s; } _r = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v = _r; case 10: $s = -1; return _v; /* } else if (_1 === (18)) { */ case 3: if (!(V.ChanDir() === 3)) { _v$1 = false; $s = 14; continue s; } _r$1 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _v$1 = _r$1; case 14: /* */ if (_v$1) { $s = 12; continue; } /* */ $s = 13; continue; /* if (_v$1) { */ case 12: $s = -1; return true; /* } */ case 13: if (!(V.ChanDir() === T.ChanDir())) { _v$2 = false; $s = 16; continue s; } _r$2 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _v$2 = _r$2; case 16: $s = -1; return _v$2; /* } else if (_1 === (19)) { */ case 4: t = (T.kindType); v = (V.kindType); if (!((t.outCount === v.outCount)) || !((t.inCount === v.inCount))) { $s = -1; return false; } i = 0; /* while (true) { */ case 18: /* if (!(i < t.rtype.NumIn())) { break; } */ if(!(i < t.rtype.NumIn())) { $s = 19; continue; } _r$3 = haveIdenticalType(t.rtype.In(i), v.rtype.In(i), cmpTags); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (!_r$3) { $s = 20; continue; } /* */ $s = 21; continue; /* if (!_r$3) { */ case 20: $s = -1; return false; /* } */ case 21: i = i + (1) >> 0; /* } */ $s = 18; continue; case 19: i$1 = 0; /* while (true) { */ case 23: /* if (!(i$1 < t.rtype.NumOut())) { break; } */ if(!(i$1 < t.rtype.NumOut())) { $s = 24; continue; } _r$4 = haveIdenticalType(t.rtype.Out(i$1), v.rtype.Out(i$1), cmpTags); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } /* */ if (!_r$4) { $s = 25; continue; } /* */ $s = 26; continue; /* if (!_r$4) { */ case 25: $s = -1; return false; /* } */ case 26: i$1 = i$1 + (1) >> 0; /* } */ $s = 23; continue; case 24: $s = -1; return true; /* } else if (_1 === (20)) { */ case 5: t$1 = (T.kindType); v$1 = (V.kindType); if ((t$1.methods.$length === 0) && (v$1.methods.$length === 0)) { $s = -1; return true; } $s = -1; return false; /* } else if (_1 === (21)) { */ case 6: _r$5 = haveIdenticalType(T.Key(), V.Key(), cmpTags); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } if (!(_r$5)) { _v$3 = false; $s = 28; continue s; } _r$6 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _v$3 = _r$6; case 28: $s = -1; return _v$3; /* } else if ((_1 === (22)) || (_1 === (23))) { */ case 7: _r$7 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $s = -1; return _r$7; /* } else if (_1 === (25)) { */ case 8: t$2 = (T.kindType); v$2 = (V.kindType); if (!((t$2.fields.$length === v$2.fields.$length))) { $s = -1; return false; } _ref = t$2.fields; _i = 0; /* while (true) { */ case 32: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 33; continue; } i$2 = _i; tf = (x = t$2.fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$2])); vf = (x$1 = v$2.fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$2])); if (!($clone(tf.name, name).name() === $clone(vf.name, name).name())) { $s = -1; return false; } _r$8 = haveIdenticalType(tf.typ, vf.typ, cmpTags); /* */ $s = 36; case 36: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } /* */ if (!_r$8) { $s = 34; continue; } /* */ $s = 35; continue; /* if (!_r$8) { */ case 34: $s = -1; return false; /* } */ case 35: if (cmpTags && !($clone(tf.name, name).tag() === $clone(vf.name, name).tag())) { $s = -1; return false; } if (!((tf.offsetAnon === vf.offsetAnon))) { $s = -1; return false; } if (!$clone(tf.name, name).isExported()) { tp = $clone(tf.name, name).pkgPath(); if (tp === "") { tp = $clone(t$2.pkgPath, name).name(); } vp = $clone(vf.name, name).pkgPath(); if (vp === "") { vp = $clone(v$2.pkgPath, name).name(); } if (!(tp === vp)) { $s = -1; return false; } } _i++; /* } */ $s = 32; continue; case 33: $s = -1; return true; /* } */ case 9: case 1: $s = -1; return false; /* */ } return; } if ($f === undefined) { $f = { $blk: haveIdenticalUnderlyingType }; } $f.T = T; $f.V = V; $f._1 = _1; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._ref = _ref; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f._v$3 = _v$3; $f.cmpTags = cmpTags; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.kind = kind; $f.t = t; $f.t$1 = t$1; $f.t$2 = t$2; $f.tf = tf; $f.tp = tp; $f.v = v; $f.v$1 = v$1; $f.v$2 = v$2; $f.vf = vf; $f.vp = vp; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; }; toType = function(t) { var t; if (t === ptrType$1.nil) { return $ifaceNil; } return t; }; ifaceIndir = function(t) { var t; return ((t.kind & 32) >>> 0) === 0; }; flag.prototype.kind = function() { var f; f = this.$val; return ((((f & 31) >>> 0) >>> 0)); }; $ptrType(flag).prototype.kind = function() { return new flag(this.$get()).kind(); }; Value.ptr.prototype.pointer = function() { var v; v = this; if (!((v.typ.size === 4)) || !v.typ.pointers()) { $panic(new $String("can't call pointer on a non-pointer Value")); } if (!((((v.flag & 128) >>> 0) === 0))) { return (v.ptr).$get(); } return v.ptr; }; Value.prototype.pointer = function() { return this.$val.pointer(); }; ValueError.ptr.prototype.Error = function() { var e; e = this; if (e.Kind === 0) { return "reflect: call of " + e.Method + " on zero Value"; } return "reflect: call of " + e.Method + " on " + new Kind(e.Kind).String() + " Value"; }; ValueError.prototype.Error = function() { return this.$val.Error(); }; flag.prototype.mustBe = function(expected) { var expected, f; f = this.$val; if (!((new flag(f).kind() === expected))) { $panic(new ValueError.ptr(methodName(), new flag(f).kind())); } }; $ptrType(flag).prototype.mustBe = function(expected) { return new flag(this.$get()).mustBe(expected); }; flag.prototype.mustBeExported = function() { var f; f = this.$val; if (f === 0) { $panic(new ValueError.ptr(methodName(), 0)); } if (!((((f & 96) >>> 0) === 0))) { $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); } }; $ptrType(flag).prototype.mustBeExported = function() { return new flag(this.$get()).mustBeExported(); }; flag.prototype.mustBeAssignable = function() { var f; f = this.$val; if (f === 0) { $panic(new ValueError.ptr(methodName(), 0)); } if (!((((f & 96) >>> 0) === 0))) { $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); } if (((f & 256) >>> 0) === 0) { $panic(new $String("reflect: " + methodName() + " using unaddressable value")); } }; $ptrType(flag).prototype.mustBeAssignable = function() { return new flag(this.$get()).mustBeAssignable(); }; Value.ptr.prototype.Addr = function() { var v; v = this; if (((v.flag & 256) >>> 0) === 0) { $panic(new $String("reflect.Value.Addr of unaddressable value")); } return new Value.ptr(v.typ.ptrTo(), v.ptr, ((((v.flag & 96) >>> 0)) | 22) >>> 0); }; Value.prototype.Addr = function() { return this.$val.Addr(); }; Value.ptr.prototype.Bool = function() { var v; v = this; new flag(v.flag).mustBe(1); return (v.ptr).$get(); }; Value.prototype.Bool = function() { return this.$val.Bool(); }; Value.ptr.prototype.Bytes = function() { var _r, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(23); _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!((_r === 8))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((_r === 8))) { */ case 1: $panic(new $String("reflect.Value.Bytes of non-byte slice")); /* } */ case 2: $s = -1; return (v.ptr).$get(); /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Bytes }; } $f._r = _r; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.Bytes = function() { return this.$val.Bytes(); }; Value.ptr.prototype.runes = function() { var _r, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(23); _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!((_r === 5))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((_r === 5))) { */ case 1: $panic(new $String("reflect.Value.Bytes of non-rune slice")); /* } */ case 2: $s = -1; return (v.ptr).$get(); /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.runes }; } $f._r = _r; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.runes = function() { return this.$val.runes(); }; Value.ptr.prototype.CanAddr = function() { var v; v = this; return !((((v.flag & 256) >>> 0) === 0)); }; Value.prototype.CanAddr = function() { return this.$val.CanAddr(); }; Value.ptr.prototype.CanSet = function() { var v; v = this; return ((v.flag & 352) >>> 0) === 256; }; Value.prototype.CanSet = function() { return this.$val.CanSet(); }; Value.ptr.prototype.Call = function(in$1) { var _r, in$1, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; in$1 = $f.in$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(19); new flag(v.flag).mustBeExported(); _r = $clone(v, Value).call("Call", in$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Call }; } $f._r = _r; $f.in$1 = in$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.Call = function(in$1) { return this.$val.Call(in$1); }; Value.ptr.prototype.CallSlice = function(in$1) { var _r, in$1, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; in$1 = $f.in$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(19); new flag(v.flag).mustBeExported(); _r = $clone(v, Value).call("CallSlice", in$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.CallSlice }; } $f._r = _r; $f.in$1 = in$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.CallSlice = function(in$1) { return this.$val.CallSlice(in$1); }; Value.ptr.prototype.Complex = function() { var _1, k, v, x; v = this; k = new flag(v.flag).kind(); _1 = k; if (_1 === (15)) { return ((x = (v.ptr).$get(), new $Complex128(x.$real, x.$imag))); } else if (_1 === (16)) { return (v.ptr).$get(); } $panic(new ValueError.ptr("reflect.Value.Complex", new flag(v.flag).kind())); }; Value.prototype.Complex = function() { return this.$val.Complex(); }; Value.ptr.prototype.FieldByIndex = function(index) { var _i, _r, _r$1, _r$2, _r$3, _ref, _v, i, index, v, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _ref = $f._ref; _v = $f._v; i = $f.i; index = $f.index; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; /* */ if (index.$length === 1) { $s = 1; continue; } /* */ $s = 2; continue; /* if (index.$length === 1) { */ case 1: _r = $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* } */ case 2: new flag(v.flag).mustBe(25); _ref = index; _i = 0; /* while (true) { */ case 4: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } i = _i; x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); /* */ if (i > 0) { $s = 6; continue; } /* */ $s = 7; continue; /* if (i > 0) { */ case 6: if (!($clone(v, Value).Kind() === 22)) { _v = false; $s = 10; continue s; } _r$1 = v.typ.Elem().Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _v = _r$1 === 25; case 10: /* */ if (_v) { $s = 8; continue; } /* */ $s = 9; continue; /* if (_v) { */ case 8: if ($clone(v, Value).IsNil()) { $panic(new $String("reflect: indirection through nil pointer to embedded struct")); } _r$2 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } v = _r$2; /* } */ case 9: /* } */ case 7: _r$3 = $clone(v, Value).Field(x); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } v = _r$3; _i++; /* } */ $s = 4; continue; case 5: $s = -1; return v; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.FieldByIndex }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._ref = _ref; $f._v = _v; $f.i = i; $f.index = index; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); }; Value.ptr.prototype.FieldByName = function(name$1) { var _r, _r$1, _tuple, f, name$1, ok, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; f = $f.f; name$1 = $f.name$1; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(25); _r = v.typ.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = $clone(_tuple[0], StructField); ok = _tuple[1]; /* */ if (ok) { $s = 2; continue; } /* */ $s = 3; continue; /* if (ok) { */ case 2: _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 3: $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.FieldByName }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.f = f; $f.name$1 = name$1; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); }; Value.ptr.prototype.FieldByNameFunc = function(match) { var _r, _r$1, _tuple, f, match, ok, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; f = $f.f; match = $f.match; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; _r = v.typ.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = $clone(_tuple[0], StructField); ok = _tuple[1]; /* */ if (ok) { $s = 2; continue; } /* */ $s = 3; continue; /* if (ok) { */ case 2: _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 3: $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.FieldByNameFunc }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.f = f; $f.match = match; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); }; Value.ptr.prototype.Float = function() { var _1, k, v; v = this; k = new flag(v.flag).kind(); _1 = k; if (_1 === (13)) { return ((v.ptr).$get()); } else if (_1 === (14)) { return (v.ptr).$get(); } $panic(new ValueError.ptr("reflect.Value.Float", new flag(v.flag).kind())); }; Value.prototype.Float = function() { return this.$val.Float(); }; Value.ptr.prototype.Int = function() { var _1, k, p, v; v = this; k = new flag(v.flag).kind(); p = v.ptr; _1 = k; if (_1 === (2)) { return (new $Int64(0, (p).$get())); } else if (_1 === (3)) { return (new $Int64(0, (p).$get())); } else if (_1 === (4)) { return (new $Int64(0, (p).$get())); } else if (_1 === (5)) { return (new $Int64(0, (p).$get())); } else if (_1 === (6)) { return (p).$get(); } $panic(new ValueError.ptr("reflect.Value.Int", new flag(v.flag).kind())); }; Value.prototype.Int = function() { return this.$val.Int(); }; Value.ptr.prototype.CanInterface = function() { var v; v = this; if (v.flag === 0) { $panic(new ValueError.ptr("reflect.Value.CanInterface", 0)); } return ((v.flag & 96) >>> 0) === 0; }; Value.prototype.CanInterface = function() { return this.$val.CanInterface(); }; Value.ptr.prototype.Interface = function() { var _r, i, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = $ifaceNil; v = this; _r = valueInterface($clone(v, Value), true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } i = _r; $s = -1; return i; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Interface }; } $f._r = _r; $f.i = i; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.Interface = function() { return this.$val.Interface(); }; Value.ptr.prototype.IsValid = function() { var v; v = this; return !((v.flag === 0)); }; Value.prototype.IsValid = function() { return this.$val.IsValid(); }; Value.ptr.prototype.Kind = function() { var v; v = this; return new flag(v.flag).kind(); }; Value.prototype.Kind = function() { return this.$val.Kind(); }; Value.ptr.prototype.MapIndex = function(key) { var _r, c, e, fl, k, key, tt, typ, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; e = $f.e; fl = $f.fl; k = $f.k; key = $f.key; tt = $f.tt; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(21); tt = (v.typ.kindType); _r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.key, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } key = _r; k = 0; if (!((((key.flag & 128) >>> 0) === 0))) { k = key.ptr; } else { k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$15(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); } e = mapaccess(v.typ, $clone(v, Value).pointer(), k); if (e === 0) { $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); } typ = tt.elem; fl = ((((v.flag | key.flag) >>> 0)) & 96) >>> 0; fl = (fl | (((typ.Kind() >>> 0)))) >>> 0; if (ifaceIndir(typ)) { c = unsafe_New(typ); typedmemmove(typ, c, e); $s = -1; return new Value.ptr(typ, c, (fl | 128) >>> 0); } else { $s = -1; return new Value.ptr(typ, (e).$get(), fl); } $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.MapIndex }; } $f._r = _r; $f.c = c; $f.e = e; $f.fl = fl; $f.k = k; $f.key = key; $f.tt = tt; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.MapIndex = function(key) { return this.$val.MapIndex(key); }; Value.ptr.prototype.MapKeys = function() { var _r, a, c, fl, i, it, key, keyType, m, mlen, tt, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; c = $f.c; fl = $f.fl; i = $f.i; it = $f.it; key = $f.key; keyType = $f.keyType; m = $f.m; mlen = $f.mlen; tt = $f.tt; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(21); tt = (v.typ.kindType); keyType = tt.key; fl = (((v.flag & 96) >>> 0) | ((keyType.Kind() >>> 0))) >>> 0; m = $clone(v, Value).pointer(); mlen = 0; if (!(m === 0)) { mlen = maplen(m); } it = mapiterinit(v.typ, m); a = $makeSlice(sliceType$9, mlen); i = 0; i = 0; /* while (true) { */ case 1: /* if (!(i < a.$length)) { break; } */ if(!(i < a.$length)) { $s = 2; continue; } _r = mapiterkey(it); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } key = _r; if (key === 0) { /* break; */ $s = 2; continue; } if (ifaceIndir(keyType)) { c = unsafe_New(keyType); typedmemmove(keyType, c, key); ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = new Value.ptr(keyType, c, (fl | 128) >>> 0)); } else { ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = new Value.ptr(keyType, (key).$get(), fl)); } mapiternext(it); i = i + (1) >> 0; /* } */ $s = 1; continue; case 2: $s = -1; return $subslice(a, 0, i); /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.MapKeys }; } $f._r = _r; $f.a = a; $f.c = c; $f.fl = fl; $f.i = i; $f.it = it; $f.key = key; $f.keyType = keyType; $f.m = m; $f.mlen = mlen; $f.tt = tt; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.MapKeys = function() { return this.$val.MapKeys(); }; Value.ptr.prototype.Method = function(i) { var _r, _v, fl, i, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _v = $f._v; fl = $f.fl; i = $f.i; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; if (v.typ === ptrType$1.nil) { $panic(new ValueError.ptr("reflect.Value.Method", 0)); } if (!((((v.flag & 512) >>> 0) === 0))) { _v = true; $s = 3; continue s; } _r = v.typ.NumMethod(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v = ((i >>> 0)) >= ((_r >>> 0)); case 3: /* */ if (_v) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_v) { */ case 1: $panic(new $String("reflect: Method index out of range")); /* } */ case 2: if ((v.typ.Kind() === 20) && $clone(v, Value).IsNil()) { $panic(new $String("reflect: Method on nil interface value")); } fl = (v.flag & 160) >>> 0; fl = (fl | (19)) >>> 0; fl = (fl | ((((((i >>> 0)) << 10 >>> 0) | 512) >>> 0))) >>> 0; $s = -1; return new Value.ptr(v.typ, v.ptr, fl); /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Method }; } $f._r = _r; $f._v = _v; $f.fl = fl; $f.i = i; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.Method = function(i) { return this.$val.Method(i); }; Value.ptr.prototype.NumMethod = function() { var _r, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; if (v.typ === ptrType$1.nil) { $panic(new ValueError.ptr("reflect.Value.NumMethod", 0)); } if (!((((v.flag & 512) >>> 0) === 0))) { $s = -1; return 0; } _r = v.typ.NumMethod(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.NumMethod }; } $f._r = _r; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.NumMethod = function() { return this.$val.NumMethod(); }; Value.ptr.prototype.MethodByName = function(name$1) { var _r, _r$1, _tuple, m, name$1, ok, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; m = $f.m; name$1 = $f.name$1; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; if (v.typ === ptrType$1.nil) { $panic(new ValueError.ptr("reflect.Value.MethodByName", 0)); } if (!((((v.flag & 512) >>> 0) === 0))) { $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); } _r = v.typ.MethodByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; m = $clone(_tuple[0], Method); ok = _tuple[1]; if (!ok) { $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); } _r$1 = $clone(v, Value).Method(m.Index); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.MethodByName }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.m = m; $f.name$1 = name$1; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); }; Value.ptr.prototype.NumField = function() { var tt, v; v = this; new flag(v.flag).mustBe(25); tt = (v.typ.kindType); return tt.fields.$length; }; Value.prototype.NumField = function() { return this.$val.NumField(); }; Value.ptr.prototype.OverflowComplex = function(x) { var _1, k, v, x; v = this; k = new flag(v.flag).kind(); _1 = k; if (_1 === (15)) { return overflowFloat32(x.$real) || overflowFloat32(x.$imag); } else if (_1 === (16)) { return false; } $panic(new ValueError.ptr("reflect.Value.OverflowComplex", new flag(v.flag).kind())); }; Value.prototype.OverflowComplex = function(x) { return this.$val.OverflowComplex(x); }; Value.ptr.prototype.OverflowFloat = function(x) { var _1, k, v, x; v = this; k = new flag(v.flag).kind(); _1 = k; if (_1 === (13)) { return overflowFloat32(x); } else if (_1 === (14)) { return false; } $panic(new ValueError.ptr("reflect.Value.OverflowFloat", new flag(v.flag).kind())); }; Value.prototype.OverflowFloat = function(x) { return this.$val.OverflowFloat(x); }; overflowFloat32 = function(x) { var x; if (x < 0) { x = -x; } return 3.4028234663852886e+38 < x && x <= 1.7976931348623157e+308; }; Value.ptr.prototype.OverflowInt = function(x) { var _1, bitSize, k, trunc, v, x; v = this; k = new flag(v.flag).kind(); _1 = k; if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { bitSize = $imul(v.typ.size, 8) >>> 0; trunc = $shiftRightInt64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); return !((x.$high === trunc.$high && x.$low === trunc.$low)); } $panic(new ValueError.ptr("reflect.Value.OverflowInt", new flag(v.flag).kind())); }; Value.prototype.OverflowInt = function(x) { return this.$val.OverflowInt(x); }; Value.ptr.prototype.OverflowUint = function(x) { var _1, bitSize, k, trunc, v, x; v = this; k = new flag(v.flag).kind(); _1 = k; if ((_1 === (7)) || (_1 === (12)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11))) { bitSize = $imul(v.typ.size, 8) >>> 0; trunc = $shiftRightUint64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); return !((x.$high === trunc.$high && x.$low === trunc.$low)); } $panic(new ValueError.ptr("reflect.Value.OverflowUint", new flag(v.flag).kind())); }; Value.prototype.OverflowUint = function(x) { return this.$val.OverflowUint(x); }; Value.ptr.prototype.Recv = function() { var _r, _tuple, ok, v, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ok = $f.ok; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: x = new Value.ptr(ptrType$1.nil, 0, 0); ok = false; v = this; new flag(v.flag).mustBe(18); new flag(v.flag).mustBeExported(); _r = $clone(v, Value).recv(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; x = _tuple[0]; ok = _tuple[1]; $s = -1; return [x, ok]; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Recv }; } $f._r = _r; $f._tuple = _tuple; $f.ok = ok; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.Recv = function() { return this.$val.Recv(); }; Value.ptr.prototype.recv = function(nb) { var _r, _tuple, nb, ok, p, selected, t, tt, v, val, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; nb = $f.nb; ok = $f.ok; p = $f.p; selected = $f.selected; t = $f.t; tt = $f.tt; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: val = new Value.ptr(ptrType$1.nil, 0, 0); ok = false; v = this; tt = (v.typ.kindType); if ((((tt.dir >> 0)) & 1) === 0) { $panic(new $String("reflect: recv on send-only channel")); } t = tt.elem; val = new Value.ptr(t, 0, ((t.Kind() >>> 0))); p = 0; if (ifaceIndir(t)) { p = unsafe_New(t); val.ptr = p; val.flag = (val.flag | (128)) >>> 0; } else { p = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$15(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val)))); } _r = chanrecv($clone(v, Value).pointer(), nb, p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; selected = _tuple[0]; ok = _tuple[1]; if (!selected) { val = new Value.ptr(ptrType$1.nil, 0, 0); } $s = -1; return [val, ok]; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.recv }; } $f._r = _r; $f._tuple = _tuple; $f.nb = nb; $f.ok = ok; $f.p = p; $f.selected = selected; $f.t = t; $f.tt = tt; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.recv = function(nb) { return this.$val.recv(nb); }; Value.ptr.prototype.Send = function(x) { var _r, v, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(18); new flag(v.flag).mustBeExported(); _r = $clone(v, Value).send($clone(x, Value), false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Send }; } $f._r = _r; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.Send = function(x) { return this.$val.Send(x); }; Value.ptr.prototype.send = function(x, nb) { var _r, _r$1, nb, p, selected, tt, v, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; nb = $f.nb; p = $f.p; selected = $f.selected; tt = $f.tt; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: selected = false; v = this; tt = (v.typ.kindType); if ((((tt.dir >> 0)) & 2) === 0) { $panic(new $String("reflect: send on recv-only channel")); } new flag(x.flag).mustBeExported(); _r = $clone(x, Value).assignTo("reflect.Value.Send", tt.elem, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } x = _r; p = 0; if (!((((x.flag & 128) >>> 0) === 0))) { p = x.ptr; } else { p = ((x.$ptr_ptr || (x.$ptr_ptr = new ptrType$15(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, x)))); } _r$1 = chansend($clone(v, Value).pointer(), p, nb); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } selected = _r$1; $s = -1; return selected; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.send }; } $f._r = _r; $f._r$1 = _r$1; $f.nb = nb; $f.p = p; $f.selected = selected; $f.tt = tt; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.send = function(x, nb) { return this.$val.send(x, nb); }; Value.ptr.prototype.SetBool = function(x) { var v, x; v = this; new flag(v.flag).mustBeAssignable(); new flag(v.flag).mustBe(1); (v.ptr).$set(x); }; Value.prototype.SetBool = function(x) { return this.$val.SetBool(x); }; Value.ptr.prototype.setRunes = function(x) { var _r, v, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBeAssignable(); new flag(v.flag).mustBe(23); _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!((_r === 5))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((_r === 5))) { */ case 1: $panic(new $String("reflect.Value.setRunes of non-rune slice")); /* } */ case 2: (v.ptr).$set(x); $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.setRunes }; } $f._r = _r; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.setRunes = function(x) { return this.$val.setRunes(x); }; Value.ptr.prototype.SetComplex = function(x) { var _1, k, v, x; v = this; new flag(v.flag).mustBeAssignable(); k = new flag(v.flag).kind(); _1 = k; if (_1 === (15)) { (v.ptr).$set((new $Complex64(x.$real, x.$imag))); } else if (_1 === (16)) { (v.ptr).$set(x); } else { $panic(new ValueError.ptr("reflect.Value.SetComplex", new flag(v.flag).kind())); } }; Value.prototype.SetComplex = function(x) { return this.$val.SetComplex(x); }; Value.ptr.prototype.SetFloat = function(x) { var _1, k, v, x; v = this; new flag(v.flag).mustBeAssignable(); k = new flag(v.flag).kind(); _1 = k; if (_1 === (13)) { (v.ptr).$set(($fround(x))); } else if (_1 === (14)) { (v.ptr).$set(x); } else { $panic(new ValueError.ptr("reflect.Value.SetFloat", new flag(v.flag).kind())); } }; Value.prototype.SetFloat = function(x) { return this.$val.SetFloat(x); }; Value.ptr.prototype.SetInt = function(x) { var _1, k, v, x; v = this; new flag(v.flag).mustBeAssignable(); k = new flag(v.flag).kind(); _1 = k; if (_1 === (2)) { (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0))); } else if (_1 === (3)) { (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 24 >> 24))); } else if (_1 === (4)) { (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 16 >> 16))); } else if (_1 === (5)) { (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0))); } else if (_1 === (6)) { (v.ptr).$set(x); } else { $panic(new ValueError.ptr("reflect.Value.SetInt", new flag(v.flag).kind())); } }; Value.prototype.SetInt = function(x) { return this.$val.SetInt(x); }; Value.ptr.prototype.SetMapIndex = function(key, val) { var _r, _r$1, e, k, key, tt, v, val, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; e = $f.e; k = $f.k; key = $f.key; tt = $f.tt; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(21); new flag(v.flag).mustBeExported(); new flag(key.flag).mustBeExported(); tt = (v.typ.kindType); _r = $clone(key, Value).assignTo("reflect.Value.SetMapIndex", tt.key, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } key = _r; k = 0; if (!((((key.flag & 128) >>> 0) === 0))) { k = key.ptr; } else { k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$15(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); } if (val.typ === ptrType$1.nil) { mapdelete(v.typ, $clone(v, Value).pointer(), k); $s = -1; return; } new flag(val.flag).mustBeExported(); _r$1 = $clone(val, Value).assignTo("reflect.Value.SetMapIndex", tt.elem, 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } val = _r$1; e = 0; if (!((((val.flag & 128) >>> 0) === 0))) { e = val.ptr; } else { e = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$15(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val)))); } $r = mapassign(v.typ, $clone(v, Value).pointer(), k, e); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.SetMapIndex }; } $f._r = _r; $f._r$1 = _r$1; $f.e = e; $f.k = k; $f.key = key; $f.tt = tt; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.SetMapIndex = function(key, val) { return this.$val.SetMapIndex(key, val); }; Value.ptr.prototype.SetUint = function(x) { var _1, k, v, x; v = this; new flag(v.flag).mustBeAssignable(); k = new flag(v.flag).kind(); _1 = k; if (_1 === (7)) { (v.ptr).$set(((x.$low >>> 0))); } else if (_1 === (8)) { (v.ptr).$set(((x.$low << 24 >>> 24))); } else if (_1 === (9)) { (v.ptr).$set(((x.$low << 16 >>> 16))); } else if (_1 === (10)) { (v.ptr).$set(((x.$low >>> 0))); } else if (_1 === (11)) { (v.ptr).$set(x); } else if (_1 === (12)) { (v.ptr).$set(((x.$low >>> 0))); } else { $panic(new ValueError.ptr("reflect.Value.SetUint", new flag(v.flag).kind())); } }; Value.prototype.SetUint = function(x) { return this.$val.SetUint(x); }; Value.ptr.prototype.SetPointer = function(x) { var v, x; v = this; new flag(v.flag).mustBeAssignable(); new flag(v.flag).mustBe(26); (v.ptr).$set(x); }; Value.prototype.SetPointer = function(x) { return this.$val.SetPointer(x); }; Value.ptr.prototype.SetString = function(x) { var v, x; v = this; new flag(v.flag).mustBeAssignable(); new flag(v.flag).mustBe(24); (v.ptr).$set(x); }; Value.prototype.SetString = function(x) { return this.$val.SetString(x); }; Value.ptr.prototype.String = function() { var _1, _r, k, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; k = $f.k; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; k = new flag(v.flag).kind(); _1 = k; if (_1 === (0)) { $s = -1; return ""; } else if (_1 === (24)) { $s = -1; return (v.ptr).$get(); } _r = $clone(v, Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return "<" + _r + " Value>"; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.String }; } $f._1 = _1; $f._r = _r; $f.k = k; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.String = function() { return this.$val.String(); }; Value.ptr.prototype.TryRecv = function() { var _r, _tuple, ok, v, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ok = $f.ok; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: x = new Value.ptr(ptrType$1.nil, 0, 0); ok = false; v = this; new flag(v.flag).mustBe(18); new flag(v.flag).mustBeExported(); _r = $clone(v, Value).recv(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; x = _tuple[0]; ok = _tuple[1]; $s = -1; return [x, ok]; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.TryRecv }; } $f._r = _r; $f._tuple = _tuple; $f.ok = ok; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.TryRecv = function() { return this.$val.TryRecv(); }; Value.ptr.prototype.TrySend = function(x) { var _r, v, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(18); new flag(v.flag).mustBeExported(); _r = $clone(v, Value).send($clone(x, Value), true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.TrySend }; } $f._r = _r; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.TrySend = function(x) { return this.$val.TrySend(x); }; Value.ptr.prototype.Type = function() { var f, i, m, m$1, tt, ut, v, x, x$1; v = this; f = v.flag; if (f === 0) { $panic(new ValueError.ptr("reflect.Value.Type", 0)); } if (((f & 512) >>> 0) === 0) { return v.typ; } i = ((v.flag >> 0)) >> 10 >> 0; if (v.typ.Kind() === 20) { tt = (v.typ.kindType); if (((i >>> 0)) >= ((tt.methods.$length >>> 0))) { $panic(new $String("reflect: internal error: invalid method index")); } m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); return v.typ.typeOff(m.typ); } ut = v.typ.uncommon(); if (ut === ptrType$5.nil || ((i >>> 0)) >= ((ut.mcount >>> 0))) { $panic(new $String("reflect: internal error: invalid method index")); } m$1 = $clone((x$1 = ut.methods(), ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])), method); return v.typ.typeOff(m$1.mtyp); }; Value.prototype.Type = function() { return this.$val.Type(); }; Value.ptr.prototype.Uint = function() { var _1, k, p, v, x; v = this; k = new flag(v.flag).kind(); p = v.ptr; _1 = k; if (_1 === (7)) { return (new $Uint64(0, (p).$get())); } else if (_1 === (8)) { return (new $Uint64(0, (p).$get())); } else if (_1 === (9)) { return (new $Uint64(0, (p).$get())); } else if (_1 === (10)) { return (new $Uint64(0, (p).$get())); } else if (_1 === (11)) { return (p).$get(); } else if (_1 === (12)) { return ((x = (p).$get(), new $Uint64(0, x.constructor === Number ? x : 1))); } $panic(new ValueError.ptr("reflect.Value.Uint", new flag(v.flag).kind())); }; Value.prototype.Uint = function() { return this.$val.Uint(); }; Value.ptr.prototype.UnsafeAddr = function() { var v; v = this; if (v.typ === ptrType$1.nil) { $panic(new ValueError.ptr("reflect.Value.UnsafeAddr", 0)); } if (((v.flag & 256) >>> 0) === 0) { $panic(new $String("reflect.Value.UnsafeAddr of unaddressable value")); } return (v.ptr); }; Value.prototype.UnsafeAddr = function() { return this.$val.UnsafeAddr(); }; New = function(typ) { var _r, _r$1, fl, ptr, typ, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; fl = $f.fl; ptr = $f.ptr; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: if ($interfaceIsEqual(typ, $ifaceNil)) { $panic(new $String("reflect: New(nil)")); } ptr = unsafe_New($assertType(typ, ptrType$1)); fl = 22; _r = typ.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = _r.ptrTo(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return new Value.ptr(_r$1, ptr, fl); /* */ } return; } if ($f === undefined) { $f = { $blk: New }; } $f._r = _r; $f._r$1 = _r$1; $f.fl = fl; $f.ptr = ptr; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.New = New; Value.ptr.prototype.assignTo = function(context, dst, target) { var _r, _r$1, _r$2, _r$3, context, dst, fl, target, v, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; context = $f.context; dst = $f.dst; fl = $f.fl; target = $f.target; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: _r = makeMethodValue(context, $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } v = _r; /* } */ case 2: _r$1 = directlyAssignable(dst, v.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 5; continue; } /* */ if (implements$1(dst, v.typ)) { $s = 6; continue; } /* */ $s = 7; continue; /* if (_r$1) { */ case 5: fl = (v.flag & 480) >>> 0; fl = (fl | (((dst.Kind() >>> 0)))) >>> 0; $s = -1; return new Value.ptr(dst, v.ptr, fl); /* } else if (implements$1(dst, v.typ)) { */ case 6: if (target === 0) { target = unsafe_New(dst); } _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } x = _r$2; _r$3 = dst.NumMethod(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3 === 0) { $s = 10; continue; } /* */ $s = 11; continue; /* if (_r$3 === 0) { */ case 10: (target).$set(x); $s = 12; continue; /* } else { */ case 11: ifaceE2I(dst, x, target); /* } */ case 12: $s = -1; return new Value.ptr(dst, target, 148); /* } */ case 7: case 4: $panic(new $String(context + ": value of type " + v.typ.String() + " is not assignable to type " + dst.String())); $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.assignTo }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.context = context; $f.dst = dst; $f.fl = fl; $f.target = target; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.assignTo = function(context, dst, target) { return this.$val.assignTo(context, dst, target); }; Value.ptr.prototype.Convert = function(t) { var _r, _r$1, _r$2, _r$3, _r$4, op, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; op = $f.op; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: v = this; /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: _r = makeMethodValue("Convert", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } v = _r; /* } */ case 2: _r$1 = t.common(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = convertOp(_r$1, v.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } op = _r$2; /* */ if (op === $throwNilPointerError) { $s = 6; continue; } /* */ $s = 7; continue; /* if (op === $throwNilPointerError) { */ case 6: _r$3 = t.String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $panic(new $String("reflect.Value.Convert: value of type " + v.typ.String() + " cannot be converted to type " + _r$3)); /* } */ case 7: _r$4 = op($clone(v, Value), t); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Convert }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.op = op; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; Value.prototype.Convert = function(t) { return this.$val.Convert(t); }; convertOp = function(dst, src) { var _1, _2, _3, _4, _5, _6, _7, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, _v$2, dst, src, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _5 = $f._5; _6 = $f._6; _7 = $f._7; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; dst = $f.dst; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _1 = src.Kind(); /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 2; continue; } /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 3; continue; } /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 4; continue; } /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 5; continue; } /* */ if (_1 === (24)) { $s = 6; continue; } /* */ if (_1 === (23)) { $s = 7; continue; } /* */ $s = 8; continue; /* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 2: _2 = dst.Kind(); if ((_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { $s = -1; return cvtInt; } else if ((_2 === (13)) || (_2 === (14))) { $s = -1; return cvtIntFloat; } else if (_2 === (24)) { $s = -1; return cvtIntString; } $s = 8; continue; /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 3: _3 = dst.Kind(); if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6)) || (_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { $s = -1; return cvtUint; } else if ((_3 === (13)) || (_3 === (14))) { $s = -1; return cvtUintFloat; } else if (_3 === (24)) { $s = -1; return cvtUintString; } $s = 8; continue; /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 4: _4 = dst.Kind(); if ((_4 === (2)) || (_4 === (3)) || (_4 === (4)) || (_4 === (5)) || (_4 === (6))) { $s = -1; return cvtFloatInt; } else if ((_4 === (7)) || (_4 === (8)) || (_4 === (9)) || (_4 === (10)) || (_4 === (11)) || (_4 === (12))) { $s = -1; return cvtFloatUint; } else if ((_4 === (13)) || (_4 === (14))) { $s = -1; return cvtFloat; } $s = 8; continue; /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 5: _5 = dst.Kind(); if ((_5 === (15)) || (_5 === (16))) { $s = -1; return cvtComplex; } $s = 8; continue; /* } else if (_1 === (24)) { */ case 6: if (!(dst.Kind() === 23)) { _v = false; $s = 11; continue s; } _r = dst.Elem().PkgPath(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v = _r === ""; case 11: /* */ if (_v) { $s = 9; continue; } /* */ $s = 10; continue; /* if (_v) { */ case 9: _r$1 = dst.Elem().Kind(); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _6 = _r$1; if (_6 === (8)) { $s = -1; return cvtStringBytes; } else if (_6 === (5)) { $s = -1; return cvtStringRunes; } case 13: /* } */ case 10: $s = 8; continue; /* } else if (_1 === (23)) { */ case 7: if (!(dst.Kind() === 24)) { _v$1 = false; $s = 17; continue s; } _r$2 = src.Elem().PkgPath(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _v$1 = _r$2 === ""; case 17: /* */ if (_v$1) { $s = 15; continue; } /* */ $s = 16; continue; /* if (_v$1) { */ case 15: _r$3 = src.Elem().Kind(); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _7 = _r$3; if (_7 === (8)) { $s = -1; return cvtBytesString; } else if (_7 === (5)) { $s = -1; return cvtRunesString; } case 19: /* } */ case 16: /* } */ case 8: case 1: _r$4 = haveIdenticalUnderlyingType(dst, src, false); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } /* */ if (_r$4) { $s = 21; continue; } /* */ $s = 22; continue; /* if (_r$4) { */ case 21: $s = -1; return cvtDirect; /* } */ case 22: if (!((dst.Kind() === 22) && dst.Name() === "" && (src.Kind() === 22) && src.Name() === "")) { _v$2 = false; $s = 26; continue s; } _r$5 = dst.Elem().common(); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg = _r$5; _r$6 = src.Elem().common(); /* */ $s = 28; case 28: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _arg$1 = _r$6; _r$7 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 29; case 29: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _v$2 = _r$7; case 26: /* */ if (_v$2) { $s = 24; continue; } /* */ $s = 25; continue; /* if (_v$2) { */ case 24: $s = -1; return cvtDirect; /* } */ case 25: if (implements$1(dst, src)) { if (src.Kind() === 20) { $s = -1; return cvtI2I; } $s = -1; return cvtT2I; } $s = -1; return $throwNilPointerError; /* */ } return; } if ($f === undefined) { $f = { $blk: convertOp }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._5 = _5; $f._6 = _6; $f._7 = _7; $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f.dst = dst; $f.src = src; $f.$s = $s; $f.$r = $r; return $f; }; makeFloat = function(f, v, t) { var _1, _r, f, ptr, t, typ, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; f = $f.f; ptr = $f.ptr; t = $f.t; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } typ = _r; ptr = unsafe_New(typ); _1 = typ.size; if (_1 === (4)) { (ptr).$set(($fround(v))); } else if (_1 === (8)) { (ptr).$set(v); } $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); /* */ } return; } if ($f === undefined) { $f = { $blk: makeFloat }; } $f._1 = _1; $f._r = _r; $f.f = f; $f.ptr = ptr; $f.t = t; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; makeComplex = function(f, v, t) { var _1, _r, f, ptr, t, typ, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; f = $f.f; ptr = $f.ptr; t = $f.t; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } typ = _r; ptr = unsafe_New(typ); _1 = typ.size; if (_1 === (8)) { (ptr).$set((new $Complex64(v.$real, v.$imag))); } else if (_1 === (16)) { (ptr).$set(v); } $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); /* */ } return; } if ($f === undefined) { $f = { $blk: makeComplex }; } $f._1 = _1; $f._r = _r; $f.f = f; $f.ptr = ptr; $f.t = t; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; makeString = function(f, v, t) { var _r, _r$1, f, ret, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; f = $f.f; ret = $f.ret; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = New(t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = $clone(_r, Value).Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } ret = _r$1; $clone(ret, Value).SetString(v); ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; $s = -1; return ret; /* */ } return; } if ($f === undefined) { $f = { $blk: makeString }; } $f._r = _r; $f._r$1 = _r$1; $f.f = f; $f.ret = ret; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; makeBytes = function(f, v, t) { var _r, _r$1, f, ret, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; f = $f.f; ret = $f.ret; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = New(t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = $clone(_r, Value).Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } ret = _r$1; $r = $clone(ret, Value).SetBytes(v); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; $s = -1; return ret; /* */ } return; } if ($f === undefined) { $f = { $blk: makeBytes }; } $f._r = _r; $f._r$1 = _r$1; $f.f = f; $f.ret = ret; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; makeRunes = function(f, v, t) { var _r, _r$1, f, ret, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; f = $f.f; ret = $f.ret; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = New(t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = $clone(_r, Value).Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } ret = _r$1; $r = $clone(ret, Value).setRunes(v); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; $s = -1; return ret; /* */ } return; } if ($f === undefined) { $f = { $blk: makeRunes }; } $f._r = _r; $f._r$1 = _r$1; $f.f = f; $f.ret = ret; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; cvtInt = function(v, t) { var _r, t, v, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = makeInt((v.flag & 96) >>> 0, ((x = $clone(v, Value).Int(), new $Uint64(x.$high, x.$low))), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: cvtInt }; } $f._r = _r; $f.t = t; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; cvtUint = function(v, t) { var _r, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = makeInt((v.flag & 96) >>> 0, $clone(v, Value).Uint(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: cvtUint }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; cvtFloatInt = function(v, t) { var _r, t, v, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = makeInt((v.flag & 96) >>> 0, ((x = (new $Int64(0, $clone(v, Value).Float())), new $Uint64(x.$high, x.$low))), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: cvtFloatInt }; } $f._r = _r; $f.t = t; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; cvtFloatUint = function(v, t) { var _r, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = makeInt((v.flag & 96) >>> 0, (new $Uint64(0, $clone(v, Value).Float())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: cvtFloatUint }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; cvtIntFloat = function(v, t) { var _r, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = makeFloat((v.flag & 96) >>> 0, ($flatten64($clone(v, Value).Int())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: cvtIntFloat }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; cvtUintFloat = function(v, t) { var _r, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = makeFloat((v.flag & 96) >>> 0, ($flatten64($clone(v, Value).Uint())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: cvtUintFloat }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; cvtFloat = function(v, t) { var _r, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = makeFloat((v.flag & 96) >>> 0, $clone(v, Value).Float(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: cvtFloat }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; cvtComplex = function(v, t) { var _r, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = makeComplex((v.flag & 96) >>> 0, $clone(v, Value).Complex(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: cvtComplex }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; cvtIntString = function(v, t) { var _r, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = makeString((v.flag & 96) >>> 0, ($encodeRune($clone(v, Value).Int().$low)), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: cvtIntString }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; cvtUintString = function(v, t) { var _r, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = makeString((v.flag & 96) >>> 0, ($encodeRune($clone(v, Value).Uint().$low)), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: cvtUintString }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; cvtBytesString = function(v, t) { var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _arg = (v.flag & 96) >>> 0; _r = $clone(v, Value).Bytes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = ($bytesToString(_r)); _arg$2 = t; _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: cvtBytesString }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; cvtStringBytes = function(v, t) { var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _arg = (v.flag & 96) >>> 0; _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = (new sliceType$15($stringToBytes(_r))); _arg$2 = t; _r$1 = makeBytes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: cvtStringBytes }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; cvtRunesString = function(v, t) { var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _arg = (v.flag & 96) >>> 0; _r = $clone(v, Value).runes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = ($runesToString(_r)); _arg$2 = t; _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: cvtRunesString }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; cvtStringRunes = function(v, t) { var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _arg = (v.flag & 96) >>> 0; _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = (new sliceType$17($stringToRunes(_r))); _arg$2 = t; _r$1 = makeRunes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: cvtStringRunes }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; cvtT2I = function(v, typ) { var _r, _r$1, _r$2, _r$3, _r$4, target, typ, v, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; target = $f.target; typ = $f.typ; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = typ.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = unsafe_New(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } target = _r$1; _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } x = _r$2; _r$3 = typ.NumMethod(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3 === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_r$3 === 0) { */ case 4: (target).$set(x); $s = 6; continue; /* } else { */ case 5: ifaceE2I($assertType(typ, ptrType$1), x, target); /* } */ case 6: _r$4 = typ.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return new Value.ptr(_r$4, target, (((((v.flag & 96) >>> 0) | 128) >>> 0) | 20) >>> 0); /* */ } return; } if ($f === undefined) { $f = { $blk: cvtT2I }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.target = target; $f.typ = typ; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; cvtI2I = function(v, typ) { var _r, _r$1, _r$2, ret, typ, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; ret = $f.ret; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: /* */ if ($clone(v, Value).IsNil()) { $s = 1; continue; } /* */ $s = 2; continue; /* if ($clone(v, Value).IsNil()) { */ case 1: _r = Zero(typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } ret = _r; ret.flag = (ret.flag | (((v.flag & 96) >>> 0))) >>> 0; $s = -1; return ret; /* } */ case 2: _r$1 = $clone(v, Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = cvtT2I($clone(_r$1, Value), typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* */ } return; } if ($f === undefined) { $f = { $blk: cvtI2I }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.ret = ret; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; ptrType$5.methods = [{prop: "methods", name: "methods", pkg: "reflect", typ: $funcType([], [sliceType$5], false)}]; ptrType$16.methods = [{prop: "in$", name: "in", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}, {prop: "out", name: "out", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}]; name.methods = [{prop: "name", name: "name", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "tag", name: "tag", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "pkgPath", name: "pkgPath", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "isExported", name: "isExported", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "data", name: "data", pkg: "reflect", typ: $funcType([$Int], [ptrType$4], false)}, {prop: "nameLen", name: "nameLen", pkg: "reflect", typ: $funcType([], [$Int], false)}, {prop: "tagLen", name: "tagLen", pkg: "reflect", typ: $funcType([], [$Int], false)}]; Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$1.methods = [{prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$5], false)}, {prop: "nameOff", name: "nameOff", pkg: "reflect", typ: $funcType([nameOff], [name], false)}, {prop: "typeOff", name: "typeOff", pkg: "reflect", typ: $funcType([typeOff], [ptrType$1], false)}, {prop: "ptrTo", name: "ptrTo", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "pointers", name: "pointers", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "textOff", name: "textOff", pkg: "reflect", typ: $funcType([textOff], [$UnsafePointer], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$5], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}]; ChanDir.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$7.methods = [{prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}]; ptrType$17.methods = [{prop: "offset", name: "offset", pkg: "reflect", typ: $funcType([], [$Uintptr], false)}, {prop: "anon", name: "anon", pkg: "reflect", typ: $funcType([], [$Bool], false)}]; ptrType$9.methods = [{prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}]; StructTag.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [$String, $Bool], false)}]; Value.methods = [{prop: "object", name: "object", pkg: "reflect", typ: $funcType([], [ptrType$2], false)}, {prop: "call", name: "call", pkg: "reflect", typ: $funcType([$String, sliceType$9], [sliceType$9], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$12], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$15], [], false)}, {prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false)}, {prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "pointer", name: "pointer", pkg: "reflect", typ: $funcType([], [$UnsafePointer], false)}, {prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$15], false)}, {prop: "runes", name: "runes", pkg: "reflect", typ: $funcType([], [sliceType$17], false)}, {prop: "CanAddr", name: "CanAddr", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([sliceType$9], [sliceType$9], false)}, {prop: "CallSlice", name: "CallSlice", pkg: "", typ: $funcType([sliceType$9], [sliceType$9], false)}, {prop: "Complex", name: "Complex", pkg: "", typ: $funcType([], [$Complex128], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [Value], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [Value], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "CanInterface", name: "CanInterface", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false)}, {prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$9], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "OverflowComplex", name: "OverflowComplex", pkg: "", typ: $funcType([$Complex128], [$Bool], false)}, {prop: "OverflowFloat", name: "OverflowFloat", pkg: "", typ: $funcType([$Float64], [$Bool], false)}, {prop: "OverflowInt", name: "OverflowInt", pkg: "", typ: $funcType([$Int64], [$Bool], false)}, {prop: "OverflowUint", name: "OverflowUint", pkg: "", typ: $funcType([$Uint64], [$Bool], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "recv", name: "recv", pkg: "reflect", typ: $funcType([$Bool], [Value, $Bool], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([Value], [], false)}, {prop: "send", name: "send", pkg: "reflect", typ: $funcType([Value, $Bool], [$Bool], false)}, {prop: "SetBool", name: "SetBool", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "setRunes", name: "setRunes", pkg: "reflect", typ: $funcType([sliceType$17], [], false)}, {prop: "SetComplex", name: "SetComplex", pkg: "", typ: $funcType([$Complex128], [], false)}, {prop: "SetFloat", name: "SetFloat", pkg: "", typ: $funcType([$Float64], [], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "SetMapIndex", name: "SetMapIndex", pkg: "", typ: $funcType([Value, Value], [], false)}, {prop: "SetUint", name: "SetUint", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "SetPointer", name: "SetPointer", pkg: "", typ: $funcType([$UnsafePointer], [], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "TryRecv", name: "TryRecv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "TrySend", name: "TrySend", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Uint", name: "Uint", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "UnsafeAddr", name: "UnsafeAddr", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "assignTo", name: "assignTo", pkg: "reflect", typ: $funcType([$String, ptrType$1, $UnsafePointer], [Value], false)}, {prop: "Convert", name: "Convert", pkg: "", typ: $funcType([Type], [Value], false)}]; flag.methods = [{prop: "kind", name: "kind", pkg: "reflect", typ: $funcType([], [Kind], false)}, {prop: "mustBe", name: "mustBe", pkg: "reflect", typ: $funcType([Kind], [], false)}, {prop: "mustBeExported", name: "mustBeExported", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "reflect", typ: $funcType([], [], false)}]; ptrType$18.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; uncommonType.init("reflect", [{prop: "pkgPath", name: "pkgPath", anonymous: false, exported: false, typ: nameOff, tag: ""}, {prop: "mcount", name: "mcount", anonymous: false, exported: false, typ: $Uint16, tag: ""}, {prop: "_$2", name: "_", anonymous: false, exported: false, typ: $Uint16, tag: ""}, {prop: "moff", name: "moff", anonymous: false, exported: false, typ: $Uint32, tag: ""}, {prop: "_$4", name: "_", anonymous: false, exported: false, typ: $Uint32, tag: ""}, {prop: "_methods", name: "_methods", anonymous: false, exported: false, typ: sliceType$5, tag: ""}]); funcType.init("reflect", [{prop: "rtype", name: "rtype", anonymous: true, exported: false, typ: rtype, tag: "reflect:\"func\""}, {prop: "inCount", name: "inCount", anonymous: false, exported: false, typ: $Uint16, tag: ""}, {prop: "outCount", name: "outCount", anonymous: false, exported: false, typ: $Uint16, tag: ""}, {prop: "_in", name: "_in", anonymous: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "_out", name: "_out", anonymous: false, exported: false, typ: sliceType$2, tag: ""}]); name.init("reflect", [{prop: "bytes", name: "bytes", anonymous: false, exported: false, typ: ptrType$4, tag: ""}]); nameData.init("reflect", [{prop: "name", name: "name", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "pkgPath", name: "pkgPath", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "exported", name: "exported", anonymous: false, exported: false, typ: $Bool, tag: ""}]); mapIter.init("reflect", [{prop: "t", name: "t", anonymous: false, exported: false, typ: Type, tag: ""}, {prop: "m", name: "m", anonymous: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "keys", name: "keys", anonymous: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "i", name: "i", anonymous: false, exported: false, typ: $Int, tag: ""}]); Type.init([{prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$5], false)}]); rtype.init("reflect", [{prop: "size", name: "size", anonymous: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "ptrdata", name: "ptrdata", anonymous: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "hash", name: "hash", anonymous: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tflag", name: "tflag", anonymous: false, exported: false, typ: tflag, tag: ""}, {prop: "align", name: "align", anonymous: false, exported: false, typ: $Uint8, tag: ""}, {prop: "fieldAlign", name: "fieldAlign", anonymous: false, exported: false, typ: $Uint8, tag: ""}, {prop: "kind", name: "kind", anonymous: false, exported: false, typ: $Uint8, tag: ""}, {prop: "alg", name: "alg", anonymous: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "gcdata", name: "gcdata", anonymous: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "str", name: "str", anonymous: false, exported: false, typ: nameOff, tag: ""}, {prop: "ptrToThis", name: "ptrToThis", anonymous: false, exported: false, typ: typeOff, tag: ""}]); typeAlg.init("reflect", [{prop: "hash", name: "hash", anonymous: false, exported: false, typ: funcType$4, tag: ""}, {prop: "equal", name: "equal", anonymous: false, exported: false, typ: funcType$5, tag: ""}]); method.init("reflect", [{prop: "name", name: "name", anonymous: false, exported: false, typ: nameOff, tag: ""}, {prop: "mtyp", name: "mtyp", anonymous: false, exported: false, typ: typeOff, tag: ""}, {prop: "ifn", name: "ifn", anonymous: false, exported: false, typ: textOff, tag: ""}, {prop: "tfn", name: "tfn", anonymous: false, exported: false, typ: textOff, tag: ""}]); arrayType.init("reflect", [{prop: "rtype", name: "rtype", anonymous: true, exported: false, typ: rtype, tag: "reflect:\"array\""}, {prop: "elem", name: "elem", anonymous: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "slice", name: "slice", anonymous: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "len", name: "len", anonymous: false, exported: false, typ: $Uintptr, tag: ""}]); chanType.init("reflect", [{prop: "rtype", name: "rtype", anonymous: true, exported: false, typ: rtype, tag: "reflect:\"chan\""}, {prop: "elem", name: "elem", anonymous: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "dir", name: "dir", anonymous: false, exported: false, typ: $Uintptr, tag: ""}]); imethod.init("reflect", [{prop: "name", name: "name", anonymous: false, exported: false, typ: nameOff, tag: ""}, {prop: "typ", name: "typ", anonymous: false, exported: false, typ: typeOff, tag: ""}]); interfaceType.init("reflect", [{prop: "rtype", name: "rtype", anonymous: true, exported: false, typ: rtype, tag: "reflect:\"interface\""}, {prop: "pkgPath", name: "pkgPath", anonymous: false, exported: false, typ: name, tag: ""}, {prop: "methods", name: "methods", anonymous: false, exported: false, typ: sliceType$6, tag: ""}]); mapType.init("reflect", [{prop: "rtype", name: "rtype", anonymous: true, exported: false, typ: rtype, tag: "reflect:\"map\""}, {prop: "key", name: "key", anonymous: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "elem", name: "elem", anonymous: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "bucket", name: "bucket", anonymous: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "hmap", name: "hmap", anonymous: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "keysize", name: "keysize", anonymous: false, exported: false, typ: $Uint8, tag: ""}, {prop: "indirectkey", name: "indirectkey", anonymous: false, exported: false, typ: $Uint8, tag: ""}, {prop: "valuesize", name: "valuesize", anonymous: false, exported: false, typ: $Uint8, tag: ""}, {prop: "indirectvalue", name: "indirectvalue", anonymous: false, exported: false, typ: $Uint8, tag: ""}, {prop: "bucketsize", name: "bucketsize", anonymous: false, exported: false, typ: $Uint16, tag: ""}, {prop: "reflexivekey", name: "reflexivekey", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "needkeyupdate", name: "needkeyupdate", anonymous: false, exported: false, typ: $Bool, tag: ""}]); ptrType.init("reflect", [{prop: "rtype", name: "rtype", anonymous: true, exported: false, typ: rtype, tag: "reflect:\"ptr\""}, {prop: "elem", name: "elem", anonymous: false, exported: false, typ: ptrType$1, tag: ""}]); sliceType.init("reflect", [{prop: "rtype", name: "rtype", anonymous: true, exported: false, typ: rtype, tag: "reflect:\"slice\""}, {prop: "elem", name: "elem", anonymous: false, exported: false, typ: ptrType$1, tag: ""}]); structField.init("reflect", [{prop: "name", name: "name", anonymous: false, exported: false, typ: name, tag: ""}, {prop: "typ", name: "typ", anonymous: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "offsetAnon", name: "offsetAnon", anonymous: false, exported: false, typ: $Uintptr, tag: ""}]); structType.init("reflect", [{prop: "rtype", name: "rtype", anonymous: true, exported: false, typ: rtype, tag: "reflect:\"struct\""}, {prop: "pkgPath", name: "pkgPath", anonymous: false, exported: false, typ: name, tag: ""}, {prop: "fields", name: "fields", anonymous: false, exported: false, typ: sliceType$7, tag: ""}]); Method.init("", [{prop: "Name", name: "Name", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", anonymous: false, exported: true, typ: Type, tag: ""}, {prop: "Func", name: "Func", anonymous: false, exported: true, typ: Value, tag: ""}, {prop: "Index", name: "Index", anonymous: false, exported: true, typ: $Int, tag: ""}]); StructField.init("", [{prop: "Name", name: "Name", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", anonymous: false, exported: true, typ: Type, tag: ""}, {prop: "Tag", name: "Tag", anonymous: false, exported: true, typ: StructTag, tag: ""}, {prop: "Offset", name: "Offset", anonymous: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Index", name: "Index", anonymous: false, exported: true, typ: sliceType$13, tag: ""}, {prop: "Anonymous", name: "Anonymous", anonymous: false, exported: true, typ: $Bool, tag: ""}]); fieldScan.init("reflect", [{prop: "typ", name: "typ", anonymous: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "index", name: "index", anonymous: false, exported: false, typ: sliceType$13, tag: ""}]); Value.init("reflect", [{prop: "typ", name: "typ", anonymous: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "ptr", name: "ptr", anonymous: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", anonymous: true, exported: false, typ: flag, tag: ""}]); ValueError.init("", [{prop: "Method", name: "Method", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", anonymous: false, exported: true, typ: Kind, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strconv.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = sync.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = unicode.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } nameOffList = sliceType$1.nil; typeOffList = sliceType$2.nil; methodCache = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new $packages["sync/atomic"].Value.ptr(new $packages["sync/atomic"].noCopy.ptr(), $ifaceNil), false, 0); initialized = false; uncommonTypeMap = {}; nameMap = {}; callHelper = $assertType($internalize($call, $emptyInterface), funcType$1); selectHelper = $assertType($internalize($select, $emptyInterface), funcType$1); jsObjectPtr = reflectType($jsObjectPtr); kindNames = new sliceType$4(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]); uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1); $r = init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["fmt"] = (function() { var $pkg = {}, $init, errors, io, math, os, reflect, strconv, sync, utf8, fmtFlags, fmt, State, Formatter, Stringer, GoStringer, buffer, pp, scanError, ss, ssave, sliceType, ptrType, ptrType$1, arrayType, arrayType$1, sliceType$1, sliceType$2, arrayType$2, ptrType$2, ptrType$5, ptrType$25, funcType, ppFree, space, ssFree, complexError, boolError, newPrinter, Fprintf, Sprintf, Errorf, Fprint, Print, Sprint, Fprintln, getField, tooLarge, parsenum, intFromArg, parseArgNumber, isSpace, notSpace, indexRune; errors = $packages["errors"]; io = $packages["io"]; math = $packages["math"]; os = $packages["os"]; reflect = $packages["reflect"]; strconv = $packages["strconv"]; sync = $packages["sync"]; utf8 = $packages["unicode/utf8"]; fmtFlags = $pkg.fmtFlags = $newType(0, $kindStruct, "fmt.fmtFlags", true, "fmt", false, function(widPresent_, precPresent_, minus_, plus_, sharp_, space_, zero_, plusV_, sharpV_) { this.$val = this; if (arguments.length === 0) { this.widPresent = false; this.precPresent = false; this.minus = false; this.plus = false; this.sharp = false; this.space = false; this.zero = false; this.plusV = false; this.sharpV = false; return; } this.widPresent = widPresent_; this.precPresent = precPresent_; this.minus = minus_; this.plus = plus_; this.sharp = sharp_; this.space = space_; this.zero = zero_; this.plusV = plusV_; this.sharpV = sharpV_; }); fmt = $pkg.fmt = $newType(0, $kindStruct, "fmt.fmt", true, "fmt", false, function(buf_, fmtFlags_, wid_, prec_, intbuf_) { this.$val = this; if (arguments.length === 0) { this.buf = ptrType$1.nil; this.fmtFlags = new fmtFlags.ptr(false, false, false, false, false, false, false, false, false); this.wid = 0; this.prec = 0; this.intbuf = arrayType.zero(); return; } this.buf = buf_; this.fmtFlags = fmtFlags_; this.wid = wid_; this.prec = prec_; this.intbuf = intbuf_; }); State = $pkg.State = $newType(8, $kindInterface, "fmt.State", true, "fmt", true, null); Formatter = $pkg.Formatter = $newType(8, $kindInterface, "fmt.Formatter", true, "fmt", true, null); Stringer = $pkg.Stringer = $newType(8, $kindInterface, "fmt.Stringer", true, "fmt", true, null); GoStringer = $pkg.GoStringer = $newType(8, $kindInterface, "fmt.GoStringer", true, "fmt", true, null); buffer = $pkg.buffer = $newType(12, $kindSlice, "fmt.buffer", true, "fmt", false, null); pp = $pkg.pp = $newType(0, $kindStruct, "fmt.pp", true, "fmt", false, function(buf_, arg_, value_, fmt_, reordered_, goodArgNum_, panicking_, erroring_) { this.$val = this; if (arguments.length === 0) { this.buf = buffer.nil; this.arg = $ifaceNil; this.value = new reflect.Value.ptr(ptrType.nil, 0, 0); this.fmt = new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType.zero()); this.reordered = false; this.goodArgNum = false; this.panicking = false; this.erroring = false; return; } this.buf = buf_; this.arg = arg_; this.value = value_; this.fmt = fmt_; this.reordered = reordered_; this.goodArgNum = goodArgNum_; this.panicking = panicking_; this.erroring = erroring_; }); scanError = $pkg.scanError = $newType(0, $kindStruct, "fmt.scanError", true, "fmt", false, function(err_) { this.$val = this; if (arguments.length === 0) { this.err = $ifaceNil; return; } this.err = err_; }); ss = $pkg.ss = $newType(0, $kindStruct, "fmt.ss", true, "fmt", false, function(rs_, buf_, count_, atEOF_, ssave_) { this.$val = this; if (arguments.length === 0) { this.rs = $ifaceNil; this.buf = buffer.nil; this.count = 0; this.atEOF = false; this.ssave = new ssave.ptr(false, false, false, 0, 0, 0); return; } this.rs = rs_; this.buf = buf_; this.count = count_; this.atEOF = atEOF_; this.ssave = ssave_; }); ssave = $pkg.ssave = $newType(0, $kindStruct, "fmt.ssave", true, "fmt", false, function(validSave_, nlIsEnd_, nlIsSpace_, argLimit_, limit_, maxWid_) { this.$val = this; if (arguments.length === 0) { this.validSave = false; this.nlIsEnd = false; this.nlIsSpace = false; this.argLimit = 0; this.limit = 0; this.maxWid = 0; return; } this.validSave = validSave_; this.nlIsEnd = nlIsEnd_; this.nlIsSpace = nlIsSpace_; this.argLimit = argLimit_; this.limit = limit_; this.maxWid = maxWid_; }); sliceType = $sliceType($emptyInterface); ptrType = $ptrType(reflect.rtype); ptrType$1 = $ptrType(buffer); arrayType = $arrayType($Uint8, 68); arrayType$1 = $arrayType($Uint16, 2); sliceType$1 = $sliceType(arrayType$1); sliceType$2 = $sliceType($Uint8); arrayType$2 = $arrayType($Uint8, 5); ptrType$2 = $ptrType(pp); ptrType$5 = $ptrType(ss); ptrType$25 = $ptrType(fmt); funcType = $funcType([$Int32], [$Bool], false); fmt.ptr.prototype.clearflags = function() { var f; f = this; fmtFlags.copy(f.fmtFlags, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false)); }; fmt.prototype.clearflags = function() { return this.$val.clearflags(); }; fmt.ptr.prototype.init = function(buf) { var buf, f; f = this; f.buf = buf; f.clearflags(); }; fmt.prototype.init = function(buf) { return this.$val.init(buf); }; fmt.ptr.prototype.writePadding = function(n) { var _i, _ref, buf, f, i, n, newLen, oldLen, padByte, padding; f = this; if (n <= 0) { return; } buf = f.buf.$get(); oldLen = buf.$length; newLen = oldLen + n >> 0; if (newLen > buf.$capacity) { buf = $makeSlice(buffer, (($imul(buf.$capacity, 2)) + n >> 0)); $copySlice(buf, f.buf.$get()); } padByte = 32; if (f.fmtFlags.zero) { padByte = 48; } padding = $subslice(buf, oldLen, newLen); _ref = padding; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; ((i < 0 || i >= padding.$length) ? ($throwRuntimeError("index out of range"), undefined) : padding.$array[padding.$offset + i] = padByte); _i++; } f.buf.$set($subslice(buf, 0, newLen)); }; fmt.prototype.writePadding = function(n) { return this.$val.writePadding(n); }; fmt.ptr.prototype.pad = function(b) { var b, f, width; f = this; if (!f.fmtFlags.widPresent || (f.wid === 0)) { f.buf.Write(b); return; } width = f.wid - utf8.RuneCount(b) >> 0; if (!f.fmtFlags.minus) { f.writePadding(width); f.buf.Write(b); } else { f.buf.Write(b); f.writePadding(width); } }; fmt.prototype.pad = function(b) { return this.$val.pad(b); }; fmt.ptr.prototype.padString = function(s) { var f, s, width; f = this; if (!f.fmtFlags.widPresent || (f.wid === 0)) { f.buf.WriteString(s); return; } width = f.wid - utf8.RuneCountInString(s) >> 0; if (!f.fmtFlags.minus) { f.writePadding(width); f.buf.WriteString(s); } else { f.buf.WriteString(s); f.writePadding(width); } }; fmt.prototype.padString = function(s) { return this.$val.padString(s); }; fmt.ptr.prototype.fmt_boolean = function(v) { var f, v; f = this; if (v) { f.padString("true"); } else { f.padString("false"); } }; fmt.prototype.fmt_boolean = function(v) { return this.$val.fmt_boolean(v); }; fmt.ptr.prototype.fmt_unicode = function(u) { var buf, f, i, oldZero, prec, u, width; f = this; buf = $subslice(new sliceType$2(f.intbuf), 0); prec = 4; if (f.fmtFlags.precPresent && f.prec > 4) { prec = f.prec; width = (((2 + prec >> 0) + 2 >> 0) + 4 >> 0) + 1 >> 0; if (width > buf.$length) { buf = $makeSlice(sliceType$2, width); } } i = buf.$length; if (f.fmtFlags.sharp && (u.$high < 0 || (u.$high === 0 && u.$low <= 1114111)) && strconv.IsPrint(((u.$low >> 0)))) { i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39); i = i - (utf8.RuneLen(((u.$low >> 0)))) >> 0; utf8.EncodeRune($subslice(buf, i), ((u.$low >> 0))); i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39); i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32); } while (true) { if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { break; } i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0)))); prec = prec - (1) >> 0; u = $shiftRightUint64(u, (4)); } i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(u))); prec = prec - (1) >> 0; while (true) { if (!(prec > 0)) { break; } i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); prec = prec - (1) >> 0; } i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43); i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 85); oldZero = f.fmtFlags.zero; f.fmtFlags.zero = false; f.pad($subslice(buf, i)); f.fmtFlags.zero = oldZero; }; fmt.prototype.fmt_unicode = function(u) { return this.$val.fmt_unicode(u); }; fmt.ptr.prototype.fmt_integer = function(u, base, isSigned, digits) { var _1, _2, base, buf, digits, f, i, isSigned, negative, next, oldZero, oldZero$1, prec, u, width, x, x$1, x$2, x$3, x$4; f = this; negative = isSigned && (x = (new $Int64(u.$high, u.$low)), (x.$high < 0 || (x.$high === 0 && x.$low < 0))); if (negative) { u = new $Uint64(-u.$high, -u.$low); } buf = $subslice(new sliceType$2(f.intbuf), 0); if (f.fmtFlags.widPresent || f.fmtFlags.precPresent) { width = (3 + f.wid >> 0) + f.prec >> 0; if (width > buf.$length) { buf = $makeSlice(sliceType$2, width); } } prec = 0; if (f.fmtFlags.precPresent) { prec = f.prec; if ((prec === 0) && (u.$high === 0 && u.$low === 0)) { oldZero = f.fmtFlags.zero; f.fmtFlags.zero = false; f.writePadding(f.wid); f.fmtFlags.zero = oldZero; return; } } else if (f.fmtFlags.zero && f.fmtFlags.widPresent) { prec = f.wid; if (negative || f.fmtFlags.plus || f.fmtFlags.space) { prec = prec - (1) >> 0; } } i = buf.$length; _1 = base; if (_1 === (10)) { while (true) { if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 10)))) { break; } i = i - (1) >> 0; next = $div64(u, new $Uint64(0, 10), false); ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$1 = new $Uint64(0 + u.$high, 48 + u.$low), x$2 = $mul64(next, new $Uint64(0, 10)), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)).$low << 24 >>> 24))); u = next; } } else if (_1 === (16)) { while (true) { if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { break; } i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0)))); u = $shiftRightUint64(u, (4)); } } else if (_1 === (8)) { while (true) { if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 8)))) { break; } i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$3 = new $Uint64(u.$high & 0, (u.$low & 7) >>> 0), new $Uint64(0 + x$3.$high, 48 + x$3.$low)).$low << 24 >>> 24))); u = $shiftRightUint64(u, (3)); } } else if (_1 === (2)) { while (true) { if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 2)))) { break; } i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$4 = new $Uint64(u.$high & 0, (u.$low & 1) >>> 0), new $Uint64(0 + x$4.$high, 48 + x$4.$low)).$low << 24 >>> 24))); u = $shiftRightUint64(u, (1)); } } else { $panic(new $String("fmt: unknown base; can't happen")); } i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(u))); while (true) { if (!(i > 0 && prec > (buf.$length - i >> 0))) { break; } i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); } if (f.fmtFlags.sharp) { _2 = base; if (_2 === (8)) { if (!((((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i]) === 48))) { i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); } } else if (_2 === (16)) { i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt(16)); i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); } } if (negative) { i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 45); } else if (f.fmtFlags.plus) { i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43); } else if (f.fmtFlags.space) { i = i - (1) >> 0; ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32); } oldZero$1 = f.fmtFlags.zero; f.fmtFlags.zero = false; f.pad($subslice(buf, i)); f.fmtFlags.zero = oldZero$1; }; fmt.prototype.fmt_integer = function(u, base, isSigned, digits) { return this.$val.fmt_integer(u, base, isSigned, digits); }; fmt.ptr.prototype.truncate = function(s) { var _i, _ref, _rune, f, i, n, s; f = this; if (f.fmtFlags.precPresent) { n = f.prec; _ref = s; _i = 0; while (true) { if (!(_i < _ref.length)) { break; } _rune = $decodeRune(_ref, _i); i = _i; n = n - (1) >> 0; if (n < 0) { return $substring(s, 0, i); } _i += _rune[1]; } } return s; }; fmt.prototype.truncate = function(s) { return this.$val.truncate(s); }; fmt.ptr.prototype.fmt_s = function(s) { var f, s; f = this; s = f.truncate(s); f.padString(s); }; fmt.prototype.fmt_s = function(s) { return this.$val.fmt_s(s); }; fmt.ptr.prototype.fmt_sbx = function(s, b, digits) { var b, buf, c, digits, f, i, length, s, width; f = this; length = b.$length; if (b === sliceType$2.nil) { length = s.length; } if (f.fmtFlags.precPresent && f.prec < length) { length = f.prec; } width = $imul(2, length); if (width > 0) { if (f.fmtFlags.space) { if (f.fmtFlags.sharp) { width = $imul(width, (2)); } width = width + ((length - 1 >> 0)) >> 0; } else if (f.fmtFlags.sharp) { width = width + (2) >> 0; } } else { if (f.fmtFlags.widPresent) { f.writePadding(f.wid); } return; } if (f.fmtFlags.widPresent && f.wid > width && !f.fmtFlags.minus) { f.writePadding(f.wid - width >> 0); } buf = f.buf.$get(); if (f.fmtFlags.sharp) { buf = $append(buf, 48, digits.charCodeAt(16)); } c = 0; i = 0; while (true) { if (!(i < length)) { break; } if (f.fmtFlags.space && i > 0) { buf = $append(buf, 32); if (f.fmtFlags.sharp) { buf = $append(buf, 48, digits.charCodeAt(16)); } } if (!(b === sliceType$2.nil)) { c = ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]); } else { c = s.charCodeAt(i); } buf = $append(buf, digits.charCodeAt((c >>> 4 << 24 >>> 24)), digits.charCodeAt(((c & 15) >>> 0))); i = i + (1) >> 0; } f.buf.$set(buf); if (f.fmtFlags.widPresent && f.wid > width && f.fmtFlags.minus) { f.writePadding(f.wid - width >> 0); } }; fmt.prototype.fmt_sbx = function(s, b, digits) { return this.$val.fmt_sbx(s, b, digits); }; fmt.ptr.prototype.fmt_sx = function(s, digits) { var digits, f, s; f = this; f.fmt_sbx(s, sliceType$2.nil, digits); }; fmt.prototype.fmt_sx = function(s, digits) { return this.$val.fmt_sx(s, digits); }; fmt.ptr.prototype.fmt_bx = function(b, digits) { var b, digits, f; f = this; f.fmt_sbx("", b, digits); }; fmt.prototype.fmt_bx = function(b, digits) { return this.$val.fmt_bx(b, digits); }; fmt.ptr.prototype.fmt_q = function(s) { var buf, f, s; f = this; s = f.truncate(s); if (f.fmtFlags.sharp && strconv.CanBackquote(s)) { f.padString("`" + s + "`"); return; } buf = $subslice(new sliceType$2(f.intbuf), 0, 0); if (f.fmtFlags.plus) { f.pad(strconv.AppendQuoteToASCII(buf, s)); } else { f.pad(strconv.AppendQuote(buf, s)); } }; fmt.prototype.fmt_q = function(s) { return this.$val.fmt_q(s); }; fmt.ptr.prototype.fmt_c = function(c) { var buf, c, f, r, w; f = this; r = ((c.$low >> 0)); if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) { r = 65533; } buf = $subslice(new sliceType$2(f.intbuf), 0, 0); w = utf8.EncodeRune($subslice(buf, 0, 4), r); f.pad($subslice(buf, 0, w)); }; fmt.prototype.fmt_c = function(c) { return this.$val.fmt_c(c); }; fmt.ptr.prototype.fmt_qc = function(c) { var buf, c, f, r; f = this; r = ((c.$low >> 0)); if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) { r = 65533; } buf = $subslice(new sliceType$2(f.intbuf), 0, 0); if (f.fmtFlags.plus) { f.pad(strconv.AppendQuoteRuneToASCII(buf, r)); } else { f.pad(strconv.AppendQuoteRune(buf, r)); } }; fmt.prototype.fmt_qc = function(c) { return this.$val.fmt_qc(c); }; fmt.ptr.prototype.fmt_float = function(v, size, verb, prec) { var _1, _2, digits, f, hasDecimalPoint, i, num, oldZero, prec, size, tail, tailBuf, v, verb; f = this; if (f.fmtFlags.precPresent) { prec = f.prec; } num = strconv.AppendFloat($subslice(new sliceType$2(f.intbuf), 0, 1), v, ((verb << 24 >>> 24)), prec, size); if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 45) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 43)) { num = $subslice(num, 1); } else { (0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 43); } if (f.fmtFlags.space && ((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43) && !f.fmtFlags.plus) { (0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 32); } if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 73) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78)) { oldZero = f.fmtFlags.zero; f.fmtFlags.zero = false; if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78) && !f.fmtFlags.space && !f.fmtFlags.plus) { num = $subslice(num, 1); } f.pad(num); f.fmtFlags.zero = oldZero; return; } if (f.fmtFlags.sharp && !((verb === 98))) { digits = 0; _1 = verb; if ((_1 === (118)) || (_1 === (103)) || (_1 === (71))) { digits = prec; if (digits === -1) { digits = 6; } } tailBuf = arrayType$2.zero(); tail = $subslice(new sliceType$2(tailBuf), 0, 0); hasDecimalPoint = false; i = 1; while (true) { if (!(i < num.$length)) { break; } _2 = ((i < 0 || i >= num.$length) ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + i]); if (_2 === (46)) { hasDecimalPoint = true; } else if ((_2 === (101)) || (_2 === (69))) { tail = $appendSlice(tail, $subslice(num, i)); num = $subslice(num, 0, i); } else { digits = digits - (1) >> 0; } i = i + (1) >> 0; } if (!hasDecimalPoint) { num = $append(num, 46); } while (true) { if (!(digits > 0)) { break; } num = $append(num, 48); digits = digits - (1) >> 0; } num = $appendSlice(num, tail); } if (f.fmtFlags.plus || !(((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43))) { if (f.fmtFlags.zero && f.fmtFlags.widPresent && f.wid > num.$length) { f.buf.WriteByte((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0])); f.writePadding(f.wid - num.$length >> 0); f.buf.Write($subslice(num, 1)); return; } f.pad(num); return; } f.pad($subslice(num, 1)); }; fmt.prototype.fmt_float = function(v, size, verb, prec) { return this.$val.fmt_float(v, size, verb, prec); }; $ptrType(buffer).prototype.Write = function(p) { var b, p; b = this; b.$set($appendSlice(b.$get(), p)); }; $ptrType(buffer).prototype.WriteString = function(s) { var b, s; b = this; b.$set($appendSlice(b.$get(), s)); }; $ptrType(buffer).prototype.WriteByte = function(c) { var b, c; b = this; b.$set($append(b.$get(), c)); }; $ptrType(buffer).prototype.WriteRune = function(r) { var b, bp, n, r, w, x; bp = this; if (r < 128) { bp.$set($append(bp.$get(), ((r << 24 >>> 24)))); return; } b = bp.$get(); n = b.$length; while (true) { if (!((n + 4 >> 0) > b.$capacity)) { break; } b = $append(b, 0); } w = utf8.EncodeRune((x = $subslice(b, n, (n + 4 >> 0)), $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length)), r); bp.$set($subslice(b, 0, (n + w >> 0))); }; newPrinter = function() { var _r, p, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ppFree.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } p = $assertType(_r, ptrType$2); p.panicking = false; p.erroring = false; p.fmt.init((p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))); $s = -1; return p; /* */ } return; } if ($f === undefined) { $f = { $blk: newPrinter }; } $f._r = _r; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; }; pp.ptr.prototype.free = function() { var p; p = this; p.buf = $subslice(p.buf, 0, 0); p.arg = $ifaceNil; p.value = new reflect.Value.ptr(ptrType.nil, 0, 0); ppFree.Put(p); }; pp.prototype.free = function() { return this.$val.free(); }; pp.ptr.prototype.Width = function() { var _tmp, _tmp$1, ok, p, wid; wid = 0; ok = false; p = this; _tmp = p.fmt.wid; _tmp$1 = p.fmt.fmtFlags.widPresent; wid = _tmp; ok = _tmp$1; return [wid, ok]; }; pp.prototype.Width = function() { return this.$val.Width(); }; pp.ptr.prototype.Precision = function() { var _tmp, _tmp$1, ok, p, prec; prec = 0; ok = false; p = this; _tmp = p.fmt.prec; _tmp$1 = p.fmt.fmtFlags.precPresent; prec = _tmp; ok = _tmp$1; return [prec, ok]; }; pp.prototype.Precision = function() { return this.$val.Precision(); }; pp.ptr.prototype.Flag = function(b) { var _1, b, p; p = this; _1 = b; if (_1 === (45)) { return p.fmt.fmtFlags.minus; } else if (_1 === (43)) { return p.fmt.fmtFlags.plus || p.fmt.fmtFlags.plusV; } else if (_1 === (35)) { return p.fmt.fmtFlags.sharp || p.fmt.fmtFlags.sharpV; } else if (_1 === (32)) { return p.fmt.fmtFlags.space; } else if (_1 === (48)) { return p.fmt.fmtFlags.zero; } return false; }; pp.prototype.Flag = function(b) { return this.$val.Flag(b); }; pp.ptr.prototype.Write = function(b) { var _tmp, _tmp$1, b, err, p, ret; ret = 0; err = $ifaceNil; p = this; (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).Write(b); _tmp = b.$length; _tmp$1 = $ifaceNil; ret = _tmp; err = _tmp$1; return [ret, err]; }; pp.prototype.Write = function(b) { return this.$val.Write(b); }; Fprintf = function(w, format, a) { var _r, _r$1, _tuple, a, err, format, n, p, w, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; a = $f.a; err = $f.err; format = $f.format; n = $f.n; p = $f.p; w = $f.w; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } p = _r; $r = p.doPrintf(format, a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$1 = w.Write((x = p.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length))); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; n = _tuple[0]; err = _tuple[1]; p.free(); $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Fprintf }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.a = a; $f.err = err; $f.format = format; $f.n = n; $f.p = p; $f.w = w; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Fprintf = Fprintf; Sprintf = function(format, a) { var _r, a, format, p, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; format = $f.format; p = $f.p; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } p = _r; $r = p.doPrintf(format, a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } s = ($bytesToString(p.buf)); p.free(); $s = -1; return s; /* */ } return; } if ($f === undefined) { $f = { $blk: Sprintf }; } $f._r = _r; $f.a = a; $f.format = format; $f.p = p; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Sprintf = Sprintf; Errorf = function(format, a) { var _r, _r$1, a, format, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; a = $f.a; format = $f.format; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Sprintf(format, a); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = errors.New(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: Errorf }; } $f._r = _r; $f._r$1 = _r$1; $f.a = a; $f.format = format; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Errorf = Errorf; Fprint = function(w, a) { var _r, _r$1, _tuple, a, err, n, p, w, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; a = $f.a; err = $f.err; n = $f.n; p = $f.p; w = $f.w; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } p = _r; $r = p.doPrint(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$1 = w.Write((x = p.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length))); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; n = _tuple[0]; err = _tuple[1]; p.free(); $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Fprint }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.a = a; $f.err = err; $f.n = n; $f.p = p; $f.w = w; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Fprint = Fprint; Print = function(a) { var _r, _tuple, a, err, n, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; a = $f.a; err = $f.err; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; _r = Fprint(os.Stdout, a); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Print }; } $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.err = err; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Print = Print; Sprint = function(a) { var _r, a, p, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; p = $f.p; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } p = _r; $r = p.doPrint(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } s = ($bytesToString(p.buf)); p.free(); $s = -1; return s; /* */ } return; } if ($f === undefined) { $f = { $blk: Sprint }; } $f._r = _r; $f.a = a; $f.p = p; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Sprint = Sprint; Fprintln = function(w, a) { var _r, _r$1, _tuple, a, err, n, p, w, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; a = $f.a; err = $f.err; n = $f.n; p = $f.p; w = $f.w; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } p = _r; $r = p.doPrintln(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$1 = w.Write((x = p.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length))); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; n = _tuple[0]; err = _tuple[1]; p.free(); $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Fprintln }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.a = a; $f.err = err; $f.n = n; $f.p = p; $f.w = w; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Fprintln = Fprintln; getField = function(v, i) { var _r, _r$1, i, v, val, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; i = $f.i; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = $clone(v, reflect.Value).Field(i); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } val = _r; /* */ if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { $s = 2; continue; } /* */ $s = 3; continue; /* if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { */ case 2: _r$1 = $clone(val, reflect.Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } val = _r$1; /* } */ case 3: $s = -1; return val; /* */ } return; } if ($f === undefined) { $f = { $blk: getField }; } $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; }; tooLarge = function(x) { var x; return x > 1000000 || x < -1000000; }; parsenum = function(s, start, end) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, end, isnum, newi, num, s, start; num = 0; isnum = false; newi = 0; if (start >= end) { _tmp = 0; _tmp$1 = false; _tmp$2 = end; num = _tmp; isnum = _tmp$1; newi = _tmp$2; return [num, isnum, newi]; } newi = start; while (true) { if (!(newi < end && 48 <= s.charCodeAt(newi) && s.charCodeAt(newi) <= 57)) { break; } if (tooLarge(num)) { _tmp$3 = 0; _tmp$4 = false; _tmp$5 = end; num = _tmp$3; isnum = _tmp$4; newi = _tmp$5; return [num, isnum, newi]; } num = ($imul(num, 10)) + (((s.charCodeAt(newi) - 48 << 24 >>> 24) >> 0)) >> 0; isnum = true; newi = newi + (1) >> 0; } return [num, isnum, newi]; }; pp.ptr.prototype.unknownType = function(v) { var _r, p, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; if (!$clone(v, reflect.Value).IsValid()) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); $s = -1; return; } (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(63); _r = $clone(v, reflect.Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(63); $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.unknownType }; } $f._r = _r; $f.p = p; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; pp.prototype.unknownType = function(v) { return this.$val.unknownType(v); }; pp.ptr.prototype.badVerb = function(verb) { var _r, _r$1, p, verb, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; p = $f.p; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; p.erroring = true; (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(40); /* */ if (!($interfaceIsEqual(p.arg, $ifaceNil))) { $s = 2; continue; } /* */ if ($clone(p.value, reflect.Value).IsValid()) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!($interfaceIsEqual(p.arg, $ifaceNil))) { */ case 2: _r = reflect.TypeOf(p.arg).String(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(61); $r = p.printArg(p.arg, 118); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 5; continue; /* } else if ($clone(p.value, reflect.Value).IsValid()) { */ case 3: _r$1 = $clone(p.value, reflect.Value).Type().String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(61); $r = p.printValue($clone(p.value, reflect.Value), 118, 0); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 5; continue; /* } else { */ case 4: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); /* } */ case 5: case 1: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); p.erroring = false; $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.badVerb }; } $f._r = _r; $f._r$1 = _r$1; $f.p = p; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; }; pp.prototype.badVerb = function(verb) { return this.$val.badVerb(verb); }; pp.ptr.prototype.fmtBool = function(v, verb) { var _1, p, v, verb, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; _1 = verb; /* */ if ((_1 === (116)) || (_1 === (118))) { $s = 2; continue; } /* */ $s = 3; continue; /* if ((_1 === (116)) || (_1 === (118))) { */ case 2: p.fmt.fmt_boolean(v); $s = 4; continue; /* } else { */ case 3: $r = p.badVerb(verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 4: case 1: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtBool }; } $f._1 = _1; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; }; pp.prototype.fmtBool = function(v, verb) { return this.$val.fmtBool(v, verb); }; pp.ptr.prototype.fmt0x64 = function(v, leading0x) { var leading0x, p, sharp, v; p = this; sharp = p.fmt.fmtFlags.sharp; p.fmt.fmtFlags.sharp = leading0x; p.fmt.fmt_integer(v, 16, false, "0123456789abcdefx"); p.fmt.fmtFlags.sharp = sharp; }; pp.prototype.fmt0x64 = function(v, leading0x) { return this.$val.fmt0x64(v, leading0x); }; pp.ptr.prototype.fmtInteger = function(v, isSigned, verb) { var _1, isSigned, p, v, verb, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; isSigned = $f.isSigned; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; _1 = verb; /* */ if (_1 === (118)) { $s = 2; continue; } /* */ if (_1 === (100)) { $s = 3; continue; } /* */ if (_1 === (98)) { $s = 4; continue; } /* */ if (_1 === (111)) { $s = 5; continue; } /* */ if (_1 === (120)) { $s = 6; continue; } /* */ if (_1 === (88)) { $s = 7; continue; } /* */ if (_1 === (99)) { $s = 8; continue; } /* */ if (_1 === (113)) { $s = 9; continue; } /* */ if (_1 === (85)) { $s = 10; continue; } /* */ $s = 11; continue; /* if (_1 === (118)) { */ case 2: if (p.fmt.fmtFlags.sharpV && !isSigned) { p.fmt0x64(v, true); } else { p.fmt.fmt_integer(v, 10, isSigned, "0123456789abcdefx"); } $s = 12; continue; /* } else if (_1 === (100)) { */ case 3: p.fmt.fmt_integer(v, 10, isSigned, "0123456789abcdefx"); $s = 12; continue; /* } else if (_1 === (98)) { */ case 4: p.fmt.fmt_integer(v, 2, isSigned, "0123456789abcdefx"); $s = 12; continue; /* } else if (_1 === (111)) { */ case 5: p.fmt.fmt_integer(v, 8, isSigned, "0123456789abcdefx"); $s = 12; continue; /* } else if (_1 === (120)) { */ case 6: p.fmt.fmt_integer(v, 16, isSigned, "0123456789abcdefx"); $s = 12; continue; /* } else if (_1 === (88)) { */ case 7: p.fmt.fmt_integer(v, 16, isSigned, "0123456789ABCDEFX"); $s = 12; continue; /* } else if (_1 === (99)) { */ case 8: p.fmt.fmt_c(v); $s = 12; continue; /* } else if (_1 === (113)) { */ case 9: /* */ if ((v.$high < 0 || (v.$high === 0 && v.$low <= 1114111))) { $s = 13; continue; } /* */ $s = 14; continue; /* if ((v.$high < 0 || (v.$high === 0 && v.$low <= 1114111))) { */ case 13: p.fmt.fmt_qc(v); $s = 15; continue; /* } else { */ case 14: $r = p.badVerb(verb); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 15: $s = 12; continue; /* } else if (_1 === (85)) { */ case 10: p.fmt.fmt_unicode(v); $s = 12; continue; /* } else { */ case 11: $r = p.badVerb(verb); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 12: case 1: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtInteger }; } $f._1 = _1; $f.isSigned = isSigned; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; }; pp.prototype.fmtInteger = function(v, isSigned, verb) { return this.$val.fmtInteger(v, isSigned, verb); }; pp.ptr.prototype.fmtFloat = function(v, size, verb) { var _1, p, size, v, verb, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; p = $f.p; size = $f.size; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; _1 = verb; /* */ if (_1 === (118)) { $s = 2; continue; } /* */ if ((_1 === (98)) || (_1 === (103)) || (_1 === (71))) { $s = 3; continue; } /* */ if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { $s = 4; continue; } /* */ if (_1 === (70)) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_1 === (118)) { */ case 2: p.fmt.fmt_float(v, size, 103, -1); $s = 7; continue; /* } else if ((_1 === (98)) || (_1 === (103)) || (_1 === (71))) { */ case 3: p.fmt.fmt_float(v, size, verb, -1); $s = 7; continue; /* } else if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { */ case 4: p.fmt.fmt_float(v, size, verb, 6); $s = 7; continue; /* } else if (_1 === (70)) { */ case 5: p.fmt.fmt_float(v, size, 102, 6); $s = 7; continue; /* } else { */ case 6: $r = p.badVerb(verb); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 7: case 1: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtFloat }; } $f._1 = _1; $f.p = p; $f.size = size; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; }; pp.prototype.fmtFloat = function(v, size, verb) { return this.$val.fmtFloat(v, size, verb); }; pp.ptr.prototype.fmtComplex = function(v, size, verb) { var _1, _q, _q$1, oldPlus, p, size, v, verb, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _q = $f._q; _q$1 = $f._q$1; oldPlus = $f.oldPlus; p = $f.p; size = $f.size; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; _1 = verb; /* */ if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { $s = 2; continue; } /* */ $s = 3; continue; /* if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { */ case 2: oldPlus = p.fmt.fmtFlags.plus; (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(40); $r = p.fmtFloat(v.$real, (_q = size / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.fmt.fmtFlags.plus = true; $r = p.fmtFloat(v.$imag, (_q$1 = size / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("i)"); p.fmt.fmtFlags.plus = oldPlus; $s = 4; continue; /* } else { */ case 3: $r = p.badVerb(verb); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 4: case 1: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtComplex }; } $f._1 = _1; $f._q = _q; $f._q$1 = _q$1; $f.oldPlus = oldPlus; $f.p = p; $f.size = size; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; }; pp.prototype.fmtComplex = function(v, size, verb) { return this.$val.fmtComplex(v, size, verb); }; pp.ptr.prototype.fmtString = function(v, verb) { var _1, p, v, verb, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; _1 = verb; /* */ if (_1 === (118)) { $s = 2; continue; } /* */ if (_1 === (115)) { $s = 3; continue; } /* */ if (_1 === (120)) { $s = 4; continue; } /* */ if (_1 === (88)) { $s = 5; continue; } /* */ if (_1 === (113)) { $s = 6; continue; } /* */ $s = 7; continue; /* if (_1 === (118)) { */ case 2: if (p.fmt.fmtFlags.sharpV) { p.fmt.fmt_q(v); } else { p.fmt.fmt_s(v); } $s = 8; continue; /* } else if (_1 === (115)) { */ case 3: p.fmt.fmt_s(v); $s = 8; continue; /* } else if (_1 === (120)) { */ case 4: p.fmt.fmt_sx(v, "0123456789abcdefx"); $s = 8; continue; /* } else if (_1 === (88)) { */ case 5: p.fmt.fmt_sx(v, "0123456789ABCDEFX"); $s = 8; continue; /* } else if (_1 === (113)) { */ case 6: p.fmt.fmt_q(v); $s = 8; continue; /* } else { */ case 7: $r = p.badVerb(verb); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: case 1: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtString }; } $f._1 = _1; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; }; pp.prototype.fmtString = function(v, verb) { return this.$val.fmtString(v, verb); }; pp.ptr.prototype.fmtBytes = function(v, verb, typeString) { var _1, _i, _i$1, _r, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; c = $f.c; c$1 = $f.c$1; i = $f.i; i$1 = $f.i$1; p = $f.p; typeString = $f.typeString; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; _1 = verb; /* */ if ((_1 === (118)) || (_1 === (100))) { $s = 2; continue; } /* */ if (_1 === (115)) { $s = 3; continue; } /* */ if (_1 === (120)) { $s = 4; continue; } /* */ if (_1 === (88)) { $s = 5; continue; } /* */ if (_1 === (113)) { $s = 6; continue; } /* */ $s = 7; continue; /* if ((_1 === (118)) || (_1 === (100))) { */ case 2: if (p.fmt.fmtFlags.sharpV) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(typeString); if (v === sliceType$2.nil) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); $s = -1; return; } (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); _ref = v; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (i > 0) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); } p.fmt0x64((new $Uint64(0, c)), true); _i++; } (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); } else { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(91); _ref$1 = v; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } i$1 = _i$1; c$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); if (i$1 > 0) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); } p.fmt.fmt_integer((new $Uint64(0, c$1)), 10, false, "0123456789abcdefx"); _i$1++; } (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(93); } $s = 8; continue; /* } else if (_1 === (115)) { */ case 3: p.fmt.fmt_s(($bytesToString(v))); $s = 8; continue; /* } else if (_1 === (120)) { */ case 4: p.fmt.fmt_bx(v, "0123456789abcdefx"); $s = 8; continue; /* } else if (_1 === (88)) { */ case 5: p.fmt.fmt_bx(v, "0123456789ABCDEFX"); $s = 8; continue; /* } else if (_1 === (113)) { */ case 6: p.fmt.fmt_q(($bytesToString(v))); $s = 8; continue; /* } else { */ case 7: _r = reflect.ValueOf(v); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $r = p.printValue($clone(_r, reflect.Value), verb, 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: case 1: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtBytes }; } $f._1 = _1; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f.c = c; $f.c$1 = c$1; $f.i = i; $f.i$1 = i$1; $f.p = p; $f.typeString = typeString; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; }; pp.prototype.fmtBytes = function(v, verb, typeString) { return this.$val.fmtBytes(v, verb, typeString); }; pp.ptr.prototype.fmtPointer = function(value, verb) { var _1, _2, _r, p, u, value, verb, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _r = $f._r; p = $f.p; u = $f.u; value = $f.value; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; u = 0; _1 = $clone(value, reflect.Value).Kind(); /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { $s = 2; continue; } /* */ $s = 3; continue; /* if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { */ case 2: u = $clone(value, reflect.Value).Pointer(); $s = 4; continue; /* } else { */ case 3: $r = p.badVerb(verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 4: case 1: _2 = verb; /* */ if (_2 === (118)) { $s = 7; continue; } /* */ if (_2 === (112)) { $s = 8; continue; } /* */ if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { $s = 9; continue; } /* */ $s = 10; continue; /* if (_2 === (118)) { */ case 7: /* */ if (p.fmt.fmtFlags.sharpV) { $s = 12; continue; } /* */ $s = 13; continue; /* if (p.fmt.fmtFlags.sharpV) { */ case 12: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(40); _r = $clone(value, reflect.Value).Type().String(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(")("); if (u === 0) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("nil"); } else { p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), true); } (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); $s = 14; continue; /* } else { */ case 13: if (u === 0) { p.fmt.padString(""); } else { p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp); } /* } */ case 14: $s = 11; continue; /* } else if (_2 === (112)) { */ case 8: p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp); $s = 11; continue; /* } else if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { */ case 9: $r = p.fmtInteger((new $Uint64(0, u.constructor === Number ? u : 1)), false, verb); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 11; continue; /* } else { */ case 10: $r = p.badVerb(verb); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 11: case 6: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtPointer }; } $f._1 = _1; $f._2 = _2; $f._r = _r; $f.p = p; $f.u = u; $f.value = value; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; }; pp.prototype.fmtPointer = function(value, verb) { return this.$val.fmtPointer(value, verb); }; pp.ptr.prototype.catchPanic = function(arg, verb) { var _r, arg, err, oldFlags, p, v, verb, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; arg = $f.arg; err = $f.err; oldFlags = $f.oldFlags; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; err = $recover(); /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1: _r = reflect.ValueOf(arg); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } v = _r; if (($clone(v, reflect.Value).Kind() === 22) && $clone(v, reflect.Value).IsNil()) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); $s = -1; return; } if (p.panicking) { $panic(err); } oldFlags = $clone(p.fmt.fmtFlags, fmtFlags); p.fmt.clearflags(); (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(PANIC="); p.panicking = true; $r = p.printArg(err, 118); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.panicking = false; (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); fmtFlags.copy(p.fmt.fmtFlags, oldFlags); /* } */ case 2: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.catchPanic }; } $f._r = _r; $f.arg = arg; $f.err = err; $f.oldFlags = oldFlags; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; }; pp.prototype.catchPanic = function(arg, verb) { return this.$val.catchPanic(arg, verb); }; pp.ptr.prototype.handleMethods = function(verb) { var _1, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, formatter, handled, ok, ok$1, p, stringer, v, v$1, verb, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; formatter = $f.formatter; handled = $f.handled; ok = $f.ok; ok$1 = $f.ok$1; p = $f.p; stringer = $f.stringer; v = $f.v; v$1 = $f.v$1; verb = $f.verb; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); handled = false; p = this; if (p.erroring) { $s = -1; return handled; } _tuple = $assertType(p.arg, Formatter, true); formatter = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 1; continue; } /* */ $s = 2; continue; /* if (ok) { */ case 1: handled = true; $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb]]); $r = formatter.Format(p, verb); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return handled; /* } */ case 2: /* */ if (p.fmt.fmtFlags.sharpV) { $s = 4; continue; } /* */ $s = 5; continue; /* if (p.fmt.fmtFlags.sharpV) { */ case 4: _tuple$1 = $assertType(p.arg, GoStringer, true); stringer = _tuple$1[0]; ok$1 = _tuple$1[1]; /* */ if (ok$1) { $s = 7; continue; } /* */ $s = 8; continue; /* if (ok$1) { */ case 7: handled = true; $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb]]); _r = stringer.GoString(); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $r = p.fmt.fmt_s(_r); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return handled; /* } */ case 8: $s = 6; continue; /* } else { */ case 5: _1 = verb; /* */ if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { $s = 12; continue; } /* */ $s = 13; continue; /* if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { */ case 12: _ref = p.arg; /* */ if ($assertType(_ref, $error, true)[1]) { $s = 14; continue; } /* */ if ($assertType(_ref, Stringer, true)[1]) { $s = 15; continue; } /* */ $s = 16; continue; /* if ($assertType(_ref, $error, true)[1]) { */ case 14: v = _ref; handled = true; $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb]]); _r$1 = v.Error(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $r = p.fmtString(_r$1, verb); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return handled; /* } else if ($assertType(_ref, Stringer, true)[1]) { */ case 15: v$1 = _ref; handled = true; $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb]]); _r$2 = v$1.String(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $r = p.fmtString(_r$2, verb); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return handled; /* } */ case 16: /* } */ case 13: case 11: /* } */ case 6: handled = false; $s = -1; return handled; /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return handled; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: pp.ptr.prototype.handleMethods }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.formatter = formatter; $f.handled = handled; $f.ok = ok; $f.ok$1 = ok$1; $f.p = p; $f.stringer = stringer; $f.v = v; $f.v$1 = v$1; $f.verb = verb; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; pp.prototype.handleMethods = function(verb) { return this.$val.handleMethods(verb); }; pp.ptr.prototype.printArg = function(arg, verb) { var _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _ref = $f._ref; arg = $f.arg; f = $f.f; f$1 = $f.f$1; f$10 = $f.f$10; f$11 = $f.f$11; f$12 = $f.f$12; f$13 = $f.f$13; f$14 = $f.f$14; f$15 = $f.f$15; f$16 = $f.f$16; f$17 = $f.f$17; f$18 = $f.f$18; f$19 = $f.f$19; f$2 = $f.f$2; f$3 = $f.f$3; f$4 = $f.f$4; f$5 = $f.f$5; f$6 = $f.f$6; f$7 = $f.f$7; f$8 = $f.f$8; f$9 = $f.f$9; p = $f.p; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; p.arg = arg; p.value = new reflect.Value.ptr(ptrType.nil, 0, 0); /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 1; continue; } /* */ $s = 2; continue; /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 1: _1 = verb; /* */ if ((_1 === (84)) || (_1 === (118))) { $s = 4; continue; } /* */ $s = 5; continue; /* if ((_1 === (84)) || (_1 === (118))) { */ case 4: p.fmt.padString(""); $s = 6; continue; /* } else { */ case 5: $r = p.badVerb(verb); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: case 3: $s = -1; return; /* } */ case 2: _2 = verb; /* */ if (_2 === (84)) { $s = 9; continue; } /* */ if (_2 === (112)) { $s = 10; continue; } /* */ $s = 11; continue; /* if (_2 === (84)) { */ case 9: _r = reflect.TypeOf(arg).String(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $r = p.fmt.fmt_s(_r); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } else if (_2 === (112)) { */ case 10: _r$1 = reflect.ValueOf(arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $r = p.fmtPointer($clone(_r$1, reflect.Value), 112); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 11: case 8: _ref = arg; /* */ if ($assertType(_ref, $Bool, true)[1]) { $s = 16; continue; } /* */ if ($assertType(_ref, $Float32, true)[1]) { $s = 17; continue; } /* */ if ($assertType(_ref, $Float64, true)[1]) { $s = 18; continue; } /* */ if ($assertType(_ref, $Complex64, true)[1]) { $s = 19; continue; } /* */ if ($assertType(_ref, $Complex128, true)[1]) { $s = 20; continue; } /* */ if ($assertType(_ref, $Int, true)[1]) { $s = 21; continue; } /* */ if ($assertType(_ref, $Int8, true)[1]) { $s = 22; continue; } /* */ if ($assertType(_ref, $Int16, true)[1]) { $s = 23; continue; } /* */ if ($assertType(_ref, $Int32, true)[1]) { $s = 24; continue; } /* */ if ($assertType(_ref, $Int64, true)[1]) { $s = 25; continue; } /* */ if ($assertType(_ref, $Uint, true)[1]) { $s = 26; continue; } /* */ if ($assertType(_ref, $Uint8, true)[1]) { $s = 27; continue; } /* */ if ($assertType(_ref, $Uint16, true)[1]) { $s = 28; continue; } /* */ if ($assertType(_ref, $Uint32, true)[1]) { $s = 29; continue; } /* */ if ($assertType(_ref, $Uint64, true)[1]) { $s = 30; continue; } /* */ if ($assertType(_ref, $Uintptr, true)[1]) { $s = 31; continue; } /* */ if ($assertType(_ref, $String, true)[1]) { $s = 32; continue; } /* */ if ($assertType(_ref, sliceType$2, true)[1]) { $s = 33; continue; } /* */ if ($assertType(_ref, reflect.Value, true)[1]) { $s = 34; continue; } /* */ $s = 35; continue; /* if ($assertType(_ref, $Bool, true)[1]) { */ case 16: f = _ref.$val; $r = p.fmtBool(f, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $Float32, true)[1]) { */ case 17: f$1 = _ref.$val; $r = p.fmtFloat((f$1), 32, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $Float64, true)[1]) { */ case 18: f$2 = _ref.$val; $r = p.fmtFloat(f$2, 64, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $Complex64, true)[1]) { */ case 19: f$3 = _ref.$val; $r = p.fmtComplex((new $Complex128(f$3.$real, f$3.$imag)), 64, verb); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $Complex128, true)[1]) { */ case 20: f$4 = _ref.$val; $r = p.fmtComplex(f$4, 128, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $Int, true)[1]) { */ case 21: f$5 = _ref.$val; $r = p.fmtInteger((new $Uint64(0, f$5)), true, verb); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $Int8, true)[1]) { */ case 22: f$6 = _ref.$val; $r = p.fmtInteger((new $Uint64(0, f$6)), true, verb); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $Int16, true)[1]) { */ case 23: f$7 = _ref.$val; $r = p.fmtInteger((new $Uint64(0, f$7)), true, verb); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $Int32, true)[1]) { */ case 24: f$8 = _ref.$val; $r = p.fmtInteger((new $Uint64(0, f$8)), true, verb); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $Int64, true)[1]) { */ case 25: f$9 = _ref.$val; $r = p.fmtInteger((new $Uint64(f$9.$high, f$9.$low)), true, verb); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $Uint, true)[1]) { */ case 26: f$10 = _ref.$val; $r = p.fmtInteger((new $Uint64(0, f$10)), false, verb); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $Uint8, true)[1]) { */ case 27: f$11 = _ref.$val; $r = p.fmtInteger((new $Uint64(0, f$11)), false, verb); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $Uint16, true)[1]) { */ case 28: f$12 = _ref.$val; $r = p.fmtInteger((new $Uint64(0, f$12)), false, verb); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $Uint32, true)[1]) { */ case 29: f$13 = _ref.$val; $r = p.fmtInteger((new $Uint64(0, f$13)), false, verb); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $Uint64, true)[1]) { */ case 30: f$14 = _ref.$val; $r = p.fmtInteger(f$14, false, verb); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $Uintptr, true)[1]) { */ case 31: f$15 = _ref.$val; $r = p.fmtInteger((new $Uint64(0, f$15.constructor === Number ? f$15 : 1)), false, verb); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, $String, true)[1]) { */ case 32: f$16 = _ref.$val; $r = p.fmtString(f$16, verb); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, sliceType$2, true)[1]) { */ case 33: f$17 = _ref.$val; $r = p.fmtBytes(f$17, verb, "[]byte"); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else if ($assertType(_ref, reflect.Value, true)[1]) { */ case 34: f$18 = _ref.$val; /* */ if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { $s = 55; continue; } /* */ $s = 56; continue; /* if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { */ case 55: _r$2 = $clone(f$18, reflect.Value).Interface(); /* */ $s = 57; case 57: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } p.arg = _r$2; _r$3 = p.handleMethods(verb); /* */ $s = 60; case 60: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3) { $s = 58; continue; } /* */ $s = 59; continue; /* if (_r$3) { */ case 58: $s = -1; return; /* } */ case 59: /* } */ case 56: $r = p.printValue($clone(f$18, reflect.Value), verb, 0); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 36; continue; /* } else { */ case 35: f$19 = _ref; _r$4 = p.handleMethods(verb); /* */ $s = 64; case 64: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } /* */ if (!_r$4) { $s = 62; continue; } /* */ $s = 63; continue; /* if (!_r$4) { */ case 62: _r$5 = reflect.ValueOf(f$19); /* */ $s = 65; case 65: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $r = p.printValue($clone(_r$5, reflect.Value), verb, 0); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 63: /* } */ case 36: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.printArg }; } $f._1 = _1; $f._2 = _2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._ref = _ref; $f.arg = arg; $f.f = f; $f.f$1 = f$1; $f.f$10 = f$10; $f.f$11 = f$11; $f.f$12 = f$12; $f.f$13 = f$13; $f.f$14 = f$14; $f.f$15 = f$15; $f.f$16 = f$16; $f.f$17 = f$17; $f.f$18 = f$18; $f.f$19 = f$19; $f.f$2 = f$2; $f.f$3 = f$3; $f.f$4 = f$4; $f.f$5 = f$5; $f.f$6 = f$6; $f.f$7 = f$7; $f.f$8 = f$8; $f.f$9 = f$9; $f.p = p; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; }; pp.prototype.printArg = function(arg, verb) { return this.$val.printArg(arg, verb); }; pp.ptr.prototype.printValue = function(value, verb, depth) { var _1, _2, _3, _4, _arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, keys, name, p, t, value, value$1, verb, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$20 = $f._r$20; _r$21 = $f._r$21; _r$22 = $f._r$22; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; a = $f.a; bytes = $f.bytes; depth = $f.depth; f = $f.f; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; i$4 = $f.i$4; key = $f.key; keys = $f.keys; name = $f.name; p = $f.p; t = $f.t; value = $f.value; value$1 = $f.value$1; verb = $f.verb; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; /* */ if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { $s = 1; continue; } /* */ $s = 2; continue; /* if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { */ case 1: _r = $clone(value, reflect.Value).Interface(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } p.arg = _r; _r$1 = p.handleMethods(verb); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_r$1) { */ case 4: $s = -1; return; /* } */ case 5: /* } */ case 2: p.arg = $ifaceNil; p.value = value; f = value; _1 = $clone(value, reflect.Value).Kind(); /* */ if (_1 === (0)) { $s = 8; continue; } /* */ if (_1 === (1)) { $s = 9; continue; } /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 10; continue; } /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 11; continue; } /* */ if (_1 === (13)) { $s = 12; continue; } /* */ if (_1 === (14)) { $s = 13; continue; } /* */ if (_1 === (15)) { $s = 14; continue; } /* */ if (_1 === (16)) { $s = 15; continue; } /* */ if (_1 === (24)) { $s = 16; continue; } /* */ if (_1 === (21)) { $s = 17; continue; } /* */ if (_1 === (25)) { $s = 18; continue; } /* */ if (_1 === (20)) { $s = 19; continue; } /* */ if ((_1 === (17)) || (_1 === (23))) { $s = 20; continue; } /* */ if (_1 === (22)) { $s = 21; continue; } /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { $s = 22; continue; } /* */ $s = 23; continue; /* if (_1 === (0)) { */ case 8: /* */ if (depth === 0) { $s = 25; continue; } /* */ $s = 26; continue; /* if (depth === 0) { */ case 25: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); $s = 27; continue; /* } else { */ case 26: _2 = verb; /* */ if (_2 === (118)) { $s = 29; continue; } /* */ $s = 30; continue; /* if (_2 === (118)) { */ case 29: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); $s = 31; continue; /* } else { */ case 30: $r = p.badVerb(verb); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 31: case 28: /* } */ case 27: $s = 24; continue; /* } else if (_1 === (1)) { */ case 9: $r = p.fmtBool($clone(f, reflect.Value).Bool(), verb); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 24; continue; /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 10: $r = p.fmtInteger(((x = $clone(f, reflect.Value).Int(), new $Uint64(x.$high, x.$low))), true, verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 24; continue; /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 11: $r = p.fmtInteger($clone(f, reflect.Value).Uint(), false, verb); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 24; continue; /* } else if (_1 === (13)) { */ case 12: $r = p.fmtFloat($clone(f, reflect.Value).Float(), 32, verb); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 24; continue; /* } else if (_1 === (14)) { */ case 13: $r = p.fmtFloat($clone(f, reflect.Value).Float(), 64, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 24; continue; /* } else if (_1 === (15)) { */ case 14: $r = p.fmtComplex($clone(f, reflect.Value).Complex(), 64, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 24; continue; /* } else if (_1 === (16)) { */ case 15: $r = p.fmtComplex($clone(f, reflect.Value).Complex(), 128, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 24; continue; /* } else if (_1 === (24)) { */ case 16: _r$2 = $clone(f, reflect.Value).String(); /* */ $s = 40; case 40: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $r = p.fmtString(_r$2, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 24; continue; /* } else if (_1 === (21)) { */ case 17: /* */ if (p.fmt.fmtFlags.sharpV) { $s = 42; continue; } /* */ $s = 43; continue; /* if (p.fmt.fmtFlags.sharpV) { */ case 42: _r$3 = $clone(f, reflect.Value).Type().String(); /* */ $s = 45; case 45: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$3); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if ($clone(f, reflect.Value).IsNil()) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); $s = -1; return; } (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); $s = 44; continue; /* } else { */ case 43: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("map["); /* } */ case 44: _r$4 = $clone(f, reflect.Value).MapKeys(); /* */ $s = 47; case 47: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } keys = _r$4; _ref = keys; _i = 0; /* while (true) { */ case 48: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 49; continue; } i = _i; key = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (i > 0) { if (p.fmt.fmtFlags.sharpV) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); } else { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); } } $r = p.printValue($clone(key, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(58); _r$5 = $clone(f, reflect.Value).MapIndex($clone(key, reflect.Value)); /* */ $s = 51; case 51: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $r = p.printValue($clone(_r$5, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; /* } */ $s = 48; continue; case 49: if (p.fmt.fmtFlags.sharpV) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); } else { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(93); } $s = 24; continue; /* } else if (_1 === (25)) { */ case 18: /* */ if (p.fmt.fmtFlags.sharpV) { $s = 53; continue; } /* */ $s = 54; continue; /* if (p.fmt.fmtFlags.sharpV) { */ case 53: _r$6 = $clone(f, reflect.Value).Type().String(); /* */ $s = 55; case 55: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$6); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 54: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); i$1 = 0; /* while (true) { */ case 57: /* if (!(i$1 < $clone(f, reflect.Value).NumField())) { break; } */ if(!(i$1 < $clone(f, reflect.Value).NumField())) { $s = 58; continue; } if (i$1 > 0) { if (p.fmt.fmtFlags.sharpV) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); } else { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); } } /* */ if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { $s = 59; continue; } /* */ $s = 60; continue; /* if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { */ case 59: _r$7 = $clone(f, reflect.Value).Type().Field(i$1); /* */ $s = 61; case 61: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } name = _r$7.Name; if (!(name === "")) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(name); (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(58); } /* } */ case 60: _r$8 = getField($clone(f, reflect.Value), i$1); /* */ $s = 62; case 62: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $r = p.printValue($clone(_r$8, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$1 = i$1 + (1) >> 0; /* } */ $s = 57; continue; case 58: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); $s = 24; continue; /* } else if (_1 === (20)) { */ case 19: _r$9 = $clone(f, reflect.Value).Elem(); /* */ $s = 64; case 64: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } value$1 = _r$9; /* */ if (!$clone(value$1, reflect.Value).IsValid()) { $s = 65; continue; } /* */ $s = 66; continue; /* if (!$clone(value$1, reflect.Value).IsValid()) { */ case 65: /* */ if (p.fmt.fmtFlags.sharpV) { $s = 68; continue; } /* */ $s = 69; continue; /* if (p.fmt.fmtFlags.sharpV) { */ case 68: _r$10 = $clone(f, reflect.Value).Type().String(); /* */ $s = 71; case 71: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$10); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); $s = 70; continue; /* } else { */ case 69: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); /* } */ case 70: $s = 67; continue; /* } else { */ case 66: $r = p.printValue($clone(value$1, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 67: $s = 24; continue; /* } else if ((_1 === (17)) || (_1 === (23))) { */ case 20: _3 = verb; /* */ if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { $s = 75; continue; } /* */ $s = 76; continue; /* if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { */ case 75: t = $clone(f, reflect.Value).Type(); _r$11 = t.Elem(); /* */ $s = 79; case 79: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _r$12 = _r$11.Kind(); /* */ $s = 80; case 80: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } /* */ if (_r$12 === 8) { $s = 77; continue; } /* */ $s = 78; continue; /* if (_r$12 === 8) { */ case 77: bytes = sliceType$2.nil; /* */ if ($clone(f, reflect.Value).Kind() === 23) { $s = 81; continue; } /* */ if ($clone(f, reflect.Value).CanAddr()) { $s = 82; continue; } /* */ $s = 83; continue; /* if ($clone(f, reflect.Value).Kind() === 23) { */ case 81: _r$13 = $clone(f, reflect.Value).Bytes(); /* */ $s = 85; case 85: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } bytes = _r$13; $s = 84; continue; /* } else if ($clone(f, reflect.Value).CanAddr()) { */ case 82: _r$14 = $clone(f, reflect.Value).Slice(0, $clone(f, reflect.Value).Len()); /* */ $s = 86; case 86: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } _r$15 = $clone(_r$14, reflect.Value).Bytes(); /* */ $s = 87; case 87: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } bytes = _r$15; $s = 84; continue; /* } else { */ case 83: bytes = $makeSlice(sliceType$2, $clone(f, reflect.Value).Len()); _ref$1 = bytes; _i$1 = 0; /* while (true) { */ case 88: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 89; continue; } i$2 = _i$1; _r$16 = $clone(f, reflect.Value).Index(i$2); /* */ $s = 90; case 90: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } _r$17 = $clone(_r$16, reflect.Value).Uint(); /* */ $s = 91; case 91: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } ((i$2 < 0 || i$2 >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + i$2] = ((_r$17.$low << 24 >>> 24))); _i$1++; /* } */ $s = 88; continue; case 89: /* } */ case 84: _arg = bytes; _arg$1 = verb; _r$18 = t.String(); /* */ $s = 92; case 92: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } _arg$2 = _r$18; $r = p.fmtBytes(_arg, _arg$1, _arg$2); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 78: /* } */ case 76: case 74: /* */ if (p.fmt.fmtFlags.sharpV) { $s = 94; continue; } /* */ $s = 95; continue; /* if (p.fmt.fmtFlags.sharpV) { */ case 94: _r$19 = $clone(f, reflect.Value).Type().String(); /* */ $s = 97; case 97: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$19); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (($clone(f, reflect.Value).Kind() === 23) && $clone(f, reflect.Value).IsNil()) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); $s = -1; return; } (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); i$3 = 0; /* while (true) { */ case 99: /* if (!(i$3 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$3 < $clone(f, reflect.Value).Len())) { $s = 100; continue; } if (i$3 > 0) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); } _r$20 = $clone(f, reflect.Value).Index(i$3); /* */ $s = 101; case 101: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } $r = p.printValue($clone(_r$20, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 102; case 102: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$3 = i$3 + (1) >> 0; /* } */ $s = 99; continue; case 100: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); $s = 96; continue; /* } else { */ case 95: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(91); i$4 = 0; /* while (true) { */ case 103: /* if (!(i$4 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$4 < $clone(f, reflect.Value).Len())) { $s = 104; continue; } if (i$4 > 0) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); } _r$21 = $clone(f, reflect.Value).Index(i$4); /* */ $s = 105; case 105: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } $r = p.printValue($clone(_r$21, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 106; case 106: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$4 = i$4 + (1) >> 0; /* } */ $s = 103; continue; case 104: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(93); /* } */ case 96: $s = 24; continue; /* } else if (_1 === (22)) { */ case 21: /* */ if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { $s = 107; continue; } /* */ $s = 108; continue; /* if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { */ case 107: _r$22 = $clone(f, reflect.Value).Elem(); /* */ $s = 110; case 110: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } a = _r$22; _4 = $clone(a, reflect.Value).Kind(); /* */ if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { $s = 111; continue; } /* */ $s = 112; continue; /* if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { */ case 111: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(38); $r = p.printValue($clone(a, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 112: case 109: /* } */ case 108: $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 114; case 114: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 24; continue; /* } else if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { */ case 22: $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 24; continue; /* } else { */ case 23: $r = p.unknownType($clone(f, reflect.Value)); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 24: case 7: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.printValue }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$20 = _r$20; $f._r$21 = _r$21; $f._r$22 = _r$22; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f.a = a; $f.bytes = bytes; $f.depth = depth; $f.f = f; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.i$4 = i$4; $f.key = key; $f.keys = keys; $f.name = name; $f.p = p; $f.t = t; $f.value = value; $f.value$1 = value$1; $f.verb = verb; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; pp.prototype.printValue = function(value, verb, depth) { return this.$val.printValue(value, verb, depth); }; intFromArg = function(a, argNum) { var _1, _r, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _tuple = $f._tuple; a = $f.a; argNum = $f.argNum; isInt = $f.isInt; n = $f.n; n$1 = $f.n$1; newArgNum = $f.newArgNum; num = $f.num; v = $f.v; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: num = 0; isInt = false; newArgNum = 0; newArgNum = argNum; /* */ if (argNum < a.$length) { $s = 1; continue; } /* */ $s = 2; continue; /* if (argNum < a.$length) { */ case 1: _tuple = $assertType(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), $Int, true); num = _tuple[0]; isInt = _tuple[1]; /* */ if (!isInt) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!isInt) { */ case 3: _r = reflect.ValueOf(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } v = _r; _1 = $clone(v, reflect.Value).Kind(); if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { n = $clone(v, reflect.Value).Int(); if ((x = (new $Int64(0, (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)))), (x.$high === n.$high && x.$low === n.$low))) { num = (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)); isInt = true; } } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { n$1 = $clone(v, reflect.Value).Uint(); if ((x$1 = (new $Int64(n$1.$high, n$1.$low)), (x$1.$high > 0 || (x$1.$high === 0 && x$1.$low >= 0))) && (x$2 = (new $Uint64(0, ((n$1.$low >> 0)))), (x$2.$high === n$1.$high && x$2.$low === n$1.$low))) { num = ((n$1.$low >> 0)); isInt = true; } } case 5: /* } */ case 4: newArgNum = argNum + 1 >> 0; if (tooLarge(num)) { num = 0; isInt = false; } /* } */ case 2: $s = -1; return [num, isInt, newArgNum]; /* */ } return; } if ($f === undefined) { $f = { $blk: intFromArg }; } $f._1 = _1; $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.argNum = argNum; $f.isInt = isInt; $f.n = n; $f.n$1 = n$1; $f.newArgNum = newArgNum; $f.num = num; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; }; parseArgNumber = function(format) { var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, format, i, index, newi, ok, ok$1, wid, width; index = 0; wid = 0; ok = false; if (format.length < 3) { _tmp = 0; _tmp$1 = 1; _tmp$2 = false; index = _tmp; wid = _tmp$1; ok = _tmp$2; return [index, wid, ok]; } i = 1; while (true) { if (!(i < format.length)) { break; } if (format.charCodeAt(i) === 93) { _tuple = parsenum(format, 1, i); width = _tuple[0]; ok$1 = _tuple[1]; newi = _tuple[2]; if (!ok$1 || !((newi === i))) { _tmp$3 = 0; _tmp$4 = i + 1 >> 0; _tmp$5 = false; index = _tmp$3; wid = _tmp$4; ok = _tmp$5; return [index, wid, ok]; } _tmp$6 = width - 1 >> 0; _tmp$7 = i + 1 >> 0; _tmp$8 = true; index = _tmp$6; wid = _tmp$7; ok = _tmp$8; return [index, wid, ok]; } i = i + (1) >> 0; } _tmp$9 = 0; _tmp$10 = 1; _tmp$11 = false; index = _tmp$9; wid = _tmp$10; ok = _tmp$11; return [index, wid, ok]; }; pp.ptr.prototype.argNumber = function(argNum, format, i, numArgs) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, argNum, format, found, i, index, newArgNum, newi, numArgs, ok, p, wid; newArgNum = 0; newi = 0; found = false; p = this; if (format.length <= i || !((format.charCodeAt(i) === 91))) { _tmp = argNum; _tmp$1 = i; _tmp$2 = false; newArgNum = _tmp; newi = _tmp$1; found = _tmp$2; return [newArgNum, newi, found]; } p.reordered = true; _tuple = parseArgNumber($substring(format, i)); index = _tuple[0]; wid = _tuple[1]; ok = _tuple[2]; if (ok && 0 <= index && index < numArgs) { _tmp$3 = index; _tmp$4 = i + wid >> 0; _tmp$5 = true; newArgNum = _tmp$3; newi = _tmp$4; found = _tmp$5; return [newArgNum, newi, found]; } p.goodArgNum = false; _tmp$6 = argNum; _tmp$7 = i + wid >> 0; _tmp$8 = ok; newArgNum = _tmp$6; newi = _tmp$7; found = _tmp$8; return [newArgNum, newi, found]; }; pp.prototype.argNumber = function(argNum, format, i, numArgs) { return this.$val.argNumber(argNum, format, i, numArgs); }; pp.ptr.prototype.badArgNum = function(verb) { var p, verb; p = this; (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(BADINDEX)"); }; pp.prototype.badArgNum = function(verb) { return this.$val.badArgNum(verb); }; pp.ptr.prototype.missingArg = function(verb) { var p, verb; p = this; (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(MISSING)"); }; pp.prototype.missingArg = function(verb) { return this.$val.missingArg(verb); }; pp.ptr.prototype.doPrintf = function(format, a) { var _1, _i, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, verb, w, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; a = $f.a; afterIndex = $f.afterIndex; arg = $f.arg; argNum = $f.argNum; c = $f.c; end = $f.end; format = $f.format; i = $f.i; i$1 = $f.i$1; lasti = $f.lasti; p = $f.p; verb = $f.verb; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; end = format.length; argNum = 0; afterIndex = false; p.reordered = false; i = 0; /* while (true) { */ case 1: /* if (!(i < end)) { break; } */ if(!(i < end)) { $s = 2; continue; } p.goodArgNum = true; lasti = i; while (true) { if (!(i < end && !((format.charCodeAt(i) === 37)))) { break; } i = i + (1) >> 0; } if (i > lasti) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString($substring(format, lasti, i)); } if (i >= end) { /* break; */ $s = 2; continue; } i = i + (1) >> 0; p.fmt.clearflags(); /* while (true) { */ case 3: /* if (!(i < end)) { break; } */ if(!(i < end)) { $s = 4; continue; } c = format.charCodeAt(i); _1 = c; /* */ if (_1 === (35)) { $s = 6; continue; } /* */ if (_1 === (48)) { $s = 7; continue; } /* */ if (_1 === (43)) { $s = 8; continue; } /* */ if (_1 === (45)) { $s = 9; continue; } /* */ if (_1 === (32)) { $s = 10; continue; } /* */ $s = 11; continue; /* if (_1 === (35)) { */ case 6: p.fmt.fmtFlags.sharp = true; $s = 12; continue; /* } else if (_1 === (48)) { */ case 7: p.fmt.fmtFlags.zero = !p.fmt.fmtFlags.minus; $s = 12; continue; /* } else if (_1 === (43)) { */ case 8: p.fmt.fmtFlags.plus = true; $s = 12; continue; /* } else if (_1 === (45)) { */ case 9: p.fmt.fmtFlags.minus = true; p.fmt.fmtFlags.zero = false; $s = 12; continue; /* } else if (_1 === (32)) { */ case 10: p.fmt.fmtFlags.space = true; $s = 12; continue; /* } else { */ case 11: /* */ if (97 <= c && c <= 122 && argNum < a.$length) { $s = 13; continue; } /* */ $s = 14; continue; /* if (97 <= c && c <= 122 && argNum < a.$length) { */ case 13: if (c === 118) { p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; p.fmt.fmtFlags.sharp = false; p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; p.fmt.fmtFlags.plus = false; } $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), ((c >> 0))); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } argNum = argNum + (1) >> 0; i = i + (1) >> 0; /* continue formatLoop; */ $s = 1; continue s; /* } */ case 14: /* break simpleFormat; */ $s = 4; continue s; /* } */ case 12: case 5: i = i + (1) >> 0; /* } */ $s = 3; continue; case 4: _tuple = p.argNumber(argNum, format, i, a.$length); argNum = _tuple[0]; i = _tuple[1]; afterIndex = _tuple[2]; /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 16; continue; } /* */ $s = 17; continue; /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 16: i = i + (1) >> 0; _r = intFromArg(a, argNum); /* */ $s = 19; case 19: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple$1 = _r; p.fmt.wid = _tuple$1[0]; p.fmt.fmtFlags.widPresent = _tuple$1[1]; argNum = _tuple$1[2]; if (!p.fmt.fmtFlags.widPresent) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(BADWIDTH)"); } if (p.fmt.wid < 0) { p.fmt.wid = -p.fmt.wid; p.fmt.fmtFlags.minus = true; p.fmt.fmtFlags.zero = false; } afterIndex = false; $s = 18; continue; /* } else { */ case 17: _tuple$2 = parsenum(format, i, end); p.fmt.wid = _tuple$2[0]; p.fmt.fmtFlags.widPresent = _tuple$2[1]; i = _tuple$2[2]; if (afterIndex && p.fmt.fmtFlags.widPresent) { p.goodArgNum = false; } /* } */ case 18: /* */ if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { $s = 20; continue; } /* */ $s = 21; continue; /* if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { */ case 20: i = i + (1) >> 0; if (afterIndex) { p.goodArgNum = false; } _tuple$3 = p.argNumber(argNum, format, i, a.$length); argNum = _tuple$3[0]; i = _tuple$3[1]; afterIndex = _tuple$3[2]; /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 22; continue; } /* */ $s = 23; continue; /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 22: i = i + (1) >> 0; _r$1 = intFromArg(a, argNum); /* */ $s = 25; case 25: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$4 = _r$1; p.fmt.prec = _tuple$4[0]; p.fmt.fmtFlags.precPresent = _tuple$4[1]; argNum = _tuple$4[2]; if (p.fmt.prec < 0) { p.fmt.prec = 0; p.fmt.fmtFlags.precPresent = false; } if (!p.fmt.fmtFlags.precPresent) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(BADPREC)"); } afterIndex = false; $s = 24; continue; /* } else { */ case 23: _tuple$5 = parsenum(format, i, end); p.fmt.prec = _tuple$5[0]; p.fmt.fmtFlags.precPresent = _tuple$5[1]; i = _tuple$5[2]; if (!p.fmt.fmtFlags.precPresent) { p.fmt.prec = 0; p.fmt.fmtFlags.precPresent = true; } /* } */ case 24: /* } */ case 21: if (!afterIndex) { _tuple$6 = p.argNumber(argNum, format, i, a.$length); argNum = _tuple$6[0]; i = _tuple$6[1]; afterIndex = _tuple$6[2]; } if (i >= end) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(NOVERB)"); /* break; */ $s = 2; continue; } _tuple$7 = utf8.DecodeRuneInString($substring(format, i)); verb = _tuple$7[0]; w = _tuple$7[1]; i = i + (w) >> 0; /* */ if ((verb === 37)) { $s = 27; continue; } /* */ if (!p.goodArgNum) { $s = 28; continue; } /* */ if (argNum >= a.$length) { $s = 29; continue; } /* */ if ((verb === 118)) { $s = 30; continue; } /* */ $s = 31; continue; /* if ((verb === 37)) { */ case 27: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(37); $s = 32; continue; /* } else if (!p.goodArgNum) { */ case 28: p.badArgNum(verb); $s = 32; continue; /* } else if (argNum >= a.$length) { */ case 29: p.missingArg(verb); $s = 32; continue; /* } else if ((verb === 118)) { */ case 30: p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; p.fmt.fmtFlags.sharp = false; p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; p.fmt.fmtFlags.plus = false; $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } argNum = argNum + (1) >> 0; $s = 32; continue; /* } else { */ case 31: $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } argNum = argNum + (1) >> 0; /* } */ case 32: case 26: /* } */ $s = 1; continue; case 2: /* */ if (!p.reordered && argNum < a.$length) { $s = 35; continue; } /* */ $s = 36; continue; /* if (!p.reordered && argNum < a.$length) { */ case 35: p.fmt.clearflags(); (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(EXTRA "); _ref = $subslice(a, argNum); _i = 0; /* while (true) { */ case 37: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 38; continue; } i$1 = _i; arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (i$1 > 0) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); } /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 39; continue; } /* */ $s = 40; continue; /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 39: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); $s = 41; continue; /* } else { */ case 40: _r$2 = reflect.TypeOf(arg).String(); /* */ $s = 42; case 42: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$2); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(61); $r = p.printArg(arg, 118); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 41: _i++; /* } */ $s = 37; continue; case 38: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); /* } */ case 36: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.doPrintf }; } $f._1 = _1; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f.a = a; $f.afterIndex = afterIndex; $f.arg = arg; $f.argNum = argNum; $f.c = c; $f.end = end; $f.format = format; $f.i = i; $f.i$1 = i$1; $f.lasti = lasti; $f.p = p; $f.verb = verb; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; }; pp.prototype.doPrintf = function(format, a) { return this.$val.doPrintf(format, a); }; pp.ptr.prototype.doPrint = function(a) { var _i, _r, _ref, _v, a, arg, argNum, isString, p, prevString, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _v = $f._v; a = $f.a; arg = $f.arg; argNum = $f.argNum; isString = $f.isString; p = $f.p; prevString = $f.prevString; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; prevString = false; _ref = a; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } argNum = _i; arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (!(!($interfaceIsEqual(arg, $ifaceNil)))) { _v = false; $s = 3; continue s; } _r = reflect.TypeOf(arg).Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v = _r === 24; case 3: isString = _v; if (argNum > 0 && !isString && !prevString) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); } $r = p.printArg(arg, 118); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } prevString = isString; _i++; /* } */ $s = 1; continue; case 2: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.doPrint }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._v = _v; $f.a = a; $f.arg = arg; $f.argNum = argNum; $f.isString = isString; $f.p = p; $f.prevString = prevString; $f.$s = $s; $f.$r = $r; return $f; }; pp.prototype.doPrint = function(a) { return this.$val.doPrint(a); }; pp.ptr.prototype.doPrintln = function(a) { var _i, _ref, a, arg, argNum, p, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _ref = $f._ref; a = $f.a; arg = $f.arg; argNum = $f.argNum; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; _ref = a; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } argNum = _i; arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (argNum > 0) { (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); } $r = p.printArg(arg, 118); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; /* } */ $s = 1; continue; case 2: (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(10); $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.doPrintln }; } $f._i = _i; $f._ref = _ref; $f.a = a; $f.arg = arg; $f.argNum = argNum; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; }; pp.prototype.doPrintln = function(a) { return this.$val.doPrintln(a); }; ss.ptr.prototype.Read = function(buf) { var _tmp, _tmp$1, buf, err, n, s; n = 0; err = $ifaceNil; s = this; _tmp = 0; _tmp$1 = errors.New("ScanState's Read should not be called. Use ReadRune"); n = _tmp; err = _tmp$1; return [n, err]; }; ss.prototype.Read = function(buf) { return this.$val.Read(buf); }; ss.ptr.prototype.ReadRune = function() { var _r, _tuple, err, r, s, size, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; r = $f.r; s = $f.s; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: r = 0; size = 0; err = $ifaceNil; s = this; if (s.atEOF || s.count >= s.ssave.argLimit) { err = io.EOF; $s = -1; return [r, size, err]; } _r = s.rs.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; r = _tuple[0]; size = _tuple[1]; err = _tuple[2]; if ($interfaceIsEqual(err, $ifaceNil)) { s.count = s.count + (1) >> 0; if (s.ssave.nlIsEnd && (r === 10)) { s.atEOF = true; } } else if ($interfaceIsEqual(err, io.EOF)) { s.atEOF = true; } $s = -1; return [r, size, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.ReadRune }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.r = r; $f.s = s; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; }; ss.prototype.ReadRune = function() { return this.$val.ReadRune(); }; ss.ptr.prototype.Width = function() { var _tmp, _tmp$1, _tmp$2, _tmp$3, ok, s, wid; wid = 0; ok = false; s = this; if (s.ssave.maxWid === 1073741824) { _tmp = 0; _tmp$1 = false; wid = _tmp; ok = _tmp$1; return [wid, ok]; } _tmp$2 = s.ssave.maxWid; _tmp$3 = true; wid = _tmp$2; ok = _tmp$3; return [wid, ok]; }; ss.prototype.Width = function() { return this.$val.Width(); }; ss.ptr.prototype.getRune = function() { var _r, _tuple, err, r, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: r = 0; s = this; _r = s.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; r = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { if ($interfaceIsEqual(err, io.EOF)) { r = -1; $s = -1; return r; } s.error(err); } $s = -1; return r; /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.getRune }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; ss.prototype.getRune = function() { return this.$val.getRune(); }; ss.ptr.prototype.UnreadRune = function() { var _r, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: s = this; _r = s.rs.UnreadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; s.atEOF = false; s.count = s.count - (1) >> 0; $s = -1; return $ifaceNil; /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.UnreadRune }; } $f._r = _r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; ss.prototype.UnreadRune = function() { return this.$val.UnreadRune(); }; ss.ptr.prototype.error = function(err) { var err, s, x; s = this; $panic((x = new scanError.ptr(err), new x.constructor.elem(x))); }; ss.prototype.error = function(err) { return this.$val.error(err); }; ss.ptr.prototype.errorString = function(err) { var err, s, x; s = this; $panic((x = new scanError.ptr(errors.New(err)), new x.constructor.elem(x))); }; ss.prototype.errorString = function(err) { return this.$val.errorString(err); }; ss.ptr.prototype.Token = function(skipSpace, f) { var _r, err, f, s, skipSpace, tok, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; f = $f.f; s = $f.s; skipSpace = $f.skipSpace; tok = $f.tok; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); err = [err]; tok = sliceType$2.nil; err[0] = $ifaceNil; s = this; $deferred.push([(function(err) { return function() { var _tuple, e, ok, se; e = $recover(); if (!($interfaceIsEqual(e, $ifaceNil))) { _tuple = $assertType(e, scanError, true); se = $clone(_tuple[0], scanError); ok = _tuple[1]; if (ok) { err[0] = se.err; } else { $panic(e); } } }; })(err), []]); if (f === $throwNilPointerError) { f = notSpace; } s.buf = $subslice(s.buf, 0, 0); _r = s.token(skipSpace, f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } tok = _r; $s = -1; return [tok, err[0]]; /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [tok, err[0]]; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: ss.ptr.prototype.Token }; } $f._r = _r; $f.err = err; $f.f = f; $f.s = s; $f.skipSpace = skipSpace; $f.tok = tok; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; ss.prototype.Token = function(skipSpace, f) { return this.$val.Token(skipSpace, f); }; isSpace = function(r) { var _i, _ref, r, rng, rx; if (r >= 65536) { return false; } rx = ((r << 16 >>> 16)); _ref = space; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } rng = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), arrayType$1); if (rx < rng[0]) { return false; } if (rx <= rng[1]) { return true; } _i++; } return false; }; notSpace = function(r) { var r; return !isSpace(r); }; ss.ptr.prototype.SkipSpace = function() { var s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: s = this; $r = s.skipSpace(false); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.SkipSpace }; } $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; ss.prototype.SkipSpace = function() { return this.$val.SkipSpace(); }; ss.ptr.prototype.free = function(old) { var old, s; s = this; if (old.validSave) { ssave.copy(s.ssave, old); return; } if (s.buf.$capacity > 1024) { return; } s.buf = $subslice(s.buf, 0, 0); s.rs = $ifaceNil; ssFree.Put(s); }; ss.prototype.free = function(old) { return this.$val.free(old); }; ss.ptr.prototype.skipSpace = function(stopAtNewline) { var _r, _r$1, _r$2, _v, r, s, stopAtNewline, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _v = $f._v; r = $f.r; s = $f.s; stopAtNewline = $f.stopAtNewline; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: s = this; /* while (true) { */ case 1: _r = s.getRune(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } r = _r; if (r === -1) { $s = -1; return; } if (!(r === 13)) { _v = false; $s = 6; continue s; } _r$1 = s.peek("\n"); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _v = _r$1; case 6: /* */ if (_v) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_v) { */ case 4: /* continue; */ $s = 1; continue; /* } */ case 5: /* */ if (r === 10) { $s = 8; continue; } /* */ $s = 9; continue; /* if (r === 10) { */ case 8: if (stopAtNewline) { /* break; */ $s = 2; continue; } if (s.ssave.nlIsSpace) { /* continue; */ $s = 1; continue; } s.errorString("unexpected newline"); $s = -1; return; /* } */ case 9: /* */ if (!isSpace(r)) { $s = 10; continue; } /* */ $s = 11; continue; /* if (!isSpace(r)) { */ case 10: _r$2 = s.UnreadRune(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; /* break; */ $s = 2; continue; /* } */ case 11: /* } */ $s = 1; continue; case 2: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.skipSpace }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._v = _v; $f.r = r; $f.s = s; $f.stopAtNewline = stopAtNewline; $f.$s = $s; $f.$r = $r; return $f; }; ss.prototype.skipSpace = function(stopAtNewline) { return this.$val.skipSpace(stopAtNewline); }; ss.ptr.prototype.token = function(skipSpace, f) { var _r, _r$1, _r$2, f, r, s, skipSpace, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; f = $f.f; r = $f.r; s = $f.s; skipSpace = $f.skipSpace; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: s = this; /* */ if (skipSpace) { $s = 1; continue; } /* */ $s = 2; continue; /* if (skipSpace) { */ case 1: $r = s.skipSpace(false); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: /* while (true) { */ case 4: _r = s.getRune(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } r = _r; if (r === -1) { /* break; */ $s = 5; continue; } _r$1 = f(r); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (!_r$1) { $s = 7; continue; } /* */ $s = 8; continue; /* if (!_r$1) { */ case 7: _r$2 = s.UnreadRune(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; /* break; */ $s = 5; continue; /* } */ case 8: (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s))).WriteRune(r); /* } */ $s = 4; continue; case 5: $s = -1; return (x = s.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length)); /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.token }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.f = f; $f.r = r; $f.s = s; $f.skipSpace = skipSpace; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; ss.prototype.token = function(skipSpace, f) { return this.$val.token(skipSpace, f); }; indexRune = function(s, r) { var _i, _ref, _rune, c, i, r, s; _ref = s; _i = 0; while (true) { if (!(_i < _ref.length)) { break; } _rune = $decodeRune(_ref, _i); i = _i; c = _rune[0]; if (c === r) { return i; } _i += _rune[1]; } return -1; }; ss.ptr.prototype.peek = function(ok) { var _r, _r$1, ok, r, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; ok = $f.ok; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: s = this; _r = s.getRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } r = _r; /* */ if (!((r === -1))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!((r === -1))) { */ case 2: _r$1 = s.UnreadRune(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; /* } */ case 3: $s = -1; return indexRune(ok, r) >= 0; /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.peek }; } $f._r = _r; $f._r$1 = _r$1; $f.ok = ok; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; ss.prototype.peek = function(ok) { return this.$val.peek(ok); }; ptrType$25.methods = [{prop: "clearflags", name: "clearflags", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "init", name: "init", pkg: "fmt", typ: $funcType([ptrType$1], [], false)}, {prop: "writePadding", name: "writePadding", pkg: "fmt", typ: $funcType([$Int], [], false)}, {prop: "pad", name: "pad", pkg: "fmt", typ: $funcType([sliceType$2], [], false)}, {prop: "padString", name: "padString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmt_boolean", name: "fmt_boolean", pkg: "fmt", typ: $funcType([$Bool], [], false)}, {prop: "fmt_unicode", name: "fmt_unicode", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmt_integer", name: "fmt_integer", pkg: "fmt", typ: $funcType([$Uint64, $Int, $Bool, $String], [], false)}, {prop: "truncate", name: "truncate", pkg: "fmt", typ: $funcType([$String], [$String], false)}, {prop: "fmt_s", name: "fmt_s", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmt_sbx", name: "fmt_sbx", pkg: "fmt", typ: $funcType([$String, sliceType$2, $String], [], false)}, {prop: "fmt_sx", name: "fmt_sx", pkg: "fmt", typ: $funcType([$String, $String], [], false)}, {prop: "fmt_bx", name: "fmt_bx", pkg: "fmt", typ: $funcType([sliceType$2, $String], [], false)}, {prop: "fmt_q", name: "fmt_q", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmt_c", name: "fmt_c", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmt_qc", name: "fmt_qc", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmt_float", name: "fmt_float", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32, $Int], [], false)}]; ptrType$1.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [], false)}]; ptrType$2.methods = [{prop: "free", name: "free", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "unknownType", name: "unknownType", pkg: "fmt", typ: $funcType([reflect.Value], [], false)}, {prop: "badVerb", name: "badVerb", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "fmtBool", name: "fmtBool", pkg: "fmt", typ: $funcType([$Bool, $Int32], [], false)}, {prop: "fmt0x64", name: "fmt0x64", pkg: "fmt", typ: $funcType([$Uint64, $Bool], [], false)}, {prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Bool, $Int32], [], false)}, {prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32], [], false)}, {prop: "fmtComplex", name: "fmtComplex", pkg: "fmt", typ: $funcType([$Complex128, $Int, $Int32], [], false)}, {prop: "fmtString", name: "fmtString", pkg: "fmt", typ: $funcType([$String, $Int32], [], false)}, {prop: "fmtBytes", name: "fmtBytes", pkg: "fmt", typ: $funcType([sliceType$2, $Int32, $String], [], false)}, {prop: "fmtPointer", name: "fmtPointer", pkg: "fmt", typ: $funcType([reflect.Value, $Int32], [], false)}, {prop: "catchPanic", name: "catchPanic", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32], [], false)}, {prop: "handleMethods", name: "handleMethods", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false)}, {prop: "printArg", name: "printArg", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32], [], false)}, {prop: "printValue", name: "printValue", pkg: "fmt", typ: $funcType([reflect.Value, $Int32, $Int], [], false)}, {prop: "argNumber", name: "argNumber", pkg: "fmt", typ: $funcType([$Int, $String, $Int, $Int], [$Int, $Int, $Bool], false)}, {prop: "badArgNum", name: "badArgNum", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "missingArg", name: "missingArg", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "doPrintf", name: "doPrintf", pkg: "fmt", typ: $funcType([$String, sliceType], [], false)}, {prop: "doPrint", name: "doPrint", pkg: "fmt", typ: $funcType([sliceType], [], false)}, {prop: "doPrintln", name: "doPrintln", pkg: "fmt", typ: $funcType([sliceType], [], false)}]; ptrType$5.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "getRune", name: "getRune", pkg: "fmt", typ: $funcType([], [$Int32], false)}, {prop: "mustReadRune", name: "mustReadRune", pkg: "fmt", typ: $funcType([], [$Int32], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "error", name: "error", pkg: "fmt", typ: $funcType([$error], [], false)}, {prop: "errorString", name: "errorString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "Token", name: "Token", pkg: "", typ: $funcType([$Bool, funcType], [sliceType$2, $error], false)}, {prop: "SkipSpace", name: "SkipSpace", pkg: "", typ: $funcType([], [], false)}, {prop: "free", name: "free", pkg: "fmt", typ: $funcType([ssave], [], false)}, {prop: "skipSpace", name: "skipSpace", pkg: "fmt", typ: $funcType([$Bool], [], false)}, {prop: "token", name: "token", pkg: "fmt", typ: $funcType([$Bool, funcType], [sliceType$2], false)}, {prop: "consume", name: "consume", pkg: "fmt", typ: $funcType([$String, $Bool], [$Bool], false)}, {prop: "peek", name: "peek", pkg: "fmt", typ: $funcType([$String], [$Bool], false)}, {prop: "notEOF", name: "notEOF", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "accept", name: "accept", pkg: "fmt", typ: $funcType([$String], [$Bool], false)}, {prop: "okVerb", name: "okVerb", pkg: "fmt", typ: $funcType([$Int32, $String, $String], [$Bool], false)}, {prop: "scanBool", name: "scanBool", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false)}, {prop: "getBase", name: "getBase", pkg: "fmt", typ: $funcType([$Int32], [$Int, $String], false)}, {prop: "scanNumber", name: "scanNumber", pkg: "fmt", typ: $funcType([$String, $Bool], [$String], false)}, {prop: "scanRune", name: "scanRune", pkg: "fmt", typ: $funcType([$Int], [$Int64], false)}, {prop: "scanBasePrefix", name: "scanBasePrefix", pkg: "fmt", typ: $funcType([], [$Int, $String, $Bool], false)}, {prop: "scanInt", name: "scanInt", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Int64], false)}, {prop: "scanUint", name: "scanUint", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Uint64], false)}, {prop: "floatToken", name: "floatToken", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "complexTokens", name: "complexTokens", pkg: "fmt", typ: $funcType([], [$String, $String], false)}, {prop: "convertFloat", name: "convertFloat", pkg: "fmt", typ: $funcType([$String, $Int], [$Float64], false)}, {prop: "scanComplex", name: "scanComplex", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Complex128], false)}, {prop: "convertString", name: "convertString", pkg: "fmt", typ: $funcType([$Int32], [$String], false)}, {prop: "quotedString", name: "quotedString", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "hexByte", name: "hexByte", pkg: "fmt", typ: $funcType([], [$Uint8, $Bool], false)}, {prop: "hexString", name: "hexString", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "scanOne", name: "scanOne", pkg: "fmt", typ: $funcType([$Int32, $emptyInterface], [], false)}, {prop: "doScan", name: "doScan", pkg: "fmt", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "advance", name: "advance", pkg: "fmt", typ: $funcType([$String], [$Int], false)}, {prop: "doScanf", name: "doScanf", pkg: "fmt", typ: $funcType([$String, sliceType], [$Int, $error], false)}]; fmtFlags.init("fmt", [{prop: "widPresent", name: "widPresent", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "precPresent", name: "precPresent", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "minus", name: "minus", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "plus", name: "plus", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "sharp", name: "sharp", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "space", name: "space", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "zero", name: "zero", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "plusV", name: "plusV", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "sharpV", name: "sharpV", anonymous: false, exported: false, typ: $Bool, tag: ""}]); fmt.init("fmt", [{prop: "buf", name: "buf", anonymous: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "fmtFlags", name: "fmtFlags", anonymous: true, exported: false, typ: fmtFlags, tag: ""}, {prop: "wid", name: "wid", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "prec", name: "prec", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "intbuf", name: "intbuf", anonymous: false, exported: false, typ: arrayType, tag: ""}]); State.init([{prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}]); Formatter.init([{prop: "Format", name: "Format", pkg: "", typ: $funcType([State, $Int32], [], false)}]); Stringer.init([{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]); GoStringer.init([{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]); buffer.init($Uint8); pp.init("fmt", [{prop: "buf", name: "buf", anonymous: false, exported: false, typ: buffer, tag: ""}, {prop: "arg", name: "arg", anonymous: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "value", name: "value", anonymous: false, exported: false, typ: reflect.Value, tag: ""}, {prop: "fmt", name: "fmt", anonymous: false, exported: false, typ: fmt, tag: ""}, {prop: "reordered", name: "reordered", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "goodArgNum", name: "goodArgNum", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "panicking", name: "panicking", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "erroring", name: "erroring", anonymous: false, exported: false, typ: $Bool, tag: ""}]); scanError.init("fmt", [{prop: "err", name: "err", anonymous: false, exported: false, typ: $error, tag: ""}]); ss.init("fmt", [{prop: "rs", name: "rs", anonymous: false, exported: false, typ: io.RuneScanner, tag: ""}, {prop: "buf", name: "buf", anonymous: false, exported: false, typ: buffer, tag: ""}, {prop: "count", name: "count", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "atEOF", name: "atEOF", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "ssave", name: "ssave", anonymous: true, exported: false, typ: ssave, tag: ""}]); ssave.init("fmt", [{prop: "validSave", name: "validSave", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsEnd", name: "nlIsEnd", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsSpace", name: "nlIsSpace", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "argLimit", name: "argLimit", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "limit", name: "limit", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "maxWid", name: "maxWid", anonymous: false, exported: false, typ: $Int, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = os.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = reflect.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = sync.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ppFree = new sync.Pool.ptr(0, 0, sliceType.nil, (function() { return new pp.ptr(buffer.nil, $ifaceNil, new reflect.Value.ptr(ptrType.nil, 0, 0), new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType.zero()), false, false, false, false); })); space = new sliceType$1([$toNativeArray($kindUint16, [9, 13]), $toNativeArray($kindUint16, [32, 32]), $toNativeArray($kindUint16, [133, 133]), $toNativeArray($kindUint16, [160, 160]), $toNativeArray($kindUint16, [5760, 5760]), $toNativeArray($kindUint16, [8192, 8202]), $toNativeArray($kindUint16, [8232, 8233]), $toNativeArray($kindUint16, [8239, 8239]), $toNativeArray($kindUint16, [8287, 8287]), $toNativeArray($kindUint16, [12288, 12288])]); ssFree = new sync.Pool.ptr(0, 0, sliceType.nil, (function() { return new ss.ptr($ifaceNil, buffer.nil, 0, false, new ssave.ptr(false, false, false, 0, 0, 0)); })); complexError = errors.New("syntax error scanning complex number"); boolError = errors.New("syntax error scanning boolean"); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["bufio"] = (function() { var $pkg = {}, $init, bytes, errors, io, utf8, Reader, sliceType, ptrType, sliceType$1, errNegativeRead, errNegativeWrite, NewReaderSize, NewReader; bytes = $packages["bytes"]; errors = $packages["errors"]; io = $packages["io"]; utf8 = $packages["unicode/utf8"]; Reader = $pkg.Reader = $newType(0, $kindStruct, "bufio.Reader", true, "bufio", true, function(buf_, rd_, r_, w_, err_, lastByte_, lastRuneSize_) { this.$val = this; if (arguments.length === 0) { this.buf = sliceType.nil; this.rd = $ifaceNil; this.r = 0; this.w = 0; this.err = $ifaceNil; this.lastByte = 0; this.lastRuneSize = 0; return; } this.buf = buf_; this.rd = rd_; this.r = r_; this.w = w_; this.err = err_; this.lastByte = lastByte_; this.lastRuneSize = lastRuneSize_; }); sliceType = $sliceType($Uint8); ptrType = $ptrType(Reader); sliceType$1 = $sliceType(sliceType); NewReaderSize = function(rd, size) { var _tuple, b, ok, r, rd, size; _tuple = $assertType(rd, ptrType, true); b = _tuple[0]; ok = _tuple[1]; if (ok && b.buf.$length >= size) { return b; } if (size < 16) { size = 16; } r = new Reader.ptr(sliceType.nil, $ifaceNil, 0, 0, $ifaceNil, 0, 0); r.reset($makeSlice(sliceType, size), rd); return r; }; $pkg.NewReaderSize = NewReaderSize; NewReader = function(rd) { var rd; return NewReaderSize(rd, 4096); }; $pkg.NewReader = NewReader; Reader.ptr.prototype.Reset = function(r) { var b, r; b = this; b.reset(b.buf, r); }; Reader.prototype.Reset = function(r) { return this.$val.Reset(r); }; Reader.ptr.prototype.reset = function(buf, r) { var b, buf, r; b = this; Reader.copy(b, new Reader.ptr(buf, r, 0, 0, $ifaceNil, -1, -1)); }; Reader.prototype.reset = function(buf, r) { return this.$val.reset(buf, r); }; Reader.ptr.prototype.fill = function() { var _r, _tuple, b, err, i, n, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; b = $f.b; err = $f.err; i = $f.i; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: b = this; if (b.r > 0) { $copySlice(b.buf, $subslice(b.buf, b.r, b.w)); b.w = b.w - (b.r) >> 0; b.r = 0; } if (b.w >= b.buf.$length) { $panic(new $String("bufio: tried to fill full buffer")); } i = 100; /* while (true) { */ case 1: /* if (!(i > 0)) { break; } */ if(!(i > 0)) { $s = 2; continue; } _r = b.rd.Read($subslice(b.buf, b.w)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; if (n < 0) { $panic(errNegativeRead); } b.w = b.w + (n) >> 0; if (!($interfaceIsEqual(err, $ifaceNil))) { b.err = err; $s = -1; return; } if (n > 0) { $s = -1; return; } i = i - (1) >> 0; /* } */ $s = 1; continue; case 2: b.err = io.ErrNoProgress; $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.fill }; } $f._r = _r; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.i = i; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.fill = function() { return this.$val.fill(); }; Reader.ptr.prototype.readErr = function() { var b, err; b = this; err = b.err; b.err = $ifaceNil; return err; }; Reader.prototype.readErr = function() { return this.$val.readErr(); }; Reader.ptr.prototype.Peek = function(n) { var avail, b, err, n, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; avail = $f.avail; b = $f.b; err = $f.err; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: b = this; if (n < 0) { $s = -1; return [sliceType.nil, $pkg.ErrNegativeCount]; } /* while (true) { */ case 1: /* if (!((b.w - b.r >> 0) < n && (b.w - b.r >> 0) < b.buf.$length && $interfaceIsEqual(b.err, $ifaceNil))) { break; } */ if(!((b.w - b.r >> 0) < n && (b.w - b.r >> 0) < b.buf.$length && $interfaceIsEqual(b.err, $ifaceNil))) { $s = 2; continue; } $r = b.fill(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ $s = 1; continue; case 2: if (n > b.buf.$length) { $s = -1; return [$subslice(b.buf, b.r, b.w), $pkg.ErrBufferFull]; } err = $ifaceNil; avail = b.w - b.r >> 0; if (avail < n) { n = avail; err = b.readErr(); if ($interfaceIsEqual(err, $ifaceNil)) { err = $pkg.ErrBufferFull; } } $s = -1; return [$subslice(b.buf, b.r, (b.r + n >> 0)), err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.Peek }; } $f.avail = avail; $f.b = b; $f.err = err; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.Peek = function(n) { return this.$val.Peek(n); }; Reader.ptr.prototype.Discard = function(n) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, discarded, err, n, remain, skip, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; b = $f.b; discarded = $f.discarded; err = $f.err; n = $f.n; remain = $f.remain; skip = $f.skip; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: discarded = 0; err = $ifaceNil; b = this; if (n < 0) { _tmp = 0; _tmp$1 = $pkg.ErrNegativeCount; discarded = _tmp; err = _tmp$1; $s = -1; return [discarded, err]; } if (n === 0) { $s = -1; return [discarded, err]; } remain = n; /* while (true) { */ case 1: skip = b.Buffered(); /* */ if (skip === 0) { $s = 3; continue; } /* */ $s = 4; continue; /* if (skip === 0) { */ case 3: $r = b.fill(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } skip = b.Buffered(); /* } */ case 4: if (skip > remain) { skip = remain; } b.r = b.r + (skip) >> 0; remain = remain - (skip) >> 0; if (remain === 0) { _tmp$2 = n; _tmp$3 = $ifaceNil; discarded = _tmp$2; err = _tmp$3; $s = -1; return [discarded, err]; } if (!($interfaceIsEqual(b.err, $ifaceNil))) { _tmp$4 = n - remain >> 0; _tmp$5 = b.readErr(); discarded = _tmp$4; err = _tmp$5; $s = -1; return [discarded, err]; } /* } */ $s = 1; continue; case 2: $s = -1; return [discarded, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.Discard }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f.b = b; $f.discarded = discarded; $f.err = err; $f.n = n; $f.remain = remain; $f.skip = skip; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.Discard = function(n) { return this.$val.Discard(n); }; Reader.ptr.prototype.Read = function(p) { var _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, b, err, n, p, x, x$1, x$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; b = $f.b; err = $f.err; n = $f.n; p = $f.p; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; b = this; n = p.$length; if (n === 0) { _tmp = 0; _tmp$1 = b.readErr(); n = _tmp; err = _tmp$1; $s = -1; return [n, err]; } /* */ if (b.r === b.w) { $s = 1; continue; } /* */ $s = 2; continue; /* if (b.r === b.w) { */ case 1: if (!($interfaceIsEqual(b.err, $ifaceNil))) { _tmp$2 = 0; _tmp$3 = b.readErr(); n = _tmp$2; err = _tmp$3; $s = -1; return [n, err]; } /* */ if (p.$length >= b.buf.$length) { $s = 3; continue; } /* */ $s = 4; continue; /* if (p.$length >= b.buf.$length) { */ case 3: _r = b.rd.Read(p); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; b.err = _tuple[1]; if (n < 0) { $panic(errNegativeRead); } if (n > 0) { b.lastByte = (((x = n - 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])) >> 0)); b.lastRuneSize = -1; } _tmp$4 = n; _tmp$5 = b.readErr(); n = _tmp$4; err = _tmp$5; $s = -1; return [n, err]; /* } */ case 4: b.r = 0; b.w = 0; _r$1 = b.rd.Read(b.buf); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; n = _tuple$1[0]; b.err = _tuple$1[1]; if (n < 0) { $panic(errNegativeRead); } if (n === 0) { _tmp$6 = 0; _tmp$7 = b.readErr(); n = _tmp$6; err = _tmp$7; $s = -1; return [n, err]; } b.w = b.w + (n) >> 0; /* } */ case 2: n = $copySlice(p, $subslice(b.buf, b.r, b.w)); b.r = b.r + (n) >> 0; b.lastByte = (((x$1 = b.buf, x$2 = b.r - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) >> 0)); b.lastRuneSize = -1; _tmp$8 = n; _tmp$9 = $ifaceNil; n = _tmp$8; err = _tmp$9; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.Read }; } $f._r = _r; $f._r$1 = _r$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.b = b; $f.err = err; $f.n = n; $f.p = p; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.Read = function(p) { return this.$val.Read(p); }; Reader.ptr.prototype.ReadByte = function() { var b, c, x, x$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; c = $f.c; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: b = this; b.lastRuneSize = -1; /* while (true) { */ case 1: /* if (!(b.r === b.w)) { break; } */ if(!(b.r === b.w)) { $s = 2; continue; } if (!($interfaceIsEqual(b.err, $ifaceNil))) { $s = -1; return [0, b.readErr()]; } $r = b.fill(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ $s = 1; continue; case 2: c = (x = b.buf, x$1 = b.r, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); b.r = b.r + (1) >> 0; b.lastByte = ((c >> 0)); $s = -1; return [c, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.ReadByte }; } $f.b = b; $f.c = c; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.ReadByte = function() { return this.$val.ReadByte(); }; Reader.ptr.prototype.UnreadByte = function() { var b, x, x$1; b = this; if (b.lastByte < 0 || (b.r === 0) && b.w > 0) { return $pkg.ErrInvalidUnreadByte; } if (b.r > 0) { b.r = b.r - (1) >> 0; } else { b.w = 1; } (x = b.buf, x$1 = b.r, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1] = ((b.lastByte << 24 >>> 24)))); b.lastByte = -1; b.lastRuneSize = -1; return $ifaceNil; }; Reader.prototype.UnreadByte = function() { return this.$val.UnreadByte(); }; Reader.ptr.prototype.ReadRune = function() { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, b, err, r, size, x, x$1, x$2, x$3, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tuple = $f._tuple; b = $f.b; err = $f.err; r = $f.r; size = $f.size; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: r = 0; size = 0; err = $ifaceNil; b = this; /* while (true) { */ case 1: /* if (!((b.r + 4 >> 0) > b.w && !utf8.FullRune($subslice(b.buf, b.r, b.w)) && $interfaceIsEqual(b.err, $ifaceNil) && (b.w - b.r >> 0) < b.buf.$length)) { break; } */ if(!((b.r + 4 >> 0) > b.w && !utf8.FullRune($subslice(b.buf, b.r, b.w)) && $interfaceIsEqual(b.err, $ifaceNil) && (b.w - b.r >> 0) < b.buf.$length)) { $s = 2; continue; } $r = b.fill(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ $s = 1; continue; case 2: b.lastRuneSize = -1; if (b.r === b.w) { _tmp = 0; _tmp$1 = 0; _tmp$2 = b.readErr(); r = _tmp; size = _tmp$1; err = _tmp$2; $s = -1; return [r, size, err]; } _tmp$3 = (((x = b.buf, x$1 = b.r, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >> 0)); _tmp$4 = 1; r = _tmp$3; size = _tmp$4; if (r >= 128) { _tuple = utf8.DecodeRune($subslice(b.buf, b.r, b.w)); r = _tuple[0]; size = _tuple[1]; } b.r = b.r + (size) >> 0; b.lastByte = (((x$2 = b.buf, x$3 = b.r - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])) >> 0)); b.lastRuneSize = size; _tmp$5 = r; _tmp$6 = size; _tmp$7 = $ifaceNil; r = _tmp$5; size = _tmp$6; err = _tmp$7; $s = -1; return [r, size, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.ReadRune }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.r = r; $f.size = size; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.ReadRune = function() { return this.$val.ReadRune(); }; Reader.ptr.prototype.UnreadRune = function() { var b; b = this; if (b.lastRuneSize < 0 || b.r < b.lastRuneSize) { return $pkg.ErrInvalidUnreadRune; } b.r = b.r - (b.lastRuneSize) >> 0; b.lastByte = -1; b.lastRuneSize = -1; return $ifaceNil; }; Reader.prototype.UnreadRune = function() { return this.$val.UnreadRune(); }; Reader.ptr.prototype.Buffered = function() { var b; b = this; return b.w - b.r >> 0; }; Reader.prototype.Buffered = function() { return this.$val.Buffered(); }; Reader.ptr.prototype.ReadSlice = function(delim) { var b, delim, err, i, i$1, line, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; delim = $f.delim; err = $f.err; i = $f.i; i$1 = $f.i$1; line = $f.line; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: line = sliceType.nil; err = $ifaceNil; b = this; /* while (true) { */ case 1: i = bytes.IndexByte($subslice(b.buf, b.r, b.w), delim); if (i >= 0) { line = $subslice(b.buf, b.r, ((b.r + i >> 0) + 1 >> 0)); b.r = b.r + ((i + 1 >> 0)) >> 0; /* break; */ $s = 2; continue; } if (!($interfaceIsEqual(b.err, $ifaceNil))) { line = $subslice(b.buf, b.r, b.w); b.r = b.w; err = b.readErr(); /* break; */ $s = 2; continue; } if (b.Buffered() >= b.buf.$length) { b.r = b.w; line = b.buf; err = $pkg.ErrBufferFull; /* break; */ $s = 2; continue; } $r = b.fill(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ $s = 1; continue; case 2: i$1 = line.$length - 1 >> 0; if (i$1 >= 0) { b.lastByte = ((((i$1 < 0 || i$1 >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + i$1]) >> 0)); b.lastRuneSize = -1; } $s = -1; return [line, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.ReadSlice }; } $f.b = b; $f.delim = delim; $f.err = err; $f.i = i; $f.i$1 = i$1; $f.line = line; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.ReadSlice = function(delim) { return this.$val.ReadSlice(delim); }; Reader.ptr.prototype.ReadLine = function() { var _r, _tmp, _tmp$1, _tmp$2, _tuple, b, drop, err, isPrefix, line, x, x$1, x$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tuple = $f._tuple; b = $f.b; drop = $f.drop; err = $f.err; isPrefix = $f.isPrefix; line = $f.line; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: line = sliceType.nil; isPrefix = false; err = $ifaceNil; b = this; _r = b.ReadSlice(10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; line = _tuple[0]; err = _tuple[1]; if ($interfaceIsEqual(err, $pkg.ErrBufferFull)) { if (line.$length > 0 && ((x = line.$length - 1 >> 0, ((x < 0 || x >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + x])) === 13)) { if (b.r === 0) { $panic(new $String("bufio: tried to rewind past start of buffer")); } b.r = b.r - (1) >> 0; line = $subslice(line, 0, (line.$length - 1 >> 0)); } _tmp = line; _tmp$1 = true; _tmp$2 = $ifaceNil; line = _tmp; isPrefix = _tmp$1; err = _tmp$2; $s = -1; return [line, isPrefix, err]; } if (line.$length === 0) { if (!($interfaceIsEqual(err, $ifaceNil))) { line = sliceType.nil; } $s = -1; return [line, isPrefix, err]; } err = $ifaceNil; if ((x$1 = line.$length - 1 >> 0, ((x$1 < 0 || x$1 >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + x$1])) === 10) { drop = 1; if (line.$length > 1 && ((x$2 = line.$length - 2 >> 0, ((x$2 < 0 || x$2 >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + x$2])) === 13)) { drop = 2; } line = $subslice(line, 0, (line.$length - drop >> 0)); } $s = -1; return [line, isPrefix, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.ReadLine }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tuple = _tuple; $f.b = b; $f.drop = drop; $f.err = err; $f.isPrefix = isPrefix; $f.line = line; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.ReadLine = function() { return this.$val.ReadLine(); }; Reader.ptr.prototype.ReadBytes = function(delim) { var _i, _i$1, _r, _ref, _ref$1, _tuple, b, buf, buf$1, delim, e, err, frag, full, i, i$1, n, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; _tuple = $f._tuple; b = $f.b; buf = $f.buf; buf$1 = $f.buf$1; delim = $f.delim; e = $f.e; err = $f.err; frag = $f.frag; full = $f.full; i = $f.i; i$1 = $f.i$1; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: b = this; frag = sliceType.nil; full = sliceType$1.nil; err = $ifaceNil; /* while (true) { */ case 1: e = $ifaceNil; _r = b.ReadSlice(delim); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; frag = _tuple[0]; e = _tuple[1]; if ($interfaceIsEqual(e, $ifaceNil)) { /* break; */ $s = 2; continue; } if (!($interfaceIsEqual(e, $pkg.ErrBufferFull))) { err = e; /* break; */ $s = 2; continue; } buf = $makeSlice(sliceType, frag.$length); $copySlice(buf, frag); full = $append(full, buf); /* } */ $s = 1; continue; case 2: n = 0; _ref = full; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; n = n + (((i < 0 || i >= full.$length) ? ($throwRuntimeError("index out of range"), undefined) : full.$array[full.$offset + i]).$length) >> 0; _i++; } n = n + (frag.$length) >> 0; buf$1 = $makeSlice(sliceType, n); n = 0; _ref$1 = full; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } i$1 = _i$1; n = n + ($copySlice($subslice(buf$1, n), ((i$1 < 0 || i$1 >= full.$length) ? ($throwRuntimeError("index out of range"), undefined) : full.$array[full.$offset + i$1]))) >> 0; _i$1++; } $copySlice($subslice(buf$1, n), frag); $s = -1; return [buf$1, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.ReadBytes }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f.b = b; $f.buf = buf; $f.buf$1 = buf$1; $f.delim = delim; $f.e = e; $f.err = err; $f.frag = frag; $f.full = full; $f.i = i; $f.i$1 = i$1; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.ReadBytes = function(delim) { return this.$val.ReadBytes(delim); }; Reader.ptr.prototype.ReadString = function(delim) { var _r, _tuple, b, bytes$1, delim, err, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; b = $f.b; bytes$1 = $f.bytes$1; delim = $f.delim; err = $f.err; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: b = this; _r = b.ReadBytes(delim); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; bytes$1 = _tuple[0]; err = _tuple[1]; $s = -1; return [($bytesToString(bytes$1)), err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.ReadString }; } $f._r = _r; $f._tuple = _tuple; $f.b = b; $f.bytes$1 = bytes$1; $f.delim = delim; $f.err = err; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.ReadString = function(delim) { return this.$val.ReadString(delim); }; Reader.ptr.prototype.WriteTo = function(w) { var _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, b, err, err$1, err$2, err$3, m, m$1, m$2, n, ok, ok$1, r, w, w$1, x, x$1, x$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; b = $f.b; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; m = $f.m; m$1 = $f.m$1; m$2 = $f.m$2; n = $f.n; ok = $f.ok; ok$1 = $f.ok$1; r = $f.r; w = $f.w; w$1 = $f.w$1; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = new $Int64(0, 0); err = $ifaceNil; b = this; _r = b.writeBuf(w); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [n, err]; } _tuple$1 = $assertType(b.rd, io.WriterTo, true); r = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (ok) { $s = 2; continue; } /* */ $s = 3; continue; /* if (ok) { */ case 2: _r$1 = r.WriteTo(w); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$2 = _r$1; m = _tuple$2[0]; err$1 = _tuple$2[1]; n = (x = m, new $Int64(n.$high + x.$high, n.$low + x.$low)); _tmp = n; _tmp$1 = err$1; n = _tmp; err = _tmp$1; $s = -1; return [n, err]; /* } */ case 3: _tuple$3 = $assertType(w, io.ReaderFrom, true); w$1 = _tuple$3[0]; ok$1 = _tuple$3[1]; /* */ if (ok$1) { $s = 5; continue; } /* */ $s = 6; continue; /* if (ok$1) { */ case 5: _r$2 = w$1.ReadFrom(b.rd); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$4 = _r$2; m$1 = _tuple$4[0]; err$2 = _tuple$4[1]; n = (x$1 = m$1, new $Int64(n.$high + x$1.$high, n.$low + x$1.$low)); _tmp$2 = n; _tmp$3 = err$2; n = _tmp$2; err = _tmp$3; $s = -1; return [n, err]; /* } */ case 6: /* */ if ((b.w - b.r >> 0) < b.buf.$length) { $s = 8; continue; } /* */ $s = 9; continue; /* if ((b.w - b.r >> 0) < b.buf.$length) { */ case 8: $r = b.fill(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 9: /* while (true) { */ case 11: /* if (!(b.r < b.w)) { break; } */ if(!(b.r < b.w)) { $s = 12; continue; } _r$3 = b.writeBuf(w); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$5 = _r$3; m$2 = _tuple$5[0]; err$3 = _tuple$5[1]; n = (x$2 = m$2, new $Int64(n.$high + x$2.$high, n.$low + x$2.$low)); if (!($interfaceIsEqual(err$3, $ifaceNil))) { _tmp$4 = n; _tmp$5 = err$3; n = _tmp$4; err = _tmp$5; $s = -1; return [n, err]; } $r = b.fill(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ $s = 11; continue; case 12: if ($interfaceIsEqual(b.err, io.EOF)) { b.err = $ifaceNil; } _tmp$6 = n; _tmp$7 = b.readErr(); n = _tmp$6; err = _tmp$7; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.WriteTo }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f.b = b; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.m = m; $f.m$1 = m$1; $f.m$2 = m$2; $f.n = n; $f.ok = ok; $f.ok$1 = ok$1; $f.r = r; $f.w = w; $f.w$1 = w$1; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.WriteTo = function(w) { return this.$val.WriteTo(w); }; Reader.ptr.prototype.writeBuf = function(w) { var _r, _tuple, b, err, n, w, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; b = $f.b; err = $f.err; n = $f.n; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: b = this; _r = w.Write($subslice(b.buf, b.r, b.w)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; if (n < 0) { $panic(errNegativeWrite); } b.r = b.r + (n) >> 0; $s = -1; return [(new $Int64(0, n)), err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.writeBuf }; } $f._r = _r; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.n = n; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.writeBuf = function(w) { return this.$val.writeBuf(w); }; ptrType.methods = [{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([io.Reader], [], false)}, {prop: "reset", name: "reset", pkg: "bufio", typ: $funcType([sliceType, io.Reader], [], false)}, {prop: "fill", name: "fill", pkg: "bufio", typ: $funcType([], [], false)}, {prop: "readErr", name: "readErr", pkg: "bufio", typ: $funcType([], [$error], false)}, {prop: "Peek", name: "Peek", pkg: "", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "Discard", name: "Discard", pkg: "", typ: $funcType([$Int], [$Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Buffered", name: "Buffered", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ReadSlice", name: "ReadSlice", pkg: "", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "ReadLine", name: "ReadLine", pkg: "", typ: $funcType([], [sliceType, $Bool, $error], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "ReadString", name: "ReadString", pkg: "", typ: $funcType([$Uint8], [$String, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "writeBuf", name: "writeBuf", pkg: "bufio", typ: $funcType([io.Writer], [$Int64, $error], false)}]; Reader.init("bufio", [{prop: "buf", name: "buf", anonymous: false, exported: false, typ: sliceType, tag: ""}, {prop: "rd", name: "rd", anonymous: false, exported: false, typ: io.Reader, tag: ""}, {prop: "r", name: "r", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "w", name: "w", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "err", name: "err", anonymous: false, exported: false, typ: $error, tag: ""}, {prop: "lastByte", name: "lastByte", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "lastRuneSize", name: "lastRuneSize", anonymous: false, exported: false, typ: $Int, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $pkg.ErrInvalidUnreadByte = errors.New("bufio: invalid use of UnreadByte"); $pkg.ErrInvalidUnreadRune = errors.New("bufio: invalid use of UnreadRune"); $pkg.ErrBufferFull = errors.New("bufio: buffer full"); $pkg.ErrNegativeCount = errors.New("bufio: negative count"); errNegativeRead = errors.New("bufio: reader returned negative count from Read"); errNegativeWrite = errors.New("bufio: writer returned negative count from Write"); $pkg.ErrTooLong = errors.New("bufio.Scanner: token too long"); $pkg.ErrNegativeAdvance = errors.New("bufio.Scanner: SplitFunc returns negative advance count"); $pkg.ErrAdvanceTooFar = errors.New("bufio.Scanner: SplitFunc returns advance count beyond input"); $pkg.ErrFinalToken = errors.New("final token"); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["sort"] = (function() { var $pkg = {}, $init, reflect, lessSwap, StringSlice, sliceType$2, funcType, funcType$1, Search, SearchStrings, insertionSort, siftDown, heapSort, medianOfThree, doPivot, quickSort, Sort, maxDepth, Slice, insertionSort_func, siftDown_func, heapSort_func, medianOfThree_func, doPivot_func, quickSort_func; reflect = $packages["reflect"]; lessSwap = $pkg.lessSwap = $newType(0, $kindStruct, "sort.lessSwap", true, "sort", false, function(Less_, Swap_) { this.$val = this; if (arguments.length === 0) { this.Less = $throwNilPointerError; this.Swap = $throwNilPointerError; return; } this.Less = Less_; this.Swap = Swap_; }); StringSlice = $pkg.StringSlice = $newType(12, $kindSlice, "sort.StringSlice", true, "sort", true, null); sliceType$2 = $sliceType($String); funcType = $funcType([$Int, $Int], [$Bool], false); funcType$1 = $funcType([$Int, $Int], [], false); Search = function(n, f) { var _r, _tmp, _tmp$1, f, h, i, j, n, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; f = $f.f; h = $f.h; i = $f.i; j = $f.j; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tmp = 0; _tmp$1 = n; i = _tmp; j = _tmp$1; /* while (true) { */ case 1: /* if (!(i < j)) { break; } */ if(!(i < j)) { $s = 2; continue; } h = ((((((i + j >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); _r = f(h); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!_r) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!_r) { */ case 3: i = h + 1 >> 0; $s = 5; continue; /* } else { */ case 4: j = h; /* } */ case 5: /* } */ $s = 1; continue; case 2: $s = -1; return i; /* */ } return; } if ($f === undefined) { $f = { $blk: Search }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.f = f; $f.h = h; $f.i = i; $f.j = j; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Search = Search; SearchStrings = function(a, x) { var _r, a, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: a = [a]; x = [x]; _r = Search(a[0].$length, (function(a, x) { return function(i) { var i; return ((i < 0 || i >= a[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : a[0].$array[a[0].$offset + i]) >= x[0]; }; })(a, x)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: SearchStrings }; } $f._r = _r; $f.a = a; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.SearchStrings = SearchStrings; StringSlice.prototype.Search = function(x) { var _r, p, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; _r = SearchStrings($subslice(new sliceType$2(p.$array), p.$offset, p.$offset + p.$length), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: StringSlice.prototype.Search }; } $f._r = _r; $f.p = p; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $ptrType(StringSlice).prototype.Search = function(x) { return this.$get().Search(x); }; insertionSort = function(data, a, b) { var _r, _v, a, b, data, i, j, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _v = $f._v; a = $f.a; b = $f.b; data = $f.data; i = $f.i; j = $f.j; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = a + 1 >> 0; /* while (true) { */ case 1: /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 2; continue; } j = i; /* while (true) { */ case 3: if (!(j > a)) { _v = false; $s = 5; continue s; } _r = data.Less(j, j - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v = _r; case 5: /* if (!(_v)) { break; } */ if(!(_v)) { $s = 4; continue; } $r = data.Swap(j, j - 1 >> 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } j = j - (1) >> 0; /* } */ $s = 3; continue; case 4: i = i + (1) >> 0; /* } */ $s = 1; continue; case 2: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: insertionSort }; } $f._r = _r; $f._v = _v; $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.j = j; $f.$s = $s; $f.$r = $r; return $f; }; siftDown = function(data, lo, hi, first) { var _r, _r$1, _v, child, data, first, hi, lo, root, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _v = $f._v; child = $f.child; data = $f.data; first = $f.first; hi = $f.hi; lo = $f.lo; root = $f.root; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: root = lo; /* while (true) { */ case 1: child = ($imul(2, root)) + 1 >> 0; if (child >= hi) { /* break; */ $s = 2; continue; } if (!((child + 1 >> 0) < hi)) { _v = false; $s = 5; continue s; } _r = data.Less(first + child >> 0, (first + child >> 0) + 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v = _r; case 5: /* */ if (_v) { $s = 3; continue; } /* */ $s = 4; continue; /* if (_v) { */ case 3: child = child + (1) >> 0; /* } */ case 4: _r$1 = data.Less(first + root >> 0, first + child >> 0); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (!_r$1) { $s = 7; continue; } /* */ $s = 8; continue; /* if (!_r$1) { */ case 7: $s = -1; return; /* } */ case 8: $r = data.Swap(first + root >> 0, first + child >> 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } root = child; /* } */ $s = 1; continue; case 2: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: siftDown }; } $f._r = _r; $f._r$1 = _r$1; $f._v = _v; $f.child = child; $f.data = data; $f.first = first; $f.hi = hi; $f.lo = lo; $f.root = root; $f.$s = $s; $f.$r = $r; return $f; }; heapSort = function(data, a, b) { var _q, a, b, data, first, hi, i, i$1, lo, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; a = $f.a; b = $f.b; data = $f.data; first = $f.first; hi = $f.hi; i = $f.i; i$1 = $f.i$1; lo = $f.lo; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: first = a; lo = 0; hi = b - a >> 0; i = (_q = ((hi - 1 >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); /* while (true) { */ case 1: /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 2; continue; } $r = siftDown(data, i, hi, first); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i = i - (1) >> 0; /* } */ $s = 1; continue; case 2: i$1 = hi - 1 >> 0; /* while (true) { */ case 4: /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 5; continue; } $r = data.Swap(first, first + i$1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = siftDown(data, lo, i$1, first); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$1 = i$1 - (1) >> 0; /* } */ $s = 4; continue; case 5: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: heapSort }; } $f._q = _q; $f.a = a; $f.b = b; $f.data = data; $f.first = first; $f.hi = hi; $f.i = i; $f.i$1 = i$1; $f.lo = lo; $f.$s = $s; $f.$r = $r; return $f; }; medianOfThree = function(data, m1, m0, m2) { var _r, _r$1, _r$2, data, m0, m1, m2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; data = $f.data; m0 = $f.m0; m1 = $f.m1; m2 = $f.m2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = data.Less(m1, m0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $r = data.Swap(m1, m0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: _r$1 = data.Less(m2, m1); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_r$1) { */ case 5: $r = data.Swap(m2, m1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$2 = data.Less(m1, m0); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (_r$2) { $s = 9; continue; } /* */ $s = 10; continue; /* if (_r$2) { */ case 9: $r = data.Swap(m1, m0); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 10: /* } */ case 6: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: medianOfThree }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.data = data; $f.m0 = m0; $f.m1 = m1; $f.m2 = m2; $f.$s = $s; $f.$r = $r; return $f; }; doPivot = function(data, lo, hi) { var _q, _q$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, a, b, c, data, dups, hi, lo, m, midhi, midlo, pivot, protect, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; _v$3 = $f._v$3; _v$4 = $f._v$4; a = $f.a; b = $f.b; c = $f.c; data = $f.data; dups = $f.dups; hi = $f.hi; lo = $f.lo; m = $f.m; midhi = $f.midhi; midlo = $f.midlo; pivot = $f.pivot; protect = $f.protect; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: midlo = 0; midhi = 0; m = ((((((lo + hi >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); /* */ if ((hi - lo >> 0) > 40) { $s = 1; continue; } /* */ $s = 2; continue; /* if ((hi - lo >> 0) > 40) { */ case 1: s = (_q = ((hi - lo >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); $r = medianOfThree(data, lo, lo + s >> 0, lo + ($imul(2, s)) >> 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = medianOfThree(data, m, m - s >> 0, m + s >> 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = medianOfThree(data, hi - 1 >> 0, (hi - 1 >> 0) - s >> 0, (hi - 1 >> 0) - ($imul(2, s)) >> 0); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: $r = medianOfThree(data, lo, m, hi - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } pivot = lo; _tmp = lo + 1 >> 0; _tmp$1 = hi - 1 >> 0; a = _tmp; c = _tmp$1; /* while (true) { */ case 7: if (!(a < c)) { _v = false; $s = 9; continue s; } _r = data.Less(a, pivot); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v = _r; case 9: /* if (!(_v)) { break; } */ if(!(_v)) { $s = 8; continue; } a = a + (1) >> 0; /* } */ $s = 7; continue; case 8: b = a; /* while (true) { */ case 11: /* while (true) { */ case 13: if (!(b < c)) { _v$1 = false; $s = 15; continue s; } _r$1 = data.Less(pivot, b); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _v$1 = !_r$1; case 15: /* if (!(_v$1)) { break; } */ if(!(_v$1)) { $s = 14; continue; } b = b + (1) >> 0; /* } */ $s = 13; continue; case 14: /* while (true) { */ case 17: if (!(b < c)) { _v$2 = false; $s = 19; continue s; } _r$2 = data.Less(pivot, c - 1 >> 0); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _v$2 = _r$2; case 19: /* if (!(_v$2)) { break; } */ if(!(_v$2)) { $s = 18; continue; } c = c - (1) >> 0; /* } */ $s = 17; continue; case 18: if (b >= c) { /* break; */ $s = 12; continue; } $r = data.Swap(b, c - 1 >> 0); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } b = b + (1) >> 0; c = c - (1) >> 0; /* } */ $s = 11; continue; case 12: protect = (hi - c >> 0) < 5; /* */ if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { $s = 22; continue; } /* */ $s = 23; continue; /* if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { */ case 22: dups = 0; _r$3 = data.Less(pivot, hi - 1 >> 0); /* */ $s = 26; case 26: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (!_r$3) { $s = 24; continue; } /* */ $s = 25; continue; /* if (!_r$3) { */ case 24: $r = data.Swap(c, hi - 1 >> 0); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } c = c + (1) >> 0; dups = dups + (1) >> 0; /* } */ case 25: _r$4 = data.Less(b - 1 >> 0, pivot); /* */ $s = 30; case 30: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } /* */ if (!_r$4) { $s = 28; continue; } /* */ $s = 29; continue; /* if (!_r$4) { */ case 28: b = b - (1) >> 0; dups = dups + (1) >> 0; /* } */ case 29: _r$5 = data.Less(m, pivot); /* */ $s = 33; case 33: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } /* */ if (!_r$5) { $s = 31; continue; } /* */ $s = 32; continue; /* if (!_r$5) { */ case 31: $r = data.Swap(m, b - 1 >> 0); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } b = b - (1) >> 0; dups = dups + (1) >> 0; /* } */ case 32: protect = dups > 1; /* } */ case 23: /* */ if (protect) { $s = 35; continue; } /* */ $s = 36; continue; /* if (protect) { */ case 35: /* while (true) { */ case 37: /* while (true) { */ case 39: if (!(a < b)) { _v$3 = false; $s = 41; continue s; } _r$6 = data.Less(b - 1 >> 0, pivot); /* */ $s = 42; case 42: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _v$3 = !_r$6; case 41: /* if (!(_v$3)) { break; } */ if(!(_v$3)) { $s = 40; continue; } b = b - (1) >> 0; /* } */ $s = 39; continue; case 40: /* while (true) { */ case 43: if (!(a < b)) { _v$4 = false; $s = 45; continue s; } _r$7 = data.Less(a, pivot); /* */ $s = 46; case 46: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _v$4 = _r$7; case 45: /* if (!(_v$4)) { break; } */ if(!(_v$4)) { $s = 44; continue; } a = a + (1) >> 0; /* } */ $s = 43; continue; case 44: if (a >= b) { /* break; */ $s = 38; continue; } $r = data.Swap(a, b - 1 >> 0); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } a = a + (1) >> 0; b = b - (1) >> 0; /* } */ $s = 37; continue; case 38: /* } */ case 36: $r = data.Swap(pivot, b - 1 >> 0); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _tmp$2 = b - 1 >> 0; _tmp$3 = c; midlo = _tmp$2; midhi = _tmp$3; $s = -1; return [midlo, midhi]; /* */ } return; } if ($f === undefined) { $f = { $blk: doPivot }; } $f._q = _q; $f._q$1 = _q$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f._v$3 = _v$3; $f._v$4 = _v$4; $f.a = a; $f.b = b; $f.c = c; $f.data = data; $f.dups = dups; $f.hi = hi; $f.lo = lo; $f.m = m; $f.midhi = midhi; $f.midlo = midlo; $f.pivot = pivot; $f.protect = protect; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; quickSort = function(data, a, b, maxDepth$1) { var _r, _r$1, _tuple, a, b, data, i, maxDepth$1, mhi, mlo, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; a = $f.a; b = $f.b; data = $f.data; i = $f.i; maxDepth$1 = $f.maxDepth$1; mhi = $f.mhi; mlo = $f.mlo; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: /* while (true) { */ case 1: /* if (!((b - a >> 0) > 12)) { break; } */ if(!((b - a >> 0) > 12)) { $s = 2; continue; } /* */ if (maxDepth$1 === 0) { $s = 3; continue; } /* */ $s = 4; continue; /* if (maxDepth$1 === 0) { */ case 3: $r = heapSort(data, a, b); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 4: maxDepth$1 = maxDepth$1 - (1) >> 0; _r = doPivot(data, a, b); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; mlo = _tuple[0]; mhi = _tuple[1]; /* */ if ((mlo - a >> 0) < (b - mhi >> 0)) { $s = 7; continue; } /* */ $s = 8; continue; /* if ((mlo - a >> 0) < (b - mhi >> 0)) { */ case 7: $r = quickSort(data, a, mlo, maxDepth$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } a = mhi; $s = 9; continue; /* } else { */ case 8: $r = quickSort(data, mhi, b, maxDepth$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } b = mlo; /* } */ case 9: /* } */ $s = 1; continue; case 2: /* */ if ((b - a >> 0) > 1) { $s = 12; continue; } /* */ $s = 13; continue; /* if ((b - a >> 0) > 1) { */ case 12: i = a + 6 >> 0; /* while (true) { */ case 14: /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 15; continue; } _r$1 = data.Less(i, i - 6 >> 0); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 16; continue; } /* */ $s = 17; continue; /* if (_r$1) { */ case 16: $r = data.Swap(i, i - 6 >> 0); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 17: i = i + (1) >> 0; /* } */ $s = 14; continue; case 15: $r = insertionSort(data, a, b); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 13: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: quickSort }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.maxDepth$1 = maxDepth$1; $f.mhi = mhi; $f.mlo = mlo; $f.$s = $s; $f.$r = $r; return $f; }; Sort = function(data) { var _r, data, n, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; data = $f.data; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = data.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } n = _r; $r = quickSort(data, 0, n, maxDepth(n)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: Sort }; } $f._r = _r; $f.data = data; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Sort = Sort; maxDepth = function(n) { var depth, i, n; depth = 0; i = n; while (true) { if (!(i > 0)) { break; } depth = depth + (1) >> 0; i = (i >> $min((1), 31)) >> 0; } return $imul(depth, 2); }; Slice = function(slice, less) { var _r, _r$1, length, less, rv, slice, swap, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; length = $f.length; less = $f.less; rv = $f.rv; slice = $f.slice; swap = $f.swap; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = reflect.ValueOf(slice); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } rv = _r; _r$1 = reflect.Swapper(slice); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } swap = _r$1; length = $clone(rv, reflect.Value).Len(); $r = quickSort_func(new lessSwap.ptr(less, swap), 0, length, maxDepth(length)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: Slice }; } $f._r = _r; $f._r$1 = _r$1; $f.length = length; $f.less = less; $f.rv = rv; $f.slice = slice; $f.swap = swap; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Slice = Slice; StringSlice.prototype.Len = function() { var p; p = this; return p.$length; }; $ptrType(StringSlice).prototype.Len = function() { return this.$get().Len(); }; StringSlice.prototype.Less = function(i, j) { var i, j, p; p = this; return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); }; $ptrType(StringSlice).prototype.Less = function(i, j) { return this.$get().Less(i, j); }; StringSlice.prototype.Swap = function(i, j) { var _tmp, _tmp$1, i, j, p; p = this; _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); _tmp$1 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$1); }; $ptrType(StringSlice).prototype.Swap = function(i, j) { return this.$get().Swap(i, j); }; StringSlice.prototype.Sort = function() { var p, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; $r = Sort(p); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: StringSlice.prototype.Sort }; } $f.p = p; $f.$s = $s; $f.$r = $r; return $f; }; $ptrType(StringSlice).prototype.Sort = function() { return this.$get().Sort(); }; insertionSort_func = function(data, a, b) { var _r, _v, a, b, data, i, j, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _v = $f._v; a = $f.a; b = $f.b; data = $f.data; i = $f.i; j = $f.j; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = a + 1 >> 0; /* while (true) { */ case 1: /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 2; continue; } j = i; /* while (true) { */ case 3: if (!(j > a)) { _v = false; $s = 5; continue s; } _r = data.Less(j, j - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v = _r; case 5: /* if (!(_v)) { break; } */ if(!(_v)) { $s = 4; continue; } $r = data.Swap(j, j - 1 >> 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } j = j - (1) >> 0; /* } */ $s = 3; continue; case 4: i = i + (1) >> 0; /* } */ $s = 1; continue; case 2: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: insertionSort_func }; } $f._r = _r; $f._v = _v; $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.j = j; $f.$s = $s; $f.$r = $r; return $f; }; siftDown_func = function(data, lo, hi, first) { var _r, _r$1, _v, child, data, first, hi, lo, root, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _v = $f._v; child = $f.child; data = $f.data; first = $f.first; hi = $f.hi; lo = $f.lo; root = $f.root; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: root = lo; /* while (true) { */ case 1: child = ($imul(2, root)) + 1 >> 0; if (child >= hi) { /* break; */ $s = 2; continue; } if (!((child + 1 >> 0) < hi)) { _v = false; $s = 5; continue s; } _r = data.Less(first + child >> 0, (first + child >> 0) + 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v = _r; case 5: /* */ if (_v) { $s = 3; continue; } /* */ $s = 4; continue; /* if (_v) { */ case 3: child = child + (1) >> 0; /* } */ case 4: _r$1 = data.Less(first + root >> 0, first + child >> 0); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (!_r$1) { $s = 7; continue; } /* */ $s = 8; continue; /* if (!_r$1) { */ case 7: $s = -1; return; /* } */ case 8: $r = data.Swap(first + root >> 0, first + child >> 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } root = child; /* } */ $s = 1; continue; case 2: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: siftDown_func }; } $f._r = _r; $f._r$1 = _r$1; $f._v = _v; $f.child = child; $f.data = data; $f.first = first; $f.hi = hi; $f.lo = lo; $f.root = root; $f.$s = $s; $f.$r = $r; return $f; }; heapSort_func = function(data, a, b) { var _q, a, b, data, first, hi, i, i$1, lo, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; a = $f.a; b = $f.b; data = $f.data; first = $f.first; hi = $f.hi; i = $f.i; i$1 = $f.i$1; lo = $f.lo; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: first = a; lo = 0; hi = b - a >> 0; i = (_q = ((hi - 1 >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); /* while (true) { */ case 1: /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 2; continue; } $r = siftDown_func($clone(data, lessSwap), i, hi, first); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i = i - (1) >> 0; /* } */ $s = 1; continue; case 2: i$1 = hi - 1 >> 0; /* while (true) { */ case 4: /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 5; continue; } $r = data.Swap(first, first + i$1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = siftDown_func($clone(data, lessSwap), lo, i$1, first); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$1 = i$1 - (1) >> 0; /* } */ $s = 4; continue; case 5: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: heapSort_func }; } $f._q = _q; $f.a = a; $f.b = b; $f.data = data; $f.first = first; $f.hi = hi; $f.i = i; $f.i$1 = i$1; $f.lo = lo; $f.$s = $s; $f.$r = $r; return $f; }; medianOfThree_func = function(data, m1, m0, m2) { var _r, _r$1, _r$2, data, m0, m1, m2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; data = $f.data; m0 = $f.m0; m1 = $f.m1; m2 = $f.m2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = data.Less(m1, m0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $r = data.Swap(m1, m0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: _r$1 = data.Less(m2, m1); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_r$1) { */ case 5: $r = data.Swap(m2, m1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$2 = data.Less(m1, m0); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (_r$2) { $s = 9; continue; } /* */ $s = 10; continue; /* if (_r$2) { */ case 9: $r = data.Swap(m1, m0); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 10: /* } */ case 6: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: medianOfThree_func }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.data = data; $f.m0 = m0; $f.m1 = m1; $f.m2 = m2; $f.$s = $s; $f.$r = $r; return $f; }; doPivot_func = function(data, lo, hi) { var _q, _q$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, a, b, c, data, dups, hi, lo, m, midhi, midlo, pivot, protect, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; _v$3 = $f._v$3; _v$4 = $f._v$4; a = $f.a; b = $f.b; c = $f.c; data = $f.data; dups = $f.dups; hi = $f.hi; lo = $f.lo; m = $f.m; midhi = $f.midhi; midlo = $f.midlo; pivot = $f.pivot; protect = $f.protect; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: midlo = 0; midhi = 0; m = ((((((lo + hi >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); /* */ if ((hi - lo >> 0) > 40) { $s = 1; continue; } /* */ $s = 2; continue; /* if ((hi - lo >> 0) > 40) { */ case 1: s = (_q = ((hi - lo >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); $r = medianOfThree_func($clone(data, lessSwap), lo, lo + s >> 0, lo + ($imul(2, s)) >> 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = medianOfThree_func($clone(data, lessSwap), m, m - s >> 0, m + s >> 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = medianOfThree_func($clone(data, lessSwap), hi - 1 >> 0, (hi - 1 >> 0) - s >> 0, (hi - 1 >> 0) - ($imul(2, s)) >> 0); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: $r = medianOfThree_func($clone(data, lessSwap), lo, m, hi - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } pivot = lo; _tmp = lo + 1 >> 0; _tmp$1 = hi - 1 >> 0; a = _tmp; c = _tmp$1; /* while (true) { */ case 7: if (!(a < c)) { _v = false; $s = 9; continue s; } _r = data.Less(a, pivot); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v = _r; case 9: /* if (!(_v)) { break; } */ if(!(_v)) { $s = 8; continue; } a = a + (1) >> 0; /* } */ $s = 7; continue; case 8: b = a; /* while (true) { */ case 11: /* while (true) { */ case 13: if (!(b < c)) { _v$1 = false; $s = 15; continue s; } _r$1 = data.Less(pivot, b); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _v$1 = !_r$1; case 15: /* if (!(_v$1)) { break; } */ if(!(_v$1)) { $s = 14; continue; } b = b + (1) >> 0; /* } */ $s = 13; continue; case 14: /* while (true) { */ case 17: if (!(b < c)) { _v$2 = false; $s = 19; continue s; } _r$2 = data.Less(pivot, c - 1 >> 0); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _v$2 = _r$2; case 19: /* if (!(_v$2)) { break; } */ if(!(_v$2)) { $s = 18; continue; } c = c - (1) >> 0; /* } */ $s = 17; continue; case 18: if (b >= c) { /* break; */ $s = 12; continue; } $r = data.Swap(b, c - 1 >> 0); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } b = b + (1) >> 0; c = c - (1) >> 0; /* } */ $s = 11; continue; case 12: protect = (hi - c >> 0) < 5; /* */ if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { $s = 22; continue; } /* */ $s = 23; continue; /* if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { */ case 22: dups = 0; _r$3 = data.Less(pivot, hi - 1 >> 0); /* */ $s = 26; case 26: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (!_r$3) { $s = 24; continue; } /* */ $s = 25; continue; /* if (!_r$3) { */ case 24: $r = data.Swap(c, hi - 1 >> 0); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } c = c + (1) >> 0; dups = dups + (1) >> 0; /* } */ case 25: _r$4 = data.Less(b - 1 >> 0, pivot); /* */ $s = 30; case 30: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } /* */ if (!_r$4) { $s = 28; continue; } /* */ $s = 29; continue; /* if (!_r$4) { */ case 28: b = b - (1) >> 0; dups = dups + (1) >> 0; /* } */ case 29: _r$5 = data.Less(m, pivot); /* */ $s = 33; case 33: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } /* */ if (!_r$5) { $s = 31; continue; } /* */ $s = 32; continue; /* if (!_r$5) { */ case 31: $r = data.Swap(m, b - 1 >> 0); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } b = b - (1) >> 0; dups = dups + (1) >> 0; /* } */ case 32: protect = dups > 1; /* } */ case 23: /* */ if (protect) { $s = 35; continue; } /* */ $s = 36; continue; /* if (protect) { */ case 35: /* while (true) { */ case 37: /* while (true) { */ case 39: if (!(a < b)) { _v$3 = false; $s = 41; continue s; } _r$6 = data.Less(b - 1 >> 0, pivot); /* */ $s = 42; case 42: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _v$3 = !_r$6; case 41: /* if (!(_v$3)) { break; } */ if(!(_v$3)) { $s = 40; continue; } b = b - (1) >> 0; /* } */ $s = 39; continue; case 40: /* while (true) { */ case 43: if (!(a < b)) { _v$4 = false; $s = 45; continue s; } _r$7 = data.Less(a, pivot); /* */ $s = 46; case 46: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _v$4 = _r$7; case 45: /* if (!(_v$4)) { break; } */ if(!(_v$4)) { $s = 44; continue; } a = a + (1) >> 0; /* } */ $s = 43; continue; case 44: if (a >= b) { /* break; */ $s = 38; continue; } $r = data.Swap(a, b - 1 >> 0); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } a = a + (1) >> 0; b = b - (1) >> 0; /* } */ $s = 37; continue; case 38: /* } */ case 36: $r = data.Swap(pivot, b - 1 >> 0); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _tmp$2 = b - 1 >> 0; _tmp$3 = c; midlo = _tmp$2; midhi = _tmp$3; $s = -1; return [midlo, midhi]; /* */ } return; } if ($f === undefined) { $f = { $blk: doPivot_func }; } $f._q = _q; $f._q$1 = _q$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f._v$3 = _v$3; $f._v$4 = _v$4; $f.a = a; $f.b = b; $f.c = c; $f.data = data; $f.dups = dups; $f.hi = hi; $f.lo = lo; $f.m = m; $f.midhi = midhi; $f.midlo = midlo; $f.pivot = pivot; $f.protect = protect; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; quickSort_func = function(data, a, b, maxDepth$1) { var _r, _r$1, _tuple, a, b, data, i, maxDepth$1, mhi, mlo, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; a = $f.a; b = $f.b; data = $f.data; i = $f.i; maxDepth$1 = $f.maxDepth$1; mhi = $f.mhi; mlo = $f.mlo; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: /* while (true) { */ case 1: /* if (!((b - a >> 0) > 12)) { break; } */ if(!((b - a >> 0) > 12)) { $s = 2; continue; } /* */ if (maxDepth$1 === 0) { $s = 3; continue; } /* */ $s = 4; continue; /* if (maxDepth$1 === 0) { */ case 3: $r = heapSort_func($clone(data, lessSwap), a, b); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 4: maxDepth$1 = maxDepth$1 - (1) >> 0; _r = doPivot_func($clone(data, lessSwap), a, b); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; mlo = _tuple[0]; mhi = _tuple[1]; /* */ if ((mlo - a >> 0) < (b - mhi >> 0)) { $s = 7; continue; } /* */ $s = 8; continue; /* if ((mlo - a >> 0) < (b - mhi >> 0)) { */ case 7: $r = quickSort_func($clone(data, lessSwap), a, mlo, maxDepth$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } a = mhi; $s = 9; continue; /* } else { */ case 8: $r = quickSort_func($clone(data, lessSwap), mhi, b, maxDepth$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } b = mlo; /* } */ case 9: /* } */ $s = 1; continue; case 2: /* */ if ((b - a >> 0) > 1) { $s = 12; continue; } /* */ $s = 13; continue; /* if ((b - a >> 0) > 1) { */ case 12: i = a + 6 >> 0; /* while (true) { */ case 14: /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 15; continue; } _r$1 = data.Less(i, i - 6 >> 0); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 16; continue; } /* */ $s = 17; continue; /* if (_r$1) { */ case 16: $r = data.Swap(i, i - 6 >> 0); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 17: i = i + (1) >> 0; /* } */ $s = 14; continue; case 15: $r = insertionSort_func($clone(data, lessSwap), a, b); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 13: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: quickSort_func }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.maxDepth$1 = maxDepth$1; $f.mhi = mhi; $f.mlo = mlo; $f.$s = $s; $f.$r = $r; return $f; }; StringSlice.methods = [{prop: "Search", name: "Search", pkg: "", typ: $funcType([$String], [$Int], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Sort", name: "Sort", pkg: "", typ: $funcType([], [], false)}]; lessSwap.init("", [{prop: "Less", name: "Less", anonymous: false, exported: true, typ: funcType, tag: ""}, {prop: "Swap", name: "Swap", anonymous: false, exported: true, typ: funcType$1, tag: ""}]); StringSlice.init($String); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = reflect.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["strings"] = (function() { var $pkg = {}, $init, errors, js, io, unicode, utf8, Reader, Replacer, replacer, trieNode, genericReplacer, appendSliceWriter, stringWriterIface, stringWriter, singleStringReplacer, byteReplacer, byteStringReplacer, stringFinder, arrayType, ptrType, sliceType, arrayType$1, ptrType$1, ptrType$2, sliceType$1, ptrType$3, ptrType$4, arrayType$2, sliceType$2, ptrType$6, ptrType$7, ptrType$8, ptrType$9, IndexByte, Index, LastIndex, NewReader, NewReplacer, makeGenericReplacer, getStringWriter, makeSingleStringReplacer, makeStringFinder, longestCommonSuffix, max, Contains, ContainsRune, IndexRune, HasPrefix, Map, ToUpper, ToLower; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; io = $packages["io"]; unicode = $packages["unicode"]; utf8 = $packages["unicode/utf8"]; Reader = $pkg.Reader = $newType(0, $kindStruct, "strings.Reader", true, "strings", true, function(s_, i_, prevRune_) { this.$val = this; if (arguments.length === 0) { this.s = ""; this.i = new $Int64(0, 0); this.prevRune = 0; return; } this.s = s_; this.i = i_; this.prevRune = prevRune_; }); Replacer = $pkg.Replacer = $newType(0, $kindStruct, "strings.Replacer", true, "strings", true, function(r_) { this.$val = this; if (arguments.length === 0) { this.r = $ifaceNil; return; } this.r = r_; }); replacer = $pkg.replacer = $newType(8, $kindInterface, "strings.replacer", true, "strings", false, null); trieNode = $pkg.trieNode = $newType(0, $kindStruct, "strings.trieNode", true, "strings", false, function(value_, priority_, prefix_, next_, table_) { this.$val = this; if (arguments.length === 0) { this.value = ""; this.priority = 0; this.prefix = ""; this.next = ptrType$2.nil; this.table = sliceType$1.nil; return; } this.value = value_; this.priority = priority_; this.prefix = prefix_; this.next = next_; this.table = table_; }); genericReplacer = $pkg.genericReplacer = $newType(0, $kindStruct, "strings.genericReplacer", true, "strings", false, function(root_, tableSize_, mapping_) { this.$val = this; if (arguments.length === 0) { this.root = new trieNode.ptr("", 0, "", ptrType$2.nil, sliceType$1.nil); this.tableSize = 0; this.mapping = arrayType.zero(); return; } this.root = root_; this.tableSize = tableSize_; this.mapping = mapping_; }); appendSliceWriter = $pkg.appendSliceWriter = $newType(12, $kindSlice, "strings.appendSliceWriter", true, "strings", false, null); stringWriterIface = $pkg.stringWriterIface = $newType(8, $kindInterface, "strings.stringWriterIface", true, "strings", false, null); stringWriter = $pkg.stringWriter = $newType(0, $kindStruct, "strings.stringWriter", true, "strings", false, function(w_) { this.$val = this; if (arguments.length === 0) { this.w = $ifaceNil; return; } this.w = w_; }); singleStringReplacer = $pkg.singleStringReplacer = $newType(0, $kindStruct, "strings.singleStringReplacer", true, "strings", false, function(finder_, value_) { this.$val = this; if (arguments.length === 0) { this.finder = ptrType$4.nil; this.value = ""; return; } this.finder = finder_; this.value = value_; }); byteReplacer = $pkg.byteReplacer = $newType(256, $kindArray, "strings.byteReplacer", true, "strings", false, null); byteStringReplacer = $pkg.byteStringReplacer = $newType(3072, $kindArray, "strings.byteStringReplacer", true, "strings", false, null); stringFinder = $pkg.stringFinder = $newType(0, $kindStruct, "strings.stringFinder", true, "strings", false, function(pattern_, badCharSkip_, goodSuffixSkip_) { this.$val = this; if (arguments.length === 0) { this.pattern = ""; this.badCharSkip = arrayType$2.zero(); this.goodSuffixSkip = sliceType$2.nil; return; } this.pattern = pattern_; this.badCharSkip = badCharSkip_; this.goodSuffixSkip = goodSuffixSkip_; }); arrayType = $arrayType($Uint8, 256); ptrType = $ptrType(byteReplacer); sliceType = $sliceType($Uint8); arrayType$1 = $arrayType(sliceType, 256); ptrType$1 = $ptrType(byteStringReplacer); ptrType$2 = $ptrType(trieNode); sliceType$1 = $sliceType(ptrType$2); ptrType$3 = $ptrType(appendSliceWriter); ptrType$4 = $ptrType(stringFinder); arrayType$2 = $arrayType($Int, 256); sliceType$2 = $sliceType($Int); ptrType$6 = $ptrType(Reader); ptrType$7 = $ptrType(Replacer); ptrType$8 = $ptrType(genericReplacer); ptrType$9 = $ptrType(singleStringReplacer); IndexByte = function(s, c) { var c, s; return $parseInt(s.indexOf($global.String.fromCharCode(c))) >> 0; }; $pkg.IndexByte = IndexByte; Index = function(s, sep) { var s, sep; return $parseInt(s.indexOf(sep)) >> 0; }; $pkg.Index = Index; LastIndex = function(s, sep) { var s, sep; return $parseInt(s.lastIndexOf(sep)) >> 0; }; $pkg.LastIndex = LastIndex; Reader.ptr.prototype.Len = function() { var r, x, x$1, x$2, x$3, x$4; r = this; if ((x = r.i, x$1 = (new $Int64(0, r.s.length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { return 0; } return (((x$2 = (x$3 = (new $Int64(0, r.s.length)), x$4 = r.i, new $Int64(x$3.$high - x$4.$high, x$3.$low - x$4.$low)), x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0)); }; Reader.prototype.Len = function() { return this.$val.Len(); }; Reader.ptr.prototype.Size = function() { var r; r = this; return (new $Int64(0, r.s.length)); }; Reader.prototype.Size = function() { return this.$val.Size(); }; Reader.ptr.prototype.Read = function(b) { var _tmp, _tmp$1, b, err, n, r, x, x$1, x$2, x$3; n = 0; err = $ifaceNil; r = this; if ((x = r.i, x$1 = (new $Int64(0, r.s.length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { _tmp = 0; _tmp$1 = io.EOF; n = _tmp; err = _tmp$1; return [n, err]; } r.prevRune = -1; n = $copyString(b, $substring(r.s, $flatten64(r.i))); r.i = (x$2 = r.i, x$3 = (new $Int64(0, n)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)); return [n, err]; }; Reader.prototype.Read = function(b) { return this.$val.Read(b); }; Reader.ptr.prototype.ReadAt = function(b, off) { var _tmp, _tmp$1, _tmp$2, _tmp$3, b, err, n, off, r, x; n = 0; err = $ifaceNil; r = this; if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { _tmp = 0; _tmp$1 = errors.New("strings.Reader.ReadAt: negative offset"); n = _tmp; err = _tmp$1; return [n, err]; } if ((x = (new $Int64(0, r.s.length)), (off.$high > x.$high || (off.$high === x.$high && off.$low >= x.$low)))) { _tmp$2 = 0; _tmp$3 = io.EOF; n = _tmp$2; err = _tmp$3; return [n, err]; } n = $copyString(b, $substring(r.s, $flatten64(off))); if (n < b.$length) { err = io.EOF; } return [n, err]; }; Reader.prototype.ReadAt = function(b, off) { return this.$val.ReadAt(b, off); }; Reader.ptr.prototype.ReadByte = function() { var b, r, x, x$1, x$2, x$3; r = this; r.prevRune = -1; if ((x = r.i, x$1 = (new $Int64(0, r.s.length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { return [0, io.EOF]; } b = r.s.charCodeAt($flatten64(r.i)); r.i = (x$2 = r.i, x$3 = new $Int64(0, 1), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)); return [b, $ifaceNil]; }; Reader.prototype.ReadByte = function() { return this.$val.ReadByte(); }; Reader.ptr.prototype.UnreadByte = function() { var r, x, x$1, x$2; r = this; r.prevRune = -1; if ((x = r.i, (x.$high < 0 || (x.$high === 0 && x.$low <= 0)))) { return errors.New("strings.Reader.UnreadByte: at beginning of string"); } r.i = (x$1 = r.i, x$2 = new $Int64(0, 1), new $Int64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)); return $ifaceNil; }; Reader.prototype.UnreadByte = function() { return this.$val.UnreadByte(); }; Reader.ptr.prototype.ReadRune = function() { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, c, ch, err, r, size, x, x$1, x$2, x$3, x$4, x$5, x$6; ch = 0; size = 0; err = $ifaceNil; r = this; if ((x = r.i, x$1 = (new $Int64(0, r.s.length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { r.prevRune = -1; _tmp = 0; _tmp$1 = 0; _tmp$2 = io.EOF; ch = _tmp; size = _tmp$1; err = _tmp$2; return [ch, size, err]; } r.prevRune = (((x$2 = r.i, x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0)); c = r.s.charCodeAt($flatten64(r.i)); if (c < 128) { r.i = (x$3 = r.i, x$4 = new $Int64(0, 1), new $Int64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)); _tmp$3 = ((c >> 0)); _tmp$4 = 1; _tmp$5 = $ifaceNil; ch = _tmp$3; size = _tmp$4; err = _tmp$5; return [ch, size, err]; } _tuple = utf8.DecodeRuneInString($substring(r.s, $flatten64(r.i))); ch = _tuple[0]; size = _tuple[1]; r.i = (x$5 = r.i, x$6 = (new $Int64(0, size)), new $Int64(x$5.$high + x$6.$high, x$5.$low + x$6.$low)); return [ch, size, err]; }; Reader.prototype.ReadRune = function() { return this.$val.ReadRune(); }; Reader.ptr.prototype.UnreadRune = function() { var r; r = this; if (r.prevRune < 0) { return errors.New("strings.Reader.UnreadRune: previous operation was not ReadRune"); } r.i = (new $Int64(0, r.prevRune)); r.prevRune = -1; return $ifaceNil; }; Reader.prototype.UnreadRune = function() { return this.$val.UnreadRune(); }; Reader.ptr.prototype.Seek = function(offset, whence) { var _1, abs, offset, r, whence, x, x$1; r = this; r.prevRune = -1; abs = new $Int64(0, 0); _1 = whence; if (_1 === (0)) { abs = offset; } else if (_1 === (1)) { abs = (x = r.i, new $Int64(x.$high + offset.$high, x.$low + offset.$low)); } else if (_1 === (2)) { abs = (x$1 = (new $Int64(0, r.s.length)), new $Int64(x$1.$high + offset.$high, x$1.$low + offset.$low)); } else { return [new $Int64(0, 0), errors.New("strings.Reader.Seek: invalid whence")]; } if ((abs.$high < 0 || (abs.$high === 0 && abs.$low < 0))) { return [new $Int64(0, 0), errors.New("strings.Reader.Seek: negative position")]; } r.i = abs; return [abs, $ifaceNil]; }; Reader.prototype.Seek = function(offset, whence) { return this.$val.Seek(offset, whence); }; Reader.ptr.prototype.WriteTo = function(w) { var _r, _tmp, _tmp$1, _tuple, err, m, n, r, s, w, x, x$1, x$2, x$3, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; err = $f.err; m = $f.m; n = $f.n; r = $f.r; s = $f.s; w = $f.w; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = new $Int64(0, 0); err = $ifaceNil; r = this; r.prevRune = -1; if ((x = r.i, x$1 = (new $Int64(0, r.s.length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { _tmp = new $Int64(0, 0); _tmp$1 = $ifaceNil; n = _tmp; err = _tmp$1; $s = -1; return [n, err]; } s = $substring(r.s, $flatten64(r.i)); _r = io.WriteString(w, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; m = _tuple[0]; err = _tuple[1]; if (m > s.length) { $panic(new $String("strings.Reader.WriteTo: invalid WriteString count")); } r.i = (x$2 = r.i, x$3 = (new $Int64(0, m)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)); n = (new $Int64(0, m)); if (!((m === s.length)) && $interfaceIsEqual(err, $ifaceNil)) { err = io.ErrShortWrite; } $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.WriteTo }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.err = err; $f.m = m; $f.n = n; $f.r = r; $f.s = s; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.WriteTo = function(w) { return this.$val.WriteTo(w); }; Reader.ptr.prototype.Reset = function(s) { var r, s; r = this; Reader.copy(r, new Reader.ptr(s, new $Int64(0, 0), -1)); }; Reader.prototype.Reset = function(s) { return this.$val.Reset(s); }; NewReader = function(s) { var s; return new Reader.ptr(s, new $Int64(0, 0), -1); }; $pkg.NewReader = NewReader; NewReplacer = function(oldnew) { var _i, _r, _ref, allNewBytes, i, i$1, i$2, i$3, n, n$1, o, o$1, oldnew, r, r$1, x, x$1, x$2; if ((_r = oldnew.$length % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 1) { $panic(new $String("strings.NewReplacer: odd argument count")); } if ((oldnew.$length === 2) && (0 >= oldnew.$length ? ($throwRuntimeError("index out of range"), undefined) : oldnew.$array[oldnew.$offset + 0]).length > 1) { return new Replacer.ptr(makeSingleStringReplacer((0 >= oldnew.$length ? ($throwRuntimeError("index out of range"), undefined) : oldnew.$array[oldnew.$offset + 0]), (1 >= oldnew.$length ? ($throwRuntimeError("index out of range"), undefined) : oldnew.$array[oldnew.$offset + 1]))); } allNewBytes = true; i = 0; while (true) { if (!(i < oldnew.$length)) { break; } if (!((((i < 0 || i >= oldnew.$length) ? ($throwRuntimeError("index out of range"), undefined) : oldnew.$array[oldnew.$offset + i]).length === 1))) { return new Replacer.ptr(makeGenericReplacer(oldnew)); } if (!(((x = i + 1 >> 0, ((x < 0 || x >= oldnew.$length) ? ($throwRuntimeError("index out of range"), undefined) : oldnew.$array[oldnew.$offset + x])).length === 1))) { allNewBytes = false; } i = i + (2) >> 0; } if (allNewBytes) { r = arrayType.zero(); _ref = r; _i = 0; while (true) { if (!(_i < 256)) { break; } i$1 = _i; ((i$1 < 0 || i$1 >= r.length) ? ($throwRuntimeError("index out of range"), undefined) : r[i$1] = ((i$1 << 24 >>> 24))); _i++; } i$2 = oldnew.$length - 2 >> 0; while (true) { if (!(i$2 >= 0)) { break; } o = ((i$2 < 0 || i$2 >= oldnew.$length) ? ($throwRuntimeError("index out of range"), undefined) : oldnew.$array[oldnew.$offset + i$2]).charCodeAt(0); n = (x$1 = i$2 + 1 >> 0, ((x$1 < 0 || x$1 >= oldnew.$length) ? ($throwRuntimeError("index out of range"), undefined) : oldnew.$array[oldnew.$offset + x$1])).charCodeAt(0); ((o < 0 || o >= r.length) ? ($throwRuntimeError("index out of range"), undefined) : r[o] = n); i$2 = i$2 - (2) >> 0; } return new Replacer.ptr(new ptrType(r)); } r$1 = arrayType$1.zero(); i$3 = oldnew.$length - 2 >> 0; while (true) { if (!(i$3 >= 0)) { break; } o$1 = ((i$3 < 0 || i$3 >= oldnew.$length) ? ($throwRuntimeError("index out of range"), undefined) : oldnew.$array[oldnew.$offset + i$3]).charCodeAt(0); n$1 = (x$2 = i$3 + 1 >> 0, ((x$2 < 0 || x$2 >= oldnew.$length) ? ($throwRuntimeError("index out of range"), undefined) : oldnew.$array[oldnew.$offset + x$2])); ((o$1 < 0 || o$1 >= r$1.length) ? ($throwRuntimeError("index out of range"), undefined) : r$1[o$1] = (new sliceType($stringToBytes(n$1)))); i$3 = i$3 - (2) >> 0; } return new Replacer.ptr(new ptrType$1(r$1)); }; $pkg.NewReplacer = NewReplacer; Replacer.ptr.prototype.Replace = function(s) { var _r, r, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: r = this; _r = r.r.Replace(s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Replacer.ptr.prototype.Replace }; } $f._r = _r; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; Replacer.prototype.Replace = function(s) { return this.$val.Replace(s); }; Replacer.ptr.prototype.WriteString = function(w, s) { var _r, _tuple, err, n, r, s, w, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; n = $f.n; r = $f.r; s = $f.s; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; r = this; _r = r.r.WriteString(w, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Replacer.ptr.prototype.WriteString }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.n = n; $f.r = r; $f.s = s; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; }; Replacer.prototype.WriteString = function(w, s) { return this.$val.WriteString(w, s); }; trieNode.ptr.prototype.add = function(key, val, priority, r) { var key, keyNode, m, n, next, prefixNode, priority, r, t, val, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; t = this; if (key === "") { if (t.priority === 0) { t.value = val; t.priority = priority; } return; } if (!(t.prefix === "")) { n = 0; while (true) { if (!(n < t.prefix.length && n < key.length)) { break; } if (!((t.prefix.charCodeAt(n) === key.charCodeAt(n)))) { break; } n = n + (1) >> 0; } if (n === t.prefix.length) { t.next.add($substring(key, n), val, priority, r); } else if (n === 0) { prefixNode = ptrType$2.nil; if (t.prefix.length === 1) { prefixNode = t.next; } else { prefixNode = new trieNode.ptr("", 0, $substring(t.prefix, 1), t.next, sliceType$1.nil); } keyNode = new trieNode.ptr("", 0, "", ptrType$2.nil, sliceType$1.nil); t.table = $makeSlice(sliceType$1, r.tableSize); (x = t.table, x$1 = (x$2 = r.mapping, x$3 = t.prefix.charCodeAt(0), ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3])), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1] = prefixNode)); (x$4 = t.table, x$5 = (x$6 = r.mapping, x$7 = key.charCodeAt(0), ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[x$7])), ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5] = keyNode)); t.prefix = ""; t.next = ptrType$2.nil; keyNode.add($substring(key, 1), val, priority, r); } else { next = new trieNode.ptr("", 0, $substring(t.prefix, n), t.next, sliceType$1.nil); t.prefix = $substring(t.prefix, 0, n); t.next = next; next.add($substring(key, n), val, priority, r); } } else if (!(t.table === sliceType$1.nil)) { m = (x$8 = r.mapping, x$9 = key.charCodeAt(0), ((x$9 < 0 || x$9 >= x$8.length) ? ($throwRuntimeError("index out of range"), undefined) : x$8[x$9])); if ((x$10 = t.table, ((m < 0 || m >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + m])) === ptrType$2.nil) { (x$11 = t.table, ((m < 0 || m >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + m] = new trieNode.ptr("", 0, "", ptrType$2.nil, sliceType$1.nil))); } (x$12 = t.table, ((m < 0 || m >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + m])).add($substring(key, 1), val, priority, r); } else { t.prefix = key; t.next = new trieNode.ptr("", 0, "", ptrType$2.nil, sliceType$1.nil); t.next.add("", val, priority, r); } }; trieNode.prototype.add = function(key, val, priority, r) { return this.$val.add(key, val, priority, r); }; genericReplacer.ptr.prototype.lookup = function(s, ignoreRoot) { var bestPriority, found, ignoreRoot, index, keylen, n, node, r, s, val, x, x$1, x$2; val = ""; keylen = 0; found = false; r = this; bestPriority = 0; node = r.root; n = 0; while (true) { if (!(!(node === ptrType$2.nil))) { break; } if (node.priority > bestPriority && !(ignoreRoot && node === r.root)) { bestPriority = node.priority; val = node.value; keylen = n; found = true; } if (s === "") { break; } if (!(node.table === sliceType$1.nil)) { index = (x = r.mapping, x$1 = s.charCodeAt(0), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])); if (((index >> 0)) === r.tableSize) { break; } node = (x$2 = node.table, ((index < 0 || index >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + index])); s = $substring(s, 1); n = n + (1) >> 0; } else if (!(node.prefix === "") && HasPrefix(s, node.prefix)) { n = n + (node.prefix.length) >> 0; s = $substring(s, node.prefix.length); node = node.next; } else { break; } } return [val, keylen, found]; }; genericReplacer.prototype.lookup = function(s, ignoreRoot) { return this.$val.lookup(s, ignoreRoot); }; makeGenericReplacer = function(oldnew) { var _i, _i$1, _ref, _ref$1, b, b$1, i, i$1, i$2, index, j, key, oldnew, r, x, x$1, x$2, x$3, x$4; r = new genericReplacer.ptr(new trieNode.ptr("", 0, "", ptrType$2.nil, sliceType$1.nil), 0, arrayType.zero()); i = 0; while (true) { if (!(i < oldnew.$length)) { break; } key = ((i < 0 || i >= oldnew.$length) ? ($throwRuntimeError("index out of range"), undefined) : oldnew.$array[oldnew.$offset + i]); j = 0; while (true) { if (!(j < key.length)) { break; } (x = r.mapping, x$1 = key.charCodeAt(j), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1] = 1)); j = j + (1) >> 0; } i = i + (2) >> 0; } _ref = r.mapping; _i = 0; while (true) { if (!(_i < 256)) { break; } b = ((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]); r.tableSize = r.tableSize + (((b >> 0))) >> 0; _i++; } index = 0; _ref$1 = r.mapping; _i$1 = 0; while (true) { if (!(_i$1 < 256)) { break; } i$1 = _i$1; b$1 = ((_i$1 < 0 || _i$1 >= _ref$1.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1[_i$1]); if (b$1 === 0) { (x$2 = r.mapping, ((i$1 < 0 || i$1 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i$1] = ((r.tableSize << 24 >>> 24)))); } else { (x$3 = r.mapping, ((i$1 < 0 || i$1 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i$1] = index)); index = index + (1) << 24 >>> 24; } _i$1++; } r.root.table = $makeSlice(sliceType$1, r.tableSize); i$2 = 0; while (true) { if (!(i$2 < oldnew.$length)) { break; } r.root.add(((i$2 < 0 || i$2 >= oldnew.$length) ? ($throwRuntimeError("index out of range"), undefined) : oldnew.$array[oldnew.$offset + i$2]), (x$4 = i$2 + 1 >> 0, ((x$4 < 0 || x$4 >= oldnew.$length) ? ($throwRuntimeError("index out of range"), undefined) : oldnew.$array[oldnew.$offset + x$4])), oldnew.$length - i$2 >> 0, r); i$2 = i$2 + (2) >> 0; } return r; }; $ptrType(appendSliceWriter).prototype.Write = function(p) { var p, w; w = this; w.$set($appendSlice(w.$get(), p)); return [p.$length, $ifaceNil]; }; $ptrType(appendSliceWriter).prototype.WriteString = function(s) { var s, w; w = this; w.$set($appendSlice(w.$get(), s)); return [s.length, $ifaceNil]; }; stringWriter.ptr.prototype.WriteString = function(s) { var _r, s, w, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; s = $f.s; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: w = this; _r = w.w.Write((new sliceType($stringToBytes(s)))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: stringWriter.ptr.prototype.WriteString }; } $f._r = _r; $f.s = s; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; }; stringWriter.prototype.WriteString = function(s) { return this.$val.WriteString(s); }; getStringWriter = function(w) { var _tuple, ok, sw, w, x; _tuple = $assertType(w, stringWriterIface, true); sw = _tuple[0]; ok = _tuple[1]; if (!ok) { sw = (x = new stringWriter.ptr(w), new x.constructor.elem(x)); } return sw; }; genericReplacer.ptr.prototype.Replace = function(s) { var _r, buf, r, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; buf = $f.buf; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: buf = [buf]; r = this; buf[0] = $makeSlice(appendSliceWriter, 0, s.length); _r = r.WriteString((buf.$ptr || (buf.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, buf))), s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; $s = -1; return ($bytesToString(buf[0])); /* */ } return; } if ($f === undefined) { $f = { $blk: genericReplacer.ptr.prototype.Replace }; } $f._r = _r; $f.buf = buf; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; genericReplacer.prototype.Replace = function(s) { return this.$val.Replace(s); }; genericReplacer.ptr.prototype.WriteString = function(w, s) { var _r, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, err, i, index, keylen, last, match, n, prevMatchEmpty, r, s, sw, val, w, wn, x, x$1, x$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; err = $f.err; i = $f.i; index = $f.index; keylen = $f.keylen; last = $f.last; match = $f.match; n = $f.n; prevMatchEmpty = $f.prevMatchEmpty; r = $f.r; s = $f.s; sw = $f.sw; val = $f.val; w = $f.w; wn = $f.wn; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; r = this; sw = getStringWriter(w); _tmp = 0; _tmp$1 = 0; last = _tmp; wn = _tmp$1; prevMatchEmpty = false; i = 0; /* while (true) { */ case 1: /* if (!(i <= s.length)) { break; } */ if(!(i <= s.length)) { $s = 2; continue; } /* */ if (!((i === s.length)) && (r.root.priority === 0)) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!((i === s.length)) && (r.root.priority === 0)) { */ case 3: index = (((x = r.mapping, x$1 = s.charCodeAt(i), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) >> 0)); if ((index === r.tableSize) || (x$2 = r.root.table, ((index < 0 || index >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + index])) === ptrType$2.nil) { i = i + (1) >> 0; /* continue; */ $s = 1; continue; } /* } */ case 4: _tuple = r.lookup($substring(s, i), prevMatchEmpty); val = _tuple[0]; keylen = _tuple[1]; match = _tuple[2]; prevMatchEmpty = match && (keylen === 0); /* */ if (match) { $s = 5; continue; } /* */ $s = 6; continue; /* if (match) { */ case 5: _r = sw.WriteString($substring(s, last, i)); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple$1 = _r; wn = _tuple$1[0]; err = _tuple$1[1]; n = n + (wn) >> 0; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [n, err]; } _r$1 = sw.WriteString(val); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$2 = _r$1; wn = _tuple$2[0]; err = _tuple$2[1]; n = n + (wn) >> 0; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [n, err]; } i = i + (keylen) >> 0; last = i; /* continue; */ $s = 1; continue; /* } */ case 6: i = i + (1) >> 0; /* } */ $s = 1; continue; case 2: /* */ if (!((last === s.length))) { $s = 9; continue; } /* */ $s = 10; continue; /* if (!((last === s.length))) { */ case 9: _r$2 = sw.WriteString($substring(s, last)); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$3 = _r$2; wn = _tuple$3[0]; err = _tuple$3[1]; n = n + (wn) >> 0; /* } */ case 10: $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: genericReplacer.ptr.prototype.WriteString }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.err = err; $f.i = i; $f.index = index; $f.keylen = keylen; $f.last = last; $f.match = match; $f.n = n; $f.prevMatchEmpty = prevMatchEmpty; $f.r = r; $f.s = s; $f.sw = sw; $f.val = val; $f.w = w; $f.wn = wn; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; }; genericReplacer.prototype.WriteString = function(w, s) { return this.$val.WriteString(w, s); }; makeSingleStringReplacer = function(pattern, value) { var pattern, value; return new singleStringReplacer.ptr(makeStringFinder(pattern), value); }; singleStringReplacer.ptr.prototype.Replace = function(s) { var _tmp, _tmp$1, buf, i, match, matched, r, s; r = this; buf = sliceType.nil; _tmp = 0; _tmp$1 = false; i = _tmp; matched = _tmp$1; while (true) { match = r.finder.next($substring(s, i)); if (match === -1) { break; } matched = true; buf = $appendSlice(buf, $substring(s, i, (i + match >> 0))); buf = $appendSlice(buf, r.value); i = i + ((match + r.finder.pattern.length >> 0)) >> 0; } if (!matched) { return s; } buf = $appendSlice(buf, $substring(s, i)); return ($bytesToString(buf)); }; singleStringReplacer.prototype.Replace = function(s) { return this.$val.Replace(s); }; singleStringReplacer.ptr.prototype.WriteString = function(w, s) { var _r, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, err, i, match, n, r, s, sw, w, wn, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; err = $f.err; i = $f.i; match = $f.match; n = $f.n; r = $f.r; s = $f.s; sw = $f.sw; w = $f.w; wn = $f.wn; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; r = this; sw = getStringWriter(w); _tmp = 0; _tmp$1 = 0; i = _tmp; wn = _tmp$1; /* while (true) { */ case 1: match = r.finder.next($substring(s, i)); if (match === -1) { /* break; */ $s = 2; continue; } _r = sw.WriteString($substring(s, i, (i + match >> 0))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; wn = _tuple[0]; err = _tuple[1]; n = n + (wn) >> 0; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [n, err]; } _r$1 = sw.WriteString(r.value); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; wn = _tuple$1[0]; err = _tuple$1[1]; n = n + (wn) >> 0; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [n, err]; } i = i + ((match + r.finder.pattern.length >> 0)) >> 0; /* } */ $s = 1; continue; case 2: _r$2 = sw.WriteString($substring(s, i)); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$2 = _r$2; wn = _tuple$2[0]; err = _tuple$2[1]; n = n + (wn) >> 0; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: singleStringReplacer.ptr.prototype.WriteString }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.err = err; $f.i = i; $f.match = match; $f.n = n; $f.r = r; $f.s = s; $f.sw = sw; $f.w = w; $f.wn = wn; $f.$s = $s; $f.$r = $r; return $f; }; singleStringReplacer.prototype.WriteString = function(w, s) { return this.$val.WriteString(w, s); }; byteReplacer.prototype.Replace = function(s) { var b, buf, i, r, s; r = this.$val; buf = sliceType.nil; i = 0; while (true) { if (!(i < s.length)) { break; } b = s.charCodeAt(i); if (!(((r.nilCheck, ((b < 0 || b >= r.length) ? ($throwRuntimeError("index out of range"), undefined) : r[b])) === b))) { if (buf === sliceType.nil) { buf = (new sliceType($stringToBytes(s))); } ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (r.nilCheck, ((b < 0 || b >= r.length) ? ($throwRuntimeError("index out of range"), undefined) : r[b]))); } i = i + (1) >> 0; } if (buf === sliceType.nil) { return s; } return ($bytesToString(buf)); }; $ptrType(byteReplacer).prototype.Replace = function(s) { return (new byteReplacer(this.$get())).Replace(s); }; byteReplacer.prototype.WriteString = function(w, s) { var _i, _r, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, buf, bufsize, err, err$1, i, n, ncopy, r, s, w, wn, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; buf = $f.buf; bufsize = $f.bufsize; err = $f.err; err$1 = $f.err$1; i = $f.i; n = $f.n; ncopy = $f.ncopy; r = $f.r; s = $f.s; w = $f.w; wn = $f.wn; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; r = this.$val; bufsize = 32768; if (s.length < bufsize) { bufsize = s.length; } buf = $makeSlice(sliceType, bufsize); /* while (true) { */ case 1: /* if (!(s.length > 0)) { break; } */ if(!(s.length > 0)) { $s = 2; continue; } ncopy = $copyString(buf, s); s = $substring(s, ncopy); _ref = $subslice(buf, 0, ncopy); _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (r.nilCheck, ((b < 0 || b >= r.length) ? ($throwRuntimeError("index out of range"), undefined) : r[b]))); _i++; } _r = w.Write($subslice(buf, 0, ncopy)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; wn = _tuple[0]; err$1 = _tuple[1]; n = n + (wn) >> 0; if (!($interfaceIsEqual(err$1, $ifaceNil))) { _tmp = n; _tmp$1 = err$1; n = _tmp; err = _tmp$1; $s = -1; return [n, err]; } /* } */ $s = 1; continue; case 2: _tmp$2 = n; _tmp$3 = $ifaceNil; n = _tmp$2; err = _tmp$3; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: byteReplacer.prototype.WriteString }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.buf = buf; $f.bufsize = bufsize; $f.err = err; $f.err$1 = err$1; $f.i = i; $f.n = n; $f.ncopy = ncopy; $f.r = r; $f.s = s; $f.w = w; $f.wn = wn; $f.$s = $s; $f.$r = $r; return $f; }; $ptrType(byteReplacer).prototype.WriteString = function(w, s) { return (new byteReplacer(this.$get())).WriteString(w, s); }; byteStringReplacer.prototype.Replace = function(s) { var anyChanges, b, b$1, bi, buf, i, i$1, n, newSize, r, s; r = this.$val; newSize = s.length; anyChanges = false; i = 0; while (true) { if (!(i < s.length)) { break; } b = s.charCodeAt(i); if (!((r.nilCheck, ((b < 0 || b >= r.length) ? ($throwRuntimeError("index out of range"), undefined) : r[b])) === sliceType.nil)) { anyChanges = true; newSize = newSize + (((r.nilCheck, ((b < 0 || b >= r.length) ? ($throwRuntimeError("index out of range"), undefined) : r[b])).$length - 1 >> 0)) >> 0; } i = i + (1) >> 0; } if (!anyChanges) { return s; } buf = $makeSlice(sliceType, newSize); bi = buf; i$1 = 0; while (true) { if (!(i$1 < s.length)) { break; } b$1 = s.charCodeAt(i$1); if (!((r.nilCheck, ((b$1 < 0 || b$1 >= r.length) ? ($throwRuntimeError("index out of range"), undefined) : r[b$1])) === sliceType.nil)) { n = $copySlice(bi, (r.nilCheck, ((b$1 < 0 || b$1 >= r.length) ? ($throwRuntimeError("index out of range"), undefined) : r[b$1]))); bi = $subslice(bi, n); } else { (0 >= bi.$length ? ($throwRuntimeError("index out of range"), undefined) : bi.$array[bi.$offset + 0] = b$1); bi = $subslice(bi, 1); } i$1 = i$1 + (1) >> 0; } return ($bytesToString(buf)); }; $ptrType(byteStringReplacer).prototype.Replace = function(s) { return (new byteStringReplacer(this.$get())).Replace(s); }; byteStringReplacer.prototype.WriteString = function(w, s) { var _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$2, b, err, err$1, err$2, i, last, n, nw, nw$1, nw$2, r, s, sw, w, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; b = $f.b; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; i = $f.i; last = $f.last; n = $f.n; nw = $f.nw; nw$1 = $f.nw$1; nw$2 = $f.nw$2; r = $f.r; s = $f.s; sw = $f.sw; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; r = this.$val; sw = getStringWriter(w); last = 0; i = 0; /* while (true) { */ case 1: /* if (!(i < s.length)) { break; } */ if(!(i < s.length)) { $s = 2; continue; } b = s.charCodeAt(i); /* */ if ((r.nilCheck, ((b < 0 || b >= r.length) ? ($throwRuntimeError("index out of range"), undefined) : r[b])) === sliceType.nil) { $s = 3; continue; } /* */ $s = 4; continue; /* if ((r.nilCheck, ((b < 0 || b >= r.length) ? ($throwRuntimeError("index out of range"), undefined) : r[b])) === sliceType.nil) { */ case 3: i = i + (1) >> 0; /* continue; */ $s = 1; continue; /* } */ case 4: /* */ if (!((last === i))) { $s = 5; continue; } /* */ $s = 6; continue; /* if (!((last === i))) { */ case 5: _r = sw.WriteString($substring(s, last, i)); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; nw = _tuple[0]; err$1 = _tuple[1]; n = n + (nw) >> 0; if (!($interfaceIsEqual(err$1, $ifaceNil))) { _tmp = n; _tmp$1 = err$1; n = _tmp; err = _tmp$1; $s = -1; return [n, err]; } /* } */ case 6: last = i + 1 >> 0; _r$1 = w.Write((r.nilCheck, ((b < 0 || b >= r.length) ? ($throwRuntimeError("index out of range"), undefined) : r[b]))); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; nw$1 = _tuple$1[0]; err$2 = _tuple$1[1]; n = n + (nw$1) >> 0; if (!($interfaceIsEqual(err$2, $ifaceNil))) { _tmp$2 = n; _tmp$3 = err$2; n = _tmp$2; err = _tmp$3; $s = -1; return [n, err]; } i = i + (1) >> 0; /* } */ $s = 1; continue; case 2: /* */ if (!((last === s.length))) { $s = 9; continue; } /* */ $s = 10; continue; /* if (!((last === s.length))) { */ case 9: nw$2 = 0; _r$2 = sw.WriteString($substring(s, last)); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$2 = _r$2; nw$2 = _tuple$2[0]; err = _tuple$2[1]; n = n + (nw$2) >> 0; /* } */ case 10: $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: byteStringReplacer.prototype.WriteString }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.b = b; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.i = i; $f.last = last; $f.n = n; $f.nw = nw; $f.nw$1 = nw$1; $f.nw$2 = nw$2; $f.r = r; $f.s = s; $f.sw = sw; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; }; $ptrType(byteStringReplacer).prototype.WriteString = function(w, s) { return (new byteStringReplacer(this.$get())).WriteString(w, s); }; makeStringFinder = function(pattern) { var _i, _ref, f, i, i$1, i$2, i$3, last, lastPrefix, lenSuffix, pattern, x, x$1, x$2, x$3, x$4, x$5; f = new stringFinder.ptr(pattern, arrayType$2.zero(), $makeSlice(sliceType$2, pattern.length)); last = pattern.length - 1 >> 0; _ref = f.badCharSkip; _i = 0; while (true) { if (!(_i < 256)) { break; } i = _i; (x = f.badCharSkip, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = pattern.length)); _i++; } i$1 = 0; while (true) { if (!(i$1 < last)) { break; } (x$1 = f.badCharSkip, x$2 = pattern.charCodeAt(i$1), ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2] = (last - i$1 >> 0))); i$1 = i$1 + (1) >> 0; } lastPrefix = last; i$2 = last; while (true) { if (!(i$2 >= 0)) { break; } if (HasPrefix(pattern, $substring(pattern, (i$2 + 1 >> 0)))) { lastPrefix = i$2 + 1 >> 0; } (x$3 = f.goodSuffixSkip, ((i$2 < 0 || i$2 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i$2] = ((lastPrefix + last >> 0) - i$2 >> 0))); i$2 = i$2 - (1) >> 0; } i$3 = 0; while (true) { if (!(i$3 < last)) { break; } lenSuffix = longestCommonSuffix(pattern, $substring(pattern, 1, (i$3 + 1 >> 0))); if (!((pattern.charCodeAt((i$3 - lenSuffix >> 0)) === pattern.charCodeAt((last - lenSuffix >> 0))))) { (x$4 = f.goodSuffixSkip, x$5 = last - lenSuffix >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5] = ((lenSuffix + last >> 0) - i$3 >> 0))); } i$3 = i$3 + (1) >> 0; } return f; }; longestCommonSuffix = function(a, b) { var a, b, i; i = 0; while (true) { if (!(i < a.length && i < b.length)) { break; } if (!((a.charCodeAt(((a.length - 1 >> 0) - i >> 0)) === b.charCodeAt(((b.length - 1 >> 0) - i >> 0))))) { break; } i = i + (1) >> 0; } return i; }; stringFinder.ptr.prototype.next = function(text) { var f, i, j, text, x, x$1, x$2; f = this; i = f.pattern.length - 1 >> 0; while (true) { if (!(i < text.length)) { break; } j = f.pattern.length - 1 >> 0; while (true) { if (!(j >= 0 && (text.charCodeAt(i) === f.pattern.charCodeAt(j)))) { break; } i = i - (1) >> 0; j = j - (1) >> 0; } if (j < 0) { return i + 1 >> 0; } i = i + (max((x = f.badCharSkip, x$1 = text.charCodeAt(i), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])), (x$2 = f.goodSuffixSkip, ((j < 0 || j >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j])))) >> 0; } return -1; }; stringFinder.prototype.next = function(text) { return this.$val.next(text); }; max = function(a, b) { var a, b; if (a > b) { return a; } return b; }; Contains = function(s, substr) { var s, substr; return Index(s, substr) >= 0; }; $pkg.Contains = Contains; ContainsRune = function(s, r) { var r, s; return IndexRune(s, r) >= 0; }; $pkg.ContainsRune = ContainsRune; IndexRune = function(s, r) { var _i, _ref, _rune, i, r, r$1, s; if (0 <= r && r < 128) { return IndexByte(s, ((r << 24 >>> 24))); } else if ((r === 65533)) { _ref = s; _i = 0; while (true) { if (!(_i < _ref.length)) { break; } _rune = $decodeRune(_ref, _i); i = _i; r$1 = _rune[0]; if (r$1 === 65533) { return i; } _i += _rune[1]; } return -1; } else if (!utf8.ValidRune(r)) { return -1; } else { return Index(s, ($encodeRune(r))); } }; $pkg.IndexRune = IndexRune; HasPrefix = function(s, prefix) { var prefix, s; return s.length >= prefix.length && $substring(s, 0, prefix.length) === prefix; }; $pkg.HasPrefix = HasPrefix; Map = function(mapping, s) { var _i, _i$1, _r, _r$1, _ref, _ref$1, _rune, _rune$1, _tuple, b, c, c$1, i, mapping, nb, nbytes, r, r$1, s, w, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _rune = $f._rune; _rune$1 = $f._rune$1; _tuple = $f._tuple; b = $f.b; c = $f.c; c$1 = $f.c$1; i = $f.i; mapping = $f.mapping; nb = $f.nb; nbytes = $f.nbytes; r = $f.r; r$1 = $f.r$1; s = $f.s; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: b = sliceType.nil; nbytes = 0; _ref = s; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.length)) { break; } */ if(!(_i < _ref.length)) { $s = 2; continue; } _rune = $decodeRune(_ref, _i); i = _i; c = _rune[0]; _r = mapping(c); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } r = _r; if (r === c) { _i += _rune[1]; /* continue; */ $s = 1; continue; } b = $makeSlice(sliceType, (s.length + 4 >> 0)); nbytes = $copyString(b, $substring(s, 0, i)); if (r >= 0) { if (r <= 128) { ((nbytes < 0 || nbytes >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + nbytes] = ((r << 24 >>> 24))); nbytes = nbytes + (1) >> 0; } else { nbytes = nbytes + (utf8.EncodeRune($subslice(b, nbytes), r)) >> 0; } } if (c === 65533) { _tuple = utf8.DecodeRuneInString($substring(s, i)); w = _tuple[1]; i = i + (w) >> 0; } else { i = i + (utf8.RuneLen(c)) >> 0; } s = $substring(s, i); /* break; */ $s = 2; continue; /* } */ $s = 1; continue; case 2: if (b === sliceType.nil) { $s = -1; return s; } _ref$1 = s; _i$1 = 0; /* while (true) { */ case 4: /* if (!(_i$1 < _ref$1.length)) { break; } */ if(!(_i$1 < _ref$1.length)) { $s = 5; continue; } _rune$1 = $decodeRune(_ref$1, _i$1); c$1 = _rune$1[0]; _r$1 = mapping(c$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } r$1 = _r$1; if ((0 <= r$1 && r$1 <= 128) && nbytes < b.$length) { ((nbytes < 0 || nbytes >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + nbytes] = ((r$1 << 24 >>> 24))); nbytes = nbytes + (1) >> 0; _i$1 += _rune$1[1]; /* continue; */ $s = 4; continue; } if (r$1 >= 0) { if ((nbytes + 4 >> 0) >= b.$length) { nb = $makeSlice(sliceType, ($imul(2, b.$length))); $copySlice(nb, $subslice(b, 0, nbytes)); b = nb; } nbytes = nbytes + (utf8.EncodeRune($subslice(b, nbytes), r$1)) >> 0; } _i$1 += _rune$1[1]; /* } */ $s = 4; continue; case 5: $s = -1; return ($bytesToString($subslice(b, 0, nbytes))); /* */ } return; } if ($f === undefined) { $f = { $blk: Map }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._rune = _rune; $f._rune$1 = _rune$1; $f._tuple = _tuple; $f.b = b; $f.c = c; $f.c$1 = c$1; $f.i = i; $f.mapping = mapping; $f.nb = nb; $f.nbytes = nbytes; $f.r = r; $f.r$1 = r$1; $f.s = s; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Map = Map; ToUpper = function(s) { var _r, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Map(unicode.ToUpper, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: ToUpper }; } $f._r = _r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.ToUpper = ToUpper; ToLower = function(s) { var _r, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Map(unicode.ToLower, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: ToLower }; } $f._r = _r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.ToLower = ToLower; ptrType$6.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([$String], [], false)}]; ptrType$7.methods = [{prop: "Replace", name: "Replace", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([io.Writer, $String], [$Int, $error], false)}]; ptrType$2.methods = [{prop: "add", name: "add", pkg: "strings", typ: $funcType([$String, $String, $Int, ptrType$8], [], false)}]; ptrType$8.methods = [{prop: "lookup", name: "lookup", pkg: "strings", typ: $funcType([$String, $Bool], [$String, $Int, $Bool], false)}, {prop: "Replace", name: "Replace", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([io.Writer, $String], [$Int, $error], false)}]; ptrType$3.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}]; stringWriter.methods = [{prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}]; ptrType$9.methods = [{prop: "Replace", name: "Replace", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([io.Writer, $String], [$Int, $error], false)}]; ptrType.methods = [{prop: "Replace", name: "Replace", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([io.Writer, $String], [$Int, $error], false)}]; ptrType$1.methods = [{prop: "Replace", name: "Replace", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([io.Writer, $String], [$Int, $error], false)}]; ptrType$4.methods = [{prop: "next", name: "next", pkg: "strings", typ: $funcType([$String], [$Int], false)}]; Reader.init("strings", [{prop: "s", name: "s", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "i", name: "i", anonymous: false, exported: false, typ: $Int64, tag: ""}, {prop: "prevRune", name: "prevRune", anonymous: false, exported: false, typ: $Int, tag: ""}]); Replacer.init("strings", [{prop: "r", name: "r", anonymous: false, exported: false, typ: replacer, tag: ""}]); replacer.init([{prop: "Replace", name: "Replace", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([io.Writer, $String], [$Int, $error], false)}]); trieNode.init("strings", [{prop: "value", name: "value", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "priority", name: "priority", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "prefix", name: "prefix", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "next", name: "next", anonymous: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "table", name: "table", anonymous: false, exported: false, typ: sliceType$1, tag: ""}]); genericReplacer.init("strings", [{prop: "root", name: "root", anonymous: false, exported: false, typ: trieNode, tag: ""}, {prop: "tableSize", name: "tableSize", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "mapping", name: "mapping", anonymous: false, exported: false, typ: arrayType, tag: ""}]); appendSliceWriter.init($Uint8); stringWriterIface.init([{prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}]); stringWriter.init("strings", [{prop: "w", name: "w", anonymous: false, exported: false, typ: io.Writer, tag: ""}]); singleStringReplacer.init("strings", [{prop: "finder", name: "finder", anonymous: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "value", name: "value", anonymous: false, exported: false, typ: $String, tag: ""}]); byteReplacer.init($Uint8, 256); byteStringReplacer.init(sliceType, 256); stringFinder.init("strings", [{prop: "pattern", name: "pattern", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "badCharSkip", name: "badCharSkip", anonymous: false, exported: false, typ: arrayType$2, tag: ""}, {prop: "goodSuffixSkip", name: "goodSuffixSkip", anonymous: false, exported: false, typ: sliceType$2, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = unicode.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["regexp/syntax"] = (function() { var $pkg = {}, $init, bytes, sort, strconv, strings, unicode, utf8, patchList, frag, compiler, Error, ErrorCode, Flags, parser, charGroup, ranges, Prog, InstOp, EmptyOp, Inst, Regexp, Op, sliceType, sliceType$1, sliceType$2, sliceType$3, ptrType, sliceType$4, ptrType$1, sliceType$5, arrayType, arrayType$1, ptrType$2, ptrType$3, sliceType$6, arrayType$2, ptrType$4, ptrType$5, ptrType$6, ptrType$7, anyRuneNotNL, anyRune, anyTable, code1, code2, code3, perlGroup, code4, code5, code6, code7, code8, code9, code10, code11, code12, code13, code14, code15, code16, code17, posixGroup, instOpNames, Compile, minFoldRune, repeatIsValid, cleanAlt, literalRegexp, Parse, isValidCaptureName, isCharClass, matchRune, mergeCharClass, unicodeTable, cleanClass, appendLiteral, appendRange, appendFoldedRange, appendClass, appendFoldedClass, appendNegatedClass, appendTable, appendNegatedTable, negateClass, checkUTF8, nextRune, isalnum, unhex, EmptyOpContext, IsWordChar, wordRune, bw, dumpProg, u32, dumpInst, writeRegexp, escape, simplify1; bytes = $packages["bytes"]; sort = $packages["sort"]; strconv = $packages["strconv"]; strings = $packages["strings"]; unicode = $packages["unicode"]; utf8 = $packages["unicode/utf8"]; patchList = $pkg.patchList = $newType(4, $kindUint32, "syntax.patchList", true, "regexp/syntax", false, null); frag = $pkg.frag = $newType(0, $kindStruct, "syntax.frag", true, "regexp/syntax", false, function(i_, out_) { this.$val = this; if (arguments.length === 0) { this.i = 0; this.out = 0; return; } this.i = i_; this.out = out_; }); compiler = $pkg.compiler = $newType(0, $kindStruct, "syntax.compiler", true, "regexp/syntax", false, function(p_) { this.$val = this; if (arguments.length === 0) { this.p = ptrType.nil; return; } this.p = p_; }); Error = $pkg.Error = $newType(0, $kindStruct, "syntax.Error", true, "regexp/syntax", true, function(Code_, Expr_) { this.$val = this; if (arguments.length === 0) { this.Code = ""; this.Expr = ""; return; } this.Code = Code_; this.Expr = Expr_; }); ErrorCode = $pkg.ErrorCode = $newType(8, $kindString, "syntax.ErrorCode", true, "regexp/syntax", true, null); Flags = $pkg.Flags = $newType(2, $kindUint16, "syntax.Flags", true, "regexp/syntax", true, null); parser = $pkg.parser = $newType(0, $kindStruct, "syntax.parser", true, "regexp/syntax", false, function(flags_, stack_, free_, numCap_, wholeRegexp_, tmpClass_) { this.$val = this; if (arguments.length === 0) { this.flags = 0; this.stack = sliceType$5.nil; this.free = ptrType$1.nil; this.numCap = 0; this.wholeRegexp = ""; this.tmpClass = sliceType.nil; return; } this.flags = flags_; this.stack = stack_; this.free = free_; this.numCap = numCap_; this.wholeRegexp = wholeRegexp_; this.tmpClass = tmpClass_; }); charGroup = $pkg.charGroup = $newType(0, $kindStruct, "syntax.charGroup", true, "regexp/syntax", false, function(sign_, class$1_) { this.$val = this; if (arguments.length === 0) { this.sign = 0; this.class$1 = sliceType.nil; return; } this.sign = sign_; this.class$1 = class$1_; }); ranges = $pkg.ranges = $newType(0, $kindStruct, "syntax.ranges", true, "regexp/syntax", false, function(p_) { this.$val = this; if (arguments.length === 0) { this.p = ptrType$2.nil; return; } this.p = p_; }); Prog = $pkg.Prog = $newType(0, $kindStruct, "syntax.Prog", true, "regexp/syntax", true, function(Inst_, Start_, NumCap_) { this.$val = this; if (arguments.length === 0) { this.Inst = sliceType$4.nil; this.Start = 0; this.NumCap = 0; return; } this.Inst = Inst_; this.Start = Start_; this.NumCap = NumCap_; }); InstOp = $pkg.InstOp = $newType(1, $kindUint8, "syntax.InstOp", true, "regexp/syntax", true, null); EmptyOp = $pkg.EmptyOp = $newType(1, $kindUint8, "syntax.EmptyOp", true, "regexp/syntax", true, null); Inst = $pkg.Inst = $newType(0, $kindStruct, "syntax.Inst", true, "regexp/syntax", true, function(Op_, Out_, Arg_, Rune_) { this.$val = this; if (arguments.length === 0) { this.Op = 0; this.Out = 0; this.Arg = 0; this.Rune = sliceType.nil; return; } this.Op = Op_; this.Out = Out_; this.Arg = Arg_; this.Rune = Rune_; }); Regexp = $pkg.Regexp = $newType(0, $kindStruct, "syntax.Regexp", true, "regexp/syntax", true, function(Op_, Flags_, Sub_, Sub0_, Rune_, Rune0_, Min_, Max_, Cap_, Name_) { this.$val = this; if (arguments.length === 0) { this.Op = 0; this.Flags = 0; this.Sub = sliceType$5.nil; this.Sub0 = arrayType.zero(); this.Rune = sliceType.nil; this.Rune0 = arrayType$1.zero(); this.Min = 0; this.Max = 0; this.Cap = 0; this.Name = ""; return; } this.Op = Op_; this.Flags = Flags_; this.Sub = Sub_; this.Sub0 = Sub0_; this.Rune = Rune_; this.Rune0 = Rune0_; this.Min = Min_; this.Max = Max_; this.Cap = Cap_; this.Name = Name_; }); Op = $pkg.Op = $newType(1, $kindUint8, "syntax.Op", true, "regexp/syntax", true, null); sliceType = $sliceType($Int32); sliceType$1 = $sliceType(unicode.Range16); sliceType$2 = $sliceType(unicode.Range32); sliceType$3 = $sliceType($String); ptrType = $ptrType(Prog); sliceType$4 = $sliceType(Inst); ptrType$1 = $ptrType(Regexp); sliceType$5 = $sliceType(ptrType$1); arrayType = $arrayType(ptrType$1, 1); arrayType$1 = $arrayType($Int32, 2); ptrType$2 = $ptrType(sliceType); ptrType$3 = $ptrType(unicode.RangeTable); sliceType$6 = $sliceType($Uint8); arrayType$2 = $arrayType($Uint8, 64); ptrType$4 = $ptrType(compiler); ptrType$5 = $ptrType(Error); ptrType$6 = $ptrType(parser); ptrType$7 = $ptrType(Inst); patchList.prototype.next = function(p) { var i, l, p, x, x$1; l = this.$val; i = (x = p.Inst, x$1 = l >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); if (((l & 1) >>> 0) === 0) { return ((i.Out >>> 0)); } return ((i.Arg >>> 0)); }; $ptrType(patchList).prototype.next = function(p) { return new patchList(this.$get()).next(p); }; patchList.prototype.patch = function(p, val) { var i, l, p, val, x, x$1; l = this.$val; while (true) { if (!(!((l === 0)))) { break; } i = (x = p.Inst, x$1 = l >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); if (((l & 1) >>> 0) === 0) { l = ((i.Out >>> 0)); i.Out = val; } else { l = ((i.Arg >>> 0)); i.Arg = val; } } }; $ptrType(patchList).prototype.patch = function(p, val) { return new patchList(this.$get()).patch(p, val); }; patchList.prototype.append = function(p, l2) { var i, l1, l2, last, next, p, x, x$1; l1 = this.$val; if (l1 === 0) { return l2; } if (l2 === 0) { return l1; } last = l1; while (true) { next = new patchList(last).next(p); if (next === 0) { break; } last = next; } i = (x = p.Inst, x$1 = last >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); if (((last & 1) >>> 0) === 0) { i.Out = ((l2 >>> 0)); } else { i.Arg = ((l2 >>> 0)); } return l1; }; $ptrType(patchList).prototype.append = function(p, l2) { return new patchList(this.$get()).append(p, l2); }; Compile = function(re) { var c, f, re; c = new compiler.ptr(ptrType.nil); c.init(); f = $clone(c.compile(re), frag); new patchList(f.out).patch(c.p, c.inst(4).i); c.p.Start = ((f.i >> 0)); return [c.p, $ifaceNil]; }; $pkg.Compile = Compile; compiler.ptr.prototype.init = function() { var c; c = this; c.p = new Prog.ptr(sliceType$4.nil, 0, 0); c.p.NumCap = 2; c.inst(5); }; compiler.prototype.init = function() { return this.$val.init(); }; compiler.ptr.prototype.compile = function(re) { var _1, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, bra, c, f, f$1, f$2, f1, i, j, ket, re, sub, sub$1, sub$2, x, x$1, x$2, x$3; c = this; _1 = re.Op; if (_1 === (1)) { return c.fail(); } else if (_1 === (2)) { return c.nop(); } else if (_1 === (3)) { if (re.Rune.$length === 0) { return c.nop(); } f = new frag.ptr(0, 0); _ref = re.Rune; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } j = _i; f1 = $clone(c.rune($subslice(re.Rune, j, (j + 1 >> 0)), re.Flags), frag); if (j === 0) { frag.copy(f, f1); } else { frag.copy(f, c.cat($clone(f, frag), $clone(f1, frag))); } _i++; } return f; } else if (_1 === (4)) { return c.rune(re.Rune, re.Flags); } else if (_1 === (5)) { return c.rune(anyRuneNotNL, 0); } else if (_1 === (6)) { return c.rune(anyRune, 0); } else if (_1 === (7)) { return c.empty(1); } else if (_1 === (8)) { return c.empty(2); } else if (_1 === (9)) { return c.empty(4); } else if (_1 === (10)) { return c.empty(8); } else if (_1 === (11)) { return c.empty(16); } else if (_1 === (12)) { return c.empty(32); } else if (_1 === (13)) { bra = $clone(c.cap((((re.Cap << 1 >> 0) >>> 0))), frag); sub = $clone(c.compile((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))), frag); ket = $clone(c.cap(((((re.Cap << 1 >> 0) | 1) >>> 0))), frag); return c.cat($clone(c.cat($clone(bra, frag), $clone(sub, frag)), frag), $clone(ket, frag)); } else if (_1 === (14)) { return c.star($clone(c.compile((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); } else if (_1 === (15)) { return c.plus($clone(c.compile((x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); } else if (_1 === (16)) { return c.quest($clone(c.compile((x$3 = re.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); } else if (_1 === (18)) { if (re.Sub.$length === 0) { return c.nop(); } f$1 = new frag.ptr(0, 0); _ref$1 = re.Sub; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } i = _i$1; sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); if (i === 0) { frag.copy(f$1, c.compile(sub$1)); } else { frag.copy(f$1, c.cat($clone(f$1, frag), $clone(c.compile(sub$1), frag))); } _i$1++; } return f$1; } else if (_1 === (19)) { f$2 = new frag.ptr(0, 0); _ref$2 = re.Sub; _i$2 = 0; while (true) { if (!(_i$2 < _ref$2.$length)) { break; } sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); frag.copy(f$2, c.alt($clone(f$2, frag), $clone(c.compile(sub$2), frag))); _i$2++; } return f$2; } $panic(new $String("regexp: unhandled case in compile")); }; compiler.prototype.compile = function(re) { return this.$val.compile(re); }; compiler.ptr.prototype.inst = function(op) { var c, f, op; c = this; f = new frag.ptr(((c.p.Inst.$length >>> 0)), 0); c.p.Inst = $append(c.p.Inst, new Inst.ptr(op, 0, 0, sliceType.nil)); return f; }; compiler.prototype.inst = function(op) { return this.$val.inst(op); }; compiler.ptr.prototype.nop = function() { var c, f; c = this; f = $clone(c.inst(6), frag); f.out = (((f.i << 1 >>> 0) >>> 0)); return f; }; compiler.prototype.nop = function() { return this.$val.nop(); }; compiler.ptr.prototype.fail = function() { var c; c = this; return new frag.ptr(0, 0); }; compiler.prototype.fail = function() { return this.$val.fail(); }; compiler.ptr.prototype.cap = function(arg) { var arg, c, f, x, x$1; c = this; f = $clone(c.inst(2), frag); f.out = (((f.i << 1 >>> 0) >>> 0)); (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = arg; if (c.p.NumCap < (((arg >> 0)) + 1 >> 0)) { c.p.NumCap = ((arg >> 0)) + 1 >> 0; } return f; }; compiler.prototype.cap = function(arg) { return this.$val.cap(arg); }; compiler.ptr.prototype.cat = function(f1, f2) { var c, f1, f2; c = this; if ((f1.i === 0) || (f2.i === 0)) { return new frag.ptr(0, 0); } new patchList(f1.out).patch(c.p, f2.i); return new frag.ptr(f1.i, f2.out); }; compiler.prototype.cat = function(f1, f2) { return this.$val.cat(f1, f2); }; compiler.ptr.prototype.alt = function(f1, f2) { var c, f, f1, f2, i, x, x$1; c = this; if (f1.i === 0) { return f2; } if (f2.i === 0) { return f1; } f = $clone(c.inst(0), frag); i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); i.Out = f1.i; i.Arg = f2.i; f.out = new patchList(f1.out).append(c.p, f2.out); return f; }; compiler.prototype.alt = function(f1, f2) { return this.$val.alt(f1, f2); }; compiler.ptr.prototype.quest = function(f1, nongreedy) { var c, f, f1, i, nongreedy, x, x$1; c = this; f = $clone(c.inst(0), frag); i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); if (nongreedy) { i.Arg = f1.i; f.out = (((f.i << 1 >>> 0) >>> 0)); } else { i.Out = f1.i; f.out = (((((f.i << 1 >>> 0) | 1) >>> 0) >>> 0)); } f.out = new patchList(f.out).append(c.p, f1.out); return f; }; compiler.prototype.quest = function(f1, nongreedy) { return this.$val.quest(f1, nongreedy); }; compiler.ptr.prototype.star = function(f1, nongreedy) { var c, f, f1, i, nongreedy, x, x$1; c = this; f = $clone(c.inst(0), frag); i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); if (nongreedy) { i.Arg = f1.i; f.out = (((f.i << 1 >>> 0) >>> 0)); } else { i.Out = f1.i; f.out = (((((f.i << 1 >>> 0) | 1) >>> 0) >>> 0)); } new patchList(f1.out).patch(c.p, f.i); return f; }; compiler.prototype.star = function(f1, nongreedy) { return this.$val.star(f1, nongreedy); }; compiler.ptr.prototype.plus = function(f1, nongreedy) { var c, f1, nongreedy; c = this; return new frag.ptr(f1.i, c.star($clone(f1, frag), nongreedy).out); }; compiler.prototype.plus = function(f1, nongreedy) { return this.$val.plus(f1, nongreedy); }; compiler.ptr.prototype.empty = function(op) { var c, f, op, x, x$1; c = this; f = $clone(c.inst(3), frag); (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = ((op >>> 0)); f.out = (((f.i << 1 >>> 0) >>> 0)); return f; }; compiler.prototype.empty = function(op) { return this.$val.empty(op); }; compiler.ptr.prototype.rune = function(r, flags) { var c, f, flags, i, r, x, x$1; c = this; f = $clone(c.inst(7), frag); i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); i.Rune = r; flags = (flags & (1)) >>> 0; if (!((r.$length === 1)) || (unicode.SimpleFold((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0])) === (0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]))) { flags = (flags & ~(1)) << 16 >>> 16; } i.Arg = ((flags >>> 0)); f.out = (((f.i << 1 >>> 0) >>> 0)); if ((((flags & 1) >>> 0) === 0) && ((r.$length === 1) || (r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === (1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1])))) { i.Op = 8; } else if ((r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 1114111)) { i.Op = 9; } else if ((r.$length === 4) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 9) && ((2 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 2]) === 11) && ((3 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 3]) === 1114111)) { i.Op = 10; } return f; }; compiler.prototype.rune = function(r, flags) { return this.$val.rune(r, flags); }; Error.ptr.prototype.Error = function() { var e; e = this; return "error parsing regexp: " + new ErrorCode(e.Code).String() + ": `" + e.Expr + "`"; }; Error.prototype.Error = function() { return this.$val.Error(); }; ErrorCode.prototype.String = function() { var e; e = this.$val; return (e); }; $ptrType(ErrorCode).prototype.String = function() { return new ErrorCode(this.$get()).String(); }; parser.ptr.prototype.newRegexp = function(op) { var op, p, re; p = this; re = p.free; if (!(re === ptrType$1.nil)) { p.free = re.Sub0[0]; Regexp.copy(re, new Regexp.ptr(0, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, "")); } else { re = new Regexp.ptr(0, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); } re.Op = op; return re; }; parser.prototype.newRegexp = function(op) { return this.$val.newRegexp(op); }; parser.ptr.prototype.reuse = function(re) { var p, re; p = this; re.Sub0[0] = p.free; p.free = re; }; parser.prototype.reuse = function(re) { return this.$val.reuse(re); }; parser.ptr.prototype.push = function(re) { var p, re, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; p = this; if ((re.Op === 4) && (re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === (x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])))) { if (p.maybeConcat((x$16 = re.Rune, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0])), (p.flags & ~1) << 16 >>> 16)) { return ptrType$1.nil; } re.Op = 3; re.Rune = $subslice(re.Rune, 0, 1); re.Flags = (p.flags & ~1) << 16 >>> 16; } else if ((re.Op === 4) && (re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === (x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1]))) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === (x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3]))) && (unicode.SimpleFold((x$6 = re.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))) === (x$7 = re.Rune, (2 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 2]))) && (unicode.SimpleFold((x$8 = re.Rune, (2 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 2]))) === (x$9 = re.Rune, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0]))) || (re.Op === 4) && (re.Rune.$length === 2) && (((x$10 = re.Rune, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])) + 1 >> 0) === (x$11 = re.Rune, (1 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 1]))) && (unicode.SimpleFold((x$12 = re.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0]))) === (x$13 = re.Rune, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1]))) && (unicode.SimpleFold((x$14 = re.Rune, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1]))) === (x$15 = re.Rune, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0])))) { if (p.maybeConcat((x$17 = re.Rune, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])), (p.flags | 1) >>> 0)) { return ptrType$1.nil; } re.Op = 3; re.Rune = $subslice(re.Rune, 0, 1); re.Flags = (p.flags | 1) >>> 0; } else { p.maybeConcat(-1, 0); } p.stack = $append(p.stack, re); return re; }; parser.prototype.push = function(re) { return this.$val.push(re); }; parser.ptr.prototype.maybeConcat = function(r, flags) { var flags, n, p, r, re1, re2, x, x$1, x$2, x$3, x$4; p = this; n = p.stack.$length; if (n < 2) { return false; } re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); if (!((re1.Op === 3)) || !((re2.Op === 3)) || !((((re1.Flags & 1) >>> 0) === ((re2.Flags & 1) >>> 0)))) { return false; } re2.Rune = $appendSlice(re2.Rune, re1.Rune); if (r >= 0) { re1.Rune = $subslice(new sliceType(re1.Rune0), 0, 1); (x$4 = re1.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = r)); re1.Flags = flags; return true; } p.stack = $subslice(p.stack, 0, (n - 1 >> 0)); p.reuse(re1); return false; }; parser.prototype.maybeConcat = function(r, flags) { return this.$val.maybeConcat(r, flags); }; parser.ptr.prototype.newLiteral = function(r, flags) { var flags, p, r, re; p = this; re = p.newRegexp(3); re.Flags = flags; if (!((((flags & 1) >>> 0) === 0))) { r = minFoldRune(r); } re.Rune0[0] = r; re.Rune = $subslice(new sliceType(re.Rune0), 0, 1); return re; }; parser.prototype.newLiteral = function(r, flags) { return this.$val.newLiteral(r, flags); }; minFoldRune = function(r) { var min, r, r0; if (r < 65 || r > 125251) { return r; } min = r; r0 = r; r = unicode.SimpleFold(r); while (true) { if (!(!((r === r0)))) { break; } if (min > r) { min = r; } r = unicode.SimpleFold(r); } return min; }; parser.ptr.prototype.literal = function(r) { var p, r; p = this; p.push(p.newLiteral(r, p.flags)); }; parser.prototype.literal = function(r) { return this.$val.literal(r); }; parser.ptr.prototype.op = function(op) { var op, p, re; p = this; re = p.newRegexp(op); re.Flags = p.flags; return p.push(re); }; parser.prototype.op = function(op) { return this.$val.op(op); }; parser.ptr.prototype.repeat = function(op, min, max, before, after, lastRepeat) { var after, before, flags, lastRepeat, max, min, n, op, p, re, sub, x, x$1, x$2, x$3, x$4; p = this; flags = p.flags; if (!((((p.flags & 64) >>> 0) === 0))) { if (after.length > 0 && (after.charCodeAt(0) === 63)) { after = $substring(after, 1); flags = (flags ^ (32)) << 16 >>> 16; } if (!(lastRepeat === "")) { return ["", new Error.ptr("invalid nested repetition operator", $substring(lastRepeat, 0, (lastRepeat.length - after.length >> 0)))]; } } n = p.stack.$length; if (n === 0) { return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))]; } sub = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); if (sub.Op >= 128) { return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))]; } re = p.newRegexp(op); re.Min = min; re.Max = max; re.Flags = flags; re.Sub = $subslice(new sliceType$5(re.Sub0), 0, 1); (x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = sub)); (x$3 = p.stack, x$4 = n - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4] = re)); if ((op === 17) && (min >= 2 || max >= 2) && !repeatIsValid(re, 1000)) { return ["", new Error.ptr("invalid repeat count", $substring(before, 0, (before.length - after.length >> 0)))]; } return [after, $ifaceNil]; }; parser.prototype.repeat = function(op, min, max, before, after, lastRepeat) { return this.$val.repeat(op, min, max, before, after, lastRepeat); }; repeatIsValid = function(re, n) { var _i, _q, _ref, m, n, re, sub; if (re.Op === 17) { m = re.Max; if (m === 0) { return true; } if (m < 0) { m = re.Min; } if (m > n) { return false; } if (m > 0) { n = (_q = n / (m), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); } } _ref = re.Sub; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (!repeatIsValid(sub, n)) { return false; } _i++; } return true; }; parser.ptr.prototype.concat = function() { var _r, _r$1, i, p, subs, x, x$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; i = $f.i; p = $f.p; subs = $f.subs; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; p.maybeConcat(-1, 0); i = p.stack.$length; while (true) { if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; } i = i - (1) >> 0; } subs = $subslice(p.stack, i); p.stack = $subslice(p.stack, 0, i); if (subs.$length === 0) { $s = -1; return p.push(p.newRegexp(2)); } _r = p.collapse(subs, 18); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = p.push(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.concat }; } $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.p = p; $f.subs = subs; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; }; parser.prototype.concat = function() { return this.$val.concat(); }; parser.ptr.prototype.alternate = function() { var _r, _r$1, i, p, subs, x, x$1, x$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; i = $f.i; p = $f.p; subs = $f.subs; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; i = p.stack.$length; while (true) { if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; } i = i - (1) >> 0; } subs = $subslice(p.stack, i); p.stack = $subslice(p.stack, 0, i); /* */ if (subs.$length > 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if (subs.$length > 0) { */ case 1: $r = cleanAlt((x$2 = subs.$length - 1 >> 0, ((x$2 < 0 || x$2 >= subs.$length) ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + x$2]))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: if (subs.$length === 0) { $s = -1; return p.push(p.newRegexp(1)); } _r = p.collapse(subs, 19); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = p.push(_r); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.alternate }; } $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.p = p; $f.subs = subs; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; }; parser.prototype.alternate = function() { return this.$val.alternate(); }; cleanAlt = function(re) { var _1, _r, re, x, x$1, x$2, x$3, x$4, x$5, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; re = $f.re; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _1 = re.Op; /* */ if (_1 === (4)) { $s = 2; continue; } /* */ $s = 3; continue; /* if (_1 === (4)) { */ case 2: _r = cleanClass((re.$ptr_Rune || (re.$ptr_Rune = new ptrType$2(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } re.Rune = _r; if ((re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])) === 1114111)) { re.Rune = sliceType.nil; re.Op = 6; $s = -1; return; } if ((re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === 0) && ((x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) === 9) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === 11) && ((x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3])) === 1114111)) { re.Rune = sliceType.nil; re.Op = 5; $s = -1; return; } if ((re.Rune.$capacity - re.Rune.$length >> 0) > 100) { re.Rune = $appendSlice($subslice(new sliceType(re.Rune0), 0, 0), re.Rune); } /* } */ case 3: case 1: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: cleanAlt }; } $f._1 = _1; $f._r = _r; $f.re = re; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f; }; parser.ptr.prototype.collapse = function(subs, op) { var _i, _r, _ref, old, op, p, re, sub, subs, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; old = $f.old; op = $f.op; p = $f.p; re = $f.re; sub = $f.sub; subs = $f.subs; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; if (subs.$length === 1) { $s = -1; return (0 >= subs.$length ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + 0]); } re = p.newRegexp(op); re.Sub = $subslice(new sliceType$5(re.Sub0), 0, 0); _ref = subs; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (sub.Op === op) { re.Sub = $appendSlice(re.Sub, sub.Sub); p.reuse(sub); } else { re.Sub = $append(re.Sub, sub); } _i++; } /* */ if (op === 19) { $s = 1; continue; } /* */ $s = 2; continue; /* if (op === 19) { */ case 1: _r = p.factor(re.Sub); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } re.Sub = _r; if (re.Sub.$length === 1) { old = re; re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); p.reuse(old); } /* } */ case 2: $s = -1; return re; /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.collapse }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.old = old; $f.op = op; $f.p = p; $f.re = re; $f.sub = sub; $f.subs = subs; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; parser.prototype.collapse = function(subs, op) { return this.$val.collapse(subs, op); }; parser.ptr.prototype.factor = function(sub) { var _i, _r, _r$1, _ref, _tmp, _tmp$1, _tuple, first, i, i$1, i$2, i$3, ifirst, iflags, istr, j, j$1, j$2, j$3, max, out, p, prefix, prefix$1, re, re$1, reuse, same, start, str, strflags, sub, suffix, suffix$1, x, x$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; first = $f.first; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; ifirst = $f.ifirst; iflags = $f.iflags; istr = $f.istr; j = $f.j; j$1 = $f.j$1; j$2 = $f.j$2; j$3 = $f.j$3; max = $f.max; out = $f.out; p = $f.p; prefix = $f.prefix; prefix$1 = $f.prefix$1; re = $f.re; re$1 = $f.re$1; reuse = $f.reuse; same = $f.same; start = $f.start; str = $f.str; strflags = $f.strflags; sub = $f.sub; suffix = $f.suffix; suffix$1 = $f.suffix$1; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; if (sub.$length < 2) { $s = -1; return sub; } str = sliceType.nil; strflags = 0; start = 0; out = $subslice(sub, 0, 0); i = 0; /* while (true) { */ case 1: /* if (!(i <= sub.$length)) { break; } */ if(!(i <= sub.$length)) { $s = 2; continue; } istr = sliceType.nil; iflags = 0; /* */ if (i < sub.$length) { $s = 3; continue; } /* */ $s = 4; continue; /* if (i < sub.$length) { */ case 3: _tuple = p.leadingString(((i < 0 || i >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i])); istr = _tuple[0]; iflags = _tuple[1]; if (iflags === strflags) { same = 0; while (true) { if (!(same < str.$length && same < istr.$length && (((same < 0 || same >= str.$length) ? ($throwRuntimeError("index out of range"), undefined) : str.$array[str.$offset + same]) === ((same < 0 || same >= istr.$length) ? ($throwRuntimeError("index out of range"), undefined) : istr.$array[istr.$offset + same])))) { break; } same = same + (1) >> 0; } if (same > 0) { str = $subslice(str, 0, same); i = i + (1) >> 0; /* continue; */ $s = 1; continue; } } /* } */ case 4: /* */ if (i === start) { $s = 5; continue; } /* */ if (i === (start + 1 >> 0)) { $s = 6; continue; } /* */ $s = 7; continue; /* if (i === start) { */ case 5: $s = 8; continue; /* } else if (i === (start + 1 >> 0)) { */ case 6: out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); $s = 8; continue; /* } else { */ case 7: prefix = p.newRegexp(3); prefix.Flags = strflags; prefix.Rune = $appendSlice($subslice(prefix.Rune, 0, 0), str); j = start; while (true) { if (!(j < i)) { break; } ((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j] = p.removeLeadingString(((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j]), str.$length)); j = j + (1) >> 0; } _r = p.collapse($subslice(sub, start, i), 19); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } suffix = _r; re = p.newRegexp(18); re.Sub = $append($subslice(re.Sub, 0, 0), prefix, suffix); out = $append(out, re); /* } */ case 8: start = i; str = istr; strflags = iflags; i = i + (1) >> 0; /* } */ $s = 1; continue; case 2: sub = out; start = 0; out = $subslice(sub, 0, 0); first = ptrType$1.nil; i$1 = 0; /* while (true) { */ case 10: /* if (!(i$1 <= sub.$length)) { break; } */ if(!(i$1 <= sub.$length)) { $s = 11; continue; } ifirst = ptrType$1.nil; /* */ if (i$1 < sub.$length) { $s = 12; continue; } /* */ $s = 13; continue; /* if (i$1 < sub.$length) { */ case 12: ifirst = p.leadingRegexp(((i$1 < 0 || i$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$1])); if (!(first === ptrType$1.nil) && first.Equal(ifirst) && (isCharClass(first) || ((first.Op === 17) && (first.Min === first.Max) && isCharClass((x = first.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])))))) { i$1 = i$1 + (1) >> 0; /* continue; */ $s = 10; continue; } /* } */ case 13: /* */ if (i$1 === start) { $s = 14; continue; } /* */ if (i$1 === (start + 1 >> 0)) { $s = 15; continue; } /* */ $s = 16; continue; /* if (i$1 === start) { */ case 14: $s = 17; continue; /* } else if (i$1 === (start + 1 >> 0)) { */ case 15: out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); $s = 17; continue; /* } else { */ case 16: prefix$1 = first; j$1 = start; while (true) { if (!(j$1 < i$1)) { break; } reuse = !((j$1 === start)); ((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1] = p.removeLeadingRegexp(((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1]), reuse)); j$1 = j$1 + (1) >> 0; } _r$1 = p.collapse($subslice(sub, start, i$1), 19); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } suffix$1 = _r$1; re$1 = p.newRegexp(18); re$1.Sub = $append($subslice(re$1.Sub, 0, 0), prefix$1, suffix$1); out = $append(out, re$1); /* } */ case 17: start = i$1; first = ifirst; i$1 = i$1 + (1) >> 0; /* } */ $s = 10; continue; case 11: sub = out; start = 0; out = $subslice(sub, 0, 0); i$2 = 0; /* while (true) { */ case 19: /* if (!(i$2 <= sub.$length)) { break; } */ if(!(i$2 <= sub.$length)) { $s = 20; continue; } /* */ if (i$2 < sub.$length && isCharClass(((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2]))) { $s = 21; continue; } /* */ $s = 22; continue; /* if (i$2 < sub.$length && isCharClass(((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2]))) { */ case 21: i$2 = i$2 + (1) >> 0; /* continue; */ $s = 19; continue; /* } */ case 22: /* */ if (i$2 === start) { $s = 23; continue; } /* */ if (i$2 === (start + 1 >> 0)) { $s = 24; continue; } /* */ $s = 25; continue; /* if (i$2 === start) { */ case 23: $s = 26; continue; /* } else if (i$2 === (start + 1 >> 0)) { */ case 24: out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); $s = 26; continue; /* } else { */ case 25: max = start; j$2 = start + 1 >> 0; while (true) { if (!(j$2 < i$2)) { break; } if (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op || (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op === ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op) && ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Rune.$length < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Rune.$length) { max = j$2; } j$2 = j$2 + (1) >> 0; } _tmp = ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]); _tmp$1 = ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]); ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start] = _tmp); ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max] = _tmp$1); j$3 = start + 1 >> 0; while (true) { if (!(j$3 < i$2)) { break; } mergeCharClass(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]), ((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3])); p.reuse(((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3])); j$3 = j$3 + (1) >> 0; } $r = cleanAlt(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); /* } */ case 26: if (i$2 < sub.$length) { out = $append(out, ((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2])); } start = i$2 + 1 >> 0; i$2 = i$2 + (1) >> 0; /* } */ $s = 19; continue; case 20: sub = out; start = 0; out = $subslice(sub, 0, 0); _ref = sub; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i$3 = _i; if ((i$3 + 1 >> 0) < sub.$length && (((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3]).Op === 2) && ((x$1 = i$3 + 1 >> 0, ((x$1 < 0 || x$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + x$1])).Op === 2)) { _i++; continue; } out = $append(out, ((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3])); _i++; } sub = out; $s = -1; return sub; /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.factor }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.first = first; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.ifirst = ifirst; $f.iflags = iflags; $f.istr = istr; $f.j = j; $f.j$1 = j$1; $f.j$2 = j$2; $f.j$3 = j$3; $f.max = max; $f.out = out; $f.p = p; $f.prefix = prefix; $f.prefix$1 = prefix$1; $f.re = re; $f.re$1 = re$1; $f.reuse = reuse; $f.same = same; $f.start = start; $f.str = str; $f.strflags = strflags; $f.sub = sub; $f.suffix = suffix; $f.suffix$1 = suffix$1; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; }; parser.prototype.factor = function(sub) { return this.$val.factor(sub); }; parser.ptr.prototype.leadingString = function(re) { var p, re, x; p = this; if ((re.Op === 18) && re.Sub.$length > 0) { re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); } if (!((re.Op === 3))) { return [sliceType.nil, 0]; } return [re.Rune, (re.Flags & 1) >>> 0]; }; parser.prototype.leadingString = function(re) { return this.$val.leadingString(re); }; parser.ptr.prototype.removeLeadingString = function(re, n) { var _1, n, old, p, re, sub, x, x$1, x$2; p = this; if ((re.Op === 18) && re.Sub.$length > 0) { sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); sub = p.removeLeadingString(sub, n); (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = sub)); if (sub.Op === 2) { p.reuse(sub); _1 = re.Sub.$length; if ((_1 === (0)) || (_1 === (1))) { re.Op = 2; re.Sub = sliceType$5.nil; } else if (_1 === (2)) { old = re; re = (x$2 = re.Sub, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1])); p.reuse(old); } else { $copySlice(re.Sub, $subslice(re.Sub, 1)); re.Sub = $subslice(re.Sub, 0, (re.Sub.$length - 1 >> 0)); } } return re; } if (re.Op === 3) { re.Rune = $subslice(re.Rune, 0, $copySlice(re.Rune, $subslice(re.Rune, n))); if (re.Rune.$length === 0) { re.Op = 2; } } return re; }; parser.prototype.removeLeadingString = function(re, n) { return this.$val.removeLeadingString(re, n); }; parser.ptr.prototype.leadingRegexp = function(re) { var p, re, sub, x; p = this; if (re.Op === 2) { return ptrType$1.nil; } if ((re.Op === 18) && re.Sub.$length > 0) { sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); if (sub.Op === 2) { return ptrType$1.nil; } return sub; } return re; }; parser.prototype.leadingRegexp = function(re) { return this.$val.leadingRegexp(re); }; parser.ptr.prototype.removeLeadingRegexp = function(re, reuse) { var _1, old, p, re, reuse, x, x$1; p = this; if ((re.Op === 18) && re.Sub.$length > 0) { if (reuse) { p.reuse((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); } re.Sub = $subslice(re.Sub, 0, $copySlice(re.Sub, $subslice(re.Sub, 1))); _1 = re.Sub.$length; if (_1 === (0)) { re.Op = 2; re.Sub = sliceType$5.nil; } else if (_1 === (1)) { old = re; re = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); p.reuse(old); } return re; } if (reuse) { p.reuse(re); } return p.newRegexp(2); }; parser.prototype.removeLeadingRegexp = function(re, reuse) { return this.$val.removeLeadingRegexp(re, reuse); }; literalRegexp = function(s, flags) { var _i, _ref, _rune, c, flags, re, s; re = new Regexp.ptr(3, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); re.Flags = flags; re.Rune = $subslice(new sliceType(re.Rune0), 0, 0); _ref = s; _i = 0; while (true) { if (!(_i < _ref.length)) { break; } _rune = $decodeRune(_ref, _i); c = _rune[0]; if (re.Rune.$length >= re.Rune.$capacity) { re.Rune = (new sliceType($stringToRunes(s))); break; } re.Rune = $append(re.Rune, c); _i += _rune[1]; } return re; }; Parse = function(s, flags) { var _1, _2, _3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _struct, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, after, after$1, before, before$1, c, c$1, err, err$1, err$2, err$3, flags, i, lastRepeat, lit, max, min, n, ok, op, p, r, r$1, re, repeat, rest, rest$1, rest$2, s, t, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _struct = $f._struct; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; _tuple$8 = $f._tuple$8; _tuple$9 = $f._tuple$9; after = $f.after; after$1 = $f.after$1; before = $f.before; before$1 = $f.before$1; c = $f.c; c$1 = $f.c$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; flags = $f.flags; i = $f.i; lastRepeat = $f.lastRepeat; lit = $f.lit; max = $f.max; min = $f.min; n = $f.n; ok = $f.ok; op = $f.op; p = $f.p; r = $f.r; r$1 = $f.r$1; re = $f.re; repeat = $f.repeat; rest = $f.rest; rest$1 = $f.rest$1; rest$2 = $f.rest$2; s = $f.s; t = $f.t; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: if (!((((flags & 2) >>> 0) === 0))) { err = checkUTF8(s); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [ptrType$1.nil, err]; } $s = -1; return [literalRegexp(s, flags), $ifaceNil]; } p = new parser.ptr(0, sliceType$5.nil, ptrType$1.nil, 0, "", sliceType.nil); err$1 = $ifaceNil; c = 0; op = 0; lastRepeat = ""; p.flags = flags; p.wholeRegexp = s; t = s; /* while (true) { */ case 1: /* if (!(!(t === ""))) { break; } */ if(!(!(t === ""))) { $s = 2; continue; } repeat = ""; _1 = t.charCodeAt(0); /* */ if (_1 === (40)) { $s = 4; continue; } /* */ if (_1 === (124)) { $s = 5; continue; } /* */ if (_1 === (41)) { $s = 6; continue; } /* */ if (_1 === (94)) { $s = 7; continue; } /* */ if (_1 === (36)) { $s = 8; continue; } /* */ if (_1 === (46)) { $s = 9; continue; } /* */ if (_1 === (91)) { $s = 10; continue; } /* */ if ((_1 === (42)) || (_1 === (43)) || (_1 === (63))) { $s = 11; continue; } /* */ if (_1 === (123)) { $s = 12; continue; } /* */ if (_1 === (92)) { $s = 13; continue; } /* */ $s = 14; continue; /* if (_1 === (40)) { */ case 4: if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2 && (t.charCodeAt(1) === 63)) { _tuple = p.parsePerlFlags(t); t = _tuple[0]; err$1 = _tuple[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [ptrType$1.nil, err$1]; } /* break; */ $s = 3; continue; } p.numCap = p.numCap + (1) >> 0; p.op(128).Cap = p.numCap; t = $substring(t, 1); $s = 15; continue; /* } else if (_1 === (124)) { */ case 5: _r = p.parseVerticalBar(); /* */ $s = 16; case 16: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err$1 = _r; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [ptrType$1.nil, err$1]; } t = $substring(t, 1); $s = 15; continue; /* } else if (_1 === (41)) { */ case 6: _r$1 = p.parseRightParen(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } err$1 = _r$1; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [ptrType$1.nil, err$1]; } t = $substring(t, 1); $s = 15; continue; /* } else if (_1 === (94)) { */ case 7: if (!((((p.flags & 16) >>> 0) === 0))) { p.op(9); } else { p.op(7); } t = $substring(t, 1); $s = 15; continue; /* } else if (_1 === (36)) { */ case 8: if (!((((p.flags & 16) >>> 0) === 0))) { _struct = p.op(10); _struct.Flags = (_struct.Flags | (256)) >>> 0; } else { p.op(8); } t = $substring(t, 1); $s = 15; continue; /* } else if (_1 === (46)) { */ case 9: if (!((((p.flags & 8) >>> 0) === 0))) { p.op(6); } else { p.op(5); } t = $substring(t, 1); $s = 15; continue; /* } else if (_1 === (91)) { */ case 10: _r$2 = p.parseClass(t); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; t = _tuple$1[0]; err$1 = _tuple$1[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [ptrType$1.nil, err$1]; } $s = 15; continue; /* } else if ((_1 === (42)) || (_1 === (43)) || (_1 === (63))) { */ case 11: before = t; _2 = t.charCodeAt(0); if (_2 === (42)) { op = 14; } else if (_2 === (43)) { op = 15; } else if (_2 === (63)) { op = 16; } after = $substring(t, 1); _tuple$2 = p.repeat(op, 0, 0, before, after, lastRepeat); after = _tuple$2[0]; err$1 = _tuple$2[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [ptrType$1.nil, err$1]; } repeat = before; t = after; $s = 15; continue; /* } else if (_1 === (123)) { */ case 12: op = 17; before$1 = t; _tuple$3 = p.parseRepeat(t); min = _tuple$3[0]; max = _tuple$3[1]; after$1 = _tuple$3[2]; ok = _tuple$3[3]; if (!ok) { p.literal(123); t = $substring(t, 1); /* break; */ $s = 3; continue; } if (min < 0 || min > 1000 || max > 1000 || max >= 0 && min > max) { $s = -1; return [ptrType$1.nil, new Error.ptr("invalid repeat count", $substring(before$1, 0, (before$1.length - after$1.length >> 0)))]; } _tuple$4 = p.repeat(op, min, max, before$1, after$1, lastRepeat); after$1 = _tuple$4[0]; err$1 = _tuple$4[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [ptrType$1.nil, err$1]; } repeat = before$1; t = after$1; $s = 15; continue; /* } else if (_1 === (92)) { */ case 13: if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2) { _3 = t.charCodeAt(1); if (_3 === (65)) { p.op(9); t = $substring(t, 2); /* break BigSwitch; */ $s = 3; continue s; } else if (_3 === (98)) { p.op(11); t = $substring(t, 2); /* break BigSwitch; */ $s = 3; continue s; } else if (_3 === (66)) { p.op(12); t = $substring(t, 2); /* break BigSwitch; */ $s = 3; continue s; } else if (_3 === (67)) { $s = -1; return [ptrType$1.nil, new Error.ptr("invalid escape sequence", $substring(t, 0, 2))]; } else if (_3 === (81)) { lit = ""; i = strings.Index(t, "\\E"); if (i < 0) { lit = $substring(t, 2); t = ""; } else { lit = $substring(t, 2, i); t = $substring(t, (i + 2 >> 0)); } while (true) { if (!(!(lit === ""))) { break; } _tuple$5 = nextRune(lit); c$1 = _tuple$5[0]; rest = _tuple$5[1]; err$2 = _tuple$5[2]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [ptrType$1.nil, err$2]; } p.literal(c$1); lit = rest; } /* break BigSwitch; */ $s = 3; continue s; } else if (_3 === (122)) { p.op(10); t = $substring(t, 2); /* break BigSwitch; */ $s = 3; continue s; } } re = p.newRegexp(4); re.Flags = p.flags; /* */ if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { $s = 19; continue; } /* */ $s = 20; continue; /* if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { */ case 19: _r$3 = p.parseUnicodeClass(t, $subslice(new sliceType(re.Rune0), 0, 0)); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$6 = _r$3; r = _tuple$6[0]; rest$1 = _tuple$6[1]; err$3 = _tuple$6[2]; if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = -1; return [ptrType$1.nil, err$3]; } if (!(r === sliceType.nil)) { re.Rune = r; t = rest$1; p.push(re); /* break BigSwitch; */ $s = 3; continue s; } /* } */ case 20: _r$4 = p.parsePerlClassEscape(t, $subslice(new sliceType(re.Rune0), 0, 0)); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$7 = _r$4; r$1 = _tuple$7[0]; rest$2 = _tuple$7[1]; if (!(r$1 === sliceType.nil)) { re.Rune = r$1; t = rest$2; p.push(re); /* break BigSwitch; */ $s = 3; continue s; } p.reuse(re); _tuple$8 = p.parseEscape(t); c = _tuple$8[0]; t = _tuple$8[1]; err$1 = _tuple$8[2]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [ptrType$1.nil, err$1]; } p.literal(c); $s = 15; continue; /* } else { */ case 14: _tuple$9 = nextRune(t); c = _tuple$9[0]; t = _tuple$9[1]; err$1 = _tuple$9[2]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [ptrType$1.nil, err$1]; } p.literal(c); /* } */ case 15: case 3: lastRepeat = repeat; /* } */ $s = 1; continue; case 2: _r$5 = p.concat(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _r$5; _r$6 = p.swapVerticalBar(); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } /* */ if (_r$6) { $s = 24; continue; } /* */ $s = 25; continue; /* if (_r$6) { */ case 24: p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0)); /* } */ case 25: _r$7 = p.alternate(); /* */ $s = 27; case 27: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _r$7; n = p.stack.$length; if (!((n === 1))) { $s = -1; return [ptrType$1.nil, new Error.ptr("missing closing )", s)]; } $s = -1; return [(x = p.stack, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Parse }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._struct = _struct; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f._tuple$8 = _tuple$8; $f._tuple$9 = _tuple$9; $f.after = after; $f.after$1 = after$1; $f.before = before; $f.before$1 = before$1; $f.c = c; $f.c$1 = c$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.flags = flags; $f.i = i; $f.lastRepeat = lastRepeat; $f.lit = lit; $f.max = max; $f.min = min; $f.n = n; $f.ok = ok; $f.op = op; $f.p = p; $f.r = r; $f.r$1 = r$1; $f.re = re; $f.repeat = repeat; $f.rest = rest; $f.rest$1 = rest$1; $f.rest$2 = rest$2; $f.s = s; $f.t = t; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Parse = Parse; parser.ptr.prototype.parseRepeat = function(s) { var _tuple, _tuple$1, max, min, ok, ok1, p, rest, s; min = 0; max = 0; rest = ""; ok = false; p = this; if (s === "" || !((s.charCodeAt(0) === 123))) { return [min, max, rest, ok]; } s = $substring(s, 1); ok1 = false; _tuple = p.parseInt(s); min = _tuple[0]; s = _tuple[1]; ok1 = _tuple[2]; if (!ok1) { return [min, max, rest, ok]; } if (s === "") { return [min, max, rest, ok]; } if (!((s.charCodeAt(0) === 44))) { max = min; } else { s = $substring(s, 1); if (s === "") { return [min, max, rest, ok]; } if (s.charCodeAt(0) === 125) { max = -1; } else { _tuple$1 = p.parseInt(s); max = _tuple$1[0]; s = _tuple$1[1]; ok1 = _tuple$1[2]; if (!ok1) { return [min, max, rest, ok]; } else if (max < 0) { min = -1; } } } if (s === "" || !((s.charCodeAt(0) === 125))) { return [min, max, rest, ok]; } rest = $substring(s, 1); ok = true; return [min, max, rest, ok]; }; parser.prototype.parseRepeat = function(s) { return this.$val.parseRepeat(s); }; parser.ptr.prototype.parsePerlFlags = function(s) { var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, c, capture, end, err, flags, name, p, re, rest, s, sawFlag, sign, t; rest = ""; err = $ifaceNil; p = this; t = s; if (t.length > 4 && (t.charCodeAt(2) === 80) && (t.charCodeAt(3) === 60)) { end = strings.IndexRune(t, 62); if (end < 0) { err = checkUTF8(t); if (!($interfaceIsEqual(err, $ifaceNil))) { _tmp = ""; _tmp$1 = err; rest = _tmp; err = _tmp$1; return [rest, err]; } _tmp$2 = ""; _tmp$3 = new Error.ptr("invalid named capture", s); rest = _tmp$2; err = _tmp$3; return [rest, err]; } capture = $substring(t, 0, (end + 1 >> 0)); name = $substring(t, 4, end); err = checkUTF8(name); if (!($interfaceIsEqual(err, $ifaceNil))) { _tmp$4 = ""; _tmp$5 = err; rest = _tmp$4; err = _tmp$5; return [rest, err]; } if (!isValidCaptureName(name)) { _tmp$6 = ""; _tmp$7 = new Error.ptr("invalid named capture", capture); rest = _tmp$6; err = _tmp$7; return [rest, err]; } p.numCap = p.numCap + (1) >> 0; re = p.op(128); re.Cap = p.numCap; re.Name = name; _tmp$8 = $substring(t, (end + 1 >> 0)); _tmp$9 = $ifaceNil; rest = _tmp$8; err = _tmp$9; return [rest, err]; } c = 0; t = $substring(t, 2); flags = p.flags; sign = 1; sawFlag = false; Loop: while (true) { if (!(!(t === ""))) { break; } _tuple = nextRune(t); c = _tuple[0]; t = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { _tmp$10 = ""; _tmp$11 = err; rest = _tmp$10; err = _tmp$11; return [rest, err]; } _1 = c; if (_1 === (105)) { flags = (flags | (1)) >>> 0; sawFlag = true; } else if (_1 === (109)) { flags = (flags & ~(16)) << 16 >>> 16; sawFlag = true; } else if (_1 === (115)) { flags = (flags | (8)) >>> 0; sawFlag = true; } else if (_1 === (85)) { flags = (flags | (32)) >>> 0; sawFlag = true; } else if (_1 === (45)) { if (sign < 0) { break Loop; } sign = -1; flags = ~flags << 16 >>> 16; sawFlag = false; } else if ((_1 === (58)) || (_1 === (41))) { if (sign < 0) { if (!sawFlag) { break Loop; } flags = ~flags << 16 >>> 16; } if (c === 58) { p.op(128); } p.flags = flags; _tmp$12 = t; _tmp$13 = $ifaceNil; rest = _tmp$12; err = _tmp$13; return [rest, err]; } else { break Loop; } } _tmp$14 = ""; _tmp$15 = new Error.ptr("invalid or unsupported Perl syntax", $substring(s, 0, (s.length - t.length >> 0))); rest = _tmp$14; err = _tmp$15; return [rest, err]; }; parser.prototype.parsePerlFlags = function(s) { return this.$val.parsePerlFlags(s); }; isValidCaptureName = function(name) { var _i, _ref, _rune, c, name; if (name === "") { return false; } _ref = name; _i = 0; while (true) { if (!(_i < _ref.length)) { break; } _rune = $decodeRune(_ref, _i); c = _rune[0]; if (!((c === 95)) && !isalnum(c)) { return false; } _i += _rune[1]; } return true; }; parser.ptr.prototype.parseInt = function(s) { var i, n, ok, p, rest, s, t; n = 0; rest = ""; ok = false; p = this; if (s === "" || s.charCodeAt(0) < 48 || 57 < s.charCodeAt(0)) { return [n, rest, ok]; } if (s.length >= 2 && (s.charCodeAt(0) === 48) && 48 <= s.charCodeAt(1) && s.charCodeAt(1) <= 57) { return [n, rest, ok]; } t = s; while (true) { if (!(!(s === "") && 48 <= s.charCodeAt(0) && s.charCodeAt(0) <= 57)) { break; } s = $substring(s, 1); } rest = s; ok = true; t = $substring(t, 0, (t.length - s.length >> 0)); i = 0; while (true) { if (!(i < t.length)) { break; } if (n >= 100000000) { n = -1; break; } n = (($imul(n, 10)) + ((t.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; i = i + (1) >> 0; } return [n, rest, ok]; }; parser.prototype.parseInt = function(s) { return this.$val.parseInt(s); }; isCharClass = function(re) { var re; return (re.Op === 3) && (re.Rune.$length === 1) || (re.Op === 4) || (re.Op === 5) || (re.Op === 6); }; matchRune = function(re, r) { var _1, i, r, re, x, x$1, x$2, x$3; _1 = re.Op; if (_1 === (3)) { return (re.Rune.$length === 1) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === r); } else if (_1 === (4)) { i = 0; while (true) { if (!(i < re.Rune.$length)) { break; } if ((x$1 = re.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) <= r && r <= (x$2 = re.Rune, x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) { return true; } i = i + (2) >> 0; } return false; } else if (_1 === (5)) { return !((r === 10)); } else if (_1 === (6)) { return true; } return false; }; parser.ptr.prototype.parseVerticalBar = function() { var _r, _r$1, p, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (!_r$1) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!_r$1) { */ case 2: p.op(129); /* } */ case 3: $s = -1; return $ifaceNil; /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parseVerticalBar }; } $f._r = _r; $f._r$1 = _r$1; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; }; parser.prototype.parseVerticalBar = function() { return this.$val.parseVerticalBar(); }; mergeCharClass = function(dst, src) { var _1, dst, src, x, x$1, x$2, x$3, x$4; switch (0) { default: _1 = dst.Op; if (_1 === (6)) { } else if (_1 === (5)) { if (matchRune(src, 10)) { dst.Op = 6; } } else if (_1 === (4)) { if (src.Op === 3) { dst.Rune = appendLiteral(dst.Rune, (x = src.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), src.Flags); } else { dst.Rune = appendClass(dst.Rune, src.Rune); } } else if (_1 === (3)) { if (((x$1 = src.Rune, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) === (x$2 = dst.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) && (src.Flags === dst.Flags)) { break; } dst.Op = 4; dst.Rune = appendLiteral($subslice(dst.Rune, 0, 0), (x$3 = dst.Rune, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), dst.Flags); dst.Rune = appendLiteral(dst.Rune, (x$4 = src.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])), src.Flags); } } }; parser.ptr.prototype.swapVerticalBar = function() { var _tmp, _tmp$1, n, p, re1, re1$1, re2, re3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; n = $f.n; p = $f.p; re1 = $f.re1; re1$1 = $f.re1$1; re2 = $f.re2; re3 = $f.re3; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$17 = $f.x$17; x$18 = $f.x$18; x$19 = $f.x$19; x$2 = $f.x$2; x$20 = $f.x$20; x$21 = $f.x$21; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; n = p.stack.$length; if (n >= 3 && ((x = p.stack, x$1 = n - 2 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 129) && isCharClass((x$2 = p.stack, x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) && isCharClass((x$4 = p.stack, x$5 = n - 3 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])))) { re1 = (x$6 = p.stack, x$7 = n - 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); re3 = (x$8 = p.stack, x$9 = n - 3 >> 0, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])); if (re1.Op > re3.Op) { _tmp = re3; _tmp$1 = re1; re1 = _tmp; re3 = _tmp$1; (x$10 = p.stack, x$11 = n - 3 >> 0, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11] = re3)); } mergeCharClass(re3, re1); p.reuse(re1); p.stack = $subslice(p.stack, 0, (n - 1 >> 0)); $s = -1; return true; } /* */ if (n >= 2) { $s = 1; continue; } /* */ $s = 2; continue; /* if (n >= 2) { */ case 1: re1$1 = (x$12 = p.stack, x$13 = n - 1 >> 0, ((x$13 < 0 || x$13 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + x$13])); re2 = (x$14 = p.stack, x$15 = n - 2 >> 0, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15])); /* */ if (re2.Op === 129) { $s = 3; continue; } /* */ $s = 4; continue; /* if (re2.Op === 129) { */ case 3: /* */ if (n >= 3) { $s = 5; continue; } /* */ $s = 6; continue; /* if (n >= 3) { */ case 5: $r = cleanAlt((x$16 = p.stack, x$17 = n - 3 >> 0, ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17]))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: (x$18 = p.stack, x$19 = n - 2 >> 0, ((x$19 < 0 || x$19 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + x$19] = re1$1)); (x$20 = p.stack, x$21 = n - 1 >> 0, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21] = re2)); $s = -1; return true; /* } */ case 4: /* } */ case 2: $s = -1; return false; /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.swapVerticalBar }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.n = n; $f.p = p; $f.re1 = re1; $f.re1$1 = re1$1; $f.re2 = re2; $f.re3 = re3; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$17 = x$17; $f.x$18 = x$18; $f.x$19 = x$19; $f.x$2 = x$2; $f.x$20 = x$20; $f.x$21 = x$21; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; }; parser.prototype.swapVerticalBar = function() { return this.$val.swapVerticalBar(); }; parser.ptr.prototype.parseRightParen = function() { var _r, _r$1, _r$2, n, p, re1, re2, x, x$1, x$2, x$3, x$4, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; n = $f.n; p = $f.p; re1 = $f.re1; re2 = $f.re2; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 2; continue; } /* */ $s = 3; continue; /* if (_r$1) { */ case 2: p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0)); /* } */ case 3: _r$2 = p.alternate(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; n = p.stack.$length; if (n < 2) { $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp); } re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); p.stack = $subslice(p.stack, 0, (n - 2 >> 0)); if (!((re2.Op === 128))) { $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp); } p.flags = re2.Flags; if (re2.Cap === 0) { p.push(re1); } else { re2.Op = 13; re2.Sub = $subslice(new sliceType$5(re2.Sub0), 0, 1); (x$4 = re2.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = re1)); p.push(re2); } $s = -1; return $ifaceNil; /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parseRightParen }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.n = n; $f.p = p; $f.re1 = re1; $f.re2 = re2; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f; }; parser.prototype.parseRightParen = function() { return this.$val.parseRightParen(); }; parser.ptr.prototype.parseEscape = function(s) { var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, c, err, i, nhex, p, r, rest, s, t, v, x, y; r = 0; rest = ""; err = $ifaceNil; p = this; t = $substring(s, 1); if (t === "") { _tmp = 0; _tmp$1 = ""; _tmp$2 = new Error.ptr("trailing backslash at end of expression", ""); r = _tmp; rest = _tmp$1; err = _tmp$2; return [r, rest, err]; } _tuple = nextRune(t); c = _tuple[0]; t = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { _tmp$3 = 0; _tmp$4 = ""; _tmp$5 = err; r = _tmp$3; rest = _tmp$4; err = _tmp$5; return [r, rest, err]; } Switch: switch (0) { default: _1 = c; if ((_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) { if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { break; } r = c - 48 >> 0; i = 1; while (true) { if (!(i < 3)) { break; } if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { break; } r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0; t = $substring(t, 1); i = i + (1) >> 0; } _tmp$6 = r; _tmp$7 = t; _tmp$8 = $ifaceNil; r = _tmp$6; rest = _tmp$7; err = _tmp$8; return [r, rest, err]; } else if (_1 === (48)) { r = c - 48 >> 0; i = 1; while (true) { if (!(i < 3)) { break; } if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { break; } r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0; t = $substring(t, 1); i = i + (1) >> 0; } _tmp$9 = r; _tmp$10 = t; _tmp$11 = $ifaceNil; r = _tmp$9; rest = _tmp$10; err = _tmp$11; return [r, rest, err]; } else if (_1 === (120)) { if (t === "") { break; } _tuple$1 = nextRune(t); c = _tuple$1[0]; t = _tuple$1[1]; err = _tuple$1[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { _tmp$12 = 0; _tmp$13 = ""; _tmp$14 = err; r = _tmp$12; rest = _tmp$13; err = _tmp$14; return [r, rest, err]; } if (c === 123) { nhex = 0; r = 0; while (true) { if (t === "") { break Switch; } _tuple$2 = nextRune(t); c = _tuple$2[0]; t = _tuple$2[1]; err = _tuple$2[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { _tmp$15 = 0; _tmp$16 = ""; _tmp$17 = err; r = _tmp$15; rest = _tmp$16; err = _tmp$17; return [r, rest, err]; } if (c === 125) { break; } v = unhex(c); if (v < 0) { break Switch; } r = ($imul(r, 16)) + v >> 0; if (r > 1114111) { break Switch; } nhex = nhex + (1) >> 0; } if (nhex === 0) { break Switch; } _tmp$18 = r; _tmp$19 = t; _tmp$20 = $ifaceNil; r = _tmp$18; rest = _tmp$19; err = _tmp$20; return [r, rest, err]; } x = unhex(c); _tuple$3 = nextRune(t); c = _tuple$3[0]; t = _tuple$3[1]; err = _tuple$3[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { _tmp$21 = 0; _tmp$22 = ""; _tmp$23 = err; r = _tmp$21; rest = _tmp$22; err = _tmp$23; return [r, rest, err]; } y = unhex(c); if (x < 0 || y < 0) { break; } _tmp$24 = ($imul(x, 16)) + y >> 0; _tmp$25 = t; _tmp$26 = $ifaceNil; r = _tmp$24; rest = _tmp$25; err = _tmp$26; return [r, rest, err]; } else if (_1 === (97)) { _tmp$27 = 7; _tmp$28 = t; _tmp$29 = err; r = _tmp$27; rest = _tmp$28; err = _tmp$29; return [r, rest, err]; } else if (_1 === (102)) { _tmp$30 = 12; _tmp$31 = t; _tmp$32 = err; r = _tmp$30; rest = _tmp$31; err = _tmp$32; return [r, rest, err]; } else if (_1 === (110)) { _tmp$33 = 10; _tmp$34 = t; _tmp$35 = err; r = _tmp$33; rest = _tmp$34; err = _tmp$35; return [r, rest, err]; } else if (_1 === (114)) { _tmp$36 = 13; _tmp$37 = t; _tmp$38 = err; r = _tmp$36; rest = _tmp$37; err = _tmp$38; return [r, rest, err]; } else if (_1 === (116)) { _tmp$39 = 9; _tmp$40 = t; _tmp$41 = err; r = _tmp$39; rest = _tmp$40; err = _tmp$41; return [r, rest, err]; } else if (_1 === (118)) { _tmp$42 = 11; _tmp$43 = t; _tmp$44 = err; r = _tmp$42; rest = _tmp$43; err = _tmp$44; return [r, rest, err]; } else if (c < 128 && !isalnum(c)) { _tmp$45 = c; _tmp$46 = t; _tmp$47 = $ifaceNil; r = _tmp$45; rest = _tmp$46; err = _tmp$47; return [r, rest, err]; } } _tmp$48 = 0; _tmp$49 = ""; _tmp$50 = new Error.ptr("invalid escape sequence", $substring(s, 0, (s.length - t.length >> 0))); r = _tmp$48; rest = _tmp$49; err = _tmp$50; return [r, rest, err]; }; parser.prototype.parseEscape = function(s) { return this.$val.parseEscape(s); }; parser.ptr.prototype.parseClassChar = function(s, wholeClass) { var _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, err, p, r, rest, s, wholeClass; r = 0; rest = ""; err = $ifaceNil; p = this; if (s === "") { _tmp = 0; _tmp$1 = ""; _tmp$2 = new Error.ptr("missing closing ]", wholeClass); r = _tmp; rest = _tmp$1; err = _tmp$2; return [r, rest, err]; } if (s.charCodeAt(0) === 92) { _tuple = p.parseEscape(s); r = _tuple[0]; rest = _tuple[1]; err = _tuple[2]; return [r, rest, err]; } _tuple$1 = nextRune(s); r = _tuple$1[0]; rest = _tuple$1[1]; err = _tuple$1[2]; return [r, rest, err]; }; parser.prototype.parseClassChar = function(s, wholeClass) { return this.$val.parseClassChar(s, wholeClass); }; parser.ptr.prototype.parsePerlClassEscape = function(s, r) { var _entry, _r, _tmp, _tmp$1, g, out, p, r, rest, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; g = $f.g; out = $f.out; p = $f.p; r = $f.r; rest = $f.rest; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: out = sliceType.nil; rest = ""; p = this; if ((((p.flags & 64) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92))) { $s = -1; return [out, rest]; } g = $clone((_entry = perlGroup[$String.keyFor($substring(s, 0, 2))], _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType.nil)), charGroup); if (g.sign === 0) { $s = -1; return [out, rest]; } _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tmp = _r; _tmp$1 = $substring(s, 2); out = _tmp; rest = _tmp$1; $s = -1; return [out, rest]; /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parsePerlClassEscape }; } $f._entry = _entry; $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.g = g; $f.out = out; $f.p = p; $f.r = r; $f.rest = rest; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; parser.prototype.parsePerlClassEscape = function(s, r) { return this.$val.parsePerlClassEscape(s, r); }; parser.ptr.prototype.parseNamedClass = function(s, r) { var _entry, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, err, g, i, name, out, p, r, rest, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; err = $f.err; g = $f.g; i = $f.i; name = $f.name; out = $f.out; p = $f.p; r = $f.r; rest = $f.rest; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: out = sliceType.nil; rest = ""; err = $ifaceNil; p = this; if (s.length < 2 || !((s.charCodeAt(0) === 91)) || !((s.charCodeAt(1) === 58))) { $s = -1; return [out, rest, err]; } i = strings.Index($substring(s, 2), ":]"); if (i < 0) { $s = -1; return [out, rest, err]; } i = i + (2) >> 0; _tmp = $substring(s, 0, (i + 2 >> 0)); _tmp$1 = $substring(s, (i + 2 >> 0)); name = _tmp; s = _tmp$1; g = $clone((_entry = posixGroup[$String.keyFor(name)], _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType.nil)), charGroup); if (g.sign === 0) { _tmp$2 = sliceType.nil; _tmp$3 = ""; _tmp$4 = new Error.ptr("invalid character class range", name); out = _tmp$2; rest = _tmp$3; err = _tmp$4; $s = -1; return [out, rest, err]; } _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tmp$5 = _r; _tmp$6 = s; _tmp$7 = $ifaceNil; out = _tmp$5; rest = _tmp$6; err = _tmp$7; $s = -1; return [out, rest, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parseNamedClass }; } $f._entry = _entry; $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f.err = err; $f.g = g; $f.i = i; $f.name = name; $f.out = out; $f.p = p; $f.r = r; $f.rest = rest; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; parser.prototype.parseNamedClass = function(s, r) { return this.$val.parseNamedClass(s, r); }; parser.ptr.prototype.appendGroup = function(r, g) { var _r, g, p, r, tmp, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; g = $f.g; p = $f.p; r = $f.r; tmp = $f.tmp; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; /* */ if (((p.flags & 1) >>> 0) === 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if (((p.flags & 1) >>> 0) === 0) { */ case 1: if (g.sign < 0) { r = appendNegatedClass(r, g.class$1); } else { r = appendClass(r, g.class$1); } $s = 3; continue; /* } else { */ case 2: tmp = $subslice(p.tmpClass, 0, 0); tmp = appendFoldedClass(tmp, g.class$1); p.tmpClass = tmp; _r = cleanClass((p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$2(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } tmp = _r; if (g.sign < 0) { r = appendNegatedClass(r, tmp); } else { r = appendClass(r, tmp); } /* } */ case 3: $s = -1; return r; /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.appendGroup }; } $f._r = _r; $f.g = g; $f.p = p; $f.r = r; $f.tmp = tmp; $f.$s = $s; $f.$r = $r; return $f; }; parser.prototype.appendGroup = function(r, g) { return this.$val.appendGroup(r, g); }; unicodeTable = function(name) { var _entry, _entry$1, _entry$2, _entry$3, name, t, t$1; if (name === "Any") { return [anyTable, anyTable]; } t = (_entry = unicode.Categories[$String.keyFor(name)], _entry !== undefined ? _entry.v : ptrType$3.nil); if (!(t === ptrType$3.nil)) { return [t, (_entry$1 = unicode.FoldCategory[$String.keyFor(name)], _entry$1 !== undefined ? _entry$1.v : ptrType$3.nil)]; } t$1 = (_entry$2 = unicode.Scripts[$String.keyFor(name)], _entry$2 !== undefined ? _entry$2.v : ptrType$3.nil); if (!(t$1 === ptrType$3.nil)) { return [t$1, (_entry$3 = unicode.FoldScript[$String.keyFor(name)], _entry$3 !== undefined ? _entry$3.v : ptrType$3.nil)]; } return [ptrType$3.nil, ptrType$3.nil]; }; parser.ptr.prototype.parseUnicodeClass = function(s, r) { var _r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, c, end, err, fold, name, out, p, r, rest, s, seq, sign, t, tab, tmp, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; c = $f.c; end = $f.end; err = $f.err; fold = $f.fold; name = $f.name; out = $f.out; p = $f.p; r = $f.r; rest = $f.rest; s = $f.s; seq = $f.seq; sign = $f.sign; t = $f.t; tab = $f.tab; tmp = $f.tmp; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: out = sliceType.nil; rest = ""; err = $ifaceNil; p = this; if ((((p.flags & 128) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92)) || !((s.charCodeAt(1) === 112)) && !((s.charCodeAt(1) === 80))) { $s = -1; return [out, rest, err]; } sign = 1; if (s.charCodeAt(1) === 80) { sign = -1; } t = $substring(s, 2); _tuple = nextRune(t); c = _tuple[0]; t = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [out, rest, err]; } _tmp = ""; _tmp$1 = ""; seq = _tmp; name = _tmp$1; if (!((c === 123))) { seq = $substring(s, 0, (s.length - t.length >> 0)); name = $substring(seq, 2); } else { end = strings.IndexRune(s, 125); if (end < 0) { err = checkUTF8(s); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [out, rest, err]; } _tmp$2 = sliceType.nil; _tmp$3 = ""; _tmp$4 = new Error.ptr("invalid character class range", s); out = _tmp$2; rest = _tmp$3; err = _tmp$4; $s = -1; return [out, rest, err]; } _tmp$5 = $substring(s, 0, (end + 1 >> 0)); _tmp$6 = $substring(s, (end + 1 >> 0)); seq = _tmp$5; t = _tmp$6; name = $substring(s, 3, end); err = checkUTF8(name); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [out, rest, err]; } } if (!(name === "") && (name.charCodeAt(0) === 94)) { sign = -sign; name = $substring(name, 1); } _tuple$1 = unicodeTable(name); tab = _tuple$1[0]; fold = _tuple$1[1]; if (tab === ptrType$3.nil) { _tmp$7 = sliceType.nil; _tmp$8 = ""; _tmp$9 = new Error.ptr("invalid character class range", seq); out = _tmp$7; rest = _tmp$8; err = _tmp$9; $s = -1; return [out, rest, err]; } /* */ if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$3.nil) { $s = 1; continue; } /* */ $s = 2; continue; /* if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$3.nil) { */ case 1: if (sign > 0) { r = appendTable(r, tab); } else { r = appendNegatedTable(r, tab); } $s = 3; continue; /* } else { */ case 2: tmp = $subslice(p.tmpClass, 0, 0); tmp = appendTable(tmp, tab); tmp = appendTable(tmp, fold); p.tmpClass = tmp; _r = cleanClass((p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$2(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } tmp = _r; if (sign > 0) { r = appendClass(r, tmp); } else { r = appendNegatedClass(r, tmp); } /* } */ case 3: _tmp$10 = r; _tmp$11 = t; _tmp$12 = $ifaceNil; out = _tmp$10; rest = _tmp$11; err = _tmp$12; $s = -1; return [out, rest, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parseUnicodeClass }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.c = c; $f.end = end; $f.err = err; $f.fold = fold; $f.name = name; $f.out = out; $f.p = p; $f.r = r; $f.rest = rest; $f.s = s; $f.seq = seq; $f.sign = sign; $f.t = t; $f.tab = tab; $f.tmp = tmp; $f.$s = $s; $f.$r = $r; return $f; }; parser.prototype.parseUnicodeClass = function(s, r) { return this.$val.parseUnicodeClass(s, r); }; parser.ptr.prototype.parseClass = function(s) { var _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, class$1, err, err$1, err$2, first, hi, lo, nclass, nclass$1, nclass$2, nt, nt$1, nt$2, p, re, rest, rng, s, sign, size, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$13 = $f._tmp$13; _tmp$14 = $f._tmp$14; _tmp$15 = $f._tmp$15; _tmp$16 = $f._tmp$16; _tmp$17 = $f._tmp$17; _tmp$18 = $f._tmp$18; _tmp$19 = $f._tmp$19; _tmp$2 = $f._tmp$2; _tmp$20 = $f._tmp$20; _tmp$21 = $f._tmp$21; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; class$1 = $f.class$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; first = $f.first; hi = $f.hi; lo = $f.lo; nclass = $f.nclass; nclass$1 = $f.nclass$1; nclass$2 = $f.nclass$2; nt = $f.nt; nt$1 = $f.nt$1; nt$2 = $f.nt$2; p = $f.p; re = $f.re; rest = $f.rest; rng = $f.rng; s = $f.s; sign = $f.sign; size = $f.size; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: rest = ""; err = $ifaceNil; p = this; t = $substring(s, 1); re = p.newRegexp(4); re.Flags = p.flags; re.Rune = $subslice(new sliceType(re.Rune0), 0, 0); sign = 1; if (!(t === "") && (t.charCodeAt(0) === 94)) { sign = -1; t = $substring(t, 1); if (((p.flags & 4) >>> 0) === 0) { re.Rune = $append(re.Rune, 10, 10); } } class$1 = re.Rune; first = true; /* while (true) { */ case 1: /* if (!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { break; } */ if(!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { $s = 2; continue; } if (!(t === "") && (t.charCodeAt(0) === 45) && (((p.flags & 64) >>> 0) === 0) && !first && ((t.length === 1) || !((t.charCodeAt(1) === 93)))) { _tuple = utf8.DecodeRuneInString($substring(t, 1)); size = _tuple[1]; _tmp = ""; _tmp$1 = new Error.ptr("invalid character class range", $substring(t, 0, (1 + size >> 0))); rest = _tmp; err = _tmp$1; $s = -1; return [rest, err]; } first = false; /* */ if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { $s = 3; continue; } /* */ $s = 4; continue; /* if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { */ case 3: _r = p.parseNamedClass(t, class$1); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple$1 = _r; nclass = _tuple$1[0]; nt = _tuple$1[1]; err$1 = _tuple$1[2]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { _tmp$2 = ""; _tmp$3 = err$1; rest = _tmp$2; err = _tmp$3; $s = -1; return [rest, err]; } if (!(nclass === sliceType.nil)) { _tmp$4 = nclass; _tmp$5 = nt; class$1 = _tmp$4; t = _tmp$5; /* continue; */ $s = 1; continue; } /* } */ case 4: _r$1 = p.parseUnicodeClass(t, class$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$2 = _r$1; nclass$1 = _tuple$2[0]; nt$1 = _tuple$2[1]; err$2 = _tuple$2[2]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { _tmp$6 = ""; _tmp$7 = err$2; rest = _tmp$6; err = _tmp$7; $s = -1; return [rest, err]; } /* */ if (!(nclass$1 === sliceType.nil)) { $s = 7; continue; } /* */ $s = 8; continue; /* if (!(nclass$1 === sliceType.nil)) { */ case 7: _tmp$8 = nclass$1; _tmp$9 = nt$1; class$1 = _tmp$8; t = _tmp$9; /* continue; */ $s = 1; continue; /* } */ case 8: _r$2 = p.parsePerlClassEscape(t, class$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$3 = _r$2; nclass$2 = _tuple$3[0]; nt$2 = _tuple$3[1]; if (!(nclass$2 === sliceType.nil)) { _tmp$10 = nclass$2; _tmp$11 = nt$2; class$1 = _tmp$10; t = _tmp$11; /* continue; */ $s = 1; continue; } rng = t; _tmp$12 = 0; _tmp$13 = 0; lo = _tmp$12; hi = _tmp$13; _tuple$4 = p.parseClassChar(t, s); lo = _tuple$4[0]; t = _tuple$4[1]; err$2 = _tuple$4[2]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { _tmp$14 = ""; _tmp$15 = err$2; rest = _tmp$14; err = _tmp$15; $s = -1; return [rest, err]; } hi = lo; if (t.length >= 2 && (t.charCodeAt(0) === 45) && !((t.charCodeAt(1) === 93))) { t = $substring(t, 1); _tuple$5 = p.parseClassChar(t, s); hi = _tuple$5[0]; t = _tuple$5[1]; err$2 = _tuple$5[2]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { _tmp$16 = ""; _tmp$17 = err$2; rest = _tmp$16; err = _tmp$17; $s = -1; return [rest, err]; } if (hi < lo) { rng = $substring(rng, 0, (rng.length - t.length >> 0)); _tmp$18 = ""; _tmp$19 = new Error.ptr("invalid character class range", rng); rest = _tmp$18; err = _tmp$19; $s = -1; return [rest, err]; } } if (((p.flags & 1) >>> 0) === 0) { class$1 = appendRange(class$1, lo, hi); } else { class$1 = appendFoldedRange(class$1, lo, hi); } /* } */ $s = 1; continue; case 2: t = $substring(t, 1); re.Rune = class$1; _r$3 = cleanClass((re.$ptr_Rune || (re.$ptr_Rune = new ptrType$2(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re)))); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } class$1 = _r$3; if (sign < 0) { class$1 = negateClass(class$1); } re.Rune = class$1; p.push(re); _tmp$20 = t; _tmp$21 = $ifaceNil; rest = _tmp$20; err = _tmp$21; $s = -1; return [rest, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parseClass }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$13 = _tmp$13; $f._tmp$14 = _tmp$14; $f._tmp$15 = _tmp$15; $f._tmp$16 = _tmp$16; $f._tmp$17 = _tmp$17; $f._tmp$18 = _tmp$18; $f._tmp$19 = _tmp$19; $f._tmp$2 = _tmp$2; $f._tmp$20 = _tmp$20; $f._tmp$21 = _tmp$21; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f.class$1 = class$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.first = first; $f.hi = hi; $f.lo = lo; $f.nclass = nclass; $f.nclass$1 = nclass$1; $f.nclass$2 = nclass$2; $f.nt = nt; $f.nt$1 = nt$1; $f.nt$2 = nt$2; $f.p = p; $f.re = re; $f.rest = rest; $f.rng = rng; $f.s = s; $f.sign = sign; $f.size = size; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; parser.prototype.parseClass = function(s) { return this.$val.parseClass(s); }; cleanClass = function(rp) { var _tmp, _tmp$1, hi, i, lo, r, rp, w, x, x$1, x$2, x$3, x$4, x$5, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; hi = $f.hi; i = $f.i; lo = $f.lo; r = $f.r; rp = $f.rp; w = $f.w; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = sort.Sort((x = new ranges.ptr(rp), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } r = rp.$get(); if (r.$length < 2) { $s = -1; return r; } w = 2; i = 2; while (true) { if (!(i < r.$length)) { break; } _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]); _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1])); lo = _tmp; hi = _tmp$1; if (lo <= ((x$2 = w - 1 >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2])) + 1 >> 0)) { if (hi > (x$3 = w - 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3]))) { (x$4 = w - 1 >> 0, ((x$4 < 0 || x$4 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$4] = hi)); } i = i + (2) >> 0; continue; } ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = lo); (x$5 = w + 1 >> 0, ((x$5 < 0 || x$5 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$5] = hi)); w = w + (2) >> 0; i = i + (2) >> 0; } $s = -1; return $subslice(r, 0, w); /* */ } return; } if ($f === undefined) { $f = { $blk: cleanClass }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.hi = hi; $f.i = i; $f.lo = lo; $f.r = r; $f.rp = rp; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f; }; appendLiteral = function(r, x, flags) { var flags, r, x; if (!((((flags & 1) >>> 0) === 0))) { return appendFoldedRange(r, x, x); } return appendRange(r, x, x); }; appendRange = function(r, lo, hi) { var _tmp, _tmp$1, hi, i, lo, n, r, rhi, rlo, x, x$1, x$2, x$3; n = r.$length; i = 2; while (true) { if (!(i <= 4)) { break; } if (n >= i) { _tmp = (x = n - i >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x])); _tmp$1 = (x$1 = (n - i >> 0) + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1])); rlo = _tmp; rhi = _tmp$1; if (lo <= (rhi + 1 >> 0) && rlo <= (hi + 1 >> 0)) { if (lo < rlo) { (x$2 = n - i >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2] = lo)); } if (hi > rhi) { (x$3 = (n - i >> 0) + 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3] = hi)); } return r; } } i = i + (2) >> 0; } return $append(r, lo, hi); }; appendFoldedRange = function(r, lo, hi) { var c, f, hi, lo, r; if (lo <= 65 && hi >= 125251) { return appendRange(r, lo, hi); } if (hi < 65 || lo > 125251) { return appendRange(r, lo, hi); } if (lo < 65) { r = appendRange(r, lo, 64); lo = 65; } if (hi > 125251) { r = appendRange(r, 125252, hi); hi = 125251; } c = lo; while (true) { if (!(c <= hi)) { break; } r = appendRange(r, c, c); f = unicode.SimpleFold(c); while (true) { if (!(!((f === c)))) { break; } r = appendRange(r, f, f); f = unicode.SimpleFold(f); } c = c + (1) >> 0; } return r; }; appendClass = function(r, x) { var i, r, x, x$1; i = 0; while (true) { if (!(i < x.$length)) { break; } r = appendRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); i = i + (2) >> 0; } return r; }; appendFoldedClass = function(r, x) { var i, r, x, x$1; i = 0; while (true) { if (!(i < x.$length)) { break; } r = appendFoldedRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); i = i + (2) >> 0; } return r; }; appendNegatedClass = function(r, x) { var _tmp, _tmp$1, hi, i, lo, nextLo, r, x, x$1; nextLo = 0; i = 0; while (true) { if (!(i < x.$length)) { break; } _tmp = ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]); _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); lo = _tmp; hi = _tmp$1; if (nextLo <= (lo - 1 >> 0)) { r = appendRange(r, nextLo, lo - 1 >> 0); } nextLo = hi + 1 >> 0; i = i + (2) >> 0; } if (nextLo <= 1114111) { r = appendRange(r, nextLo, 1114111); } return r; }; appendTable = function(r, x) { var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, r, stride, stride$1, x, xr, xr$1; _ref = x.R16; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16); _tmp = ((xr.Lo >> 0)); _tmp$1 = ((xr.Hi >> 0)); _tmp$2 = ((xr.Stride >> 0)); lo = _tmp; hi = _tmp$1; stride = _tmp$2; if (stride === 1) { r = appendRange(r, lo, hi); _i++; continue; } c = lo; while (true) { if (!(c <= hi)) { break; } r = appendRange(r, c, c); c = c + (stride) >> 0; } _i++; } _ref$1 = x.R32; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32); _tmp$3 = ((xr$1.Lo >> 0)); _tmp$4 = ((xr$1.Hi >> 0)); _tmp$5 = ((xr$1.Stride >> 0)); lo$1 = _tmp$3; hi$1 = _tmp$4; stride$1 = _tmp$5; if (stride$1 === 1) { r = appendRange(r, lo$1, hi$1); _i$1++; continue; } c$1 = lo$1; while (true) { if (!(c$1 <= hi$1)) { break; } r = appendRange(r, c$1, c$1); c$1 = c$1 + (stride$1) >> 0; } _i$1++; } return r; }; appendNegatedTable = function(r, x) { var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, nextLo, r, stride, stride$1, x, xr, xr$1; nextLo = 0; _ref = x.R16; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16); _tmp = ((xr.Lo >> 0)); _tmp$1 = ((xr.Hi >> 0)); _tmp$2 = ((xr.Stride >> 0)); lo = _tmp; hi = _tmp$1; stride = _tmp$2; if (stride === 1) { if (nextLo <= (lo - 1 >> 0)) { r = appendRange(r, nextLo, lo - 1 >> 0); } nextLo = hi + 1 >> 0; _i++; continue; } c = lo; while (true) { if (!(c <= hi)) { break; } if (nextLo <= (c - 1 >> 0)) { r = appendRange(r, nextLo, c - 1 >> 0); } nextLo = c + 1 >> 0; c = c + (stride) >> 0; } _i++; } _ref$1 = x.R32; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32); _tmp$3 = ((xr$1.Lo >> 0)); _tmp$4 = ((xr$1.Hi >> 0)); _tmp$5 = ((xr$1.Stride >> 0)); lo$1 = _tmp$3; hi$1 = _tmp$4; stride$1 = _tmp$5; if (stride$1 === 1) { if (nextLo <= (lo$1 - 1 >> 0)) { r = appendRange(r, nextLo, lo$1 - 1 >> 0); } nextLo = hi$1 + 1 >> 0; _i$1++; continue; } c$1 = lo$1; while (true) { if (!(c$1 <= hi$1)) { break; } if (nextLo <= (c$1 - 1 >> 0)) { r = appendRange(r, nextLo, c$1 - 1 >> 0); } nextLo = c$1 + 1 >> 0; c$1 = c$1 + (stride$1) >> 0; } _i$1++; } if (nextLo <= 1114111) { r = appendRange(r, nextLo, 1114111); } return r; }; negateClass = function(r) { var _tmp, _tmp$1, hi, i, lo, nextLo, r, w, x, x$1; nextLo = 0; w = 0; i = 0; while (true) { if (!(i < r.$length)) { break; } _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]); _tmp$1 = (x = i + 1 >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x])); lo = _tmp; hi = _tmp$1; if (nextLo <= (lo - 1 >> 0)) { ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = nextLo); (x$1 = w + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1] = (lo - 1 >> 0))); w = w + (2) >> 0; } nextLo = hi + 1 >> 0; i = i + (2) >> 0; } r = $subslice(r, 0, w); if (nextLo <= 1114111) { r = $append(r, nextLo, 1114111); } return r; }; ranges.ptr.prototype.Less = function(i, j) { var i, j, p, ra, x, x$1; ra = this; p = ra.p.$get(); i = $imul(i, (2)); j = $imul(j, (2)); return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]) || (((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) === ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j])) && (x = i + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])) > (x$1 = j + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])); }; ranges.prototype.Less = function(i, j) { return this.$val.Less(i, j); }; ranges.ptr.prototype.Len = function() { var _q, ra; ra = this; return (_q = ra.p.$get().$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); }; ranges.prototype.Len = function() { return this.$val.Len(); }; ranges.ptr.prototype.Swap = function(i, j) { var _tmp, _tmp$1, _tmp$2, _tmp$3, i, j, p, ra, x, x$1, x$2, x$3; ra = this; p = ra.p.$get(); i = $imul(i, (2)); j = $imul(j, (2)); _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); _tmp$1 = (x = j + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])); _tmp$2 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); _tmp$3 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])); ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2] = _tmp$1)); ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$2); (x$3 = j + 1 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3] = _tmp$3)); }; ranges.prototype.Swap = function(i, j) { return this.$val.Swap(i, j); }; checkUTF8 = function(s) { var _tuple, rune, s, size; while (true) { if (!(!(s === ""))) { break; } _tuple = utf8.DecodeRuneInString(s); rune = _tuple[0]; size = _tuple[1]; if ((rune === 65533) && (size === 1)) { return new Error.ptr("invalid UTF-8", s); } s = $substring(s, size); } return $ifaceNil; }; nextRune = function(s) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, c, err, s, size, t; c = 0; t = ""; err = $ifaceNil; _tuple = utf8.DecodeRuneInString(s); c = _tuple[0]; size = _tuple[1]; if ((c === 65533) && (size === 1)) { _tmp = 0; _tmp$1 = ""; _tmp$2 = new Error.ptr("invalid UTF-8", s); c = _tmp; t = _tmp$1; err = _tmp$2; return [c, t, err]; } _tmp$3 = c; _tmp$4 = $substring(s, size); _tmp$5 = $ifaceNil; c = _tmp$3; t = _tmp$4; err = _tmp$5; return [c, t, err]; }; isalnum = function(c) { var c; return 48 <= c && c <= 57 || 65 <= c && c <= 90 || 97 <= c && c <= 122; }; unhex = function(c) { var c; if (48 <= c && c <= 57) { return c - 48 >> 0; } if (97 <= c && c <= 102) { return (c - 97 >> 0) + 10 >> 0; } if (65 <= c && c <= 70) { return (c - 65 >> 0) + 10 >> 0; } return -1; }; InstOp.prototype.String = function() { var i; i = this.$val; if (((i >>> 0)) >= ((instOpNames.$length >>> 0))) { return ""; } return ((i < 0 || i >= instOpNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : instOpNames.$array[instOpNames.$offset + i]); }; $ptrType(InstOp).prototype.String = function() { return new InstOp(this.$get()).String(); }; EmptyOpContext = function(r1, r2) { var boundary, op, r1, r2; op = 32; boundary = 0; if (IsWordChar(r1)) { boundary = 1; } else if ((r1 === 10)) { op = (op | (1)) >>> 0; } else if (r1 < 0) { op = (op | (5)) >>> 0; } if (IsWordChar(r2)) { boundary = (boundary ^ (1)) << 24 >>> 24; } else if ((r2 === 10)) { op = (op | (2)) >>> 0; } else if (r2 < 0) { op = (op | (10)) >>> 0; } if (!((boundary === 0))) { op = (op ^ (48)) << 24 >>> 24; } return op; }; $pkg.EmptyOpContext = EmptyOpContext; IsWordChar = function(r) { var r; return 65 <= r && r <= 90 || 97 <= r && r <= 122 || 48 <= r && r <= 57 || (r === 95); }; $pkg.IsWordChar = IsWordChar; Prog.ptr.prototype.String = function() { var b, p; p = this; b = new bytes.Buffer.ptr(sliceType$6.nil, 0, 0, arrayType$2.zero()); dumpProg(b, p); return b.String(); }; Prog.prototype.String = function() { return this.$val.String(); }; Prog.ptr.prototype.skipNop = function(pc) { var i, p, pc, x, x$1; p = this; i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); while (true) { if (!((i.Op === 6) || (i.Op === 2))) { break; } pc = i.Out; i = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])); } return [i, pc]; }; Prog.prototype.skipNop = function(pc) { return this.$val.skipNop(pc); }; Inst.ptr.prototype.op = function() { var _1, i, op; i = this; op = i.Op; _1 = op; if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { op = 7; } return op; }; Inst.prototype.op = function() { return this.$val.op(); }; Prog.ptr.prototype.Prefix = function() { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, buf, complete, i, p, prefix, x; prefix = ""; complete = false; p = this; _tuple = p.skipNop(((p.Start >>> 0))); i = _tuple[0]; if (!((i.op() === 7)) || !((i.Rune.$length === 1))) { _tmp = ""; _tmp$1 = i.Op === 4; prefix = _tmp; complete = _tmp$1; return [prefix, complete]; } buf = new bytes.Buffer.ptr(sliceType$6.nil, 0, 0, arrayType$2.zero()); while (true) { if (!((i.op() === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { break; } buf.WriteRune((x = i.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); _tuple$1 = p.skipNop(i.Out); i = _tuple$1[0]; } _tmp$2 = buf.String(); _tmp$3 = i.Op === 4; prefix = _tmp$2; complete = _tmp$3; return [prefix, complete]; }; Prog.prototype.Prefix = function() { return this.$val.Prefix(); }; Prog.ptr.prototype.StartCond = function() { var _1, flag, i, p, pc, x, x$1; p = this; flag = 0; pc = ((p.Start >>> 0)); i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); Loop: while (true) { _1 = i.Op; if (_1 === (3)) { flag = (flag | (((i.Arg << 24 >>> 24)))) >>> 0; } else if (_1 === (5)) { return 255; } else if ((_1 === (2)) || (_1 === (6))) { } else { break Loop; } pc = i.Out; i = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])); } return flag; }; Prog.prototype.StartCond = function() { return this.$val.StartCond(); }; Inst.ptr.prototype.MatchRune = function(r) { var i, r; i = this; return !((i.MatchRunePos(r) === -1)); }; Inst.prototype.MatchRune = function(r) { return this.$val.MatchRune(r); }; Inst.ptr.prototype.MatchRunePos = function(r) { var _q, _q$1, _q$2, c, hi, i, j, lo, m, r, r0, r1, rune, x, x$1, x$2; i = this; rune = i.Rune; if (rune.$length === 1) { r0 = (0 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 0]); if (r === r0) { return 0; } if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { r1 = unicode.SimpleFold(r0); while (true) { if (!(!((r1 === r0)))) { break; } if (r === r1) { return 0; } r1 = unicode.SimpleFold(r1); } } return -1; } j = 0; while (true) { if (!(j < rune.$length && j <= 8)) { break; } if (r < ((j < 0 || j >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + j])) { return -1; } if (r <= (x = j + 1 >> 0, ((x < 0 || x >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x]))) { return (_q = j / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); } j = j + (2) >> 0; } lo = 0; hi = (_q$1 = rune.$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); while (true) { if (!(lo < hi)) { break; } m = lo + (_q$2 = ((hi - lo >> 0)) / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; c = (x$1 = $imul(2, m), ((x$1 < 0 || x$1 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$1])); if (c <= r) { if (r <= (x$2 = ($imul(2, m)) + 1 >> 0, ((x$2 < 0 || x$2 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$2]))) { return m; } lo = m + 1 >> 0; } else { hi = m; } } return -1; }; Inst.prototype.MatchRunePos = function(r) { return this.$val.MatchRunePos(r); }; wordRune = function(r) { var r; return (r === 95) || (65 <= r && r <= 90) || (97 <= r && r <= 122) || (48 <= r && r <= 57); }; Inst.ptr.prototype.MatchEmptyWidth = function(before, after) { var _1, after, before, i; i = this; _1 = ((i.Arg << 24 >>> 24)); if (_1 === (1)) { return (before === 10) || (before === -1); } else if (_1 === (2)) { return (after === 10) || (after === -1); } else if (_1 === (4)) { return before === -1; } else if (_1 === (8)) { return after === -1; } else if (_1 === (16)) { return !(wordRune(before) === wordRune(after)); } else if (_1 === (32)) { return wordRune(before) === wordRune(after); } $panic(new $String("unknown empty width arg")); }; Inst.prototype.MatchEmptyWidth = function(before, after) { return this.$val.MatchEmptyWidth(before, after); }; Inst.ptr.prototype.String = function() { var b, i; i = this; b = new bytes.Buffer.ptr(sliceType$6.nil, 0, 0, arrayType$2.zero()); dumpInst(b, i); return b.String(); }; Inst.prototype.String = function() { return this.$val.String(); }; bw = function(b, args) { var _i, _ref, args, b, s; _ref = args; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); b.WriteString(s); _i++; } }; dumpProg = function(b, p) { var _i, _ref, b, i, j, p, pc, x; _ref = p.Inst; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } j = _i; i = (x = p.Inst, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); pc = strconv.Itoa(j); if (pc.length < 3) { b.WriteString($substring(" ", pc.length)); } if (j === p.Start) { pc = pc + ("*"); } bw(b, new sliceType$3([pc, "\t"])); dumpInst(b, i); bw(b, new sliceType$3(["\n"])); _i++; } }; u32 = function(i) { var i; return strconv.FormatUint((new $Uint64(0, i)), 10); }; dumpInst = function(b, i) { var _1, b, i; _1 = i.Op; if (_1 === (0)) { bw(b, new sliceType$3(["alt -> ", u32(i.Out), ", ", u32(i.Arg)])); } else if (_1 === (1)) { bw(b, new sliceType$3(["altmatch -> ", u32(i.Out), ", ", u32(i.Arg)])); } else if (_1 === (2)) { bw(b, new sliceType$3(["cap ", u32(i.Arg), " -> ", u32(i.Out)])); } else if (_1 === (3)) { bw(b, new sliceType$3(["empty ", u32(i.Arg), " -> ", u32(i.Out)])); } else if (_1 === (4)) { bw(b, new sliceType$3(["match"])); } else if (_1 === (5)) { bw(b, new sliceType$3(["fail"])); } else if (_1 === (6)) { bw(b, new sliceType$3(["nop -> ", u32(i.Out)])); } else if (_1 === (7)) { if (i.Rune === sliceType.nil) { bw(b, new sliceType$3(["rune "])); } bw(b, new sliceType$3(["rune ", strconv.QuoteToASCII(($runesToString(i.Rune)))])); if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { bw(b, new sliceType$3(["/i"])); } bw(b, new sliceType$3([" -> ", u32(i.Out)])); } else if (_1 === (8)) { bw(b, new sliceType$3(["rune1 ", strconv.QuoteToASCII(($runesToString(i.Rune))), " -> ", u32(i.Out)])); } else if (_1 === (9)) { bw(b, new sliceType$3(["any -> ", u32(i.Out)])); } else if (_1 === (10)) { bw(b, new sliceType$3(["anynotnl -> ", u32(i.Out)])); } }; Regexp.ptr.prototype.Equal = function(y) { var _1, _i, _i$1, _ref, _ref$1, i, i$1, r, sub, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y; x = this; if (x === ptrType$1.nil || y === ptrType$1.nil) { return x === y; } if (!((x.Op === y.Op))) { return false; } _1 = x.Op; if (_1 === (10)) { if (!((((x.Flags & 256) >>> 0) === ((y.Flags & 256) >>> 0)))) { return false; } } else if ((_1 === (3)) || (_1 === (4))) { if (!((x.Rune.$length === y.Rune.$length))) { return false; } _ref = x.Rune; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (!((r === (x$1 = y.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i]))))) { return false; } _i++; } } else if ((_1 === (19)) || (_1 === (18))) { if (!((x.Sub.$length === y.Sub.$length))) { return false; } _ref$1 = x.Sub; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } i$1 = _i$1; sub = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); if (!sub.Equal((x$2 = y.Sub, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])))) { return false; } _i$1++; } } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) { if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !(x$3 = x.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).Equal((x$4 = y.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])))) { return false; } } else if (_1 === (17)) { if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !((x.Min === y.Min)) || !((x.Max === y.Max)) || !(x$5 = x.Sub, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])).Equal((x$6 = y.Sub, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])))) { return false; } } else if (_1 === (13)) { if (!((x.Cap === y.Cap)) || !(x.Name === y.Name) || !(x$7 = x.Sub, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).Equal((x$8 = y.Sub, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])))) { return false; } } return true; }; Regexp.prototype.Equal = function(y) { return this.$val.Equal(y); }; writeRegexp = function(b, re) { var _1, _2, _i, _i$1, _i$2, _r, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$2, _tmp$3, b, hi, hi$1, i, i$1, i$2, lo, lo$1, r, re, sub, sub$1, sub$2, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; switch (0) { default: _1 = re.Op; if (_1 === (1)) { b.WriteString("[^\\x00-\\x{10FFFF}]"); } else if (_1 === (2)) { b.WriteString("(?:)"); } else if (_1 === (3)) { if (!((((re.Flags & 1) >>> 0) === 0))) { b.WriteString("(?i:"); } _ref = re.Rune; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); escape(b, r, false); _i++; } if (!((((re.Flags & 1) >>> 0) === 0))) { b.WriteString(")"); } } else if (_1 === (4)) { if (!(((_r = re.Rune.$length % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0))) { b.WriteString("[invalid char class]"); break; } b.WriteRune(91); if (re.Rune.$length === 0) { b.WriteString("^\\x00-\\x{10FFFF}"); } else if (((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, x$2 = re.Rune.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === 1114111)) { b.WriteRune(94); i = 1; while (true) { if (!(i < (re.Rune.$length - 1 >> 0))) { break; } _tmp = (x$3 = re.Rune, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])) + 1 >> 0; _tmp$1 = (x$4 = re.Rune, x$5 = i + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) - 1 >> 0; lo = _tmp; hi = _tmp$1; escape(b, lo, lo === 45); if (!((lo === hi))) { b.WriteRune(45); escape(b, hi, hi === 45); } i = i + (2) >> 0; } } else { i$1 = 0; while (true) { if (!(i$1 < re.Rune.$length)) { break; } _tmp$2 = (x$6 = re.Rune, ((i$1 < 0 || i$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i$1])); _tmp$3 = (x$7 = re.Rune, x$8 = i$1 + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])); lo$1 = _tmp$2; hi$1 = _tmp$3; escape(b, lo$1, lo$1 === 45); if (!((lo$1 === hi$1))) { b.WriteRune(45); escape(b, hi$1, hi$1 === 45); } i$1 = i$1 + (2) >> 0; } } b.WriteRune(93); } else if (_1 === (5)) { b.WriteString("(?-s:.)"); } else if (_1 === (6)) { b.WriteString("(?s:.)"); } else if (_1 === (7)) { b.WriteString("(?m:^)"); } else if (_1 === (8)) { b.WriteString("(?m:$)"); } else if (_1 === (9)) { b.WriteString("\\A"); } else if (_1 === (10)) { if (!((((re.Flags & 256) >>> 0) === 0))) { b.WriteString("(?-m:$)"); } else { b.WriteString("\\z"); } } else if (_1 === (11)) { b.WriteString("\\b"); } else if (_1 === (12)) { b.WriteString("\\B"); } else if (_1 === (13)) { if (!(re.Name === "")) { b.WriteString("(?P<"); b.WriteString(re.Name); b.WriteRune(62); } else { b.WriteRune(40); } if (!(((x$9 = re.Sub, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0])).Op === 2))) { writeRegexp(b, (x$10 = re.Sub, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0]))); } b.WriteRune(41); } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16)) || (_1 === (17))) { sub = (x$11 = re.Sub, (0 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 0])); if (sub.Op > 13 || (sub.Op === 3) && sub.Rune.$length > 1) { b.WriteString("(?:"); writeRegexp(b, sub); b.WriteString(")"); } else { writeRegexp(b, sub); } _2 = re.Op; if (_2 === (14)) { b.WriteRune(42); } else if (_2 === (15)) { b.WriteRune(43); } else if (_2 === (16)) { b.WriteRune(63); } else if (_2 === (17)) { b.WriteRune(123); b.WriteString(strconv.Itoa(re.Min)); if (!((re.Max === re.Min))) { b.WriteRune(44); if (re.Max >= 0) { b.WriteString(strconv.Itoa(re.Max)); } } b.WriteRune(125); } if (!((((re.Flags & 32) >>> 0) === 0))) { b.WriteRune(63); } } else if (_1 === (18)) { _ref$1 = re.Sub; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); if (sub$1.Op === 19) { b.WriteString("(?:"); writeRegexp(b, sub$1); b.WriteString(")"); } else { writeRegexp(b, sub$1); } _i$1++; } } else if (_1 === (19)) { _ref$2 = re.Sub; _i$2 = 0; while (true) { if (!(_i$2 < _ref$2.$length)) { break; } i$2 = _i$2; sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); if (i$2 > 0) { b.WriteRune(124); } writeRegexp(b, sub$2); _i$2++; } } else { b.WriteString("> 0))) + ">"); } } }; Regexp.ptr.prototype.String = function() { var b, re; re = this; b = new bytes.Buffer.ptr(sliceType$6.nil, 0, 0, arrayType$2.zero()); writeRegexp(b, re); return b.String(); }; Regexp.prototype.String = function() { return this.$val.String(); }; escape = function(b, r, force) { var _1, b, force, r, s; if (unicode.IsPrint(r)) { if (strings.ContainsRune("\\.+*?()|[]{}^$", r) || force) { b.WriteRune(92); } b.WriteRune(r); return; } switch (0) { default: _1 = r; if (_1 === (7)) { b.WriteString("\\a"); } else if (_1 === (12)) { b.WriteString("\\f"); } else if (_1 === (10)) { b.WriteString("\\n"); } else if (_1 === (13)) { b.WriteString("\\r"); } else if (_1 === (9)) { b.WriteString("\\t"); } else if (_1 === (11)) { b.WriteString("\\v"); } else { if (r < 256) { b.WriteString("\\x"); s = strconv.FormatInt((new $Int64(0, r)), 16); if (s.length === 1) { b.WriteRune(48); } b.WriteString(s); break; } b.WriteString("\\x{"); b.WriteString(strconv.FormatInt((new $Int64(0, r)), 16)); b.WriteString("}"); } } }; Regexp.ptr.prototype.MaxCap = function() { var _i, _ref, m, n, re, sub; re = this; m = 0; if (re.Op === 13) { m = re.Cap; } _ref = re.Sub; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); n = sub.MaxCap(); if (m < n) { m = n; } _i++; } return m; }; Regexp.prototype.MaxCap = function() { return this.$val.MaxCap(); }; Regexp.ptr.prototype.CapNames = function() { var names, re; re = this; names = $makeSlice(sliceType$3, (re.MaxCap() + 1 >> 0)); re.capNames(names); return names; }; Regexp.prototype.CapNames = function() { return this.$val.CapNames(); }; Regexp.ptr.prototype.capNames = function(names) { var _i, _ref, names, re, sub, x; re = this; if (re.Op === 13) { (x = re.Cap, ((x < 0 || x >= names.$length) ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + x] = re.Name)); } _ref = re.Sub; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); sub.capNames(names); _i++; } }; Regexp.prototype.capNames = function(names) { return this.$val.capNames(names); }; Regexp.ptr.prototype.Simplify = function() { var _1, _i, _ref, i, i$1, i$2, i$3, nre, nre$1, nre2, nsub, prefix, re, sub, sub$1, sub$2, suffix, x, x$1; re = this; if (re === ptrType$1.nil) { return ptrType$1.nil; } _1 = re.Op; if ((_1 === (13)) || (_1 === (18)) || (_1 === (19))) { nre = re; _ref = re.Sub; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); nsub = sub.Simplify(); if (nre === re && !(nsub === sub)) { nre = new Regexp.ptr(0, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); Regexp.copy(nre, re); nre.Rune = sliceType.nil; nre.Sub = $appendSlice($subslice(new sliceType$5(nre.Sub0), 0, 0), $subslice(re.Sub, 0, i)); } if (!(nre === re)) { nre.Sub = $append(nre.Sub, nsub); } _i++; } return nre; } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) { sub$1 = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Simplify(); return simplify1(re.Op, re.Flags, sub$1, re); } else if (_1 === (17)) { if ((re.Min === 0) && (re.Max === 0)) { return new Regexp.ptr(2, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); } sub$2 = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Simplify(); if (re.Max === -1) { if (re.Min === 0) { return simplify1(14, re.Flags, sub$2, ptrType$1.nil); } if (re.Min === 1) { return simplify1(15, re.Flags, sub$2, ptrType$1.nil); } nre$1 = new Regexp.ptr(18, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); nre$1.Sub = $subslice(new sliceType$5(nre$1.Sub0), 0, 0); i$1 = 0; while (true) { if (!(i$1 < (re.Min - 1 >> 0))) { break; } nre$1.Sub = $append(nre$1.Sub, sub$2); i$1 = i$1 + (1) >> 0; } nre$1.Sub = $append(nre$1.Sub, simplify1(15, re.Flags, sub$2, ptrType$1.nil)); return nre$1; } if ((re.Min === 1) && (re.Max === 1)) { return sub$2; } prefix = ptrType$1.nil; if (re.Min > 0) { prefix = new Regexp.ptr(18, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); prefix.Sub = $subslice(new sliceType$5(prefix.Sub0), 0, 0); i$2 = 0; while (true) { if (!(i$2 < re.Min)) { break; } prefix.Sub = $append(prefix.Sub, sub$2); i$2 = i$2 + (1) >> 0; } } if (re.Max > re.Min) { suffix = simplify1(16, re.Flags, sub$2, ptrType$1.nil); i$3 = re.Min + 1 >> 0; while (true) { if (!(i$3 < re.Max)) { break; } nre2 = new Regexp.ptr(18, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); nre2.Sub = $append($subslice(new sliceType$5(nre2.Sub0), 0, 0), sub$2, suffix); suffix = simplify1(16, re.Flags, nre2, ptrType$1.nil); i$3 = i$3 + (1) >> 0; } if (prefix === ptrType$1.nil) { return suffix; } prefix.Sub = $append(prefix.Sub, suffix); } if (!(prefix === ptrType$1.nil)) { return prefix; } return new Regexp.ptr(1, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); } return re; }; Regexp.prototype.Simplify = function() { return this.$val.Simplify(); }; simplify1 = function(op, flags, sub, re) { var flags, op, re, sub, x; if (sub.Op === 2) { return sub; } if ((op === sub.Op) && (((flags & 32) >>> 0) === ((sub.Flags & 32) >>> 0))) { return sub; } if (!(re === ptrType$1.nil) && (re.Op === op) && (((re.Flags & 32) >>> 0) === ((flags & 32) >>> 0)) && sub === (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))) { return re; } re = new Regexp.ptr(op, flags, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); re.Sub = $append($subslice(new sliceType$5(re.Sub0), 0, 0), sub); return re; }; patchList.methods = [{prop: "next", name: "next", pkg: "regexp/syntax", typ: $funcType([ptrType], [patchList], false)}, {prop: "patch", name: "patch", pkg: "regexp/syntax", typ: $funcType([ptrType, $Uint32], [], false)}, {prop: "append", name: "append", pkg: "regexp/syntax", typ: $funcType([ptrType, patchList], [patchList], false)}]; ptrType$4.methods = [{prop: "init", name: "init", pkg: "regexp/syntax", typ: $funcType([], [], false)}, {prop: "compile", name: "compile", pkg: "regexp/syntax", typ: $funcType([ptrType$1], [frag], false)}, {prop: "inst", name: "inst", pkg: "regexp/syntax", typ: $funcType([InstOp], [frag], false)}, {prop: "nop", name: "nop", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "fail", name: "fail", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "cap", name: "cap", pkg: "regexp/syntax", typ: $funcType([$Uint32], [frag], false)}, {prop: "cat", name: "cat", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "alt", name: "alt", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "quest", name: "quest", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "star", name: "star", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "plus", name: "plus", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "empty", name: "empty", pkg: "regexp/syntax", typ: $funcType([EmptyOp], [frag], false)}, {prop: "rune", name: "rune", pkg: "regexp/syntax", typ: $funcType([sliceType, Flags], [frag], false)}]; ptrType$5.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; ErrorCode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$6.methods = [{prop: "newRegexp", name: "newRegexp", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType$1], false)}, {prop: "reuse", name: "reuse", pkg: "regexp/syntax", typ: $funcType([ptrType$1], [], false)}, {prop: "push", name: "push", pkg: "regexp/syntax", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "maybeConcat", name: "maybeConcat", pkg: "regexp/syntax", typ: $funcType([$Int32, Flags], [$Bool], false)}, {prop: "newLiteral", name: "newLiteral", pkg: "regexp/syntax", typ: $funcType([$Int32, Flags], [ptrType$1], false)}, {prop: "literal", name: "literal", pkg: "regexp/syntax", typ: $funcType([$Int32], [], false)}, {prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType$1], false)}, {prop: "repeat", name: "repeat", pkg: "regexp/syntax", typ: $funcType([Op, $Int, $Int, $String, $String, $String], [$String, $error], false)}, {prop: "concat", name: "concat", pkg: "regexp/syntax", typ: $funcType([], [ptrType$1], false)}, {prop: "alternate", name: "alternate", pkg: "regexp/syntax", typ: $funcType([], [ptrType$1], false)}, {prop: "collapse", name: "collapse", pkg: "regexp/syntax", typ: $funcType([sliceType$5, Op], [ptrType$1], false)}, {prop: "factor", name: "factor", pkg: "regexp/syntax", typ: $funcType([sliceType$5], [sliceType$5], false)}, {prop: "leadingString", name: "leadingString", pkg: "regexp/syntax", typ: $funcType([ptrType$1], [sliceType, Flags], false)}, {prop: "removeLeadingString", name: "removeLeadingString", pkg: "regexp/syntax", typ: $funcType([ptrType$1, $Int], [ptrType$1], false)}, {prop: "leadingRegexp", name: "leadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "removeLeadingRegexp", name: "removeLeadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType$1, $Bool], [ptrType$1], false)}, {prop: "parseRepeat", name: "parseRepeat", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $Int, $String, $Bool], false)}, {prop: "parsePerlFlags", name: "parsePerlFlags", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}, {prop: "parseInt", name: "parseInt", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $String, $Bool], false)}, {prop: "parseVerticalBar", name: "parseVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "swapVerticalBar", name: "swapVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$Bool], false)}, {prop: "parseRightParen", name: "parseRightParen", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "parseEscape", name: "parseEscape", pkg: "regexp/syntax", typ: $funcType([$String], [$Int32, $String, $error], false)}, {prop: "parseClassChar", name: "parseClassChar", pkg: "regexp/syntax", typ: $funcType([$String, $String], [$Int32, $String, $error], false)}, {prop: "parsePerlClassEscape", name: "parsePerlClassEscape", pkg: "regexp/syntax", typ: $funcType([$String, sliceType], [sliceType, $String], false)}, {prop: "parseNamedClass", name: "parseNamedClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType], [sliceType, $String, $error], false)}, {prop: "appendGroup", name: "appendGroup", pkg: "regexp/syntax", typ: $funcType([sliceType, charGroup], [sliceType], false)}, {prop: "parseUnicodeClass", name: "parseUnicodeClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType], [sliceType, $String, $error], false)}, {prop: "parseClass", name: "parseClass", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}]; ranges.methods = [{prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; ptrType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "skipNop", name: "skipNop", pkg: "regexp/syntax", typ: $funcType([$Uint32], [ptrType$7, $Uint32], false)}, {prop: "Prefix", name: "Prefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "StartCond", name: "StartCond", pkg: "", typ: $funcType([], [EmptyOp], false)}]; InstOp.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$7.methods = [{prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([], [InstOp], false)}, {prop: "MatchRune", name: "MatchRune", pkg: "", typ: $funcType([$Int32], [$Bool], false)}, {prop: "MatchRunePos", name: "MatchRunePos", pkg: "", typ: $funcType([$Int32], [$Int], false)}, {prop: "MatchEmptyWidth", name: "MatchEmptyWidth", pkg: "", typ: $funcType([$Int32, $Int32], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$1.methods = [{prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$1], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MaxCap", name: "MaxCap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "CapNames", name: "CapNames", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "capNames", name: "capNames", pkg: "regexp/syntax", typ: $funcType([sliceType$3], [], false)}, {prop: "Simplify", name: "Simplify", pkg: "", typ: $funcType([], [ptrType$1], false)}]; frag.init("regexp/syntax", [{prop: "i", name: "i", anonymous: false, exported: false, typ: $Uint32, tag: ""}, {prop: "out", name: "out", anonymous: false, exported: false, typ: patchList, tag: ""}]); compiler.init("regexp/syntax", [{prop: "p", name: "p", anonymous: false, exported: false, typ: ptrType, tag: ""}]); Error.init("", [{prop: "Code", name: "Code", anonymous: false, exported: true, typ: ErrorCode, tag: ""}, {prop: "Expr", name: "Expr", anonymous: false, exported: true, typ: $String, tag: ""}]); parser.init("regexp/syntax", [{prop: "flags", name: "flags", anonymous: false, exported: false, typ: Flags, tag: ""}, {prop: "stack", name: "stack", anonymous: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "free", name: "free", anonymous: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "numCap", name: "numCap", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "wholeRegexp", name: "wholeRegexp", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "tmpClass", name: "tmpClass", anonymous: false, exported: false, typ: sliceType, tag: ""}]); charGroup.init("regexp/syntax", [{prop: "sign", name: "sign", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "class$1", name: "class", anonymous: false, exported: false, typ: sliceType, tag: ""}]); ranges.init("regexp/syntax", [{prop: "p", name: "p", anonymous: false, exported: false, typ: ptrType$2, tag: ""}]); Prog.init("", [{prop: "Inst", name: "Inst", anonymous: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "Start", name: "Start", anonymous: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", anonymous: false, exported: true, typ: $Int, tag: ""}]); Inst.init("", [{prop: "Op", name: "Op", anonymous: false, exported: true, typ: InstOp, tag: ""}, {prop: "Out", name: "Out", anonymous: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Arg", name: "Arg", anonymous: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Rune", name: "Rune", anonymous: false, exported: true, typ: sliceType, tag: ""}]); Regexp.init("", [{prop: "Op", name: "Op", anonymous: false, exported: true, typ: Op, tag: ""}, {prop: "Flags", name: "Flags", anonymous: false, exported: true, typ: Flags, tag: ""}, {prop: "Sub", name: "Sub", anonymous: false, exported: true, typ: sliceType$5, tag: ""}, {prop: "Sub0", name: "Sub0", anonymous: false, exported: true, typ: arrayType, tag: ""}, {prop: "Rune", name: "Rune", anonymous: false, exported: true, typ: sliceType, tag: ""}, {prop: "Rune0", name: "Rune0", anonymous: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Min", name: "Min", anonymous: false, exported: true, typ: $Int, tag: ""}, {prop: "Max", name: "Max", anonymous: false, exported: true, typ: $Int, tag: ""}, {prop: "Cap", name: "Cap", anonymous: false, exported: true, typ: $Int, tag: ""}, {prop: "Name", name: "Name", anonymous: false, exported: true, typ: $String, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = sort.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strconv.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strings.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = unicode.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } anyRuneNotNL = new sliceType([0, 9, 11, 1114111]); anyRune = new sliceType([0, 1114111]); anyTable = new unicode.RangeTable.ptr(new sliceType$1([new unicode.Range16.ptr(0, 65535, 1)]), new sliceType$2([new unicode.Range32.ptr(65536, 1114111, 1)]), 0); code1 = new sliceType([48, 57]); code2 = new sliceType([9, 10, 12, 13, 32, 32]); code3 = new sliceType([48, 57, 65, 90, 95, 95, 97, 122]); perlGroup = $makeMap($String.keyFor, [{ k: "\\d", v: new charGroup.ptr(1, code1) }, { k: "\\D", v: new charGroup.ptr(-1, code1) }, { k: "\\s", v: new charGroup.ptr(1, code2) }, { k: "\\S", v: new charGroup.ptr(-1, code2) }, { k: "\\w", v: new charGroup.ptr(1, code3) }, { k: "\\W", v: new charGroup.ptr(-1, code3) }]); code4 = new sliceType([48, 57, 65, 90, 97, 122]); code5 = new sliceType([65, 90, 97, 122]); code6 = new sliceType([0, 127]); code7 = new sliceType([9, 9, 32, 32]); code8 = new sliceType([0, 31, 127, 127]); code9 = new sliceType([48, 57]); code10 = new sliceType([33, 126]); code11 = new sliceType([97, 122]); code12 = new sliceType([32, 126]); code13 = new sliceType([33, 47, 58, 64, 91, 96, 123, 126]); code14 = new sliceType([9, 13, 32, 32]); code15 = new sliceType([65, 90]); code16 = new sliceType([48, 57, 65, 90, 95, 95, 97, 122]); code17 = new sliceType([48, 57, 65, 70, 97, 102]); posixGroup = $makeMap($String.keyFor, [{ k: "[:alnum:]", v: new charGroup.ptr(1, code4) }, { k: "[:^alnum:]", v: new charGroup.ptr(-1, code4) }, { k: "[:alpha:]", v: new charGroup.ptr(1, code5) }, { k: "[:^alpha:]", v: new charGroup.ptr(-1, code5) }, { k: "[:ascii:]", v: new charGroup.ptr(1, code6) }, { k: "[:^ascii:]", v: new charGroup.ptr(-1, code6) }, { k: "[:blank:]", v: new charGroup.ptr(1, code7) }, { k: "[:^blank:]", v: new charGroup.ptr(-1, code7) }, { k: "[:cntrl:]", v: new charGroup.ptr(1, code8) }, { k: "[:^cntrl:]", v: new charGroup.ptr(-1, code8) }, { k: "[:digit:]", v: new charGroup.ptr(1, code9) }, { k: "[:^digit:]", v: new charGroup.ptr(-1, code9) }, { k: "[:graph:]", v: new charGroup.ptr(1, code10) }, { k: "[:^graph:]", v: new charGroup.ptr(-1, code10) }, { k: "[:lower:]", v: new charGroup.ptr(1, code11) }, { k: "[:^lower:]", v: new charGroup.ptr(-1, code11) }, { k: "[:print:]", v: new charGroup.ptr(1, code12) }, { k: "[:^print:]", v: new charGroup.ptr(-1, code12) }, { k: "[:punct:]", v: new charGroup.ptr(1, code13) }, { k: "[:^punct:]", v: new charGroup.ptr(-1, code13) }, { k: "[:space:]", v: new charGroup.ptr(1, code14) }, { k: "[:^space:]", v: new charGroup.ptr(-1, code14) }, { k: "[:upper:]", v: new charGroup.ptr(1, code15) }, { k: "[:^upper:]", v: new charGroup.ptr(-1, code15) }, { k: "[:word:]", v: new charGroup.ptr(1, code16) }, { k: "[:^word:]", v: new charGroup.ptr(-1, code16) }, { k: "[:xdigit:]", v: new charGroup.ptr(1, code17) }, { k: "[:^xdigit:]", v: new charGroup.ptr(-1, code17) }]); instOpNames = new sliceType$3(["InstAlt", "InstAltMatch", "InstCapture", "InstEmptyWidth", "InstMatch", "InstFail", "InstNop", "InstRune", "InstRune1", "InstRuneAny", "InstRuneAnyNotNL"]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["regexp"] = (function() { var $pkg = {}, $init, bytes, nosync, io, syntax, sort, strconv, strings, unicode, utf8, job, bitState, queue, entry, thread, machine, onePassProg, onePassInst, queueOnePass, runeSlice, Regexp, regexpRO, input, inputString, inputBytes, inputReader, arrayType, arrayType$1, ptrType, sliceType, sliceType$1, ptrType$1, ptrType$2, sliceType$2, sliceType$3, ptrType$3, sliceType$4, ptrType$4, sliceType$5, sliceType$6, ptrType$5, ptrType$6, arrayType$2, ptrType$7, sliceType$7, ptrType$8, sliceType$8, ptrType$9, sliceType$9, sliceType$10, ptrType$10, sliceType$11, arrayType$3, arrayType$4, sliceType$12, sliceType$13, sliceType$14, sliceType$15, ptrType$11, funcType, funcType$1, funcType$2, funcType$3, ptrType$12, ptrType$13, ptrType$14, notBacktrack, arrayNoInts, noRune, noNext, anyRuneNotNL, anyRune, notOnePass, specialBytes, maxBitStateLen, newBitState, shouldBacktrack, progMachine, onePassPrefix, onePassNext, iop, newQueue, mergeRuneSets, cleanupOnePass, onePassCopy, makeOnePass, compileOnePass, Compile, compile, MustCompile, quote, MatchString, init, extract; bytes = $packages["bytes"]; nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; io = $packages["io"]; syntax = $packages["regexp/syntax"]; sort = $packages["sort"]; strconv = $packages["strconv"]; strings = $packages["strings"]; unicode = $packages["unicode"]; utf8 = $packages["unicode/utf8"]; job = $pkg.job = $newType(0, $kindStruct, "regexp.job", true, "regexp", false, function(pc_, arg_, pos_) { this.$val = this; if (arguments.length === 0) { this.pc = 0; this.arg = 0; this.pos = 0; return; } this.pc = pc_; this.arg = arg_; this.pos = pos_; }); bitState = $pkg.bitState = $newType(0, $kindStruct, "regexp.bitState", true, "regexp", false, function(prog_, end_, cap_, jobs_, visited_) { this.$val = this; if (arguments.length === 0) { this.prog = ptrType$2.nil; this.end = 0; this.cap = sliceType$2.nil; this.jobs = sliceType$3.nil; this.visited = sliceType$1.nil; return; } this.prog = prog_; this.end = end_; this.cap = cap_; this.jobs = jobs_; this.visited = visited_; }); queue = $pkg.queue = $newType(0, $kindStruct, "regexp.queue", true, "regexp", false, function(sparse_, dense_) { this.$val = this; if (arguments.length === 0) { this.sparse = sliceType$1.nil; this.dense = sliceType$4.nil; return; } this.sparse = sparse_; this.dense = dense_; }); entry = $pkg.entry = $newType(0, $kindStruct, "regexp.entry", true, "regexp", false, function(pc_, t_) { this.$val = this; if (arguments.length === 0) { this.pc = 0; this.t = ptrType$4.nil; return; } this.pc = pc_; this.t = t_; }); thread = $pkg.thread = $newType(0, $kindStruct, "regexp.thread", true, "regexp", false, function(inst_, cap_) { this.$val = this; if (arguments.length === 0) { this.inst = ptrType$5.nil; this.cap = sliceType$2.nil; return; } this.inst = inst_; this.cap = cap_; }); machine = $pkg.machine = $newType(0, $kindStruct, "regexp.machine", true, "regexp", false, function(re_, p_, op_, maxBitStateLen_, b_, q0_, q1_, pool_, matched_, matchcap_, inputBytes_, inputString_, inputReader_) { this.$val = this; if (arguments.length === 0) { this.re = ptrType$3.nil; this.p = ptrType$2.nil; this.op = ptrType$1.nil; this.maxBitStateLen = 0; this.b = ptrType.nil; this.q0 = new queue.ptr(sliceType$1.nil, sliceType$4.nil); this.q1 = new queue.ptr(sliceType$1.nil, sliceType$4.nil); this.pool = sliceType$5.nil; this.matched = false; this.matchcap = sliceType$2.nil; this.inputBytes = new inputBytes.ptr(sliceType$6.nil); this.inputString = new inputString.ptr(""); this.inputReader = new inputReader.ptr($ifaceNil, false, 0); return; } this.re = re_; this.p = p_; this.op = op_; this.maxBitStateLen = maxBitStateLen_; this.b = b_; this.q0 = q0_; this.q1 = q1_; this.pool = pool_; this.matched = matched_; this.matchcap = matchcap_; this.inputBytes = inputBytes_; this.inputString = inputString_; this.inputReader = inputReader_; }); onePassProg = $pkg.onePassProg = $newType(0, $kindStruct, "regexp.onePassProg", true, "regexp", false, function(Inst_, Start_, NumCap_) { this.$val = this; if (arguments.length === 0) { this.Inst = sliceType$7.nil; this.Start = 0; this.NumCap = 0; return; } this.Inst = Inst_; this.Start = Start_; this.NumCap = NumCap_; }); onePassInst = $pkg.onePassInst = $newType(0, $kindStruct, "regexp.onePassInst", true, "regexp", false, function(Inst_, Next_) { this.$val = this; if (arguments.length === 0) { this.Inst = new syntax.Inst.ptr(0, 0, 0, sliceType.nil); this.Next = sliceType$1.nil; return; } this.Inst = Inst_; this.Next = Next_; }); queueOnePass = $pkg.queueOnePass = $newType(0, $kindStruct, "regexp.queueOnePass", true, "regexp", false, function(sparse_, dense_, size_, nextIndex_) { this.$val = this; if (arguments.length === 0) { this.sparse = sliceType$1.nil; this.dense = sliceType$1.nil; this.size = 0; this.nextIndex = 0; return; } this.sparse = sparse_; this.dense = dense_; this.size = size_; this.nextIndex = nextIndex_; }); runeSlice = $pkg.runeSlice = $newType(12, $kindSlice, "regexp.runeSlice", true, "regexp", false, null); Regexp = $pkg.Regexp = $newType(0, $kindStruct, "regexp.Regexp", true, "regexp", true, function(regexpRO_, mu_, machine_) { this.$val = this; if (arguments.length === 0) { this.regexpRO = new regexpRO.ptr("", ptrType$2.nil, ptrType$1.nil, "", sliceType$6.nil, false, 0, 0, 0, 0, sliceType$10.nil, false); this.mu = new nosync.Mutex.ptr(false); this.machine = sliceType$11.nil; return; } this.regexpRO = regexpRO_; this.mu = mu_; this.machine = machine_; }); regexpRO = $pkg.regexpRO = $newType(0, $kindStruct, "regexp.regexpRO", true, "regexp", false, function(expr_, prog_, onepass_, prefix_, prefixBytes_, prefixComplete_, prefixRune_, prefixEnd_, cond_, numSubexp_, subexpNames_, longest_) { this.$val = this; if (arguments.length === 0) { this.expr = ""; this.prog = ptrType$2.nil; this.onepass = ptrType$1.nil; this.prefix = ""; this.prefixBytes = sliceType$6.nil; this.prefixComplete = false; this.prefixRune = 0; this.prefixEnd = 0; this.cond = 0; this.numSubexp = 0; this.subexpNames = sliceType$10.nil; this.longest = false; return; } this.expr = expr_; this.prog = prog_; this.onepass = onepass_; this.prefix = prefix_; this.prefixBytes = prefixBytes_; this.prefixComplete = prefixComplete_; this.prefixRune = prefixRune_; this.prefixEnd = prefixEnd_; this.cond = cond_; this.numSubexp = numSubexp_; this.subexpNames = subexpNames_; this.longest = longest_; }); input = $pkg.input = $newType(8, $kindInterface, "regexp.input", true, "regexp", false, null); inputString = $pkg.inputString = $newType(0, $kindStruct, "regexp.inputString", true, "regexp", false, function(str_) { this.$val = this; if (arguments.length === 0) { this.str = ""; return; } this.str = str_; }); inputBytes = $pkg.inputBytes = $newType(0, $kindStruct, "regexp.inputBytes", true, "regexp", false, function(str_) { this.$val = this; if (arguments.length === 0) { this.str = sliceType$6.nil; return; } this.str = str_; }); inputReader = $pkg.inputReader = $newType(0, $kindStruct, "regexp.inputReader", true, "regexp", false, function(r_, atEOT_, pos_) { this.$val = this; if (arguments.length === 0) { this.r = $ifaceNil; this.atEOT = false; this.pos = 0; return; } this.r = r_; this.atEOT = atEOT_; this.pos = pos_; }); arrayType = $arrayType($Int, 0); arrayType$1 = $arrayType($Uint8, 16); ptrType = $ptrType(bitState); sliceType = $sliceType($Int32); sliceType$1 = $sliceType($Uint32); ptrType$1 = $ptrType(onePassProg); ptrType$2 = $ptrType(syntax.Prog); sliceType$2 = $sliceType($Int); sliceType$3 = $sliceType(job); ptrType$3 = $ptrType(Regexp); sliceType$4 = $sliceType(entry); ptrType$4 = $ptrType(thread); sliceType$5 = $sliceType(ptrType$4); sliceType$6 = $sliceType($Uint8); ptrType$5 = $ptrType(syntax.Inst); ptrType$6 = $ptrType($Int); arrayType$2 = $arrayType($Uint8, 64); ptrType$7 = $ptrType(queueOnePass); sliceType$7 = $sliceType(onePassInst); ptrType$8 = $ptrType($Uint32); sliceType$8 = $sliceType(sliceType); ptrType$9 = $ptrType(sliceType); sliceType$9 = $sliceType($Bool); sliceType$10 = $sliceType($String); ptrType$10 = $ptrType(machine); sliceType$11 = $sliceType(ptrType$10); arrayType$3 = $arrayType($Int, 2); arrayType$4 = $arrayType($Int, 4); sliceType$12 = $sliceType(sliceType$6); sliceType$13 = $sliceType(sliceType$2); sliceType$14 = $sliceType(sliceType$12); sliceType$15 = $sliceType(sliceType$10); ptrType$11 = $ptrType(queue); funcType = $funcType([$String], [$String], false); funcType$1 = $funcType([sliceType$6, sliceType$2], [sliceType$6], false); funcType$2 = $funcType([sliceType$6], [sliceType$6], false); funcType$3 = $funcType([sliceType$2], [], false); ptrType$12 = $ptrType(inputString); ptrType$13 = $ptrType(inputBytes); ptrType$14 = $ptrType(inputReader); maxBitStateLen = function(prog) { var _q, prog; if (!shouldBacktrack(prog)) { return 0; } return (_q = 262144 / prog.Inst.$length, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); }; newBitState = function(prog) { var prog; if (!shouldBacktrack(prog)) { return notBacktrack; } return new bitState.ptr(prog, 0, sliceType$2.nil, sliceType$3.nil, sliceType$1.nil); }; shouldBacktrack = function(prog) { var prog; return prog.Inst.$length <= 500; }; bitState.ptr.prototype.reset = function(end, ncap) { var _i, _i$1, _q, _ref, _ref$1, b, end, i, i$1, ncap, visitedSize, x, x$1; b = this; b.end = end; if (b.jobs.$capacity === 0) { b.jobs = $makeSlice(sliceType$3, 0, 256); } else { b.jobs = $subslice(b.jobs, 0, 0); } visitedSize = (_q = (((($imul(b.prog.Inst.$length, ((end + 1 >> 0)))) + 32 >> 0) - 1 >> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); if (b.visited.$capacity < visitedSize) { b.visited = $makeSlice(sliceType$1, visitedSize, 8192); } else { b.visited = $subslice(b.visited, 0, visitedSize); _ref = b.visited; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; (x = b.visited, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0)); _i++; } } if (b.cap.$capacity < ncap) { b.cap = $makeSlice(sliceType$2, ncap); } else { b.cap = $subslice(b.cap, 0, ncap); } _ref$1 = b.cap; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } i$1 = _i$1; (x$1 = b.cap, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1] = -1)); _i$1++; } }; bitState.prototype.reset = function(end, ncap) { return this.$val.reset(end, ncap); }; bitState.ptr.prototype.shouldVisit = function(pc, pos) { var _index, _q, _q$1, b, n, pc, pos, x, x$1, x$2, x$3, y, y$1; b = this; n = (((($imul(((pc >> 0)), ((b.end + 1 >> 0)))) + pos >> 0) >>> 0)); if (!(((((x = b.visited, x$1 = (_q = n / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) & (((y = (((n & 31) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { return false; } _index = (_q$1 = n / 32, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); (x$3 = b.visited, ((_index < 0 || _index >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + _index] = (((x$2 = b.visited, ((_index < 0 || _index >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + _index])) | (((y$1 = (((n & 31) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0))); return true; }; bitState.prototype.shouldVisit = function(pc, pos) { return this.$val.shouldVisit(pc, pos); }; bitState.ptr.prototype.push = function(pc, pos, arg) { var arg, b, pc, pos, x; b = this; if ((x = b.prog.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])).Op === 5) { return; } if ((arg === 0) && !b.shouldVisit(pc, pos)) { return; } b.jobs = $append(b.jobs, new job.ptr(pc, arg, pos)); }; bitState.prototype.push = function(pc, pos, arg) { return this.$val.push(pc, pos, arg); }; machine.ptr.prototype.tryBacktrack = function(b, i, pc, pos) { var _1, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _tuple$3, arg, b, i, inst, l, longest, m, pc, pc$1, pos, pos$1, r, r$1, r$2, r$3, width, width$1, width$2, width$3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; arg = $f.arg; b = $f.b; i = $f.i; inst = $f.inst; l = $f.l; longest = $f.longest; m = $f.m; pc = $f.pc; pc$1 = $f.pc$1; pos = $f.pos; pos$1 = $f.pos$1; r = $f.r; r$1 = $f.r$1; r$2 = $f.r$2; r$3 = $f.r$3; width = $f.width; width$1 = $f.width$1; width$2 = $f.width$2; width$3 = $f.width$3; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: m = this; longest = m.re.regexpRO.longest; m.matched = false; b.push(pc, pos, 0); /* while (true) { */ case 1: /* if (!(b.jobs.$length > 0)) { break; } */ if(!(b.jobs.$length > 0)) { $s = 2; continue; } l = b.jobs.$length - 1 >> 0; pc$1 = (x = b.jobs, ((l < 0 || l >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + l])).pc; pos$1 = (x$1 = b.jobs, ((l < 0 || l >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + l])).pos; arg = (x$2 = b.jobs, ((l < 0 || l >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + l])).arg; b.jobs = $subslice(b.jobs, 0, l); /* goto Skip */ $s = 3; continue; /* CheckAndLoop: */ case 4: if (!b.shouldVisit(pc$1, pos$1)) { /* continue; */ $s = 1; continue; } /* Skip: */ case 3: inst = $clone((x$3 = b.prog.Inst, ((pc$1 < 0 || pc$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc$1])), syntax.Inst); _1 = inst.Op; /* */ if (_1 === (5)) { $s = 6; continue; } /* */ if (_1 === (0)) { $s = 7; continue; } /* */ if (_1 === (1)) { $s = 8; continue; } /* */ if (_1 === (7)) { $s = 9; continue; } /* */ if (_1 === (8)) { $s = 10; continue; } /* */ if (_1 === (10)) { $s = 11; continue; } /* */ if (_1 === (9)) { $s = 12; continue; } /* */ if (_1 === (2)) { $s = 13; continue; } /* */ if (_1 === (3)) { $s = 14; continue; } /* */ if (_1 === (6)) { $s = 15; continue; } /* */ if (_1 === (4)) { $s = 16; continue; } /* */ $s = 17; continue; /* if (_1 === (5)) { */ case 6: $panic(new $String("unexpected InstFail")); $s = 18; continue; /* } else if (_1 === (0)) { */ case 7: _2 = arg; /* */ if (_2 === (0)) { $s = 20; continue; } /* */ if (_2 === (1)) { $s = 21; continue; } /* */ $s = 22; continue; /* if (_2 === (0)) { */ case 20: b.push(pc$1, pos$1, 1); pc$1 = inst.Out; /* goto CheckAndLoop */ $s = 4; continue; $s = 22; continue; /* } else if (_2 === (1)) { */ case 21: arg = 0; pc$1 = inst.Arg; /* goto CheckAndLoop */ $s = 4; continue; /* } */ case 22: case 19: $panic(new $String("bad arg in InstAlt")); $s = 18; continue; /* } else if (_1 === (1)) { */ case 8: _3 = (x$4 = b.prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op; /* */ if ((_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10))) { $s = 24; continue; } /* */ $s = 25; continue; /* if ((_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10))) { */ case 24: b.push(inst.Arg, pos$1, 0); pc$1 = inst.Arg; pos$1 = b.end; /* goto CheckAndLoop */ $s = 4; continue; /* } */ case 25: case 23: b.push(inst.Out, b.end, 0); pc$1 = inst.Out; /* goto CheckAndLoop */ $s = 4; continue; $s = 18; continue; /* } else if (_1 === (7)) { */ case 9: _r = i.step(pos$1); /* */ $s = 26; case 26: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; r = _tuple[0]; width = _tuple[1]; /* */ if (!inst.MatchRune(r)) { $s = 27; continue; } /* */ $s = 28; continue; /* if (!inst.MatchRune(r)) { */ case 27: /* continue; */ $s = 1; continue; /* } */ case 28: pos$1 = pos$1 + (width) >> 0; pc$1 = inst.Out; /* goto CheckAndLoop */ $s = 4; continue; $s = 18; continue; /* } else if (_1 === (8)) { */ case 10: _r$1 = i.step(pos$1); /* */ $s = 29; case 29: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; r$1 = _tuple$1[0]; width$1 = _tuple$1[1]; /* */ if (!((r$1 === (x$6 = inst.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))))) { $s = 30; continue; } /* */ $s = 31; continue; /* if (!((r$1 === (x$6 = inst.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))))) { */ case 30: /* continue; */ $s = 1; continue; /* } */ case 31: pos$1 = pos$1 + (width$1) >> 0; pc$1 = inst.Out; /* goto CheckAndLoop */ $s = 4; continue; $s = 18; continue; /* } else if (_1 === (10)) { */ case 11: _r$2 = i.step(pos$1); /* */ $s = 32; case 32: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$2 = _r$2; r$2 = _tuple$2[0]; width$2 = _tuple$2[1]; /* */ if ((r$2 === 10) || (r$2 === -1)) { $s = 33; continue; } /* */ $s = 34; continue; /* if ((r$2 === 10) || (r$2 === -1)) { */ case 33: /* continue; */ $s = 1; continue; /* } */ case 34: pos$1 = pos$1 + (width$2) >> 0; pc$1 = inst.Out; /* goto CheckAndLoop */ $s = 4; continue; $s = 18; continue; /* } else if (_1 === (9)) { */ case 12: _r$3 = i.step(pos$1); /* */ $s = 35; case 35: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$3 = _r$3; r$3 = _tuple$3[0]; width$3 = _tuple$3[1]; /* */ if (r$3 === -1) { $s = 36; continue; } /* */ $s = 37; continue; /* if (r$3 === -1) { */ case 36: /* continue; */ $s = 1; continue; /* } */ case 37: pos$1 = pos$1 + (width$3) >> 0; pc$1 = inst.Out; /* goto CheckAndLoop */ $s = 4; continue; $s = 18; continue; /* } else if (_1 === (2)) { */ case 13: _4 = arg; /* */ if (_4 === (0)) { $s = 39; continue; } /* */ if (_4 === (1)) { $s = 40; continue; } /* */ $s = 41; continue; /* if (_4 === (0)) { */ case 39: if (0 <= inst.Arg && inst.Arg < ((b.cap.$length >>> 0))) { b.push(pc$1, (x$7 = b.cap, x$8 = inst.Arg, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])), 1); (x$9 = b.cap, x$10 = inst.Arg, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10] = pos$1)); } pc$1 = inst.Out; /* goto CheckAndLoop */ $s = 4; continue; $s = 41; continue; /* } else if (_4 === (1)) { */ case 40: (x$11 = b.cap, x$12 = inst.Arg, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = pos$1)); /* continue; */ $s = 1; continue; /* } */ case 41: case 38: $panic(new $String("bad arg in InstCapture")); $s = 18; continue; /* } else if (_1 === (3)) { */ case 14: _r$4 = i.context(pos$1); /* */ $s = 44; case 44: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } /* */ if (!((((((inst.Arg << 24 >>> 24)) & ~_r$4) << 24 >>> 24) === 0))) { $s = 42; continue; } /* */ $s = 43; continue; /* if (!((((((inst.Arg << 24 >>> 24)) & ~_r$4) << 24 >>> 24) === 0))) { */ case 42: /* continue; */ $s = 1; continue; /* } */ case 43: pc$1 = inst.Out; /* goto CheckAndLoop */ $s = 4; continue; $s = 18; continue; /* } else if (_1 === (6)) { */ case 15: pc$1 = inst.Out; /* goto CheckAndLoop */ $s = 4; continue; $s = 18; continue; /* } else if (_1 === (4)) { */ case 16: if (b.cap.$length === 0) { m.matched = true; $s = -1; return m.matched; } if (b.cap.$length > 1) { (x$13 = b.cap, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1] = pos$1)); } if (!m.matched || (longest && pos$1 > 0 && pos$1 > (x$14 = m.matchcap, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1])))) { $copySlice(m.matchcap, b.cap); } m.matched = true; if (!longest) { $s = -1; return m.matched; } if (pos$1 === b.end) { $s = -1; return m.matched; } /* continue; */ $s = 1; continue; $s = 18; continue; /* } else { */ case 17: $panic(new $String("bad inst")); /* } */ case 18: case 5: /* } */ $s = 1; continue; case 2: $s = -1; return m.matched; /* */ } return; } if ($f === undefined) { $f = { $blk: machine.ptr.prototype.tryBacktrack }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.arg = arg; $f.b = b; $f.i = i; $f.inst = inst; $f.l = l; $f.longest = longest; $f.m = m; $f.pc = pc; $f.pc$1 = pc$1; $f.pos = pos; $f.pos$1 = pos$1; $f.r = r; $f.r$1 = r$1; $f.r$2 = r$2; $f.r$3 = r$3; $f.width = width; $f.width$1 = width$1; $f.width$2 = width$2; $f.width$3 = width$3; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; }; machine.prototype.tryBacktrack = function(b, i, pc, pos) { return this.$val.tryBacktrack(b, i, pc, pos); }; machine.ptr.prototype.backtrack = function(i, pos, end, ncap) { var _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, advance, b, end, i, i$1, m, ncap, pos, startCond, width, x, x$1, x$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; _tuple = $f._tuple; advance = $f.advance; b = $f.b; end = $f.end; i = $f.i; i$1 = $f.i$1; m = $f.m; ncap = $f.ncap; pos = $f.pos; startCond = $f.startCond; width = $f.width; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: m = this; _r = i.canCheckPrefix(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!_r) { */ case 1: $panic(new $String("backtrack called for a RuneReader")); /* } */ case 2: startCond = m.re.regexpRO.cond; if (startCond === 255) { $s = -1; return false; } if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) { $s = -1; return false; } b = m.b; b.reset(end, ncap); m.matchcap = $subslice(m.matchcap, 0, ncap); _ref = m.matchcap; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i$1 = _i; (x = m.matchcap, ((i$1 < 0 || i$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$1] = -1)); _i++; } /* */ if (!((((startCond & 4) >>> 0) === 0))) { $s = 4; continue; } /* */ $s = 5; continue; /* if (!((((startCond & 4) >>> 0) === 0))) { */ case 4: if (b.cap.$length > 0) { (x$1 = b.cap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos)); } _r$1 = m.tryBacktrack(b, i, ((m.p.Start >>> 0)), pos); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 5: width = -1; /* while (true) { */ case 7: /* if (!(pos <= end && !((width === 0)))) { break; } */ if(!(pos <= end && !((width === 0)))) { $s = 8; continue; } /* */ if (m.re.regexpRO.prefix.length > 0) { $s = 9; continue; } /* */ $s = 10; continue; /* if (m.re.regexpRO.prefix.length > 0) { */ case 9: _r$2 = i.index(m.re, pos); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } advance = _r$2; if (advance < 0) { $s = -1; return false; } pos = pos + (advance) >> 0; /* } */ case 10: if (b.cap.$length > 0) { (x$2 = b.cap, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = pos)); } _r$3 = m.tryBacktrack(b, i, ((m.p.Start >>> 0)), pos); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3) { $s = 12; continue; } /* */ $s = 13; continue; /* if (_r$3) { */ case 12: $s = -1; return true; /* } */ case 13: _r$4 = i.step(pos); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple = _r$4; width = _tuple[1]; pos = pos + (width) >> 0; /* } */ $s = 7; continue; case 8: $s = -1; return false; /* */ } return; } if ($f === undefined) { $f = { $blk: machine.ptr.prototype.backtrack }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f._tuple = _tuple; $f.advance = advance; $f.b = b; $f.end = end; $f.i = i; $f.i$1 = i$1; $f.m = m; $f.ncap = ncap; $f.pos = pos; $f.startCond = startCond; $f.width = width; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; }; machine.prototype.backtrack = function(i, pos, end, ncap) { return this.$val.backtrack(i, pos, end, ncap); }; machine.ptr.prototype.newInputBytes = function(b) { var b, m; m = this; m.inputBytes.str = b; return m.inputBytes; }; machine.prototype.newInputBytes = function(b) { return this.$val.newInputBytes(b); }; machine.ptr.prototype.newInputString = function(s) { var m, s; m = this; m.inputString.str = s; return m.inputString; }; machine.prototype.newInputString = function(s) { return this.$val.newInputString(s); }; machine.ptr.prototype.newInputReader = function(r) { var m, r; m = this; m.inputReader.r = r; m.inputReader.atEOT = false; m.inputReader.pos = 0; return m.inputReader; }; machine.prototype.newInputReader = function(r) { return this.$val.newInputReader(r); }; progMachine = function(p, op) { var m, n, ncap, op, p; m = new machine.ptr(ptrType$3.nil, p, op, 0, ptrType.nil, new queue.ptr(sliceType$1.nil, sliceType$4.nil), new queue.ptr(sliceType$1.nil, sliceType$4.nil), sliceType$5.nil, false, sliceType$2.nil, new inputBytes.ptr(sliceType$6.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); n = m.p.Inst.$length; queue.copy(m.q0, new queue.ptr($makeSlice(sliceType$1, n), $makeSlice(sliceType$4, 0, n))); queue.copy(m.q1, new queue.ptr($makeSlice(sliceType$1, n), $makeSlice(sliceType$4, 0, n))); ncap = p.NumCap; if (ncap < 2) { ncap = 2; } if (op === notOnePass) { m.maxBitStateLen = maxBitStateLen(p); } m.matchcap = $makeSlice(sliceType$2, ncap); return m; }; machine.ptr.prototype.init = function(ncap) { var _i, _ref, m, ncap, t; m = this; _ref = m.pool; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); t.cap = $subslice(t.cap, 0, ncap); _i++; } m.matchcap = $subslice(m.matchcap, 0, ncap); }; machine.prototype.init = function(ncap) { return this.$val.init(ncap); }; machine.ptr.prototype.alloc = function(i) { var i, m, n, t, x, x$1; m = this; t = ptrType$4.nil; n = m.pool.$length; if (n > 0) { t = (x = m.pool, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); m.pool = $subslice(m.pool, 0, (n - 1 >> 0)); } else { t = new thread.ptr(ptrType$5.nil, sliceType$2.nil); t.cap = $makeSlice(sliceType$2, m.matchcap.$length, m.matchcap.$capacity); } t.inst = i; return t; }; machine.prototype.alloc = function(i) { return this.$val.alloc(i); }; machine.ptr.prototype.match = function(i, pos) { var _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, advance, flag, i, i$1, m, nextq, pos, r, r1, runq, startCond, width, width1, x, x$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _v = $f._v; advance = $f.advance; flag = $f.flag; i = $f.i; i$1 = $f.i$1; m = $f.m; nextq = $f.nextq; pos = $f.pos; r = $f.r; r1 = $f.r1; runq = $f.runq; startCond = $f.startCond; width = $f.width; width1 = $f.width1; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: m = this; startCond = m.re.regexpRO.cond; if (startCond === 255) { $s = -1; return false; } m.matched = false; _ref = m.matchcap; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i$1 = _i; (x = m.matchcap, ((i$1 < 0 || i$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$1] = -1)); _i++; } _tmp = m.q0; _tmp$1 = m.q1; runq = _tmp; nextq = _tmp$1; _tmp$2 = -1; _tmp$3 = -1; r = _tmp$2; r1 = _tmp$3; _tmp$4 = 0; _tmp$5 = 0; width = _tmp$4; width1 = _tmp$5; _r = i.step(pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; r = _tuple[0]; width = _tuple[1]; /* */ if (!((r === -1))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!((r === -1))) { */ case 2: _r$1 = i.step(pos + width >> 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; r1 = _tuple$1[0]; width1 = _tuple$1[1]; /* } */ case 3: flag = 0; /* */ if (pos === 0) { $s = 5; continue; } /* */ $s = 6; continue; /* if (pos === 0) { */ case 5: flag = syntax.EmptyOpContext(-1, r); $s = 7; continue; /* } else { */ case 6: _r$2 = i.context(pos); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } flag = _r$2; /* } */ case 7: /* while (true) { */ case 9: /* */ if (runq.dense.$length === 0) { $s = 11; continue; } /* */ $s = 12; continue; /* if (runq.dense.$length === 0) { */ case 11: if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) { /* break; */ $s = 10; continue; } if (m.matched) { /* break; */ $s = 10; continue; } if (!(m.re.regexpRO.prefix.length > 0 && !((r1 === m.re.regexpRO.prefixRune)))) { _v = false; $s = 15; continue s; } _r$3 = i.canCheckPrefix(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _v = _r$3; case 15: /* */ if (_v) { $s = 13; continue; } /* */ $s = 14; continue; /* if (_v) { */ case 13: _r$4 = i.index(m.re, pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } advance = _r$4; if (advance < 0) { /* break; */ $s = 10; continue; } pos = pos + (advance) >> 0; _r$5 = i.step(pos); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$2 = _r$5; r = _tuple$2[0]; width = _tuple$2[1]; _r$6 = i.step(pos + width >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _tuple$3 = _r$6; r1 = _tuple$3[0]; width1 = _tuple$3[1]; /* } */ case 14: /* } */ case 12: if (!m.matched) { if (m.matchcap.$length > 0) { (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos)); } m.add(runq, ((m.p.Start >>> 0)), pos, m.matchcap, flag, ptrType$4.nil); } flag = syntax.EmptyOpContext(r, r1); m.step(runq, nextq, pos, pos + width >> 0, r, flag); if (width === 0) { /* break; */ $s = 10; continue; } if ((m.matchcap.$length === 0) && m.matched) { /* break; */ $s = 10; continue; } pos = pos + (width) >> 0; _tmp$6 = r1; _tmp$7 = width1; r = _tmp$6; width = _tmp$7; /* */ if (!((r === -1))) { $s = 20; continue; } /* */ $s = 21; continue; /* if (!((r === -1))) { */ case 20: _r$7 = i.step(pos + width >> 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple$4 = _r$7; r1 = _tuple$4[0]; width1 = _tuple$4[1]; /* } */ case 21: _tmp$8 = nextq; _tmp$9 = runq; runq = _tmp$8; nextq = _tmp$9; /* } */ $s = 9; continue; case 10: m.clear(nextq); $s = -1; return m.matched; /* */ } return; } if ($f === undefined) { $f = { $blk: machine.ptr.prototype.match }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._v = _v; $f.advance = advance; $f.flag = flag; $f.i = i; $f.i$1 = i$1; $f.m = m; $f.nextq = nextq; $f.pos = pos; $f.r = r; $f.r1 = r1; $f.runq = runq; $f.startCond = startCond; $f.width = width; $f.width1 = width1; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; }; machine.prototype.match = function(i, pos) { return this.$val.match(i, pos); }; machine.ptr.prototype.clear = function(q) { var _i, _ref, d, m, q; m = this; _ref = q.dense; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } d = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry); if (!(d.t === ptrType$4.nil)) { m.pool = $append(m.pool, d.t); } _i++; } q.dense = $subslice(q.dense, 0, 0); }; machine.prototype.clear = function(q) { return this.$val.clear(q); }; machine.ptr.prototype.step = function(runq, nextq, pos, nextPos, c, nextCond) { var _1, _i, _ref, add, c, d, d$1, i, j, longest, m, nextCond, nextPos, nextq, pos, runq, t, x, x$1, x$2, x$3, x$4, x$5; m = this; longest = m.re.regexpRO.longest; j = 0; while (true) { if (!(j < runq.dense.$length)) { break; } d = (x = runq.dense, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); t = d.t; if (t === ptrType$4.nil) { j = j + (1) >> 0; continue; } if (longest && m.matched && t.cap.$length > 0 && (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) < (x$2 = t.cap, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) { m.pool = $append(m.pool, t); j = j + (1) >> 0; continue; } i = t.inst; add = false; _1 = i.Op; if (_1 === (4)) { if (t.cap.$length > 0 && (!longest || !m.matched || (x$3 = m.matchcap, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) < pos)) { (x$4 = t.cap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos)); $copySlice(m.matchcap, t.cap); } if (!longest) { _ref = $subslice(runq.dense, (j + 1 >> 0)); _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } d$1 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry); if (!(d$1.t === ptrType$4.nil)) { m.pool = $append(m.pool, d$1.t); } _i++; } runq.dense = $subslice(runq.dense, 0, 0); } m.matched = true; } else if (_1 === (7)) { add = i.MatchRune(c); } else if (_1 === (8)) { add = c === (x$5 = i.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])); } else if (_1 === (9)) { add = true; } else if (_1 === (10)) { add = !((c === 10)); } else { $panic(new $String("bad inst")); } if (add) { t = m.add(nextq, i.Out, nextPos, t.cap, nextCond, t); } if (!(t === ptrType$4.nil)) { m.pool = $append(m.pool, t); } j = j + (1) >> 0; } runq.dense = $subslice(runq.dense, 0, 0); }; machine.prototype.step = function(runq, nextq, pos, nextPos, c, nextCond) { return this.$val.step(runq, nextq, pos, nextPos, c, nextCond); }; machine.ptr.prototype.add = function(q, pc, pos, cap, cond, t) { var _1, cap, cond, d, i, j, j$1, m, opos, pc, pos, q, t, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; m = this; if (pc === 0) { return t; } j = (x = q.sparse, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); if (j < ((q.dense.$length >>> 0)) && ((x$1 = q.dense, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])).pc === pc)) { return t; } j$1 = q.dense.$length; q.dense = $subslice(q.dense, 0, (j$1 + 1 >> 0)); d = (x$2 = q.dense, ((j$1 < 0 || j$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j$1])); d.t = ptrType$4.nil; d.pc = pc; (x$3 = q.sparse, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc] = ((j$1 >>> 0)))); i = (x$4 = m.p.Inst, ((pc < 0 || pc >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + pc])); _1 = i.Op; if (_1 === (5)) { } else if ((_1 === (0)) || (_1 === (1))) { t = m.add(q, i.Out, pos, cap, cond, t); t = m.add(q, i.Arg, pos, cap, cond, t); } else if (_1 === (3)) { if (((((i.Arg << 24 >>> 24)) & ~cond) << 24 >>> 24) === 0) { t = m.add(q, i.Out, pos, cap, cond, t); } } else if (_1 === (6)) { t = m.add(q, i.Out, pos, cap, cond, t); } else if (_1 === (2)) { if (((i.Arg >> 0)) < cap.$length) { opos = (x$5 = i.Arg, ((x$5 < 0 || x$5 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$5])); (x$6 = i.Arg, ((x$6 < 0 || x$6 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$6] = pos)); m.add(q, i.Out, pos, cap, cond, ptrType$4.nil); (x$7 = i.Arg, ((x$7 < 0 || x$7 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$7] = opos)); } else { t = m.add(q, i.Out, pos, cap, cond, t); } } else if ((_1 === (4)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { if (t === ptrType$4.nil) { t = m.alloc(i); } else { t.inst = i; } if (cap.$length > 0 && !((x$8 = t.cap, $indexPtr(x$8.$array, x$8.$offset + 0, ptrType$6)) === $indexPtr(cap.$array, cap.$offset + 0, ptrType$6))) { $copySlice(t.cap, cap); } d.t = t; t = ptrType$4.nil; } else { $panic(new $String("unhandled")); } return t; }; machine.prototype.add = function(q, pc, pos, cap, cond, t) { return this.$val.add(q, pc, pos, cap, cond, t); }; machine.ptr.prototype.onepass = function(i, pos, ncap) { var _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, flag, i, i$1, inst, m, ncap, pc, pos, r, r1, startCond, width, width1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _v = $f._v; flag = $f.flag; i = $f.i; i$1 = $f.i$1; inst = $f.inst; m = $f.m; ncap = $f.ncap; pc = $f.pc; pos = $f.pos; r = $f.r; r1 = $f.r1; startCond = $f.startCond; width = $f.width; width1 = $f.width1; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: inst = [inst]; m = this; startCond = m.re.regexpRO.cond; if (startCond === 255) { $s = -1; return false; } m.matched = false; m.matchcap = $subslice(m.matchcap, 0, ncap); _ref = m.matchcap; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i$1 = _i; (x = m.matchcap, ((i$1 < 0 || i$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$1] = -1)); _i++; } _tmp = -1; _tmp$1 = -1; r = _tmp; r1 = _tmp$1; _tmp$2 = 0; _tmp$3 = 0; width = _tmp$2; width1 = _tmp$3; _r = i.step(pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; r = _tuple[0]; width = _tuple[1]; /* */ if (!((r === -1))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!((r === -1))) { */ case 2: _r$1 = i.step(pos + width >> 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; r1 = _tuple$1[0]; width1 = _tuple$1[1]; /* } */ case 3: flag = 0; /* */ if (pos === 0) { $s = 5; continue; } /* */ $s = 6; continue; /* if (pos === 0) { */ case 5: flag = syntax.EmptyOpContext(-1, r); $s = 7; continue; /* } else { */ case 6: _r$2 = i.context(pos); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } flag = _r$2; /* } */ case 7: pc = m.op.Start; inst[0] = $clone((x$1 = m.op.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])), onePassInst); if (!((pos === 0) && (((((inst[0].Inst.Arg << 24 >>> 24)) & ~flag) << 24 >>> 24) === 0) && m.re.regexpRO.prefix.length > 0)) { _v = false; $s = 11; continue s; } _r$3 = i.canCheckPrefix(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _v = _r$3; case 11: /* */ if (_v) { $s = 9; continue; } /* */ $s = 10; continue; /* if (_v) { */ case 9: _r$4 = i.hasPrefix(m.re); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } /* */ if (_r$4) { $s = 13; continue; } /* */ $s = 14; continue; /* if (_r$4) { */ case 13: pos = pos + (m.re.regexpRO.prefix.length) >> 0; _r$5 = i.step(pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$2 = _r$5; r = _tuple$2[0]; width = _tuple$2[1]; _r$6 = i.step(pos + width >> 0); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _tuple$3 = _r$6; r1 = _tuple$3[0]; width1 = _tuple$3[1]; _r$7 = i.context(pos); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } flag = _r$7; pc = ((m.re.regexpRO.prefixEnd >> 0)); $s = 15; continue; /* } else { */ case 14: $s = -1; return m.matched; /* } */ case 15: /* } */ case 10: /* while (true) { */ case 20: onePassInst.copy(inst[0], (x$2 = m.op.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pc]))); pc = ((inst[0].Inst.Out >> 0)); _1 = inst[0].Inst.Op; /* */ if (_1 === (4)) { $s = 23; continue; } /* */ if (_1 === (7)) { $s = 24; continue; } /* */ if (_1 === (8)) { $s = 25; continue; } /* */ if (_1 === (9)) { $s = 26; continue; } /* */ if (_1 === (10)) { $s = 27; continue; } /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 28; continue; } /* */ if (_1 === (5)) { $s = 29; continue; } /* */ if (_1 === (6)) { $s = 30; continue; } /* */ if (_1 === (3)) { $s = 31; continue; } /* */ if (_1 === (2)) { $s = 32; continue; } /* */ $s = 33; continue; /* if (_1 === (4)) { */ case 23: m.matched = true; if (m.matchcap.$length > 0) { (x$3 = m.matchcap, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0] = 0)); (x$4 = m.matchcap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos)); } $s = -1; return m.matched; /* } else if (_1 === (7)) { */ case 24: if (!inst[0].Inst.MatchRune(r)) { $s = -1; return m.matched; } $s = 34; continue; /* } else if (_1 === (8)) { */ case 25: if (!((r === (x$5 = inst[0].Inst.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))))) { $s = -1; return m.matched; } $s = 34; continue; /* } else if (_1 === (9)) { */ case 26: $s = 34; continue; /* } else if (_1 === (10)) { */ case 27: if (r === 10) { $s = -1; return m.matched; } $s = 34; continue; /* } else if ((_1 === (0)) || (_1 === (1))) { */ case 28: pc = ((onePassNext(inst[0], r) >> 0)); /* continue; */ $s = 20; continue; $s = 34; continue; /* } else if (_1 === (5)) { */ case 29: $s = -1; return m.matched; /* } else if (_1 === (6)) { */ case 30: /* continue; */ $s = 20; continue; $s = 34; continue; /* } else if (_1 === (3)) { */ case 31: if (!((((((inst[0].Inst.Arg << 24 >>> 24)) & ~flag) << 24 >>> 24) === 0))) { $s = -1; return m.matched; } /* continue; */ $s = 20; continue; $s = 34; continue; /* } else if (_1 === (2)) { */ case 32: if (((inst[0].Inst.Arg >> 0)) < m.matchcap.$length) { (x$6 = m.matchcap, x$7 = inst[0].Inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7] = pos)); } /* continue; */ $s = 20; continue; $s = 34; continue; /* } else { */ case 33: $panic(new $String("bad inst")); /* } */ case 34: case 22: if (width === 0) { /* break; */ $s = 21; continue; } flag = syntax.EmptyOpContext(r, r1); pos = pos + (width) >> 0; _tmp$4 = r1; _tmp$5 = width1; r = _tmp$4; width = _tmp$5; /* */ if (!((r === -1))) { $s = 35; continue; } /* */ $s = 36; continue; /* if (!((r === -1))) { */ case 35: _r$8 = i.step(pos + width >> 0); /* */ $s = 37; case 37: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _tuple$4 = _r$8; r1 = _tuple$4[0]; width1 = _tuple$4[1]; /* } */ case 36: /* } */ $s = 20; continue; case 21: $s = -1; return m.matched; /* */ } return; } if ($f === undefined) { $f = { $blk: machine.ptr.prototype.onepass }; } $f._1 = _1; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._v = _v; $f.flag = flag; $f.i = i; $f.i$1 = i$1; $f.inst = inst; $f.m = m; $f.ncap = ncap; $f.pc = pc; $f.pos = pos; $f.r = r; $f.r1 = r1; $f.startCond = startCond; $f.width = width; $f.width1 = width1; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.$s = $s; $f.$r = $r; return $f; }; machine.prototype.onepass = function(i, pos, ncap) { return this.$val.onepass(i, pos, ncap); }; Regexp.ptr.prototype.doMatch = function(r, b, s) { var _r, b, r, re, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; r = $f.r; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = this; _r = re.doExecute(r, b, s, 0, 0, sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return !(_r === sliceType$2.nil); /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.doMatch }; } $f._r = _r; $f.b = b; $f.r = r; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.doMatch = function(r, b, s) { return this.$val.doMatch(r, b, s); }; Regexp.ptr.prototype.doExecute = function(r, b, s, pos, ncap, dstCap) { var _r, _r$1, _r$2, b, dstCap, i, m, ncap, pos, r, re, s, size, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; b = $f.b; dstCap = $f.dstCap; i = $f.i; m = $f.m; ncap = $f.ncap; pos = $f.pos; r = $f.r; re = $f.re; s = $f.s; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = this; m = re.get(); i = $ifaceNil; size = 0; if (!($interfaceIsEqual(r, $ifaceNil))) { i = m.newInputReader(r); } else if (!(b === sliceType$6.nil)) { i = m.newInputBytes(b); size = b.$length; } else { i = m.newInputString(s); size = s.length; } /* */ if (!(m.op === notOnePass)) { $s = 1; continue; } /* */ if (size < m.maxBitStateLen && $interfaceIsEqual(r, $ifaceNil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!(m.op === notOnePass)) { */ case 1: _r = m.onepass(i, pos, ncap); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!_r) { $s = 5; continue; } /* */ $s = 6; continue; /* if (!_r) { */ case 5: re.put(m); $s = -1; return sliceType$2.nil; /* } */ case 6: $s = 4; continue; /* } else if (size < m.maxBitStateLen && $interfaceIsEqual(r, $ifaceNil)) { */ case 2: if (m.b === ptrType.nil) { m.b = newBitState(m.p); } _r$1 = m.backtrack(i, pos, size, ncap); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (!_r$1) { $s = 8; continue; } /* */ $s = 9; continue; /* if (!_r$1) { */ case 8: re.put(m); $s = -1; return sliceType$2.nil; /* } */ case 9: $s = 4; continue; /* } else { */ case 3: m.init(ncap); _r$2 = m.match(i, pos); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (!_r$2) { $s = 11; continue; } /* */ $s = 12; continue; /* if (!_r$2) { */ case 11: re.put(m); $s = -1; return sliceType$2.nil; /* } */ case 12: /* } */ case 4: dstCap = $appendSlice(dstCap, m.matchcap); if (dstCap === sliceType$2.nil) { dstCap = $subslice(new sliceType$2(arrayNoInts), 0, 0); } re.put(m); $s = -1; return dstCap; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.doExecute }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.b = b; $f.dstCap = dstCap; $f.i = i; $f.m = m; $f.ncap = ncap; $f.pos = pos; $f.r = r; $f.re = re; $f.s = s; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.doExecute = function(r, b, s, pos, ncap, dstCap) { return this.$val.doExecute(r, b, s, pos, ncap, dstCap); }; onePassPrefix = function(p) { var _tmp, _tmp$1, _tmp$10, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, buf, complete, i, p, pc, prefix, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; prefix = ""; complete = false; pc = 0; i = (x = p.Inst, x$1 = p.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); if (!((i.Op === 3)) || ((((((i.Arg << 24 >>> 24))) & 4) >>> 0) === 0)) { _tmp = ""; _tmp$1 = i.Op === 4; _tmp$2 = ((p.Start >>> 0)); prefix = _tmp; complete = _tmp$1; pc = _tmp$2; return [prefix, complete, pc]; } pc = i.Out; i = (x$2 = p.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pc])); while (true) { if (!(i.Op === 6)) { break; } pc = i.Out; i = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc])); } if (!((iop(i) === 7)) || !((i.Rune.$length === 1))) { _tmp$3 = ""; _tmp$4 = i.Op === 4; _tmp$5 = ((p.Start >>> 0)); prefix = _tmp$3; complete = _tmp$4; pc = _tmp$5; return [prefix, complete, pc]; } buf = new bytes.Buffer.ptr(sliceType$6.nil, 0, 0, arrayType$2.zero()); while (true) { if (!((iop(i) === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { break; } buf.WriteRune((x$4 = i.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0]))); _tmp$6 = i.Out; _tmp$7 = (x$5 = p.Inst, x$6 = i.Out, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])); pc = _tmp$6; i = _tmp$7; } if ((i.Op === 3) && !((((((i.Arg << 24 >>> 24)) & 8) >>> 0) === 0)) && ((x$7 = p.Inst, x$8 = i.Out, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])).Op === 4)) { complete = true; } _tmp$8 = buf.String(); _tmp$9 = complete; _tmp$10 = pc; prefix = _tmp$8; complete = _tmp$9; pc = _tmp$10; return [prefix, complete, pc]; }; onePassNext = function(i, r) { var i, next, r, x; next = i.Inst.MatchRunePos(r); if (next >= 0) { return (x = i.Next, ((next < 0 || next >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + next])); } if (i.Inst.Op === 1) { return i.Inst.Out; } return 0; }; iop = function(i) { var _1, i, op; op = i.Op; _1 = op; if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { op = 7; } return op; }; queueOnePass.ptr.prototype.empty = function() { var q; q = this; return q.nextIndex >= q.size; }; queueOnePass.prototype.empty = function() { return this.$val.empty(); }; queueOnePass.ptr.prototype.next = function() { var n, q, x, x$1; n = 0; q = this; n = (x = q.dense, x$1 = q.nextIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); q.nextIndex = q.nextIndex + (1) >>> 0; return n; }; queueOnePass.prototype.next = function() { return this.$val.next(); }; queueOnePass.ptr.prototype.clear = function() { var q; q = this; q.size = 0; q.nextIndex = 0; }; queueOnePass.prototype.clear = function() { return this.$val.clear(); }; queueOnePass.ptr.prototype.contains = function(u) { var q, u, x, x$1, x$2, x$3; q = this; if (u >= ((q.sparse.$length >>> 0))) { return false; } return (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u])) < q.size && ((x$1 = q.dense, x$2 = (x$3 = q.sparse, ((u < 0 || u >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + u])), ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === u); }; queueOnePass.prototype.contains = function(u) { return this.$val.contains(u); }; queueOnePass.ptr.prototype.insert = function(u) { var q, u; q = this; if (!q.contains(u)) { q.insertNew(u); } }; queueOnePass.prototype.insert = function(u) { return this.$val.insert(u); }; queueOnePass.ptr.prototype.insertNew = function(u) { var q, u, x, x$1, x$2; q = this; if (u >= ((q.sparse.$length >>> 0))) { return; } (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u] = q.size)); (x$1 = q.dense, x$2 = q.size, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2] = u)); q.size = q.size + (1) >>> 0; }; queueOnePass.prototype.insertNew = function(u) { return this.$val.insertNew(u); }; newQueue = function(size) { var q, size; q = ptrType$7.nil; q = new queueOnePass.ptr($makeSlice(sliceType$1, size), $makeSlice(sliceType$1, size), 0, 0); return q; }; mergeRuneSets = function(leftRunes, rightRunes, leftPC, rightPC) { var _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, extend, ix, leftLen, leftPC, leftRunes, lx, merged, next, ok, rightLen, rightPC, rightRunes, rx, x, x$1, $s, $deferred, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; extend = $f.extend; ix = $f.ix; leftLen = $f.leftLen; leftPC = $f.leftPC; leftRunes = $f.leftRunes; lx = $f.lx; merged = $f.merged; next = $f.next; ok = $f.ok; rightLen = $f.rightLen; rightPC = $f.rightPC; rightRunes = $f.rightRunes; rx = $f.rx; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); ix = [ix]; lx = [lx]; merged = [merged]; next = [next]; ok = [ok]; rx = [rx]; leftLen = leftRunes.$get().$length; rightLen = rightRunes.$get().$length; if (!(((leftLen & 1) === 0)) || !(((rightLen & 1) === 0))) { $panic(new $String("mergeRuneSets odd length []rune")); } _tmp = 0; _tmp$1 = 0; lx[0] = _tmp; rx[0] = _tmp$1; merged[0] = $makeSlice(sliceType, 0); next[0] = $makeSlice(sliceType$1, 0); ok[0] = true; $deferred.push([(function(ix, lx, merged, next, ok, rx) { return function() { if (!ok[0]) { merged[0] = sliceType.nil; next[0] = sliceType$1.nil; } }; })(ix, lx, merged, next, ok, rx), []]); ix[0] = -1; extend = (function(ix, lx, merged, next, ok, rx) { return function(newLow, newArray, pc) { var newArray, newLow, pc, x, x$1, x$2, x$3, x$4, x$5; if (ix[0] > 0 && (x = newArray.$get(), x$1 = newLow.$get(), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) <= ((ix[0] < 0 || ix[0] >= merged[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : merged[0].$array[merged[0].$offset + ix[0]])) { return false; } merged[0] = $append(merged[0], (x$2 = newArray.$get(), x$3 = newLow.$get(), ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), (x$4 = newArray.$get(), x$5 = newLow.$get() + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5]))); newLow.$set(newLow.$get() + (2) >> 0); ix[0] = ix[0] + (2) >> 0; next[0] = $append(next[0], pc); return true; }; })(ix, lx, merged, next, ok, rx); /* while (true) { */ case 1: /* if (!(lx[0] < leftLen || rx[0] < rightLen)) { break; } */ if(!(lx[0] < leftLen || rx[0] < rightLen)) { $s = 2; continue; } /* */ if (rx[0] >= rightLen) { $s = 4; continue; } /* */ if (lx[0] >= leftLen) { $s = 5; continue; } /* */ if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { $s = 6; continue; } /* */ $s = 7; continue; /* if (rx[0] >= rightLen) { */ case 4: _r = extend((lx.$ptr || (lx.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } ok[0] = _r; $s = 8; continue; /* } else if (lx[0] >= leftLen) { */ case 5: _r$1 = extend((rx.$ptr || (rx.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } ok[0] = _r$1; $s = 8; continue; /* } else if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { */ case 6: _r$2 = extend((rx.$ptr || (rx.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } ok[0] = _r$2; $s = 8; continue; /* } else { */ case 7: _r$3 = extend((lx.$ptr || (lx.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } ok[0] = _r$3; /* } */ case 8: case 3: if (!ok[0]) { $s = -1; return [noRune, noNext]; } /* } */ $s = 1; continue; case 2: $s = -1; return [merged[0], next[0]]; /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType.nil, sliceType$1.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: mergeRuneSets }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.extend = extend; $f.ix = ix; $f.leftLen = leftLen; $f.leftPC = leftPC; $f.leftRunes = leftRunes; $f.lx = lx; $f.merged = merged; $f.next = next; $f.ok = ok; $f.rightLen = rightLen; $f.rightPC = rightPC; $f.rightRunes = rightRunes; $f.rx = rx; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } }; cleanupOnePass = function(prog, original) { var _1, _i, _ref, instOriginal, ix, original, prog, x, x$1, x$2; _ref = original.Inst; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } ix = _i; instOriginal = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); _1 = instOriginal.Op; if ((_1 === (0)) || (_1 === (1)) || (_1 === (7))) { } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (6)) || (_1 === (4)) || (_1 === (5))) { (x = prog.Inst, ((ix < 0 || ix >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + ix])).Next = sliceType$1.nil; } else if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { (x$1 = prog.Inst, ((ix < 0 || ix >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + ix])).Next = sliceType$1.nil; onePassInst.copy((x$2 = prog.Inst, ((ix < 0 || ix >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + ix])), new onePassInst.ptr($clone(instOriginal, syntax.Inst), sliceType$1.nil)); } _i++; } }; onePassCopy = function(prog) { var _1, _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, i, inst, instAlt, instOther, p, p_A_Alt, p_A_Other, p_B_Alt, p_B_Other, patch, pc, prog, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; p = new onePassProg.ptr($makeSlice(sliceType$7, prog.Inst.$length), prog.Start, prog.NumCap); _ref = prog.Inst; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); onePassInst.copy((x = p.Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), new onePassInst.ptr($clone(inst, syntax.Inst), sliceType$1.nil)); _i++; } _ref$1 = p.Inst; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } pc = _i$1; _1 = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])).Inst.Op; if ((_1 === (0)) || (_1 === (1))) { p_A_Other = (x$2 = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc])), (x$2.$ptr_Out || (x$2.$ptr_Out = new ptrType$8(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$2)))); p_A_Alt = (x$4 = (x$5 = p.Inst, ((pc < 0 || pc >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + pc])), (x$4.$ptr_Arg || (x$4.$ptr_Arg = new ptrType$8(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$4)))); instAlt = $clone((x$6 = p.Inst, x$7 = p_A_Alt.$get(), ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])), onePassInst); if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) { _tmp = p_A_Other; _tmp$1 = p_A_Alt; p_A_Alt = _tmp; p_A_Other = _tmp$1; onePassInst.copy(instAlt, (x$8 = p.Inst, x$9 = p_A_Alt.$get(), ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9]))); if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) { _i$1++; continue; } } instOther = $clone((x$10 = p.Inst, x$11 = p_A_Other.$get(), ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])), onePassInst); if ((instOther.Inst.Op === 0) || (instOther.Inst.Op === 1)) { _i$1++; continue; } p_B_Alt = (x$12 = (x$13 = p.Inst, x$14 = p_A_Alt.$get(), ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14])), (x$12.$ptr_Out || (x$12.$ptr_Out = new ptrType$8(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$12)))); p_B_Other = (x$15 = (x$16 = p.Inst, x$17 = p_A_Alt.$get(), ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17])), (x$15.$ptr_Arg || (x$15.$ptr_Arg = new ptrType$8(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$15)))); patch = false; if (instAlt.Inst.Out === ((pc >>> 0))) { patch = true; } else if (instAlt.Inst.Arg === ((pc >>> 0))) { patch = true; _tmp$2 = p_B_Other; _tmp$3 = p_B_Alt; p_B_Alt = _tmp$2; p_B_Other = _tmp$3; } if (patch) { p_B_Alt.$set(p_A_Other.$get()); } if (p_A_Other.$get() === p_B_Alt.$get()) { p_A_Alt.$set(p_B_Other.$get()); } } else { _i$1++; continue; } _i$1++; } return p; }; runeSlice.prototype.Len = function() { var p; p = this; return p.$length; }; $ptrType(runeSlice).prototype.Len = function() { return this.$get().Len(); }; runeSlice.prototype.Less = function(i, j) { var i, j, p; p = this; return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); }; $ptrType(runeSlice).prototype.Less = function(i, j) { return this.$get().Less(i, j); }; runeSlice.prototype.Swap = function(i, j) { var _tmp, _tmp$1, i, j, p; p = this; _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); _tmp$1 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$1); }; $ptrType(runeSlice).prototype.Swap = function(i, j) { return this.$get().Swap(i, j); }; makeOnePass = function(p) { var _i, _r, _ref, check, i, instQueue, m, onePassRunes, p, pc, visitQueue, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; check = $f.check; i = $f.i; instQueue = $f.instQueue; m = $f.m; onePassRunes = $f.onePassRunes; p = $f.p; pc = $f.pc; visitQueue = $f.visitQueue; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: check = [check]; instQueue = [instQueue]; onePassRunes = [onePassRunes]; p = [p]; visitQueue = [visitQueue]; if (p[0].Inst.$length >= 1000) { $s = -1; return notOnePass; } instQueue[0] = newQueue(p[0].Inst.$length); visitQueue[0] = newQueue(p[0].Inst.$length); check[0] = $throwNilPointerError; onePassRunes[0] = $makeSlice(sliceType$8, p[0].Inst.$length); check[0] = (function(check, instQueue, onePassRunes, p, visitQueue) { return function $b(pc, m) { var _1, _i, _i$1, _i$2, _i$3, _i$4, _q, _q$1, _q$2, _q$3, _q$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _v, i, i$1, i$2, i$3, i$4, inst, m, matchArg, matchOut, ok, pc, r0, r0$1, r1, r1$1, runes, runes$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _i$3 = $f._i$3; _i$4 = $f._i$4; _q = $f._q; _q$1 = $f._q$1; _q$2 = $f._q$2; _q$3 = $f._q$3; _q$4 = $f._q$4; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _ref$3 = $f._ref$3; _ref$4 = $f._ref$4; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; _v = $f._v; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; i$4 = $f.i$4; inst = $f.inst; m = $f.m; matchArg = $f.matchArg; matchOut = $f.matchOut; ok = $f.ok; pc = $f.pc; r0 = $f.r0; r0$1 = $f.r0$1; r1 = $f.r1; r1$1 = $f.r1$1; runes = $f.runes; runes$1 = $f.runes$1; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: ok = false; ok = true; inst = (x = p[0].Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); if (visitQueue[0].contains(pc)) { $s = -1; return ok; } visitQueue[0].insert(pc); _1 = inst.Inst.Op; /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 2; continue; } /* */ if ((_1 === (2)) || (_1 === (6))) { $s = 3; continue; } /* */ if (_1 === (3)) { $s = 4; continue; } /* */ if ((_1 === (4)) || (_1 === (5))) { $s = 5; continue; } /* */ if (_1 === (7)) { $s = 6; continue; } /* */ if (_1 === (8)) { $s = 7; continue; } /* */ if (_1 === (9)) { $s = 8; continue; } /* */ if (_1 === (10)) { $s = 9; continue; } /* */ $s = 10; continue; /* if ((_1 === (0)) || (_1 === (1))) { */ case 2: _r = check[0](inst.Inst.Out, m); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } if (!(_r)) { _v = false; $s = 11; continue s; } _r$1 = check[0](inst.Inst.Arg, m); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _v = _r$1; case 11: ok = _v; matchOut = (x$1 = inst.Inst.Out, ((x$1 < 0 || x$1 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$1])); matchArg = (x$2 = inst.Inst.Arg, ((x$2 < 0 || x$2 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$2])); if (matchOut && matchArg) { ok = false; /* break; */ $s = 1; continue; } if (matchArg) { _tmp = inst.Inst.Arg; _tmp$1 = inst.Inst.Out; inst.Inst.Out = _tmp; inst.Inst.Arg = _tmp$1; _tmp$2 = matchArg; _tmp$3 = matchOut; matchOut = _tmp$2; matchArg = _tmp$3; } if (matchOut) { ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = true); inst.Inst.Op = 1; } _r$2 = mergeRuneSets($indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + inst.Inst.Out, ptrType$9), $indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + inst.Inst.Arg, ptrType$9), inst.Inst.Out, inst.Inst.Arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple = _r$2; ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = _tuple[0]); inst.Next = _tuple[1]; if (inst.Next.$length > 0 && ((x$3 = inst.Next, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])) === 4294967295)) { ok = false; /* break; */ $s = 1; continue; } $s = 10; continue; /* } else if ((_1 === (2)) || (_1 === (6))) { */ case 3: _r$3 = check[0](inst.Inst.Out, m); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } ok = _r$3; ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$4 = inst.Inst.Out, ((x$4 < 0 || x$4 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$4]))); ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType([]), (x$5 = inst.Inst.Out, ((x$5 < 0 || x$5 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$5])))); inst.Next = $makeSlice(sliceType$1, ((_q = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); _ref = inst.Next; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; (x$6 = inst.Next, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = inst.Inst.Out)); _i++; } $s = 10; continue; /* } else if (_1 === (3)) { */ case 4: _r$4 = check[0](inst.Inst.Out, m); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } ok = _r$4; ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$7 = inst.Inst.Out, ((x$7 < 0 || x$7 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$7]))); ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType([]), (x$8 = inst.Inst.Out, ((x$8 < 0 || x$8 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$8])))); inst.Next = $makeSlice(sliceType$1, ((_q$1 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); _ref$1 = inst.Next; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } i$1 = _i$1; (x$9 = inst.Next, ((i$1 < 0 || i$1 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i$1] = inst.Inst.Out)); _i$1++; } $s = 10; continue; /* } else if ((_1 === (4)) || (_1 === (5))) { */ case 5: ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (inst.Inst.Op === 4)); $s = 10; continue; /* } else if (_1 === (7)) { */ case 6: ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); if (inst.Next.$length > 0) { /* break; */ $s = 1; continue; } instQueue[0].insert(inst.Inst.Out); if (inst.Inst.Rune.$length === 0) { ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = new sliceType([])); inst.Next = new sliceType$1([inst.Inst.Out]); /* break; */ $s = 1; continue; } runes = $makeSlice(sliceType, 0); /* */ if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 17; continue; } /* */ $s = 18; continue; /* if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 17: r0 = (x$10 = inst.Inst.Rune, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])); runes = $append(runes, r0, r0); r1 = unicode.SimpleFold(r0); while (true) { if (!(!((r1 === r0)))) { break; } runes = $append(runes, r1, r1); r1 = unicode.SimpleFold(r1); } $r = sort.Sort(($subslice(new runeSlice(runes.$array), runes.$offset, runes.$offset + runes.$length))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 19; continue; /* } else { */ case 18: runes = $appendSlice(runes, inst.Inst.Rune); /* } */ case 19: ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes); inst.Next = $makeSlice(sliceType$1, ((_q$2 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); _ref$2 = inst.Next; _i$2 = 0; while (true) { if (!(_i$2 < _ref$2.$length)) { break; } i$2 = _i$2; (x$11 = inst.Next, ((i$2 < 0 || i$2 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + i$2] = inst.Inst.Out)); _i$2++; } inst.Inst.Op = 7; $s = 10; continue; /* } else if (_1 === (8)) { */ case 7: ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); if (inst.Next.$length > 0) { /* break; */ $s = 1; continue; } instQueue[0].insert(inst.Inst.Out); runes$1 = new sliceType([]); /* */ if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 21; continue; } /* */ $s = 22; continue; /* if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 21: r0$1 = (x$12 = inst.Inst.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0])); runes$1 = $append(runes$1, r0$1, r0$1); r1$1 = unicode.SimpleFold(r0$1); while (true) { if (!(!((r1$1 === r0$1)))) { break; } runes$1 = $append(runes$1, r1$1, r1$1); r1$1 = unicode.SimpleFold(r1$1); } $r = sort.Sort(($subslice(new runeSlice(runes$1.$array), runes$1.$offset, runes$1.$offset + runes$1.$length))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 23; continue; /* } else { */ case 22: runes$1 = $append(runes$1, (x$13 = inst.Inst.Rune, (0 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 0])), (x$14 = inst.Inst.Rune, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0]))); /* } */ case 23: ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes$1); inst.Next = $makeSlice(sliceType$1, ((_q$3 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); _ref$3 = inst.Next; _i$3 = 0; while (true) { if (!(_i$3 < _ref$3.$length)) { break; } i$3 = _i$3; (x$15 = inst.Next, ((i$3 < 0 || i$3 >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + i$3] = inst.Inst.Out)); _i$3++; } inst.Inst.Op = 7; $s = 10; continue; /* } else if (_1 === (9)) { */ case 8: ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); if (inst.Next.$length > 0) { /* break; */ $s = 1; continue; } instQueue[0].insert(inst.Inst.Out); ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType([]), anyRune)); inst.Next = new sliceType$1([inst.Inst.Out]); $s = 10; continue; /* } else if (_1 === (10)) { */ case 9: ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); if (inst.Next.$length > 0) { /* break; */ $s = 1; continue; } instQueue[0].insert(inst.Inst.Out); ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType([]), anyRuneNotNL)); inst.Next = $makeSlice(sliceType$1, ((_q$4 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$4 === _q$4 && _q$4 !== 1/0 && _q$4 !== -1/0) ? _q$4 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); _ref$4 = inst.Next; _i$4 = 0; while (true) { if (!(_i$4 < _ref$4.$length)) { break; } i$4 = _i$4; (x$16 = inst.Next, ((i$4 < 0 || i$4 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + i$4] = inst.Inst.Out)); _i$4++; } /* } */ case 10: case 1: $s = -1; return ok; /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._1 = _1; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._i$3 = _i$3; $f._i$4 = _i$4; $f._q = _q; $f._q$1 = _q$1; $f._q$2 = _q$2; $f._q$3 = _q$3; $f._q$4 = _q$4; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._ref$3 = _ref$3; $f._ref$4 = _ref$4; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f._v = _v; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.i$4 = i$4; $f.inst = inst; $f.m = m; $f.matchArg = matchArg; $f.matchOut = matchOut; $f.ok = ok; $f.pc = pc; $f.r0 = r0; $f.r0$1 = r0$1; $f.r1 = r1; $f.r1$1 = r1$1; $f.runes = runes; $f.runes$1 = runes$1; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; }; })(check, instQueue, onePassRunes, p, visitQueue); instQueue[0].clear(); instQueue[0].insert(((p[0].Start >>> 0))); m = $makeSlice(sliceType$9, p[0].Inst.$length); /* while (true) { */ case 1: /* if (!(!instQueue[0].empty())) { break; } */ if(!(!instQueue[0].empty())) { $s = 2; continue; } visitQueue[0].clear(); pc = instQueue[0].next(); _r = check[0](pc, m); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!_r) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!_r) { */ case 3: p[0] = notOnePass; /* break; */ $s = 2; continue; /* } */ case 4: /* } */ $s = 1; continue; case 2: if (!(p[0] === notOnePass)) { _ref = p[0].Inst; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; (x = p[0].Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).Inst.Rune = ((i < 0 || i >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + i]); _i++; } } $s = -1; return p[0]; /* */ } return; } if ($f === undefined) { $f = { $blk: makeOnePass }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.check = check; $f.i = i; $f.instQueue = instQueue; $f.m = m; $f.onePassRunes = onePassRunes; $f.p = p; $f.pc = pc; $f.visitQueue = visitQueue; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; compileOnePass = function(prog) { var _1, _i, _r, _ref, inst, opOut, p, prog, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _r = $f._r; _ref = $f._ref; inst = $f.inst; opOut = $f.opOut; p = $f.p; prog = $f.prog; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = ptrType$1.nil; if (prog.Start === 0) { p = notOnePass; $s = -1; return p; } if (!(((x = prog.Inst, x$1 = prog.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 3)) || !(((((((x$2 = prog.Inst, x$3 = prog.Start, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).Arg << 24 >>> 24)) & 4) >>> 0) === 4))) { p = notOnePass; $s = -1; return p; } _ref = prog.Inst; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); opOut = (x$4 = prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op; _1 = inst.Op; if ((_1 === (0)) || (_1 === (1))) { if ((opOut === 4) || ((x$6 = prog.Inst, x$7 = inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).Op === 4)) { p = notOnePass; $s = -1; return p; } } else if (_1 === (3)) { if (opOut === 4) { if (((((inst.Arg << 24 >>> 24)) & 8) >>> 0) === 8) { _i++; /* continue; */ $s = 1; continue; } p = notOnePass; $s = -1; return p; } } else if (opOut === 4) { p = notOnePass; $s = -1; return p; } _i++; /* } */ $s = 1; continue; case 2: p = onePassCopy(prog); _r = makeOnePass(p); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } p = _r; if (!(p === notOnePass)) { cleanupOnePass(p, prog); } p = p; $s = -1; return p; /* */ } return; } if ($f === undefined) { $f = { $blk: compileOnePass }; } $f._1 = _1; $f._i = _i; $f._r = _r; $f._ref = _ref; $f.inst = inst; $f.opOut = opOut; $f.p = p; $f.prog = prog; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.ptr.prototype.String = function() { var re; re = this; return re.regexpRO.expr; }; Regexp.prototype.String = function() { return this.$val.String(); }; Regexp.ptr.prototype.Copy = function() { var re; re = this; return new Regexp.ptr($clone(re.regexpRO, regexpRO), new nosync.Mutex.ptr(false), sliceType$11.nil); }; Regexp.prototype.Copy = function() { return this.$val.Copy(); }; Compile = function(expr) { var _r, expr, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; expr = $f.expr; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = compile(expr, 212, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Compile }; } $f._r = _r; $f.expr = expr; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Compile = Compile; Regexp.ptr.prototype.Longest = function() { var re; re = this; re.regexpRO.longest = true; }; Regexp.prototype.Longest = function() { return this.$val.Longest(); }; compile = function(expr, mode, longest) { var _r, _r$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, capNames, err, expr, longest, maxCap, mode, prog, re, regexp, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; capNames = $f.capNames; err = $f.err; expr = $f.expr; longest = $f.longest; maxCap = $f.maxCap; mode = $f.mode; prog = $f.prog; re = $f.re; regexp = $f.regexp; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = syntax.Parse(expr, mode); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; re = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [ptrType$3.nil, err]; } maxCap = re.MaxCap(); capNames = re.CapNames(); re = re.Simplify(); _tuple$1 = syntax.Compile(re); prog = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [ptrType$3.nil, err]; } _r$1 = compileOnePass(prog); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } regexp = new Regexp.ptr(new regexpRO.ptr(expr, prog, _r$1, "", sliceType$6.nil, false, 0, 0, prog.StartCond(), maxCap, capNames, longest), new nosync.Mutex.ptr(false), sliceType$11.nil); if (regexp.regexpRO.onepass === notOnePass) { _tuple$2 = prog.Prefix(); regexp.regexpRO.prefix = _tuple$2[0]; regexp.regexpRO.prefixComplete = _tuple$2[1]; } else { _tuple$3 = onePassPrefix(prog); regexp.regexpRO.prefix = _tuple$3[0]; regexp.regexpRO.prefixComplete = _tuple$3[1]; regexp.regexpRO.prefixEnd = _tuple$3[2]; } if (!(regexp.regexpRO.prefix === "")) { regexp.regexpRO.prefixBytes = (new sliceType$6($stringToBytes(regexp.regexpRO.prefix))); _tuple$4 = utf8.DecodeRuneInString(regexp.regexpRO.prefix); regexp.regexpRO.prefixRune = _tuple$4[0]; } $s = -1; return [regexp, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: compile }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f.capNames = capNames; $f.err = err; $f.expr = expr; $f.longest = longest; $f.maxCap = maxCap; $f.mode = mode; $f.prog = prog; $f.re = re; $f.regexp = regexp; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.ptr.prototype.get = function() { var n, re, x, x$1, z, z$1; re = this; re.mu.Lock(); n = re.machine.$length; if (n > 0) { z = (x = re.machine, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); re.machine = $subslice(re.machine, 0, (n - 1 >> 0)); re.mu.Unlock(); return z; } re.mu.Unlock(); z$1 = progMachine(re.regexpRO.prog, re.regexpRO.onepass); z$1.re = re; return z$1; }; Regexp.prototype.get = function() { return this.$val.get(); }; Regexp.ptr.prototype.put = function(z) { var re, z; re = this; re.mu.Lock(); re.machine = $append(re.machine, z); re.mu.Unlock(); }; Regexp.prototype.put = function(z) { return this.$val.put(z); }; MustCompile = function(str) { var _r, _r$1, _tuple, error, regexp, str, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; error = $f.error; regexp = $f.regexp; str = $f.str; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Compile(str); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; regexp = _tuple[0]; error = _tuple[1]; /* */ if (!($interfaceIsEqual(error, $ifaceNil))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!($interfaceIsEqual(error, $ifaceNil))) { */ case 2: _r$1 = error.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $panic(new $String("regexp: Compile(" + quote(str) + "): " + _r$1)); /* } */ case 3: $s = -1; return regexp; /* */ } return; } if ($f === undefined) { $f = { $blk: MustCompile }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.error = error; $f.regexp = regexp; $f.str = str; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.MustCompile = MustCompile; quote = function(s) { var s; if (strconv.CanBackquote(s)) { return "`" + s + "`"; } return strconv.Quote(s); }; Regexp.ptr.prototype.NumSubexp = function() { var re; re = this; return re.regexpRO.numSubexp; }; Regexp.prototype.NumSubexp = function() { return this.$val.NumSubexp(); }; Regexp.ptr.prototype.SubexpNames = function() { var re; re = this; return re.regexpRO.subexpNames; }; Regexp.prototype.SubexpNames = function() { return this.$val.SubexpNames(); }; inputString.ptr.prototype.step = function(pos) { var c, i, pos; i = this; if (pos < i.str.length) { c = i.str.charCodeAt(pos); if (c < 128) { return [((c >> 0)), 1]; } return utf8.DecodeRuneInString($substring(i.str, pos)); } return [-1, 0]; }; inputString.prototype.step = function(pos) { return this.$val.step(pos); }; inputString.ptr.prototype.canCheckPrefix = function() { var i; i = this; return true; }; inputString.prototype.canCheckPrefix = function() { return this.$val.canCheckPrefix(); }; inputString.ptr.prototype.hasPrefix = function(re) { var i, re; i = this; return strings.HasPrefix(i.str, re.regexpRO.prefix); }; inputString.prototype.hasPrefix = function(re) { return this.$val.hasPrefix(re); }; inputString.ptr.prototype.index = function(re, pos) { var i, pos, re; i = this; return strings.Index($substring(i.str, pos), re.regexpRO.prefix); }; inputString.prototype.index = function(re, pos) { return this.$val.index(re, pos); }; inputString.ptr.prototype.context = function(pos) { var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2; i = this; _tmp = -1; _tmp$1 = -1; r1 = _tmp; r2 = _tmp$1; if ((((pos - 1 >> 0) >>> 0)) < ((i.str.length >>> 0))) { r1 = ((i.str.charCodeAt((pos - 1 >> 0)) >> 0)); if (r1 >= 128) { _tuple = utf8.DecodeLastRuneInString($substring(i.str, 0, pos)); r1 = _tuple[0]; } } if (((pos >>> 0)) < ((i.str.length >>> 0))) { r2 = ((i.str.charCodeAt(pos) >> 0)); if (r2 >= 128) { _tuple$1 = utf8.DecodeRuneInString($substring(i.str, pos)); r2 = _tuple$1[0]; } } return syntax.EmptyOpContext(r1, r2); }; inputString.prototype.context = function(pos) { return this.$val.context(pos); }; inputBytes.ptr.prototype.step = function(pos) { var c, i, pos, x; i = this; if (pos < i.str.$length) { c = (x = i.str, ((pos < 0 || pos >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pos])); if (c < 128) { return [((c >> 0)), 1]; } return utf8.DecodeRune($subslice(i.str, pos)); } return [-1, 0]; }; inputBytes.prototype.step = function(pos) { return this.$val.step(pos); }; inputBytes.ptr.prototype.canCheckPrefix = function() { var i; i = this; return true; }; inputBytes.prototype.canCheckPrefix = function() { return this.$val.canCheckPrefix(); }; inputBytes.ptr.prototype.hasPrefix = function(re) { var i, re; i = this; return bytes.HasPrefix(i.str, re.regexpRO.prefixBytes); }; inputBytes.prototype.hasPrefix = function(re) { return this.$val.hasPrefix(re); }; inputBytes.ptr.prototype.index = function(re, pos) { var i, pos, re; i = this; return bytes.Index($subslice(i.str, pos), re.regexpRO.prefixBytes); }; inputBytes.prototype.index = function(re, pos) { return this.$val.index(re, pos); }; inputBytes.ptr.prototype.context = function(pos) { var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2, x, x$1, x$2; i = this; _tmp = -1; _tmp$1 = -1; r1 = _tmp; r2 = _tmp$1; if ((((pos - 1 >> 0) >>> 0)) < ((i.str.$length >>> 0))) { r1 = (((x = i.str, x$1 = pos - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >> 0)); if (r1 >= 128) { _tuple = utf8.DecodeLastRune($subslice(i.str, 0, pos)); r1 = _tuple[0]; } } if (((pos >>> 0)) < ((i.str.$length >>> 0))) { r2 = (((x$2 = i.str, ((pos < 0 || pos >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pos])) >> 0)); if (r2 >= 128) { _tuple$1 = utf8.DecodeRune($subslice(i.str, pos)); r2 = _tuple$1[0]; } } return syntax.EmptyOpContext(r1, r2); }; inputBytes.prototype.context = function(pos) { return this.$val.context(pos); }; inputReader.ptr.prototype.step = function(pos) { var _r, _tuple, err, i, pos, r, w, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; i = $f.i; pos = $f.pos; r = $f.r; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = this; if (!i.atEOT && !((pos === i.pos))) { $s = -1; return [-1, 0]; } _r = i.r.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; r = _tuple[0]; w = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { i.atEOT = true; $s = -1; return [-1, 0]; } i.pos = i.pos + (w) >> 0; $s = -1; return [r, w]; /* */ } return; } if ($f === undefined) { $f = { $blk: inputReader.ptr.prototype.step }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.i = i; $f.pos = pos; $f.r = r; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; }; inputReader.prototype.step = function(pos) { return this.$val.step(pos); }; inputReader.ptr.prototype.canCheckPrefix = function() { var i; i = this; return false; }; inputReader.prototype.canCheckPrefix = function() { return this.$val.canCheckPrefix(); }; inputReader.ptr.prototype.hasPrefix = function(re) { var i, re; i = this; return false; }; inputReader.prototype.hasPrefix = function(re) { return this.$val.hasPrefix(re); }; inputReader.ptr.prototype.index = function(re, pos) { var i, pos, re; i = this; return -1; }; inputReader.prototype.index = function(re, pos) { return this.$val.index(re, pos); }; inputReader.ptr.prototype.context = function(pos) { var i, pos; i = this; return 0; }; inputReader.prototype.context = function(pos) { return this.$val.context(pos); }; Regexp.ptr.prototype.LiteralPrefix = function() { var _tmp, _tmp$1, complete, prefix, re; prefix = ""; complete = false; re = this; _tmp = re.regexpRO.prefix; _tmp$1 = re.regexpRO.prefixComplete; prefix = _tmp; complete = _tmp$1; return [prefix, complete]; }; Regexp.prototype.LiteralPrefix = function() { return this.$val.LiteralPrefix(); }; Regexp.ptr.prototype.MatchReader = function(r) { var _r, r, re, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; r = $f.r; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = this; _r = re.doMatch(r, sliceType$6.nil, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.MatchReader }; } $f._r = _r; $f.r = r; $f.re = re; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.MatchReader = function(r) { return this.$val.MatchReader(r); }; Regexp.ptr.prototype.MatchString = function(s) { var _r, re, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = this; _r = re.doMatch($ifaceNil, sliceType$6.nil, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.MatchString }; } $f._r = _r; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.MatchString = function(s) { return this.$val.MatchString(s); }; Regexp.ptr.prototype.Match = function(b) { var _r, b, re, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = this; _r = re.doMatch($ifaceNil, b, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.Match }; } $f._r = _r; $f.b = b; $f.re = re; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.Match = function(b) { return this.$val.Match(b); }; MatchString = function(pattern, s) { var _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, matched, pattern, re, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; err = $f.err; matched = $f.matched; pattern = $f.pattern; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: matched = false; err = $ifaceNil; _r = Compile(pattern); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; re = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { _tmp = false; _tmp$1 = err; matched = _tmp; err = _tmp$1; $s = -1; return [matched, err]; } _r$1 = re.MatchString(s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tmp$2 = _r$1; _tmp$3 = $ifaceNil; matched = _tmp$2; err = _tmp$3; $s = -1; return [matched, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: MatchString }; } $f._r = _r; $f._r$1 = _r$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.err = err; $f.matched = matched; $f.pattern = pattern; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.MatchString = MatchString; Regexp.ptr.prototype.ReplaceAllString = function(src, repl) { var _r, b, n, re, repl, src, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; n = $f.n; re = $f.re; repl = $f.repl; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = [re]; repl = [repl]; src = [src]; re[0] = this; n = 2; if (strings.Contains(repl[0], "$")) { n = $imul(2, ((re[0].regexpRO.numSubexp + 1 >> 0))); } _r = re[0].replaceAll(sliceType$6.nil, src[0], n, (function(re, repl, src) { return function(dst, match) { var dst, match; return re[0].expand(dst, repl[0], sliceType$6.nil, src[0], match); }; })(re, repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } b = _r; $s = -1; return ($bytesToString(b)); /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAllString }; } $f._r = _r; $f.b = b; $f.n = n; $f.re = re; $f.repl = repl; $f.src = src; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.ReplaceAllString = function(src, repl) { return this.$val.ReplaceAllString(src, repl); }; Regexp.ptr.prototype.ReplaceAllLiteralString = function(src, repl) { var _r, re, repl, src, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; re = $f.re; repl = $f.repl; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: repl = [repl]; re = this; _r = re.replaceAll(sliceType$6.nil, src, 2, (function(repl) { return function(dst, match) { var dst, match; return $appendSlice(dst, repl[0]); }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return ($bytesToString(_r)); /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAllLiteralString }; } $f._r = _r; $f.re = re; $f.repl = repl; $f.src = src; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.ReplaceAllLiteralString = function(src, repl) { return this.$val.ReplaceAllLiteralString(src, repl); }; Regexp.ptr.prototype.ReplaceAllStringFunc = function(src, repl) { var _r, b, re, repl, src, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; re = $f.re; repl = $f.repl; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: repl = [repl]; src = [src]; re = this; _r = re.replaceAll(sliceType$6.nil, src[0], 2, (function(repl, src) { return function $b(dst, match) { var _arg, _arg$1, _r, dst, match, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; dst = $f.dst; match = $f.match; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _arg = dst; _r = repl[0]($substring(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; $s = -1; return $appendSlice(_arg, _arg$1); /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f.dst = dst; $f.match = match; $f.$s = $s; $f.$r = $r; return $f; }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } b = _r; $s = -1; return ($bytesToString(b)); /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAllStringFunc }; } $f._r = _r; $f.b = b; $f.re = re; $f.repl = repl; $f.src = src; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.ReplaceAllStringFunc = function(src, repl) { return this.$val.ReplaceAllStringFunc(src, repl); }; Regexp.ptr.prototype.replaceAll = function(bsrc, src, nmatch, repl) { var _r, _r$1, _tuple, _tuple$1, a, bsrc, buf, dstCap, endPos, lastMatchEnd, nmatch, re, repl, searchPos, src, width, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; bsrc = $f.bsrc; buf = $f.buf; dstCap = $f.dstCap; endPos = $f.endPos; lastMatchEnd = $f.lastMatchEnd; nmatch = $f.nmatch; re = $f.re; repl = $f.repl; searchPos = $f.searchPos; src = $f.src; width = $f.width; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = this; lastMatchEnd = 0; searchPos = 0; buf = sliceType$6.nil; endPos = 0; if (!(bsrc === sliceType$6.nil)) { endPos = bsrc.$length; } else { endPos = src.length; } if (nmatch > re.regexpRO.prog.NumCap) { nmatch = re.regexpRO.prog.NumCap; } dstCap = arrayType$3.zero(); /* while (true) { */ case 1: /* if (!(searchPos <= endPos)) { break; } */ if(!(searchPos <= endPos)) { $s = 2; continue; } _r = re.doExecute($ifaceNil, bsrc, src, searchPos, nmatch, $subslice(new sliceType$2(dstCap), 0, 0)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } a = _r; if (a.$length === 0) { /* break; */ $s = 2; continue; } if (!(bsrc === sliceType$6.nil)) { buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]))); } else { buf = $appendSlice(buf, $substring(src, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]))); } /* */ if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { $s = 4; continue; } /* */ $s = 5; continue; /* if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { */ case 4: _r$1 = repl(buf, a); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } buf = _r$1; /* } */ case 5: lastMatchEnd = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]); width = 0; if (!(bsrc === sliceType$6.nil)) { _tuple = utf8.DecodeRune($subslice(bsrc, searchPos)); width = _tuple[1]; } else { _tuple$1 = utf8.DecodeRuneInString($substring(src, searchPos)); width = _tuple$1[1]; } if ((searchPos + width >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) { searchPos = searchPos + (width) >> 0; } else if ((searchPos + 1 >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) { searchPos = searchPos + (1) >> 0; } else { searchPos = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]); } /* } */ $s = 1; continue; case 2: if (!(bsrc === sliceType$6.nil)) { buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd)); } else { buf = $appendSlice(buf, $substring(src, lastMatchEnd)); } $s = -1; return buf; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.replaceAll }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.bsrc = bsrc; $f.buf = buf; $f.dstCap = dstCap; $f.endPos = endPos; $f.lastMatchEnd = lastMatchEnd; $f.nmatch = nmatch; $f.re = re; $f.repl = repl; $f.searchPos = searchPos; $f.src = src; $f.width = width; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.replaceAll = function(bsrc, src, nmatch, repl) { return this.$val.replaceAll(bsrc, src, nmatch, repl); }; Regexp.ptr.prototype.ReplaceAll = function(src, repl) { var _r, b, n, re, repl, src, srepl, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; n = $f.n; re = $f.re; repl = $f.repl; src = $f.src; srepl = $f.srepl; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = [re]; repl = [repl]; src = [src]; srepl = [srepl]; re[0] = this; n = 2; if (bytes.IndexByte(repl[0], 36) >= 0) { n = $imul(2, ((re[0].regexpRO.numSubexp + 1 >> 0))); } srepl[0] = ""; _r = re[0].replaceAll(src[0], "", n, (function(re, repl, src, srepl) { return function(dst, match) { var dst, match; if (!((srepl[0].length === repl[0].$length))) { srepl[0] = ($bytesToString(repl[0])); } return re[0].expand(dst, srepl[0], src[0], "", match); }; })(re, repl, src, srepl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } b = _r; $s = -1; return b; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAll }; } $f._r = _r; $f.b = b; $f.n = n; $f.re = re; $f.repl = repl; $f.src = src; $f.srepl = srepl; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.ReplaceAll = function(src, repl) { return this.$val.ReplaceAll(src, repl); }; Regexp.ptr.prototype.ReplaceAllLiteral = function(src, repl) { var _r, re, repl, src, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; re = $f.re; repl = $f.repl; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: repl = [repl]; re = this; _r = re.replaceAll(src, "", 2, (function(repl) { return function(dst, match) { var dst, match; return $appendSlice(dst, repl[0]); }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAllLiteral }; } $f._r = _r; $f.re = re; $f.repl = repl; $f.src = src; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.ReplaceAllLiteral = function(src, repl) { return this.$val.ReplaceAllLiteral(src, repl); }; Regexp.ptr.prototype.ReplaceAllFunc = function(src, repl) { var _r, re, repl, src, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; re = $f.re; repl = $f.repl; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: repl = [repl]; src = [src]; re = this; _r = re.replaceAll(src[0], "", 2, (function(repl, src) { return function $b(dst, match) { var _arg, _arg$1, _r, dst, match, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; dst = $f.dst; match = $f.match; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _arg = dst; _r = repl[0]($subslice(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; $s = -1; return $appendSlice(_arg, _arg$1); /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f.dst = dst; $f.match = match; $f.$s = $s; $f.$r = $r; return $f; }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAllFunc }; } $f._r = _r; $f.re = re; $f.repl = repl; $f.src = src; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.ReplaceAllFunc = function(src, repl) { return this.$val.ReplaceAllFunc(src, repl); }; init = function() { var _i, _index, _q, _r, _ref, b, y; _ref = (new sliceType$6($stringToBytes("\\.+*?()|[]{}^$"))); _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _index = (_r = b % 16, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); ((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index] = ((((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index]) | (((y = ((_q = b / 16, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) << 24 >>> 24))) >>> 0)); _i++; } }; Regexp.ptr.prototype.pad = function(a) { var a, n, re; re = this; if (a === sliceType$2.nil) { return sliceType$2.nil; } n = $imul(((1 + re.regexpRO.numSubexp >> 0)), 2); while (true) { if (!(a.$length < n)) { break; } a = $append(a, -1); } return a; }; Regexp.prototype.pad = function(a) { return this.$val.pad(a); }; Regexp.ptr.prototype.allMatches = function(s, b, n, deliver) { var _r, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, accept, b, deliver, end, i, matches, n, pos, prevMatchEnd, re, s, width, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; accept = $f.accept; b = $f.b; deliver = $f.deliver; end = $f.end; i = $f.i; matches = $f.matches; n = $f.n; pos = $f.pos; prevMatchEnd = $f.prevMatchEnd; re = $f.re; s = $f.s; width = $f.width; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = this; end = 0; if (b === sliceType$6.nil) { end = s.length; } else { end = b.$length; } _tmp = 0; _tmp$1 = 0; _tmp$2 = -1; pos = _tmp; i = _tmp$1; prevMatchEnd = _tmp$2; /* while (true) { */ case 1: /* if (!(i < n && pos <= end)) { break; } */ if(!(i < n && pos <= end)) { $s = 2; continue; } _r = re.doExecute($ifaceNil, b, s, pos, re.regexpRO.prog.NumCap, sliceType$2.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } matches = _r; if (matches.$length === 0) { /* break; */ $s = 2; continue; } accept = true; if ((1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]) === pos) { if ((0 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 0]) === prevMatchEnd) { accept = false; } width = 0; if (b === sliceType$6.nil) { _tuple = utf8.DecodeRuneInString($substring(s, pos, end)); width = _tuple[1]; } else { _tuple$1 = utf8.DecodeRune($subslice(b, pos, end)); width = _tuple$1[1]; } if (width > 0) { pos = pos + (width) >> 0; } else { pos = end + 1 >> 0; } } else { pos = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]); } prevMatchEnd = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]); /* */ if (accept) { $s = 4; continue; } /* */ $s = 5; continue; /* if (accept) { */ case 4: $r = deliver(re.pad(matches)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i = i + (1) >> 0; /* } */ case 5: /* } */ $s = 1; continue; case 2: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.allMatches }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.accept = accept; $f.b = b; $f.deliver = deliver; $f.end = end; $f.i = i; $f.matches = matches; $f.n = n; $f.pos = pos; $f.prevMatchEnd = prevMatchEnd; $f.re = re; $f.s = s; $f.width = width; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.allMatches = function(s, b, n, deliver) { return this.$val.allMatches(s, b, n, deliver); }; Regexp.ptr.prototype.Find = function(b) { var _r, a, b, dstCap, re, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; b = $f.b; dstCap = $f.dstCap; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = this; dstCap = arrayType$3.zero(); _r = re.doExecute($ifaceNil, b, "", 0, 2, $subslice(new sliceType$2(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } a = _r; if (a === sliceType$2.nil) { $s = -1; return sliceType$6.nil; } $s = -1; return $subslice(b, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])); /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.Find }; } $f._r = _r; $f.a = a; $f.b = b; $f.dstCap = dstCap; $f.re = re; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.Find = function(b) { return this.$val.Find(b); }; Regexp.ptr.prototype.FindIndex = function(b) { var _r, a, b, loc, re, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; b = $f.b; loc = $f.loc; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: loc = sliceType$2.nil; re = this; _r = re.doExecute($ifaceNil, b, "", 0, 2, sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } a = _r; if (a === sliceType$2.nil) { loc = sliceType$2.nil; $s = -1; return loc; } loc = $subslice(a, 0, 2); $s = -1; return loc; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindIndex }; } $f._r = _r; $f.a = a; $f.b = b; $f.loc = loc; $f.re = re; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindIndex = function(b) { return this.$val.FindIndex(b); }; Regexp.ptr.prototype.FindString = function(s) { var _r, a, dstCap, re, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; dstCap = $f.dstCap; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = this; dstCap = arrayType$3.zero(); _r = re.doExecute($ifaceNil, sliceType$6.nil, s, 0, 2, $subslice(new sliceType$2(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } a = _r; if (a === sliceType$2.nil) { $s = -1; return ""; } $s = -1; return $substring(s, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])); /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindString }; } $f._r = _r; $f.a = a; $f.dstCap = dstCap; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindString = function(s) { return this.$val.FindString(s); }; Regexp.ptr.prototype.FindStringIndex = function(s) { var _r, a, loc, re, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; loc = $f.loc; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: loc = sliceType$2.nil; re = this; _r = re.doExecute($ifaceNil, sliceType$6.nil, s, 0, 2, sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } a = _r; if (a === sliceType$2.nil) { loc = sliceType$2.nil; $s = -1; return loc; } loc = $subslice(a, 0, 2); $s = -1; return loc; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindStringIndex }; } $f._r = _r; $f.a = a; $f.loc = loc; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindStringIndex = function(s) { return this.$val.FindStringIndex(s); }; Regexp.ptr.prototype.FindReaderIndex = function(r) { var _r, a, loc, r, re, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; loc = $f.loc; r = $f.r; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: loc = sliceType$2.nil; re = this; _r = re.doExecute(r, sliceType$6.nil, "", 0, 2, sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } a = _r; if (a === sliceType$2.nil) { loc = sliceType$2.nil; $s = -1; return loc; } loc = $subslice(a, 0, 2); $s = -1; return loc; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindReaderIndex }; } $f._r = _r; $f.a = a; $f.loc = loc; $f.r = r; $f.re = re; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindReaderIndex = function(r) { return this.$val.FindReaderIndex(r); }; Regexp.ptr.prototype.FindSubmatch = function(b) { var _i, _r, _ref, a, b, dstCap, i, re, ret, x, x$1, x$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; a = $f.a; b = $f.b; dstCap = $f.dstCap; i = $f.i; re = $f.re; ret = $f.ret; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = this; dstCap = arrayType$4.zero(); _r = re.doExecute($ifaceNil, b, "", 0, re.regexpRO.prog.NumCap, $subslice(new sliceType$2(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } a = _r; if (a === sliceType$2.nil) { $s = -1; return sliceType$12.nil; } ret = $makeSlice(sliceType$12, (1 + re.regexpRO.numSubexp >> 0)); _ref = ret; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) { ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $subslice(b, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2])))); } _i++; } $s = -1; return ret; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindSubmatch }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.a = a; $f.b = b; $f.dstCap = dstCap; $f.i = i; $f.re = re; $f.ret = ret; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindSubmatch = function(b) { return this.$val.FindSubmatch(b); }; Regexp.ptr.prototype.Expand = function(dst, template, src, match) { var dst, match, re, src, template; re = this; return re.expand(dst, ($bytesToString(template)), src, "", match); }; Regexp.prototype.Expand = function(dst, template, src, match) { return this.$val.Expand(dst, template, src, match); }; Regexp.ptr.prototype.ExpandString = function(dst, template, src, match) { var dst, match, re, src, template; re = this; return re.expand(dst, template, sliceType$6.nil, src, match); }; Regexp.prototype.ExpandString = function(dst, template, src, match) { return this.$val.ExpandString(dst, template, src, match); }; Regexp.ptr.prototype.expand = function(dst, template, bsrc, src, match) { var _i, _ref, _tuple, bsrc, dst, i, i$1, match, name, namei, num, ok, re, rest, src, template, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; re = this; while (true) { if (!(template.length > 0)) { break; } i = strings.Index(template, "$"); if (i < 0) { break; } dst = $appendSlice(dst, $substring(template, 0, i)); template = $substring(template, i); if (template.length > 1 && (template.charCodeAt(1) === 36)) { dst = $append(dst, 36); template = $substring(template, 2); continue; } _tuple = extract(template); name = _tuple[0]; num = _tuple[1]; rest = _tuple[2]; ok = _tuple[3]; if (!ok) { dst = $append(dst, 36); template = $substring(template, 1); continue; } template = rest; if (num >= 0) { if ((($imul(2, num)) + 1 >> 0) < match.$length && (x = $imul(2, num), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { if (!(bsrc === sliceType$6.nil)) { dst = $appendSlice(dst, $subslice(bsrc, (x$1 = $imul(2, num), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, num)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); } else { dst = $appendSlice(dst, $substring(src, (x$3 = $imul(2, num), ((x$3 < 0 || x$3 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$3])), (x$4 = ($imul(2, num)) + 1 >> 0, ((x$4 < 0 || x$4 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$4])))); } } } else { _ref = re.regexpRO.subexpNames; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i$1 = _i; namei = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (name === namei && (($imul(2, i$1)) + 1 >> 0) < match.$length && (x$5 = $imul(2, i$1), ((x$5 < 0 || x$5 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$5])) >= 0) { if (!(bsrc === sliceType$6.nil)) { dst = $appendSlice(dst, $subslice(bsrc, (x$6 = $imul(2, i$1), ((x$6 < 0 || x$6 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$6])), (x$7 = ($imul(2, i$1)) + 1 >> 0, ((x$7 < 0 || x$7 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$7])))); } else { dst = $appendSlice(dst, $substring(src, (x$8 = $imul(2, i$1), ((x$8 < 0 || x$8 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$8])), (x$9 = ($imul(2, i$1)) + 1 >> 0, ((x$9 < 0 || x$9 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$9])))); } break; } _i++; } } } dst = $appendSlice(dst, template); return dst; }; Regexp.prototype.expand = function(dst, template, bsrc, src, match) { return this.$val.expand(dst, template, bsrc, src, match); }; extract = function(str) { var _tuple, brace, i, i$1, name, num, ok, rest, rune, size, str; name = ""; num = 0; rest = ""; ok = false; if (str.length < 2 || !((str.charCodeAt(0) === 36))) { return [name, num, rest, ok]; } brace = false; if (str.charCodeAt(1) === 123) { brace = true; str = $substring(str, 2); } else { str = $substring(str, 1); } i = 0; while (true) { if (!(i < str.length)) { break; } _tuple = utf8.DecodeRuneInString($substring(str, i)); rune = _tuple[0]; size = _tuple[1]; if (!unicode.IsLetter(rune) && !unicode.IsDigit(rune) && !((rune === 95))) { break; } i = i + (size) >> 0; } if (i === 0) { return [name, num, rest, ok]; } name = $substring(str, 0, i); if (brace) { if (i >= str.length || !((str.charCodeAt(i) === 125))) { return [name, num, rest, ok]; } i = i + (1) >> 0; } num = 0; i$1 = 0; while (true) { if (!(i$1 < name.length)) { break; } if (name.charCodeAt(i$1) < 48 || 57 < name.charCodeAt(i$1) || num >= 100000000) { num = -1; break; } num = (($imul(num, 10)) + ((name.charCodeAt(i$1) >> 0)) >> 0) - 48 >> 0; i$1 = i$1 + (1) >> 0; } if ((name.charCodeAt(0) === 48) && name.length > 1) { num = -1; } rest = $substring(str, i); ok = true; return [name, num, rest, ok]; }; Regexp.ptr.prototype.FindSubmatchIndex = function(b) { var _r, _r$1, b, re, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; b = $f.b; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = this; _r = re.doExecute($ifaceNil, b, "", 0, re.regexpRO.prog.NumCap, sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindSubmatchIndex }; } $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.re = re; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindSubmatchIndex = function(b) { return this.$val.FindSubmatchIndex(b); }; Regexp.ptr.prototype.FindStringSubmatch = function(s) { var _i, _r, _ref, a, dstCap, i, re, ret, s, x, x$1, x$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; a = $f.a; dstCap = $f.dstCap; i = $f.i; re = $f.re; ret = $f.ret; s = $f.s; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = this; dstCap = arrayType$4.zero(); _r = re.doExecute($ifaceNil, sliceType$6.nil, s, 0, re.regexpRO.prog.NumCap, $subslice(new sliceType$2(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } a = _r; if (a === sliceType$2.nil) { $s = -1; return sliceType$10.nil; } ret = $makeSlice(sliceType$10, (1 + re.regexpRO.numSubexp >> 0)); _ref = ret; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) { ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $substring(s, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2])))); } _i++; } $s = -1; return ret; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindStringSubmatch }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.a = a; $f.dstCap = dstCap; $f.i = i; $f.re = re; $f.ret = ret; $f.s = s; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindStringSubmatch = function(s) { return this.$val.FindStringSubmatch(s); }; Regexp.ptr.prototype.FindStringSubmatchIndex = function(s) { var _r, _r$1, re, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = this; _r = re.doExecute($ifaceNil, sliceType$6.nil, s, 0, re.regexpRO.prog.NumCap, sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindStringSubmatchIndex }; } $f._r = _r; $f._r$1 = _r$1; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindStringSubmatchIndex = function(s) { return this.$val.FindStringSubmatchIndex(s); }; Regexp.ptr.prototype.FindReaderSubmatchIndex = function(r) { var _r, _r$1, r, re, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; r = $f.r; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = this; _r = re.doExecute(r, sliceType$6.nil, "", 0, re.regexpRO.prog.NumCap, sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindReaderSubmatchIndex }; } $f._r = _r; $f._r$1 = _r$1; $f.r = r; $f.re = re; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindReaderSubmatchIndex = function(r) { return this.$val.FindReaderSubmatchIndex(r); }; Regexp.ptr.prototype.FindAll = function(b, n) { var b, n, re, result, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; n = $f.n; re = $f.re; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: b = [b]; result = [result]; re = this; if (n < 0) { n = b[0].$length + 1 >> 0; } result[0] = $makeSlice(sliceType$12, 0, 10); $r = re.allMatches("", b[0], n, (function(b, result) { return function(match) { var match; result[0] = $append(result[0], $subslice(b[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (result[0].$length === 0) { $s = -1; return sliceType$12.nil; } $s = -1; return result[0]; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAll }; } $f.b = b; $f.n = n; $f.re = re; $f.result = result; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindAll = function(b, n) { return this.$val.FindAll(b, n); }; Regexp.ptr.prototype.FindAllIndex = function(b, n) { var b, n, re, result, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; n = $f.n; re = $f.re; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: result = [result]; re = this; if (n < 0) { n = b.$length + 1 >> 0; } result[0] = $makeSlice(sliceType$13, 0, 10); $r = re.allMatches("", b, n, (function(result) { return function(match) { var match; result[0] = $append(result[0], $subslice(match, 0, 2)); }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (result[0].$length === 0) { $s = -1; return sliceType$13.nil; } $s = -1; return result[0]; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllIndex }; } $f.b = b; $f.n = n; $f.re = re; $f.result = result; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindAllIndex = function(b, n) { return this.$val.FindAllIndex(b, n); }; Regexp.ptr.prototype.FindAllString = function(s, n) { var n, re, result, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; n = $f.n; re = $f.re; result = $f.result; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: result = [result]; s = [s]; re = this; if (n < 0) { n = s[0].length + 1 >> 0; } result[0] = $makeSlice(sliceType$10, 0, 10); $r = re.allMatches(s[0], sliceType$6.nil, n, (function(result, s) { return function(match) { var match; result[0] = $append(result[0], $substring(s[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (result[0].$length === 0) { $s = -1; return sliceType$10.nil; } $s = -1; return result[0]; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllString }; } $f.n = n; $f.re = re; $f.result = result; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindAllString = function(s, n) { return this.$val.FindAllString(s, n); }; Regexp.ptr.prototype.FindAllStringIndex = function(s, n) { var n, re, result, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; n = $f.n; re = $f.re; result = $f.result; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: result = [result]; re = this; if (n < 0) { n = s.length + 1 >> 0; } result[0] = $makeSlice(sliceType$13, 0, 10); $r = re.allMatches(s, sliceType$6.nil, n, (function(result) { return function(match) { var match; result[0] = $append(result[0], $subslice(match, 0, 2)); }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (result[0].$length === 0) { $s = -1; return sliceType$13.nil; } $s = -1; return result[0]; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllStringIndex }; } $f.n = n; $f.re = re; $f.result = result; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindAllStringIndex = function(s, n) { return this.$val.FindAllStringIndex(s, n); }; Regexp.ptr.prototype.FindAllSubmatch = function(b, n) { var b, n, re, result, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; n = $f.n; re = $f.re; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: b = [b]; result = [result]; re = this; if (n < 0) { n = b[0].$length + 1 >> 0; } result[0] = $makeSlice(sliceType$14, 0, 10); $r = re.allMatches("", b[0], n, (function(b, result) { return function(match) { var _i, _q, _ref, j, match, slice, x, x$1, x$2; slice = $makeSlice(sliceType$12, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); _ref = slice; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } j = _i; if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $subslice(b[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); } _i++; } result[0] = $append(result[0], slice); }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (result[0].$length === 0) { $s = -1; return sliceType$14.nil; } $s = -1; return result[0]; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllSubmatch }; } $f.b = b; $f.n = n; $f.re = re; $f.result = result; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindAllSubmatch = function(b, n) { return this.$val.FindAllSubmatch(b, n); }; Regexp.ptr.prototype.FindAllSubmatchIndex = function(b, n) { var b, n, re, result, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; n = $f.n; re = $f.re; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: result = [result]; re = this; if (n < 0) { n = b.$length + 1 >> 0; } result[0] = $makeSlice(sliceType$13, 0, 10); $r = re.allMatches("", b, n, (function(result) { return function(match) { var match; result[0] = $append(result[0], match); }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (result[0].$length === 0) { $s = -1; return sliceType$13.nil; } $s = -1; return result[0]; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllSubmatchIndex }; } $f.b = b; $f.n = n; $f.re = re; $f.result = result; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindAllSubmatchIndex = function(b, n) { return this.$val.FindAllSubmatchIndex(b, n); }; Regexp.ptr.prototype.FindAllStringSubmatch = function(s, n) { var n, re, result, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; n = $f.n; re = $f.re; result = $f.result; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: result = [result]; s = [s]; re = this; if (n < 0) { n = s[0].length + 1 >> 0; } result[0] = $makeSlice(sliceType$15, 0, 10); $r = re.allMatches(s[0], sliceType$6.nil, n, (function(result, s) { return function(match) { var _i, _q, _ref, j, match, slice, x, x$1, x$2; slice = $makeSlice(sliceType$10, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); _ref = slice; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } j = _i; if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $substring(s[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); } _i++; } result[0] = $append(result[0], slice); }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (result[0].$length === 0) { $s = -1; return sliceType$15.nil; } $s = -1; return result[0]; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllStringSubmatch }; } $f.n = n; $f.re = re; $f.result = result; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindAllStringSubmatch = function(s, n) { return this.$val.FindAllStringSubmatch(s, n); }; Regexp.ptr.prototype.FindAllStringSubmatchIndex = function(s, n) { var n, re, result, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; n = $f.n; re = $f.re; result = $f.result; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: result = [result]; re = this; if (n < 0) { n = s.length + 1 >> 0; } result[0] = $makeSlice(sliceType$13, 0, 10); $r = re.allMatches(s, sliceType$6.nil, n, (function(result) { return function(match) { var match; result[0] = $append(result[0], match); }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (result[0].$length === 0) { $s = -1; return sliceType$13.nil; } $s = -1; return result[0]; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllStringSubmatchIndex }; } $f.n = n; $f.re = re; $f.result = result; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.FindAllStringSubmatchIndex = function(s, n) { return this.$val.FindAllStringSubmatchIndex(s, n); }; Regexp.ptr.prototype.Split = function(s, n) { var _i, _r, _ref, beg, end, match, matches, n, re, s, strings$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; beg = $f.beg; end = $f.end; match = $f.match; matches = $f.matches; n = $f.n; re = $f.re; s = $f.s; strings$1 = $f.strings$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: re = this; if (n === 0) { $s = -1; return sliceType$10.nil; } if (re.regexpRO.expr.length > 0 && (s.length === 0)) { $s = -1; return new sliceType$10([""]); } _r = re.FindAllStringIndex(s, n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } matches = _r; strings$1 = $makeSlice(sliceType$10, 0, matches.$length); beg = 0; end = 0; _ref = matches; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } match = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (n > 0 && strings$1.$length >= (n - 1 >> 0)) { break; } end = (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]); if (!(((1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]) === 0))) { strings$1 = $append(strings$1, $substring(s, beg, end)); } beg = (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]); _i++; } if (!((end === s.length))) { strings$1 = $append(strings$1, $substring(s, beg)); } $s = -1; return strings$1; /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.Split }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.beg = beg; $f.end = end; $f.match = match; $f.matches = matches; $f.n = n; $f.re = re; $f.s = s; $f.strings$1 = strings$1; $f.$s = $s; $f.$r = $r; return $f; }; Regexp.prototype.Split = function(s, n) { return this.$val.Split(s, n); }; ptrType.methods = [{prop: "reset", name: "reset", pkg: "regexp", typ: $funcType([$Int, $Int], [], false)}, {prop: "shouldVisit", name: "shouldVisit", pkg: "regexp", typ: $funcType([$Uint32, $Int], [$Bool], false)}, {prop: "push", name: "push", pkg: "regexp", typ: $funcType([$Uint32, $Int, $Int], [], false)}]; ptrType$10.methods = [{prop: "tryBacktrack", name: "tryBacktrack", pkg: "regexp", typ: $funcType([ptrType, input, $Uint32, $Int], [$Bool], false)}, {prop: "backtrack", name: "backtrack", pkg: "regexp", typ: $funcType([input, $Int, $Int, $Int], [$Bool], false)}, {prop: "newInputBytes", name: "newInputBytes", pkg: "regexp", typ: $funcType([sliceType$6], [input], false)}, {prop: "newInputString", name: "newInputString", pkg: "regexp", typ: $funcType([$String], [input], false)}, {prop: "newInputReader", name: "newInputReader", pkg: "regexp", typ: $funcType([io.RuneReader], [input], false)}, {prop: "init", name: "init", pkg: "regexp", typ: $funcType([$Int], [], false)}, {prop: "alloc", name: "alloc", pkg: "regexp", typ: $funcType([ptrType$5], [ptrType$4], false)}, {prop: "match", name: "match", pkg: "regexp", typ: $funcType([input, $Int], [$Bool], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([ptrType$11], [], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([ptrType$11, ptrType$11, $Int, $Int, $Int32, syntax.EmptyOp], [], false)}, {prop: "add", name: "add", pkg: "regexp", typ: $funcType([ptrType$11, $Uint32, $Int, sliceType$2, syntax.EmptyOp, ptrType$4], [ptrType$4], false)}, {prop: "onepass", name: "onepass", pkg: "regexp", typ: $funcType([input, $Int, $Int], [$Bool], false)}]; ptrType$7.methods = [{prop: "empty", name: "empty", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "next", name: "next", pkg: "regexp", typ: $funcType([], [$Uint32], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([], [], false)}, {prop: "contains", name: "contains", pkg: "regexp", typ: $funcType([$Uint32], [$Bool], false)}, {prop: "insert", name: "insert", pkg: "regexp", typ: $funcType([$Uint32], [], false)}, {prop: "insertNew", name: "insertNew", pkg: "regexp", typ: $funcType([$Uint32], [], false)}]; runeSlice.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; ptrType$3.methods = [{prop: "doMatch", name: "doMatch", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$6, $String], [$Bool], false)}, {prop: "doExecute", name: "doExecute", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$6, $String, $Int, $Int, sliceType$2], [sliceType$2], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "Longest", name: "Longest", pkg: "", typ: $funcType([], [], false)}, {prop: "get", name: "get", pkg: "regexp", typ: $funcType([], [ptrType$10], false)}, {prop: "put", name: "put", pkg: "regexp", typ: $funcType([ptrType$10], [], false)}, {prop: "NumSubexp", name: "NumSubexp", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SubexpNames", name: "SubexpNames", pkg: "", typ: $funcType([], [sliceType$10], false)}, {prop: "LiteralPrefix", name: "LiteralPrefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "MatchReader", name: "MatchReader", pkg: "", typ: $funcType([io.RuneReader], [$Bool], false)}, {prop: "MatchString", name: "MatchString", pkg: "", typ: $funcType([$String], [$Bool], false)}, {prop: "Match", name: "Match", pkg: "", typ: $funcType([sliceType$6], [$Bool], false)}, {prop: "ReplaceAllString", name: "ReplaceAllString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllLiteralString", name: "ReplaceAllLiteralString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllStringFunc", name: "ReplaceAllStringFunc", pkg: "", typ: $funcType([$String, funcType], [$String], false)}, {prop: "replaceAll", name: "replaceAll", pkg: "regexp", typ: $funcType([sliceType$6, $String, $Int, funcType$1], [sliceType$6], false)}, {prop: "ReplaceAll", name: "ReplaceAll", pkg: "", typ: $funcType([sliceType$6, sliceType$6], [sliceType$6], false)}, {prop: "ReplaceAllLiteral", name: "ReplaceAllLiteral", pkg: "", typ: $funcType([sliceType$6, sliceType$6], [sliceType$6], false)}, {prop: "ReplaceAllFunc", name: "ReplaceAllFunc", pkg: "", typ: $funcType([sliceType$6, funcType$2], [sliceType$6], false)}, {prop: "pad", name: "pad", pkg: "regexp", typ: $funcType([sliceType$2], [sliceType$2], false)}, {prop: "allMatches", name: "allMatches", pkg: "regexp", typ: $funcType([$String, sliceType$6, $Int, funcType$3], [], false)}, {prop: "Find", name: "Find", pkg: "", typ: $funcType([sliceType$6], [sliceType$6], false)}, {prop: "FindIndex", name: "FindIndex", pkg: "", typ: $funcType([sliceType$6], [sliceType$2], false)}, {prop: "FindString", name: "FindString", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "FindStringIndex", name: "FindStringIndex", pkg: "", typ: $funcType([$String], [sliceType$2], false)}, {prop: "FindReaderIndex", name: "FindReaderIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$2], false)}, {prop: "FindSubmatch", name: "FindSubmatch", pkg: "", typ: $funcType([sliceType$6], [sliceType$12], false)}, {prop: "Expand", name: "Expand", pkg: "", typ: $funcType([sliceType$6, sliceType$6, sliceType$6, sliceType$2], [sliceType$6], false)}, {prop: "ExpandString", name: "ExpandString", pkg: "", typ: $funcType([sliceType$6, $String, $String, sliceType$2], [sliceType$6], false)}, {prop: "expand", name: "expand", pkg: "regexp", typ: $funcType([sliceType$6, $String, sliceType$6, $String, sliceType$2], [sliceType$6], false)}, {prop: "FindSubmatchIndex", name: "FindSubmatchIndex", pkg: "", typ: $funcType([sliceType$6], [sliceType$2], false)}, {prop: "FindStringSubmatch", name: "FindStringSubmatch", pkg: "", typ: $funcType([$String], [sliceType$10], false)}, {prop: "FindStringSubmatchIndex", name: "FindStringSubmatchIndex", pkg: "", typ: $funcType([$String], [sliceType$2], false)}, {prop: "FindReaderSubmatchIndex", name: "FindReaderSubmatchIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$2], false)}, {prop: "FindAll", name: "FindAll", pkg: "", typ: $funcType([sliceType$6, $Int], [sliceType$12], false)}, {prop: "FindAllIndex", name: "FindAllIndex", pkg: "", typ: $funcType([sliceType$6, $Int], [sliceType$13], false)}, {prop: "FindAllString", name: "FindAllString", pkg: "", typ: $funcType([$String, $Int], [sliceType$10], false)}, {prop: "FindAllStringIndex", name: "FindAllStringIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$13], false)}, {prop: "FindAllSubmatch", name: "FindAllSubmatch", pkg: "", typ: $funcType([sliceType$6, $Int], [sliceType$14], false)}, {prop: "FindAllSubmatchIndex", name: "FindAllSubmatchIndex", pkg: "", typ: $funcType([sliceType$6, $Int], [sliceType$13], false)}, {prop: "FindAllStringSubmatch", name: "FindAllStringSubmatch", pkg: "", typ: $funcType([$String, $Int], [sliceType$15], false)}, {prop: "FindAllStringSubmatchIndex", name: "FindAllStringSubmatchIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$13], false)}, {prop: "Split", name: "Split", pkg: "", typ: $funcType([$String, $Int], [sliceType$10], false)}]; ptrType$12.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType$3, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [syntax.EmptyOp], false)}]; ptrType$13.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType$3, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [syntax.EmptyOp], false)}]; ptrType$14.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType$3, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [syntax.EmptyOp], false)}]; job.init("regexp", [{prop: "pc", name: "pc", anonymous: false, exported: false, typ: $Uint32, tag: ""}, {prop: "arg", name: "arg", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "pos", name: "pos", anonymous: false, exported: false, typ: $Int, tag: ""}]); bitState.init("regexp", [{prop: "prog", name: "prog", anonymous: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "end", name: "end", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "cap", name: "cap", anonymous: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "jobs", name: "jobs", anonymous: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "visited", name: "visited", anonymous: false, exported: false, typ: sliceType$1, tag: ""}]); queue.init("regexp", [{prop: "sparse", name: "sparse", anonymous: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "dense", name: "dense", anonymous: false, exported: false, typ: sliceType$4, tag: ""}]); entry.init("regexp", [{prop: "pc", name: "pc", anonymous: false, exported: false, typ: $Uint32, tag: ""}, {prop: "t", name: "t", anonymous: false, exported: false, typ: ptrType$4, tag: ""}]); thread.init("regexp", [{prop: "inst", name: "inst", anonymous: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "cap", name: "cap", anonymous: false, exported: false, typ: sliceType$2, tag: ""}]); machine.init("regexp", [{prop: "re", name: "re", anonymous: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "p", name: "p", anonymous: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "op", name: "op", anonymous: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "maxBitStateLen", name: "maxBitStateLen", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "b", name: "b", anonymous: false, exported: false, typ: ptrType, tag: ""}, {prop: "q0", name: "q0", anonymous: false, exported: false, typ: queue, tag: ""}, {prop: "q1", name: "q1", anonymous: false, exported: false, typ: queue, tag: ""}, {prop: "pool", name: "pool", anonymous: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "matched", name: "matched", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "matchcap", name: "matchcap", anonymous: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "inputBytes", name: "inputBytes", anonymous: false, exported: false, typ: inputBytes, tag: ""}, {prop: "inputString", name: "inputString", anonymous: false, exported: false, typ: inputString, tag: ""}, {prop: "inputReader", name: "inputReader", anonymous: false, exported: false, typ: inputReader, tag: ""}]); onePassProg.init("", [{prop: "Inst", name: "Inst", anonymous: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "Start", name: "Start", anonymous: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", anonymous: false, exported: true, typ: $Int, tag: ""}]); onePassInst.init("", [{prop: "Inst", name: "Inst", anonymous: true, exported: true, typ: syntax.Inst, tag: ""}, {prop: "Next", name: "Next", anonymous: false, exported: true, typ: sliceType$1, tag: ""}]); queueOnePass.init("regexp", [{prop: "sparse", name: "sparse", anonymous: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "dense", name: "dense", anonymous: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "size", name: "size", anonymous: false, exported: false, typ: $Uint32, tag: ""}, {prop: "nextIndex", name: "nextIndex", anonymous: false, exported: false, typ: $Uint32, tag: ""}]); runeSlice.init($Int32); Regexp.init("regexp", [{prop: "regexpRO", name: "regexpRO", anonymous: true, exported: false, typ: regexpRO, tag: ""}, {prop: "mu", name: "mu", anonymous: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "machine", name: "machine", anonymous: false, exported: false, typ: sliceType$11, tag: ""}]); regexpRO.init("regexp", [{prop: "expr", name: "expr", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "prog", name: "prog", anonymous: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "onepass", name: "onepass", anonymous: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "prefix", name: "prefix", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "prefixBytes", name: "prefixBytes", anonymous: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "prefixComplete", name: "prefixComplete", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "prefixRune", name: "prefixRune", anonymous: false, exported: false, typ: $Int32, tag: ""}, {prop: "prefixEnd", name: "prefixEnd", anonymous: false, exported: false, typ: $Uint32, tag: ""}, {prop: "cond", name: "cond", anonymous: false, exported: false, typ: syntax.EmptyOp, tag: ""}, {prop: "numSubexp", name: "numSubexp", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "subexpNames", name: "subexpNames", anonymous: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "longest", name: "longest", anonymous: false, exported: false, typ: $Bool, tag: ""}]); input.init([{prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [syntax.EmptyOp], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType$3, $Int], [$Int], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}]); inputString.init("regexp", [{prop: "str", name: "str", anonymous: false, exported: false, typ: $String, tag: ""}]); inputBytes.init("regexp", [{prop: "str", name: "str", anonymous: false, exported: false, typ: sliceType$6, tag: ""}]); inputReader.init("regexp", [{prop: "r", name: "r", anonymous: false, exported: false, typ: io.RuneReader, tag: ""}, {prop: "atEOT", name: "atEOT", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", anonymous: false, exported: false, typ: $Int, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = nosync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = syntax.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = unicode.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } arrayNoInts = arrayType.zero(); specialBytes = arrayType$1.zero(); notBacktrack = ptrType.nil; noRune = new sliceType([]); noNext = new sliceType$1([4294967295]); anyRuneNotNL = new sliceType([0, 9, 11, 1114111]); anyRune = new sliceType([0, 1114111]); notOnePass = ptrType$1.nil; init(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["github.com/asciian/iris/reader/tokenizer"] = (function() { var $pkg = {}, $init, bufio, io, regexp, strings, Reader, ptrType, sliceType, sliceType$1, ptrType$1, str, re, _r, NewReader; bufio = $packages["bufio"]; io = $packages["io"]; regexp = $packages["regexp"]; strings = $packages["strings"]; Reader = $pkg.Reader = $newType(0, $kindStruct, "tokenizer.Reader", true, "github.com/asciian/iris/reader/tokenizer", true, function(err_, ru_, sz_, rr_) { this.$val = this; if (arguments.length === 0) { this.err = $ifaceNil; this.ru = 0; this.sz = 0; this.rr = ptrType.nil; return; } this.err = err_; this.ru = ru_; this.sz = sz_; this.rr = rr_; }); ptrType = $ptrType(bufio.Reader); sliceType = $sliceType($Uint8); sliceType$1 = $sliceType($Int32); ptrType$1 = $ptrType(Reader); NewReader = function(r) { var b, r; b = new Reader.ptr($ifaceNil, 0, 0, ptrType.nil); b.rr = bufio.NewReader(r); return b; }; $pkg.NewReader = NewReader; Reader.ptr.prototype.PeekRune = function() { var _r$1, _tuple, r, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _tuple = $f._tuple; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: r = this; /* */ if (r.ru === 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if (r.ru === 0) { */ case 1: _r$1 = r.rr.ReadRune(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; r.ru = _tuple[0]; r.sz = _tuple[1]; r.err = _tuple[2]; /* } */ case 2: $s = -1; return [r.ru, r.sz, r.err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.PeekRune }; } $f._r$1 = _r$1; $f._tuple = _tuple; $f.r = r; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.PeekRune = function() { return this.$val.PeekRune(); }; Reader.ptr.prototype.ReadRune = function() { var _r$1, _r$2, _tuple, _tuple$1, err, r, ru, sz, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; err = $f.err; r = $f.r; ru = $f.ru; sz = $f.sz; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: r = this; /* */ if (r.ru === 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if (r.ru === 0) { */ case 1: _r$1 = r.rr.ReadRune(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; r.ru = _tuple[0]; r.sz = _tuple[1]; r.err = _tuple[2]; /* } */ case 2: ru = r.ru; sz = r.sz; err = r.err; _r$2 = r.rr.ReadRune(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; r.ru = _tuple$1[0]; r.sz = _tuple$1[1]; r.err = _tuple$1[2]; $s = -1; return [ru, sz, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.ReadRune }; } $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.err = err; $f.r = r; $f.ru = ru; $f.sz = sz; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.ReadRune = function() { return this.$val.ReadRune(); }; Reader.ptr.prototype.Read = function(b) { var _r$1, _tuple, b, err, r, ru, sz, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _tuple = $f._tuple; b = $f.b; err = $f.err; r = $f.r; ru = $f.ru; sz = $f.sz; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: r = this; ru = r.ru; sz = r.sz; err = r.err; _r$1 = r.rr.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; r.ru = _tuple[0]; r.sz = _tuple[1]; r.err = _tuple[2]; $copySlice(b, (new sliceType($stringToBytes(($runesToString(new sliceType$1([ru]))))))); $s = -1; return [sz, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.Read }; } $f._r$1 = _r$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.r = r; $f.ru = ru; $f.sz = sz; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.Read = function(b) { return this.$val.Read(b); }; Reader.ptr.prototype.Next = function() { var _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _v, buf, err, err$1, mat, matched, num, r, ru, ru$1, shp, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _v = $f._v; buf = $f.buf; err = $f.err; err$1 = $f.err$1; mat = $f.mat; matched = $f.matched; num = $f.num; r = $f.r; ru = $f.ru; ru$1 = $f.ru$1; shp = $f.shp; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: r = this; /* while (true) { */ case 1: _r$1 = r.PeekRune(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; ru = _tuple[0]; err = _tuple[2]; if ((ru === 0) || !($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return ["", io.EOF]; } if (!strings.ContainsRune(" \t\n\r", ru)) { /* break; */ $s = 2; continue; } _r$2 = r.ReadRune(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; /* } */ $s = 1; continue; case 2: buf = ""; mat = false; num = false; shp = false; /* while (true) { */ case 5: _r$3 = r.PeekRune(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$1 = _r$3; ru$1 = _tuple$1[0]; err$1 = _tuple$1[2]; if ((ru$1 === 0) || !($interfaceIsEqual(err$1, $ifaceNil))) { if (mat) { $s = -1; return [buf, $ifaceNil]; } $s = -1; return ["", io.EOF]; } if (buf === "" && strings.ContainsRune("1234567890", ru$1)) { num = true; } if (buf === "" && (35 === ru$1)) { shp = true; } if (!(mat)) { _v = false; $s = 10; continue s; } _r$4 = re.MatchString(buf + ($encodeRune(ru$1))); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _v = !_r$4; case 10: /* */ if (_v) { $s = 8; continue; } /* */ $s = 9; continue; /* if (_v) { */ case 8: /* */ if (num && strings.ContainsRune(".Ee", ru$1)) { $s = 12; continue; } /* */ $s = 13; continue; /* if (num && strings.ContainsRune(".Ee", ru$1)) { */ case 12: buf = buf + (($encodeRune(ru$1))); _r$5 = r.ReadRune(); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _r$5; /* continue; */ $s = 5; continue; /* } */ case 13: /* */ if (shp) { $s = 15; continue; } /* */ $s = 16; continue; /* if (shp) { */ case 15: /* */ if ((buf.length === 1) && (ru$1 === 92)) { $s = 17; continue; } /* */ $s = 18; continue; /* if ((buf.length === 1) && (ru$1 === 92)) { */ case 17: buf = buf + (($encodeRune(ru$1))); _r$6 = r.ReadRune(); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _r$6; /* continue; */ $s = 5; continue; /* } */ case 18: _r$7 = regexp.MatchString("^#[0123456789]*$", buf + ($encodeRune(ru$1))); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple$2 = _r$7; matched = _tuple$2[0]; /* */ if (matched) { $s = 21; continue; } /* */ $s = 22; continue; /* if (matched) { */ case 21: buf = buf + (($encodeRune(ru$1))); _r$8 = r.ReadRune(); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _r$8; /* continue; */ $s = 5; continue; /* } */ case 22: /* } */ case 16: /* break; */ $s = 6; continue; /* } */ case 9: buf = buf + (($encodeRune(ru$1))); _r$9 = re.MatchString(buf); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } /* */ if (_r$9) { $s = 24; continue; } /* */ $s = 25; continue; /* if (_r$9) { */ case 24: mat = true; /* } */ case 25: _r$10 = r.ReadRune(); /* */ $s = 27; case 27: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _r$10; /* } */ $s = 5; continue; case 6: $s = -1; return [buf, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.Next }; } $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._v = _v; $f.buf = buf; $f.err = err; $f.err$1 = err$1; $f.mat = mat; $f.matched = matched; $f.num = num; $f.r = r; $f.ru = ru; $f.ru$1 = ru$1; $f.shp = shp; $f.$s = $s; $f.$r = $r; return $f; }; Reader.prototype.Next = function() { return this.$val.Next(); }; ptrType$1.methods = [{prop: "PeekRune", name: "PeekRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([], [$String, $error], false)}]; Reader.init("github.com/asciian/iris/reader/tokenizer", [{prop: "err", name: "err", anonymous: false, exported: false, typ: $error, tag: ""}, {prop: "ru", name: "ru", anonymous: false, exported: false, typ: $Int32, tag: ""}, {prop: "sz", name: "sz", anonymous: false, exported: false, typ: $Int, tag: ""}, {prop: "rr", name: "rr", anonymous: false, exported: false, typ: ptrType, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = bufio.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = regexp.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strings.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } str = "^1\\+$|^1-$|^[-+]?[[:digit:]]+\\.[[:digit:]]+$|^[-+]?[[:digit:]]+(?:\\.[[:digit:]]+)?[eE][-+]?[[:digit:]]+$|^[-+]?[[:digit:]]+$|^#[bB][-+]?[01]+$|^#[oO][-+]?[0-7]+$|^#[xX][-+]?[[:xdigit:]]+$|^#\\\\[[:alpha:]]+$|^#\\\\[[:graph:]]$|^\"(?:\\\\\\\\|\\\\\"|[^\\\\\"])*\"$|^[:&][a-zA-Z]+$|^\\+$|^-$|^[a-zA-Z<>/*=?_!$%[\\]^{}~][-a-zA-Z0-9+<>/*=?_!$%[\\]^{}~]*$|^\\|(?:\\\\\\\\|\\\\\\||[^\\\\|])*\\|$|^[.()]$|^;.*?\n|$^#\\|.*?\\|#$|^#'$|^,@?$|^'$|^`$|^#[[:digit:]]*[aA]$|^#$"; _r = regexp.MustCompile(str); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } re = _r; /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["github.com/asciian/iris/runtime/ilos"] = (function() { var $pkg = {}, $init, reflect, Class, Instance, sliceType, sliceType$1, SubclassOf, InstanceOf; reflect = $packages["reflect"]; Class = $pkg.Class = $newType(8, $kindInterface, "ilos.Class", true, "github.com/asciian/iris/runtime/ilos", true, null); Instance = $pkg.Instance = $newType(8, $kindInterface, "ilos.Instance", true, "github.com/asciian/iris/runtime/ilos", true, null); sliceType = $sliceType(Instance); sliceType$1 = $sliceType(Class); SubclassOf = function(super$1, sub) { var _i, _r, _r$1, _ref, d, sub, subclassof, super$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; d = $f.d; sub = $f.sub; subclassof = $f.subclassof; super$1 = $f.super$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: subclassof = [subclassof]; subclassof[0] = $throwNilPointerError; subclassof[0] = (function(subclassof) { return function $b(p, c) { var _i, _r, _r$1, _r$2, _ref, c, d, p, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; c = $f.c; d = $f.d; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = reflect.DeepEqual(c, p); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return true; /* } */ case 2: _r$1 = c.Supers(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _ref = _r$1; _i = 0; /* while (true) { */ case 5: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$2 = subclassof[0](p, d); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (_r$2) { $s = 7; continue; } /* */ $s = 8; continue; /* if (_r$2) { */ case 7: $s = -1; return true; /* } */ case 8: _i++; /* } */ $s = 5; continue; case 6: $s = -1; return false; /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f.c = c; $f.d = d; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; }; })(subclassof); _r = sub.Supers(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _ref = _r; _i = 0; /* while (true) { */ case 2: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$1 = subclassof[0](super$1, d); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_r$1) { */ case 4: $s = -1; return true; /* } */ case 5: _i++; /* } */ $s = 2; continue; case 3: $s = -1; return false; /* */ } return; } if ($f === undefined) { $f = { $blk: SubclassOf }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f.d = d; $f.sub = sub; $f.subclassof = subclassof; $f.super$1 = super$1; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.SubclassOf = SubclassOf; InstanceOf = function(p, i) { var _arg, _arg$1, _r, _r$1, _r$2, _r$3, i, p, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; i = $f.i; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = i.Class(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = reflect.DeepEqual(_r, p); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r$1) { */ case 1: $s = -1; return true; /* } */ case 2: _arg = p; _r$2 = i.Class(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; _r$3 = SubclassOf(_arg, _arg$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* */ } return; } if ($f === undefined) { $f = { $blk: InstanceOf }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.i = i; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.InstanceOf = InstanceOf; Class.init([{prop: "Class", name: "Class", pkg: "", typ: $funcType([], [Class], false)}, {prop: "Initarg", name: "Initarg", pkg: "", typ: $funcType([Instance], [Instance, $Bool], false)}, {prop: "Initform", name: "Initform", pkg: "", typ: $funcType([Instance], [Instance, $Bool], false)}, {prop: "Slots", name: "Slots", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Supers", name: "Supers", pkg: "", typ: $funcType([], [sliceType$1], false)}]); Instance.init([{prop: "Class", name: "Class", pkg: "", typ: $funcType([], [Class], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = reflect.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["github.com/asciian/iris/runtime/env"] = (function() { var $pkg = {}, $init, ilos, Environment, map2, stack, arrayType, mapType, sliceType, ptrType, NewEnvironment, NewMap2, NewStack; ilos = $packages["github.com/asciian/iris/runtime/ilos"]; Environment = $pkg.Environment = $newType(0, $kindStruct, "env.Environment", true, "github.com/asciian/iris/runtime/env", true, function(BlockTag_, TagbodyTag_, Function_, Variable_, Class_, Macro_, Special_, Property_, Constant_, CatchTag_, DynamicVariable_, StandardInput_, StandardOutput_, ErrorOutput_, Handler_) { this.$val = this; if (arguments.length === 0) { this.BlockTag = stack.nil; this.TagbodyTag = stack.nil; this.Function = stack.nil; this.Variable = stack.nil; this.Class = stack.nil; this.Macro = stack.nil; this.Special = stack.nil; this.Property = false; this.Constant = stack.nil; this.CatchTag = stack.nil; this.DynamicVariable = stack.nil; this.StandardInput = $ifaceNil; this.StandardOutput = $ifaceNil; this.ErrorOutput = $ifaceNil; this.Handler = $ifaceNil; return; } this.BlockTag = BlockTag_; this.TagbodyTag = TagbodyTag_; this.Function = Function_; this.Variable = Variable_; this.Class = Class_; this.Macro = Macro_; this.Special = Special_; this.Property = Property_; this.Constant = Constant_; this.CatchTag = CatchTag_; this.DynamicVariable = DynamicVariable_; this.StandardInput = StandardInput_; this.StandardOutput = StandardOutput_; this.ErrorOutput = ErrorOutput_; this.Handler = Handler_; }); map2 = $pkg.map2 = $newType(4, $kindMap, "env.map2", true, "github.com/asciian/iris/runtime/env", false, null); stack = $pkg.stack = $newType(12, $kindSlice, "env.stack", true, "github.com/asciian/iris/runtime/env", false, null); arrayType = $arrayType(ilos.Instance, 2); mapType = $mapType(ilos.Instance, ilos.Instance); sliceType = $sliceType(mapType); ptrType = $ptrType(Environment); NewEnvironment = function(stdin, stdout, stderr, handler) { var e, handler, stderr, stdin, stdout; e = new Environment.ptr(stack.nil, stack.nil, stack.nil, stack.nil, stack.nil, stack.nil, stack.nil, false, stack.nil, stack.nil, stack.nil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil); e.BlockTag = NewStack(); e.TagbodyTag = NewStack(); e.Function = NewStack(); e.Variable = NewStack(); e.Macro = NewStack(); e.Class = NewStack(); e.Special = NewStack(); e.Constant = NewStack(); e.Property = NewMap2(); e.CatchTag = NewStack(); e.DynamicVariable = NewStack(); e.StandardInput = stdin; e.StandardOutput = stdout; e.ErrorOutput = stderr; e.Handler = handler; return e; }; $pkg.NewEnvironment = NewEnvironment; Environment.ptr.prototype.MergeLexical = function(before) { var before, e; e = this; e.BlockTag = before.BlockTag.Append($subslice(e.BlockTag, 1)); e.TagbodyTag = before.TagbodyTag.Append($subslice(e.TagbodyTag, 1)); e.Variable = before.Variable.Append($subslice(e.Variable, 1)); e.Function = before.Function.Append($subslice(e.Function, 1)); e.Macro = before.Macro.Append($subslice(e.Macro, 1)); e.Class = before.Class.Append($subslice(e.Class, 1)); e.Special = before.Special.Append($subslice(e.Special, 1)); e.Constant = before.Constant.Append($subslice(e.Constant, 1)); e.Property = before.Property; e.CatchTag = before.CatchTag.Append($subslice(e.CatchTag, 1)); e.DynamicVariable = before.DynamicVariable.Append($subslice(e.DynamicVariable, 1)); e.StandardInput = before.StandardInput; e.StandardOutput = before.StandardOutput; e.ErrorOutput = before.ErrorOutput; e.Handler = before.Handler; }; Environment.prototype.MergeLexical = function(before) { return this.$val.MergeLexical(before); }; Environment.ptr.prototype.NewLexical = function() { var before, e; before = this; e = $clone(NewEnvironment(before.StandardInput, before.StandardOutput, before.ErrorOutput, before.Handler), Environment); e.BlockTag = before.BlockTag.Append(e.BlockTag); e.TagbodyTag = before.TagbodyTag.Append(e.TagbodyTag); e.Variable = before.Variable.Append(e.Variable); e.Function = before.Function.Append(e.Function); e.Macro = before.Macro.Append(e.Macro); e.Class = before.Class.Append(e.Class); e.Special = before.Special.Append(e.Special); e.Constant = before.Constant.Append(e.Constant); e.Property = before.Property; e.CatchTag = before.CatchTag.Append(e.CatchTag); e.DynamicVariable = before.DynamicVariable.Append(e.DynamicVariable); e.StandardInput = before.StandardInput; e.StandardOutput = before.StandardOutput; e.ErrorOutput = before.ErrorOutput; e.Handler = before.Handler; return e; }; Environment.prototype.NewLexical = function() { return this.$val.NewLexical(); }; Environment.ptr.prototype.NewDynamic = function() { var before, e, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; before = this; e = $clone(NewEnvironment(before.StandardInput, before.StandardOutput, before.ErrorOutput, before.Handler), Environment); e.BlockTag = new stack([(x = before.BlockTag, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))]).Append(e.BlockTag); e.TagbodyTag = new stack([(x$1 = before.TagbodyTag, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))]).Append(e.TagbodyTag); e.Variable = new stack([(x$2 = before.Variable, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))]).Append(e.Variable); e.Function = new stack([(x$3 = before.Function, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0]))]).Append(e.Function); e.Macro = new stack([(x$4 = before.Macro, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0]))]).Append(e.Macro); e.Class = new stack([(x$5 = before.Class, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))]).Append(e.Class); e.Special = new stack([(x$6 = before.Special, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))]).Append(e.Special); e.Constant = new stack([(x$7 = before.Constant, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0]))]).Append(e.Constant); e.Property = before.Property; e.CatchTag = before.CatchTag.Append(e.CatchTag); e.DynamicVariable = before.DynamicVariable.Append(e.DynamicVariable); e.StandardInput = before.StandardInput; e.StandardOutput = before.StandardOutput; e.ErrorOutput = before.ErrorOutput; e.Handler = before.Handler; return e; }; Environment.prototype.NewDynamic = function() { return this.$val.NewDynamic(); }; NewMap2 = function() { return $makeMap(arrayType.keyFor, []); }; $pkg.NewMap2 = NewMap2; map2.prototype.Get = function(key1, key2) { var _entry, _tuple, key1, key2, ok, s, v; s = this.$val; _tuple = (_entry = s[arrayType.keyFor($toNativeArray($kindInterface, [key1, key2]))], _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); v = _tuple[0]; ok = _tuple[1]; if (ok) { return [v, true]; } return [$ifaceNil, false]; }; $ptrType(map2).prototype.Get = function(key1, key2) { return new map2(this.$get()).Get(key1, key2); }; map2.prototype.Set = function(key1, key2, value) { var _key, key1, key2, s, value; s = this.$val; _key = $toNativeArray($kindInterface, [key1, key2]); (s || $throwRuntimeError("assignment to entry in nil map"))[arrayType.keyFor(_key)] = { k: _key, v: value }; }; $ptrType(map2).prototype.Set = function(key1, key2, value) { return new map2(this.$get()).Set(key1, key2, value); }; map2.prototype.Delete = function(key1, key2) { var _entry, _tuple, key1, key2, ok, s, v; s = this.$val; _tuple = (_entry = s[arrayType.keyFor($toNativeArray($kindInterface, [key1, key2]))], _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); v = _tuple[0]; ok = _tuple[1]; if (ok) { delete s[arrayType.keyFor($toNativeArray($kindInterface, [key1, key2]))]; return [v, true]; } return [$ifaceNil, false]; }; $ptrType(map2).prototype.Delete = function(key1, key2) { return new map2(this.$get()).Delete(key1, key2); }; NewStack = function() { var x; return (x = new sliceType([$makeMap(ilos.Instance.keyFor, [])]), $subslice(new stack(x.$array), x.$offset, x.$offset + x.$length)); }; $pkg.NewStack = NewStack; stack.prototype.Get = function(key) { var _entry, _tuple, i, key, ok, s, v; s = this; i = s.$length - 1 >> 0; while (true) { if (!(i >= 0)) { break; } _tuple = (_entry = ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i])[ilos.Instance.keyFor(key)], _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); v = _tuple[0]; ok = _tuple[1]; if (ok) { return [v, true]; } i = i - (1) >> 0; } return [$ifaceNil, false]; }; $ptrType(stack).prototype.Get = function(key) { return this.$get().Get(key); }; stack.prototype.Set = function(key, value) { var _entry, _key, _tuple, i, key, ok, s, value; s = this; i = s.$length - 1 >> 0; while (true) { if (!(i >= 0)) { break; } _tuple = (_entry = ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i])[ilos.Instance.keyFor(key)], _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); ok = _tuple[1]; if (ok) { _key = key; (((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]) || $throwRuntimeError("assignment to entry in nil map"))[ilos.Instance.keyFor(_key)] = { k: _key, v: value }; return true; } i = i - (1) >> 0; } return false; }; $ptrType(stack).prototype.Set = function(key, value) { return this.$get().Set(key, value); }; stack.prototype.Define = function(key, value) { var _entry, _key, _key$1, _tuple, key, ok, s, value, x, x$1, x$2; s = this; _tuple = (_entry = (x = s.$length - 1 >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x]))[ilos.Instance.keyFor(key)], _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); ok = _tuple[1]; if (!ok) { _key = key; ((x$1 = s.$length - 1 >> 0, ((x$1 < 0 || x$1 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x$1])) || $throwRuntimeError("assignment to entry in nil map"))[ilos.Instance.keyFor(_key)] = { k: _key, v: value }; return true; } _key$1 = key; ((x$2 = s.$length - 1 >> 0, ((x$2 < 0 || x$2 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x$2])) || $throwRuntimeError("assignment to entry in nil map"))[ilos.Instance.keyFor(_key$1)] = { k: _key$1, v: value }; return false; }; $ptrType(stack).prototype.Define = function(key, value) { return this.$get().Define(key, value); }; stack.prototype.Append = function(t) { var s, t, u; s = this; u = new stack([]); u = $appendSlice(u, $subslice(new sliceType(s.$array), s.$offset, s.$offset + s.$length)); u = $appendSlice(u, $subslice(new sliceType(t.$array), t.$offset, t.$offset + t.$length)); return u; }; $ptrType(stack).prototype.Append = function(t) { return this.$get().Append(t); }; ptrType.methods = [{prop: "MergeLexical", name: "MergeLexical", pkg: "", typ: $funcType([Environment], [], false)}, {prop: "NewLexical", name: "NewLexical", pkg: "", typ: $funcType([], [Environment], false)}, {prop: "NewDynamic", name: "NewDynamic", pkg: "", typ: $funcType([], [Environment], false)}]; map2.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([ilos.Instance, ilos.Instance], [ilos.Instance, $Bool], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ilos.Instance, ilos.Instance, ilos.Instance], [], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([ilos.Instance, ilos.Instance], [ilos.Instance, $Bool], false)}]; stack.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([ilos.Instance], [ilos.Instance, $Bool], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ilos.Instance, ilos.Instance], [$Bool], false)}, {prop: "Define", name: "Define", pkg: "", typ: $funcType([ilos.Instance, ilos.Instance], [$Bool], false)}, {prop: "Append", name: "Append", pkg: "", typ: $funcType([stack], [stack], false)}]; Environment.init("", [{prop: "BlockTag", name: "BlockTag", anonymous: false, exported: true, typ: stack, tag: ""}, {prop: "TagbodyTag", name: "TagbodyTag", anonymous: false, exported: true, typ: stack, tag: ""}, {prop: "Function", name: "Function", anonymous: false, exported: true, typ: stack, tag: ""}, {prop: "Variable", name: "Variable", anonymous: false, exported: true, typ: stack, tag: ""}, {prop: "Class", name: "Class", anonymous: false, exported: true, typ: stack, tag: ""}, {prop: "Macro", name: "Macro", anonymous: false, exported: true, typ: stack, tag: ""}, {prop: "Special", name: "Special", anonymous: false, exported: true, typ: stack, tag: ""}, {prop: "Property", name: "Property", anonymous: false, exported: true, typ: map2, tag: ""}, {prop: "Constant", name: "Constant", anonymous: false, exported: true, typ: stack, tag: ""}, {prop: "CatchTag", name: "CatchTag", anonymous: false, exported: true, typ: stack, tag: ""}, {prop: "DynamicVariable", name: "DynamicVariable", anonymous: false, exported: true, typ: stack, tag: ""}, {prop: "StandardInput", name: "StandardInput", anonymous: false, exported: true, typ: ilos.Instance, tag: ""}, {prop: "StandardOutput", name: "StandardOutput", anonymous: false, exported: true, typ: ilos.Instance, tag: ""}, {prop: "ErrorOutput", name: "ErrorOutput", anonymous: false, exported: true, typ: ilos.Instance, tag: ""}, {prop: "Handler", name: "Handler", anonymous: false, exported: true, typ: ilos.Instance, tag: ""}]); map2.init(arrayType, ilos.Instance); stack.init(mapType); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = ilos.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["github.com/asciian/iris/runtime/ilos/instance"] = (function() { var $pkg = {}, $init, fmt, tokenizer, env, ilos, io, reflect, sort, strings, GeneralArrayStar, GeneralVector, String, BuiltInClass, Character, Applicable, Function, method, GenericFunction, slots, Instance, List, Cons, Null, Integer, Float, StandardClass, Stream, Symbol, sliceType, sliceType$1, sliceType$2, ptrType, sliceType$3, sliceType$4, sliceType$5, ptrType$1, sliceType$6, funcType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, mapType, sliceType$7, NewGeneralArrayStar, NewGeneralVector, NewString, NewBuiltInClass, NewCharacter, NewArithmeticError, NewParseError, NewDomainError, NewUndefinedFunction, NewUndefinedVariable, NewUndefinedClass, NewArityError, NewIndexOutOfRange, NewImmutableBinding, NewControlError, NewStreamError, NewFunction, NewGenericFunction, Create, InitializeObject, NewCons, NewNull, NewInteger, NewFloat, NewStandardClass, NewStream, NewSymbol, NewBlockTag, NewCatchTag, NewTagbodyTag; fmt = $packages["fmt"]; tokenizer = $packages["github.com/asciian/iris/reader/tokenizer"]; env = $packages["github.com/asciian/iris/runtime/env"]; ilos = $packages["github.com/asciian/iris/runtime/ilos"]; io = $packages["io"]; reflect = $packages["reflect"]; sort = $packages["sort"]; strings = $packages["strings"]; GeneralArrayStar = $pkg.GeneralArrayStar = $newType(0, $kindStruct, "instance.GeneralArrayStar", true, "github.com/asciian/iris/runtime/ilos/instance", true, function(Vector_, Scalar_) { this.$val = this; if (arguments.length === 0) { this.Vector = sliceType$3.nil; this.Scalar = $ifaceNil; return; } this.Vector = Vector_; this.Scalar = Scalar_; }); GeneralVector = $pkg.GeneralVector = $newType(12, $kindSlice, "instance.GeneralVector", true, "github.com/asciian/iris/runtime/ilos/instance", true, null); String = $pkg.String = $newType(12, $kindSlice, "instance.String", true, "github.com/asciian/iris/runtime/ilos/instance", true, null); BuiltInClass = $pkg.BuiltInClass = $newType(0, $kindStruct, "instance.BuiltInClass", true, "github.com/asciian/iris/runtime/ilos/instance", true, function(name_, supers_, slots_) { this.$val = this; if (arguments.length === 0) { this.name = $ifaceNil; this.supers = sliceType.nil; this.slots = sliceType$1.nil; return; } this.name = name_; this.supers = supers_; this.slots = slots_; }); Character = $pkg.Character = $newType(4, $kindInt32, "instance.Character", true, "github.com/asciian/iris/runtime/ilos/instance", true, null); Applicable = $pkg.Applicable = $newType(8, $kindInterface, "instance.Applicable", true, "github.com/asciian/iris/runtime/ilos/instance", true, null); Function = $pkg.Function = $newType(0, $kindStruct, "instance.Function", true, "github.com/asciian/iris/runtime/ilos/instance", true, function(name_, function$1_) { this.$val = this; if (arguments.length === 0) { this.name = $ifaceNil; this.function$1 = $ifaceNil; return; } this.name = name_; this.function$1 = function$1_; }); method = $pkg.method = $newType(0, $kindStruct, "instance.method", true, "github.com/asciian/iris/runtime/ilos/instance", false, function(qualifier_, classList_, function$2_) { this.$val = this; if (arguments.length === 0) { this.qualifier = $ifaceNil; this.classList = sliceType.nil; this.function$2 = new Function.ptr($ifaceNil, $ifaceNil); return; } this.qualifier = qualifier_; this.classList = classList_; this.function$2 = function$2_; }); GenericFunction = $pkg.GenericFunction = $newType(0, $kindStruct, "instance.GenericFunction", true, "github.com/asciian/iris/runtime/ilos/instance", true, function(funcSpec_, lambdaList_, methodCombination_, genericFunctionClass_, methods_) { this.$val = this; if (arguments.length === 0) { this.funcSpec = $ifaceNil; this.lambdaList = $ifaceNil; this.methodCombination = $ifaceNil; this.genericFunctionClass = $ifaceNil; this.methods = sliceType$6.nil; return; } this.funcSpec = funcSpec_; this.lambdaList = lambdaList_; this.methodCombination = methodCombination_; this.genericFunctionClass = genericFunctionClass_; this.methods = methods_; }); slots = $pkg.slots = $newType(4, $kindMap, "instance.slots", true, "github.com/asciian/iris/runtime/ilos/instance", false, null); Instance = $pkg.Instance = $newType(0, $kindStruct, "instance.Instance", true, "github.com/asciian/iris/runtime/ilos/instance", true, function(class$0_, supers_, slots_) { this.$val = this; if (arguments.length === 0) { this.class$0 = $ifaceNil; this.supers = sliceType$1.nil; this.slots = false; return; } this.class$0 = class$0_; this.supers = supers_; this.slots = slots_; }); List = $pkg.List = $newType(8, $kindInterface, "instance.List", true, "github.com/asciian/iris/runtime/ilos/instance", true, null); Cons = $pkg.Cons = $newType(0, $kindStruct, "instance.Cons", true, "github.com/asciian/iris/runtime/ilos/instance", true, function(Car_, Cdr_) { this.$val = this; if (arguments.length === 0) { this.Car = $ifaceNil; this.Cdr = $ifaceNil; return; } this.Car = Car_; this.Cdr = Cdr_; }); Null = $pkg.Null = $newType(0, $kindStruct, "instance.Null", true, "github.com/asciian/iris/runtime/ilos/instance", true, function() { this.$val = this; if (arguments.length === 0) { return; } }); Integer = $pkg.Integer = $newType(4, $kindInt, "instance.Integer", true, "github.com/asciian/iris/runtime/ilos/instance", true, null); Float = $pkg.Float = $newType(8, $kindFloat64, "instance.Float", true, "github.com/asciian/iris/runtime/ilos/instance", true, null); StandardClass = $pkg.StandardClass = $newType(0, $kindStruct, "instance.StandardClass", true, "github.com/asciian/iris/runtime/ilos/instance", true, function(name_, supers_, slots_, initforms_, initargs_, metaclass_, abstractp_) { this.$val = this; if (arguments.length === 0) { this.name = $ifaceNil; this.supers = sliceType.nil; this.slots = sliceType$1.nil; this.initforms = false; this.initargs = false; this.metaclass = $ifaceNil; this.abstractp = $ifaceNil; return; } this.name = name_; this.supers = supers_; this.slots = slots_; this.initforms = initforms_; this.initargs = initargs_; this.metaclass = metaclass_; this.abstractp = abstractp_; }); Stream = $pkg.Stream = $newType(0, $kindStruct, "instance.Stream", true, "github.com/asciian/iris/runtime/ilos/instance", true, function(Column_, Reader_, Writer_) { this.$val = this; if (arguments.length === 0) { this.Column = ptrType$3.nil; this.Reader = ptrType$4.nil; this.Writer = $ifaceNil; return; } this.Column = Column_; this.Reader = Reader_; this.Writer = Writer_; }); Symbol = $pkg.Symbol = $newType(8, $kindString, "instance.Symbol", true, "github.com/asciian/iris/runtime/ilos/instance", true, null); sliceType = $sliceType(ilos.Class); sliceType$1 = $sliceType(ilos.Instance); sliceType$2 = $sliceType($String); ptrType = $ptrType(GeneralArrayStar); sliceType$3 = $sliceType(ptrType); sliceType$4 = $sliceType($emptyInterface); sliceType$5 = $sliceType(reflect.Value); ptrType$1 = $ptrType(reflect.rtype); sliceType$6 = $sliceType(method); funcType = $funcType([env.Environment], [ilos.Instance, ilos.Instance], false); ptrType$2 = $ptrType(Cons); ptrType$3 = $ptrType($Int); ptrType$4 = $ptrType(tokenizer.Reader); ptrType$5 = $ptrType(GenericFunction); ptrType$6 = $ptrType(Null); mapType = $mapType(ilos.Instance, ilos.Instance); sliceType$7 = $sliceType($Uint8); NewGeneralArrayStar = function(vector, scalar) { var scalar, vector; return new GeneralArrayStar.ptr(vector, scalar); }; $pkg.NewGeneralArrayStar = NewGeneralArrayStar; GeneralArrayStar.ptr.prototype.Class = function() { return $pkg.GeneralArrayStarClass; }; GeneralArrayStar.prototype.Class = function() { return this.$val.Class(); }; GeneralArrayStar.ptr.prototype.String = function() { var _arg, _arg$1, _r, _r$1, _r$2, count, i, stringify, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; count = $f.count; i = $f.i; stringify = $f.stringify; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: count = [count]; stringify = [stringify]; i = this; count[0] = $throwNilPointerError; count[0] = (function(count, stringify) { return function $b(i$1) { var _r, i$1, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i$1 = $f.i$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: /* */ if (!(i$1.Vector === sliceType$3.nil)) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!(i$1.Vector === sliceType$3.nil)) { */ case 1: _r = count[0]((x = i$1.Vector, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return 1 + _r >> 0; /* } */ case 2: $s = -1; return 0; /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r = _r; $f.i$1 = i$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; })(count, stringify); stringify[0] = $throwNilPointerError; stringify[0] = (function(count, stringify) { return function $b(i$1) { var _i, _r, _r$1, _ref, elt, i$1, idx, str, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; elt = $f.elt; i$1 = $f.i$1; idx = $f.idx; str = $f.str; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: /* */ if (!(i$1.Vector === sliceType$3.nil)) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!(i$1.Vector === sliceType$3.nil)) { */ case 1: str = "("; _ref = i$1.Vector; _i = 0; /* while (true) { */ case 3: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } idx = _i; elt = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r = stringify[0](elt); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } str = str + (_r); if (!((idx === (i$1.Vector.$length - 1 >> 0)))) { str = str + (" "); } _i++; /* } */ $s = 3; continue; case 4: str = str + (")"); $s = -1; return str; /* } */ case 2: _r$1 = i$1.Scalar.String(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f.elt = elt; $f.i$1 = i$1; $f.idx = idx; $f.str = str; $f.$s = $s; $f.$r = $r; return $f; }; })(count, stringify); _r = count[0](i); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg = new $Int(_r); _r$1 = stringify[0](i); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = new $String(_r$1); _r$2 = fmt.Sprintf("#%vA%v", new sliceType$4([_arg, _arg$1])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* */ } return; } if ($f === undefined) { $f = { $blk: GeneralArrayStar.ptr.prototype.String }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.count = count; $f.i = i; $f.stringify = stringify; $f.$s = $s; $f.$r = $r; return $f; }; GeneralArrayStar.prototype.String = function() { return this.$val.String(); }; NewGeneralVector = function(v) { var v; return ($subslice(new GeneralVector(v.$array), v.$offset, v.$offset + v.$length)); }; $pkg.NewGeneralVector = NewGeneralVector; GeneralVector.prototype.Class = function() { return $pkg.GeneralVectorClass; }; $ptrType(GeneralVector).prototype.Class = function() { return this.$get().Class(); }; GeneralVector.prototype.String = function() { var _r, _r$1, i, str, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; i = $f.i; str = $f.str; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = this; _r = fmt.Sprint(new sliceType$4([($subslice(new sliceType$1(i.$array), i.$offset, i.$offset + i.$length))])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } str = _r; _r$1 = fmt.Sprintf("#(%v)", new sliceType$4([new $String($substring(str, 1, (str.length - 1 >> 0)))])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: GeneralVector.prototype.String }; } $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.str = str; $f.$s = $s; $f.$r = $r; return $f; }; $ptrType(GeneralVector).prototype.String = function() { return this.$get().String(); }; NewString = function(s) { var s; return ($subslice(new String(s.$array), s.$offset, s.$offset + s.$length)); }; $pkg.NewString = NewString; String.prototype.Class = function() { return $pkg.StringClass; }; $ptrType(String).prototype.Class = function() { return this.$get().Class(); }; String.prototype.String = function() { var i; i = this; return "\"" + ($runesToString(i)) + "\""; }; $ptrType(String).prototype.String = function() { return this.$get().String(); }; NewBuiltInClass = function(name, super$1, slots$1) { var _i, _ref, name, slot, slotNames, slots$1, super$1, x; slotNames = new sliceType$1([]); _ref = slots$1; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } slot = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); slotNames = $append(slotNames, NewSymbol(slot)); _i++; } return (x = new BuiltInClass.ptr(NewSymbol(name), new sliceType([super$1]), slotNames), new x.constructor.elem(x)); }; $pkg.NewBuiltInClass = NewBuiltInClass; BuiltInClass.ptr.prototype.Supers = function() { var p; p = this; return p.supers; }; BuiltInClass.prototype.Supers = function() { return this.$val.Supers(); }; BuiltInClass.ptr.prototype.Slots = function() { var p; p = this; return p.slots; }; BuiltInClass.prototype.Slots = function() { return this.$val.Slots(); }; BuiltInClass.ptr.prototype.Initform = function(arg) { var arg, p; p = this; return [$ifaceNil, false]; }; BuiltInClass.prototype.Initform = function(arg) { return this.$val.Initform(arg); }; BuiltInClass.ptr.prototype.Initarg = function(arg) { var arg, p; p = this; return [arg, true]; }; BuiltInClass.prototype.Initarg = function(arg) { return this.$val.Initarg(arg); }; BuiltInClass.ptr.prototype.Class = function() { return $pkg.BuiltInClassClass; }; BuiltInClass.prototype.Class = function() { return this.$val.Class(); }; BuiltInClass.ptr.prototype.String = function() { var _r, p, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; _r = fmt.Sprint(new sliceType$4([p.name])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: BuiltInClass.ptr.prototype.String }; } $f._r = _r; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; }; BuiltInClass.prototype.String = function() { return this.$val.String(); }; NewCharacter = function(r) { var r; return new Character(((r >> 0))); }; $pkg.NewCharacter = NewCharacter; Character.prototype.Class = function() { return $pkg.CharacterClass; }; $ptrType(Character).prototype.Class = function() { return new Character(this.$get()).Class(); }; Character.prototype.String = function() { var _1, i; i = this.$val; _1 = ((i >> 0)); if (_1 === (32)) { return "#\\SPACE"; } else if (_1 === (10)) { return "#\\NEWLINE"; } else { return "#\\" + ($encodeRune(i)); } }; $ptrType(Character).prototype.String = function() { return new Character(this.$get()).String(); }; NewArithmeticError = function(e, operation, operands) { var _r, e, operands, operation, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; operands = $f.operands; operation = $f.operation; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Create($clone(e, env.Environment), $pkg.ArithmeticErrorClass, new sliceType$1([NewSymbol("OPERATION"), operation, NewSymbol("OPERANDS"), operands])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: NewArithmeticError }; } $f._r = _r; $f.e = e; $f.operands = operands; $f.operation = operation; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NewArithmeticError = NewArithmeticError; NewParseError = function(e, str, expectedClass) { var _r, e, expectedClass, str, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; expectedClass = $f.expectedClass; str = $f.str; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Create($clone(e, env.Environment), $pkg.ParseErrorClass, new sliceType$1([NewSymbol("STRING"), str, NewSymbol("EXPECTED-CLASS"), expectedClass])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: NewParseError }; } $f._r = _r; $f.e = e; $f.expectedClass = expectedClass; $f.str = str; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NewParseError = NewParseError; NewDomainError = function(e, object, expectedClass) { var _r, e, expectedClass, object, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; expectedClass = $f.expectedClass; object = $f.object; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Create($clone(e, env.Environment), $pkg.DomainErrorClass, new sliceType$1([NewSymbol("CAUSE"), NewSymbol("DOMAIN-ERROR"), NewSymbol("IRIS.OBJECT"), object, NewSymbol("EXPECTED-CLASS"), expectedClass])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: NewDomainError }; } $f._r = _r; $f.e = e; $f.expectedClass = expectedClass; $f.object = object; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NewDomainError = NewDomainError; NewUndefinedFunction = function(e, name) { var _r, e, name, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Create($clone(e, env.Environment), $pkg.UndefinedFunctionClass, new sliceType$1([NewSymbol("NAME"), name, NewSymbol("NAMESPACE"), NewSymbol("FUNCTION")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: NewUndefinedFunction }; } $f._r = _r; $f.e = e; $f.name = name; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NewUndefinedFunction = NewUndefinedFunction; NewUndefinedVariable = function(e, name) { var _r, e, name, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Create($clone(e, env.Environment), $pkg.UndefinedVariableClass, new sliceType$1([NewSymbol("NAME"), name, NewSymbol("NAMESPACE"), NewSymbol("VARIABLE")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: NewUndefinedVariable }; } $f._r = _r; $f.e = e; $f.name = name; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NewUndefinedVariable = NewUndefinedVariable; NewUndefinedClass = function(e, name) { var _r, e, name, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Create($clone(e, env.Environment), $pkg.UndefinedEntityClass, new sliceType$1([NewSymbol("NAME"), name, NewSymbol("NAMESPACE"), NewSymbol("CLASS")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: NewUndefinedClass }; } $f._r = _r; $f.e = e; $f.name = name; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NewUndefinedClass = NewUndefinedClass; NewArityError = function(e) { var _r, e, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Create($clone(e, env.Environment), $pkg.ProgramErrorClass, new sliceType$1([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: NewArityError }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NewArityError = NewArityError; NewIndexOutOfRange = function(e) { var _r, e, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Create($clone(e, env.Environment), $pkg.ProgramErrorClass, new sliceType$1([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: NewIndexOutOfRange }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NewIndexOutOfRange = NewIndexOutOfRange; NewImmutableBinding = function(e) { var _r, e, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Create($clone(e, env.Environment), $pkg.ProgramErrorClass, new sliceType$1([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: NewImmutableBinding }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NewImmutableBinding = NewImmutableBinding; NewControlError = function(e) { var _r, e, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Create($clone(e, env.Environment), $pkg.ControlErrorClass, new sliceType$1([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: NewControlError }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NewControlError = NewControlError; NewStreamError = function(e) { var _r, e, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Create($clone(e, env.Environment), $pkg.StreamErrorClass, new sliceType$1([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: NewStreamError }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NewStreamError = NewStreamError; NewFunction = function(name, function$1) { var function$1, name, x; return (x = new Function.ptr(name, function$1), new x.constructor.elem(x)); }; $pkg.NewFunction = NewFunction; Function.ptr.prototype.Class = function() { return $pkg.FunctionClass; }; Function.prototype.Class = function() { return this.$val.Class(); }; Function.ptr.prototype.String = function() { var _r, f, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; _r = fmt.Sprintf("#%v", new sliceType$4([$clone(f, Function).Class()])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Function.ptr.prototype.String }; } $f._r = _r; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; }; Function.prototype.String = function() { return this.$val.String(); }; Function.ptr.prototype.Apply = function(e, arguments$1) { var _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _v, _v$1, a, arguments$1, argv, b, cadr, e, f, ft, fv, rets, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _v = $f._v; _v$1 = $f._v$1; a = $f.a; arguments$1 = $f.arguments$1; argv = $f.argv; b = $f.b; cadr = $f.cadr; e = $f.e; f = $f.f; ft = $f.ft; fv = $f.fv; rets = $f.rets; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; _r = reflect.ValueOf(f.function$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } fv = _r; ft = reflect.TypeOf(f.function$1); _r$1 = reflect.ValueOf(new e.constructor.elem(e)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } argv = new sliceType$5([$clone(_r$1, reflect.Value)]); _ref = arguments$1; _i = 0; /* while (true) { */ case 3: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } cadr = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$2 = reflect.ValueOf(cadr); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } argv = $append(argv, _r$2); _i++; /* } */ $s = 3; continue; case 4: _r$3 = ft.NumIn(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } if (!(!((_r$3 === argv.$length)))) { _v = false; $s = 8; continue s; } _r$4 = ft.IsVariadic(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } if (!_r$4) { _v$1 = true; $s = 10; continue s; } _r$5 = ft.NumIn(); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _v$1 = (_r$5 - 2 >> 0) >= argv.$length; case 10: _v = _v$1; case 8: /* */ if (_v) { $s = 6; continue; } /* */ $s = 7; continue; /* if (_v) { */ case 6: _r$6 = NewArityError($clone(e, env.Environment)); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$6]; /* } */ case 7: _r$7 = $clone(fv, reflect.Value).Call(argv); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } rets = _r$7; _r$8 = $clone((0 >= rets.$length ? ($throwRuntimeError("index out of range"), undefined) : rets.$array[rets.$offset + 0]), reflect.Value).Interface(); /* */ $s = 15; case 15: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _tuple = $assertType(_r$8, ilos.Instance, true); a = _tuple[0]; _r$9 = $clone((1 >= rets.$length ? ($throwRuntimeError("index out of range"), undefined) : rets.$array[rets.$offset + 1]), reflect.Value).Interface(); /* */ $s = 16; case 16: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _tuple$1 = $assertType(_r$9, ilos.Instance, true); b = _tuple$1[0]; $s = -1; return [a, b]; /* */ } return; } if ($f === undefined) { $f = { $blk: Function.ptr.prototype.Apply }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._v = _v; $f._v$1 = _v$1; $f.a = a; $f.arguments$1 = arguments$1; $f.argv = argv; $f.b = b; $f.cadr = cadr; $f.e = e; $f.f = f; $f.ft = ft; $f.fv = fv; $f.rets = rets; $f.$s = $s; $f.$r = $r; return $f; }; Function.prototype.Apply = function(e, arguments$1) { return this.$val.Apply(e, arguments$1); }; NewGenericFunction = function(funcSpec, lambdaList, methodCombination, genericFunctionClass) { var funcSpec, genericFunctionClass, lambdaList, methodCombination; return new GenericFunction.ptr(funcSpec, lambdaList, methodCombination, genericFunctionClass, new sliceType$6([])); }; $pkg.NewGenericFunction = NewGenericFunction; GenericFunction.ptr.prototype.AddMethod = function(qualifier, lambdaList, classList, function$1) { var _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _v, _v$1, classList, f, function$1, i, i$1, lambdaList, param, qualifier, x, x$1, x$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _ref = $f._ref; _ref$1 = $f._ref$1; _v = $f._v; _v$1 = $f._v$1; classList = $f.classList; f = $f.f; function$1 = $f.function$1; i = $f.i; i$1 = $f.i$1; lambdaList = $f.lambdaList; param = $f.param; qualifier = $f.qualifier; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; _r = $assertType(f.lambdaList, List).Length(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = $assertType(lambdaList, List).Length(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (!((_r === _r$1))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((_r === _r$1))) { */ case 1: $s = -1; return false; /* } */ case 2: _r$2 = $assertType(f.lambdaList, List).Slice(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _ref = _r$2; _i = 0; /* while (true) { */ case 6: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } i = _i; param = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); /* */ if ($interfaceIsEqual(param, NewSymbol(":REST")) || $interfaceIsEqual(param, NewSymbol("&REST"))) { $s = 8; continue; } /* */ $s = 9; continue; /* if ($interfaceIsEqual(param, NewSymbol(":REST")) || $interfaceIsEqual(param, NewSymbol("&REST"))) { */ case 8: _r$3 = $assertType(lambdaList, List).Nth(i); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } if (!(!($interfaceIsEqual(_r$3, NewSymbol(":REST"))))) { _v = false; $s = 12; continue s; } _r$4 = $assertType(lambdaList, List).Nth(i); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _v = !($interfaceIsEqual(_r$4, NewSymbol("&REST"))); case 12: /* */ if (_v) { $s = 10; continue; } /* */ $s = 11; continue; /* if (_v) { */ case 10: $s = -1; return false; /* } */ case 11: /* } */ case 9: _i++; /* } */ $s = 6; continue; case 7: _ref$1 = f.methods; _i$1 = 0; /* while (true) { */ case 15: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 16; continue; } i$1 = _i$1; if (!($interfaceIsEqual((x = f.methods, ((i$1 < 0 || i$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$1])).qualifier, qualifier))) { _v$1 = false; $s = 19; continue s; } _r$5 = reflect.DeepEqual((x$1 = f.methods, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])).classList, classList); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _v$1 = _r$5; case 19: /* */ if (_v$1) { $s = 17; continue; } /* */ $s = 18; continue; /* if (_v$1) { */ case 17: Function.copy((x$2 = f.methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])).function$2, $assertType(function$1, Function)); $s = -1; return true; /* } */ case 18: _i$1++; /* } */ $s = 15; continue; case 16: f.methods = $append(f.methods, new method.ptr(qualifier, classList, $clone($assertType(function$1, Function), Function))); $s = -1; return true; /* */ } return; } if ($f === undefined) { $f = { $blk: GenericFunction.ptr.prototype.AddMethod }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._ref = _ref; $f._ref$1 = _ref$1; $f._v = _v; $f._v$1 = _v$1; $f.classList = classList; $f.f = f; $f.function$1 = function$1; $f.i = i; $f.i$1 = i$1; $f.lambdaList = lambdaList; $f.param = param; $f.qualifier = qualifier; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; }; GenericFunction.prototype.AddMethod = function(qualifier, lambdaList, classList, function$1) { return this.$val.AddMethod(qualifier, lambdaList, classList, function$1); }; GenericFunction.ptr.prototype.Class = function() { var f; f = this; return f.genericFunctionClass; }; GenericFunction.prototype.Class = function() { return this.$val.Class(); }; GenericFunction.ptr.prototype.String = function() { var _r, f, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; _r = fmt.Sprintf("#%v", new sliceType$4([f.Class()])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: GenericFunction.ptr.prototype.String }; } $f._r = _r; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; }; GenericFunction.prototype.String = function() { return this.$val.String(); }; GenericFunction.ptr.prototype.Apply = function(e, arguments$1) { var _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, after, arguments$1, around, before, c, callNextMethod, callNextMethod$1, callNextMethod$2, e, err, err$1, err$2, f, i, i$1, index, index$1, index$2, matched, method$1, method$2, methods, nextMethodPisNil, nextMethodPisT, parameters, ret, test, test$1, test$2, test$3, test$4, variadic, width, width$1, width$2, width$3, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; after = $f.after; arguments$1 = $f.arguments$1; around = $f.around; before = $f.before; c = $f.c; callNextMethod = $f.callNextMethod; callNextMethod$1 = $f.callNextMethod$1; callNextMethod$2 = $f.callNextMethod$2; e = $f.e; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; i = $f.i; i$1 = $f.i$1; index = $f.index; index$1 = $f.index$1; index$2 = $f.index$2; matched = $f.matched; method$1 = $f.method$1; method$2 = $f.method$2; methods = $f.methods; nextMethodPisNil = $f.nextMethodPisNil; nextMethodPisT = $f.nextMethodPisT; parameters = $f.parameters; ret = $f.ret; test = $f.test; test$1 = $f.test$1; test$2 = $f.test$2; test$3 = $f.test$3; test$4 = $f.test$4; variadic = $f.variadic; width = $f.width; width$1 = $f.width$1; width$2 = $f.width$2; width$3 = $f.width$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: after = [after]; arguments$1 = [arguments$1]; around = [around]; before = [before]; callNextMethod = [callNextMethod]; callNextMethod$1 = [callNextMethod$1]; callNextMethod$2 = [callNextMethod$2]; index = [index]; index$1 = [index$1]; methods = [methods]; nextMethodPisNil = [nextMethodPisNil]; nextMethodPisT = [nextMethodPisT]; parameters = [parameters]; f = this; _r = $assertType(f.lambdaList, List).Slice(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } parameters[0] = _r; variadic = false; test = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function(i) { var i; return $interfaceIsEqual(((i < 0 || i >= parameters[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : parameters[0].$array[parameters[0].$offset + i]), NewSymbol(":REST")) || $interfaceIsEqual(((i < 0 || i >= parameters[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : parameters[0].$array[parameters[0].$offset + i]), NewSymbol("&REST")); }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters); _r$1 = sort.Search(parameters[0].$length, test); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1 < parameters[0].$length) { $s = 2; continue; } /* */ $s = 3; continue; /* if (_r$1 < parameters[0].$length) { */ case 2: variadic = true; /* } */ case 3: /* */ if ((variadic && (parameters[0].$length - 2 >> 0) > arguments$1[0].$length) || (!variadic && !((parameters[0].$length === arguments$1[0].$length)))) { $s = 5; continue; } /* */ $s = 6; continue; /* if ((variadic && (parameters[0].$length - 2 >> 0) > arguments$1[0].$length) || (!variadic && !((parameters[0].$length === arguments$1[0].$length)))) { */ case 5: _r$2 = NewArityError($clone(e, env.Environment)); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$2]; /* } */ case 6: methods[0] = new sliceType$6([]); _ref = f.methods; _i = 0; /* while (true) { */ case 8: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 9; continue; } method$1 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), method); matched = true; _ref$1 = method$1.classList; _i$1 = 0; /* while (true) { */ case 10: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 11; continue; } i = _i$1; c = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); _r$3 = ilos.InstanceOf(c, ((i < 0 || i >= arguments$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : arguments$1[0].$array[arguments$1[0].$offset + i])); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (!_r$3) { $s = 12; continue; } /* */ $s = 13; continue; /* if (!_r$3) { */ case 12: matched = false; /* break; */ $s = 11; continue; /* } */ case 13: _i$1++; /* } */ $s = 10; continue; case 11: if (matched) { methods[0] = $append(methods[0], method$1); } _i++; /* } */ $s = 8; continue; case 9: before[0] = NewSymbol(":BEFORE"); around[0] = NewSymbol(":AROUND"); after[0] = NewSymbol(":AFTER"); $r = sort.Slice(methods[0], (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function $b(a, b) { var _entry, _entry$1, _i$2, _r$4, _r$5, _ref$2, a, b, i$1, t, x, x$1, x$2, x$3, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _i$2 = $f._i$2; _r$4 = $f._r$4; _r$5 = $f._r$5; _ref$2 = $f._ref$2; a = $f.a; b = $f.b; i$1 = $f.i$1; t = $f.t; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _ref$2 = ((a < 0 || a >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + a]).classList; _i$2 = 0; /* while (true) { */ case 1: /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 2; continue; } i$1 = _i$2; _r$4 = ilos.SubclassOf((x = ((a < 0 || a >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + a]).classList, ((i$1 < 0 || i$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$1])), (x$1 = ((b < 0 || b >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + b]).classList, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1]))); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } /* */ if (_r$4) { $s = 3; continue; } /* */ $s = 4; continue; /* if (_r$4) { */ case 3: $s = -1; return false; /* } */ case 4: _r$5 = ilos.SubclassOf((x$2 = ((b < 0 || b >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + b]).classList, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])), (x$3 = ((a < 0 || a >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + a]).classList, ((i$1 < 0 || i$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i$1]))); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } /* */ if (_r$5) { $s = 6; continue; } /* */ $s = 7; continue; /* if (_r$5) { */ case 6: $s = -1; return true; /* } */ case 7: _i$2++; /* } */ $s = 1; continue; case 2: t = $makeMap(ilos.Instance.keyFor, [{ k: around[0], v: 4 }, { k: before[0], v: 3 }, { k: $ifaceNil, v: 2 }, { k: after[0], v: 1 }]); $s = -1; return (_entry = t[ilos.Instance.keyFor(((a < 0 || a >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + a]).qualifier)], _entry !== undefined ? _entry.v : 0) > (_entry$1 = t[ilos.Instance.keyFor(((b < 0 || b >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + b]).qualifier)], _entry$1 !== undefined ? _entry$1.v : 0); /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._i$2 = _i$2; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._ref$2 = _ref$2; $f.a = a; $f.b = b; $f.i$1 = i$1; $f.t = t; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } nextMethodPisNil[0] = NewFunction(NewSymbol("NEXT-METHOD-P"), new funcType((function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function(e$1) { var e$1; return [$pkg.Nil, $ifaceNil]; }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters))); nextMethodPisT[0] = NewFunction(NewSymbol("NEXT-METHOD-P"), new funcType((function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function(e$1) { var e$1; return [$pkg.T, $ifaceNil]; }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters))); /* */ if ($interfaceIsEqual(f.methodCombination, NewSymbol("NIL"))) { $s = 16; continue; } /* */ $s = 17; continue; /* if ($interfaceIsEqual(f.methodCombination, NewSymbol("NIL"))) { */ case 16: callNextMethod[0] = $throwNilPointerError; callNextMethod[0] = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function $b(e$1) { var _r$4, _tuple, depth, e$1, index$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$4 = $f._r$4; _tuple = $f._tuple; depth = $f.depth; e$1 = $f.e$1; index$2 = $f.index$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tuple = e$1.DynamicVariable.Get(NewSymbol("IRIS/DEPTH")); depth = _tuple[0]; index$2 = (($assertType(depth, Integer) >> 0)) + 1 >> 0; e$1.DynamicVariable.Define(NewSymbol("IRIS/DEPTH"), NewInteger(index$2)); e$1.Function.Define(NewSymbol("NEXT-METHOD-P"), NewFunction(NewSymbol("NEXT-METHOD-P"), nextMethodPisNil[0])); if (((($assertType(depth, Integer) >> 0)) + 1 >> 0) < methods[0].$length) { e$1.Function.Define(NewSymbol("CALL-NEXT-METHOD"), NewFunction(NewSymbol("CALL-NEXT-METHOD"), new funcType(callNextMethod[0]))); e$1.Function.Define(NewSymbol("NEXT-METHOD-P"), NewFunction(NewSymbol("NEXT-METHOD-P"), nextMethodPisT[0])); } _r$4 = $clone(((index$2 < 0 || index$2 >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + index$2]).function$2, Function).Apply($clone(e$1, env.Environment), arguments$1[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$4 = _r$4; $f._tuple = _tuple; $f.depth = depth; $f.e$1 = e$1; $f.index$2 = index$2; $f.$s = $s; $f.$r = $r; return $f; }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters); e.DynamicVariable.Define(NewSymbol("IRIS/DEPTH"), NewInteger(0)); e.Function.Define(NewSymbol("NEXT-METHOD-P"), NewFunction(NewSymbol("NEXT-METHOD-P"), nextMethodPisNil[0])); if (1 < methods[0].$length) { e.Function.Define(NewSymbol("NEXT-METHOD-P"), NewFunction(NewSymbol("NEXT-METHOD-P"), nextMethodPisT[0])); e.Function.Define(NewSymbol("CALL-NEXT-METHOD"), NewFunction(NewSymbol("CALL-NEXT-METHOD"), new funcType(callNextMethod[0]))); } _r$4 = $clone((0 >= methods[0].$length ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + 0]).function$2, Function).Apply($clone(e, env.Environment), arguments$1[0]); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 17: test$1 = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function(i$1) { var i$1; return $interfaceIsEqual(((i$1 < 0 || i$1 >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + i$1]).qualifier, around[0]); }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters); width = methods[0].$length; _r$5 = sort.Search(width, test$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } index[0] = _r$5; /* */ if (index[0] < width) { $s = 20; continue; } /* */ $s = 21; continue; /* if (index[0] < width) { */ case 20: callNextMethod$1[0] = $throwNilPointerError; callNextMethod$1[0] = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function $b(e$1) { var _i$2, _i$3, _r$10, _r$11, _r$12, _r$6, _r$7, _r$8, _r$9, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, _tuple$3, callNextMethod$3, depth, e$1, err, err$1, err$2, i$1, index$2, index$3, method$2, method$3, ret, test$2, test$3, test$4, width$1, width$2, width$3, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i$2 = $f._i$2; _i$3 = $f._i$3; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref$2 = $f._ref$2; _ref$3 = $f._ref$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; callNextMethod$3 = $f.callNextMethod$3; depth = $f.depth; e$1 = $f.e$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; i$1 = $f.i$1; index$2 = $f.index$2; index$3 = $f.index$3; method$2 = $f.method$2; method$3 = $f.method$3; ret = $f.ret; test$2 = $f.test$2; test$3 = $f.test$3; test$4 = $f.test$4; width$1 = $f.width$1; width$2 = $f.width$2; width$3 = $f.width$3; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: callNextMethod$3 = [callNextMethod$3]; index$2 = [index$2]; index$3 = [index$3]; _tuple = e$1.DynamicVariable.Get(NewSymbol("IRIS/DEPTH")); depth = _tuple[0]; _ref$2 = $subslice(methods[0], 0, ((($assertType(depth, Integer) >> 0)) + 1 >> 0)); _i$2 = 0; /* while (true) { */ case 1: /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 2; continue; } index$2[0] = _i$2; method$2 = $clone(((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]), method); /* */ if ($interfaceIsEqual(method$2.qualifier, around[0])) { $s = 3; continue; } /* */ $s = 4; continue; /* if ($interfaceIsEqual(method$2.qualifier, around[0])) { */ case 3: e$1.DynamicVariable.Define(NewSymbol("IRIS/DEPTH"), NewInteger(index$2[0])); e$1.Function.Define(NewSymbol("NEXT-METHOD-P"), nextMethodPisNil[0]); width$1 = (methods[0].$length - index$2[0] >> 0) - 1 >> 0; test$2 = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, callNextMethod$3, index, index$1, index$2, index$3, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function(i$1) { var i$1, x, x$1; return $interfaceIsEqual((x = (index$2[0] + i$1 >> 0) + 1 >> 0, ((x < 0 || x >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + x])).qualifier, $ifaceNil) || $interfaceIsEqual((x$1 = (index$2[0] + i$1 >> 0) + 1 >> 0, ((x$1 < 0 || x$1 >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + x$1])).qualifier, around[0]); }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, callNextMethod$3, index, index$1, index$2, index$3, methods, nextMethodPisNil, nextMethodPisT, parameters); _r$6 = sort.Search(width$1, test$2); /* */ $s = 7; case 7: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } /* */ if (_r$6 < width$1) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_r$6 < width$1) { */ case 5: e$1.Function.Define(NewSymbol("NEXT-METHOD-P"), nextMethodPisT[0]); e$1.Function.Define(NewSymbol("CALL-NEXT-METHOD"), NewFunction(NewSymbol("CALL-NEXT-METHOD"), new funcType(callNextMethod$1[0]))); /* } */ case 6: _r$7 = $clone((x = (($assertType(depth, Integer) >> 0)), ((x < 0 || x >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + x])).function$2, Function).Apply($clone(e$1, env.Environment), arguments$1[0]); /* */ $s = 8; case 8: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $s = -1; return _r$7; /* } */ case 4: _i$2++; /* } */ $s = 1; continue; case 2: _ref$3 = methods[0]; _i$3 = 0; /* while (true) { */ case 9: /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 10; continue; } method$3 = $clone(((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]), method); /* */ if ($interfaceIsEqual(method$3.qualifier, before[0])) { $s = 11; continue; } /* */ $s = 12; continue; /* if ($interfaceIsEqual(method$3.qualifier, before[0])) { */ case 11: _r$8 = $clone(method$3.function$2, Function).Apply($clone(e$1, env.Environment), arguments$1[0]); /* */ $s = 13; case 13: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _tuple$1 = _r$8; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } /* } */ case 12: _i$3++; /* } */ $s = 9; continue; case 10: callNextMethod$3[0] = $throwNilPointerError; callNextMethod$3[0] = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, callNextMethod$3, index, index$1, index$2, index$3, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function $b(e$2) { var _r$10, _r$11, _r$9, _tuple$2, depth$1, e$2, index$4, test$3, test$4, width$2, width$3, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$9 = $f._r$9; _tuple$2 = $f._tuple$2; depth$1 = $f.depth$1; e$2 = $f.e$2; index$4 = $f.index$4; test$3 = $f.test$3; test$4 = $f.test$4; width$2 = $f.width$2; width$3 = $f.width$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: index$4 = [index$4]; _tuple$2 = e$2.DynamicVariable.Get(NewSymbol("IRIS/DEPTH")); depth$1 = _tuple$2[0]; index$4[0] = (($assertType(depth$1, Integer) >> 0)); width$2 = (methods[0].$length - index$4[0] >> 0) - 1 >> 0; test$3 = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, callNextMethod$3, index, index$1, index$2, index$3, index$4, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function(i$1) { var i$1, x$1; return $interfaceIsEqual((x$1 = (index$4[0] + i$1 >> 0) + 1 >> 0, ((x$1 < 0 || x$1 >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + x$1])).qualifier, $ifaceNil); }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, callNextMethod$3, index, index$1, index$2, index$3, index$4, methods, nextMethodPisNil, nextMethodPisT, parameters); _r$9 = sort.Search(width$2, test$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } index$4[0] = _r$9; e$2.DynamicVariable.Define(NewSymbol("IRIS/DEPTH"), NewInteger(index$4[0])); e$2.Function.Define(NewSymbol("NEXT-METHOD-P"), nextMethodPisNil[0]); width$3 = (methods[0].$length - index$4[0] >> 0) - 1 >> 0; test$4 = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, callNextMethod$3, index, index$1, index$2, index$3, index$4, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function(i$1) { var i$1, x$1; return $interfaceIsEqual((x$1 = (index$4[0] + i$1 >> 0) + 1 >> 0, ((x$1 < 0 || x$1 >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + x$1])).qualifier, $ifaceNil); }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, callNextMethod$3, index, index$1, index$2, index$3, index$4, methods, nextMethodPisNil, nextMethodPisT, parameters); _r$10 = sort.Search(width$3, test$4); /* */ $s = 4; case 4: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } /* */ if (_r$10 < width$3) { $s = 2; continue; } /* */ $s = 3; continue; /* if (_r$10 < width$3) { */ case 2: e$2.Function.Define(NewSymbol("NEXT-METHOD-P"), nextMethodPisT[0]); e$2.Function.Define(NewSymbol("CALL-NEXT-METHOD"), NewFunction(NewSymbol("CALL-NEXT-METHOD"), new funcType(callNextMethod$3[0]))); /* } */ case 3: _r$11 = $clone(((index$4[0] < 0 || index$4[0] >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + index$4[0]]).function$2, Function).Apply($clone(e$2, env.Environment), arguments$1[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } $s = -1; return _r$11; /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$9 = _r$9; $f._tuple$2 = _tuple$2; $f.depth$1 = depth$1; $f.e$2 = e$2; $f.index$4 = index$4; $f.test$3 = test$3; $f.test$4 = test$4; $f.width$2 = width$2; $f.width$3 = width$3; $f.$s = $s; $f.$r = $r; return $f; }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, callNextMethod$3, index, index$1, index$2, index$3, methods, nextMethodPisNil, nextMethodPisT, parameters); index$3[0] = 0; width$2 = (methods[0].$length - index$3[0] >> 0) - 1 >> 0; test$3 = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, callNextMethod$3, index, index$1, index$2, index$3, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function(i$1) { var i$1, x$1; return $interfaceIsEqual((x$1 = (index$3[0] + i$1 >> 0) + 1 >> 0, ((x$1 < 0 || x$1 >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + x$1])).qualifier, $ifaceNil); }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, callNextMethod$3, index, index$1, index$2, index$3, methods, nextMethodPisNil, nextMethodPisT, parameters); _r$9 = sort.Search(width$2, test$3); /* */ $s = 14; case 14: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } index$3[0] = _r$9; e$1.DynamicVariable.Define(NewSymbol("IRIS/DEPTH"), NewInteger(index$3[0])); e$1.Function.Define(NewSymbol("NEXT-METHOD-P"), nextMethodPisNil[0]); test$4 = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, callNextMethod$3, index, index$1, index$2, index$3, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function(i$1) { var i$1, x$1; return $interfaceIsEqual((x$1 = (index$3[0] + i$1 >> 0) + 1 >> 0, ((x$1 < 0 || x$1 >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + x$1])).qualifier, $ifaceNil); }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, callNextMethod$3, index, index$1, index$2, index$3, methods, nextMethodPisNil, nextMethodPisT, parameters); width$3 = (methods[0].$length - index$3[0] >> 0) - 1 >> 0; _r$10 = sort.Search(width$3, test$4); /* */ $s = 17; case 17: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } /* */ if (_r$10 < width$3) { $s = 15; continue; } /* */ $s = 16; continue; /* if (_r$10 < width$3) { */ case 15: e$1.Function.Define(NewSymbol("NEXT-METHOD-P"), nextMethodPisT[0]); e$1.Function.Define(NewSymbol("CALL-NEXT-METHOD"), NewFunction(NewSymbol("CALL-NEXT-METHOD"), new funcType(callNextMethod$3[0]))); /* } */ case 16: _r$11 = $clone(((index$3[0] < 0 || index$3[0] >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + index$3[0]]).function$2, Function).Apply($clone(e$1, env.Environment), arguments$1[0]); /* */ $s = 18; case 18: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _tuple$2 = _r$11; ret = _tuple$2[0]; err$1 = _tuple$2[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } i$1 = methods[0].$length - 1 >> 0; /* while (true) { */ case 19: /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 20; continue; } /* */ if ($interfaceIsEqual(((i$1 < 0 || i$1 >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + i$1]).qualifier, after[0])) { $s = 21; continue; } /* */ $s = 22; continue; /* if ($interfaceIsEqual(((i$1 < 0 || i$1 >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + i$1]).qualifier, after[0])) { */ case 21: _r$12 = $clone(((i$1 < 0 || i$1 >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + i$1]).function$2, Function).Apply($clone(e$1, env.Environment), arguments$1[0]); /* */ $s = 23; case 23: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } _tuple$3 = _r$12; err$2 = _tuple$3[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } /* } */ case 22: i$1 = i$1 - (1) >> 0; /* } */ $s = 19; continue; case 20: $s = -1; return [ret, err$1]; /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._i$2 = _i$2; $f._i$3 = _i$3; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref$2 = _ref$2; $f._ref$3 = _ref$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.callNextMethod$3 = callNextMethod$3; $f.depth = depth; $f.e$1 = e$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.i$1 = i$1; $f.index$2 = index$2; $f.index$3 = index$3; $f.method$2 = method$2; $f.method$3 = method$3; $f.ret = ret; $f.test$2 = test$2; $f.test$3 = test$3; $f.test$4 = test$4; $f.width$1 = width$1; $f.width$2 = width$2; $f.width$3 = width$3; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters); e.DynamicVariable.Define(NewSymbol("IRIS/DEPTH"), NewInteger(index[0])); e.Function.Define(NewSymbol("NEXT-METHOD-P"), nextMethodPisNil[0]); test$2 = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function(i$1) { var i$1, x; return $interfaceIsEqual((x = (index[0] + i$1 >> 0) + 1 >> 0, ((x < 0 || x >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + x])).qualifier, $ifaceNil); }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters); width$1 = (methods[0].$length - index[0] >> 0) - 1 >> 0; _r$6 = sort.Search(width$1, test$2); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } /* */ if (_r$6 < width$1) { $s = 22; continue; } /* */ $s = 23; continue; /* if (_r$6 < width$1) { */ case 22: e.Function.Define(NewSymbol("NEXT-METHOD-P"), nextMethodPisT[0]); e.Function.Define(NewSymbol("CALL-NEXT-METHOD"), NewFunction(NewSymbol("CALL-NEXT-METHOD"), new funcType(callNextMethod$1[0]))); /* } */ case 23: _r$7 = $clone(((index[0] < 0 || index[0] >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + index[0]]).function$2, Function).Apply($clone(e, env.Environment), arguments$1[0]); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $s = -1; return _r$7; /* } */ case 21: callNextMethod$2[0] = $throwNilPointerError; callNextMethod$2[0] = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function $b(e$1) { var _r$10, _r$8, _r$9, _tuple, depth, e$1, index$2, test$3, test$4, width$2, width$3, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$10 = $f._r$10; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; depth = $f.depth; e$1 = $f.e$1; index$2 = $f.index$2; test$3 = $f.test$3; test$4 = $f.test$4; width$2 = $f.width$2; width$3 = $f.width$3; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: index$2 = [index$2]; _tuple = e$1.DynamicVariable.Get(NewSymbol("IRIS/DEPTH")); depth = _tuple[0]; index$2[0] = (($assertType(depth, Integer) >> 0)); test$3 = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, index$2, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function(i$1) { var i$1, x; return $interfaceIsEqual((x = (index$2[0] + i$1 >> 0) + 1 >> 0, ((x < 0 || x >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + x])).qualifier, $ifaceNil); }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, index$2, methods, nextMethodPisNil, nextMethodPisT, parameters); width$2 = (methods[0].$length - index$2[0] >> 0) - 1 >> 0; _r$8 = sort.Search(width$2, test$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } index$2[0] = _r$8; e$1.DynamicVariable.Define(NewSymbol("IRIS/DEPTH"), NewInteger(index$2[0])); e$1.Function.Define(NewSymbol("NEXT-METHOD-P"), nextMethodPisNil[0]); test$4 = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, index$2, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function(i$1) { var i$1, x; return $interfaceIsEqual((x = (index$2[0] + i$1 >> 0) + 1 >> 0, ((x < 0 || x >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + x])).qualifier, $ifaceNil); }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, index$2, methods, nextMethodPisNil, nextMethodPisT, parameters); width$3 = (methods[0].$length - index$2[0] >> 0) - 1 >> 0; _r$9 = sort.Search(width$3, test$4); /* */ $s = 4; case 4: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } /* */ if (_r$9 < width$3) { $s = 2; continue; } /* */ $s = 3; continue; /* if (_r$9 < width$3) { */ case 2: e$1.Function.Define(NewSymbol("NEXT-METHOD-P"), nextMethodPisT[0]); e$1.Function.Define(NewSymbol("CALL-NEXT-METHOD"), NewFunction(NewSymbol("CALL-NEXT-METHOD"), new funcType(callNextMethod$2[0]))); /* } */ case 3: _r$10 = $clone((x = (($assertType(depth, Integer) >> 0)), ((x < 0 || x >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + x])).function$2, Function).Apply($clone(e$1, env.Environment), arguments$1[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } $s = -1; return _r$10; /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$10 = _r$10; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f.depth = depth; $f.e$1 = e$1; $f.index$2 = index$2; $f.test$3 = test$3; $f.test$4 = test$4; $f.width$2 = width$2; $f.width$3 = width$3; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters); _ref$2 = methods[0]; _i$2 = 0; /* while (true) { */ case 26: /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 27; continue; } method$2 = $clone(((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]), method); /* */ if ($interfaceIsEqual(method$2.qualifier, before[0])) { $s = 28; continue; } /* */ $s = 29; continue; /* if ($interfaceIsEqual(method$2.qualifier, before[0])) { */ case 28: _r$8 = $clone(method$2.function$2, Function).Apply($clone(e, env.Environment), arguments$1[0]); /* */ $s = 30; case 30: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _tuple = _r$8; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } /* } */ case 29: _i$2++; /* } */ $s = 26; continue; case 27: index$1[0] = 0; test$3 = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function(i$1) { var i$1; return $interfaceIsEqual(((i$1 < 0 || i$1 >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + i$1]).qualifier, $ifaceNil); }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters); width$2 = methods[0].$length; _r$9 = sort.Search(width$2, test$3); /* */ $s = 31; case 31: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } index$2 = _r$9; e.DynamicVariable.Define(NewSymbol("IRIS/DEPTH"), NewInteger(index$2)); /* */ if (index$2 === methods[0].$length) { $s = 32; continue; } /* */ $s = 33; continue; /* if (index$2 === methods[0].$length) { */ case 32: _r$10 = NewUndefinedFunction($clone(e, env.Environment), f.funcSpec); /* */ $s = 34; case 34: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$10]; /* } */ case 33: e.Function.Define(NewSymbol("NEXT-METHOD-P"), nextMethodPisNil[0]); test$4 = (function(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters) { return function(i$1) { var i$1, x; return $interfaceIsEqual((x = (index$1[0] + i$1 >> 0) + 1 >> 0, ((x < 0 || x >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + x])).qualifier, $ifaceNil); }; })(after, arguments$1, around, before, callNextMethod, callNextMethod$1, callNextMethod$2, index, index$1, methods, nextMethodPisNil, nextMethodPisT, parameters); width$3 = (methods[0].$length - index$1[0] >> 0) - 1 >> 0; _r$11 = sort.Search(width$3, test$4); /* */ $s = 37; case 37: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } /* */ if (_r$11 < width$3) { $s = 35; continue; } /* */ $s = 36; continue; /* if (_r$11 < width$3) { */ case 35: e.Function.Define(NewSymbol("NEXT-METHOD-P"), nextMethodPisT[0]); e.Function.Define(NewSymbol("CALL-NEXT-METHOD"), NewFunction(NewSymbol("CALL-NEXT-METHOD"), new funcType(callNextMethod$2[0]))); /* } */ case 36: _r$12 = $clone(((index$1[0] < 0 || index$1[0] >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + index$1[0]]).function$2, Function).Apply($clone(e, env.Environment), arguments$1[0]); /* */ $s = 38; case 38: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } _tuple$1 = _r$12; ret = _tuple$1[0]; err$1 = _tuple$1[1]; i$1 = methods[0].$length - 1 >> 0; /* while (true) { */ case 39: /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 40; continue; } /* */ if ($interfaceIsEqual(((i$1 < 0 || i$1 >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + i$1]).qualifier, after[0])) { $s = 41; continue; } /* */ $s = 42; continue; /* if ($interfaceIsEqual(((i$1 < 0 || i$1 >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + i$1]).qualifier, after[0])) { */ case 41: _r$13 = $clone(((i$1 < 0 || i$1 >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + i$1]).function$2, Function).Apply($clone(e, env.Environment), arguments$1[0]); /* */ $s = 43; case 43: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _tuple$2 = _r$13; err$2 = _tuple$2[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } /* } */ case 42: i$1 = i$1 - (1) >> 0; /* } */ $s = 39; continue; case 40: $s = -1; return [ret, err$1]; $s = -1; return [$ifaceNil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: GenericFunction.ptr.prototype.Apply }; } $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.after = after; $f.arguments$1 = arguments$1; $f.around = around; $f.before = before; $f.c = c; $f.callNextMethod = callNextMethod; $f.callNextMethod$1 = callNextMethod$1; $f.callNextMethod$2 = callNextMethod$2; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.i = i; $f.i$1 = i$1; $f.index = index; $f.index$1 = index$1; $f.index$2 = index$2; $f.matched = matched; $f.method$1 = method$1; $f.method$2 = method$2; $f.methods = methods; $f.nextMethodPisNil = nextMethodPisNil; $f.nextMethodPisT = nextMethodPisT; $f.parameters = parameters; $f.ret = ret; $f.test = test; $f.test$1 = test$1; $f.test$2 = test$2; $f.test$3 = test$3; $f.test$4 = test$4; $f.variadic = variadic; $f.width = width; $f.width$1 = width$1; $f.width$2 = width$2; $f.width$3 = width$3; $f.$s = $s; $f.$r = $r; return $f; }; GenericFunction.prototype.Apply = function(e, arguments$1) { return this.$val.Apply(e, arguments$1); }; Create = function(e, c, i) { var _i, _r, _r$1, _r$2, _ref, c, e, i, p, q, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; c = $f.c; e = $f.e; i = $f.i; p = $f.p; q = $f.q; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = new sliceType$1([]); _r = $assertType(c, ilos.Class).Supers(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _ref = _r; _i = 0; /* while (true) { */ case 2: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } q = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$1 = Create($clone(e, env.Environment), q, i); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } p = $append(p, _r$1); _i++; /* } */ $s = 2; continue; case 3: _r$2 = InitializeObject($clone(e, env.Environment), (x = new Instance.ptr($assertType(c, ilos.Class), p, $makeMap(ilos.Instance.keyFor, [])), new x.constructor.elem(x)), i); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* */ } return; } if ($f === undefined) { $f = { $blk: Create }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f.c = c; $f.e = e; $f.i = i; $f.p = p; $f.q = q; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Create = Create; InitializeObject = function(e, object, inits) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, argName, argValue, e, form, i, inits, object, ok, ok$1, ok$2, s, slotName, slotName$1, super$1, value, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; argName = $f.argName; argValue = $f.argValue; e = $f.e; form = $f.form; i = $f.i; inits = $f.inits; object = $f.object; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; s = $f.s; slotName = $f.slotName; slotName$1 = $f.slotName$1; super$1 = $f.super$1; value = $f.value; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _ref = $assertType(object, Instance).supers; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } super$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r = InitializeObject($clone(e, env.Environment), super$1, inits); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; _i++; /* } */ $s = 1; continue; case 2: i = 0; /* while (true) { */ case 4: /* if (!(i < inits.$length)) { break; } */ if(!(i < inits.$length)) { $s = 5; continue; } argName = ((i < 0 || i >= inits.$length) ? ($throwRuntimeError("index out of range"), undefined) : inits.$array[inits.$offset + i]); argValue = (x = i + 1 >> 0, ((x < 0 || x >= inits.$length) ? ($throwRuntimeError("index out of range"), undefined) : inits.$array[inits.$offset + x])); _r$1 = object.Class(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = _r$1.Initarg(argName); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple = _r$2; slotName = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 8; continue; } /* */ $s = 9; continue; /* if (ok) { */ case 8: _r$3 = object.Class(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$4 = _r$3.Slots(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _ref$1 = _r$4; _i$1 = 0; /* while (true) { */ case 12: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 13; continue; } s = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); /* */ if ($interfaceIsEqual(slotName, s)) { $s = 14; continue; } /* */ $s = 15; continue; /* if ($interfaceIsEqual(slotName, s)) { */ case 14: _arg = slotName; _arg$1 = argValue; _r$5 = object.Class(); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$2 = _r$5; _r$6 = $clone($assertType(object, Instance), Instance).SetSlotValue(_arg, _arg$1, _arg$2); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _r$6; /* break; */ $s = 13; continue; /* } */ case 15: _i$1++; /* } */ $s = 12; continue; case 13: /* } */ case 9: i = i + (2) >> 0; /* } */ $s = 4; continue; case 5: _r$7 = object.Class(); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _r$8 = _r$7.Slots(); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _ref$2 = _r$8; _i$2 = 0; /* while (true) { */ case 20: /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 21; continue; } slotName$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); _arg$3 = slotName$1; _r$9 = object.Class(); /* */ $s = 22; case 22: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _arg$4 = _r$9; _r$10 = $clone($assertType(object, Instance), Instance).GetSlotValue(_arg$3, _arg$4); /* */ $s = 23; case 23: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _tuple$1 = _r$10; ok$1 = _tuple$1[1]; /* */ if (!ok$1) { $s = 24; continue; } /* */ $s = 25; continue; /* if (!ok$1) { */ case 24: _r$11 = object.Class(); /* */ $s = 26; case 26: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _r$12 = _r$11.Initform(slotName$1); /* */ $s = 27; case 27: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } _tuple$2 = _r$12; form = _tuple$2[0]; ok$2 = _tuple$2[1]; /* */ if (ok$2) { $s = 28; continue; } /* */ $s = 29; continue; /* if (ok$2) { */ case 28: _r$13 = $assertType(form, Applicable).Apply($clone(e.NewDynamic(), env.Environment), new sliceType$1([])); /* */ $s = 30; case 30: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _tuple$3 = _r$13; value = _tuple$3[0]; _arg$5 = slotName$1; _arg$6 = value; _r$14 = object.Class(); /* */ $s = 31; case 31: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } _arg$7 = _r$14; _r$15 = $clone($assertType(object, Instance), Instance).SetSlotValue(_arg$5, _arg$6, _arg$7); /* */ $s = 32; case 32: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } _r$15; /* } */ case 29: /* } */ case 25: _i$2++; /* } */ $s = 20; continue; case 21: $s = -1; return object; /* */ } return; } if ($f === undefined) { $f = { $blk: InitializeObject }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.argName = argName; $f.argValue = argValue; $f.e = e; $f.form = form; $f.i = i; $f.inits = inits; $f.object = object; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.s = s; $f.slotName = slotName; $f.slotName$1 = slotName$1; $f.super$1 = super$1; $f.value = value; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.InitializeObject = InitializeObject; slots.prototype.String = function() { var _entry, _i, _keys, _r, _ref, k, s, str, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _i = $f._i; _keys = $f._keys; _r = $f._r; _ref = $f._ref; k = $f.k; s = $f.s; str = $f.str; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: s = this.$val; str = "{"; _ref = s; _i = 0; _keys = $keys(_ref); /* while (true) { */ case 1: /* if (!(_i < _keys.length)) { break; } */ if(!(_i < _keys.length)) { $s = 2; continue; } _entry = _ref[_keys[_i]]; if (_entry === undefined) { _i++; /* continue; */ $s = 1; continue; } k = _entry.k; v = _entry.v; _r = fmt.Sprintf("%v: %v, ", new sliceType$4([k, v])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } str = str + (_r); _i++; /* } */ $s = 1; continue; case 2: if (str.length === 1) { $s = -1; return ""; } $s = -1; return $substring(str, 0, (str.length - 2 >> 0)) + "}"; /* */ } return; } if ($f === undefined) { $f = { $blk: slots.prototype.String }; } $f._entry = _entry; $f._i = _i; $f._keys = _keys; $f._r = _r; $f._ref = _ref; $f.k = k; $f.s = s; $f.str = str; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; $ptrType(slots).prototype.String = function() { return new slots(this.$get()).String(); }; Instance.ptr.prototype.Class = function() { var i; i = this; return i.class$0; }; Instance.prototype.Class = function() { return this.$val.Class(); }; Instance.ptr.prototype.GetSlotValue = function(key, class$1) { var _entry, _i, _r, _r$1, _ref, _tuple, _tuple$1, _v, class$1, i, key, ok, ok$1, s, v, v$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _v = $f._v; class$1 = $f.class$1; i = $f.i; key = $f.key; ok = $f.ok; ok$1 = $f.ok$1; s = $f.s; v = $f.v; v$1 = $f.v$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = this; _tuple = (_entry = i.slots[ilos.Instance.keyFor(key)], _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); v = _tuple[0]; ok = _tuple[1]; if (!(ok)) { _v = false; $s = 3; continue s; } _r = reflect.DeepEqual(i.class$0, class$1); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v = _r; case 3: /* */ if (_v) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_v) { */ case 1: $s = -1; return [v, ok]; /* } */ case 2: _ref = i.supers; _i = 0; /* while (true) { */ case 5: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$1 = $clone($assertType(s, Instance), Instance).GetSlotValue(key, class$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; v$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1) { $s = -1; return [v$1, ok$1]; } _i++; /* } */ $s = 5; continue; case 6: $s = -1; return [$ifaceNil, false]; /* */ } return; } if ($f === undefined) { $f = { $blk: Instance.ptr.prototype.GetSlotValue }; } $f._entry = _entry; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._v = _v; $f.class$1 = class$1; $f.i = i; $f.key = key; $f.ok = ok; $f.ok$1 = ok$1; $f.s = s; $f.v = v; $f.v$1 = v$1; $f.$s = $s; $f.$r = $r; return $f; }; Instance.prototype.GetSlotValue = function(key, class$1) { return this.$val.GetSlotValue(key, class$1); }; Instance.ptr.prototype.SetSlotValue = function(key, value, class$1) { var _i, _key, _r, _r$1, _ref, class$1, i, key, ok, s, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _key = $f._key; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; class$1 = $f.class$1; i = $f.i; key = $f.key; ok = $f.ok; s = $f.s; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = this; _r = reflect.DeepEqual(i.class$0, class$1); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: _key = key; (i.slots || $throwRuntimeError("assignment to entry in nil map"))[ilos.Instance.keyFor(_key)] = { k: _key, v: value }; $s = -1; return true; /* } */ case 2: _ref = i.supers; _i = 0; /* while (true) { */ case 4: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$1 = $clone($assertType(s, Instance), Instance).SetSlotValue(key, value, class$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } ok = _r$1; if (ok) { $s = -1; return ok; } _i++; /* } */ $s = 4; continue; case 5: $s = -1; return false; /* */ } return; } if ($f === undefined) { $f = { $blk: Instance.ptr.prototype.SetSlotValue }; } $f._i = _i; $f._key = _key; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f.class$1 = class$1; $f.i = i; $f.key = key; $f.ok = ok; $f.s = s; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; Instance.prototype.SetSlotValue = function(key, value, class$1) { return this.$val.SetSlotValue(key, value, class$1); }; Instance.ptr.prototype.getAllSlots = function() { var _entry, _entry$1, _i, _i$1, _i$2, _key, _key$1, _keys, _keys$1, _ref, _ref$1, _ref$2, _tuple, c, i, k, k$1, m, ok, v, v$1; i = this; m = $makeMap(ilos.Instance.keyFor, []); _ref = i.slots; _i = 0; _keys = $keys(_ref); while (true) { if (!(_i < _keys.length)) { break; } _entry = _ref[_keys[_i]]; if (_entry === undefined) { _i++; continue; } k = _entry.k; v = _entry.v; _key = k; (m || $throwRuntimeError("assignment to entry in nil map"))[ilos.Instance.keyFor(_key)] = { k: _key, v: v }; _i++; } _ref$1 = i.supers; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } c = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); _tuple = $assertType(c, Instance, true); ok = _tuple[1]; if (ok) { _ref$2 = $clone($assertType(c, Instance), Instance).getAllSlots(); _i$2 = 0; _keys$1 = $keys(_ref$2); while (true) { if (!(_i$2 < _keys$1.length)) { break; } _entry$1 = _ref$2[_keys$1[_i$2]]; if (_entry$1 === undefined) { _i$2++; continue; } k$1 = _entry$1.k; v$1 = _entry$1.v; _key$1 = k$1; (m || $throwRuntimeError("assignment to entry in nil map"))[ilos.Instance.keyFor(_key$1)] = { k: _key$1, v: v$1 }; _i$2++; } } _i$1++; } return m; }; Instance.prototype.getAllSlots = function() { return this.$val.getAllSlots(); }; Instance.ptr.prototype.String = function() { var _r, _r$1, c, i, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; c = $f.c; i = $f.i; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = this; _r = $clone(i, Instance).Class().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } c = _r; _r$1 = fmt.Sprintf("#%v %v>", new sliceType$4([new $String($substring(c, 0, (c.length - 1 >> 0))), new slots($clone(i, Instance).getAllSlots())])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: Instance.ptr.prototype.String }; } $f._r = _r; $f._r$1 = _r$1; $f.c = c; $f.i = i; $f.$s = $s; $f.$r = $r; return $f; }; Instance.prototype.String = function() { return this.$val.String(); }; NewCons = function(car, cdr) { var car, cdr; return new Cons.ptr(car, cdr); }; $pkg.NewCons = NewCons; Cons.ptr.prototype.Class = function() { return $pkg.ConsClass; }; Cons.prototype.Class = function() { return this.$val.Class(); }; Cons.ptr.prototype.String = function() { var _r, _r$1, _r$2, _r$3, _r$4, cdr, i, str, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; cdr = $f.cdr; i = $f.i; str = $f.str; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = this; _r = fmt.Sprint(new sliceType$4([i.Car])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } str = "(" + _r; cdr = i.Cdr; /* while (true) { */ case 2: _r$1 = ilos.InstanceOf($pkg.ConsClass, cdr); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* if (!(_r$1)) { break; } */ if(!(_r$1)) { $s = 3; continue; } _r$2 = fmt.Sprintf(" %v", new sliceType$4([$assertType(cdr, ptrType$2).Car])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } str = str + (_r$2); cdr = $assertType(cdr, ptrType$2).Cdr; /* } */ $s = 2; continue; case 3: _r$3 = ilos.InstanceOf(new $pkg.NullClass.constructor.elem($pkg.NullClass), cdr); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3) { $s = 6; continue; } /* */ $s = 7; continue; /* if (_r$3) { */ case 6: str = str + (")"); $s = 8; continue; /* } else { */ case 7: _r$4 = fmt.Sprintf(" . %v)", new sliceType$4([cdr])); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } str = str + (_r$4); /* } */ case 8: $s = -1; return str; /* */ } return; } if ($f === undefined) { $f = { $blk: Cons.ptr.prototype.String }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.cdr = cdr; $f.i = i; $f.str = str; $f.$s = $s; $f.$r = $r; return $f; }; Cons.prototype.String = function() { return this.$val.String(); }; Cons.ptr.prototype.Slice = function() { var _r, cdr, i, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; cdr = $f.cdr; i = $f.i; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = this; s = new sliceType$1([]); cdr = i; /* while (true) { */ case 1: _r = ilos.InstanceOf($pkg.ConsClass, cdr); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; } s = $append(s, $assertType(cdr, ptrType$2).Car); cdr = $assertType(cdr, ptrType$2).Cdr; /* } */ $s = 1; continue; case 2: $s = -1; return s; /* */ } return; } if ($f === undefined) { $f = { $blk: Cons.ptr.prototype.Slice }; } $f._r = _r; $f.cdr = cdr; $f.i = i; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; Cons.prototype.Slice = function() { return this.$val.Slice(); }; Cons.ptr.prototype.Length = function() { var _r, i, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = this; _r = $assertType(i.Cdr, List).Length(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return 1 + _r >> 0; /* */ } return; } if ($f === undefined) { $f = { $blk: Cons.ptr.prototype.Length }; } $f._r = _r; $f.i = i; $f.$s = $s; $f.$r = $r; return $f; }; Cons.prototype.Length = function() { return this.$val.Length(); }; Cons.ptr.prototype.Nth = function(n) { var _r, i, n, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = this; if (n === 0) { $s = -1; return i.Car; } _r = $assertType(i.Cdr, List).Nth(n - 1 >> 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Cons.ptr.prototype.Nth }; } $f._r = _r; $f.i = i; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; }; Cons.prototype.Nth = function(n) { return this.$val.Nth(n); }; Cons.ptr.prototype.SetNth = function(obj, n) { var i, n, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; i = $f.i; n = $f.n; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = this; if (n === 0) { i.Car = obj; } $r = $assertType(i.Cdr, List).SetNth(obj, n - 1 >> 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: Cons.ptr.prototype.SetNth }; } $f.i = i; $f.n = n; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; Cons.prototype.SetNth = function(obj, n) { return this.$val.SetNth(obj, n); }; Cons.ptr.prototype.NthCdr = function(n) { var _r, i, n, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = this; if (n === 0) { $s = -1; return i.Cdr; } _r = $assertType(i.Cdr, List).NthCdr(n - 1 >> 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Cons.ptr.prototype.NthCdr }; } $f._r = _r; $f.i = i; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; }; Cons.prototype.NthCdr = function(n) { return this.$val.NthCdr(n); }; NewNull = function() { return new Null.ptr(); }; $pkg.NewNull = NewNull; Null.ptr.prototype.Class = function() { return new $pkg.NullClass.constructor.elem($pkg.NullClass); }; Null.prototype.Class = function() { return this.$val.Class(); }; Null.ptr.prototype.String = function() { return "NIL"; }; Null.prototype.String = function() { return this.$val.String(); }; Null.ptr.prototype.Slice = function() { return new sliceType$1([]); }; Null.prototype.Slice = function() { return this.$val.Slice(); }; Null.ptr.prototype.Nth = function(n) { var i, n; i = this; return $pkg.Nil; }; Null.prototype.Nth = function(n) { return this.$val.Nth(n); }; Null.ptr.prototype.SetNth = function(obj, n) { var i, n, obj; i = this; $panic(new $String("NOT a cons")); }; Null.prototype.SetNth = function(obj, n) { return this.$val.SetNth(obj, n); }; Null.ptr.prototype.NthCdr = function(n) { var i, n; i = this; return $pkg.Nil; }; Null.prototype.NthCdr = function(n) { return this.$val.NthCdr(n); }; Null.ptr.prototype.Length = function() { var i; i = this; return 0; }; Null.prototype.Length = function() { return this.$val.Length(); }; NewInteger = function(i) { var i; return new Integer(((i >> 0))); }; $pkg.NewInteger = NewInteger; Integer.prototype.Class = function() { return $pkg.IntegerClass; }; $ptrType(Integer).prototype.Class = function() { return new Integer(this.$get()).Class(); }; Integer.prototype.String = function() { var _r, i, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = this.$val; _r = fmt.Sprint(new sliceType$4([new $Int(((i >> 0)))])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Integer.prototype.String }; } $f._r = _r; $f.i = i; $f.$s = $s; $f.$r = $r; return $f; }; $ptrType(Integer).prototype.String = function() { return new Integer(this.$get()).String(); }; NewFloat = function(i) { var i; return new Float((i)); }; $pkg.NewFloat = NewFloat; Float.prototype.Class = function() { return $pkg.FloatClass; }; $ptrType(Float).prototype.Class = function() { return new Float(this.$get()).Class(); }; Float.prototype.String = function() { var _r, i, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: i = this.$val; _r = fmt.Sprint(new sliceType$4([new $Float64((i))])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Float.prototype.String }; } $f._r = _r; $f.i = i; $f.$s = $s; $f.$r = $r; return $f; }; $ptrType(Float).prototype.String = function() { return new Float(this.$get()).String(); }; NewStandardClass = function(name, supers, slots$1, initforms, initargs, metaclass, abstractp) { var abstractp, initargs, initforms, metaclass, name, slots$1, supers, x; return (x = new StandardClass.ptr(name, supers, slots$1, initforms, initargs, metaclass, abstractp), new x.constructor.elem(x)); }; $pkg.NewStandardClass = NewStandardClass; StandardClass.ptr.prototype.Supers = function() { var p; p = this; return p.supers; }; StandardClass.prototype.Supers = function() { return this.$val.Supers(); }; StandardClass.ptr.prototype.Slots = function() { var p; p = this; return p.slots; }; StandardClass.prototype.Slots = function() { return this.$val.Slots(); }; StandardClass.ptr.prototype.Initform = function(arg) { var _entry, _tuple, arg, ok, p, v; p = this; _tuple = (_entry = p.initforms[ilos.Instance.keyFor(arg)], _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); v = _tuple[0]; ok = _tuple[1]; return [v, ok]; }; StandardClass.prototype.Initform = function(arg) { return this.$val.Initform(arg); }; StandardClass.ptr.prototype.Initarg = function(arg) { var _entry, _tuple, arg, ok, p, v; p = this; _tuple = (_entry = p.initargs[ilos.Instance.keyFor(arg)], _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); v = _tuple[0]; ok = _tuple[1]; return [v, ok]; }; StandardClass.prototype.Initarg = function(arg) { return this.$val.Initarg(arg); }; StandardClass.ptr.prototype.Class = function() { var p; p = this; return p.metaclass; }; StandardClass.prototype.Class = function() { return this.$val.Class(); }; StandardClass.ptr.prototype.String = function() { var _r, p, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: p = this; _r = fmt.Sprint(new sliceType$4([p.name])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: StandardClass.ptr.prototype.String }; } $f._r = _r; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; }; StandardClass.prototype.String = function() { return this.$val.String(); }; NewStream = function(r, w) { var r, w, x, x$1; if ($interfaceIsEqual(r, $ifaceNil)) { return (x = new Stream.ptr($newDataPointer(0, ptrType$3), ptrType$4.nil, w), new x.constructor.elem(x)); } return (x$1 = new Stream.ptr($newDataPointer(0, ptrType$3), tokenizer.NewReader(r), w), new x$1.constructor.elem(x$1)); }; $pkg.NewStream = NewStream; Stream.ptr.prototype.Class = function() { return $pkg.StreamClass; }; Stream.prototype.Class = function() { return this.$val.Class(); }; Stream.ptr.prototype.Write = function(p) { var _r, _tuple, err, i, n, p, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; i = $f.i; n = $f.n; p = $f.p; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; s = this; i = strings.LastIndex(($bytesToString(p)), "\n"); if (i < 0) { s.Column.$set(s.Column.$get() + (p.$length) >> 0); } else { s.Column.$set($subslice(p, (i + 1 >> 0)).$length); } _r = s.Writer.Write(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.Write }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.i = i; $f.n = n; $f.p = p; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; Stream.prototype.Write = function(p) { return this.$val.Write(p); }; Stream.ptr.prototype.Read = function(p) { var _r, _tuple, err, n, p, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; n = $f.n; p = $f.p; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; s = this; _r = s.Reader.Read(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; $s = -1; return [n, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.Read }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.n = n; $f.p = p; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; Stream.prototype.Read = function(p) { return this.$val.Read(p); }; Stream.ptr.prototype.String = function() { return "#"; }; Stream.prototype.String = function() { return this.$val.String(); }; NewSymbol = function(s) { var s; return new Symbol((s)); }; $pkg.NewSymbol = NewSymbol; Symbol.prototype.Class = function() { return $pkg.SymbolClass; }; $ptrType(Symbol).prototype.Class = function() { return new Symbol(this.$get()).Class(); }; Symbol.prototype.String = function() { var i; i = this.$val; return (i); }; $ptrType(Symbol).prototype.String = function() { return new Symbol(this.$get()).String(); }; NewBlockTag = function(tag, uid, object) { var _r, object, tag, uid, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; object = $f.object; tag = $f.tag; uid = $f.uid; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Create($clone(env.NewEnvironment($ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil), env.Environment), $pkg.BlockTagClass, new sliceType$1([NewSymbol("IRIS.TAG"), tag, NewSymbol("IRIS.UID"), uid, NewSymbol("IRIS.OBJECT"), object])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: NewBlockTag }; } $f._r = _r; $f.object = object; $f.tag = tag; $f.uid = uid; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NewBlockTag = NewBlockTag; NewCatchTag = function(tag, uid, object) { var _r, object, tag, uid, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; object = $f.object; tag = $f.tag; uid = $f.uid; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Create($clone(env.NewEnvironment($ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil), env.Environment), $pkg.CatchTagClass, new sliceType$1([NewSymbol("IRIS.TAG"), tag, NewSymbol("IRIS.UID"), uid, NewSymbol("IRIS.OBJECT"), object])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: NewCatchTag }; } $f._r = _r; $f.object = object; $f.tag = tag; $f.uid = uid; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NewCatchTag = NewCatchTag; NewTagbodyTag = function(tag, uid) { var _r, tag, uid, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; tag = $f.tag; uid = $f.uid; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Create($clone(env.NewEnvironment($ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil), env.Environment), $pkg.TagbodyTagClass, new sliceType$1([NewSymbol("IRIS.TAG"), tag, NewSymbol("IRIS.UID"), uid])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: NewTagbodyTag }; } $f._r = _r; $f.tag = tag; $f.uid = uid; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NewTagbodyTag = NewTagbodyTag; ptrType.methods = [{prop: "Class", name: "Class", pkg: "", typ: $funcType([], [ilos.Class], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; GeneralVector.methods = [{prop: "Class", name: "Class", pkg: "", typ: $funcType([], [ilos.Class], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; String.methods = [{prop: "Class", name: "Class", pkg: "", typ: $funcType([], [ilos.Class], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; BuiltInClass.methods = [{prop: "Supers", name: "Supers", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "Slots", name: "Slots", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "Initform", name: "Initform", pkg: "", typ: $funcType([ilos.Instance], [ilos.Instance, $Bool], false)}, {prop: "Initarg", name: "Initarg", pkg: "", typ: $funcType([ilos.Instance], [ilos.Instance, $Bool], false)}, {prop: "Class", name: "Class", pkg: "", typ: $funcType([], [ilos.Class], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; Character.methods = [{prop: "Class", name: "Class", pkg: "", typ: $funcType([], [ilos.Class], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; Function.methods = [{prop: "Class", name: "Class", pkg: "", typ: $funcType([], [ilos.Class], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Apply", name: "Apply", pkg: "", typ: $funcType([env.Environment, sliceType$1], [ilos.Instance, ilos.Instance], true)}]; ptrType$5.methods = [{prop: "AddMethod", name: "AddMethod", pkg: "", typ: $funcType([ilos.Instance, ilos.Instance, sliceType, ilos.Instance], [$Bool], false)}, {prop: "Class", name: "Class", pkg: "", typ: $funcType([], [ilos.Class], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Apply", name: "Apply", pkg: "", typ: $funcType([env.Environment, sliceType$1], [ilos.Instance, ilos.Instance], true)}]; slots.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; Instance.methods = [{prop: "Class", name: "Class", pkg: "", typ: $funcType([], [ilos.Class], false)}, {prop: "GetSlotValue", name: "GetSlotValue", pkg: "", typ: $funcType([ilos.Instance, ilos.Class], [ilos.Instance, $Bool], false)}, {prop: "SetSlotValue", name: "SetSlotValue", pkg: "", typ: $funcType([ilos.Instance, ilos.Instance, ilos.Class], [$Bool], false)}, {prop: "getAllSlots", name: "getAllSlots", pkg: "github.com/asciian/iris/runtime/ilos/instance", typ: $funcType([], [slots], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$2.methods = [{prop: "Class", name: "Class", pkg: "", typ: $funcType([], [ilos.Class], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Nth", name: "Nth", pkg: "", typ: $funcType([$Int], [ilos.Instance], false)}, {prop: "SetNth", name: "SetNth", pkg: "", typ: $funcType([ilos.Instance, $Int], [], false)}, {prop: "NthCdr", name: "NthCdr", pkg: "", typ: $funcType([$Int], [ilos.Instance], false)}]; ptrType$6.methods = [{prop: "Class", name: "Class", pkg: "", typ: $funcType([], [ilos.Class], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "Nth", name: "Nth", pkg: "", typ: $funcType([$Int], [ilos.Instance], false)}, {prop: "SetNth", name: "SetNth", pkg: "", typ: $funcType([ilos.Instance, $Int], [], false)}, {prop: "NthCdr", name: "NthCdr", pkg: "", typ: $funcType([$Int], [ilos.Instance], false)}, {prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Int], false)}]; Integer.methods = [{prop: "Class", name: "Class", pkg: "", typ: $funcType([], [ilos.Class], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; Float.methods = [{prop: "Class", name: "Class", pkg: "", typ: $funcType([], [ilos.Class], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; StandardClass.methods = [{prop: "Supers", name: "Supers", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "Slots", name: "Slots", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "Initform", name: "Initform", pkg: "", typ: $funcType([ilos.Instance], [ilos.Instance, $Bool], false)}, {prop: "Initarg", name: "Initarg", pkg: "", typ: $funcType([ilos.Instance], [ilos.Instance, $Bool], false)}, {prop: "Class", name: "Class", pkg: "", typ: $funcType([], [ilos.Class], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; Stream.methods = [{prop: "Class", name: "Class", pkg: "", typ: $funcType([], [ilos.Class], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$7], [$Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$7], [$Int, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; Symbol.methods = [{prop: "Class", name: "Class", pkg: "", typ: $funcType([], [ilos.Class], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; GeneralArrayStar.init("", [{prop: "Vector", name: "Vector", anonymous: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "Scalar", name: "Scalar", anonymous: false, exported: true, typ: ilos.Instance, tag: ""}]); GeneralVector.init(ilos.Instance); String.init($Int32); BuiltInClass.init("github.com/asciian/iris/runtime/ilos/instance", [{prop: "name", name: "name", anonymous: false, exported: false, typ: ilos.Instance, tag: ""}, {prop: "supers", name: "supers", anonymous: false, exported: false, typ: sliceType, tag: ""}, {prop: "slots", name: "slots", anonymous: false, exported: false, typ: sliceType$1, tag: ""}]); Applicable.init([{prop: "Apply", name: "Apply", pkg: "", typ: $funcType([env.Environment, sliceType$1], [ilos.Instance, ilos.Instance], true)}]); Function.init("github.com/asciian/iris/runtime/ilos/instance", [{prop: "name", name: "name", anonymous: false, exported: false, typ: ilos.Instance, tag: ""}, {prop: "function$1", name: "function", anonymous: false, exported: false, typ: $emptyInterface, tag: ""}]); method.init("github.com/asciian/iris/runtime/ilos/instance", [{prop: "qualifier", name: "qualifier", anonymous: false, exported: false, typ: ilos.Instance, tag: ""}, {prop: "classList", name: "classList", anonymous: false, exported: false, typ: sliceType, tag: ""}, {prop: "function$2", name: "function", anonymous: false, exported: false, typ: Function, tag: ""}]); GenericFunction.init("github.com/asciian/iris/runtime/ilos/instance", [{prop: "funcSpec", name: "funcSpec", anonymous: false, exported: false, typ: ilos.Instance, tag: ""}, {prop: "lambdaList", name: "lambdaList", anonymous: false, exported: false, typ: ilos.Instance, tag: ""}, {prop: "methodCombination", name: "methodCombination", anonymous: false, exported: false, typ: ilos.Instance, tag: ""}, {prop: "genericFunctionClass", name: "genericFunctionClass", anonymous: false, exported: false, typ: ilos.Class, tag: ""}, {prop: "methods", name: "methods", anonymous: false, exported: false, typ: sliceType$6, tag: ""}]); slots.init(ilos.Instance, ilos.Instance); Instance.init("github.com/asciian/iris/runtime/ilos/instance", [{prop: "class$0", name: "class", anonymous: false, exported: false, typ: ilos.Class, tag: ""}, {prop: "supers", name: "supers", anonymous: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "slots", name: "slots", anonymous: false, exported: false, typ: slots, tag: ""}]); List.init([{prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Nth", name: "Nth", pkg: "", typ: $funcType([$Int], [ilos.Instance], false)}, {prop: "NthCdr", name: "NthCdr", pkg: "", typ: $funcType([$Int], [ilos.Instance], false)}, {prop: "SetNth", name: "SetNth", pkg: "", typ: $funcType([ilos.Instance, $Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([], [sliceType$1], false)}]); Cons.init("", [{prop: "Car", name: "Car", anonymous: false, exported: true, typ: ilos.Instance, tag: ""}, {prop: "Cdr", name: "Cdr", anonymous: false, exported: true, typ: ilos.Instance, tag: ""}]); Null.init("", []); StandardClass.init("github.com/asciian/iris/runtime/ilos/instance", [{prop: "name", name: "name", anonymous: false, exported: false, typ: ilos.Instance, tag: ""}, {prop: "supers", name: "supers", anonymous: false, exported: false, typ: sliceType, tag: ""}, {prop: "slots", name: "slots", anonymous: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "initforms", name: "initforms", anonymous: false, exported: false, typ: mapType, tag: ""}, {prop: "initargs", name: "initargs", anonymous: false, exported: false, typ: mapType, tag: ""}, {prop: "metaclass", name: "metaclass", anonymous: false, exported: false, typ: ilos.Class, tag: ""}, {prop: "abstractp", name: "abstractp", anonymous: false, exported: false, typ: ilos.Instance, tag: ""}]); Stream.init("", [{prop: "Column", name: "Column", anonymous: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "Reader", name: "Reader", anonymous: false, exported: true, typ: ptrType$4, tag: ""}, {prop: "Writer", name: "Writer", anonymous: false, exported: true, typ: io.Writer, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = tokenizer.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = env.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = ilos.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = io.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = reflect.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = sort.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strings.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $pkg.ObjectClass = new BuiltInClass.ptr(NewSymbol(""), new sliceType([]), new sliceType$1([])); $pkg.BuiltInClassClass = NewBuiltInClass("", new $pkg.ObjectClass.constructor.elem($pkg.ObjectClass), new sliceType$2([])); $pkg.StandardClassClass = NewBuiltInClass("", new $pkg.ObjectClass.constructor.elem($pkg.ObjectClass), new sliceType$2([])); $pkg.BasicArrayClass = NewBuiltInClass("", new $pkg.ObjectClass.constructor.elem($pkg.ObjectClass), new sliceType$2([])); $pkg.BasicArrayStarClass = NewBuiltInClass("", $pkg.BasicArrayClass, new sliceType$2([])); $pkg.GeneralArrayStarClass = NewBuiltInClass("", $pkg.BasicArrayStarClass, new sliceType$2([])); $pkg.BasicVectorClass = NewBuiltInClass("", $pkg.BasicArrayClass, new sliceType$2([])); $pkg.GeneralVectorClass = NewBuiltInClass("", $pkg.BasicVectorClass, new sliceType$2([])); $pkg.StringClass = NewBuiltInClass("", $pkg.BasicVectorClass, new sliceType$2([])); $pkg.CharacterClass = NewBuiltInClass("", new $pkg.ObjectClass.constructor.elem($pkg.ObjectClass), new sliceType$2([])); $pkg.FunctionClass = NewBuiltInClass("", new $pkg.ObjectClass.constructor.elem($pkg.ObjectClass), new sliceType$2([])); $pkg.GenericFunctionClass = NewBuiltInClass("", $pkg.FunctionClass, new sliceType$2([])); $pkg.StandardGenericFunctionClass = NewBuiltInClass("", $pkg.GenericFunctionClass, new sliceType$2([])); $pkg.ListClass = NewBuiltInClass("", new $pkg.ObjectClass.constructor.elem($pkg.ObjectClass), new sliceType$2([])); $pkg.ConsClass = NewBuiltInClass("", $pkg.ListClass, new sliceType$2([])); $pkg.SymbolClass = NewBuiltInClass("", new $pkg.ObjectClass.constructor.elem($pkg.ObjectClass), new sliceType$2([])); $pkg.NullClass = new BuiltInClass.ptr(NewSymbol(""), new sliceType([$pkg.ListClass, $pkg.SymbolClass]), new sliceType$1([])); $pkg.NumberClass = NewBuiltInClass("", new $pkg.ObjectClass.constructor.elem($pkg.ObjectClass), new sliceType$2([])); $pkg.IntegerClass = NewBuiltInClass("", $pkg.NumberClass, new sliceType$2([])); $pkg.FloatClass = NewBuiltInClass("", $pkg.NumberClass, new sliceType$2([])); $pkg.SeriousConditionClass = NewBuiltInClass("", new $pkg.ObjectClass.constructor.elem($pkg.ObjectClass), new sliceType$2([])); $pkg.ErrorClass = NewBuiltInClass("", $pkg.SeriousConditionClass, new sliceType$2([])); $pkg.ArithmeticErrorClass = NewBuiltInClass("", $pkg.ErrorClass, new sliceType$2(["OPERATION", "OPERANDS"])); $pkg.DivisionByZeroClass = NewBuiltInClass("", $pkg.ArithmeticErrorClass, new sliceType$2([])); $pkg.FloatingPointOnderflowClass = NewBuiltInClass("", $pkg.ArithmeticErrorClass, new sliceType$2([])); $pkg.FloatingPointUnderflowClass = NewBuiltInClass("", $pkg.ArithmeticErrorClass, new sliceType$2([])); $pkg.ControlErrorClass = NewBuiltInClass("", $pkg.ErrorClass, new sliceType$2([])); $pkg.ParseErrorClass = NewBuiltInClass("", $pkg.ErrorClass, new sliceType$2(["STRING", "EXPECTED-CLASS"])); $pkg.ProgramErrorClass = NewBuiltInClass("", $pkg.ErrorClass, new sliceType$2([])); $pkg.DomainErrorClass = NewBuiltInClass("", $pkg.ProgramErrorClass, new sliceType$2(["IRIS.OBJECT", "EXPECTED-CLASS"])); $pkg.UndefinedEntityClass = NewBuiltInClass("", $pkg.ProgramErrorClass, new sliceType$2(["NAME", "NAMESPACE"])); $pkg.UndefinedVariableClass = NewBuiltInClass("", $pkg.UndefinedEntityClass, new sliceType$2([])); $pkg.UndefinedFunctionClass = NewBuiltInClass("", $pkg.UndefinedEntityClass, new sliceType$2([])); $pkg.SimpleErrorClass = NewBuiltInClass("", $pkg.ErrorClass, new sliceType$2(["FORMAT-STRING", "FORMAT-ARGUMENTS"])); $pkg.StreamErrorClass = NewBuiltInClass("", $pkg.ErrorClass, new sliceType$2([])); $pkg.EndOfStreamClass = NewBuiltInClass("", $pkg.StreamErrorClass, new sliceType$2([])); $pkg.StorageExhaustedClass = NewBuiltInClass("", $pkg.SeriousConditionClass, new sliceType$2([])); $pkg.StandardObjectClass = NewBuiltInClass("", new $pkg.ObjectClass.constructor.elem($pkg.ObjectClass), new sliceType$2([])); $pkg.StreamClass = NewBuiltInClass("", new $pkg.ObjectClass.constructor.elem($pkg.ObjectClass), new sliceType$2(["STREAM"])); $pkg.EscapeClass = NewBuiltInClass("", new $pkg.ObjectClass.constructor.elem($pkg.ObjectClass), new sliceType$2(["IRIS.TAG"])); $pkg.CatchTagClass = NewBuiltInClass("", $pkg.EscapeClass, new sliceType$2(["IRIS.OBJECT"])); $pkg.TagbodyTagClass = NewBuiltInClass("", $pkg.EscapeClass, new sliceType$2([])); $pkg.BlockTagClass = NewBuiltInClass("", $pkg.EscapeClass, new sliceType$2(["IRIS.OBJECT"])); $pkg.ContinueClass = NewBuiltInClass("", $pkg.EscapeClass, new sliceType$2(["IRIS.OBJECT"])); $pkg.Nil = NewNull(); $pkg.T = NewSymbol("T"); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["github.com/asciian/iris/runtime/ilos/class"] = (function() { var $pkg = {}, $init, instance; instance = $packages["github.com/asciian/iris/runtime/ilos/instance"]; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = instance.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $pkg.Object = $clone(instance.ObjectClass, instance.BuiltInClass); $pkg.BuiltInClass = instance.BuiltInClassClass; $pkg.StandardClass = instance.StandardClassClass; $pkg.BasicArray = instance.BasicArrayClass; $pkg.BasicArrayStar = instance.BasicArrayStarClass; $pkg.GeneralArrayStar = instance.GeneralArrayStarClass; $pkg.BasicVector = instance.BasicVectorClass; $pkg.GeneralVector = instance.GeneralVectorClass; $pkg.String = instance.StringClass; $pkg.Character = instance.CharacterClass; $pkg.Function = instance.FunctionClass; $pkg.GenericFunction = instance.GenericFunctionClass; $pkg.StandardGenericFunction = instance.StandardGenericFunctionClass; $pkg.List = instance.ListClass; $pkg.Cons = instance.ConsClass; $pkg.Null = $clone(instance.NullClass, instance.BuiltInClass); $pkg.Symbol = instance.SymbolClass; $pkg.Number = instance.NumberClass; $pkg.Integer = instance.IntegerClass; $pkg.Float = instance.FloatClass; $pkg.SeriousCondition = instance.SeriousConditionClass; $pkg.Error = instance.ErrorClass; $pkg.ArithmeticError = instance.ArithmeticErrorClass; $pkg.DivisionByZero = instance.DivisionByZeroClass; $pkg.FloatingPointOnderflow = instance.FloatingPointOnderflowClass; $pkg.FloatingPointUnderflow = instance.FloatingPointUnderflowClass; $pkg.ControlError = instance.ControlErrorClass; $pkg.ParseError = instance.ParseErrorClass; $pkg.ProgramError = instance.ProgramErrorClass; $pkg.DomainError = instance.DomainErrorClass; $pkg.UndefinedEntity = instance.UndefinedEntityClass; $pkg.UndefinedVariable = instance.UndefinedVariableClass; $pkg.UndefinedFunction = instance.UndefinedFunctionClass; $pkg.SimpleError = instance.SimpleErrorClass; $pkg.StreamError = instance.StreamErrorClass; $pkg.EndOfStream = instance.EndOfStreamClass; $pkg.StorageExhausted = instance.StorageExhaustedClass; $pkg.StandardObject = instance.StandardObjectClass; $pkg.Stream = instance.StreamClass; $pkg.Escape = instance.EscapeClass; $pkg.CatchTag = instance.CatchTagClass; $pkg.TagbodyTag = instance.TagbodyTagClass; $pkg.BlockTag = instance.BlockTagClass; $pkg.Continue = instance.ContinueClass; /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["github.com/asciian/iris/reader/parser"] = (function() { var $pkg = {}, $init, tokenizer, env, ilos, class$1, instance, math, regexp, strconv, strings, ptrType, sliceType, ptrType$1, sliceType$1, sliceType$2, eop, bod, list2array, list2vector, ParseAtom, parseMacro, parseCons, Parse; tokenizer = $packages["github.com/asciian/iris/reader/tokenizer"]; env = $packages["github.com/asciian/iris/runtime/env"]; ilos = $packages["github.com/asciian/iris/runtime/ilos"]; class$1 = $packages["github.com/asciian/iris/runtime/ilos/class"]; instance = $packages["github.com/asciian/iris/runtime/ilos/instance"]; math = $packages["math"]; regexp = $packages["regexp"]; strconv = $packages["strconv"]; strings = $packages["strings"]; ptrType = $ptrType(instance.GeneralArrayStar); sliceType = $sliceType(ptrType); ptrType$1 = $ptrType(instance.Cons); sliceType$1 = $sliceType($Int32); sliceType$2 = $sliceType(ilos.Instance); list2array = function(dim, list) { var _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tuple, array, arrays, car, cdr, dim, err, list, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tuple = $f._tuple; array = $f.array; arrays = $f.arrays; car = $f.car; cdr = $f.cdr; dim = $f.dim; err = $f.err; list = $f.list; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: if (dim === 0) { $s = -1; return [instance.NewGeneralArrayStar(sliceType.nil, list), $ifaceNil]; } _tmp = instance.Nil; _tmp$1 = list; _tmp$2 = new sliceType([]); car = _tmp; cdr = _tmp$1; arrays = _tmp$2; /* while (true) { */ case 1: _r = ilos.InstanceOf(class$1.Cons, cdr); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; } _tmp$3 = $assertType(cdr, ptrType$1).Car; _tmp$4 = $assertType(cdr, ptrType$1).Cdr; car = _tmp$3; cdr = _tmp$4; _r$1 = list2array(dim - 1 >> 0, car); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; array = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } arrays = $append(arrays, $assertType(array, ptrType)); /* } */ $s = 1; continue; case 2: $s = -1; return [instance.NewGeneralArrayStar(arrays, $ifaceNil), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: list2array }; } $f._r = _r; $f._r$1 = _r$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tuple = _tuple; $f.array = array; $f.arrays = arrays; $f.car = car; $f.cdr = cdr; $f.dim = dim; $f.err = err; $f.list = list; $f.$s = $s; $f.$r = $r; return $f; }; list2vector = function(list) { var _r, _r$1, list, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; list = $f.list; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = $assertType(list, instance.List).Slice(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = instance.NewGeneralVector(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return [_r$1, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: list2vector }; } $f._r = _r; $f._r$1 = _r$1; $f.list = list; $f.$s = $s; $f.$r = $r; return $f; }; ParseAtom = function(tok) { var _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, e, m, m$1, m$2, m$3, m$4, n, n$1, n$2, n$3, n$4, n$5, r, r$1, r$2, r$3, r$4, r$5, str, tok, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$20 = $f._r$20; _r$21 = $f._r$21; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$10 = $f._tuple$10; _tuple$11 = $f._tuple$11; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; _tuple$8 = $f._tuple$8; _tuple$9 = $f._tuple$9; e = $f.e; m = $f.m; m$1 = $f.m$1; m$2 = $f.m$2; m$3 = $f.m$3; m$4 = $f.m$4; n = $f.n; n$1 = $f.n$1; n$2 = $f.n$2; n$3 = $f.n$3; n$4 = $f.n$4; n$5 = $f.n$5; r = $f.r; r$1 = $f.r$1; r$2 = $f.r$2; r$3 = $f.r$3; r$4 = $f.r$4; r$5 = $f.r$5; str = $f.str; tok = $f.tok; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = regexp.MatchString("^[-+]?[[:digit:]]+$", tok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; m = _tuple[0]; if (m) { _tuple$1 = strconv.ParseInt(tok, 10, 64); n = _tuple$1[0]; $s = -1; return [instance.NewInteger((((n.$low + ((n.$high >> 31) * 4294967296)) >> 0))), $ifaceNil]; } _r$1 = regexp.MustCompile("^#[bB]([-+]?[01]+)$"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = _r$1.FindStringSubmatch(tok); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } r = _r$2; if (r.$length >= 2) { _tuple$2 = strconv.ParseInt((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]), 2, 64); n$1 = _tuple$2[0]; $s = -1; return [instance.NewInteger((((n$1.$low + ((n$1.$high >> 31) * 4294967296)) >> 0))), $ifaceNil]; } _r$3 = regexp.MustCompile("^#[oO]([-+]?[0-7]+)$"); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$4 = _r$3.FindStringSubmatch(tok); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } r$1 = _r$4; if (r$1.$length >= 2) { _tuple$3 = strconv.ParseInt((1 >= r$1.$length ? ($throwRuntimeError("index out of range"), undefined) : r$1.$array[r$1.$offset + 1]), 8, 64); n$2 = _tuple$3[0]; $s = -1; return [instance.NewInteger((((n$2.$low + ((n$2.$high >> 31) * 4294967296)) >> 0))), $ifaceNil]; } _r$5 = regexp.MustCompile("^#[xX]([-+]?[[:xdigit:]]+)$"); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _r$6 = _r$5.FindStringSubmatch(tok); /* */ $s = 7; case 7: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } r$2 = _r$6; if (r$2.$length >= 2) { _tuple$4 = strconv.ParseInt((1 >= r$2.$length ? ($throwRuntimeError("index out of range"), undefined) : r$2.$array[r$2.$offset + 1]), 16, 64); n$3 = _tuple$4[0]; $s = -1; return [instance.NewInteger((((n$3.$low + ((n$3.$high >> 31) * 4294967296)) >> 0))), $ifaceNil]; } _r$7 = regexp.MatchString("^[-+]?[[:digit:]]+\\.[[:digit:]]+$", tok); /* */ $s = 8; case 8: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple$5 = _r$7; m$1 = _tuple$5[0]; if (m$1) { _tuple$6 = strconv.ParseFloat(tok, 64); n$4 = _tuple$6[0]; $s = -1; return [instance.NewFloat(n$4), $ifaceNil]; } _r$8 = regexp.MustCompile("^([-+]?[[:digit:]]+(?:\\.[[:digit:]]+)?)[eE]([-+]?[[:digit:]]+)$"); /* */ $s = 9; case 9: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _r$9 = _r$8.FindStringSubmatch(tok); /* */ $s = 10; case 10: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } r$3 = _r$9; if (r$3.$length >= 3) { _tuple$7 = strconv.ParseFloat((1 >= r$3.$length ? ($throwRuntimeError("index out of range"), undefined) : r$3.$array[r$3.$offset + 1]), 64); n$5 = _tuple$7[0]; _tuple$8 = strconv.ParseInt((2 >= r$3.$length ? ($throwRuntimeError("index out of range"), undefined) : r$3.$array[r$3.$offset + 2]), 10, 64); e = _tuple$8[0]; $s = -1; return [instance.NewFloat(n$5 * math.Pow10((((e.$low + ((e.$high >> 31) * 4294967296)) >> 0)))), $ifaceNil]; } _r$10 = strings.ToLower(tok); /* */ $s = 11; case 11: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _arg = _r$10; _r$11 = regexp.MatchString("^#\\\\newline$", _arg); /* */ $s = 12; case 12: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _tuple$9 = _r$11; m$2 = _tuple$9[0]; if (m$2) { $s = -1; return [instance.NewCharacter(10), $ifaceNil]; } _r$12 = strings.ToLower(tok); /* */ $s = 13; case 13: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } _arg$1 = _r$12; _r$13 = regexp.MatchString("^#\\\\space$", _arg$1); /* */ $s = 14; case 14: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _tuple$10 = _r$13; m$3 = _tuple$10[0]; if (m$3) { $s = -1; return [instance.NewCharacter(32), $ifaceNil]; } _r$14 = regexp.MustCompile("^#\\\\([[:graph:]])$"); /* */ $s = 15; case 15: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } _r$15 = _r$14.FindStringSubmatch(tok); /* */ $s = 16; case 16: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } r$4 = _r$15; if (r$4.$length >= 2) { $s = -1; return [instance.NewCharacter((((1 >= r$4.$length ? ($throwRuntimeError("index out of range"), undefined) : r$4.$array[r$4.$offset + 1]).charCodeAt(0) >> 0))), $ifaceNil]; } _r$16 = regexp.MustCompile("^\"(.*)\"$"); /* */ $s = 17; case 17: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } _r$17 = _r$16.FindStringSubmatch(tok); /* */ $s = 18; case 18: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } r$5 = _r$17; if (r$5.$length >= 2) { $s = -1; return [instance.NewString((new sliceType$1($stringToRunes((1 >= r$5.$length ? ($throwRuntimeError("index out of range"), undefined) : r$5.$array[r$5.$offset + 1]))))), $ifaceNil]; } if ("nil" === tok) { $s = -1; return [instance.Nil, $ifaceNil]; } str = "^("; str = str + ("[:&][a-zA-Z]+|"); str = str + ("\\|.*\\||"); str = str + ("\\+|-|1\\+|1-|"); str = str + ("[a-zA-Z<>/*=?_!$%[\\]^{}~][-a-zA-Z0-9+<>/*=?_!$%[\\]^{}~]*|"); str = str + (")$"); _r$18 = regexp.MatchString(str, tok); /* */ $s = 19; case 19: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } _tuple$11 = _r$18; m$4 = _tuple$11[0]; /* */ if (m$4) { $s = 20; continue; } /* */ $s = 21; continue; /* if (m$4) { */ case 20: _r$19 = strings.ToUpper(tok); /* */ $s = 22; case 22: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } _r$20 = instance.NewSymbol(_r$19); /* */ $s = 23; case 23: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } $s = -1; return [_r$20, $ifaceNil]; /* } */ case 21: _r$21 = instance.Create($clone(env.NewEnvironment($ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil), env.Environment), class$1.ParseError, new sliceType$2([instance.NewSymbol("STRING"), instance.NewString((new sliceType$1($stringToRunes(tok)))), instance.NewSymbol("EXPECTED-CLASS"), (x = class$1.Object, new x.constructor.elem(x))])); /* */ $s = 24; case 24: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$21]; /* */ } return; } if ($f === undefined) { $f = { $blk: ParseAtom }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$20 = _r$20; $f._r$21 = _r$21; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$10 = _tuple$10; $f._tuple$11 = _tuple$11; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f._tuple$8 = _tuple$8; $f._tuple$9 = _tuple$9; $f.e = e; $f.m = m; $f.m$1 = m$1; $f.m$2 = m$2; $f.m$3 = m$3; $f.m$4 = m$4; $f.n = n; $f.n$1 = n$1; $f.n$2 = n$2; $f.n$3 = n$3; $f.n$4 = n$4; $f.n$5 = n$5; $f.r = r; $f.r$1 = r$1; $f.r$2 = r$2; $f.r$3 = r$3; $f.r$4 = r$4; $f.r$5 = r$5; $f.str = str; $f.tok = tok; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.ParseAtom = ParseAtom; parseMacro = function(tok, t) { var _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, cdr, err, err$1, i, m, m$1, n, t, tok, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; cdr = $f.cdr; err = $f.err; err$1 = $f.err$1; i = $f.i; m = $f.m; m$1 = $f.m$1; n = $f.n; t = $f.t; tok = $f.tok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Parse(t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; cdr = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } n = tok; _r$1 = regexp.MatchString("#[[:digit:]]+[aA]", tok); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; m = _tuple$1[0]; /* */ if (m) { $s = 3; continue; } /* */ $s = 4; continue; /* if (m) { */ case 3: _r$2 = strings.ToLower(tok); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$3 = strings.IndexRune(_r$2, 97); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } i = _r$3; v = new $Int64(0, 1); /* */ if (!((i === 1))) { $s = 7; continue; } /* */ $s = 8; continue; /* if (!((i === 1))) { */ case 7: err$1 = $ifaceNil; _tuple$2 = strconv.ParseInt($substring(tok, 1, i), 10, 64); v = _tuple$2[0]; err$1 = _tuple$2[1]; /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 9; continue; } /* */ $s = 10; continue; /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 9: _r$4 = instance.Create($clone(env.NewEnvironment($ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil), env.Environment), class$1.ParseError, new sliceType$2([instance.NewSymbol("STRING"), instance.NewString((new sliceType$1($stringToRunes(tok)))), instance.NewSymbol("EXPECTED-CLASS"), class$1.Integer])); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$4]; /* } */ case 10: /* } */ case 8: /* */ if ((((v.$low + ((v.$high >> 31) * 4294967296)) >> 0)) === 1) { $s = 12; continue; } /* */ $s = 13; continue; /* if ((((v.$low + ((v.$high >> 31) * 4294967296)) >> 0)) === 1) { */ case 12: _r$5 = list2vector(cdr); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } */ case 13: _r$6 = list2array((((v.$low + ((v.$high >> 31) * 4294967296)) >> 0)), cdr); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* } */ case 4: /* */ if (tok === "#") { $s = 16; continue; } /* */ $s = 17; continue; /* if (tok === "#") { */ case 16: _r$7 = list2vector(cdr); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $s = -1; return _r$7; /* } */ case 17: _1 = tok; if (_1 === ("#'")) { n = "FUNCTION"; } else if (_1 === (",@")) { n = "UNQUOTE-SPLICING"; } else if (_1 === (",")) { n = "UNQUOTE"; } else if (_1 === ("'")) { n = "QUOTE"; } else if (_1 === ("`")) { n = "QUASIQUOTE"; } m$1 = instance.NewSymbol(n); $s = -1; return [instance.NewCons(m$1, instance.NewCons(cdr, instance.Nil)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: parseMacro }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.cdr = cdr; $f.err = err; $f.err$1 = err$1; $f.i = i; $f.m = m; $f.m$1 = m$1; $f.n = n; $f.t = t; $f.tok = tok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; parseCons = function(t) { var _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, _tuple$3, car, cdr, cdr$1, err, err$1, err$2, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; car = $f.car; cdr = $f.cdr; cdr$1 = $f.cdr$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Parse(t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; car = _tuple[0]; err = _tuple[1]; if ($interfaceIsEqual(err, eop)) { $s = -1; return [instance.Nil, $ifaceNil]; } /* */ if ($interfaceIsEqual(err, bod)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(err, bod)) { */ case 2: _r$1 = Parse(t); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; cdr = _tuple$1[0]; err$1 = _tuple$1[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _r$2 = Parse(t); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$2 = _r$2; err$2 = _tuple$2[1]; if (!($interfaceIsEqual(err$2, eop))) { $s = -1; return [$ifaceNil, err$2]; } $s = -1; return [cdr, $ifaceNil]; /* } */ case 3: if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$3 = parseCons(t); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$3 = _r$3; cdr$1 = _tuple$3[0]; err = _tuple$3[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [instance.NewCons(car, cdr$1), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: parseCons }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.car = car; $f.cdr = cdr; $f.cdr$1 = cdr$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Parse = function(t) { var _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, atom, cons, err, err$1, err$2, err1, m, mat, t, tok, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; atom = $f.atom; cons = $f.cons; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err1 = $f.err1; m = $f.m; mat = $f.mat; t = $f.t; tok = $f.tok; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = t.Next(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; tok = _tuple[0]; err = _tuple[1]; /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: _r$1 = instance.Create($clone(env.NewEnvironment($ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil), env.Environment), class$1.EndOfStream, new sliceType$2([])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$1]; /* } */ case 3: /* while (true) { */ case 5: /* if (!((tok.length > 2 && $substring(tok, 0, 2) === "#|") || $substring(tok, 0, 1) === ";")) { break; } */ if(!((tok.length > 2 && $substring(tok, 0, 2) === "#|") || $substring(tok, 0, 1) === ";")) { $s = 6; continue; } _r$2 = t.Next(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; tok = _tuple$1[0]; err = _tuple$1[1]; /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 8; continue; } /* */ $s = 9; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 8: _r$3 = instance.Create($clone(env.NewEnvironment($ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil), env.Environment), class$1.EndOfStream, new sliceType$2([])); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$3]; /* } */ case 9: /* } */ $s = 5; continue; case 6: /* */ if (tok === "(") { $s = 11; continue; } /* */ $s = 12; continue; /* if (tok === "(") { */ case 11: _r$4 = parseCons(t); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$2 = _r$4; cons = _tuple$2[0]; err$1 = _tuple$2[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } $s = -1; return [cons, err$1]; /* } */ case 12: if (tok === ")") { $s = -1; return [$ifaceNil, eop]; } if (tok === ".") { $s = -1; return [$ifaceNil, bod]; } _r$5 = regexp.MatchString("^(?:#'|,@?|'|`|#[[:digit:]]*[aA]|#)$", tok); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$3 = _r$5; mat = _tuple$3[0]; /* */ if (mat) { $s = 15; continue; } /* */ $s = 16; continue; /* if (mat) { */ case 15: _r$6 = parseMacro(tok, t); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _tuple$4 = _r$6; m = _tuple$4[0]; err$2 = _tuple$4[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } $s = -1; return [m, $ifaceNil]; /* } */ case 16: _r$7 = ParseAtom(tok); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple$5 = _r$7; atom = _tuple$5[0]; err1 = _tuple$5[1]; if (!($interfaceIsEqual(err1, $ifaceNil))) { $s = -1; return [$ifaceNil, err1]; } $s = -1; return [atom, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Parse }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f.atom = atom; $f.cons = cons; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err1 = err1; $f.m = m; $f.mat = mat; $f.t = t; $f.tok = tok; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Parse = Parse; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = tokenizer.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = env.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = ilos.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = class$1.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = instance.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = math.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = regexp.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strconv.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strings.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } eop = instance.NewSymbol("End Of Parentheses"); bod = instance.NewSymbol("Begin Of Dot"); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["flag"] = (function() { var $pkg = {}, $init, errors, fmt, io, os, reflect, sort, strconv, time, boolValue, boolFlag, intValue, int64Value, uintValue, uint64Value, stringValue, float64Value, durationValue, Value, ErrorHandling, FlagSet, Flag, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, sliceType$1, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, sliceType$2, funcType, ptrType$18, funcType$1, mapType, x, newBoolValue, newIntValue, newInt64Value, newUintValue, newUint64Value, newStringValue, newFloat64Value, newDurationValue, sortFlags, isZeroValue, UnquoteUsage, PrintDefaults, Bool, Int, Uint, String, Duration, init, commandLineUsage, NewFlagSet; errors = $packages["errors"]; fmt = $packages["fmt"]; io = $packages["io"]; os = $packages["os"]; reflect = $packages["reflect"]; sort = $packages["sort"]; strconv = $packages["strconv"]; time = $packages["time"]; boolValue = $pkg.boolValue = $newType(1, $kindBool, "flag.boolValue", true, "flag", false, null); boolFlag = $pkg.boolFlag = $newType(8, $kindInterface, "flag.boolFlag", true, "flag", false, null); intValue = $pkg.intValue = $newType(4, $kindInt, "flag.intValue", true, "flag", false, null); int64Value = $pkg.int64Value = $newType(8, $kindInt64, "flag.int64Value", true, "flag", false, null); uintValue = $pkg.uintValue = $newType(4, $kindUint, "flag.uintValue", true, "flag", false, null); uint64Value = $pkg.uint64Value = $newType(8, $kindUint64, "flag.uint64Value", true, "flag", false, null); stringValue = $pkg.stringValue = $newType(8, $kindString, "flag.stringValue", true, "flag", false, null); float64Value = $pkg.float64Value = $newType(8, $kindFloat64, "flag.float64Value", true, "flag", false, null); durationValue = $pkg.durationValue = $newType(8, $kindInt64, "flag.durationValue", true, "flag", false, null); Value = $pkg.Value = $newType(8, $kindInterface, "flag.Value", true, "flag", true, null); ErrorHandling = $pkg.ErrorHandling = $newType(4, $kindInt, "flag.ErrorHandling", true, "flag", true, null); FlagSet = $pkg.FlagSet = $newType(0, $kindStruct, "flag.FlagSet", true, "flag", true, function(Usage_, name_, parsed_, actual_, formal_, args_, errorHandling_, output_) { this.$val = this; if (arguments.length === 0) { this.Usage = $throwNilPointerError; this.name = ""; this.parsed = false; this.actual = false; this.formal = false; this.args = sliceType$2.nil; this.errorHandling = 0; this.output = $ifaceNil; return; } this.Usage = Usage_; this.name = name_; this.parsed = parsed_; this.actual = actual_; this.formal = formal_; this.args = args_; this.errorHandling = errorHandling_; this.output = output_; }); Flag = $pkg.Flag = $newType(0, $kindStruct, "flag.Flag", true, "flag", true, function(Name_, Usage_, Value_, DefValue_) { this.$val = this; if (arguments.length === 0) { this.Name = ""; this.Usage = ""; this.Value = $ifaceNil; this.DefValue = ""; return; } this.Name = Name_; this.Usage = Usage_; this.Value = Value_; this.DefValue = DefValue_; }); sliceType = $sliceType($emptyInterface); ptrType = $ptrType(boolValue); ptrType$1 = $ptrType(intValue); ptrType$2 = $ptrType(int64Value); ptrType$3 = $ptrType(uintValue); ptrType$4 = $ptrType(uint64Value); ptrType$5 = $ptrType(stringValue); ptrType$6 = $ptrType(float64Value); ptrType$7 = $ptrType(durationValue); ptrType$8 = $ptrType(time.Duration); ptrType$9 = $ptrType(Flag); sliceType$1 = $sliceType(ptrType$9); ptrType$10 = $ptrType(reflect.rtype); ptrType$11 = $ptrType($Bool); ptrType$12 = $ptrType($Int); ptrType$13 = $ptrType($Int64); ptrType$14 = $ptrType($Uint); ptrType$15 = $ptrType($Uint64); ptrType$16 = $ptrType($String); ptrType$17 = $ptrType($Float64); sliceType$2 = $sliceType($String); funcType = $funcType([ptrType$9], [], false); ptrType$18 = $ptrType(FlagSet); funcType$1 = $funcType([], [], false); mapType = $mapType($String, ptrType$9); newBoolValue = function(val, p) { var _ptr, p, val; p.$set(val); return ((_ptr = p, new ptrType(function() { return _ptr.$get(); }, function($v) { _ptr.$set($v); }, _ptr.$target))); }; $ptrType(boolValue).prototype.Set = function(s) { var _tuple, b, err, s, v; b = this; _tuple = strconv.ParseBool(s); v = _tuple[0]; err = _tuple[1]; b.$set((v)); return err; }; $ptrType(boolValue).prototype.Get = function() { var b; b = this; return new $Bool((b.$get())); }; $ptrType(boolValue).prototype.String = function() { var b; b = this; return strconv.FormatBool((b.$get())); }; $ptrType(boolValue).prototype.IsBoolFlag = function() { var b; b = this; return true; }; newIntValue = function(val, p) { var _ptr, p, val; p.$set(val); return ((_ptr = p, new ptrType$1(function() { return (_ptr.$get() >> 0); }, function($v) { _ptr.$set(($v >> 0)); }, _ptr.$target))); }; $ptrType(intValue).prototype.Set = function(s) { var _tuple, err, i, s, v; i = this; _tuple = strconv.ParseInt(s, 0, 32); v = _tuple[0]; err = _tuple[1]; i.$set((((v.$low + ((v.$high >> 31) * 4294967296)) >> 0))); return err; }; $ptrType(intValue).prototype.Get = function() { var i; i = this; return new $Int(((i.$get() >> 0))); }; $ptrType(intValue).prototype.String = function() { var i; i = this; return strconv.Itoa(((i.$get() >> 0))); }; newInt64Value = function(val, p) { var _ptr, p, val, x$1; p.$set(val); return ((_ptr = p, new ptrType$2(function() { return (x$1 = _ptr.$get(), new int64Value(x$1.$high, x$1.$low)); }, function($v) { _ptr.$set(new $Int64($v.$high, $v.$low)); }, _ptr.$target))); }; $ptrType(int64Value).prototype.Set = function(s) { var _tuple, err, i, s, v; i = this; _tuple = strconv.ParseInt(s, 0, 64); v = _tuple[0]; err = _tuple[1]; i.$set((new int64Value(v.$high, v.$low))); return err; }; $ptrType(int64Value).prototype.Get = function() { var i, x$1; i = this; return ((x$1 = i.$get(), new $Int64(x$1.$high, x$1.$low))); }; $ptrType(int64Value).prototype.String = function() { var i, x$1; i = this; return strconv.FormatInt(((x$1 = i.$get(), new $Int64(x$1.$high, x$1.$low))), 10); }; newUintValue = function(val, p) { var _ptr, p, val; p.$set(val); return ((_ptr = p, new ptrType$3(function() { return (_ptr.$get() >>> 0); }, function($v) { _ptr.$set(($v >>> 0)); }, _ptr.$target))); }; $ptrType(uintValue).prototype.Set = function(s) { var _tuple, err, i, s, v; i = this; _tuple = strconv.ParseUint(s, 0, 32); v = _tuple[0]; err = _tuple[1]; i.$set(((v.$low >>> 0))); return err; }; $ptrType(uintValue).prototype.Get = function() { var i; i = this; return new $Uint(((i.$get() >>> 0))); }; $ptrType(uintValue).prototype.String = function() { var i; i = this; return strconv.FormatUint((new $Uint64(0, i.$get())), 10); }; newUint64Value = function(val, p) { var _ptr, p, val, x$1; p.$set(val); return ((_ptr = p, new ptrType$4(function() { return (x$1 = _ptr.$get(), new uint64Value(x$1.$high, x$1.$low)); }, function($v) { _ptr.$set(new $Uint64($v.$high, $v.$low)); }, _ptr.$target))); }; $ptrType(uint64Value).prototype.Set = function(s) { var _tuple, err, i, s, v; i = this; _tuple = strconv.ParseUint(s, 0, 64); v = _tuple[0]; err = _tuple[1]; i.$set((new uint64Value(v.$high, v.$low))); return err; }; $ptrType(uint64Value).prototype.Get = function() { var i, x$1; i = this; return ((x$1 = i.$get(), new $Uint64(x$1.$high, x$1.$low))); }; $ptrType(uint64Value).prototype.String = function() { var i, x$1; i = this; return strconv.FormatUint(((x$1 = i.$get(), new $Uint64(x$1.$high, x$1.$low))), 10); }; newStringValue = function(val, p) { var _ptr, p, val; p.$set(val); return ((_ptr = p, new ptrType$5(function() { return _ptr.$get(); }, function($v) { _ptr.$set($v); }, _ptr.$target))); }; $ptrType(stringValue).prototype.Set = function(val) { var s, val; s = this; s.$set((val)); return $ifaceNil; }; $ptrType(stringValue).prototype.Get = function() { var s; s = this; return new $String((s.$get())); }; $ptrType(stringValue).prototype.String = function() { var s; s = this; return (s.$get()); }; newFloat64Value = function(val, p) { var _ptr, p, val; p.$set(val); return ((_ptr = p, new ptrType$6(function() { return _ptr.$get(); }, function($v) { _ptr.$set($v); }, _ptr.$target))); }; $ptrType(float64Value).prototype.Set = function(s) { var _tuple, err, f, s, v; f = this; _tuple = strconv.ParseFloat(s, 64); v = _tuple[0]; err = _tuple[1]; f.$set((v)); return err; }; $ptrType(float64Value).prototype.Get = function() { var f; f = this; return new $Float64((f.$get())); }; $ptrType(float64Value).prototype.String = function() { var f; f = this; return strconv.FormatFloat((f.$get()), 103, -1, 64); }; newDurationValue = function(val, p) { var _ptr, p, val, x$1; p.$set(val); return ((_ptr = p, new ptrType$7(function() { return (x$1 = _ptr.$get(), new durationValue(x$1.$high, x$1.$low)); }, function($v) { _ptr.$set(new time.Duration($v.$high, $v.$low)); }, _ptr.$target))); }; $ptrType(durationValue).prototype.Set = function(s) { var _tuple, d, err, s, v; d = this; _tuple = time.ParseDuration(s); v = _tuple[0]; err = _tuple[1]; d.$set((new durationValue(v.$high, v.$low))); return err; }; $ptrType(durationValue).prototype.Get = function() { var d, x$1; d = this; return ((x$1 = d.$get(), new time.Duration(x$1.$high, x$1.$low))); }; $ptrType(durationValue).prototype.String = function() { var _ptr, d, x$1; d = this; return ((_ptr = d, new ptrType$8(function() { return (x$1 = _ptr.$get(), new time.Duration(x$1.$high, x$1.$low)); }, function($v) { _ptr.$set(new durationValue($v.$high, $v.$low)); }, _ptr.$target))).String(); }; sortFlags = function(flags) { var _entry, _entry$1, _i, _i$1, _keys, _ref, _ref$1, f, flags, i, i$1, list, name, result, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _i = $f._i; _i$1 = $f._i$1; _keys = $f._keys; _ref = $f._ref; _ref$1 = $f._ref$1; f = $f.f; flags = $f.flags; i = $f.i; i$1 = $f.i$1; list = $f.list; name = $f.name; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: list = $makeSlice(sort.StringSlice, $keys(flags).length); i = 0; _ref = flags; _i = 0; _keys = $keys(_ref); while (true) { if (!(_i < _keys.length)) { break; } _entry = _ref[_keys[_i]]; if (_entry === undefined) { _i++; continue; } f = _entry.v; ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = f.Name); i = i + (1) >> 0; _i++; } $r = list.Sort(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } result = $makeSlice(sliceType$1, list.$length); _ref$1 = list; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } i$1 = _i$1; name = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); ((i$1 < 0 || i$1 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + i$1] = (_entry$1 = flags[$String.keyFor(name)], _entry$1 !== undefined ? _entry$1.v : ptrType$9.nil)); _i$1++; } $s = -1; return result; /* */ } return; } if ($f === undefined) { $f = { $blk: sortFlags }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._i = _i; $f._i$1 = _i$1; $f._keys = _keys; $f._ref = _ref; $f._ref$1 = _ref$1; $f.f = f; $f.flags = flags; $f.i = i; $f.i$1 = i$1; $f.list = list; $f.name = name; $f.result = result; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.ptr.prototype.out = function() { var f; f = this; if ($interfaceIsEqual(f.output, $ifaceNil)) { return os.Stderr; } return f.output; }; FlagSet.prototype.out = function() { return this.$val.out(); }; FlagSet.ptr.prototype.SetOutput = function(output) { var f, output; f = this; f.output = output; }; FlagSet.prototype.SetOutput = function(output) { return this.$val.SetOutput(output); }; FlagSet.ptr.prototype.VisitAll = function(fn) { var _i, _r, _ref, f, flag, fn, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; f = $f.f; flag = $f.flag; fn = $f.fn; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; _r = sortFlags(f.formal); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _ref = _r; _i = 0; /* while (true) { */ case 2: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } flag = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); $r = fn(flag); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; /* } */ $s = 2; continue; case 3: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.VisitAll }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.f = f; $f.flag = flag; $f.fn = fn; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.VisitAll = function(fn) { return this.$val.VisitAll(fn); }; FlagSet.ptr.prototype.Visit = function(fn) { var _i, _r, _ref, f, flag, fn, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; f = $f.f; flag = $f.flag; fn = $f.fn; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; _r = sortFlags(f.actual); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _ref = _r; _i = 0; /* while (true) { */ case 2: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } flag = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); $r = fn(flag); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; /* } */ $s = 2; continue; case 3: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Visit }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.f = f; $f.flag = flag; $f.fn = fn; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.Visit = function(fn) { return this.$val.Visit(fn); }; FlagSet.ptr.prototype.Lookup = function(name) { var _entry, f, name; f = this; return (_entry = f.formal[$String.keyFor(name)], _entry !== undefined ? _entry.v : ptrType$9.nil); }; FlagSet.prototype.Lookup = function(name) { return this.$val.Lookup(name); }; FlagSet.ptr.prototype.Set = function(name, value) { var _entry, _key, _r, _r$1, _tuple, err, f, flag, name, ok, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; f = $f.f; flag = $f.flag; name = $f.name; ok = $f.ok; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; _tuple = (_entry = f.formal[$String.keyFor(name)], _entry !== undefined ? [_entry.v, true] : [ptrType$9.nil, false]); flag = _tuple[0]; ok = _tuple[1]; /* */ if (!ok) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!ok) { */ case 1: _r = fmt.Errorf("no such flag -%v", new sliceType([new $String(name)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* } */ case 2: _r$1 = flag.Value.Set(value); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } err = _r$1; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } if (f.actual === false) { f.actual = {}; } _key = name; (f.actual || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: flag }; $s = -1; return $ifaceNil; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Set }; } $f._entry = _entry; $f._key = _key; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.flag = flag; $f.name = name; $f.ok = ok; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.Set = function(name, value) { return this.$val.Set(name, value); }; isZeroValue = function(flag, value) { var _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, flag, typ, value, z, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; flag = $f.flag; typ = $f.typ; value = $f.value; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: typ = reflect.TypeOf(flag.Value); z = new reflect.Value.ptr(ptrType$10.nil, 0, 0); _r = typ.Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r === 22) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r === 22) { */ case 1: _r$1 = typ.Elem(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = reflect.New(_r$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } z = _r$2; $s = 3; continue; /* } else { */ case 2: _r$3 = reflect.Zero(typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } z = _r$3; /* } */ case 3: _r$4 = $clone(z, reflect.Value).Interface(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _r$5 = $assertType(_r$4, Value).String(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } /* */ if (value === _r$5) { $s = 8; continue; } /* */ $s = 9; continue; /* if (value === _r$5) { */ case 8: $s = -1; return true; /* } */ case 9: _1 = value; if (_1 === ("false")) { $s = -1; return true; } else if (_1 === ("")) { $s = -1; return true; } else if (_1 === ("0")) { $s = -1; return true; } $s = -1; return false; /* */ } return; } if ($f === undefined) { $f = { $blk: isZeroValue }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.flag = flag; $f.typ = typ; $f.value = value; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; }; UnquoteUsage = function(flag) { var _ref, _tmp, _tmp$1, flag, i, j, name, usage; name = ""; usage = ""; usage = flag.Usage; i = 0; while (true) { if (!(i < usage.length)) { break; } if (usage.charCodeAt(i) === 96) { j = i + 1 >> 0; while (true) { if (!(j < usage.length)) { break; } if (usage.charCodeAt(j) === 96) { name = $substring(usage, (i + 1 >> 0), j); usage = $substring(usage, 0, i) + name + $substring(usage, (j + 1 >> 0)); _tmp = name; _tmp$1 = usage; name = _tmp; usage = _tmp$1; return [name, usage]; } j = j + (1) >> 0; } break; } i = i + (1) >> 0; } name = "value"; _ref = flag.Value; if ($assertType(_ref, boolFlag, true)[1]) { name = ""; } else if ($assertType(_ref, ptrType$7, true)[1]) { name = "duration"; } else if ($assertType(_ref, ptrType$6, true)[1]) { name = "float"; } else if ($assertType(_ref, ptrType$1, true)[1] || $assertType(_ref, ptrType$2, true)[1]) { name = "int"; } else if ($assertType(_ref, ptrType$5, true)[1]) { name = "string"; } else if ($assertType(_ref, ptrType$3, true)[1] || $assertType(_ref, ptrType$4, true)[1]) { name = "uint"; } return [name, usage]; }; $pkg.UnquoteUsage = UnquoteUsage; FlagSet.ptr.prototype.PrintDefaults = function() { var f, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = [f]; f[0] = this; $r = f[0].VisitAll((function(f) { return function $b(flag) { var _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, flag, name, ok, s, usage, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; flag = $f.flag; name = $f.name; ok = $f.ok; s = $f.s; usage = $f.usage; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = fmt.Sprintf(" -%s", new sliceType([new $String(flag.Name)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } s = _r; _tuple = UnquoteUsage(flag); name = _tuple[0]; usage = _tuple[1]; if (name.length > 0) { s = s + (" " + name); } if (s.length <= 4) { s = s + ("\t"); } else { s = s + ("\n \t"); } s = s + (usage); _r$1 = isZeroValue(flag, flag.DefValue); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (!_r$1) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!_r$1) { */ case 2: _tuple$1 = $assertType(flag.Value, ptrType$5, true); ok = _tuple$1[1]; /* */ if (ok) { $s = 5; continue; } /* */ $s = 6; continue; /* if (ok) { */ case 5: _r$2 = fmt.Sprintf(" (default %q)", new sliceType([new $String(flag.DefValue)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } s = s + (_r$2); $s = 7; continue; /* } else { */ case 6: _r$3 = fmt.Sprintf(" (default %v)", new sliceType([new $String(flag.DefValue)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } s = s + (_r$3); /* } */ case 7: /* } */ case 3: _r$4 = fmt.Fprint(f[0].out(), new sliceType([new $String(s), new $String("\n")])); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _r$4; $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.flag = flag; $f.name = name; $f.ok = ok; $f.s = s; $f.usage = usage; $f.$s = $s; $f.$r = $r; return $f; }; })(f)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.PrintDefaults }; } $f.f = f; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.PrintDefaults = function() { return this.$val.PrintDefaults(); }; PrintDefaults = function() { var $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = $pkg.CommandLine.PrintDefaults(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: PrintDefaults }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.PrintDefaults = PrintDefaults; FlagSet.ptr.prototype.defaultUsage = function() { var _r, _r$1, f, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; /* */ if (f.name === "") { $s = 1; continue; } /* */ $s = 2; continue; /* if (f.name === "") { */ case 1: _r = fmt.Fprintf(f.out(), "Usage:\n", new sliceType([])); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; $s = 3; continue; /* } else { */ case 2: _r$1 = fmt.Fprintf(f.out(), "Usage of %s:\n", new sliceType([new $String(f.name)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; /* } */ case 3: $r = f.PrintDefaults(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.defaultUsage }; } $f._r = _r; $f._r$1 = _r$1; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.defaultUsage = function() { return this.$val.defaultUsage(); }; FlagSet.ptr.prototype.NFlag = function() { var f; f = this; return $keys(f.actual).length; }; FlagSet.prototype.NFlag = function() { return this.$val.NFlag(); }; FlagSet.ptr.prototype.Arg = function(i) { var f, i, x$1; f = this; if (i < 0 || i >= f.args.$length) { return ""; } return (x$1 = f.args, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); }; FlagSet.prototype.Arg = function(i) { return this.$val.Arg(i); }; FlagSet.ptr.prototype.NArg = function() { var f; f = this; return f.args.$length; }; FlagSet.prototype.NArg = function() { return this.$val.NArg(); }; FlagSet.ptr.prototype.Args = function() { var f; f = this; return f.args; }; FlagSet.prototype.Args = function() { return this.$val.Args(); }; FlagSet.ptr.prototype.BoolVar = function(p, name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; $r = f.Var(newBoolValue(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.BoolVar }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.BoolVar = function(p, name, value, usage) { return this.$val.BoolVar(p, name, value, usage); }; FlagSet.ptr.prototype.Bool = function(name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; p = $newDataPointer(false, ptrType$11); $r = f.BoolVar(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return p; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Bool }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.Bool = function(name, value, usage) { return this.$val.Bool(name, value, usage); }; Bool = function(name, value, usage) { var _r, name, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; name = $f.name; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = $pkg.CommandLine.Bool(name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Bool }; } $f._r = _r; $f.name = name; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Bool = Bool; FlagSet.ptr.prototype.IntVar = function(p, name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; $r = f.Var(newIntValue(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.IntVar }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.IntVar = function(p, name, value, usage) { return this.$val.IntVar(p, name, value, usage); }; FlagSet.ptr.prototype.Int = function(name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; p = $newDataPointer(0, ptrType$12); $r = f.IntVar(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return p; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Int }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.Int = function(name, value, usage) { return this.$val.Int(name, value, usage); }; Int = function(name, value, usage) { var _r, name, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; name = $f.name; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = $pkg.CommandLine.Int(name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Int }; } $f._r = _r; $f.name = name; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Int = Int; FlagSet.ptr.prototype.Int64Var = function(p, name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; $r = f.Var(newInt64Value(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Int64Var }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.Int64Var = function(p, name, value, usage) { return this.$val.Int64Var(p, name, value, usage); }; FlagSet.ptr.prototype.Int64 = function(name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; p = $newDataPointer(new $Int64(0, 0), ptrType$13); $r = f.Int64Var(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return p; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Int64 }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.Int64 = function(name, value, usage) { return this.$val.Int64(name, value, usage); }; FlagSet.ptr.prototype.UintVar = function(p, name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; $r = f.Var(newUintValue(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.UintVar }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.UintVar = function(p, name, value, usage) { return this.$val.UintVar(p, name, value, usage); }; FlagSet.ptr.prototype.Uint = function(name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; p = $newDataPointer(0, ptrType$14); $r = f.UintVar(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return p; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Uint }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.Uint = function(name, value, usage) { return this.$val.Uint(name, value, usage); }; Uint = function(name, value, usage) { var _r, name, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; name = $f.name; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = $pkg.CommandLine.Uint(name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Uint }; } $f._r = _r; $f.name = name; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Uint = Uint; FlagSet.ptr.prototype.Uint64Var = function(p, name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; $r = f.Var(newUint64Value(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Uint64Var }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.Uint64Var = function(p, name, value, usage) { return this.$val.Uint64Var(p, name, value, usage); }; FlagSet.ptr.prototype.Uint64 = function(name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; p = $newDataPointer(new $Uint64(0, 0), ptrType$15); $r = f.Uint64Var(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return p; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Uint64 }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.Uint64 = function(name, value, usage) { return this.$val.Uint64(name, value, usage); }; FlagSet.ptr.prototype.StringVar = function(p, name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; $r = f.Var(newStringValue(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.StringVar }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.StringVar = function(p, name, value, usage) { return this.$val.StringVar(p, name, value, usage); }; FlagSet.ptr.prototype.String = function(name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; p = $newDataPointer("", ptrType$16); $r = f.StringVar(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return p; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.String }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.String = function(name, value, usage) { return this.$val.String(name, value, usage); }; String = function(name, value, usage) { var _r, name, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; name = $f.name; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = $pkg.CommandLine.String(name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: String }; } $f._r = _r; $f.name = name; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.String = String; FlagSet.ptr.prototype.Float64Var = function(p, name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; $r = f.Var(newFloat64Value(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Float64Var }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.Float64Var = function(p, name, value, usage) { return this.$val.Float64Var(p, name, value, usage); }; FlagSet.ptr.prototype.Float64 = function(name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; p = $newDataPointer(0, ptrType$17); $r = f.Float64Var(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return p; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Float64 }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.Float64 = function(name, value, usage) { return this.$val.Float64(name, value, usage); }; FlagSet.ptr.prototype.DurationVar = function(p, name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; $r = f.Var(newDurationValue(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.DurationVar }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.DurationVar = function(p, name, value, usage) { return this.$val.DurationVar(p, name, value, usage); }; FlagSet.ptr.prototype.Duration = function(name, value, usage) { var f, name, p, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; p = $newDataPointer(new time.Duration(0, 0), ptrType$8); $r = f.DurationVar(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return p; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Duration }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.Duration = function(name, value, usage) { return this.$val.Duration(name, value, usage); }; Duration = function(name, value, usage) { var _r, name, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; name = $f.name; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = $pkg.CommandLine.Duration(name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Duration }; } $f._r = _r; $f.name = name; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Duration = Duration; FlagSet.ptr.prototype.Var = function(value, name, usage) { var _entry, _key, _r, _r$1, _r$2, _r$3, _tuple, alreadythere, f, flag, msg, name, usage, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; alreadythere = $f.alreadythere; f = $f.f; flag = $f.flag; msg = $f.msg; name = $f.name; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; _r = value.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } flag = new Flag.ptr(name, usage, value, _r); _tuple = (_entry = f.formal[$String.keyFor(name)], _entry !== undefined ? [_entry.v, true] : [ptrType$9.nil, false]); alreadythere = _tuple[1]; /* */ if (alreadythere) { $s = 2; continue; } /* */ $s = 3; continue; /* if (alreadythere) { */ case 2: msg = ""; /* */ if (f.name === "") { $s = 4; continue; } /* */ $s = 5; continue; /* if (f.name === "") { */ case 4: _r$1 = fmt.Sprintf("flag redefined: %s", new sliceType([new $String(name)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } msg = _r$1; $s = 6; continue; /* } else { */ case 5: _r$2 = fmt.Sprintf("%s flag redefined: %s", new sliceType([new $String(f.name), new $String(name)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } msg = _r$2; /* } */ case 6: _r$3 = fmt.Fprintln(f.out(), new sliceType([new $String(msg)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$3; $panic(new $String(msg)); /* } */ case 3: if (f.formal === false) { f.formal = {}; } _key = name; (f.formal || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: flag }; $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Var }; } $f._entry = _entry; $f._key = _key; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f.alreadythere = alreadythere; $f.f = f; $f.flag = flag; $f.msg = msg; $f.name = name; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.Var = function(value, name, usage) { return this.$val.Var(value, name, usage); }; FlagSet.ptr.prototype.failf = function(format, a) { var _r, _r$1, a, err, f, format, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; a = $f.a; err = $f.err; f = $f.f; format = $f.format; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; _r = fmt.Errorf(format, a); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; _r$1 = fmt.Fprintln(f.out(), new sliceType([err])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; $r = f.usage(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return err; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.failf }; } $f._r = _r; $f._r$1 = _r$1; $f.a = a; $f.err = err; $f.f = f; $f.format = format; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.failf = function(format, a) { return this.$val.failf(format, a); }; FlagSet.ptr.prototype.usage = function() { var f, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; /* */ if (f.Usage === $throwNilPointerError) { $s = 1; continue; } /* */ $s = 2; continue; /* if (f.Usage === $throwNilPointerError) { */ case 1: $r = f.defaultUsage(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 3; continue; /* } else { */ case 2: $r = f.Usage(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.usage }; } $f.f = f; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.usage = function() { return this.$val.usage(); }; FlagSet.ptr.prototype.parseOne = function() { var _entry, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _v, alreadythere, err, err$1, err$2, f, flag, fv, hasValue, i, m, name, numMinuses, ok, s, value, x$1, x$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _v = $f._v; alreadythere = $f.alreadythere; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; flag = $f.flag; fv = $f.fv; hasValue = $f.hasValue; i = $f.i; m = $f.m; name = $f.name; numMinuses = $f.numMinuses; ok = $f.ok; s = $f.s; value = $f.value; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; if (f.args.$length === 0) { $s = -1; return [false, $ifaceNil]; } s = (x$1 = f.args, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); if ((s.length === 0) || !((s.charCodeAt(0) === 45)) || (s.length === 1)) { $s = -1; return [false, $ifaceNil]; } numMinuses = 1; if (s.charCodeAt(1) === 45) { numMinuses = numMinuses + (1) >> 0; if (s.length === 2) { f.args = $subslice(f.args, 1); $s = -1; return [false, $ifaceNil]; } } name = $substring(s, numMinuses); /* */ if ((name.length === 0) || (name.charCodeAt(0) === 45) || (name.charCodeAt(0) === 61)) { $s = 1; continue; } /* */ $s = 2; continue; /* if ((name.length === 0) || (name.charCodeAt(0) === 45) || (name.charCodeAt(0) === 61)) { */ case 1: _r = f.failf("bad flag syntax: %s", new sliceType([new $String(s)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return [false, _r]; /* } */ case 2: f.args = $subslice(f.args, 1); hasValue = false; value = ""; i = 1; while (true) { if (!(i < name.length)) { break; } if (name.charCodeAt(i) === 61) { value = $substring(name, (i + 1 >> 0)); hasValue = true; name = $substring(name, 0, i); break; } i = i + (1) >> 0; } m = f.formal; _tuple = (_entry = m[$String.keyFor(name)], _entry !== undefined ? [_entry.v, true] : [ptrType$9.nil, false]); flag = _tuple[0]; alreadythere = _tuple[1]; /* */ if (!alreadythere) { $s = 4; continue; } /* */ $s = 5; continue; /* if (!alreadythere) { */ case 4: /* */ if (name === "help" || name === "h") { $s = 6; continue; } /* */ $s = 7; continue; /* if (name === "help" || name === "h") { */ case 6: $r = f.usage(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return [false, $pkg.ErrHelp]; /* } */ case 7: _r$1 = f.failf("flag provided but not defined: -%s", new sliceType([new $String(name)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return [false, _r$1]; /* } */ case 5: _tuple$1 = $assertType(flag.Value, boolFlag, true); fv = _tuple$1[0]; ok = _tuple$1[1]; if (!(ok)) { _v = false; $s = 13; continue s; } _r$2 = fv.IsBoolFlag(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _v = _r$2; case 13: /* */ if (_v) { $s = 10; continue; } /* */ $s = 11; continue; /* if (_v) { */ case 10: /* */ if (hasValue) { $s = 15; continue; } /* */ $s = 16; continue; /* if (hasValue) { */ case 15: _r$3 = fv.Set(value); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } err = _r$3; /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 19; continue; } /* */ $s = 20; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 19: _r$4 = f.failf("invalid boolean value %q for -%s: %v", new sliceType([new $String(value), new $String(name), err])); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return [false, _r$4]; /* } */ case 20: $s = 17; continue; /* } else { */ case 16: _r$5 = fv.Set("true"); /* */ $s = 22; case 22: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } err$1 = _r$5; /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 23; continue; } /* */ $s = 24; continue; /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 23: _r$6 = f.failf("invalid boolean flag %s: %v", new sliceType([new $String(name), err$1])); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return [false, _r$6]; /* } */ case 24: /* } */ case 17: $s = 12; continue; /* } else { */ case 11: if (!hasValue && f.args.$length > 0) { hasValue = true; _tmp = (x$2 = f.args, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); _tmp$1 = $subslice(f.args, 1); value = _tmp; f.args = _tmp$1; } /* */ if (!hasValue) { $s = 26; continue; } /* */ $s = 27; continue; /* if (!hasValue) { */ case 26: _r$7 = f.failf("flag needs an argument: -%s", new sliceType([new $String(name)])); /* */ $s = 28; case 28: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $s = -1; return [false, _r$7]; /* } */ case 27: _r$8 = flag.Value.Set(value); /* */ $s = 29; case 29: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } err$2 = _r$8; /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 30; continue; } /* */ $s = 31; continue; /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 30: _r$9 = f.failf("invalid value %q for flag -%s: %v", new sliceType([new $String(value), new $String(name), err$2])); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } $s = -1; return [false, _r$9]; /* } */ case 31: /* } */ case 12: if (f.actual === false) { f.actual = {}; } _key = name; (f.actual || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: flag }; $s = -1; return [true, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.parseOne }; } $f._entry = _entry; $f._key = _key; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._v = _v; $f.alreadythere = alreadythere; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.flag = flag; $f.fv = fv; $f.hasValue = hasValue; $f.i = i; $f.m = m; $f.name = name; $f.numMinuses = numMinuses; $f.ok = ok; $f.s = s; $f.value = value; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.parseOne = function() { return this.$val.parseOne(); }; FlagSet.ptr.prototype.Parse = function(arguments$1) { var _1, _r, _tuple, arguments$1, err, f, seen, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _tuple = $f._tuple; arguments$1 = $f.arguments$1; err = $f.err; f = $f.f; seen = $f.seen; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: f = this; f.parsed = true; f.args = arguments$1; /* while (true) { */ case 1: _r = f.parseOne(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; seen = _tuple[0]; err = _tuple[1]; if (seen) { /* continue; */ $s = 1; continue; } if ($interfaceIsEqual(err, $ifaceNil)) { /* break; */ $s = 2; continue; } _1 = f.errorHandling; if (_1 === (0)) { $s = -1; return err; } else if (_1 === (1)) { os.Exit(2); } else if (_1 === (2)) { $panic(err); } /* } */ $s = 1; continue; case 2: $s = -1; return $ifaceNil; /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Parse }; } $f._1 = _1; $f._r = _r; $f._tuple = _tuple; $f.arguments$1 = arguments$1; $f.err = err; $f.f = f; $f.seen = seen; $f.$s = $s; $f.$r = $r; return $f; }; FlagSet.prototype.Parse = function(arguments$1) { return this.$val.Parse(arguments$1); }; FlagSet.ptr.prototype.Parsed = function() { var f; f = this; return f.parsed; }; FlagSet.prototype.Parsed = function() { return this.$val.Parsed(); }; init = function() { $pkg.CommandLine.Usage = commandLineUsage; }; commandLineUsage = function() { var $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = $pkg.Usage(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: commandLineUsage }; } $f.$s = $s; $f.$r = $r; return $f; }; NewFlagSet = function(name, errorHandling) { var errorHandling, f, name; f = new FlagSet.ptr($throwNilPointerError, name, false, false, false, sliceType$2.nil, errorHandling, $ifaceNil); f.Usage = $methodVal(f, "defaultUsage"); return f; }; $pkg.NewFlagSet = NewFlagSet; FlagSet.ptr.prototype.Init = function(name, errorHandling) { var errorHandling, f, name; f = this; f.name = name; f.errorHandling = errorHandling; }; FlagSet.prototype.Init = function(name, errorHandling) { return this.$val.Init(name, errorHandling); }; ptrType.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsBoolFlag", name: "IsBoolFlag", pkg: "", typ: $funcType([], [$Bool], false)}]; ptrType$1.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$2.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$3.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$4.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$5.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$6.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$7.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$18.methods = [{prop: "out", name: "out", pkg: "flag", typ: $funcType([], [io.Writer], false)}, {prop: "SetOutput", name: "SetOutput", pkg: "", typ: $funcType([io.Writer], [], false)}, {prop: "VisitAll", name: "VisitAll", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "Visit", name: "Visit", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [ptrType$9], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $String], [$error], false)}, {prop: "PrintDefaults", name: "PrintDefaults", pkg: "", typ: $funcType([], [], false)}, {prop: "defaultUsage", name: "defaultUsage", pkg: "flag", typ: $funcType([], [], false)}, {prop: "NFlag", name: "NFlag", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Arg", name: "Arg", pkg: "", typ: $funcType([$Int], [$String], false)}, {prop: "NArg", name: "NArg", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Args", name: "Args", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "BoolVar", name: "BoolVar", pkg: "", typ: $funcType([ptrType$11, $String, $Bool, $String], [], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([$String, $Bool, $String], [ptrType$11], false)}, {prop: "IntVar", name: "IntVar", pkg: "", typ: $funcType([ptrType$12, $String, $Int, $String], [], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([$String, $Int, $String], [ptrType$12], false)}, {prop: "Int64Var", name: "Int64Var", pkg: "", typ: $funcType([ptrType$13, $String, $Int64, $String], [], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([$String, $Int64, $String], [ptrType$13], false)}, {prop: "UintVar", name: "UintVar", pkg: "", typ: $funcType([ptrType$14, $String, $Uint, $String], [], false)}, {prop: "Uint", name: "Uint", pkg: "", typ: $funcType([$String, $Uint, $String], [ptrType$14], false)}, {prop: "Uint64Var", name: "Uint64Var", pkg: "", typ: $funcType([ptrType$15, $String, $Uint64, $String], [], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([$String, $Uint64, $String], [ptrType$15], false)}, {prop: "StringVar", name: "StringVar", pkg: "", typ: $funcType([ptrType$16, $String, $String, $String], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([$String, $String, $String], [ptrType$16], false)}, {prop: "Float64Var", name: "Float64Var", pkg: "", typ: $funcType([ptrType$17, $String, $Float64, $String], [], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([$String, $Float64, $String], [ptrType$17], false)}, {prop: "DurationVar", name: "DurationVar", pkg: "", typ: $funcType([ptrType$8, $String, time.Duration, $String], [], false)}, {prop: "Duration", name: "Duration", pkg: "", typ: $funcType([$String, time.Duration, $String], [ptrType$8], false)}, {prop: "Var", name: "Var", pkg: "", typ: $funcType([Value, $String, $String], [], false)}, {prop: "failf", name: "failf", pkg: "flag", typ: $funcType([$String, sliceType], [$error], true)}, {prop: "usage", name: "usage", pkg: "flag", typ: $funcType([], [], false)}, {prop: "parseOne", name: "parseOne", pkg: "flag", typ: $funcType([], [$Bool, $error], false)}, {prop: "Parse", name: "Parse", pkg: "", typ: $funcType([sliceType$2], [$error], false)}, {prop: "Parsed", name: "Parsed", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([$String, ErrorHandling], [], false)}]; boolFlag.init([{prop: "IsBoolFlag", name: "IsBoolFlag", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]); Value.init([{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]); FlagSet.init("flag", [{prop: "Usage", name: "Usage", anonymous: false, exported: true, typ: funcType$1, tag: ""}, {prop: "name", name: "name", anonymous: false, exported: false, typ: $String, tag: ""}, {prop: "parsed", name: "parsed", anonymous: false, exported: false, typ: $Bool, tag: ""}, {prop: "actual", name: "actual", anonymous: false, exported: false, typ: mapType, tag: ""}, {prop: "formal", name: "formal", anonymous: false, exported: false, typ: mapType, tag: ""}, {prop: "args", name: "args", anonymous: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "errorHandling", name: "errorHandling", anonymous: false, exported: false, typ: ErrorHandling, tag: ""}, {prop: "output", name: "output", anonymous: false, exported: false, typ: io.Writer, tag: ""}]); Flag.init("", [{prop: "Name", name: "Name", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "Usage", name: "Usage", anonymous: false, exported: true, typ: $String, tag: ""}, {prop: "Value", name: "Value", anonymous: false, exported: true, typ: Value, tag: ""}, {prop: "DefValue", name: "DefValue", anonymous: false, exported: true, typ: $String, tag: ""}]); $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = os.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = reflect.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = sort.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strconv.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = time.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $pkg.ErrHelp = errors.New("flag: help requested"); $pkg.CommandLine = NewFlagSet((x = os.Args, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), 1); $pkg.Usage = (function $b() { var _r, x$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = fmt.Fprintf(os.Stderr, "Usage of %s:\n", new sliceType([new $String((x$1 = os.Args, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])))])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; $r = PrintDefaults(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r = _r; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; }); init(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["runtime/debug"] = (function() { var $pkg = {}, $init, os, runtime, sort, time; os = $packages["os"]; runtime = $packages["runtime"]; sort = $packages["sort"]; time = $packages["time"]; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = os.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = runtime.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = sort.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = time.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["runtime/trace"] = (function() { var $pkg = {}, $init, io, runtime; io = $packages["io"]; runtime = $packages["runtime"]; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = io.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = runtime.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["testing"] = (function() { var $pkg = {}, $init, bytes, errors, flag, fmt, nosync, race, io, os, runtime, debug, trace, sort, strconv, strings, sync, atomic, time, matchBenchmarks, benchTime, benchmarkMemory, short$1, outputDir, chatty, count, coverProfile, matchList, match, memProfile, memProfileRate, cpuProfile, blockProfile, blockProfileRate, mutexProfile, mutexProfileFraction, traceFile, timeout, cpuListStr, parallel, errMain, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20; bytes = $packages["bytes"]; errors = $packages["errors"]; flag = $packages["flag"]; fmt = $packages["fmt"]; nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; race = $packages["internal/race"]; io = $packages["io"]; os = $packages["os"]; runtime = $packages["runtime"]; debug = $packages["runtime/debug"]; trace = $packages["runtime/trace"]; sort = $packages["sort"]; strconv = $packages["strconv"]; strings = $packages["strings"]; sync = $packages["sync"]; atomic = $packages["sync/atomic"]; time = $packages["time"]; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = flag.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = fmt.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = nosync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = race.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = io.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = os.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = runtime.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = debug.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = trace.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = sort.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strconv.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strings.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = sync.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = atomic.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = time.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r = flag.String("test.bench", "", "run only benchmarks matching `regexp`"); /* */ $s = 18; case 18: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } matchBenchmarks = _r; _r$1 = flag.Duration("test.benchtime", new time.Duration(0, 1000000000), "run each benchmark for duration `d`"); /* */ $s = 19; case 19: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } benchTime = _r$1; _r$2 = flag.Bool("test.benchmem", false, "print memory allocations for benchmarks"); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } benchmarkMemory = _r$2; _r$3 = flag.Bool("test.short", false, "run smaller test suite to save time"); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } short$1 = _r$3; _r$4 = flag.String("test.outputdir", "", "write profiles to `dir`"); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } outputDir = _r$4; _r$5 = flag.Bool("test.v", false, "verbose: print additional output"); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } chatty = _r$5; _r$6 = flag.Uint("test.count", 1, "run tests and benchmarks `n` times"); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } count = _r$6; _r$7 = flag.String("test.coverprofile", "", "write a coverage profile to `file`"); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } coverProfile = _r$7; _r$8 = flag.String("test.list", "", "list tests, examples, and benchmarch maching `regexp` then exit"); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } matchList = _r$8; _r$9 = flag.String("test.run", "", "run only tests and examples matching `regexp`"); /* */ $s = 27; case 27: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } match = _r$9; _r$10 = flag.String("test.memprofile", "", "write a memory profile to `file`"); /* */ $s = 28; case 28: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } memProfile = _r$10; _r$11 = flag.Int("test.memprofilerate", 0, "set memory profiling `rate` (see runtime.MemProfileRate)"); /* */ $s = 29; case 29: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } memProfileRate = _r$11; _r$12 = flag.String("test.cpuprofile", "", "write a cpu profile to `file`"); /* */ $s = 30; case 30: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } cpuProfile = _r$12; _r$13 = flag.String("test.blockprofile", "", "write a goroutine blocking profile to `file`"); /* */ $s = 31; case 31: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } blockProfile = _r$13; _r$14 = flag.Int("test.blockprofilerate", 1, "set blocking profile `rate` (see runtime.SetBlockProfileRate)"); /* */ $s = 32; case 32: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } blockProfileRate = _r$14; _r$15 = flag.String("test.mutexprofile", "", "write a mutex contention profile to the named file after execution"); /* */ $s = 33; case 33: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } mutexProfile = _r$15; _r$16 = flag.Int("test.mutexprofilefraction", 1, "if >= 0, calls runtime.SetMutexProfileFraction()"); /* */ $s = 34; case 34: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } mutexProfileFraction = _r$16; _r$17 = flag.String("test.trace", "", "write an execution trace to `file`"); /* */ $s = 35; case 35: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } traceFile = _r$17; _r$18 = flag.Duration("test.timeout", new time.Duration(0, 0), "panic test binary after duration `d` (0 means unlimited)"); /* */ $s = 36; case 36: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } timeout = _r$18; _r$19 = flag.String("test.cpu", "", "comma-separated `list` of cpu counts to run each test with"); /* */ $s = 37; case 37: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } cpuListStr = _r$19; _r$20 = flag.Int("test.parallel", runtime.GOMAXPROCS(0), "run at most `n` tests in parallel"); /* */ $s = 38; case 38: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } parallel = _r$20; errMain = errors.New("testing: unexpected use of func Main"); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["github.com/asciian/iris/runtime"] = (function() { var $pkg = {}, $init, bufio, bytes, fmt, parser, tokenizer, env, ilos, class$1, instance, math, os, reflect, regexp, runtime, strconv, strings, testing, funcType, sliceType, ptrType, sliceType$1, sliceType$2, ptrType$1, sliceType$3, ptrType$2, funcType$1, sliceType$4, sliceType$5, funcType$2, funcType$3, funcType$4, funcType$5, funcType$6, funcType$7, funcType$8, funcType$9, funcType$10, ptrType$3, sliceType$6, arrayType, ptrType$5, unique, BasicArrayP, BasicArrayStarP, GeneralArrayStarP, CreateArray, createGeneralVector, createGeneralArrayStar, Aref, Garef, SetAref, SetGaref, ArrayDimensions, Characterp, CharEqual, CharNotEqual, CharGreaterThan, CharGreaterThanOrEqual, CharLessThan, CharLessThanOrEqual, ClassOf, Instancep, Subclassp, Class, checkSuperClass, Defclass, Create, InitializeObject, Defmethod, Defgeneric, SignalCondition, Cerror, Error, ReportCondition, ConditionContinuable, ContinueCondition, WithHandler, If, Cond, Case, CaseUsing, Consp, Cons, Car, Cdr, SetCar, SetCdr, Quote, Convert, Defconstant, Defglobal, Defdynamic, Defun, Dynamic, SetDynamic, DynamicLet, isComparable, Eq, Eql, Equal, evalArguments, evalLambda, evalSpecial, evalMacro, evalFunction, evalCons, evalVariable, Eval, Floatp, Float, Floor, Ceiling, Truncate, Round, FormatObject, FormatChar, FormatFloat, FormatInteger, FormatTab, FormatFreshLine, Format, Functionp, Function, Lambda, Labels, Flet, Apply, Funcall, convInt, Integerp, Div, Mod, Gcd, Lcm, Isqrt, While, For, Listp, CreateList, List, Reverse, Nreverse, Append, Member, Mapcar, Mapc, Mapcan, Maplist, Mapl, Mapcon, Assoc, Null, Not, And, Or, Defmacro, Quasiquote, expand, checkLambdaList, newNamedFunction, Block, ReturnFrom, Catch, Throw, Tagbody, Go, UnwindProtect, Numberp, ParseNumber, NumberEqual, NumberGreaterThan, NumberGreaterThanOrEqual, NumberLessThan, NumberLessThanOrEqual, Add, Multiply, Substruct, Quotient, Max, Min, Abs, Exp, Log, Expt, Sqrt, Sin, Cos, Tan, Atan, Atan2, Sinh, Cosh, Tanh, Atanh, TopLevelHander, defclass, defspecial, defun, defgeneric, defglobal, init, Length, Elt, SetElt, Subseq, MapInto, Progn, Streamp, OpenStreamP, InputStreamP, OutputStreamP, StandardInput, StandardOutput, ErrorOutput, WithStandardInput, WithStandardOutput, WithErrorOutput, OpenInputFile, OpenOutputFile, OpenIoFile, WithOpenInputFile, WithOpenOutputFile, Close, CreateStringInputStream, CreateStringOutputStream, GetOutputStreamString, Read, ReadChar, ReadLine, StreamReadyP, Stringp, CreateString, StringEqual, StringNotEqual, StringGreaterThan, StringGreaterThanOrEqual, StringLessThan, StringLessThanOrEqual, CharIndex, StringIndex, StringAppend, Symbolp, Property, SetProperty, RemoveProperty, Gensym, convFloat64, ensure, uniqueInt, func2symbol, Setq, Setf, Let, LetStar, BasicVectorP, GeneralVectorP, CreateVector, Vector; bufio = $packages["bufio"]; bytes = $packages["bytes"]; fmt = $packages["fmt"]; parser = $packages["github.com/asciian/iris/reader/parser"]; tokenizer = $packages["github.com/asciian/iris/reader/tokenizer"]; env = $packages["github.com/asciian/iris/runtime/env"]; ilos = $packages["github.com/asciian/iris/runtime/ilos"]; class$1 = $packages["github.com/asciian/iris/runtime/ilos/class"]; instance = $packages["github.com/asciian/iris/runtime/ilos/instance"]; math = $packages["math"]; os = $packages["os"]; reflect = $packages["reflect"]; regexp = $packages["regexp"]; runtime = $packages["runtime"]; strconv = $packages["strconv"]; strings = $packages["strings"]; testing = $packages["testing"]; funcType = $funcType([env.Environment, ilos.Instance], [ilos.Instance, ilos.Instance], false); sliceType = $sliceType(ilos.Instance); ptrType = $ptrType(instance.GeneralArrayStar); sliceType$1 = $sliceType(ptrType); sliceType$2 = $sliceType(ilos.Class); ptrType$1 = $ptrType(instance.Cons); sliceType$3 = $sliceType($emptyInterface); ptrType$2 = $ptrType(instance.GenericFunction); funcType$1 = $funcType([env.Environment, ilos.Instance, ilos.Instance], [ilos.Instance, ilos.Instance], false); sliceType$4 = $sliceType($Int32); sliceType$5 = $sliceType($Int); funcType$2 = $funcType([env.Environment, sliceType], [ilos.Instance, ilos.Instance], true); funcType$3 = $funcType([env.Environment, ilos.Instance, sliceType], [ilos.Instance, ilos.Instance], true); funcType$4 = $funcType([env.Environment, ilos.Instance, ilos.Instance, sliceType], [ilos.Instance, ilos.Instance], true); funcType$5 = $funcType([env.Environment, ilos.Instance], [ilos.Class, ilos.Instance], false); funcType$6 = $funcType([env.Environment], [ilos.Instance, ilos.Instance], false); funcType$7 = $funcType([env.Environment, ilos.Instance, ilos.Instance, ilos.Instance, sliceType], [ilos.Instance, ilos.Instance], true); funcType$8 = $funcType([env.Environment, ilos.Instance, ilos.Instance, ilos.Instance], [ilos.Instance, ilos.Instance], false); funcType$9 = $funcType([env.Environment, ilos.Instance, ilos.Class], [ilos.Instance, ilos.Instance], false); funcType$10 = $funcType([env.Environment, ilos.Class, ilos.Class], [ilos.Instance, ilos.Instance], false); ptrType$3 = $ptrType(tokenizer.Reader); sliceType$6 = $sliceType($Uint8); arrayType = $arrayType($Uint8, 64); ptrType$5 = $ptrType(bytes.Buffer); BasicArrayP = function(e, obj) { var _r, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.BasicArray, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: BasicArrayP }; } $f._r = _r; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.BasicArrayP = BasicArrayP; BasicArrayStarP = function(e, obj) { var _r, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.BasicArrayStar, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: BasicArrayStarP }; } $f._r = _r; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.BasicArrayStarP = BasicArrayStarP; GeneralArrayStarP = function(e, obj) { var _r, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.GeneralArrayStar, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: GeneralArrayStarP }; } $f._r = _r; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.GeneralArrayStarP = GeneralArrayStarP; CreateArray = function(e, dimensions, initialElement) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, dimensions, e, elt, elt$1, err, err$1, err$2, i, initialElement, length, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; dimensions = $f.dimensions; e = $f.e; elt = $f.elt; elt$1 = $f.elt$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; i = $f.i; initialElement = $f.initialElement; length = $f.length; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Length($clone(e, env.Environment), dimensions); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; length = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } i = 0; /* while (true) { */ case 2: /* if (!(i < (($assertType(length, instance.Integer) >> 0)))) { break; } */ if(!(i < (($assertType(length, instance.Integer) >> 0)))) { $s = 3; continue; } _r$1 = Elt($clone(e, env.Environment), dimensions, instance.NewInteger(i)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; elt = _tuple$1[0]; err$1 = _tuple$1[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _r$2 = ensure($clone(e, env.Environment), class$1.Integer, new sliceType([elt])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } err$2 = _r$2; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } i = i + (1) >> 0; /* } */ $s = 2; continue; case 3: elt$1 = $pkg.Nil; /* */ if (initialElement.$length > 1) { $s = 6; continue; } /* */ $s = 7; continue; /* if (initialElement.$length > 1) { */ case 6: _arg = $clone(e, env.Environment); _r$3 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$1 = _r$3; _arg$2 = $pkg.Nil; _r$4 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 7: if (initialElement.$length === 1) { elt$1 = (0 >= initialElement.$length ? ($throwRuntimeError("index out of range"), undefined) : initialElement.$array[initialElement.$offset + 0]); } /* */ if ((($assertType(length, instance.Integer) >> 0)) === 1) { $s = 10; continue; } /* */ $s = 11; continue; /* if ((($assertType(length, instance.Integer) >> 0)) === 1) { */ case 10: _r$5 = createGeneralVector($clone(e, env.Environment), dimensions, elt$1); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } */ case 11: _r$6 = createGeneralArrayStar($clone(e, env.Environment), dimensions, elt$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* */ } return; } if ($f === undefined) { $f = { $blk: CreateArray }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.dimensions = dimensions; $f.e = e; $f.elt = elt; $f.elt$1 = elt$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.i = i; $f.initialElement = initialElement; $f.length = length; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.CreateArray = CreateArray; createGeneralVector = function(e, dimensions, initialElement) { var _r, _tuple, array, dimension, dimensions, e, err, i, initialElement, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; array = $f.array; dimension = $f.dimension; dimensions = $f.dimensions; e = $f.e; err = $f.err; i = $f.i; initialElement = $f.initialElement; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Car($clone(e, env.Environment), dimensions); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; dimension = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } array = $makeSlice(sliceType, (($assertType(dimension, instance.Integer) >> 0))); i = 0; while (true) { if (!(i < (($assertType(dimension, instance.Integer) >> 0)))) { break; } ((i < 0 || i >= array.$length) ? ($throwRuntimeError("index out of range"), undefined) : array.$array[array.$offset + i] = initialElement); i = i + (1) >> 0; } $s = -1; return [instance.NewGeneralVector(array), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: createGeneralVector }; } $f._r = _r; $f._tuple = _tuple; $f.array = array; $f.dimension = dimension; $f.dimensions = dimensions; $f.e = e; $f.err = err; $f.i = i; $f.initialElement = initialElement; $f.$s = $s; $f.$r = $r; return $f; }; createGeneralArrayStar = function(e, dimensions, initialElement) { var _i, _r, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, arr, array, cdr, dimension, dimensions, e, err, err$1, i, initialElement, length, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; arr = $f.arr; array = $f.array; cdr = $f.cdr; dimension = $f.dimension; dimensions = $f.dimensions; e = $f.e; err = $f.err; err$1 = $f.err$1; i = $f.i; initialElement = $f.initialElement; length = $f.length; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Length($clone(e, env.Environment), dimensions); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; length = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if ((($assertType(length, instance.Integer) >> 0)) === 0) { $s = -1; return [instance.NewGeneralArrayStar(sliceType$1.nil, initialElement), $ifaceNil]; } _r$1 = Car($clone(e, env.Environment), dimensions); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; dimension = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } array = $makeSlice(sliceType$1, (($assertType(dimension, instance.Integer) >> 0))); _ref = array; _i = 0; /* while (true) { */ case 3: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } i = _i; _r$2 = Cdr($clone(e, env.Environment), dimensions); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$2 = _r$2; cdr = _tuple$2[0]; err$1 = _tuple$2[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _r$3 = createGeneralArrayStar($clone(e, env.Environment), cdr, initialElement); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$3 = _r$3; arr = _tuple$3[0]; err$1 = _tuple$3[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } ((i < 0 || i >= array.$length) ? ($throwRuntimeError("index out of range"), undefined) : array.$array[array.$offset + i] = $assertType(arr, ptrType)); _i++; /* } */ $s = 3; continue; case 4: $s = -1; return [instance.NewGeneralArrayStar(array, $ifaceNil), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: createGeneralArrayStar }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.arr = arr; $f.array = array; $f.cdr = cdr; $f.dimension = dimension; $f.dimensions = dimensions; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.i = i; $f.initialElement = initialElement; $f.length = length; $f.$s = $s; $f.$r = $r; return $f; }; Aref = function(e, basicArray, dimensions) { var _arg, _arg$1, _arg$10, _arg$11, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, basicArray, dimensions, e, err, err$1, index, index$1, x, x$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$10 = $f._arg$10; _arg$11 = $f._arg$11; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _arg$8 = $f._arg$8; _arg$9 = $f._arg$9; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; basicArray = $f.basicArray; dimensions = $f.dimensions; e = $f.e; err = $f.err; err$1 = $f.err$1; index = $f.index; index$1 = $f.index$1; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.BasicArray, new sliceType([basicArray])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = ensure($clone(e, env.Environment), class$1.Integer, dimensions); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } err$1 = _r$1; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _r$2 = ilos.InstanceOf(class$1.String, basicArray); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (_r$2) { $s = 4; continue; } _r$3 = ilos.InstanceOf(class$1.GeneralVector, basicArray); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_r$2) { */ case 4: /* */ if (!((dimensions.$length === 1))) { $s = 10; continue; } /* */ $s = 11; continue; /* if (!((dimensions.$length === 1))) { */ case 10: _arg = $clone(e, env.Environment); _r$4 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$1 = _r$4; _arg$2 = $pkg.Nil; _r$5 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } */ case 11: index = (($assertType((0 >= dimensions.$length ? ($throwRuntimeError("index out of range"), undefined) : dimensions.$array[dimensions.$offset + 0]), instance.Integer) >> 0)); /* */ if ($assertType(basicArray, instance.String).$length <= index) { $s = 14; continue; } /* */ $s = 15; continue; /* if ($assertType(basicArray, instance.String).$length <= index) { */ case 14: _arg$3 = $clone(e, env.Environment); _r$6 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _arg$4 = _r$6; _arg$5 = $pkg.Nil; _r$7 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $s = -1; return _r$7; /* } */ case 15: $s = -1; return [instance.NewCharacter((x = $assertType(basicArray, instance.String), ((index < 0 || index >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + index]))), $ifaceNil]; /* } else if (_r$3) { */ case 5: /* */ if (!((dimensions.$length === 1))) { $s = 18; continue; } /* */ $s = 19; continue; /* if (!((dimensions.$length === 1))) { */ case 18: _arg$6 = $clone(e, env.Environment); _r$8 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _arg$7 = _r$8; _arg$8 = $pkg.Nil; _r$9 = SignalCondition(_arg$6, _arg$7, _arg$8); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } $s = -1; return _r$9; /* } */ case 19: index$1 = (($assertType((0 >= dimensions.$length ? ($throwRuntimeError("index out of range"), undefined) : dimensions.$array[dimensions.$offset + 0]), instance.Integer) >> 0)); /* */ if ($assertType(basicArray, instance.GeneralVector).$length <= index$1) { $s = 22; continue; } /* */ $s = 23; continue; /* if ($assertType(basicArray, instance.GeneralVector).$length <= index$1) { */ case 22: _arg$9 = $clone(e, env.Environment); _r$10 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _arg$10 = _r$10; _arg$11 = $pkg.Nil; _r$11 = SignalCondition(_arg$9, _arg$10, _arg$11); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } $s = -1; return _r$11; /* } */ case 23: $s = -1; return [(x$1 = $assertType(basicArray, instance.GeneralVector), ((index$1 < 0 || index$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + index$1])), $ifaceNil]; /* } else { */ case 6: _r$12 = Garef($clone(e, env.Environment), basicArray, dimensions); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } $s = -1; return _r$12; /* } */ case 7: case 3: $s = -1; return [$ifaceNil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Aref }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$10 = _arg$10; $f._arg$11 = _arg$11; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._arg$8 = _arg$8; $f._arg$9 = _arg$9; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f.basicArray = basicArray; $f.dimensions = dimensions; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.index = index; $f.index$1 = index$1; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Aref = Aref; Garef = function(e, generalArray, dimensions) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, array, dimensions, e, err, err$1, generalArray, index, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; array = $f.array; dimensions = $f.dimensions; e = $f.e; err = $f.err; err$1 = $f.err$1; generalArray = $f.generalArray; index = $f.index; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.GeneralArrayStar, new sliceType([generalArray])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = ensure($clone(e, env.Environment), class$1.Integer, dimensions); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } err$1 = _r$1; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } /* */ if (dimensions.$length === 0) { $s = 3; continue; } /* */ $s = 4; continue; /* if (dimensions.$length === 0) { */ case 3: /* */ if ($interfaceIsEqual($assertType(generalArray, ptrType).Scalar, $ifaceNil)) { $s = 5; continue; } /* */ $s = 6; continue; /* if ($interfaceIsEqual($assertType(generalArray, ptrType).Scalar, $ifaceNil)) { */ case 5: _arg = $clone(e, env.Environment); _r$2 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; _arg$2 = $pkg.Nil; _r$3 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* } */ case 6: $s = -1; return [$assertType(generalArray, ptrType).Scalar, $ifaceNil]; /* } */ case 4: array = $assertType(generalArray, ptrType); index = (($assertType((0 >= dimensions.$length ? ($throwRuntimeError("index out of range"), undefined) : dimensions.$array[dimensions.$offset + 0]), instance.Integer) >> 0)); /* */ if (array.Vector === sliceType$1.nil || array.Vector.$length <= index) { $s = 9; continue; } /* */ $s = 10; continue; /* if (array.Vector === sliceType$1.nil || array.Vector.$length <= index) { */ case 9: _arg$3 = $clone(e, env.Environment); _r$4 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$4 = _r$4; _arg$5 = $pkg.Nil; _r$5 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } */ case 10: _r$6 = Garef($clone(e, env.Environment), (x = array.Vector, ((index < 0 || index >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + index])), $subslice(dimensions, 1)); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* */ } return; } if ($f === undefined) { $f = { $blk: Garef }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f.array = array; $f.dimensions = dimensions; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.generalArray = generalArray; $f.index = index; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Garef = Garef; SetAref = function(e, obj, basicArray, dimensions) { var _arg, _arg$1, _arg$10, _arg$11, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, basicArray, dimensions, e, err, err$1, err$2, index, index$1, obj, x, x$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$10 = $f._arg$10; _arg$11 = $f._arg$11; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _arg$8 = $f._arg$8; _arg$9 = $f._arg$9; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; basicArray = $f.basicArray; dimensions = $f.dimensions; e = $f.e; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; index = $f.index; index$1 = $f.index$1; obj = $f.obj; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.BasicArray, new sliceType([basicArray])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = ensure($clone(e, env.Environment), class$1.Integer, dimensions); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } err$1 = _r$1; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _r$2 = ilos.InstanceOf(class$1.String, basicArray); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (_r$2) { $s = 4; continue; } _r$3 = ilos.InstanceOf(class$1.GeneralVector, basicArray); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_r$2) { */ case 4: _r$4 = ensure($clone(e, env.Environment), class$1.Character, new sliceType([obj])); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } err$2 = _r$4; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } /* */ if (!((dimensions.$length === 1))) { $s = 11; continue; } /* */ $s = 12; continue; /* if (!((dimensions.$length === 1))) { */ case 11: _arg = $clone(e, env.Environment); _r$5 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$1 = _r$5; _arg$2 = $pkg.Nil; _r$6 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* } */ case 12: index = (($assertType((0 >= dimensions.$length ? ($throwRuntimeError("index out of range"), undefined) : dimensions.$array[dimensions.$offset + 0]), instance.Integer) >> 0)); /* */ if ($assertType(basicArray, instance.String).$length <= index) { $s = 15; continue; } /* */ $s = 16; continue; /* if ($assertType(basicArray, instance.String).$length <= index) { */ case 15: _arg$3 = $clone(e, env.Environment); _r$7 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _arg$4 = _r$7; _arg$5 = $pkg.Nil; _r$8 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $s = -1; return _r$8; /* } */ case 16: (x = $assertType(basicArray, instance.String), ((index < 0 || index >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + index] = (($assertType(obj, instance.Character) >> 0)))); $s = -1; return [obj, $ifaceNil]; /* } else if (_r$3) { */ case 5: /* */ if (!((dimensions.$length === 1))) { $s = 19; continue; } /* */ $s = 20; continue; /* if (!((dimensions.$length === 1))) { */ case 19: _arg$6 = $clone(e, env.Environment); _r$9 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _arg$7 = _r$9; _arg$8 = $pkg.Nil; _r$10 = SignalCondition(_arg$6, _arg$7, _arg$8); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } $s = -1; return _r$10; /* } */ case 20: index$1 = (($assertType((0 >= dimensions.$length ? ($throwRuntimeError("index out of range"), undefined) : dimensions.$array[dimensions.$offset + 0]), instance.Integer) >> 0)); /* */ if ($assertType(basicArray, instance.GeneralVector).$length <= index$1) { $s = 23; continue; } /* */ $s = 24; continue; /* if ($assertType(basicArray, instance.GeneralVector).$length <= index$1) { */ case 23: _arg$9 = $clone(e, env.Environment); _r$11 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _arg$10 = _r$11; _arg$11 = $pkg.Nil; _r$12 = SignalCondition(_arg$9, _arg$10, _arg$11); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } $s = -1; return _r$12; /* } */ case 24: (x$1 = $assertType(basicArray, instance.GeneralVector), ((index$1 < 0 || index$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + index$1] = obj)); $s = -1; return [obj, $ifaceNil]; /* } else { */ case 6: _r$13 = SetGaref($clone(e, env.Environment), obj, basicArray, dimensions); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } $s = -1; return _r$13; /* } */ case 7: case 3: $s = -1; return [$ifaceNil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: SetAref }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$10 = _arg$10; $f._arg$11 = _arg$11; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._arg$8 = _arg$8; $f._arg$9 = _arg$9; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f.basicArray = basicArray; $f.dimensions = dimensions; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.index = index; $f.index$1 = index$1; $f.obj = obj; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.SetAref = SetAref; SetGaref = function(e, obj, generalArray, dimensions) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, array, dimensions, e, err, err$1, generalArray, index, obj, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; array = $f.array; dimensions = $f.dimensions; e = $f.e; err = $f.err; err$1 = $f.err$1; generalArray = $f.generalArray; index = $f.index; obj = $f.obj; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.GeneralArrayStar, new sliceType([generalArray])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = ensure($clone(e, env.Environment), class$1.Integer, dimensions); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } err$1 = _r$1; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } /* */ if (dimensions.$length === 0) { $s = 3; continue; } /* */ $s = 4; continue; /* if (dimensions.$length === 0) { */ case 3: /* */ if ($interfaceIsEqual($assertType(generalArray, ptrType).Scalar, $ifaceNil)) { $s = 5; continue; } /* */ $s = 6; continue; /* if ($interfaceIsEqual($assertType(generalArray, ptrType).Scalar, $ifaceNil)) { */ case 5: _arg = $clone(e, env.Environment); _r$2 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; _arg$2 = $pkg.Nil; _r$3 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* } */ case 6: $assertType(generalArray, ptrType).Scalar = obj; $s = -1; return [obj, $ifaceNil]; /* } */ case 4: array = $assertType(generalArray, ptrType); index = (($assertType((0 >= dimensions.$length ? ($throwRuntimeError("index out of range"), undefined) : dimensions.$array[dimensions.$offset + 0]), instance.Integer) >> 0)); /* */ if (array.Vector === sliceType$1.nil || array.Vector.$length <= index) { $s = 9; continue; } /* */ $s = 10; continue; /* if (array.Vector === sliceType$1.nil || array.Vector.$length <= index) { */ case 9: _arg$3 = $clone(e, env.Environment); _r$4 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$4 = _r$4; _arg$5 = $pkg.Nil; _r$5 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } */ case 10: _r$6 = SetGaref($clone(e, env.Environment), obj, (x = array.Vector, ((index < 0 || index >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + index])), $subslice(dimensions, 1)); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* */ } return; } if ($f === undefined) { $f = { $blk: SetGaref }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f.array = array; $f.dimensions = dimensions; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.generalArray = generalArray; $f.index = index; $f.obj = obj; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.SetGaref = SetGaref; ArrayDimensions = function(e, basicArray) { var _r, _r$1, _r$2, array, basicArray, dimensions, e, err, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; array = $f.array; basicArray = $f.basicArray; dimensions = $f.dimensions; e = $f.e; err = $f.err; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.BasicArray, new sliceType([basicArray])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = ilos.InstanceOf(class$1.String, basicArray); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 3; continue; } _r$2 = ilos.InstanceOf(class$1.GeneralVector, basicArray); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (_r$2) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_r$1) { */ case 3: $s = -1; return List($clone(e, env.Environment), new sliceType([instance.NewInteger($assertType(basicArray, instance.String).$length)])); /* } else if (_r$2) { */ case 4: $s = -1; return List($clone(e, env.Environment), new sliceType([instance.NewInteger($assertType(basicArray, instance.GeneralVector).$length)])); /* } else { */ case 5: array = $assertType(basicArray, ptrType); dimensions = new sliceType([]); while (true) { if (!(!(array.Vector === sliceType$1.nil))) { break; } dimensions = $append(dimensions, instance.NewInteger(array.Vector.$length)); array = (x = array.Vector, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); } $s = -1; return List($clone(e, env.Environment), dimensions); /* } */ case 6: case 2: $s = -1; return [$ifaceNil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: ArrayDimensions }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.array = array; $f.basicArray = basicArray; $f.dimensions = dimensions; $f.e = e; $f.err = err; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.ArrayDimensions = ArrayDimensions; Characterp = function(e, obj) { var _r, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.Character, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Characterp }; } $f._r = _r; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Characterp = Characterp; CharEqual = function(e, char1, char2) { var _r, char1, char2, e, err, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; char1 = $f.char1; char2 = $f.char2; e = $f.e; err = $f.err; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Character, new sliceType([char1, char2])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if ($interfaceIsEqual(char1, char2)) { $s = -1; return [$pkg.T, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: CharEqual }; } $f._r = _r; $f.char1 = char1; $f.char2 = char2; $f.e = e; $f.err = err; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.CharEqual = CharEqual; CharNotEqual = function(e, char1, char2) { var _r, _tuple, char1, char2, e, err, ret, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; char1 = $f.char1; char2 = $f.char2; e = $f.e; err = $f.err; ret = $f.ret; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = CharEqual($clone(e, env.Environment), char1, char2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ret = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return Not($clone(e, env.Environment), ret); /* */ } return; } if ($f === undefined) { $f = { $blk: CharNotEqual }; } $f._r = _r; $f._tuple = _tuple; $f.char1 = char1; $f.char2 = char2; $f.e = e; $f.err = err; $f.ret = ret; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.CharNotEqual = CharNotEqual; CharGreaterThan = function(e, char1, char2) { var _r, char1, char2, e, err, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; char1 = $f.char1; char2 = $f.char2; e = $f.e; err = $f.err; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Character, new sliceType([char1, char2])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if ($assertType(char1, instance.Character) > $assertType(char2, instance.Character)) { $s = -1; return [$pkg.T, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: CharGreaterThan }; } $f._r = _r; $f.char1 = char1; $f.char2 = char2; $f.e = e; $f.err = err; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.CharGreaterThan = CharGreaterThan; CharGreaterThanOrEqual = function(e, char1, char2) { var _r, _r$1, _tuple, _tuple$1, char1, char2, e, eq, err, gt, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; char1 = $f.char1; char2 = $f.char2; e = $f.e; eq = $f.eq; err = $f.err; gt = $f.gt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = CharGreaterThan($clone(e, env.Environment), char1, char2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; gt = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = CharEqual($clone(e, env.Environment), char1, char2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; eq = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if ($interfaceIsEqual(gt, $pkg.Nil) && $interfaceIsEqual(eq, $pkg.Nil)) { $s = -1; return [$pkg.Nil, $ifaceNil]; } $s = -1; return [$pkg.T, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: CharGreaterThanOrEqual }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.char1 = char1; $f.char2 = char2; $f.e = e; $f.eq = eq; $f.err = err; $f.gt = gt; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.CharGreaterThanOrEqual = CharGreaterThanOrEqual; CharLessThan = function(e, char1, char2) { var _r, _tuple, char1, char2, e, err, gt, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; char1 = $f.char1; char2 = $f.char2; e = $f.e; err = $f.err; gt = $f.gt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = CharGreaterThanOrEqual($clone(e, env.Environment), char1, char2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; gt = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return Not($clone(e, env.Environment), gt); /* */ } return; } if ($f === undefined) { $f = { $blk: CharLessThan }; } $f._r = _r; $f._tuple = _tuple; $f.char1 = char1; $f.char2 = char2; $f.e = e; $f.err = err; $f.gt = gt; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.CharLessThan = CharLessThan; CharLessThanOrEqual = function(e, char1, char2) { var _r, _tuple, char1, char2, e, err, gt, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; char1 = $f.char1; char2 = $f.char2; e = $f.e; err = $f.err; gt = $f.gt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = CharGreaterThan($clone(e, env.Environment), char1, char2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; gt = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return Not($clone(e, env.Environment), gt); /* */ } return; } if ($f === undefined) { $f = { $blk: CharLessThanOrEqual }; } $f._r = _r; $f._tuple = _tuple; $f.char1 = char1; $f.char2 = char2; $f.e = e; $f.err = err; $f.gt = gt; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.CharLessThanOrEqual = CharLessThanOrEqual; ClassOf = function(e, obj) { var _r, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = obj.Class(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return [_r, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: ClassOf }; } $f._r = _r; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.ClassOf = ClassOf; Instancep = function(e, obj, class$2) { var _r, class$2, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; class$2 = $f.class$2; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$2, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Instancep }; } $f._r = _r; $f.class$2 = class$2; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Instancep = Instancep; Subclassp = function(e, class1, class2) { var _r, class1, class2, e, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; class1 = $f.class1; class2 = $f.class2; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.SubclassOf(class1, class2); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Subclassp }; } $f._r = _r; $f.class1 = class1; $f.class2 = class2; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Subclassp = Subclassp; Class = function(e, className) { var _arg, _arg$1, _arg$2, _r, _r$1, _tuple, _tuple$1, className, e, err, ok, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; className = $f.className; e = $f.e; err = $f.err; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tuple = $subslice(e.Class, 0, 1).Get(className); v = _tuple[0]; ok = _tuple[1]; if (ok) { $s = -1; return [$assertType(v, ilos.Class), $ifaceNil]; } _arg = $clone(e, env.Environment); _r = instance.NewUndefinedClass($clone(e, env.Environment), className); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; _arg$2 = $pkg.Nil; _r$1 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; err = _tuple$1[1]; $s = -1; return [$ifaceNil, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: Class }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.className = className; $f.e = e; $f.err = err; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Class = Class; checkSuperClass = function(a, b) { var _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _v, _v$1, a, b, c, c$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _ref = $f._ref; _ref$1 = $f._ref$1; _v = $f._v; _v$1 = $f._v$1; a = $f.a; b = $f.b; c = $f.c; c$1 = $f.c$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = reflect.DeepEqual(a, class$1.StandardObject); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } if (_r) { _v = true; $s = 3; continue s; } _r$1 = reflect.DeepEqual(b, class$1.StandardObject); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _v = _r$1; case 3: /* */ if (_v) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_v) { */ case 1: $s = -1; return false; /* } */ case 2: _r$2 = ilos.SubclassOf(a, b); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } if (_r$2) { _v$1 = true; $s = 8; continue s; } _r$3 = ilos.SubclassOf(b, a); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _v$1 = _r$3; case 8: /* */ if (_v$1) { $s = 6; continue; } /* */ $s = 7; continue; /* if (_v$1) { */ case 6: $s = -1; return true; /* } */ case 7: _r$4 = a.Supers(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _ref = _r$4; _i = 0; /* while (true) { */ case 12: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 13; continue; } c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$5 = checkSuperClass(c, b); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } /* */ if (_r$5) { $s = 14; continue; } /* */ $s = 15; continue; /* if (_r$5) { */ case 14: $s = -1; return true; /* } */ case 15: _i++; /* } */ $s = 12; continue; case 13: _r$6 = b.Supers(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _ref$1 = _r$6; _i$1 = 0; /* while (true) { */ case 18: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 19; continue; } c$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); _r$7 = checkSuperClass(a, c$1); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } /* */ if (_r$7) { $s = 20; continue; } /* */ $s = 21; continue; /* if (_r$7) { */ case 20: $s = -1; return true; /* } */ case 21: _i$1++; /* } */ $s = 18; continue; case 19: $s = -1; return false; /* */ } return; } if ($f === undefined) { $f = { $blk: checkSuperClass }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._ref = _ref; $f._ref$1 = _ref$1; $f._v = _v; $f._v$1 = _v$1; $f.a = a; $f.b = b; $f.c = c; $f.c$1 = c$1; $f.$s = $s; $f.$r = $r; return $f; }; Defclass = function(e, className, scNames, slotSpecs, classOpts) { var _1, _2, _3, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, abstractp, before, boundpFunctionName, className, classObject, classOpt, classOpts, closure, e, err, err$1, err$2, err$3, err$4, err$5, err$6, err$7, fun, fun$1, fun$2, g, g$1, g$2, i, i$1, initargs, initforms, lambdaList, lambdaList$1, lambdaList$2, metaclass, ok, ok$1, ok$2, readerFunctionName, scName, scNames, slotName, slotName$1, slotName$2, slotOpts, slotOpts$1, slotSpec, slotSpec$1, slotSpecs, slots, super$1, supers, writerFunctionName, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _i$3 = $f._i$3; _i$4 = $f._i$4; _key = $f._key; _key$1 = $f._key$1; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$20 = $f._r$20; _r$21 = $f._r$21; _r$22 = $f._r$22; _r$23 = $f._r$23; _r$24 = $f._r$24; _r$25 = $f._r$25; _r$26 = $f._r$26; _r$27 = $f._r$27; _r$28 = $f._r$28; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _ref$3 = $f._ref$3; _ref$4 = $f._ref$4; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$10 = $f._tuple$10; _tuple$11 = $f._tuple$11; _tuple$12 = $f._tuple$12; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; _tuple$8 = $f._tuple$8; _tuple$9 = $f._tuple$9; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; abstractp = $f.abstractp; before = $f.before; boundpFunctionName = $f.boundpFunctionName; className = $f.className; classObject = $f.classObject; classOpt = $f.classOpt; classOpts = $f.classOpts; closure = $f.closure; e = $f.e; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; err$4 = $f.err$4; err$5 = $f.err$5; err$6 = $f.err$6; err$7 = $f.err$7; fun = $f.fun; fun$1 = $f.fun$1; fun$2 = $f.fun$2; g = $f.g; g$1 = $f.g$1; g$2 = $f.g$2; i = $f.i; i$1 = $f.i$1; initargs = $f.initargs; initforms = $f.initforms; lambdaList = $f.lambdaList; lambdaList$1 = $f.lambdaList$1; lambdaList$2 = $f.lambdaList$2; metaclass = $f.metaclass; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; readerFunctionName = $f.readerFunctionName; scName = $f.scName; scNames = $f.scNames; slotName = $f.slotName; slotName$1 = $f.slotName$1; slotName$2 = $f.slotName$2; slotOpts = $f.slotOpts; slotOpts$1 = $f.slotOpts$1; slotSpec = $f.slotSpec; slotSpec$1 = $f.slotSpec$1; slotSpecs = $f.slotSpecs; slots = $f.slots; super$1 = $f.super$1; supers = $f.supers; writerFunctionName = $f.writerFunctionName; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: classObject = [classObject]; _r = ensure($clone(e, env.Environment), class$1.Symbol, new sliceType([className])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = ensure($clone(e, env.Environment), class$1.List, new sliceType([scNames, slotSpecs])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } err$1 = _r$1; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } supers = new sliceType$2([class$1.StandardObject]); _r$2 = $assertType(scNames, instance.List).Slice(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _ref = _r$2; _i = 0; /* while (true) { */ case 4: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } scName = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$3 = Class($clone(e, env.Environment), scName); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple = _r$3; super$1 = _tuple[0]; err$2 = _tuple[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } _ref$1 = supers; _i$1 = 0; /* while (true) { */ case 7: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } before = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); _r$4 = checkSuperClass(before, super$1); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } /* */ if (_r$4) { $s = 9; continue; } /* */ $s = 10; continue; /* if (_r$4) { */ case 9: _arg = $clone(e, env.Environment); _r$5 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$1 = _r$5; _arg$2 = $pkg.Nil; _r$6 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* } */ case 10: _i$1++; /* } */ $s = 7; continue; case 8: supers = $append(supers, $assertType(super$1, ilos.Class)); _i++; /* } */ $s = 4; continue; case 5: slots = new sliceType([]); initforms = $makeMap(ilos.Instance.keyFor, []); initargs = $makeMap(ilos.Instance.keyFor, []); _r$7 = $assertType(slotSpecs, instance.List).Slice(); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _ref$2 = _r$7; _i$2 = 0; /* while (true) { */ case 15: /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 16; continue; } slotSpec = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); _r$8 = ilos.InstanceOf(class$1.Symbol, slotSpec); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } /* */ if (_r$8) { $s = 17; continue; } /* */ $s = 18; continue; /* if (_r$8) { */ case 17: slotName = slotSpec; slots = $append(slots, slotName); _i$2++; /* continue; */ $s = 15; continue; /* } */ case 18: slotName$1 = $assertType(slotSpec, ptrType$1).Car; slots = $append(slots, slotName$1); _r$9 = $assertType($assertType(slotSpec, ptrType$1).Cdr, instance.List).Slice(); /* */ $s = 20; case 20: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } slotOpts = _r$9; i = 0; /* while (true) { */ case 21: /* if (!(i < slotOpts.$length)) { break; } */ if(!(i < slotOpts.$length)) { $s = 22; continue; } _1 = ((i < 0 || i >= slotOpts.$length) ? ($throwRuntimeError("index out of range"), undefined) : slotOpts.$array[slotOpts.$offset + i]); /* */ if ($interfaceIsEqual(_1, (instance.NewSymbol(":INITFORM")))) { $s = 24; continue; } /* */ if ($interfaceIsEqual(_1, (instance.NewSymbol(":INITARG")))) { $s = 25; continue; } /* */ $s = 26; continue; /* if ($interfaceIsEqual(_1, (instance.NewSymbol(":INITFORM")))) { */ case 24: _r$10 = newNamedFunction($clone(e, env.Environment), instance.NewSymbol("CLOSURE"), $pkg.Nil, new sliceType([(x = i + 1 >> 0, ((x < 0 || x >= slotOpts.$length) ? ($throwRuntimeError("index out of range"), undefined) : slotOpts.$array[slotOpts.$offset + x]))])); /* */ $s = 27; case 27: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _tuple$1 = _r$10; closure = _tuple$1[0]; err$3 = _tuple$1[1]; if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = -1; return [$ifaceNil, err$3]; } _key = slotName$1; (initforms || $throwRuntimeError("assignment to entry in nil map"))[ilos.Instance.keyFor(_key)] = { k: _key, v: closure }; $s = 26; continue; /* } else if ($interfaceIsEqual(_1, (instance.NewSymbol(":INITARG")))) { */ case 25: _key$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= slotOpts.$length) ? ($throwRuntimeError("index out of range"), undefined) : slotOpts.$array[slotOpts.$offset + x$1])); (initargs || $throwRuntimeError("assignment to entry in nil map"))[ilos.Instance.keyFor(_key$1)] = { k: _key$1, v: slotName$1 }; /* } */ case 26: case 23: i = i + (2) >> 0; /* } */ $s = 21; continue; case 22: _i$2++; /* } */ $s = 15; continue; case 16: metaclass = class$1.StandardClass; abstractp = $pkg.Nil; _ref$3 = classOpts; _i$3 = 0; /* while (true) { */ case 28: /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 29; continue; } classOpt = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); err$4 = $ifaceNil; _2 = $assertType(classOpt, ptrType$1).Car; /* */ if ($interfaceIsEqual(_2, (instance.NewSymbol(":METACLASS")))) { $s = 31; continue; } /* */ if ($interfaceIsEqual(_2, (instance.NewSymbol(":ABSTRACTP")))) { $s = 32; continue; } /* */ $s = 33; continue; /* if ($interfaceIsEqual(_2, (instance.NewSymbol(":METACLASS")))) { */ case 31: _arg$3 = $clone(e, env.Environment); _r$11 = $assertType(classOpt, instance.List).Nth(1); /* */ $s = 34; case 34: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _arg$4 = _r$11; _r$12 = Class(_arg$3, _arg$4); /* */ $s = 35; case 35: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } _tuple$2 = _r$12; metaclass = _tuple$2[0]; err$4 = _tuple$2[1]; if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = -1; return [$ifaceNil, err$4]; } $s = 33; continue; /* } else if ($interfaceIsEqual(_2, (instance.NewSymbol(":ABSTRACTP")))) { */ case 32: _arg$5 = $clone(e, env.Environment); _r$13 = $assertType(classOpt, instance.List).Nth(1); /* */ $s = 36; case 36: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _arg$6 = _r$13; _r$14 = Eval(_arg$5, _arg$6); /* */ $s = 37; case 37: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } _tuple$3 = _r$14; abstractp = _tuple$3[0]; err$4 = _tuple$3[1]; if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = -1; return [$ifaceNil, err$4]; } /* } */ case 33: case 30: _i$3++; /* } */ $s = 28; continue; case 29: classObject[0] = instance.NewStandardClass(className, supers, slots, initforms, initargs, metaclass, abstractp); $subslice(e.Class, 0, 1).Define(className, classObject[0]); _r$15 = $assertType(slotSpecs, instance.List).Slice(); /* */ $s = 38; case 38: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } _ref$4 = _r$15; _i$4 = 0; /* while (true) { */ case 39: /* if (!(_i$4 < _ref$4.$length)) { break; } */ if(!(_i$4 < _ref$4.$length)) { $s = 40; continue; } slotName$2 = [slotName$2]; slotSpec$1 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); _r$16 = ilos.InstanceOf(class$1.Symbol, slotSpec$1); /* */ $s = 43; case 43: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } /* */ if (_r$16) { $s = 41; continue; } /* */ $s = 42; continue; /* if (_r$16) { */ case 41: _i$4++; /* continue; */ $s = 39; continue; /* } */ case 42: slotName$2[0] = $assertType(slotSpec$1, ptrType$1).Car; _r$17 = $assertType($assertType(slotSpec$1, ptrType$1).Cdr, instance.List).Slice(); /* */ $s = 44; case 44: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } slotOpts$1 = _r$17; _tmp = $ifaceNil; _tmp$1 = $ifaceNil; _tmp$2 = $ifaceNil; readerFunctionName = _tmp; writerFunctionName = _tmp$1; boundpFunctionName = _tmp$2; i$1 = 0; /* while (true) { */ case 45: /* if (!(i$1 < slotOpts$1.$length)) { break; } */ if(!(i$1 < slotOpts$1.$length)) { $s = 46; continue; } _3 = ((i$1 < 0 || i$1 >= slotOpts$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : slotOpts$1.$array[slotOpts$1.$offset + i$1]); /* */ if ($interfaceIsEqual(_3, (instance.NewSymbol(":READER")))) { $s = 48; continue; } /* */ if ($interfaceIsEqual(_3, (instance.NewSymbol(":WRITER")))) { $s = 49; continue; } /* */ if ($interfaceIsEqual(_3, (instance.NewSymbol(":ACCESSOR")))) { $s = 50; continue; } /* */ if ($interfaceIsEqual(_3, (instance.NewSymbol(":BOUNDP")))) { $s = 51; continue; } /* */ $s = 52; continue; /* if ($interfaceIsEqual(_3, (instance.NewSymbol(":READER")))) { */ case 48: readerFunctionName = (x$2 = i$1 + 1 >> 0, ((x$2 < 0 || x$2 >= slotOpts$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : slotOpts$1.$array[slotOpts$1.$offset + x$2])); $s = 52; continue; /* } else if ($interfaceIsEqual(_3, (instance.NewSymbol(":WRITER")))) { */ case 49: writerFunctionName = (x$3 = i$1 + 1 >> 0, ((x$3 < 0 || x$3 >= slotOpts$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : slotOpts$1.$array[slotOpts$1.$offset + x$3])); $s = 52; continue; /* } else if ($interfaceIsEqual(_3, (instance.NewSymbol(":ACCESSOR")))) { */ case 50: readerFunctionName = (x$4 = i$1 + 1 >> 0, ((x$4 < 0 || x$4 >= slotOpts$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : slotOpts$1.$array[slotOpts$1.$offset + x$4])); _r$18 = fmt.Sprintf("(SETF %v)", new sliceType$3([(x$5 = i$1 + 1 >> 0, ((x$5 < 0 || x$5 >= slotOpts$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : slotOpts$1.$array[slotOpts$1.$offset + x$5]))])); /* */ $s = 53; case 53: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } _r$19 = instance.NewSymbol(_r$18); /* */ $s = 54; case 54: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } writerFunctionName = _r$19; $s = 52; continue; /* } else if ($interfaceIsEqual(_3, (instance.NewSymbol(":BOUNDP")))) { */ case 51: boundpFunctionName = (x$6 = i$1 + 1 >> 0, ((x$6 < 0 || x$6 >= slotOpts$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : slotOpts$1.$array[slotOpts$1.$offset + x$6])); /* } */ case 52: case 47: i$1 = i$1 + (2) >> 0; /* } */ $s = 45; continue; case 46: /* */ if (!($interfaceIsEqual(readerFunctionName, $ifaceNil))) { $s = 55; continue; } /* */ $s = 56; continue; /* if (!($interfaceIsEqual(readerFunctionName, $ifaceNil))) { */ case 55: _tuple$4 = List($clone(e, env.Environment), new sliceType([instance.NewSymbol("INSTANCE")])); lambdaList = _tuple$4[0]; err$5 = _tuple$4[1]; if (!($interfaceIsEqual(err$5, $ifaceNil))) { $s = -1; return [$ifaceNil, err$5]; } _tuple$5 = e.Function.Get(readerFunctionName); g = _tuple$5[0]; ok = _tuple$5[1]; if (!ok) { _v = true; $s = 59; continue s; } _r$20 = ilos.InstanceOf(class$1.GenericFunction, g); /* */ $s = 60; case 60: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } _v = !_r$20; case 59: /* */ if (_v) { $s = 57; continue; } /* */ $s = 58; continue; /* if (_v) { */ case 57: _r$21 = Defgeneric($clone(e, env.Environment), readerFunctionName, lambdaList, new sliceType([])); /* */ $s = 61; case 61: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } _r$21; /* } */ case 58: _tuple$6 = e.Function.Get(readerFunctionName); fun = _tuple$6[0]; _r$22 = $assertType(fun, ptrType$2).AddMethod($ifaceNil, lambdaList, new sliceType$2([classObject[0]]), instance.NewFunction(readerFunctionName, new funcType((function(classObject, slotName$2) { return function $b(e$1, object) { var _r$22, _tuple$7, e$1, object, ok$1, slot, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$22 = $f._r$22; _tuple$7 = $f._tuple$7; e$1 = $f.e$1; object = $f.object; ok$1 = $f.ok$1; slot = $f.slot; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r$22 = $clone($assertType(object, instance.Instance), instance.Instance).GetSlotValue(slotName$2[0], classObject[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } _tuple$7 = _r$22; slot = _tuple$7[0]; ok$1 = _tuple$7[1]; if (ok$1) { $s = -1; return [slot, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$22 = _r$22; $f._tuple$7 = _tuple$7; $f.e$1 = e$1; $f.object = object; $f.ok$1 = ok$1; $f.slot = slot; $f.$s = $s; $f.$r = $r; return $f; }; })(classObject, slotName$2)))); /* */ $s = 62; case 62: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } _r$22; /* } */ case 56: /* */ if (!($interfaceIsEqual(writerFunctionName, $ifaceNil))) { $s = 63; continue; } /* */ $s = 64; continue; /* if (!($interfaceIsEqual(writerFunctionName, $ifaceNil))) { */ case 63: _tuple$7 = List($clone(e, env.Environment), new sliceType([instance.NewSymbol("Y"), instance.NewSymbol("X")])); lambdaList$1 = _tuple$7[0]; err$6 = _tuple$7[1]; if (!($interfaceIsEqual(err$6, $ifaceNil))) { $s = -1; return [$ifaceNil, err$6]; } _tuple$8 = e.Function.Get(writerFunctionName); g$1 = _tuple$8[0]; ok$1 = _tuple$8[1]; if (!ok$1) { _v$1 = true; $s = 67; continue s; } _r$23 = ilos.InstanceOf(class$1.GenericFunction, g$1); /* */ $s = 68; case 68: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } _v$1 = !_r$23; case 67: /* */ if (_v$1) { $s = 65; continue; } /* */ $s = 66; continue; /* if (_v$1) { */ case 65: _r$24 = Defgeneric($clone(e, env.Environment), writerFunctionName, lambdaList$1, new sliceType([])); /* */ $s = 69; case 69: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } _r$24; /* } */ case 66: _tuple$9 = e.Function.Get(writerFunctionName); fun$1 = _tuple$9[0]; _r$25 = $assertType(fun$1, ptrType$2).AddMethod($ifaceNil, lambdaList$1, new sliceType$2([(x$7 = class$1.Object, new x$7.constructor.elem(x$7)), classObject[0]]), instance.NewFunction(writerFunctionName, new funcType$1((function(classObject, slotName$2) { return function $b(e$1, obj, object) { var _r$25, e$1, obj, object, ok$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$25 = $f._r$25; e$1 = $f.e$1; obj = $f.obj; object = $f.object; ok$2 = $f.ok$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r$25 = $clone($assertType(object, instance.Instance), instance.Instance).SetSlotValue(obj, slotName$2[0], classObject[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } ok$2 = _r$25; if (ok$2) { $s = -1; return [obj, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$25 = _r$25; $f.e$1 = e$1; $f.obj = obj; $f.object = object; $f.ok$2 = ok$2; $f.$s = $s; $f.$r = $r; return $f; }; })(classObject, slotName$2)))); /* */ $s = 70; case 70: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } _r$25; /* } */ case 64: /* */ if (!($interfaceIsEqual(boundpFunctionName, $ifaceNil))) { $s = 71; continue; } /* */ $s = 72; continue; /* if (!($interfaceIsEqual(boundpFunctionName, $ifaceNil))) { */ case 71: _tuple$10 = List($clone(e, env.Environment), new sliceType([instance.NewSymbol("INSTANCE")])); lambdaList$2 = _tuple$10[0]; err$7 = _tuple$10[1]; if (!($interfaceIsEqual(err$7, $ifaceNil))) { $s = -1; return [$ifaceNil, err$7]; } _tuple$11 = e.Function.Get(boundpFunctionName); g$2 = _tuple$11[0]; ok$2 = _tuple$11[1]; if (!ok$2) { _v$2 = true; $s = 75; continue s; } _r$26 = ilos.InstanceOf(class$1.GenericFunction, g$2); /* */ $s = 76; case 76: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } _v$2 = !_r$26; case 75: /* */ if (_v$2) { $s = 73; continue; } /* */ $s = 74; continue; /* if (_v$2) { */ case 73: _r$27 = Defgeneric($clone(e, env.Environment), boundpFunctionName, lambdaList$2, new sliceType([])); /* */ $s = 77; case 77: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } _r$27; /* } */ case 74: _tuple$12 = e.Function.Get(boundpFunctionName); fun$2 = _tuple$12[0]; _r$28 = $assertType(fun$2, ptrType$2).AddMethod($ifaceNil, lambdaList$2, new sliceType$2([classObject[0]]), instance.NewFunction(boundpFunctionName, new funcType((function(classObject, slotName$2) { return function $b(e$1, object) { var _r$28, _tuple$13, e$1, object, ok$3, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$28 = $f._r$28; _tuple$13 = $f._tuple$13; e$1 = $f.e$1; object = $f.object; ok$3 = $f.ok$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r$28 = $clone($assertType(object, instance.Instance), instance.Instance).GetSlotValue(slotName$2[0], classObject[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } _tuple$13 = _r$28; ok$3 = _tuple$13[1]; if (ok$3) { $s = -1; return [$pkg.T, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$28 = _r$28; $f._tuple$13 = _tuple$13; $f.e$1 = e$1; $f.object = object; $f.ok$3 = ok$3; $f.$s = $s; $f.$r = $r; return $f; }; })(classObject, slotName$2)))); /* */ $s = 78; case 78: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } _r$28; /* } */ case 72: _i$4++; /* } */ $s = 39; continue; case 40: $s = -1; return [className, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Defclass }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._i$3 = _i$3; $f._i$4 = _i$4; $f._key = _key; $f._key$1 = _key$1; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$20 = _r$20; $f._r$21 = _r$21; $f._r$22 = _r$22; $f._r$23 = _r$23; $f._r$24 = _r$24; $f._r$25 = _r$25; $f._r$26 = _r$26; $f._r$27 = _r$27; $f._r$28 = _r$28; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._ref$3 = _ref$3; $f._ref$4 = _ref$4; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$10 = _tuple$10; $f._tuple$11 = _tuple$11; $f._tuple$12 = _tuple$12; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f._tuple$8 = _tuple$8; $f._tuple$9 = _tuple$9; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f.abstractp = abstractp; $f.before = before; $f.boundpFunctionName = boundpFunctionName; $f.className = className; $f.classObject = classObject; $f.classOpt = classOpt; $f.classOpts = classOpts; $f.closure = closure; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.err$4 = err$4; $f.err$5 = err$5; $f.err$6 = err$6; $f.err$7 = err$7; $f.fun = fun; $f.fun$1 = fun$1; $f.fun$2 = fun$2; $f.g = g; $f.g$1 = g$1; $f.g$2 = g$2; $f.i = i; $f.i$1 = i$1; $f.initargs = initargs; $f.initforms = initforms; $f.lambdaList = lambdaList; $f.lambdaList$1 = lambdaList$1; $f.lambdaList$2 = lambdaList$2; $f.metaclass = metaclass; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.readerFunctionName = readerFunctionName; $f.scName = scName; $f.scNames = scNames; $f.slotName = slotName; $f.slotName$1 = slotName$1; $f.slotName$2 = slotName$2; $f.slotOpts = slotOpts; $f.slotOpts$1 = slotOpts$1; $f.slotSpec = slotSpec; $f.slotSpec$1 = slotSpec$1; $f.slotSpecs = slotSpecs; $f.slots = slots; $f.super$1 = super$1; $f.supers = supers; $f.writerFunctionName = writerFunctionName; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Defclass = Defclass; Create = function(e, c, i) { var _r, _r$1, c, e, err, i, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; c = $f.c; e = $f.e; err = $f.err; i = $f.i; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.StandardClass, new sliceType([c])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = instance.Create($clone(e, env.Environment), c, i); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return [_r$1, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Create }; } $f._r = _r; $f._r$1 = _r$1; $f.c = c; $f.e = e; $f.err = err; $f.i = i; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Create = Create; InitializeObject = function(e, object, inits) { var _r, _r$1, e, err, inits, object, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; e = $f.e; err = $f.err; inits = $f.inits; object = $f.object; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.StandardObject, new sliceType([object])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = instance.InitializeObject($clone(e, env.Environment), object, inits); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return [_r$1, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: InitializeObject }; } $f._r = _r; $f._r$1 = _r$1; $f.e = e; $f.err = err; $f.inits = inits; $f.object = object; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.InitializeObject = InitializeObject; Defmethod = function(e, arguments$1) { var _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, arguments$1, class$2, classList, e, err, fun, gen, i, lambdaList, name, ok, ok$1, parameterList, pp, pp$1, qualifier, x, x$1, x$2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$10 = $f._arg$10; _arg$11 = $f._arg$11; _arg$12 = $f._arg$12; _arg$13 = $f._arg$13; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _arg$8 = $f._arg$8; _arg$9 = $f._arg$9; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; arguments$1 = $f.arguments$1; class$2 = $f.class$2; classList = $f.classList; e = $f.e; err = $f.err; fun = $f.fun; gen = $f.gen; i = $f.i; lambdaList = $f.lambdaList; name = $f.name; ok = $f.ok; ok$1 = $f.ok$1; parameterList = $f.parameterList; pp = $f.pp; pp$1 = $f.pp$1; qualifier = $f.qualifier; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: /* */ if (arguments$1.$length < 2) { $s = 1; continue; } /* */ $s = 2; continue; /* if (arguments$1.$length < 2) { */ case 1: _arg = $clone(e, env.Environment); _r = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; _arg$2 = $pkg.Nil; _r$1 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 2: name = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]); qualifier = $ifaceNil; i = 0; if ($interfaceIsEqual((1 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 1]), instance.NewSymbol(":AROUND")) || $interfaceIsEqual((1 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 1]), instance.NewSymbol(":BEFORE")) || $interfaceIsEqual((1 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 1]), instance.NewSymbol(":AFTER"))) { qualifier = (1 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 1]); i = i + (1) >> 0; } parameterList = new sliceType([]); _r$2 = $assertType((x = i + 1 >> 0, ((x < 0 || x >= arguments$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + x])), instance.List).Slice(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _ref = _r$2; _i = 0; /* while (true) { */ case 6: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } pp = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$3 = ilos.InstanceOf(class$1.Symbol, pp); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3) { $s = 8; continue; } /* */ $s = 9; continue; /* if (_r$3) { */ case 8: parameterList = $append(parameterList, pp); $s = 10; continue; /* } else { */ case 9: _r$4 = $assertType(pp, instance.List).Nth(0); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } parameterList = $append(parameterList, _r$4); /* } */ case 10: _i++; /* } */ $s = 6; continue; case 7: _tuple = List($clone(e, env.Environment), parameterList); lambdaList = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } classList = new sliceType$2([]); _r$5 = $assertType((x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= arguments$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + x$1])), instance.List).Slice(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _ref$1 = _r$5; _i$1 = 0; /* while (true) { */ case 14: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 15; continue; } pp$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); if ($interfaceIsEqual(pp$1, instance.NewSymbol(":REST")) && $interfaceIsEqual(pp$1, instance.NewSymbol("&REST"))) { /* break; */ $s = 15; continue; } _r$6 = ilos.InstanceOf(class$1.Symbol, pp$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } /* */ if (_r$6) { $s = 16; continue; } /* */ $s = 17; continue; /* if (_r$6) { */ case 16: classList = $append(classList, (x$2 = class$1.Object, new x$2.constructor.elem(x$2))); $s = 18; continue; /* } else { */ case 17: _r$7 = $assertType(pp$1, instance.List).Nth(1); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _r$8 = $subslice(e.Class, 0, 1).Get(_r$7); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _tuple$1 = _r$8; class$2 = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (!ok) { $s = 22; continue; } /* */ $s = 23; continue; /* if (!ok) { */ case 22: _arg$3 = $clone(e, env.Environment); _arg$4 = $clone(e, env.Environment); _r$9 = $assertType(pp$1, instance.List).Nth(1); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _arg$5 = _r$9; _r$10 = instance.NewUndefinedClass(_arg$4, _arg$5); /* */ $s = 25; case 25: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _arg$6 = _r$10; _arg$7 = $pkg.Nil; _r$11 = SignalCondition(_arg$3, _arg$6, _arg$7); /* */ $s = 26; case 26: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } $s = -1; return _r$11; /* } */ case 23: classList = $append(classList, $assertType(class$2, ilos.Class)); /* } */ case 18: _i$1++; /* } */ $s = 14; continue; case 15: _r$12 = newNamedFunction($clone(e, env.Environment), name, lambdaList, $subslice(arguments$1, (i + 2 >> 0))); /* */ $s = 27; case 27: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } _tuple$2 = _r$12; fun = _tuple$2[0]; err = _tuple$2[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _tuple$3 = $subslice(e.Function, 0, 1).Get(name); gen = _tuple$3[0]; ok$1 = _tuple$3[1]; /* */ if (!ok$1) { $s = 28; continue; } /* */ $s = 29; continue; /* if (!ok$1) { */ case 28: _arg$8 = $clone(e, env.Environment); _r$13 = instance.NewUndefinedFunction($clone(e, env.Environment), name); /* */ $s = 30; case 30: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _arg$9 = _r$13; _arg$10 = $pkg.Nil; _r$14 = SignalCondition(_arg$8, _arg$9, _arg$10); /* */ $s = 31; case 31: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } $s = -1; return _r$14; /* } */ case 29: _r$15 = $assertType(gen, ptrType$2).AddMethod(qualifier, lambdaList, classList, fun); /* */ $s = 34; case 34: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } /* */ if (!_r$15) { $s = 32; continue; } /* */ $s = 33; continue; /* if (!_r$15) { */ case 32: _arg$11 = $clone(e, env.Environment); _r$16 = instance.NewUndefinedFunction($clone(e, env.Environment), name); /* */ $s = 35; case 35: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } _arg$12 = _r$16; _arg$13 = $pkg.Nil; _r$17 = SignalCondition(_arg$11, _arg$12, _arg$13); /* */ $s = 36; case 36: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } $s = -1; return _r$17; /* } */ case 33: $s = -1; return [name, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Defmethod }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$10 = _arg$10; $f._arg$11 = _arg$11; $f._arg$12 = _arg$12; $f._arg$13 = _arg$13; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._arg$8 = _arg$8; $f._arg$9 = _arg$9; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.arguments$1 = arguments$1; $f.class$2 = class$2; $f.classList = classList; $f.e = e; $f.err = err; $f.fun = fun; $f.gen = gen; $f.i = i; $f.lambdaList = lambdaList; $f.name = name; $f.ok = ok; $f.ok$1 = ok$1; $f.parameterList = parameterList; $f.pp = pp; $f.pp$1 = pp$1; $f.qualifier = qualifier; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Defmethod = Defmethod; Defgeneric = function(e, funcSpec, lambdaList, optionsOrMethodDescs) { var _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, class$2, e, forms, funcSpec, genericFunctionClass, lambdaList, methodCombination, ok, optionOrMethodDesc, optionsOrMethodDescs, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _tuple = $f._tuple; class$2 = $f.class$2; e = $f.e; forms = $f.forms; funcSpec = $f.funcSpec; genericFunctionClass = $f.genericFunctionClass; lambdaList = $f.lambdaList; methodCombination = $f.methodCombination; ok = $f.ok; optionOrMethodDesc = $f.optionOrMethodDesc; optionsOrMethodDescs = $f.optionsOrMethodDescs; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: methodCombination = $ifaceNil; genericFunctionClass = class$1.StandardGenericFunction; forms = new sliceType([]); _ref = optionsOrMethodDescs; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } optionOrMethodDesc = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r = $assertType(optionOrMethodDesc, instance.List).Nth(0); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _1 = _r; /* */ if ($interfaceIsEqual(_1, (instance.NewSymbol(":METHOD-COMBINATION")))) { $s = 5; continue; } /* */ if ($interfaceIsEqual(_1, (instance.NewSymbol(":GENERIC-FUNCTION-CLASS")))) { $s = 6; continue; } /* */ if ($interfaceIsEqual(_1, (instance.NewSymbol(":METHOD")))) { $s = 7; continue; } /* */ $s = 8; continue; /* if ($interfaceIsEqual(_1, (instance.NewSymbol(":METHOD-COMBINATION")))) { */ case 5: _r$1 = $assertType(optionOrMethodDesc, instance.List).Nth(1); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } methodCombination = _r$1; $s = 8; continue; /* } else if ($interfaceIsEqual(_1, (instance.NewSymbol(":GENERIC-FUNCTION-CLASS")))) { */ case 6: _r$2 = $assertType(optionOrMethodDesc, instance.List).Nth(1); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$3 = $subslice(e.Class, 0, 1).Get(_r$2); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple = _r$3; class$2 = _tuple[0]; ok = _tuple[1]; /* */ if (!ok) { $s = 12; continue; } /* */ $s = 13; continue; /* if (!ok) { */ case 12: _arg = $clone(e, env.Environment); _arg$1 = $clone(e, env.Environment); _r$4 = $assertType(optionOrMethodDesc, instance.List).Nth(1); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$2 = _r$4; _r$5 = instance.NewUndefinedClass(_arg$1, _arg$2); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$3 = _r$5; _arg$4 = $pkg.Nil; _r$6 = SignalCondition(_arg, _arg$3, _arg$4); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* } */ case 13: genericFunctionClass = $assertType(class$2, ilos.Class); $s = 8; continue; /* } else if ($interfaceIsEqual(_1, (instance.NewSymbol(":METHOD")))) { */ case 7: _arg$5 = instance.NewSymbol("DEFMETHOD"); _r$7 = $assertType(optionOrMethodDesc, instance.List).NthCdr(1); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _arg$6 = _r$7; _r$8 = instance.NewCons(_arg$5, _arg$6); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } forms = $append(forms, _r$8); /* } */ case 8: case 3: _i++; /* } */ $s = 1; continue; case 2: _r$9 = fmt.Sprint(new sliceType$3([funcSpec])); /* */ $s = 19; case 19: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _r$10 = instance.NewSymbol(_r$9); /* */ $s = 20; case 20: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _r$11 = $subslice(e.Function, 0, 1).Define(_r$10, instance.NewGenericFunction(funcSpec, lambdaList, methodCombination, genericFunctionClass)); /* */ $s = 21; case 21: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _r$11; _r$12 = Progn($clone(e, env.Environment), forms); /* */ $s = 22; case 22: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } _r$12; $s = -1; return [funcSpec, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Defgeneric }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._tuple = _tuple; $f.class$2 = class$2; $f.e = e; $f.forms = forms; $f.funcSpec = funcSpec; $f.genericFunctionClass = genericFunctionClass; $f.lambdaList = lambdaList; $f.methodCombination = methodCombination; $f.ok = ok; $f.optionOrMethodDesc = optionOrMethodDesc; $f.optionsOrMethodDescs = optionsOrMethodDescs; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Defgeneric = Defgeneric; SignalCondition = function(e, condition, continuable) { var _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, c, condition, continuable, e, err, o, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; c = $f.c; condition = $f.condition; continuable = $f.continuable; e = $f.e; err = $f.err; o = $f.o; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.SeriousCondition, new sliceType([condition])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = $clone($assertType(condition, instance.Instance), instance.Instance).SetSlotValue(instance.NewSymbol("IRIS.CONTINUABLE"), continuable, class$1.SeriousCondition); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; _r$2 = $assertType(e.Handler, instance.Applicable).Apply($clone(e, env.Environment), new sliceType([condition])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple = _r$2; c = _tuple[1]; _r$3 = ilos.InstanceOf(class$1.Continue, c); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_r$3) { */ case 4: _r$4 = $clone($assertType(c, instance.Instance), instance.Instance).GetSlotValue(instance.NewSymbol("IRIS.OBJECT"), class$1.Continue); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$1 = _r$4; o = _tuple$1[0]; $s = -1; return [o, $ifaceNil]; /* } */ case 5: $s = -1; return [$ifaceNil, c]; /* */ } return; } if ($f === undefined) { $f = { $blk: SignalCondition }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.c = c; $f.condition = condition; $f.continuable = continuable; $f.e = e; $f.err = err; $f.o = o; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.SignalCondition = SignalCondition; Cerror = function(e, continueString, errorString, objs) { var _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, _tuple$3, arguments$1, condition, continuable, continueString, e, err, err$1, errorString, objs, ss, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; arguments$1 = $f.arguments$1; condition = $f.condition; continuable = $f.continuable; continueString = $f.continueString; e = $f.e; err = $f.err; err$1 = $f.err$1; errorString = $f.errorString; objs = $f.objs; ss = $f.ss; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tuple = List($clone(e, env.Environment), objs); arguments$1 = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r = instance.Create($clone(e, env.Environment), class$1.SimpleError, new sliceType([instance.NewSymbol("FORMAT-STRING"), errorString, instance.NewSymbol("FORAMT-OBJECTS"), arguments$1])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } condition = _r; _tuple$1 = CreateStringOutputStream($clone(e, env.Environment)); ss = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = Format($clone(e, env.Environment), ss, continueString, objs); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$2 = _r$1; err$1 = _tuple$2[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _r$2 = GetOutputStreamString($clone(e, env.Environment), ss); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$3 = _r$2; continuable = _tuple$3[0]; err = _tuple$3[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$3 = SignalCondition($clone(e, env.Environment), condition, continuable); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* */ } return; } if ($f === undefined) { $f = { $blk: Cerror }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.arguments$1 = arguments$1; $f.condition = condition; $f.continuable = continuable; $f.continueString = continueString; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.errorString = errorString; $f.objs = objs; $f.ss = ss; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Cerror = Cerror; Error = function(e, continueString, errorString, objs) { var _r, _r$1, _tuple, arguments$1, condition, continueString, e, err, errorString, objs, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; arguments$1 = $f.arguments$1; condition = $f.condition; continueString = $f.continueString; e = $f.e; err = $f.err; errorString = $f.errorString; objs = $f.objs; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tuple = List($clone(e, env.Environment), objs); arguments$1 = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r = instance.Create($clone(e, env.Environment), class$1.SimpleError, new sliceType([instance.NewSymbol("FORMAT-STRING"), errorString, instance.NewSymbol("FORAMT-OBJECTS"), arguments$1])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } condition = _r; _r$1 = SignalCondition($clone(e, env.Environment), condition, $pkg.Nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: Error }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.arguments$1 = arguments$1; $f.condition = condition; $f.continueString = continueString; $f.e = e; $f.err = err; $f.errorString = errorString; $f.objs = objs; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Error = Error; ReportCondition = function(e, condition, stream) { var _r, condition, e, stream, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; condition = $f.condition; e = $f.e; stream = $f.stream; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Format($clone(e, env.Environment), e.StandardOutput, instance.NewString((new sliceType$4($stringToRunes("~A")))), new sliceType([condition])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: ReportCondition }; } $f._r = _r; $f.condition = condition; $f.e = e; $f.stream = stream; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.ReportCondition = ReportCondition; ConditionContinuable = function(e, condition) { var _r, _tuple, condition, continuable, e, ok, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; condition = $f.condition; continuable = $f.continuable; e = $f.e; ok = $f.ok; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = $clone($assertType(condition, instance.Instance), instance.Instance).GetSlotValue(instance.NewSymbol("IRIS.CONTINUABLE"), class$1.SeriousCondition); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; continuable = _tuple[0]; ok = _tuple[1]; if (ok) { $s = -1; return [continuable, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: ConditionContinuable }; } $f._r = _r; $f._tuple = _tuple; $f.condition = condition; $f.continuable = continuable; $f.e = e; $f.ok = ok; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.ConditionContinuable = ConditionContinuable; ContinueCondition = function(e, condition, value) { var _r, _r$1, _r$2, _r$3, _r$4, _tuple, b, condition, e, ok, value, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; b = $f.b; condition = $f.condition; e = $f.e; ok = $f.ok; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = $clone($assertType(condition, instance.Instance), instance.Instance).GetSlotValue(instance.NewSymbol("IRIS.CONTINUABLE"), class$1.SeriousCondition); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; b = _tuple[0]; ok = _tuple[1]; /* */ if (!ok || $interfaceIsEqual(b, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!ok || $interfaceIsEqual(b, $pkg.Nil)) { */ case 2: _r$1 = instance.Create($clone(e, env.Environment), class$1.ProgramError, new sliceType([])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$1]; /* } */ case 3: /* */ if (value.$length === 1) { $s = 5; continue; } /* */ $s = 6; continue; /* if (value.$length === 1) { */ case 5: _r$2 = instance.Create($clone(e, env.Environment), class$1.Continue, new sliceType([instance.NewSymbol("IRIS.OBJECT"), (0 >= value.$length ? ($throwRuntimeError("index out of range"), undefined) : value.$array[value.$offset + 0])])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$2]; /* } */ case 6: /* */ if (value.$length === 0) { $s = 8; continue; } /* */ $s = 9; continue; /* if (value.$length === 0) { */ case 8: _r$3 = instance.Create($clone(e, env.Environment), class$1.Continue, new sliceType([instance.NewSymbol("IRIS.OBJECT"), $pkg.Nil])); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$3]; /* } */ case 9: _r$4 = instance.Create($clone(e, env.Environment), class$1.ProgramError, new sliceType([])); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$4]; /* */ } return; } if ($f === undefined) { $f = { $blk: ContinueCondition }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f.b = b; $f.condition = condition; $f.e = e; $f.ok = ok; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.ContinueCondition = ContinueCondition; WithHandler = function(e, handler, forms) { var _r, _r$1, _tuple, _tuple$1, e, err, forms, fun, handler, ret, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; forms = $f.forms; fun = $f.fun; handler = $f.handler; ret = $f.ret; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Eval($clone(e, env.Environment), handler); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; fun = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } e.Handler = fun; _r$1 = Progn($clone(e, env.Environment), forms); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; ret = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [ret, err]; /* */ } return; } if ($f === undefined) { $f = { $blk: WithHandler }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.forms = forms; $f.fun = fun; $f.handler = handler; $f.ret = ret; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.WithHandler = WithHandler; If = function(e, testForm, thenForm, elseForm) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, e, elseForm, err, testForm, tf, thenForm, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; e = $f.e; elseForm = $f.elseForm; err = $f.err; testForm = $f.testForm; tf = $f.tf; thenForm = $f.thenForm; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Eval($clone(e, env.Environment), testForm); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; tf = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } /* */ if (!($interfaceIsEqual(tf, $pkg.Nil))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!($interfaceIsEqual(tf, $pkg.Nil))) { */ case 2: _r$1 = Eval($clone(e, env.Environment), thenForm); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 3: /* */ if (elseForm.$length > 1) { $s = 5; continue; } /* */ $s = 6; continue; /* if (elseForm.$length > 1) { */ case 5: _arg = $clone(e, env.Environment); _r$2 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; _arg$2 = $pkg.Nil; _r$3 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* } */ case 6: if (elseForm.$length === 0) { $s = -1; return [$pkg.Nil, $ifaceNil]; } _r$4 = Eval($clone(e, env.Environment), (0 >= elseForm.$length ? ($throwRuntimeError("index out of range"), undefined) : elseForm.$array[elseForm.$offset + 0])); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* */ } return; } if ($f === undefined) { $f = { $blk: If }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f.e = e; $f.elseForm = elseForm; $f.err = err; $f.testForm = testForm; $f.tf = tf; $f.thenForm = thenForm; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.If = If; Cond = function(e, testFrom) { var _arg, _arg$1, _arg$2, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, e, err, err$1, ret, s, testFrom, tf, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _ref = $f._ref; _tuple = $f._tuple; e = $f.e; err = $f.err; err$1 = $f.err$1; ret = $f.ret; s = $f.s; testFrom = $f.testFrom; tf = $f.tf; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _ref = testFrom; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } tf = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r = ensure($clone(e, env.Environment), class$1.List, new sliceType([tf])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = $assertType(tf, instance.List).Slice(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } s = _r$1; /* */ if (s.$length === 0) { $s = 5; continue; } /* */ $s = 6; continue; /* if (s.$length === 0) { */ case 5: _arg = $clone(e, env.Environment); _r$2 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; _arg$2 = $pkg.Nil; _r$3 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* } */ case 6: _r$4 = Eval($clone(e, env.Environment), (0 >= s.$length ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + 0])); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple = _r$4; ret = _tuple[0]; err$1 = _tuple[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } /* */ if ($interfaceIsEqual(ret, $pkg.T)) { $s = 10; continue; } /* */ $s = 11; continue; /* if ($interfaceIsEqual(ret, $pkg.T)) { */ case 10: _r$5 = Progn($clone(e, env.Environment), $subslice(s, 1)); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } */ case 11: _i++; /* } */ $s = 1; continue; case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Cond }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._ref = _ref; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.ret = ret; $f.s = s; $f.testFrom = testFrom; $f.tf = tf; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Cond = Cond; Case = function(e, key, pattern) { var _arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _tuple, e, err, err$1, err$2, form, idx, k, key, pat, pattern, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _ref = $f._ref; _ref$1 = $f._ref$1; _tuple = $f._tuple; e = $f.e; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; form = $f.form; idx = $f.idx; k = $f.k; key = $f.key; pat = $f.pat; pattern = $f.pattern; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Eval($clone(e, env.Environment), key); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; key = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _ref = pattern; _i = 0; /* while (true) { */ case 2: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } idx = _i; pat = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$1 = ensure($clone(e, env.Environment), class$1.List, new sliceType([pat])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } err$1 = _r$1; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _r$2 = $assertType(pat, instance.List).Slice(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } form = _r$2; /* */ if (form.$length < 1) { $s = 6; continue; } /* */ $s = 7; continue; /* if (form.$length < 1) { */ case 6: _arg = $clone(e, env.Environment); _r$3 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$1 = _r$3; _arg$2 = $pkg.Nil; _r$4 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 7: /* */ if ((idx === (pattern.$length - 1 >> 0)) && $interfaceIsEqual((0 >= form.$length ? ($throwRuntimeError("index out of range"), undefined) : form.$array[form.$offset + 0]), $pkg.T)) { $s = 10; continue; } /* */ $s = 11; continue; /* if ((idx === (pattern.$length - 1 >> 0)) && $interfaceIsEqual((0 >= form.$length ? ($throwRuntimeError("index out of range"), undefined) : form.$array[form.$offset + 0]), $pkg.T)) { */ case 10: _r$5 = Progn($clone(e, env.Environment), $subslice(form, 1)); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } */ case 11: _r$6 = ensure($clone(e, env.Environment), class$1.List, new sliceType([(0 >= form.$length ? ($throwRuntimeError("index out of range"), undefined) : form.$array[form.$offset + 0])])); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } err$2 = _r$6; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } _r$7 = $assertType((0 >= form.$length ? ($throwRuntimeError("index out of range"), undefined) : form.$array[form.$offset + 0]), instance.List).Slice(); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _ref$1 = _r$7; _i$1 = 0; /* while (true) { */ case 15: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 16; continue; } k = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); /* */ if ($interfaceIsEqual(k, key)) { $s = 17; continue; } /* */ $s = 18; continue; /* if ($interfaceIsEqual(k, key)) { */ case 17: _r$8 = Progn($clone(e, env.Environment), $subslice(form, 1)); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $s = -1; return _r$8; /* } */ case 18: _i$1++; /* } */ $s = 15; continue; case 16: _i++; /* } */ $s = 2; continue; case 3: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Case }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.form = form; $f.idx = idx; $f.k = k; $f.key = key; $f.pat = pat; $f.pattern = pattern; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Case = Case; CaseUsing = function(e, pred, key, pattern) { var _arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, e, err, err$1, err$2, err$3, err$4, form, idx, k, key, pat, pattern, pred, ret, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; e = $f.e; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; err$4 = $f.err$4; form = $f.form; idx = $f.idx; k = $f.k; key = $f.key; pat = $f.pat; pattern = $f.pattern; pred = $f.pred; ret = $f.ret; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Eval($clone(e, env.Environment), key); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; key = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = Eval($clone(e, env.Environment), pred); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; pred = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$2 = ensure($clone(e, env.Environment), class$1.Function, new sliceType([pred])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } err$1 = _r$2; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _ref = pattern; _i = 0; /* while (true) { */ case 4: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } idx = _i; pat = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$3 = ensure($clone(e, env.Environment), class$1.List, new sliceType([pat])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } err$2 = _r$3; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } _r$4 = $assertType(pat, instance.List).Slice(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } form = _r$4; /* */ if (form.$length < 1) { $s = 8; continue; } /* */ $s = 9; continue; /* if (form.$length < 1) { */ case 8: _arg = $clone(e, env.Environment); _r$5 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$1 = _r$5; _arg$2 = $pkg.Nil; _r$6 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* } */ case 9: /* */ if ((idx === (pattern.$length - 1 >> 0)) && $interfaceIsEqual((0 >= form.$length ? ($throwRuntimeError("index out of range"), undefined) : form.$array[form.$offset + 0]), $pkg.T)) { $s = 12; continue; } /* */ $s = 13; continue; /* if ((idx === (pattern.$length - 1 >> 0)) && $interfaceIsEqual((0 >= form.$length ? ($throwRuntimeError("index out of range"), undefined) : form.$array[form.$offset + 0]), $pkg.T)) { */ case 12: _r$7 = Progn($clone(e, env.Environment), $subslice(form, 1)); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $s = -1; return _r$7; /* } */ case 13: _r$8 = ensure($clone(e, env.Environment), class$1.List, new sliceType([(0 >= form.$length ? ($throwRuntimeError("index out of range"), undefined) : form.$array[form.$offset + 0])])); /* */ $s = 15; case 15: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } err$3 = _r$8; if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = -1; return [$ifaceNil, err$3]; } _r$9 = $assertType((0 >= form.$length ? ($throwRuntimeError("index out of range"), undefined) : form.$array[form.$offset + 0]), instance.List).Slice(); /* */ $s = 16; case 16: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _ref$1 = _r$9; _i$1 = 0; /* while (true) { */ case 17: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 18; continue; } k = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); _r$10 = $assertType(pred, instance.Applicable).Apply($clone(e.NewDynamic(), env.Environment), new sliceType([k, key])); /* */ $s = 19; case 19: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _tuple$2 = _r$10; ret = _tuple$2[0]; err$4 = _tuple$2[1]; if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = -1; return [$ifaceNil, err$4]; } /* */ if (!($interfaceIsEqual(ret, $pkg.Nil))) { $s = 20; continue; } /* */ $s = 21; continue; /* if (!($interfaceIsEqual(ret, $pkg.Nil))) { */ case 20: _r$11 = Progn($clone(e, env.Environment), $subslice(form, 1)); /* */ $s = 22; case 22: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } $s = -1; return _r$11; /* } */ case 21: _i$1++; /* } */ $s = 17; continue; case 18: _i++; /* } */ $s = 4; continue; case 5: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: CaseUsing }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.err$4 = err$4; $f.form = form; $f.idx = idx; $f.k = k; $f.key = key; $f.pat = pat; $f.pattern = pattern; $f.pred = pred; $f.ret = ret; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.CaseUsing = CaseUsing; Consp = function(e, obj) { var _r, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.Cons, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Consp }; } $f._r = _r; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Consp = Consp; Cons = function(e, obj1, obj2) { var e, obj1, obj2; return [instance.NewCons(obj1, obj2), $ifaceNil]; }; $pkg.Cons = Cons; Car = function(e, cons) { var _r, cons, e, err, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; cons = $f.cons; e = $f.e; err = $f.err; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Cons, new sliceType([cons])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [$assertType(cons, ptrType$1).Car, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Car }; } $f._r = _r; $f.cons = cons; $f.e = e; $f.err = err; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Car = Car; Cdr = function(e, cons) { var _r, cons, e, err, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; cons = $f.cons; e = $f.e; err = $f.err; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Cons, new sliceType([cons])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [$assertType(cons, ptrType$1).Cdr, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Cdr }; } $f._r = _r; $f.cons = cons; $f.e = e; $f.err = err; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Cdr = Cdr; SetCar = function(e, obj, cons) { var _r, cons, e, err, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; cons = $f.cons; e = $f.e; err = $f.err; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Cons, new sliceType([cons])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $assertType(cons, ptrType$1).Car = obj; $s = -1; return [obj, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: SetCar }; } $f._r = _r; $f.cons = cons; $f.e = e; $f.err = err; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.SetCar = SetCar; SetCdr = function(e, obj, cons) { var _r, cons, e, err, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; cons = $f.cons; e = $f.e; err = $f.err; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Cons, new sliceType([cons])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $assertType(cons, ptrType$1).Cdr = obj; $s = -1; return [obj, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: SetCdr }; } $f._r = _r; $f.cons = cons; $f.e = e; $f.err = err; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.SetCdr = SetCdr; Quote = function(e, obj) { var e, obj; return [obj, $ifaceNil]; }; $pkg.Quote = Quote; Convert = function(e, object, class1) { var _1, _2, _3, _4, _5, _6, _7, _8, _arg, _arg$1, _arg$2, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, c, car, cdr, class1, e, err, i, i$1, i$2, l, object, s, v, v$1, x, x$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _5 = $f._5; _6 = $f._6; _7 = $f._7; _8 = $f._8; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$20 = $f._r$20; _r$21 = $f._r$21; _r$22 = $f._r$22; _r$23 = $f._r$23; _r$24 = $f._r$24; _r$25 = $f._r$25; _r$26 = $f._r$26; _r$27 = $f._r$27; _r$28 = $f._r$28; _r$29 = $f._r$29; _r$3 = $f._r$3; _r$30 = $f._r$30; _r$31 = $f._r$31; _r$32 = $f._r$32; _r$33 = $f._r$33; _r$34 = $f._r$34; _r$35 = $f._r$35; _r$36 = $f._r$36; _r$37 = $f._r$37; _r$38 = $f._r$38; _r$39 = $f._r$39; _r$4 = $f._r$4; _r$40 = $f._r$40; _r$41 = $f._r$41; _r$42 = $f._r$42; _r$43 = $f._r$43; _r$44 = $f._r$44; _r$45 = $f._r$45; _r$46 = $f._r$46; _r$47 = $f._r$47; _r$48 = $f._r$48; _r$49 = $f._r$49; _r$5 = $f._r$5; _r$50 = $f._r$50; _r$51 = $f._r$51; _r$52 = $f._r$52; _r$53 = $f._r$53; _r$54 = $f._r$54; _r$55 = $f._r$55; _r$56 = $f._r$56; _r$57 = $f._r$57; _r$58 = $f._r$58; _r$59 = $f._r$59; _r$6 = $f._r$6; _r$60 = $f._r$60; _r$61 = $f._r$61; _r$62 = $f._r$62; _r$63 = $f._r$63; _r$64 = $f._r$64; _r$65 = $f._r$65; _r$66 = $f._r$66; _r$67 = $f._r$67; _r$68 = $f._r$68; _r$69 = $f._r$69; _r$7 = $f._r$7; _r$70 = $f._r$70; _r$71 = $f._r$71; _r$72 = $f._r$72; _r$73 = $f._r$73; _r$74 = $f._r$74; _r$75 = $f._r$75; _r$76 = $f._r$76; _r$77 = $f._r$77; _r$78 = $f._r$78; _r$79 = $f._r$79; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; c = $f.c; car = $f.car; cdr = $f.cdr; class1 = $f.class1; e = $f.e; err = $f.err; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; l = $f.l; object = $f.object; s = $f.s; v = $f.v; v$1 = $f.v$1; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Eval($clone(e, env.Environment), object); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; object = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = Class($clone(e, env.Environment), class1); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; class1 = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$2 = object.Class(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$3 = _r$2.String(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _1 = _r$3; _r$4 = class$1.Character.String(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } /* */ if (_1 === (_r$4)) { $s = 6; continue; } _r$5 = class$1.Integer.String(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } /* */ if (_1 === (_r$5)) { $s = 7; continue; } _r$6 = class$1.Float.String(); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } /* */ if (_1 === (_r$6)) { $s = 8; continue; } _r$7 = class$1.Symbol.String(); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } /* */ if (_1 === (_r$7)) { $s = 9; continue; } _r$8 = class$1.String.String(); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } /* */ if (_1 === (_r$8)) { $s = 10; continue; } _r$9 = class$1.GeneralVector.String(); /* */ $s = 19; case 19: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } /* */ if (_1 === (_r$9)) { $s = 11; continue; } _r$10 = class$1.List.String(); /* */ $s = 20; case 20: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } /* */ if (_1 === (_r$10)) { $s = 12; continue; } /* */ $s = 13; continue; /* if (_1 === (_r$4)) { */ case 6: _r$11 = $clone($assertType(class1, instance.BuiltInClass), instance.BuiltInClass).String(); /* */ $s = 22; case 22: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _2 = _r$11; _r$12 = class$1.Character.String(); /* */ $s = 31; case 31: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } /* */ if (_2 === (_r$12)) { $s = 23; continue; } _r$13 = class$1.Integer.String(); /* */ $s = 32; case 32: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } /* */ if (_2 === (_r$13)) { $s = 24; continue; } _r$14 = class$1.Float.String(); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } /* */ if (_2 === (_r$14)) { $s = 25; continue; } _r$15 = class$1.Symbol.String(); /* */ $s = 34; case 34: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } /* */ if (_2 === (_r$15)) { $s = 26; continue; } _r$16 = class$1.String.String(); /* */ $s = 35; case 35: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } /* */ if (_2 === (_r$16)) { $s = 27; continue; } _r$17 = class$1.GeneralVector.String(); /* */ $s = 36; case 36: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } /* */ if (_2 === (_r$17)) { $s = 28; continue; } _r$18 = class$1.List.String(); /* */ $s = 37; case 37: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } /* */ if (_2 === (_r$18)) { $s = 29; continue; } /* */ $s = 30; continue; /* if (_2 === (_r$12)) { */ case 23: $s = -1; return [object, $ifaceNil]; /* } else if (_2 === (_r$13)) { */ case 24: $s = -1; return [instance.NewInteger((((($assertType(object, instance.Character) >> 0)) >> 0))), $ifaceNil]; /* } else if (_2 === (_r$14)) { */ case 25: $s = 30; continue; /* } else if (_2 === (_r$15)) { */ case 26: $s = 30; continue; /* } else if (_2 === (_r$16)) { */ case 27: _r$19 = object.String(); /* */ $s = 38; case 38: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } _r$20 = instance.NewString((new sliceType$4($stringToRunes($substring(_r$19, 2))))); /* */ $s = 39; case 39: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } $s = -1; return [_r$20, $ifaceNil]; /* } else if (_2 === (_r$17)) { */ case 28: $s = 30; continue; /* } else if (_2 === (_r$18)) { */ case 29: /* } */ case 30: case 21: $s = 13; continue; /* } else if (_1 === (_r$5)) { */ case 7: _r$21 = class1.String(); /* */ $s = 41; case 41: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } _3 = _r$21; _r$22 = class$1.Character.String(); /* */ $s = 50; case 50: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } /* */ if (_3 === (_r$22)) { $s = 42; continue; } _r$23 = class$1.Integer.String(); /* */ $s = 51; case 51: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } /* */ if (_3 === (_r$23)) { $s = 43; continue; } _r$24 = class$1.Float.String(); /* */ $s = 52; case 52: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } /* */ if (_3 === (_r$24)) { $s = 44; continue; } _r$25 = class$1.Symbol.String(); /* */ $s = 53; case 53: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } /* */ if (_3 === (_r$25)) { $s = 45; continue; } _r$26 = class$1.String.String(); /* */ $s = 54; case 54: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } /* */ if (_3 === (_r$26)) { $s = 46; continue; } _r$27 = class$1.GeneralVector.String(); /* */ $s = 55; case 55: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } /* */ if (_3 === (_r$27)) { $s = 47; continue; } _r$28 = class$1.List.String(); /* */ $s = 56; case 56: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } /* */ if (_3 === (_r$28)) { $s = 48; continue; } /* */ $s = 49; continue; /* if (_3 === (_r$22)) { */ case 42: $s = -1; return [instance.NewCharacter((((($assertType(object, instance.Integer) >> 0)) >> 0))), $ifaceNil]; /* } else if (_3 === (_r$23)) { */ case 43: $s = -1; return [object, $ifaceNil]; /* } else if (_3 === (_r$24)) { */ case 44: $s = -1; return [instance.NewFloat(((($assertType(object, instance.Integer) >> 0)))), $ifaceNil]; /* } else if (_3 === (_r$25)) { */ case 45: $s = 49; continue; /* } else if (_3 === (_r$26)) { */ case 46: _r$29 = object.String(); /* */ $s = 57; case 57: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } _r$30 = instance.NewString((new sliceType$4($stringToRunes(_r$29)))); /* */ $s = 58; case 58: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } $s = -1; return [_r$30, $ifaceNil]; /* } else if (_3 === (_r$27)) { */ case 47: $s = 49; continue; /* } else if (_3 === (_r$28)) { */ case 48: /* } */ case 49: case 40: $s = 13; continue; /* } else if (_1 === (_r$6)) { */ case 8: _r$31 = class1.String(); /* */ $s = 60; case 60: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } _4 = _r$31; _r$32 = class$1.Character.String(); /* */ $s = 69; case 69: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } /* */ if (_4 === (_r$32)) { $s = 61; continue; } _r$33 = class$1.Integer.String(); /* */ $s = 70; case 70: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } /* */ if (_4 === (_r$33)) { $s = 62; continue; } _r$34 = class$1.Float.String(); /* */ $s = 71; case 71: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } /* */ if (_4 === (_r$34)) { $s = 63; continue; } _r$35 = class$1.Symbol.String(); /* */ $s = 72; case 72: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } /* */ if (_4 === (_r$35)) { $s = 64; continue; } _r$36 = class$1.String.String(); /* */ $s = 73; case 73: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } /* */ if (_4 === (_r$36)) { $s = 65; continue; } _r$37 = class$1.GeneralVector.String(); /* */ $s = 74; case 74: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } /* */ if (_4 === (_r$37)) { $s = 66; continue; } _r$38 = class$1.List.String(); /* */ $s = 75; case 75: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } /* */ if (_4 === (_r$38)) { $s = 67; continue; } /* */ $s = 68; continue; /* if (_4 === (_r$32)) { */ case 61: $s = 68; continue; /* } else if (_4 === (_r$33)) { */ case 62: $s = -1; return [instance.NewInteger(((($assertType(object, instance.Float)) >> 0))), $ifaceNil]; /* } else if (_4 === (_r$34)) { */ case 63: $s = -1; return [object, $ifaceNil]; /* } else if (_4 === (_r$35)) { */ case 64: $s = 68; continue; /* } else if (_4 === (_r$36)) { */ case 65: _r$39 = object.String(); /* */ $s = 76; case 76: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } _r$40 = instance.NewString((new sliceType$4($stringToRunes(_r$39)))); /* */ $s = 77; case 77: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } $s = -1; return [_r$40, $ifaceNil]; /* } else if (_4 === (_r$37)) { */ case 66: $s = 68; continue; /* } else if (_4 === (_r$38)) { */ case 67: /* } */ case 68: case 59: $s = 13; continue; /* } else if (_1 === (_r$7)) { */ case 9: _r$41 = class1.String(); /* */ $s = 79; case 79: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } _5 = _r$41; _r$42 = class$1.Character.String(); /* */ $s = 88; case 88: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } /* */ if (_5 === (_r$42)) { $s = 80; continue; } _r$43 = class$1.Integer.String(); /* */ $s = 89; case 89: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } /* */ if (_5 === (_r$43)) { $s = 81; continue; } _r$44 = class$1.Float.String(); /* */ $s = 90; case 90: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } /* */ if (_5 === (_r$44)) { $s = 82; continue; } _r$45 = class$1.Symbol.String(); /* */ $s = 91; case 91: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } /* */ if (_5 === (_r$45)) { $s = 83; continue; } _r$46 = class$1.String.String(); /* */ $s = 92; case 92: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } /* */ if (_5 === (_r$46)) { $s = 84; continue; } _r$47 = class$1.GeneralVector.String(); /* */ $s = 93; case 93: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } /* */ if (_5 === (_r$47)) { $s = 85; continue; } _r$48 = class$1.List.String(); /* */ $s = 94; case 94: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } /* */ if (_5 === (_r$48)) { $s = 86; continue; } /* */ $s = 87; continue; /* if (_5 === (_r$42)) { */ case 80: $s = 87; continue; /* } else if (_5 === (_r$43)) { */ case 81: $s = 87; continue; /* } else if (_5 === (_r$44)) { */ case 82: $s = 87; continue; /* } else if (_5 === (_r$45)) { */ case 83: $s = -1; return [object, $ifaceNil]; /* } else if (_5 === (_r$46)) { */ case 84: _r$49 = object.String(); /* */ $s = 95; case 95: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } _r$50 = instance.NewString((new sliceType$4($stringToRunes(_r$49)))); /* */ $s = 96; case 96: if($c) { $c = false; _r$50 = _r$50.$blk(); } if (_r$50 && _r$50.$blk !== undefined) { break s; } $s = -1; return [_r$50, $ifaceNil]; /* } else if (_5 === (_r$47)) { */ case 85: $s = 87; continue; /* } else if (_5 === (_r$48)) { */ case 86: /* } */ case 87: case 78: $s = 13; continue; /* } else if (_1 === (_r$8)) { */ case 10: _r$51 = class1.String(); /* */ $s = 98; case 98: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } _6 = _r$51; _r$52 = class$1.Character.String(); /* */ $s = 107; case 107: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } /* */ if (_6 === (_r$52)) { $s = 99; continue; } _r$53 = class$1.Integer.String(); /* */ $s = 108; case 108: if($c) { $c = false; _r$53 = _r$53.$blk(); } if (_r$53 && _r$53.$blk !== undefined) { break s; } /* */ if (_6 === (_r$53)) { $s = 100; continue; } _r$54 = class$1.Float.String(); /* */ $s = 109; case 109: if($c) { $c = false; _r$54 = _r$54.$blk(); } if (_r$54 && _r$54.$blk !== undefined) { break s; } /* */ if (_6 === (_r$54)) { $s = 101; continue; } _r$55 = class$1.Symbol.String(); /* */ $s = 110; case 110: if($c) { $c = false; _r$55 = _r$55.$blk(); } if (_r$55 && _r$55.$blk !== undefined) { break s; } /* */ if (_6 === (_r$55)) { $s = 102; continue; } _r$56 = class$1.String.String(); /* */ $s = 111; case 111: if($c) { $c = false; _r$56 = _r$56.$blk(); } if (_r$56 && _r$56.$blk !== undefined) { break s; } /* */ if (_6 === (_r$56)) { $s = 103; continue; } _r$57 = class$1.GeneralVector.String(); /* */ $s = 112; case 112: if($c) { $c = false; _r$57 = _r$57.$blk(); } if (_r$57 && _r$57.$blk !== undefined) { break s; } /* */ if (_6 === (_r$57)) { $s = 104; continue; } _r$58 = class$1.List.String(); /* */ $s = 113; case 113: if($c) { $c = false; _r$58 = _r$58.$blk(); } if (_r$58 && _r$58.$blk !== undefined) { break s; } /* */ if (_6 === (_r$58)) { $s = 105; continue; } /* */ $s = 106; continue; /* if (_6 === (_r$52)) { */ case 99: $s = 106; continue; /* } else if (_6 === (_r$53)) { */ case 100: _r$59 = ParseNumber($clone(e, env.Environment), object); /* */ $s = 114; case 114: if($c) { $c = false; _r$59 = _r$59.$blk(); } if (_r$59 && _r$59.$blk !== undefined) { break s; } $s = -1; return _r$59; /* } else if (_6 === (_r$54)) { */ case 101: _r$60 = ParseNumber($clone(e, env.Environment), object); /* */ $s = 115; case 115: if($c) { $c = false; _r$60 = _r$60.$blk(); } if (_r$60 && _r$60.$blk !== undefined) { break s; } $s = -1; return _r$60; /* } else if (_6 === (_r$55)) { */ case 102: $s = 106; continue; /* } else if (_6 === (_r$56)) { */ case 103: $s = -1; return [object, $ifaceNil]; /* } else if (_6 === (_r$57)) { */ case 104: v = $makeSlice(sliceType, $assertType(object, instance.String).$length); _ref = $assertType(object, instance.String); _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); ((i < 0 || i >= v.$length) ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + i] = instance.NewCharacter(c)); _i++; } $s = -1; return [instance.NewGeneralVector(v), $ifaceNil]; /* } else if (_6 === (_r$58)) { */ case 105: l = $pkg.Nil; s = $assertType(object, instance.String); i$1 = s.$length - 1 >> 0; while (true) { if (!(i$1 >= 0)) { break; } l = instance.NewCons(instance.NewCharacter(((i$1 < 0 || i$1 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i$1])), l); i$1 = i$1 - (1) >> 0; } $s = -1; return [l, $ifaceNil]; /* } */ case 106: case 97: $s = 13; continue; /* } else if (_1 === (_r$9)) { */ case 11: _r$61 = class1.String(); /* */ $s = 117; case 117: if($c) { $c = false; _r$61 = _r$61.$blk(); } if (_r$61 && _r$61.$blk !== undefined) { break s; } _7 = _r$61; _r$62 = class$1.Character.String(); /* */ $s = 126; case 126: if($c) { $c = false; _r$62 = _r$62.$blk(); } if (_r$62 && _r$62.$blk !== undefined) { break s; } /* */ if (_7 === (_r$62)) { $s = 118; continue; } _r$63 = class$1.Integer.String(); /* */ $s = 127; case 127: if($c) { $c = false; _r$63 = _r$63.$blk(); } if (_r$63 && _r$63.$blk !== undefined) { break s; } /* */ if (_7 === (_r$63)) { $s = 119; continue; } _r$64 = class$1.Float.String(); /* */ $s = 128; case 128: if($c) { $c = false; _r$64 = _r$64.$blk(); } if (_r$64 && _r$64.$blk !== undefined) { break s; } /* */ if (_7 === (_r$64)) { $s = 120; continue; } _r$65 = class$1.Symbol.String(); /* */ $s = 129; case 129: if($c) { $c = false; _r$65 = _r$65.$blk(); } if (_r$65 && _r$65.$blk !== undefined) { break s; } /* */ if (_7 === (_r$65)) { $s = 121; continue; } _r$66 = class$1.String.String(); /* */ $s = 130; case 130: if($c) { $c = false; _r$66 = _r$66.$blk(); } if (_r$66 && _r$66.$blk !== undefined) { break s; } /* */ if (_7 === (_r$66)) { $s = 122; continue; } _r$67 = class$1.GeneralVector.String(); /* */ $s = 131; case 131: if($c) { $c = false; _r$67 = _r$67.$blk(); } if (_r$67 && _r$67.$blk !== undefined) { break s; } /* */ if (_7 === (_r$67)) { $s = 123; continue; } _r$68 = class$1.List.String(); /* */ $s = 132; case 132: if($c) { $c = false; _r$68 = _r$68.$blk(); } if (_r$68 && _r$68.$blk !== undefined) { break s; } /* */ if (_7 === (_r$68)) { $s = 124; continue; } /* */ $s = 125; continue; /* if (_7 === (_r$62)) { */ case 118: $s = 125; continue; /* } else if (_7 === (_r$63)) { */ case 119: $s = 125; continue; /* } else if (_7 === (_r$64)) { */ case 120: $s = 125; continue; /* } else if (_7 === (_r$65)) { */ case 121: $s = 125; continue; /* } else if (_7 === (_r$66)) { */ case 122: $s = 125; continue; /* } else if (_7 === (_r$67)) { */ case 123: $s = -1; return [object, $ifaceNil]; /* } else if (_7 === (_r$68)) { */ case 124: $s = -1; return List($clone(e, env.Environment), (x = $assertType(object, instance.GeneralVector), $subslice(new sliceType(x.$array), x.$offset, x.$offset + x.$length))); /* } */ case 125: case 116: $s = 13; continue; /* } else if (_1 === (_r$10)) { */ case 12: _r$69 = class1.String(); /* */ $s = 134; case 134: if($c) { $c = false; _r$69 = _r$69.$blk(); } if (_r$69 && _r$69.$blk !== undefined) { break s; } _8 = _r$69; _r$70 = class$1.Character.String(); /* */ $s = 143; case 143: if($c) { $c = false; _r$70 = _r$70.$blk(); } if (_r$70 && _r$70.$blk !== undefined) { break s; } /* */ if (_8 === (_r$70)) { $s = 135; continue; } _r$71 = class$1.Integer.String(); /* */ $s = 144; case 144: if($c) { $c = false; _r$71 = _r$71.$blk(); } if (_r$71 && _r$71.$blk !== undefined) { break s; } /* */ if (_8 === (_r$71)) { $s = 136; continue; } _r$72 = class$1.Float.String(); /* */ $s = 145; case 145: if($c) { $c = false; _r$72 = _r$72.$blk(); } if (_r$72 && _r$72.$blk !== undefined) { break s; } /* */ if (_8 === (_r$72)) { $s = 137; continue; } _r$73 = class$1.Symbol.String(); /* */ $s = 146; case 146: if($c) { $c = false; _r$73 = _r$73.$blk(); } if (_r$73 && _r$73.$blk !== undefined) { break s; } /* */ if (_8 === (_r$73)) { $s = 138; continue; } _r$74 = class$1.String.String(); /* */ $s = 147; case 147: if($c) { $c = false; _r$74 = _r$74.$blk(); } if (_r$74 && _r$74.$blk !== undefined) { break s; } /* */ if (_8 === (_r$74)) { $s = 139; continue; } _r$75 = class$1.GeneralVector.String(); /* */ $s = 148; case 148: if($c) { $c = false; _r$75 = _r$75.$blk(); } if (_r$75 && _r$75.$blk !== undefined) { break s; } /* */ if (_8 === (_r$75)) { $s = 140; continue; } _r$76 = class$1.List.String(); /* */ $s = 149; case 149: if($c) { $c = false; _r$76 = _r$76.$blk(); } if (_r$76 && _r$76.$blk !== undefined) { break s; } /* */ if (_8 === (_r$76)) { $s = 141; continue; } /* */ $s = 142; continue; /* if (_8 === (_r$70)) { */ case 135: $s = 142; continue; /* } else if (_8 === (_r$71)) { */ case 136: $s = 142; continue; /* } else if (_8 === (_r$72)) { */ case 137: $s = 142; continue; /* } else if (_8 === (_r$73)) { */ case 138: $s = 142; continue; /* } else if (_8 === (_r$74)) { */ case 139: $s = 142; continue; /* } else if (_8 === (_r$75)) { */ case 140: v$1 = instance.NewGeneralVector(new sliceType([])); _tmp = $assertType(object, ptrType$1).Car; _tmp$1 = $assertType(object, ptrType$1).Cdr; _tmp$2 = 0; car = _tmp; cdr = _tmp$1; i$2 = _tmp$2; /* while (true) { */ case 150: /* if (!(!($interfaceIsEqual(cdr, $pkg.Nil)))) { break; } */ if(!(!($interfaceIsEqual(cdr, $pkg.Nil)))) { $s = 151; continue; } _r$77 = SetElt($clone(e, env.Environment), car, v$1, instance.NewInteger(i$2)); /* */ $s = 152; case 152: if($c) { $c = false; _r$77 = _r$77.$blk(); } if (_r$77 && _r$77.$blk !== undefined) { break s; } _r$77; _tmp$3 = $assertType(cdr, ptrType$1).Car; _tmp$4 = $assertType(cdr, ptrType$1).Cdr; _tmp$5 = i$2 + 1 >> 0; car = _tmp$3; cdr = _tmp$4; i$2 = _tmp$5; /* } */ $s = 150; continue; case 151: $s = -1; return [v$1, $ifaceNil]; /* } else if (_8 === (_r$76)) { */ case 141: $s = -1; return [object, $ifaceNil]; /* } */ case 142: case 133: /* } */ case 13: case 3: _arg = $clone(e, env.Environment); _r$78 = instance.NewDomainError($clone(e, env.Environment), object, (x$1 = class$1.Object, new x$1.constructor.elem(x$1))); /* */ $s = 153; case 153: if($c) { $c = false; _r$78 = _r$78.$blk(); } if (_r$78 && _r$78.$blk !== undefined) { break s; } _arg$1 = _r$78; _arg$2 = $pkg.Nil; _r$79 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 154; case 154: if($c) { $c = false; _r$79 = _r$79.$blk(); } if (_r$79 && _r$79.$blk !== undefined) { break s; } $s = -1; return _r$79; /* */ } return; } if ($f === undefined) { $f = { $blk: Convert }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._5 = _5; $f._6 = _6; $f._7 = _7; $f._8 = _8; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$20 = _r$20; $f._r$21 = _r$21; $f._r$22 = _r$22; $f._r$23 = _r$23; $f._r$24 = _r$24; $f._r$25 = _r$25; $f._r$26 = _r$26; $f._r$27 = _r$27; $f._r$28 = _r$28; $f._r$29 = _r$29; $f._r$3 = _r$3; $f._r$30 = _r$30; $f._r$31 = _r$31; $f._r$32 = _r$32; $f._r$33 = _r$33; $f._r$34 = _r$34; $f._r$35 = _r$35; $f._r$36 = _r$36; $f._r$37 = _r$37; $f._r$38 = _r$38; $f._r$39 = _r$39; $f._r$4 = _r$4; $f._r$40 = _r$40; $f._r$41 = _r$41; $f._r$42 = _r$42; $f._r$43 = _r$43; $f._r$44 = _r$44; $f._r$45 = _r$45; $f._r$46 = _r$46; $f._r$47 = _r$47; $f._r$48 = _r$48; $f._r$49 = _r$49; $f._r$5 = _r$5; $f._r$50 = _r$50; $f._r$51 = _r$51; $f._r$52 = _r$52; $f._r$53 = _r$53; $f._r$54 = _r$54; $f._r$55 = _r$55; $f._r$56 = _r$56; $f._r$57 = _r$57; $f._r$58 = _r$58; $f._r$59 = _r$59; $f._r$6 = _r$6; $f._r$60 = _r$60; $f._r$61 = _r$61; $f._r$62 = _r$62; $f._r$63 = _r$63; $f._r$64 = _r$64; $f._r$65 = _r$65; $f._r$66 = _r$66; $f._r$67 = _r$67; $f._r$68 = _r$68; $f._r$69 = _r$69; $f._r$7 = _r$7; $f._r$70 = _r$70; $f._r$71 = _r$71; $f._r$72 = _r$72; $f._r$73 = _r$73; $f._r$74 = _r$74; $f._r$75 = _r$75; $f._r$76 = _r$76; $f._r$77 = _r$77; $f._r$78 = _r$78; $f._r$79 = _r$79; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.c = c; $f.car = car; $f.cdr = cdr; $f.class1 = class1; $f.e = e; $f.err = err; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.l = l; $f.object = object; $f.s = s; $f.v = v; $f.v$1 = v$1; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Convert = Convert; Defconstant = function(e, name, form) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, e, err, err$1, form, name, ok, ret, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; err$1 = $f.err$1; form = $f.form; name = $f.name; ok = $f.ok; ret = $f.ret; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Symbol, new sliceType([name])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _tuple = $subslice(e.Constant, 0, 1).Get(name); ok = _tuple[1]; /* */ if (ok) { $s = 2; continue; } /* */ $s = 3; continue; /* if (ok) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewImmutableBinding($clone(e, env.Environment)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: _r$3 = Eval($clone(e, env.Environment), form); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$1 = _r$3; ret = _tuple$1[0]; err$1 = _tuple$1[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } $subslice(e.Constant, 0, 1).Define(name, ret); $s = -1; return [name, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Defconstant }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.form = form; $f.name = name; $f.ok = ok; $f.ret = ret; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Defconstant = Defconstant; Defglobal = function(e, name, form) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, e, err, err$1, form, name, ok, ret, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; err$1 = $f.err$1; form = $f.form; name = $f.name; ok = $f.ok; ret = $f.ret; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Symbol, new sliceType([name])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _tuple = $subslice(e.Constant, 0, 1).Get(name); ok = _tuple[1]; /* */ if (ok) { $s = 2; continue; } /* */ $s = 3; continue; /* if (ok) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewImmutableBinding($clone(e, env.Environment)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: _r$3 = Eval($clone(e, env.Environment), form); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$1 = _r$3; ret = _tuple$1[0]; err$1 = _tuple$1[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } $subslice(e.Variable, 0, 1).Define(name, ret); $s = -1; return [name, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Defglobal }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.form = form; $f.name = name; $f.ok = ok; $f.ret = ret; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Defglobal = Defglobal; Defdynamic = function(e, name, form) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, e, err, err$1, form, name, ok, ret, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; err$1 = $f.err$1; form = $f.form; name = $f.name; ok = $f.ok; ret = $f.ret; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Symbol, new sliceType([name])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _tuple = $subslice(e.Constant, 0, 1).Get(name); ok = _tuple[1]; /* */ if (ok) { $s = 2; continue; } /* */ $s = 3; continue; /* if (ok) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewImmutableBinding($clone(e, env.Environment)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: _r$3 = Eval($clone(e, env.Environment), form); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$1 = _r$3; ret = _tuple$1[0]; err$1 = _tuple$1[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } $subslice(e.DynamicVariable, 0, 1).Define(name, ret); $s = -1; return [name, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Defdynamic }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.form = form; $f.name = name; $f.ok = ok; $f.ret = ret; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Defdynamic = Defdynamic; Defun = function(e, functionName, lambdaList, forms) { var _r, _r$1, _tuple, e, err, err$1, forms, functionName, lambdaList, ret, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e = $f.e; err = $f.err; err$1 = $f.err$1; forms = $f.forms; functionName = $f.functionName; lambdaList = $f.lambdaList; ret = $f.ret; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Symbol, new sliceType([functionName])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = newNamedFunction($clone(e, env.Environment), functionName, lambdaList, forms); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; ret = _tuple[0]; err$1 = _tuple[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } $subslice(e.Function, 0, 1).Define(functionName, ret); $s = -1; return [functionName, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Defun }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.forms = forms; $f.functionName = functionName; $f.lambdaList = lambdaList; $f.ret = ret; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Defun = Defun; Dynamic = function(e, var1) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, _tuple$1, e, err, ok, ok$1, v, v$1, var1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; ok = $f.ok; ok$1 = $f.ok$1; v = $f.v; v$1 = $f.v$1; var1 = $f.var1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Symbol, new sliceType([var1])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _tuple = e.DynamicVariable.Get(var1); v = _tuple[0]; ok = _tuple[1]; if (ok) { $s = -1; return [v, $ifaceNil]; } _tuple$1 = e.DynamicVariable.Get(var1); v$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1) { $s = -1; return [v$1, $ifaceNil]; } _arg = $clone(e, env.Environment); _r$1 = instance.NewUndefinedVariable($clone(e, env.Environment), var1); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* */ } return; } if ($f === undefined) { $f = { $blk: Dynamic }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.ok = ok; $f.ok$1 = ok$1; $f.v = v; $f.v$1 = v$1; $f.var1 = var1; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Dynamic = Dynamic; SetDynamic = function(e, form, var1) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, e, err, err$1, form, var1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; e = $f.e; err = $f.err; err$1 = $f.err$1; form = $f.form; var1 = $f.var1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Symbol, new sliceType([var1])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = Eval($clone(e, env.Environment), form); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; form = _tuple[0]; err$1 = _tuple[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, form]; } if (e.DynamicVariable.Set(var1, form)) { $s = -1; return [form, $ifaceNil]; } if (e.DynamicVariable.Set(var1, form)) { $s = -1; return [form, $ifaceNil]; } _arg = $clone(e, env.Environment); _r$2 = instance.NewUndefinedVariable($clone(e, env.Environment), var1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; _arg$2 = $pkg.Nil; _r$3 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* */ } return; } if ($f === undefined) { $f = { $blk: SetDynamic }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.form = form; $f.var1 = var1; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.SetDynamic = SetDynamic; DynamicLet = function(e, varForm, bodyForm) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _i, _i$1, _key, _keys, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, bodyForm, cadr, e, err, err$1, err$2, f, f$1, v, varForm, vfs, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _entry = $f._entry; _i = $f._i; _i$1 = $f._i$1; _key = $f._key; _keys = $f._keys; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _tuple = $f._tuple; bodyForm = $f.bodyForm; cadr = $f.cadr; e = $f.e; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; f$1 = $f.f$1; v = $f.v; varForm = $f.varForm; vfs = $f.vfs; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: vfs = $makeMap(ilos.Instance.keyFor, []); _r = ensure($clone(e, env.Environment), class$1.List, new sliceType([varForm])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = $assertType(varForm, instance.List).Slice(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _ref = _r$1; _i = 0; /* while (true) { */ case 3: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } cadr = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$2 = ensure($clone(e, env.Environment), class$1.List, new sliceType([cadr])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } err$1 = _r$2; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _r$3 = $assertType(cadr, instance.List).Length(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (!((_r$3 === 2))) { $s = 6; continue; } /* */ $s = 7; continue; /* if (!((_r$3 === 2))) { */ case 6: _arg = $clone(e, env.Environment); _r$4 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$1 = _r$4; _arg$2 = $pkg.Nil; _r$5 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } */ case 7: _arg$3 = $clone(e, env.Environment); _r$6 = $assertType(cadr, instance.List).Nth(1); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _arg$4 = _r$6; _r$7 = Eval(_arg$3, _arg$4); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple = _r$7; f = _tuple[0]; err$2 = _tuple[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } _r$8 = $assertType(cadr, instance.List).Nth(0); /* */ $s = 13; case 13: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _key = _r$8; (vfs || $throwRuntimeError("assignment to entry in nil map"))[ilos.Instance.keyFor(_key)] = { k: _key, v: f }; _i++; /* } */ $s = 3; continue; case 4: _ref$1 = vfs; _i$1 = 0; _keys = $keys(_ref$1); /* while (true) { */ case 14: /* if (!(_i$1 < _keys.length)) { break; } */ if(!(_i$1 < _keys.length)) { $s = 15; continue; } _entry = _ref$1[_keys[_i$1]]; if (_entry === undefined) { _i$1++; /* continue; */ $s = 14; continue; } v = _entry.k; f$1 = _entry.v; /* */ if (!e.DynamicVariable.Define(v, f$1)) { $s = 16; continue; } /* */ $s = 17; continue; /* if (!e.DynamicVariable.Define(v, f$1)) { */ case 16: _arg$5 = $clone(e, env.Environment); _r$9 = instance.NewImmutableBinding($clone(e, env.Environment)); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _arg$6 = _r$9; _arg$7 = $pkg.Nil; _r$10 = SignalCondition(_arg$5, _arg$6, _arg$7); /* */ $s = 19; case 19: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } $s = -1; return _r$10; /* } */ case 17: _i$1++; /* } */ $s = 14; continue; case 15: _r$11 = Progn($clone(e, env.Environment), bodyForm); /* */ $s = 20; case 20: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } $s = -1; return _r$11; /* */ } return; } if ($f === undefined) { $f = { $blk: DynamicLet }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._entry = _entry; $f._i = _i; $f._i$1 = _i$1; $f._key = _key; $f._keys = _keys; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f.bodyForm = bodyForm; $f.cadr = cadr; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.f$1 = f$1; $f.v = v; $f.varForm = varForm; $f.vfs = vfs; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.DynamicLet = DynamicLet; isComparable = function(t) { var _r, _r$1, _r$2, _r$3, _r$4, _r$5, i, t, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; i = $f.i; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = t.Comparable(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: _r$1 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1 === 20) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_r$1 === 20) { */ case 4: $s = -1; return false; /* } */ case 5: _r$2 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (_r$2 === 25) { $s = 7; continue; } /* */ $s = 8; continue; /* if (_r$2 === 25) { */ case 7: i = 0; /* while (true) { */ case 10: _r$3 = t.NumField(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* if (!(i < _r$3)) { break; } */ if(!(i < _r$3)) { $s = 11; continue; } _r$4 = t.Field(i); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _r$5 = isComparable(_r$4.Type); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } /* */ if (!_r$5) { $s = 13; continue; } /* */ $s = 14; continue; /* if (!_r$5) { */ case 13: $s = -1; return false; /* } */ case 14: i = i + (1) >> 0; /* } */ $s = 10; continue; case 11: /* } */ case 8: $s = -1; return true; /* } */ case 2: $s = -1; return false; /* */ } return; } if ($f === undefined) { $f = { $blk: isComparable }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.i = i; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; }; Eq = function(e, obj1, obj2) { var _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _v, _v$1, e, obj1, obj2, v1, v2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _v = $f._v; _v$1 = $f._v$1; e = $f.e; obj1 = $f.obj1; obj2 = $f.obj2; v1 = $f.v1; v2 = $f.v2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = reflect.ValueOf(obj1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tmp = _r; _r$1 = reflect.ValueOf(obj2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tmp$1 = _r$1; v1 = _tmp; v2 = _tmp$1; if ($equal(v1, v2, reflect.Value)) { _v = true; $s = 5; continue s; } _r$2 = ilos.InstanceOf(class$1.Symbol, obj1); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } if (!(_r$2)) { _v$1 = false; $s = 6; continue s; } _r$3 = ilos.InstanceOf(class$1.Symbol, obj2); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _v$1 = _r$3; case 6: _v = _v$1 && $interfaceIsEqual(obj1, obj2); case 5: /* */ if (_v) { $s = 3; continue; } /* */ $s = 4; continue; /* if (_v) { */ case 3: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 4: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Eq }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._v = _v; $f._v$1 = _v$1; $f.e = e; $f.obj1 = obj1; $f.obj2 = obj2; $f.v1 = v1; $f.v2 = v2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Eq = Eq; Eql = function(e, obj1, obj2) { var _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, e, obj1, obj2, t1, t2, v1, v2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _v = $f._v; e = $f.e; obj1 = $f.obj1; obj2 = $f.obj2; t1 = $f.t1; t2 = $f.t2; v1 = $f.v1; v2 = $f.v2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tmp = reflect.TypeOf(obj1); _tmp$1 = reflect.TypeOf(obj2); t1 = _tmp; t2 = _tmp$1; _r = isComparable(t1); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } if (_r) { _v = true; $s = 3; continue s; } _r$1 = isComparable(t2); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _v = _r$1; case 3: /* */ if (_v) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_v) { */ case 1: if ($interfaceIsEqual(obj1, obj2)) { $s = -1; return [$pkg.T, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* } */ case 2: _r$2 = reflect.ValueOf(obj1); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tmp$2 = _r$2; _r$3 = reflect.ValueOf(obj2); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tmp$3 = _r$3; v1 = _tmp$2; v2 = _tmp$3; if ($equal(v1, v2, reflect.Value)) { $s = -1; return [$pkg.T, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Eql }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._v = _v; $f.e = e; $f.obj1 = obj1; $f.obj2 = obj2; $f.t1 = t1; $f.t2 = t2; $f.v1 = v1; $f.v2 = v2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Eql = Eql; Equal = function(e, obj1, obj2) { var _r, e, obj1, obj2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj1 = $f.obj1; obj2 = $f.obj2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = reflect.DeepEqual(obj1, obj2); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Equal }; } $f._r = _r; $f.e = e; $f.obj1 = obj1; $f.obj2 = obj2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Equal = Equal; evalArguments = function(e, arguments$1) { var _r, _r$1, _r$2, _tuple, _tuple$1, a, arguments$1, b, car, cdr, e, err, err$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; arguments$1 = $f.arguments$1; b = $f.b; car = $f.car; cdr = $f.cdr; e = $f.e; err = $f.err; err$1 = $f.err$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: if ($interfaceIsEqual(arguments$1, $pkg.Nil)) { $s = -1; return [$pkg.Nil, $ifaceNil]; } _r = ensure($clone(e, env.Environment), class$1.Cons, new sliceType([arguments$1])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } car = $assertType(arguments$1, ptrType$1).Car; cdr = $assertType(arguments$1, ptrType$1).Cdr; _r$1 = Eval($clone(e, env.Environment), car); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; a = _tuple[0]; err$1 = _tuple[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _r$2 = evalArguments($clone(e, env.Environment), cdr); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; b = _tuple$1[0]; err$1 = _tuple$1[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } $s = -1; return [instance.NewCons(a, b), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: evalArguments }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.arguments$1 = arguments$1; $f.b = b; $f.car = car; $f.cdr = cdr; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.$s = $s; $f.$r = $r; return $f; }; evalLambda = function(e, car, cdr) { var _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, arguments$1, caar, car, cdr, e, err, fun, ret, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; arguments$1 = $f.arguments$1; caar = $f.caar; car = $f.car; cdr = $f.cdr; e = $f.e; err = $f.err; fun = $f.fun; ret = $f.ret; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.Cons, car); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: caar = $assertType(car, ptrType$1).Car; /* */ if ($interfaceIsEqual(caar, instance.NewSymbol("LAMBDA"))) { $s = 4; continue; } /* */ $s = 5; continue; /* if ($interfaceIsEqual(caar, instance.NewSymbol("LAMBDA"))) { */ case 4: _r$1 = Eval($clone(e, env.Environment), car); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; fun = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err, true]; } _r$2 = evalArguments($clone(e, env.Environment), cdr); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; arguments$1 = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err, true]; } _arg = $clone(e.NewDynamic(), env.Environment); _r$3 = $assertType(arguments$1, instance.List).Slice(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$1 = _r$3; _r$4 = $assertType(fun, instance.Applicable).Apply(_arg, _arg$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$2 = _r$4; ret = _tuple$2[0]; err = _tuple$2[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err, true]; } $s = -1; return [ret, $ifaceNil, true]; /* } */ case 5: /* } */ case 2: $s = -1; return [$ifaceNil, $ifaceNil, false]; /* */ } return; } if ($f === undefined) { $f = { $blk: evalLambda }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.arguments$1 = arguments$1; $f.caar = caar; $f.car = car; $f.cdr = cdr; $f.e = e; $f.err = err; $f.fun = fun; $f.ret = ret; $f.$s = $s; $f.$r = $r; return $f; }; evalSpecial = function(e, car, cdr) { var _arg, _arg$1, _r, _r$1, _tuple, _tuple$1, car, cdr, e, err, ok, ret, s, spl, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; car = $f.car; cdr = $f.cdr; e = $f.e; err = $f.err; ok = $f.ok; ret = $f.ret; s = $f.s; spl = $f.spl; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: spl = $ifaceNil; _tuple = e.Special.Get(car); s = _tuple[0]; ok = _tuple[1]; if (ok) { spl = s; } /* */ if (!($interfaceIsEqual(spl, $ifaceNil))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!($interfaceIsEqual(spl, $ifaceNil))) { */ case 1: _arg = $clone(e.NewLexical(), env.Environment); _r = $assertType(cdr, instance.List).Slice(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; _r$1 = $assertType(spl, instance.Applicable).Apply(_arg, _arg$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; ret = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err, true]; } $s = -1; return [ret, $ifaceNil, true]; /* } */ case 2: $s = -1; return [$ifaceNil, $ifaceNil, false]; /* */ } return; } if ($f === undefined) { $f = { $blk: evalSpecial }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.car = car; $f.cdr = cdr; $f.e = e; $f.err = err; $f.ok = ok; $f.ret = ret; $f.s = s; $f.spl = spl; $f.$s = $s; $f.$r = $r; return $f; }; evalMacro = function(e, car, cdr) { var _arg, _arg$1, _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, car, cdr, e, err, m, mac, ok, ret, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; car = $f.car; cdr = $f.cdr; e = $f.e; err = $f.err; m = $f.m; mac = $f.mac; ok = $f.ok; ret = $f.ret; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: mac = $ifaceNil; _tuple = e.Macro.Get(car); m = _tuple[0]; ok = _tuple[1]; if (ok) { mac = m; } /* */ if (!($interfaceIsEqual(mac, $ifaceNil))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!($interfaceIsEqual(mac, $ifaceNil))) { */ case 1: _arg = $clone(e.NewDynamic(), env.Environment); _r = $assertType(cdr, instance.List).Slice(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; _r$1 = $assertType(mac, instance.Applicable).Apply(_arg, _arg$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; ret = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err, true]; } _r$2 = Eval($clone(e, env.Environment), ret); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$2 = _r$2; ret = _tuple$2[0]; err = _tuple$2[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err, true]; } $s = -1; return [ret, $ifaceNil, true]; /* } */ case 2: $s = -1; return [$ifaceNil, $ifaceNil, false]; /* */ } return; } if ($f === undefined) { $f = { $blk: evalMacro }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.car = car; $f.cdr = cdr; $f.e = e; $f.err = err; $f.m = m; $f.mac = mac; $f.ok = ok; $f.ret = ret; $f.$s = $s; $f.$r = $r; return $f; }; evalFunction = function(e, car, cdr) { var _arg, _arg$1, _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, arguments$1, car, cdr, e, err, f, fun, ok, ret, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; arguments$1 = $f.arguments$1; car = $f.car; cdr = $f.cdr; e = $f.e; err = $f.err; f = $f.f; fun = $f.fun; ok = $f.ok; ret = $f.ret; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: fun = $ifaceNil; _tuple = e.Function.Get(car); f = _tuple[0]; ok = _tuple[1]; if (ok) { fun = f; } /* */ if (!($interfaceIsEqual(fun, $ifaceNil))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!($interfaceIsEqual(fun, $ifaceNil))) { */ case 1: _r = evalArguments($clone(e, env.Environment), cdr); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple$1 = _r; arguments$1 = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err, true]; } _arg = $clone(e.NewDynamic(), env.Environment); _r$1 = $assertType(arguments$1, instance.List).Slice(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _r$2 = $assertType(fun, instance.Applicable).Apply(_arg, _arg$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$2 = _r$2; ret = _tuple$2[0]; err = _tuple$2[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err, true]; } $s = -1; return [ret, $ifaceNil, true]; /* } */ case 2: $s = -1; return [$ifaceNil, $ifaceNil, false]; /* */ } return; } if ($f === undefined) { $f = { $blk: evalFunction }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.arguments$1 = arguments$1; $f.car = car; $f.cdr = cdr; $f.e = e; $f.err = err; $f.f = f; $f.fun = fun; $f.ok = ok; $f.ret = ret; $f.$s = $s; $f.$r = $r; return $f; }; evalCons = function(e, obj) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _tuple$3, a, a$1, a$2, a$3, b, b$1, b$2, b$3, c, c$1, c$2, c$3, car, cdr, e, err, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; a = $f.a; a$1 = $f.a$1; a$2 = $f.a$2; a$3 = $f.a$3; b = $f.b; b$1 = $f.b$1; b$2 = $f.b$2; b$3 = $f.b$3; c = $f.c; c$1 = $f.c$1; c$2 = $f.c$2; c$3 = $f.c$3; car = $f.car; cdr = $f.cdr; e = $f.e; err = $f.err; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Cons, new sliceType([obj])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } car = $assertType(obj, ptrType$1).Car; cdr = $assertType(obj, ptrType$1).Cdr; _r$1 = evalLambda($clone(e, env.Environment), car, cdr); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; a = _tuple[0]; b = _tuple[1]; c = _tuple[2]; if (c) { $s = -1; return [a, b]; } _r$2 = evalSpecial($clone(e, env.Environment), car, cdr); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; a$1 = _tuple$1[0]; b$1 = _tuple$1[1]; c$1 = _tuple$1[2]; if (c$1) { $s = -1; return [a$1, b$1]; } _r$3 = evalMacro($clone(e, env.Environment), car, cdr); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$2 = _r$3; a$2 = _tuple$2[0]; b$2 = _tuple$2[1]; c$2 = _tuple$2[2]; if (c$2) { $s = -1; return [a$2, b$2]; } _r$4 = evalFunction($clone(e, env.Environment), car, cdr); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$3 = _r$4; a$3 = _tuple$3[0]; b$3 = _tuple$3[1]; c$3 = _tuple$3[2]; if (c$3) { $s = -1; return [a$3, b$3]; } _arg = $clone(e, env.Environment); _r$5 = instance.NewUndefinedFunction($clone(e, env.Environment), car); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$1 = _r$5; _arg$2 = $pkg.Nil; _r$6 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 7; case 7: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* */ } return; } if ($f === undefined) { $f = { $blk: evalCons }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.a = a; $f.a$1 = a$1; $f.a$2 = a$2; $f.a$3 = a$3; $f.b = b; $f.b$1 = b$1; $f.b$2 = b$2; $f.b$3 = b$3; $f.c = c; $f.c$1 = c$1; $f.c$2 = c$2; $f.c$3 = c$3; $f.car = car; $f.cdr = cdr; $f.e = e; $f.err = err; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; evalVariable = function(e, obj) { var _arg, _arg$1, _arg$2, _r, _r$1, _tuple, _tuple$1, e, obj, ok, ok$1, val, val$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; obj = $f.obj; ok = $f.ok; ok$1 = $f.ok$1; val = $f.val; val$1 = $f.val$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tuple = e.Variable.Get(obj); val = _tuple[0]; ok = _tuple[1]; if (ok) { $s = -1; return [val, $ifaceNil]; } _tuple$1 = e.Constant.Get(obj); val$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1) { $s = -1; return [val$1, $ifaceNil]; } _arg = $clone(e, env.Environment); _r = instance.NewUndefinedVariable($clone(e, env.Environment), obj); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; _arg$2 = $pkg.Nil; _r$1 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: evalVariable }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.obj = obj; $f.ok = ok; $f.ok$1 = ok$1; $f.val = val; $f.val$1 = val$1; $f.$s = $s; $f.$r = $r; return $f; }; Eval = function(e, obj) { var _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, e, err, err$1, obj, ret, ret$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; err$1 = $f.err$1; obj = $f.obj; ret = $f.ret; ret$1 = $f.ret$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: if ($interfaceIsEqual(obj, $pkg.Nil)) { $s = -1; return [$pkg.Nil, $ifaceNil]; } _r = ilos.InstanceOf(class$1.Symbol, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: _r$1 = evalVariable($clone(e, env.Environment), obj); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; ret = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [ret, $ifaceNil]; /* } */ case 2: _r$2 = ilos.InstanceOf(class$1.Cons, obj); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (_r$2) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_r$2) { */ case 5: _r$3 = evalCons($clone(e, env.Environment), obj); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$1 = _r$3; ret$1 = _tuple$1[0]; err$1 = _tuple$1[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } $s = -1; return [ret$1, $ifaceNil]; /* } */ case 6: $s = -1; return [obj, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Eval }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.obj = obj; $f.ret = ret; $f.ret$1 = ret$1; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Eval = Eval; Floatp = function(e, obj) { var _r, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.Float, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Floatp }; } $f._r = _r; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Floatp = Floatp; Float = function(e, x) { var _r, _tuple, e, err, f, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; e = $f.e; err = $f.err; f = $f.f; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [instance.NewFloat(f), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Float }; } $f._r = _r; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.f = f; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Float = Float; Floor = function(e, x) { var _r, _tuple, e, err, f, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; e = $f.e; err = $f.err; f = $f.f; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [instance.NewInteger(((math.Floor(f) >> 0))), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Floor }; } $f._r = _r; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.f = f; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Floor = Floor; Ceiling = function(e, x) { var _r, _tuple, e, err, f, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; e = $f.e; err = $f.err; f = $f.f; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [instance.NewInteger(((math.Ceil(f) >> 0))), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Ceiling }; } $f._r = _r; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.f = f; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Ceiling = Ceiling; Truncate = function(e, x) { var _r, _tuple, e, err, f, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; e = $f.e; err = $f.err; f = $f.f; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [instance.NewInteger(((math.Trunc(f) >> 0))), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Truncate }; } $f._r = _r; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.f = f; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Truncate = Truncate; Round = function(e, x) { var _r, _tuple, e, err, f, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; e = $f.e; err = $f.err; f = $f.f; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [instance.NewInteger(((math.Floor(f + 0.5) >> 0))), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Round }; } $f._r = _r; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.f = f; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Round = Round; FormatObject = function(e, stream, object, escapep) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, e, escapep, object, ok, ok$1, ok$2, stream, x, x$1, x$2, x$3, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; e = $f.e; escapep = $f.escapep; object = $f.object; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; stream = $f.stream; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tuple = OpenStreamP($clone(e, env.Environment), stream); ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 1; continue; } /* */ $s = 2; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 1: _arg = $clone(e, env.Environment); _r = instance.NewDomainError($clone(e, env.Environment), stream, class$1.Stream); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; _arg$2 = $pkg.Nil; _r$1 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 2: /* */ if ($interfaceIsEqual(escapep, $pkg.T)) { $s = 5; continue; } /* */ $s = 6; continue; /* if ($interfaceIsEqual(escapep, $pkg.T)) { */ case 5: _r$2 = fmt.Fprint((x = $assertType(stream, instance.Stream), new x.constructor.elem(x)), new sliceType$3([object])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; $s = -1; return [$pkg.Nil, $ifaceNil]; /* } */ case 6: _r$3 = Stringp($clone(e, env.Environment), object); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$1 = _r$3; ok$1 = _tuple$1[0]; /* */ if ($interfaceIsEqual(ok$1, $pkg.T)) { $s = 9; continue; } /* */ $s = 10; continue; /* if ($interfaceIsEqual(ok$1, $pkg.T)) { */ case 9: _r$4 = fmt.Fprint((x$1 = $assertType(stream, instance.Stream), new x$1.constructor.elem(x$1)), new sliceType$3([new $String(($runesToString($assertType(object, instance.String))))])); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _r$4; $s = -1; return [$pkg.Nil, $ifaceNil]; /* } */ case 10: _r$5 = Characterp($clone(e, env.Environment), object); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$2 = _r$5; ok$2 = _tuple$2[0]; /* */ if ($interfaceIsEqual(ok$2, $pkg.T)) { $s = 13; continue; } /* */ $s = 14; continue; /* if ($interfaceIsEqual(ok$2, $pkg.T)) { */ case 13: _r$6 = fmt.Fprint((x$2 = $assertType(stream, instance.Stream), new x$2.constructor.elem(x$2)), new sliceType$3([new $String(($encodeRune($assertType(object, instance.Character))))])); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _r$6; $s = -1; return [$pkg.Nil, $ifaceNil]; /* } */ case 14: _r$7 = fmt.Fprint((x$3 = $assertType(stream, instance.Stream), new x$3.constructor.elem(x$3)), new sliceType$3([object])); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _r$7; $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: FormatObject }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.e = e; $f.escapep = escapep; $f.object = object; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.stream = stream; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.FormatObject = FormatObject; FormatChar = function(e, stream, object) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, e, object, ok, ok$1, stream, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; object = $f.object; ok = $f.ok; ok$1 = $f.ok$1; stream = $f.stream; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tuple = OpenStreamP($clone(e, env.Environment), stream); ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 1; continue; } /* */ $s = 2; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 1: _arg = $clone(e, env.Environment); _r = instance.NewDomainError($clone(e, env.Environment), stream, class$1.Stream); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; _arg$2 = $pkg.Nil; _r$1 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 2: _r$2 = Characterp($clone(e, env.Environment), object); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; ok$1 = _tuple$1[0]; /* */ if ($interfaceIsEqual(ok$1, $pkg.Nil)) { $s = 6; continue; } /* */ $s = 7; continue; /* if ($interfaceIsEqual(ok$1, $pkg.Nil)) { */ case 6: _arg$3 = $clone(e, env.Environment); _r$3 = instance.NewDomainError($clone(e, env.Environment), object, class$1.Character); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$4 = _r$3; _arg$5 = $pkg.Nil; _r$4 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 7: _r$5 = fmt.Fprint((x = $assertType(stream, instance.Stream), new x.constructor.elem(x)), new sliceType$3([new $String(($encodeRune($assertType(object, instance.Character))))])); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _r$5; $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: FormatChar }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.object = object; $f.ok = ok; $f.ok$1 = ok$1; $f.stream = stream; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.FormatChar = FormatChar; FormatFloat = function(e, stream, object) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, e, object, ok, ok$1, stream, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; object = $f.object; ok = $f.ok; ok$1 = $f.ok$1; stream = $f.stream; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tuple = OpenStreamP($clone(e, env.Environment), stream); ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 1; continue; } /* */ $s = 2; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 1: _arg = $clone(e, env.Environment); _r = instance.NewDomainError($clone(e, env.Environment), stream, class$1.Stream); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; _arg$2 = $pkg.Nil; _r$1 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 2: _r$2 = Floatp($clone(e, env.Environment), object); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; ok$1 = _tuple$1[0]; /* */ if ($interfaceIsEqual(ok$1, $pkg.Nil)) { $s = 6; continue; } /* */ $s = 7; continue; /* if ($interfaceIsEqual(ok$1, $pkg.Nil)) { */ case 6: _arg$3 = $clone(e, env.Environment); _r$3 = instance.NewDomainError($clone(e, env.Environment), object, class$1.Float); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$4 = _r$3; _arg$5 = $pkg.Nil; _r$4 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 7: _r$5 = fmt.Fprint((x = $assertType(stream, instance.Stream), new x.constructor.elem(x)), new sliceType$3([new $Float64(($assertType(object, instance.Float)))])); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _r$5; $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: FormatFloat }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.object = object; $f.ok = ok; $f.ok$1 = ok$1; $f.stream = stream; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.FormatFloat = FormatFloat; FormatInteger = function(e, stream, object, radix) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _tuple$2, e, i, object, ok, ok$1, ok$2, r, radix, stream, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _arg$8 = $f._arg$8; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; e = $f.e; i = $f.i; object = $f.object; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; r = $f.r; radix = $f.radix; stream = $f.stream; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tuple = OpenStreamP($clone(e, env.Environment), stream); ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 1; continue; } /* */ $s = 2; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 1: _arg = $clone(e, env.Environment); _r = instance.NewDomainError($clone(e, env.Environment), stream, class$1.Stream); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; _arg$2 = $pkg.Nil; _r$1 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 2: _r$2 = Integerp($clone(e, env.Environment), object); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; ok$1 = _tuple$1[0]; /* */ if ($interfaceIsEqual(ok$1, $pkg.Nil)) { $s = 6; continue; } /* */ $s = 7; continue; /* if ($interfaceIsEqual(ok$1, $pkg.Nil)) { */ case 6: _arg$3 = $clone(e, env.Environment); _r$3 = instance.NewDomainError($clone(e, env.Environment), object, class$1.Integer); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$4 = _r$3; _arg$5 = $pkg.Nil; _r$4 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 7: _r$5 = Integerp($clone(e, env.Environment), radix); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$2 = _r$5; ok$2 = _tuple$2[0]; /* */ if ($interfaceIsEqual(ok$2, $pkg.Nil)) { $s = 11; continue; } /* */ $s = 12; continue; /* if ($interfaceIsEqual(ok$2, $pkg.Nil)) { */ case 11: _arg$6 = $clone(e, env.Environment); _r$6 = instance.NewDomainError($clone(e, env.Environment), radix, class$1.Integer); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _arg$7 = _r$6; _arg$8 = $pkg.Nil; _r$7 = SignalCondition(_arg$6, _arg$7, _arg$8); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $s = -1; return _r$7; /* } */ case 12: i = (($assertType(object, instance.Integer) >> 0)); r = (($assertType(radix, instance.Integer) >> 0)); _r$8 = fmt.Fprint((x = $assertType(stream, instance.Stream), new x.constructor.elem(x)), new sliceType$3([new $String(strconv.FormatInt((new $Int64(0, i)), r))])); /* */ $s = 15; case 15: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _r$8; $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: FormatInteger }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._arg$8 = _arg$8; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.e = e; $f.i = i; $f.object = object; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.r = r; $f.radix = radix; $f.stream = stream; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.FormatInteger = FormatInteger; FormatTab = function(e, stream, num) { var _r, _r$1, _tuple, e, err, i, n, num, stream, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e = $f.e; err = $f.err; i = $f.i; n = $f.n; num = $f.num; stream = $f.stream; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: n = (($assertType(num, instance.Integer) >> 0)); /* */ if ($assertType(stream, instance.Stream).Column.$get() < n) { $s = 1; continue; } /* */ $s = 2; continue; /* if ($assertType(stream, instance.Stream).Column.$get() < n) { */ case 1: i = $assertType(stream, instance.Stream).Column.$get(); /* while (true) { */ case 3: /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 4; continue; } _r = FormatChar($clone(e, env.Environment), stream, instance.NewCharacter(32)); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } i = i + (1) >> 0; /* } */ $s = 3; continue; case 4: $s = -1; return [$pkg.Nil, $ifaceNil]; /* } */ case 2: _r$1 = FormatChar($clone(e, env.Environment), stream, instance.NewCharacter(32)); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: FormatTab }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.i = i; $f.n = n; $f.num = num; $f.stream = stream; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.FormatTab = FormatTab; FormatFreshLine = function(e, stream) { var _r, e, stream, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; stream = $f.stream; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: /* */ if (!(($assertType(stream, instance.Stream).Column.$get() === 0))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!(($assertType(stream, instance.Stream).Column.$get() === 0))) { */ case 1: _r = FormatChar($clone(e, env.Environment), stream, instance.NewCharacter(10)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: FormatFreshLine }; } $f._r = _r; $f.e = e; $f.stream = stream; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.FormatFreshLine = FormatFreshLine; Format = function(e, stream, formatString, formatArguments) { var _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, base, e, end, err, err$1, formatArguments, formatString, index, loc, n, n$1, ok, re, s, start, str, stream, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$10 = $f._arg$10; _arg$11 = $f._arg$11; _arg$12 = $f._arg$12; _arg$13 = $f._arg$13; _arg$14 = $f._arg$14; _arg$15 = $f._arg$15; _arg$16 = $f._arg$16; _arg$17 = $f._arg$17; _arg$18 = $f._arg$18; _arg$19 = $f._arg$19; _arg$2 = $f._arg$2; _arg$20 = $f._arg$20; _arg$21 = $f._arg$21; _arg$22 = $f._arg$22; _arg$23 = $f._arg$23; _arg$24 = $f._arg$24; _arg$25 = $f._arg$25; _arg$26 = $f._arg$26; _arg$27 = $f._arg$27; _arg$28 = $f._arg$28; _arg$29 = $f._arg$29; _arg$3 = $f._arg$3; _arg$30 = $f._arg$30; _arg$31 = $f._arg$31; _arg$32 = $f._arg$32; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _arg$8 = $f._arg$8; _arg$9 = $f._arg$9; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$20 = $f._r$20; _r$21 = $f._r$21; _r$22 = $f._r$22; _r$23 = $f._r$23; _r$24 = $f._r$24; _r$25 = $f._r$25; _r$26 = $f._r$26; _r$27 = $f._r$27; _r$28 = $f._r$28; _r$29 = $f._r$29; _r$3 = $f._r$3; _r$30 = $f._r$30; _r$31 = $f._r$31; _r$32 = $f._r$32; _r$33 = $f._r$33; _r$34 = $f._r$34; _r$35 = $f._r$35; _r$36 = $f._r$36; _r$37 = $f._r$37; _r$38 = $f._r$38; _r$39 = $f._r$39; _r$4 = $f._r$4; _r$40 = $f._r$40; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$10 = $f._tuple$10; _tuple$11 = $f._tuple$11; _tuple$12 = $f._tuple$12; _tuple$13 = $f._tuple$13; _tuple$14 = $f._tuple$14; _tuple$15 = $f._tuple$15; _tuple$16 = $f._tuple$16; _tuple$17 = $f._tuple$17; _tuple$18 = $f._tuple$18; _tuple$19 = $f._tuple$19; _tuple$2 = $f._tuple$2; _tuple$20 = $f._tuple$20; _tuple$21 = $f._tuple$21; _tuple$22 = $f._tuple$22; _tuple$23 = $f._tuple$23; _tuple$24 = $f._tuple$24; _tuple$25 = $f._tuple$25; _tuple$26 = $f._tuple$26; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; _tuple$8 = $f._tuple$8; _tuple$9 = $f._tuple$9; base = $f.base; e = $f.e; end = $f.end; err = $f.err; err$1 = $f.err$1; formatArguments = $f.formatArguments; formatString = $f.formatString; index = $f.index; loc = $f.loc; n = $f.n; n$1 = $f.n$1; ok = $f.ok; re = $f.re; s = $f.s; start = $f.start; str = $f.str; stream = $f.stream; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Stringp($clone(e, env.Environment), formatString); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), formatString, class$1.String); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: str = ($runesToString($assertType(formatString, instance.String))); _r$3 = regexp.MustCompile("~(?:[0-9]+[RT]|.)"); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } re = _r$3; _tmp = 0; _tmp$1 = 0; _tmp$2 = 0; start = _tmp; end = _tmp$1; index = _tmp$2; _r$4 = re.FindStringIndex($substring(str, start)); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } loc = _r$4; /* while (true) { */ case 8: /* if (!(!(loc === sliceType$5.nil))) { break; } */ if(!(!(loc === sliceType$5.nil))) { $s = 9; continue; } base = start; start = base + 0 >> 0; end = base + (0 >= loc.$length ? ($throwRuntimeError("index out of range"), undefined) : loc.$array[loc.$offset + 0]) >> 0; _r$5 = FormatObject($clone(e, env.Environment), stream, instance.NewString((new sliceType$4($stringToRunes($substring(str, start, end))))), $pkg.Nil); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$1 = _r$5; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } start = base + (0 >= loc.$length ? ($throwRuntimeError("index out of range"), undefined) : loc.$array[loc.$offset + 0]) >> 0; end = base + (1 >= loc.$length ? ($throwRuntimeError("index out of range"), undefined) : loc.$array[loc.$offset + 1]) >> 0; err$1 = $ifaceNil; _1 = $substring(str, start, end); /* */ if (_1 === ("~A")) { $s = 12; continue; } /* */ if (_1 === ("~B")) { $s = 13; continue; } /* */ if (_1 === ("~C")) { $s = 14; continue; } /* */ if (_1 === ("~D")) { $s = 15; continue; } /* */ if (_1 === ("~G")) { $s = 16; continue; } /* */ if (_1 === ("~O")) { $s = 17; continue; } /* */ if (_1 === ("~S")) { $s = 18; continue; } /* */ if (_1 === ("~X")) { $s = 19; continue; } /* */ if (_1 === ("~%")) { $s = 20; continue; } /* */ if (_1 === ("~&")) { $s = 21; continue; } /* */ if (_1 === ("~~")) { $s = 22; continue; } /* */ $s = 23; continue; /* if (_1 === ("~A")) { */ case 12: /* */ if (index >= formatArguments.$length) { $s = 25; continue; } /* */ $s = 26; continue; /* if (index >= formatArguments.$length) { */ case 25: _arg$3 = $clone(e, env.Environment); _r$6 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 28; case 28: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _arg$4 = _r$6; _arg$5 = $pkg.Nil; _r$7 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 29; case 29: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple$2 = _r$7; err$1 = _tuple$2[1]; $s = 27; continue; /* } else { */ case 26: _r$8 = FormatObject($clone(e, env.Environment), stream, ((index < 0 || index >= formatArguments.$length) ? ($throwRuntimeError("index out of range"), undefined) : formatArguments.$array[formatArguments.$offset + index]), $pkg.Nil); /* */ $s = 30; case 30: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _tuple$3 = _r$8; err$1 = _tuple$3[1]; index = index + (1) >> 0; /* } */ case 27: $s = 24; continue; /* } else if (_1 === ("~B")) { */ case 13: /* */ if (index >= formatArguments.$length) { $s = 31; continue; } /* */ $s = 32; continue; /* if (index >= formatArguments.$length) { */ case 31: _arg$6 = $clone(e, env.Environment); _r$9 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 34; case 34: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _arg$7 = _r$9; _arg$8 = $pkg.Nil; _r$10 = SignalCondition(_arg$6, _arg$7, _arg$8); /* */ $s = 35; case 35: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _tuple$4 = _r$10; err$1 = _tuple$4[1]; $s = 33; continue; /* } else { */ case 32: _r$11 = FormatInteger($clone(e, env.Environment), stream, ((index < 0 || index >= formatArguments.$length) ? ($throwRuntimeError("index out of range"), undefined) : formatArguments.$array[formatArguments.$offset + index]), instance.NewInteger(2)); /* */ $s = 36; case 36: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _tuple$5 = _r$11; err$1 = _tuple$5[1]; index = index + (1) >> 0; /* } */ case 33: $s = 24; continue; /* } else if (_1 === ("~C")) { */ case 14: /* */ if (index >= formatArguments.$length) { $s = 37; continue; } /* */ $s = 38; continue; /* if (index >= formatArguments.$length) { */ case 37: _arg$9 = $clone(e, env.Environment); _r$12 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } _arg$10 = _r$12; _arg$11 = $pkg.Nil; _r$13 = SignalCondition(_arg$9, _arg$10, _arg$11); /* */ $s = 41; case 41: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _tuple$6 = _r$13; err$1 = _tuple$6[1]; $s = 39; continue; /* } else { */ case 38: _r$14 = FormatChar($clone(e, env.Environment), stream, ((index < 0 || index >= formatArguments.$length) ? ($throwRuntimeError("index out of range"), undefined) : formatArguments.$array[formatArguments.$offset + index])); /* */ $s = 42; case 42: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } _tuple$7 = _r$14; err$1 = _tuple$7[1]; index = index + (1) >> 0; /* } */ case 39: $s = 24; continue; /* } else if (_1 === ("~D")) { */ case 15: /* */ if (index >= formatArguments.$length) { $s = 43; continue; } /* */ $s = 44; continue; /* if (index >= formatArguments.$length) { */ case 43: _arg$12 = $clone(e, env.Environment); _r$15 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 46; case 46: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } _arg$13 = _r$15; _arg$14 = $pkg.Nil; _r$16 = SignalCondition(_arg$12, _arg$13, _arg$14); /* */ $s = 47; case 47: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } _tuple$8 = _r$16; err$1 = _tuple$8[1]; $s = 45; continue; /* } else { */ case 44: _r$17 = FormatInteger($clone(e, env.Environment), stream, ((index < 0 || index >= formatArguments.$length) ? ($throwRuntimeError("index out of range"), undefined) : formatArguments.$array[formatArguments.$offset + index]), instance.NewInteger(10)); /* */ $s = 48; case 48: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } _tuple$9 = _r$17; err$1 = _tuple$9[1]; index = index + (1) >> 0; /* } */ case 45: $s = 24; continue; /* } else if (_1 === ("~G")) { */ case 16: /* */ if (index >= formatArguments.$length) { $s = 49; continue; } /* */ $s = 50; continue; /* if (index >= formatArguments.$length) { */ case 49: _arg$15 = $clone(e, env.Environment); _r$18 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 52; case 52: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } _arg$16 = _r$18; _arg$17 = $pkg.Nil; _r$19 = SignalCondition(_arg$15, _arg$16, _arg$17); /* */ $s = 53; case 53: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } _tuple$10 = _r$19; err$1 = _tuple$10[1]; $s = 51; continue; /* } else { */ case 50: _r$20 = FormatFloat($clone(e, env.Environment), stream, ((index < 0 || index >= formatArguments.$length) ? ($throwRuntimeError("index out of range"), undefined) : formatArguments.$array[formatArguments.$offset + index])); /* */ $s = 54; case 54: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } _tuple$11 = _r$20; err$1 = _tuple$11[1]; index = index + (1) >> 0; /* } */ case 51: $s = 24; continue; /* } else if (_1 === ("~O")) { */ case 17: /* */ if (index >= formatArguments.$length) { $s = 55; continue; } /* */ $s = 56; continue; /* if (index >= formatArguments.$length) { */ case 55: _arg$18 = $clone(e, env.Environment); _r$21 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 58; case 58: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } _arg$19 = _r$21; _arg$20 = $pkg.Nil; _r$22 = SignalCondition(_arg$18, _arg$19, _arg$20); /* */ $s = 59; case 59: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } _tuple$12 = _r$22; err$1 = _tuple$12[1]; $s = 57; continue; /* } else { */ case 56: _r$23 = FormatInteger($clone(e, env.Environment), stream, ((index < 0 || index >= formatArguments.$length) ? ($throwRuntimeError("index out of range"), undefined) : formatArguments.$array[formatArguments.$offset + index]), instance.NewInteger(8)); /* */ $s = 60; case 60: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } _tuple$13 = _r$23; err$1 = _tuple$13[1]; index = index + (1) >> 0; /* } */ case 57: $s = 24; continue; /* } else if (_1 === ("~S")) { */ case 18: /* */ if (index >= formatArguments.$length) { $s = 61; continue; } /* */ $s = 62; continue; /* if (index >= formatArguments.$length) { */ case 61: _arg$21 = $clone(e, env.Environment); _r$24 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 64; case 64: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } _arg$22 = _r$24; _arg$23 = $pkg.Nil; _r$25 = SignalCondition(_arg$21, _arg$22, _arg$23); /* */ $s = 65; case 65: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } _tuple$14 = _r$25; err$1 = _tuple$14[1]; $s = 63; continue; /* } else { */ case 62: _r$26 = FormatObject($clone(e, env.Environment), stream, ((index < 0 || index >= formatArguments.$length) ? ($throwRuntimeError("index out of range"), undefined) : formatArguments.$array[formatArguments.$offset + index]), $pkg.T); /* */ $s = 66; case 66: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } _tuple$15 = _r$26; err$1 = _tuple$15[1]; index = index + (1) >> 0; /* } */ case 63: $s = 24; continue; /* } else if (_1 === ("~X")) { */ case 19: /* */ if (index >= formatArguments.$length) { $s = 67; continue; } /* */ $s = 68; continue; /* if (index >= formatArguments.$length) { */ case 67: _arg$24 = $clone(e, env.Environment); _r$27 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 70; case 70: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } _arg$25 = _r$27; _arg$26 = $pkg.Nil; _r$28 = SignalCondition(_arg$24, _arg$25, _arg$26); /* */ $s = 71; case 71: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } _tuple$16 = _r$28; err$1 = _tuple$16[1]; $s = 69; continue; /* } else { */ case 68: _r$29 = FormatInteger($clone(e, env.Environment), stream, ((index < 0 || index >= formatArguments.$length) ? ($throwRuntimeError("index out of range"), undefined) : formatArguments.$array[formatArguments.$offset + index]), instance.NewInteger(16)); /* */ $s = 72; case 72: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } _tuple$17 = _r$29; err$1 = _tuple$17[1]; index = index + (1) >> 0; /* } */ case 69: $s = 24; continue; /* } else if (_1 === ("~%")) { */ case 20: _r$30 = FormatChar($clone(e, env.Environment), stream, instance.NewCharacter(10)); /* */ $s = 73; case 73: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } _tuple$18 = _r$30; err$1 = _tuple$18[1]; $s = 24; continue; /* } else if (_1 === ("~&")) { */ case 21: _r$31 = FormatFreshLine($clone(e, env.Environment), stream); /* */ $s = 74; case 74: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } _tuple$19 = _r$31; err$1 = _tuple$19[1]; $s = 24; continue; /* } else if (_1 === ("~~")) { */ case 22: _r$32 = FormatChar($clone(e, env.Environment), stream, instance.NewCharacter(126)); /* */ $s = 75; case 75: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } _tuple$20 = _r$32; err$1 = _tuple$20[1]; $s = 24; continue; /* } else { */ case 23: s = $substring(str, start, end); /* */ if (s.length > 2) { $s = 76; continue; } /* */ $s = 77; continue; /* if (s.length > 2) { */ case 76: /* */ if (s.charCodeAt((s.length - 1 >> 0)) === 82) { $s = 78; continue; } /* */ $s = 79; continue; /* if (s.charCodeAt((s.length - 1 >> 0)) === 82) { */ case 78: /* */ if (index >= formatArguments.$length) { $s = 80; continue; } /* */ $s = 81; continue; /* if (index >= formatArguments.$length) { */ case 80: _arg$27 = $clone(e, env.Environment); _r$33 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 83; case 83: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } _arg$28 = _r$33; _arg$29 = $pkg.Nil; _r$34 = SignalCondition(_arg$27, _arg$28, _arg$29); /* */ $s = 84; case 84: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } _tuple$21 = _r$34; err$1 = _tuple$21[1]; $s = 82; continue; /* } else { */ case 81: _tuple$22 = strconv.Atoi($substring(s, 1, (s.length - 1 >> 0))); n = _tuple$22[0]; /* */ if (n < 2 || 36 < n) { $s = 85; continue; } /* */ $s = 86; continue; /* if (n < 2 || 36 < n) { */ case 85: _arg$30 = $clone(e, env.Environment); _r$35 = instance.NewDomainError($clone(e, env.Environment), instance.NewInteger(n), class$1.Integer); /* */ $s = 88; case 88: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } _arg$31 = _r$35; _arg$32 = $pkg.Nil; _r$36 = SignalCondition(_arg$30, _arg$31, _arg$32); /* */ $s = 89; case 89: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } _tuple$23 = _r$36; err$1 = _tuple$23[1]; $s = 87; continue; /* } else { */ case 86: _r$37 = FormatInteger($clone(e, env.Environment), stream, ((index < 0 || index >= formatArguments.$length) ? ($throwRuntimeError("index out of range"), undefined) : formatArguments.$array[formatArguments.$offset + index]), instance.NewInteger(n)); /* */ $s = 90; case 90: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } _tuple$24 = _r$37; err$1 = _tuple$24[1]; index = index + (1) >> 0; /* } */ case 87: /* } */ case 82: /* } */ case 79: /* */ if (s.charCodeAt((s.length - 1 >> 0)) === 84) { $s = 91; continue; } /* */ $s = 92; continue; /* if (s.charCodeAt((s.length - 1 >> 0)) === 84) { */ case 91: _tuple$25 = strconv.Atoi($substring(s, 1, (s.length - 1 >> 0))); n$1 = _tuple$25[0]; _r$38 = FormatTab($clone(e, env.Environment), stream, instance.NewInteger(n$1)); /* */ $s = 93; case 93: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } _tuple$26 = _r$38; err$1 = _tuple$26[1]; /* } */ case 92: /* } */ case 77: /* } */ case 24: case 11: if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } start = end; _r$39 = re.FindStringIndex($substring(str, start)); /* */ $s = 94; case 94: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } loc = _r$39; /* } */ $s = 8; continue; case 9: _r$40 = FormatObject($clone(e, env.Environment), stream, instance.NewString((new sliceType$4($stringToRunes($substring(str, start))))), $pkg.Nil); /* */ $s = 95; case 95: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } $s = -1; return _r$40; /* */ } return; } if ($f === undefined) { $f = { $blk: Format }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$10 = _arg$10; $f._arg$11 = _arg$11; $f._arg$12 = _arg$12; $f._arg$13 = _arg$13; $f._arg$14 = _arg$14; $f._arg$15 = _arg$15; $f._arg$16 = _arg$16; $f._arg$17 = _arg$17; $f._arg$18 = _arg$18; $f._arg$19 = _arg$19; $f._arg$2 = _arg$2; $f._arg$20 = _arg$20; $f._arg$21 = _arg$21; $f._arg$22 = _arg$22; $f._arg$23 = _arg$23; $f._arg$24 = _arg$24; $f._arg$25 = _arg$25; $f._arg$26 = _arg$26; $f._arg$27 = _arg$27; $f._arg$28 = _arg$28; $f._arg$29 = _arg$29; $f._arg$3 = _arg$3; $f._arg$30 = _arg$30; $f._arg$31 = _arg$31; $f._arg$32 = _arg$32; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._arg$8 = _arg$8; $f._arg$9 = _arg$9; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$20 = _r$20; $f._r$21 = _r$21; $f._r$22 = _r$22; $f._r$23 = _r$23; $f._r$24 = _r$24; $f._r$25 = _r$25; $f._r$26 = _r$26; $f._r$27 = _r$27; $f._r$28 = _r$28; $f._r$29 = _r$29; $f._r$3 = _r$3; $f._r$30 = _r$30; $f._r$31 = _r$31; $f._r$32 = _r$32; $f._r$33 = _r$33; $f._r$34 = _r$34; $f._r$35 = _r$35; $f._r$36 = _r$36; $f._r$37 = _r$37; $f._r$38 = _r$38; $f._r$39 = _r$39; $f._r$4 = _r$4; $f._r$40 = _r$40; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$10 = _tuple$10; $f._tuple$11 = _tuple$11; $f._tuple$12 = _tuple$12; $f._tuple$13 = _tuple$13; $f._tuple$14 = _tuple$14; $f._tuple$15 = _tuple$15; $f._tuple$16 = _tuple$16; $f._tuple$17 = _tuple$17; $f._tuple$18 = _tuple$18; $f._tuple$19 = _tuple$19; $f._tuple$2 = _tuple$2; $f._tuple$20 = _tuple$20; $f._tuple$21 = _tuple$21; $f._tuple$22 = _tuple$22; $f._tuple$23 = _tuple$23; $f._tuple$24 = _tuple$24; $f._tuple$25 = _tuple$25; $f._tuple$26 = _tuple$26; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f._tuple$8 = _tuple$8; $f._tuple$9 = _tuple$9; $f.base = base; $f.e = e; $f.end = end; $f.err = err; $f.err$1 = err$1; $f.formatArguments = formatArguments; $f.formatString = formatString; $f.index = index; $f.loc = loc; $f.n = n; $f.n$1 = n$1; $f.ok = ok; $f.re = re; $f.s = s; $f.start = start; $f.str = str; $f.stream = stream; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Format = Format; Functionp = function(e, fun) { var _r, e, fun, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; fun = $f.fun; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.Function, fun); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Functionp }; } $f._r = _r; $f.e = e; $f.fun = fun; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Functionp = Functionp; Function = function(e, fun) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, _tuple$1, e, err, f, f$1, fun, ok, ok$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; f = $f.f; f$1 = $f.f$1; fun = $f.fun; ok = $f.ok; ok$1 = $f.ok$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Symbol, new sliceType([fun])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _tuple = e.Function.Get(fun); f = _tuple[0]; ok = _tuple[1]; if (ok) { $s = -1; return [f, $ifaceNil]; } _tuple$1 = e.Function.Get(fun); f$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1) { $s = -1; return [f$1, $ifaceNil]; } _arg = $clone(e, env.Environment); _r$1 = instance.NewUndefinedFunction($clone(e, env.Environment), fun); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* */ } return; } if ($f === undefined) { $f = { $blk: Function }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.f = f; $f.f$1 = f$1; $f.fun = fun; $f.ok = ok; $f.ok$1 = ok$1; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Function = Function; Lambda = function(e, lambdaList, form) { var _r, _r$1, e, err, form, lambdaList, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; e = $f.e; err = $f.err; form = $f.form; lambdaList = $f.lambdaList; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = checkLambdaList($clone(e, env.Environment), lambdaList); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = newNamedFunction($clone(e, env.Environment), instance.NewSymbol("ANONYMOUS-FUNCTION"), lambdaList, form); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: Lambda }; } $f._r = _r; $f._r$1 = _r$1; $f.e = e; $f.err = err; $f.form = form; $f.lambdaList = lambdaList; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Lambda = Lambda; Labels = function(e, functions, bodyForm) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, bodyForm, definition, e, err, err$1, err$2, forms, fun, function$1, functionName, functions, lambdaList, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _tuple = $f._tuple; bodyForm = $f.bodyForm; definition = $f.definition; e = $f.e; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; forms = $f.forms; fun = $f.fun; function$1 = $f.function$1; functionName = $f.functionName; functions = $f.functions; lambdaList = $f.lambdaList; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.List, new sliceType([functions])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = $assertType(functions, instance.List).Slice(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _ref = _r$1; _i = 0; /* while (true) { */ case 3: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } function$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$2 = ensure($clone(e, env.Environment), class$1.List, new sliceType([function$1])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } err$1 = _r$2; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _r$3 = $assertType(function$1, instance.List).Slice(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } definition = _r$3; /* */ if (definition.$length < 2) { $s = 7; continue; } /* */ $s = 8; continue; /* if (definition.$length < 2) { */ case 7: _arg = $clone(e, env.Environment); _r$4 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$1 = _r$4; _arg$2 = $pkg.Nil; _r$5 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } */ case 8: functionName = (0 >= definition.$length ? ($throwRuntimeError("index out of range"), undefined) : definition.$array[definition.$offset + 0]); lambdaList = (1 >= definition.$length ? ($throwRuntimeError("index out of range"), undefined) : definition.$array[definition.$offset + 1]); forms = $subslice(definition, 2); _r$6 = newNamedFunction($clone(e, env.Environment), functionName, lambdaList, forms); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _tuple = _r$6; fun = _tuple[0]; err$2 = _tuple[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } /* */ if (!e.Function.Define(functionName, fun)) { $s = 12; continue; } /* */ $s = 13; continue; /* if (!e.Function.Define(functionName, fun)) { */ case 12: _arg$3 = $clone(e, env.Environment); _r$7 = instance.NewImmutableBinding($clone(e, env.Environment)); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _arg$4 = _r$7; _arg$5 = $pkg.Nil; _r$8 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 15; case 15: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $s = -1; return _r$8; /* } */ case 13: _i++; /* } */ $s = 3; continue; case 4: _r$9 = Progn($clone(e, env.Environment), bodyForm); /* */ $s = 16; case 16: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } $s = -1; return _r$9; /* */ } return; } if ($f === undefined) { $f = { $blk: Labels }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._tuple = _tuple; $f.bodyForm = bodyForm; $f.definition = definition; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.forms = forms; $f.fun = fun; $f.function$1 = function$1; $f.functionName = functionName; $f.functions = functions; $f.lambdaList = lambdaList; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Labels = Labels; Flet = function(e, functions, bodyForm) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, bodyForm, definition, e, err, err$1, err$2, forms, fun, function$1, functionName, functions, lambdaList, newEnv, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _tuple = $f._tuple; bodyForm = $f.bodyForm; definition = $f.definition; e = $f.e; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; forms = $f.forms; fun = $f.fun; function$1 = $f.function$1; functionName = $f.functionName; functions = $f.functions; lambdaList = $f.lambdaList; newEnv = $f.newEnv; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.List, new sliceType([functions])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } newEnv = $clone(e.NewLexical(), env.Environment); _r$1 = $assertType(functions, instance.List).Slice(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _ref = _r$1; _i = 0; /* while (true) { */ case 3: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } function$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$2 = ensure($clone(e, env.Environment), class$1.List, new sliceType([function$1])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } err$1 = _r$2; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _r$3 = $assertType(function$1, instance.List).Slice(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } definition = _r$3; /* */ if (definition.$length < 2) { $s = 7; continue; } /* */ $s = 8; continue; /* if (definition.$length < 2) { */ case 7: _arg = $clone(e, env.Environment); _r$4 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$1 = _r$4; _arg$2 = $pkg.Nil; _r$5 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } */ case 8: functionName = (0 >= definition.$length ? ($throwRuntimeError("index out of range"), undefined) : definition.$array[definition.$offset + 0]); lambdaList = (1 >= definition.$length ? ($throwRuntimeError("index out of range"), undefined) : definition.$array[definition.$offset + 1]); forms = $subslice(definition, 2); _r$6 = newNamedFunction($clone(e, env.Environment), functionName, lambdaList, forms); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _tuple = _r$6; fun = _tuple[0]; err$2 = _tuple[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } /* */ if (!newEnv.Function.Define(functionName, fun)) { $s = 12; continue; } /* */ $s = 13; continue; /* if (!newEnv.Function.Define(functionName, fun)) { */ case 12: _arg$3 = $clone(e, env.Environment); _r$7 = instance.NewImmutableBinding($clone(e, env.Environment)); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _arg$4 = _r$7; _arg$5 = $pkg.Nil; _r$8 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 15; case 15: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $s = -1; return _r$8; /* } */ case 13: _i++; /* } */ $s = 3; continue; case 4: _r$9 = Progn($clone(newEnv, env.Environment), bodyForm); /* */ $s = 16; case 16: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } $s = -1; return _r$9; /* */ } return; } if ($f === undefined) { $f = { $blk: Flet }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._tuple = _tuple; $f.bodyForm = bodyForm; $f.definition = definition; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.forms = forms; $f.fun = fun; $f.function$1 = function$1; $f.functionName = functionName; $f.functions = functions; $f.lambdaList = lambdaList; $f.newEnv = newEnv; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Flet = Flet; Apply = function(e, function$1, obj) { var _arg, _arg$1, _r, _r$1, _r$2, _r$3, e, err, err$1, function$1, obj, x, x$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; e = $f.e; err = $f.err; err$1 = $f.err$1; function$1 = $f.function$1; obj = $f.obj; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Function, new sliceType([function$1])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = ensure($clone(e, env.Environment), class$1.List, new sliceType([(x = obj.$length - 1 >> 0, ((x < 0 || x >= obj.$length) ? ($throwRuntimeError("index out of range"), undefined) : obj.$array[obj.$offset + x]))])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } err$1 = _r$1; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _arg = $subslice(obj, 0, (obj.$length - 1 >> 0)); _r$2 = $assertType((x$1 = obj.$length - 1 >> 0, ((x$1 < 0 || x$1 >= obj.$length) ? ($throwRuntimeError("index out of range"), undefined) : obj.$array[obj.$offset + x$1])), instance.List).Slice(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; obj = $appendSlice(_arg, _arg$1); _r$3 = $assertType(function$1, instance.Applicable).Apply($clone(e, env.Environment), obj); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* */ } return; } if ($f === undefined) { $f = { $blk: Apply }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.function$1 = function$1; $f.obj = obj; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Apply = Apply; Funcall = function(e, function$1, obj) { var _r, e, function$1, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; function$1 = $f.function$1; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: obj = $append(obj, $pkg.Nil); _r = Apply($clone(e, env.Environment), function$1, obj); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Funcall }; } $f._r = _r; $f.e = e; $f.function$1 = function$1; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Funcall = Funcall; convInt = function(e, z) { var _r, e, err, z, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Integer, new sliceType([z])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [0, err]; } $s = -1; return [(($assertType(z, instance.Integer) >> 0)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: convInt }; } $f._r = _r; $f.e = e; $f.err = err; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; }; Integerp = function(e, obj) { var _r, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.Integer, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Integerp }; } $f._r = _r; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Integerp = Integerp; Div = function(e, z1, z2) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, a, b, e, err, err$1, operands, operation, z1, z2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; a = $f.a; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; operands = $f.operands; operation = $f.operation; z1 = $f.z1; z2 = $f.z2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convInt($clone(e, env.Environment), z1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; a = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = convInt($clone(e, env.Environment), z2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; b = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } /* */ if (b === 0) { $s = 3; continue; } /* */ $s = 4; continue; /* if (b === 0) { */ case 3: operation = instance.NewSymbol("DIV"); _tuple$2 = List($clone(e, env.Environment), new sliceType([z1, z2])); operands = _tuple$2[0]; err$1 = _tuple$2[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _arg = $clone(e, env.Environment); _r$2 = instance.NewArithmeticError($clone(e, env.Environment), operation, operands); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; _arg$2 = $pkg.Nil; _r$3 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* } */ case 4: $s = -1; return [instance.NewInteger(((math.Floor((a) / (b)) >> 0))), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Div }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.a = a; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.operands = operands; $f.operation = operation; $f.z1 = z1; $f.z2 = z2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Div = Div; Mod = function(e, z1, z2) { var _r, _r$1, _r$2, _tuple, _tuple$1, e, err, f, g, z1, z2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; f = $f.f; g = $f.g; z1 = $f.z1; z2 = $f.z2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Div($clone(e, env.Environment), z1, z2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = Multiply($clone(e, env.Environment), new sliceType([f, z2])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; g = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$2 = Substruct($clone(e, env.Environment), z1, new sliceType([g])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* */ } return; } if ($f === undefined) { $f = { $blk: Mod }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.f = f; $f.g = g; $f.z1 = z1; $f.z2 = z2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Mod = Mod; Gcd = function(e, z1, z2) { var _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, a, b, e, err, gcd, z1, z2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; b = $f.b; e = $f.e; err = $f.err; gcd = $f.gcd; z1 = $f.z1; z2 = $f.z2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: gcd = (function(x, y) { var _r, _tmp, _tmp$1, x, y; while (true) { if (!(!((y === 0)))) { break; } _tmp = y; _tmp$1 = (_r = x % y, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); x = _tmp; y = _tmp$1; } return x; }); _r = convInt($clone(e, env.Environment), z1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; a = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = convInt($clone(e, env.Environment), z2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; b = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$2 = gcd(a, b); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$3 = instance.NewInteger(_r$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return [_r$3, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Gcd }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.b = b; $f.e = e; $f.err = err; $f.gcd = gcd; $f.z1 = z1; $f.z2 = z2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Gcd = Gcd; Lcm = function(e, z1, z2) { var _q, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, a, b, e, err, gcd, z1, z2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; b = $f.b; e = $f.e; err = $f.err; gcd = $f.gcd; z1 = $f.z1; z2 = $f.z2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: gcd = (function(x, y) { var _r, _tmp, _tmp$1, x, y; while (true) { if (!(!((y === 0)))) { break; } _tmp = y; _tmp$1 = (_r = x % y, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); x = _tmp; y = _tmp$1; } return x; }); _r = convInt($clone(e, env.Environment), z1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; a = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = convInt($clone(e, env.Environment), z2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; b = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$2 = gcd(a, b); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$3 = instance.NewInteger((_q = ($imul(a, b)) / _r$2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return [_r$3, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Lcm }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.b = b; $f.e = e; $f.err = err; $f.gcd = gcd; $f.z1 = z1; $f.z2 = z2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Lcm = Lcm; Isqrt = function(e, z) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, a, e, err, z, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; a = $f.a; e = $f.e; err = $f.err; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convInt($clone(e, env.Environment), z); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; a = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } /* */ if (a < 0) { $s = 2; continue; } /* */ $s = 3; continue; /* if (a < 0) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), z, class$1.Number); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: $s = -1; return [instance.NewInteger(((math.Sqrt((a)) >> 0))), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Isqrt }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f.a = a; $f.e = e; $f.err = err; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Isqrt = Isqrt; While = function(e, testForm, bodyForm) { var _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, bodyForm, e, err, err$1, test$1, testForm, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; bodyForm = $f.bodyForm; e = $f.e; err = $f.err; err$1 = $f.err$1; test$1 = $f.test$1; testForm = $f.testForm; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Eval($clone(e, env.Environment), testForm); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; test$1 = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } /* while (true) { */ case 2: /* if (!($interfaceIsEqual(test$1, $pkg.T))) { break; } */ if(!($interfaceIsEqual(test$1, $pkg.T))) { $s = 3; continue; } _r$1 = Progn($clone(e, env.Environment), bodyForm); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; err$1 = _tuple$1[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _r$2 = Eval($clone(e, env.Environment), testForm); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$2 = _r$2; test$1 = _tuple$2[0]; err$1 = _tuple$2[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } /* } */ $s = 2; continue; case 3: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: While }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.bodyForm = bodyForm; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.test$1 = test$1; $f.testForm = testForm; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.While = While; For = function(e, iterationSpecs, endTestAndResults, forms) { var _1, _2, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, a, b, e, endTest, endTestAndResults, ends, err, err$1, err$2, err$3, err$4, err$5, err$6, err$7, forms, i, init$1, is, is$1, iterationSpecs, results, step, test$1, var1, var1$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$10 = $f._arg$10; _arg$11 = $f._arg$11; _arg$12 = $f._arg$12; _arg$13 = $f._arg$13; _arg$14 = $f._arg$14; _arg$15 = $f._arg$15; _arg$16 = $f._arg$16; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _arg$8 = $f._arg$8; _arg$9 = $f._arg$9; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$20 = $f._r$20; _r$21 = $f._r$21; _r$22 = $f._r$22; _r$23 = $f._r$23; _r$24 = $f._r$24; _r$25 = $f._r$25; _r$26 = $f._r$26; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; a = $f.a; b = $f.b; e = $f.e; endTest = $f.endTest; endTestAndResults = $f.endTestAndResults; ends = $f.ends; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; err$4 = $f.err$4; err$5 = $f.err$5; err$6 = $f.err$6; err$7 = $f.err$7; forms = $f.forms; i = $f.i; init$1 = $f.init$1; is = $f.is; is$1 = $f.is$1; iterationSpecs = $f.iterationSpecs; results = $f.results; step = $f.step; test$1 = $f.test$1; var1 = $f.var1; var1$1 = $f.var1$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.List, new sliceType([iterationSpecs])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } a = $clone(e.NewLexical(), env.Environment); _r$1 = $assertType(iterationSpecs, instance.List).Slice(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _ref = _r$1; _i = 0; /* while (true) { */ case 3: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } is = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$2 = ensure($clone(e, env.Environment), class$1.List, new sliceType([is])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } err$1 = _r$2; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _r$3 = $assertType(is, instance.List).Slice(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } i = _r$3; _1 = i.$length; /* */ if ((_1 === (2)) || (_1 === (3))) { $s = 8; continue; } /* */ $s = 9; continue; /* if ((_1 === (2)) || (_1 === (3))) { */ case 8: var1 = (0 >= i.$length ? ($throwRuntimeError("index out of range"), undefined) : i.$array[i.$offset + 0]); _r$4 = Eval($clone(e, env.Environment), (1 >= i.$length ? ($throwRuntimeError("index out of range"), undefined) : i.$array[i.$offset + 1])); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple = _r$4; init$1 = _tuple[0]; err$2 = _tuple[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } /* */ if (!a.Variable.Define(var1, init$1)) { $s = 12; continue; } /* */ $s = 13; continue; /* if (!a.Variable.Define(var1, init$1)) { */ case 12: _arg = $clone(e, env.Environment); _r$5 = instance.NewImmutableBinding($clone(e, env.Environment)); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$1 = _r$5; _arg$2 = $pkg.Nil; _r$6 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* } */ case 13: $s = 10; continue; /* } else { */ case 9: _arg$3 = $clone(e, env.Environment); _r$7 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _arg$4 = _r$7; _arg$5 = $pkg.Nil; _r$8 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $s = -1; return _r$8; /* } */ case 10: case 7: _i++; /* } */ $s = 3; continue; case 4: _r$9 = ensure($clone(e, env.Environment), class$1.List, new sliceType([endTestAndResults])); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } err$3 = _r$9; if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = -1; return [$ifaceNil, err$3]; } _r$10 = $assertType(endTestAndResults, instance.List).Slice(); /* */ $s = 19; case 19: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } ends = _r$10; /* */ if (ends.$length === 0) { $s = 20; continue; } /* */ $s = 21; continue; /* if (ends.$length === 0) { */ case 20: _arg$6 = $clone(e, env.Environment); _r$11 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 22; case 22: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _arg$7 = _r$11; _arg$8 = $pkg.Nil; _r$12 = SignalCondition(_arg$6, _arg$7, _arg$8); /* */ $s = 23; case 23: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } $s = -1; return _r$12; /* } */ case 21: endTest = (0 >= ends.$length ? ($throwRuntimeError("index out of range"), undefined) : ends.$array[ends.$offset + 0]); results = $subslice(ends, 1); _r$13 = Eval($clone(a, env.Environment), endTest); /* */ $s = 24; case 24: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _tuple$1 = _r$13; test$1 = _tuple$1[0]; err$4 = _tuple$1[1]; if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = -1; return [$ifaceNil, err$4]; } /* while (true) { */ case 25: /* if (!($interfaceIsEqual(test$1, $pkg.Nil))) { break; } */ if(!($interfaceIsEqual(test$1, $pkg.Nil))) { $s = 26; continue; } _r$14 = Progn($clone(a, env.Environment), forms); /* */ $s = 27; case 27: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } _tuple$2 = _r$14; err$5 = _tuple$2[1]; if (!($interfaceIsEqual(err$5, $ifaceNil))) { $s = -1; return [$ifaceNil, err$5]; } b = $clone(a.NewLexical(), env.Environment); _r$15 = $assertType(iterationSpecs, instance.List).Slice(); /* */ $s = 28; case 28: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } _ref$1 = _r$15; _i$1 = 0; /* while (true) { */ case 29: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 30; continue; } is$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); _r$16 = ensure($clone(e, env.Environment), class$1.List, new sliceType([is$1])); /* */ $s = 31; case 31: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } err$6 = _r$16; if (!($interfaceIsEqual(err$6, $ifaceNil))) { $s = -1; return [$ifaceNil, err$6]; } _r$17 = $assertType(is$1, instance.List).Length(); /* */ $s = 33; case 33: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } _2 = _r$17; /* */ if (_2 === (2)) { $s = 34; continue; } /* */ if (_2 === (3)) { $s = 35; continue; } /* */ $s = 36; continue; /* if (_2 === (2)) { */ case 34: $s = 37; continue; /* } else if (_2 === (3)) { */ case 35: _r$18 = $assertType(is$1, instance.List).Nth(0); /* */ $s = 38; case 38: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } var1$1 = _r$18; _arg$9 = $clone(a, env.Environment); _r$19 = $assertType(is$1, instance.List).Nth(2); /* */ $s = 39; case 39: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } _arg$10 = _r$19; _r$20 = Eval(_arg$9, _arg$10); /* */ $s = 40; case 40: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } _tuple$3 = _r$20; step = _tuple$3[0]; err$7 = _tuple$3[1]; if (!($interfaceIsEqual(err$7, $ifaceNil))) { $s = -1; return [$ifaceNil, err$7]; } /* */ if (!b.Variable.Define(var1$1, step)) { $s = 41; continue; } /* */ $s = 42; continue; /* if (!b.Variable.Define(var1$1, step)) { */ case 41: _arg$11 = $clone(e, env.Environment); _r$21 = instance.NewImmutableBinding($clone(e, env.Environment)); /* */ $s = 43; case 43: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } _arg$12 = _r$21; _arg$13 = $pkg.Nil; _r$22 = SignalCondition(_arg$11, _arg$12, _arg$13); /* */ $s = 44; case 44: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } $s = -1; return _r$22; /* } */ case 42: $s = 37; continue; /* } else { */ case 36: _arg$14 = $clone(e, env.Environment); _r$23 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 45; case 45: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } _arg$15 = _r$23; _arg$16 = $pkg.Nil; _r$24 = SignalCondition(_arg$14, _arg$15, _arg$16); /* */ $s = 46; case 46: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } $s = -1; return _r$24; /* } */ case 37: case 32: _i$1++; /* } */ $s = 29; continue; case 30: _r$25 = Eval($clone(b, env.Environment), endTest); /* */ $s = 47; case 47: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } _tuple$4 = _r$25; test$1 = _tuple$4[0]; err$5 = _tuple$4[1]; if (!($interfaceIsEqual(err$5, $ifaceNil))) { $s = -1; return [$ifaceNil, err$5]; } env.Environment.copy(a, b); /* } */ $s = 25; continue; case 26: _r$26 = Progn($clone(a, env.Environment), results); /* */ $s = 48; case 48: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } $s = -1; return _r$26; /* */ } return; } if ($f === undefined) { $f = { $blk: For }; } $f._1 = _1; $f._2 = _2; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$10 = _arg$10; $f._arg$11 = _arg$11; $f._arg$12 = _arg$12; $f._arg$13 = _arg$13; $f._arg$14 = _arg$14; $f._arg$15 = _arg$15; $f._arg$16 = _arg$16; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._arg$8 = _arg$8; $f._arg$9 = _arg$9; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$20 = _r$20; $f._r$21 = _r$21; $f._r$22 = _r$22; $f._r$23 = _r$23; $f._r$24 = _r$24; $f._r$25 = _r$25; $f._r$26 = _r$26; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f.a = a; $f.b = b; $f.e = e; $f.endTest = endTest; $f.endTestAndResults = endTestAndResults; $f.ends = ends; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.err$4 = err$4; $f.err$5 = err$5; $f.err$6 = err$6; $f.err$7 = err$7; $f.forms = forms; $f.i = i; $f.init$1 = init$1; $f.is = is; $f.is$1 = is$1; $f.iterationSpecs = iterationSpecs; $f.results = results; $f.step = step; $f.test$1 = test$1; $f.var1 = var1; $f.var1$1 = var1$1; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.For = For; Listp = function(e, obj) { var _r, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.List, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Listp }; } $f._r = _r; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Listp = Listp; CreateList = function(e, i, initialElement) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, cons, e, elm, i, initialElement, j, ok, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; cons = $f.cons; e = $f.e; elm = $f.elm; i = $f.i; initialElement = $f.initialElement; j = $f.j; ok = $f.ok; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Integerp($clone(e, env.Environment), i); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _r$1 = instance.NewDomainError($clone(e, env.Environment), i, class$1.Integer); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$1]; /* } */ case 3: /* */ if (initialElement.$length > 1) { $s = 5; continue; } /* */ $s = 6; continue; /* if (initialElement.$length > 1) { */ case 5: _arg = $clone(e, env.Environment); _r$2 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; _arg$2 = $pkg.Nil; _r$3 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* } */ case 6: elm = $pkg.Nil; if (initialElement.$length === 1) { elm = (0 >= initialElement.$length ? ($throwRuntimeError("index out of range"), undefined) : initialElement.$array[initialElement.$offset + 0]); } cons = $pkg.Nil; j = 0; while (true) { if (!(j < (($assertType(i, instance.Integer) >> 0)))) { break; } cons = instance.NewCons(elm, cons); j = j + (1) >> 0; } $s = -1; return [cons, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: CreateList }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f.cons = cons; $f.e = e; $f.elm = elm; $f.i = i; $f.initialElement = initialElement; $f.j = j; $f.ok = ok; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.CreateList = CreateList; List = function(e, objs) { var cons, e, i, objs; cons = $pkg.Nil; i = objs.$length - 1 >> 0; while (true) { if (!(i >= 0)) { break; } cons = instance.NewCons(((i < 0 || i >= objs.$length) ? ($throwRuntimeError("index out of range"), undefined) : objs.$array[objs.$offset + i]), cons); i = i - (1) >> 0; } return [cons, $ifaceNil]; }; $pkg.List = List; Reverse = function(e, list) { var _i, _r, _r$1, _r$2, _ref, _tuple, car, cons, e, list, ok, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tuple = $f._tuple; car = $f.car; cons = $f.cons; e = $f.e; list = $f.list; ok = $f.ok; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Listp($clone(e, env.Environment), list); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _r$1 = instance.NewDomainError($clone(e, env.Environment), list, class$1.List); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$1]; /* } */ case 3: cons = $pkg.Nil; _r$2 = $assertType(list, instance.List).Slice(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _ref = _r$2; _i = 0; /* while (true) { */ case 6: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } car = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); cons = instance.NewCons(car, cons); _i++; /* } */ $s = 6; continue; case 7: $s = -1; return [cons, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Reverse }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tuple = _tuple; $f.car = car; $f.cons = cons; $f.e = e; $f.list = list; $f.ok = ok; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Reverse = Reverse; Nreverse = function(e, list) { var _i, _r, _r$1, _r$2, _ref, _tuple, car, cons, e, list, ok, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tuple = $f._tuple; car = $f.car; cons = $f.cons; e = $f.e; list = $f.list; ok = $f.ok; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Listp($clone(e, env.Environment), list); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _r$1 = instance.NewDomainError($clone(e, env.Environment), list, class$1.List); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$1]; /* } */ case 3: cons = $pkg.Nil; _r$2 = $assertType(list, instance.List).Slice(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _ref = _r$2; _i = 0; /* while (true) { */ case 6: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } car = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); cons = instance.NewCons(car, cons); _i++; /* } */ $s = 6; continue; case 7: $s = -1; return [cons, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Nreverse }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tuple = _tuple; $f.car = car; $f.cons = cons; $f.e = e; $f.list = list; $f.ok = ok; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Nreverse = Nreverse; Append = function(e, lists) { var _i, _i$1, _i$2, _r, _r$1, _r$2, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, cdr, e, elt, err, err$1, it, list, list$1, lists, ok, result, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; cdr = $f.cdr; e = $f.e; elt = $f.elt; err = $f.err; err$1 = $f.err$1; it = $f.it; list = $f.list; list$1 = $f.list$1; lists = $f.lists; ok = $f.ok; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tuple = List($clone(e, env.Environment), new sliceType([$pkg.Nil])); result = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } cdr = result; _ref = lists; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } list = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r = Listp($clone(e, env.Environment), list); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple$1 = _r; ok = _tuple$1[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 4; continue; } /* */ $s = 5; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 4: _r$1 = instance.NewDomainError($clone(e, env.Environment), list, class$1.List); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$1]; /* } */ case 5: _i++; /* } */ $s = 1; continue; case 2: _ref$1 = lists; _i$1 = 0; /* while (true) { */ case 7: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } list$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); _r$2 = $assertType(list$1, instance.List).Slice(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _ref$2 = _r$2; _i$2 = 0; /* while (true) { */ case 10: /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 11; continue; } elt = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); _tuple$2 = List($clone(e, env.Environment), new sliceType([elt])); it = _tuple$2[0]; err$1 = _tuple$2[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } $assertType(cdr, ptrType$1).Cdr = it; cdr = $assertType(cdr, ptrType$1).Cdr; _i$2++; /* } */ $s = 10; continue; case 11: _i$1++; /* } */ $s = 7; continue; case 8: $s = -1; return [$assertType(result, ptrType$1).Cdr, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Append }; } $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.cdr = cdr; $f.e = e; $f.elt = elt; $f.err = err; $f.err$1 = err$1; $f.it = it; $f.list = list; $f.list$1 = list$1; $f.lists = lists; $f.ok = ok; $f.result = result; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Append = Append; Member = function(e, obj, list) { var _r, _r$1, _r$2, _r$3, _r$4, _tuple, e, list, obj, ok, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; e = $f.e; list = $f.list; obj = $f.obj; ok = $f.ok; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Listp($clone(e, env.Environment), list); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _r$1 = instance.NewDomainError($clone(e, env.Environment), list, class$1.List); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$1]; /* } */ case 3: _r$2 = ilos.InstanceOf(class$1.Cons, list); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (!_r$2 || $interfaceIsEqual($assertType(list, ptrType$1).Car, obj)) { $s = 5; continue; } /* */ $s = 6; continue; /* if (!_r$2 || $interfaceIsEqual($assertType(list, ptrType$1).Car, obj)) { */ case 5: $s = -1; return [list, $ifaceNil]; /* } */ case 6: _r$3 = ilos.InstanceOf(class$1.Cons, $assertType(list, ptrType$1).Cdr); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (!_r$3) { $s = 8; continue; } /* */ $s = 9; continue; /* if (!_r$3) { */ case 8: $s = -1; return [$assertType(list, ptrType$1).Cdr, $ifaceNil]; /* } */ case 9: _r$4 = Member($clone(e, env.Environment), obj, $assertType(list, ptrType$1).Cdr); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* */ } return; } if ($f === undefined) { $f = { $blk: Member }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f.e = e; $f.list = list; $f.obj = obj; $f.ok = ok; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Member = Member; Mapcar = function(e, function$1, list1, lists) { var _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, arguments$1, car, cdr, e, err, function$1, list, list$1, list$2, list1, lists, ok, ok$1, ok$2, rests, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; arguments$1 = $f.arguments$1; car = $f.car; cdr = $f.cdr; e = $f.e; err = $f.err; function$1 = $f.function$1; list = $f.list; list$1 = $f.list$1; list$2 = $f.list$2; list1 = $f.list1; lists = $f.lists; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; rests = $f.rests; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: lists = $appendSlice(new sliceType([list1]), lists); _r = Functionp($clone(e, env.Environment), function$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _r$1 = instance.NewDomainError($clone(e, env.Environment), function$1, class$1.Function); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$1]; /* } */ case 3: _ref = lists; _i = 0; /* while (true) { */ case 5: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } list = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$2 = Listp($clone(e, env.Environment), list); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; ok$1 = _tuple$1[0]; /* */ if ($interfaceIsEqual(ok$1, $pkg.Nil)) { $s = 8; continue; } /* */ $s = 9; continue; /* if ($interfaceIsEqual(ok$1, $pkg.Nil)) { */ case 8: _r$3 = instance.NewDomainError($clone(e, env.Environment), list, class$1.List); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$3]; /* } */ case 9: _i++; /* } */ $s = 5; continue; case 6: arguments$1 = new sliceType([]); rests = new sliceType([]); _ref$1 = lists; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } list$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); if ($interfaceIsEqual(list$1, $pkg.Nil)) { $s = -1; return [$pkg.Nil, $ifaceNil]; } arguments$1 = $append(arguments$1, $assertType(list$1, ptrType$1).Car); rests = $append(rests, $assertType(list$1, ptrType$1).Cdr); _i$1++; } _r$4 = $assertType(function$1, instance.Applicable).Apply($clone(e.NewDynamic(), env.Environment), arguments$1); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$2 = _r$4; car = _tuple$2[0]; err = _tuple$2[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } cdr = $ifaceNil; _ref$2 = lists; _i$2 = 0; /* while (true) { */ case 12: /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 13; continue; } list$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); _r$5 = Listp($clone(e, env.Environment), list$2); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$3 = _r$5; ok$2 = _tuple$3[0]; if ($interfaceIsEqual(ok$2, $pkg.Nil)) { cdr = $pkg.Nil; } _i$2++; /* } */ $s = 12; continue; case 13: /* */ if ($interfaceIsEqual(cdr, $ifaceNil)) { $s = 15; continue; } /* */ $s = 16; continue; /* if ($interfaceIsEqual(cdr, $ifaceNil)) { */ case 15: _r$6 = Mapcar($clone(e, env.Environment), function$1, (0 >= rests.$length ? ($throwRuntimeError("index out of range"), undefined) : rests.$array[rests.$offset + 0]), $subslice(rests, 1)); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _tuple$4 = _r$6; cdr = _tuple$4[0]; err = _tuple$4[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } /* } */ case 16: $s = -1; return Cons($clone(e, env.Environment), car, cdr); /* */ } return; } if ($f === undefined) { $f = { $blk: Mapcar }; } $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f.arguments$1 = arguments$1; $f.car = car; $f.cdr = cdr; $f.e = e; $f.err = err; $f.function$1 = function$1; $f.list = list; $f.list$1 = list$1; $f.list$2 = list$2; $f.list1 = list1; $f.lists = lists; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.rests = rests; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Mapcar = Mapcar; Mapc = function(e, function$1, list1, lists) { var _r, _tuple, e, err, function$1, list1, lists, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; e = $f.e; err = $f.err; function$1 = $f.function$1; list1 = $f.list1; lists = $f.lists; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Mapcar($clone(e, env.Environment), function$1, list1, lists); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [list1, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Mapc }; } $f._r = _r; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.function$1 = function$1; $f.list1 = list1; $f.lists = lists; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Mapc = Mapc; Mapcan = function(e, function$1, list1, lists) { var _r, _r$1, _tuple, _tuple$1, append, e, err, function$1, list, list1, lists, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; append = $f.append; e = $f.e; err = $f.err; function$1 = $f.function$1; list = $f.list; list1 = $f.list1; lists = $f.lists; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Mapcar($clone(e, env.Environment), function$1, list1, lists); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; list = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _tuple$1 = e.Function.Get(instance.NewSymbol("APPEND")); append = _tuple$1[0]; _r$1 = Apply($clone(e, env.Environment), append, new sliceType([list])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: Mapcan }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.append = append; $f.e = e; $f.err = err; $f.function$1 = function$1; $f.list = list; $f.list1 = list1; $f.lists = lists; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Mapcan = Mapcan; Maplist = function(e, function$1, list1, lists) { var _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, arguments$1, car, cdr, e, err, function$1, list, list$1, list$2, list1, lists, ok, ok$1, ok$2, rests, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; arguments$1 = $f.arguments$1; car = $f.car; cdr = $f.cdr; e = $f.e; err = $f.err; function$1 = $f.function$1; list = $f.list; list$1 = $f.list$1; list$2 = $f.list$2; list1 = $f.list1; lists = $f.lists; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; rests = $f.rests; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: lists = $appendSlice(new sliceType([list1]), lists); _r = Functionp($clone(e, env.Environment), function$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _r$1 = instance.NewDomainError($clone(e, env.Environment), function$1, class$1.Function); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$1]; /* } */ case 3: _ref = lists; _i = 0; /* while (true) { */ case 5: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } list = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$2 = Listp($clone(e, env.Environment), list); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; ok$1 = _tuple$1[0]; /* */ if ($interfaceIsEqual(ok$1, $pkg.Nil)) { $s = 8; continue; } /* */ $s = 9; continue; /* if ($interfaceIsEqual(ok$1, $pkg.Nil)) { */ case 8: _r$3 = instance.NewDomainError($clone(e, env.Environment), list, class$1.List); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$3]; /* } */ case 9: _i++; /* } */ $s = 5; continue; case 6: arguments$1 = new sliceType([]); rests = new sliceType([]); _ref$1 = lists; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } list$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); if ($interfaceIsEqual(list$1, $pkg.Nil)) { $s = -1; return [$pkg.Nil, $ifaceNil]; } arguments$1 = $append(arguments$1, list$1); rests = $append(rests, $assertType(list$1, ptrType$1).Cdr); _i$1++; } _r$4 = $assertType(function$1, instance.Applicable).Apply($clone(e.NewDynamic(), env.Environment), arguments$1); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$2 = _r$4; car = _tuple$2[0]; err = _tuple$2[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } cdr = $ifaceNil; _ref$2 = lists; _i$2 = 0; /* while (true) { */ case 12: /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 13; continue; } list$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); _r$5 = Listp($clone(e, env.Environment), list$2); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$3 = _r$5; ok$2 = _tuple$3[0]; if ($interfaceIsEqual(ok$2, $pkg.Nil)) { cdr = $pkg.Nil; } _i$2++; /* } */ $s = 12; continue; case 13: /* */ if ($interfaceIsEqual(cdr, $ifaceNil)) { $s = 15; continue; } /* */ $s = 16; continue; /* if ($interfaceIsEqual(cdr, $ifaceNil)) { */ case 15: _r$6 = Maplist($clone(e, env.Environment), function$1, (0 >= rests.$length ? ($throwRuntimeError("index out of range"), undefined) : rests.$array[rests.$offset + 0]), $subslice(rests, 1)); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _tuple$4 = _r$6; cdr = _tuple$4[0]; err = _tuple$4[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } /* } */ case 16: $s = -1; return Cons($clone(e, env.Environment), car, cdr); /* */ } return; } if ($f === undefined) { $f = { $blk: Maplist }; } $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f.arguments$1 = arguments$1; $f.car = car; $f.cdr = cdr; $f.e = e; $f.err = err; $f.function$1 = function$1; $f.list = list; $f.list$1 = list$1; $f.list$2 = list$2; $f.list1 = list1; $f.lists = lists; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.rests = rests; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Maplist = Maplist; Mapl = function(e, function$1, list1, lists) { var _r, _tuple, e, err, function$1, list1, lists, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; e = $f.e; err = $f.err; function$1 = $f.function$1; list1 = $f.list1; lists = $f.lists; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Maplist($clone(e, env.Environment), function$1, list1, lists); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [list1, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Mapl }; } $f._r = _r; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.function$1 = function$1; $f.list1 = list1; $f.lists = lists; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Mapl = Mapl; Mapcon = function(e, function$1, list1, lists) { var _r, _r$1, _tuple, _tuple$1, append, e, err, function$1, list, list1, lists, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; append = $f.append; e = $f.e; err = $f.err; function$1 = $f.function$1; list = $f.list; list1 = $f.list1; lists = $f.lists; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Maplist($clone(e, env.Environment), function$1, list1, lists); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; list = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _tuple$1 = e.Function.Get(instance.NewSymbol("APPEND")); append = _tuple$1[0]; _r$1 = Apply($clone(e, env.Environment), append, new sliceType([list])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* */ } return; } if ($f === undefined) { $f = { $blk: Mapcon }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.append = append; $f.e = e; $f.err = err; $f.function$1 = function$1; $f.list = list; $f.list1 = list1; $f.lists = lists; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Mapcon = Mapcon; Assoc = function(e, obj, associationList) { var _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, associationList, car, cdr, e, obj, ok, ok$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; associationList = $f.associationList; car = $f.car; cdr = $f.cdr; e = $f.e; obj = $f.obj; ok = $f.ok; ok$1 = $f.ok$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Listp($clone(e, env.Environment), associationList); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _r$1 = instance.NewDomainError($clone(e, env.Environment), associationList, class$1.List); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$1]; /* } */ case 3: _r$2 = ilos.InstanceOf(class$1.Cons, associationList); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (!_r$2) { $s = 5; continue; } /* */ $s = 6; continue; /* if (!_r$2) { */ case 5: $s = -1; return [$pkg.Nil, $ifaceNil]; /* } */ case 6: car = $assertType(associationList, ptrType$1).Car; cdr = $assertType(associationList, ptrType$1).Cdr; _r$3 = Consp($clone(e, env.Environment), car); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$1 = _r$3; ok$1 = _tuple$1[0]; /* */ if ($interfaceIsEqual(ok$1, $pkg.Nil)) { $s = 9; continue; } /* */ $s = 10; continue; /* if ($interfaceIsEqual(ok$1, $pkg.Nil)) { */ case 9: _r$4 = instance.NewDomainError($clone(e, env.Environment), car, class$1.Cons); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$4]; /* } */ case 10: if ($interfaceIsEqual($assertType(car, ptrType$1).Car, obj)) { $s = -1; return [car, $ifaceNil]; } _r$5 = Assoc($clone(e, env.Environment), obj, cdr); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* */ } return; } if ($f === undefined) { $f = { $blk: Assoc }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.associationList = associationList; $f.car = car; $f.cdr = cdr; $f.e = e; $f.obj = obj; $f.ok = ok; $f.ok$1 = ok$1; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Assoc = Assoc; Null = function(e, obj) { var e, obj; if ($interfaceIsEqual(obj, $pkg.Nil)) { return [$pkg.T, $ifaceNil]; } return [$pkg.Nil, $ifaceNil]; }; $pkg.Null = Null; Not = function(e, obj) { var e, obj; if ($interfaceIsEqual(obj, $pkg.Nil)) { return [$pkg.T, $ifaceNil]; } return [$pkg.Nil, $ifaceNil]; }; $pkg.Not = Not; And = function(e, forms) { var _i, _r, _ref, _tuple, e, err, form, forms, ret, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tuple = $f._tuple; e = $f.e; err = $f.err; form = $f.form; forms = $f.forms; ret = $f.ret; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: ret = $ifaceNil; _ref = forms; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } form = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); err = $ifaceNil; _r = Eval($clone(e, env.Environment), form); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ret = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if ($interfaceIsEqual(ret, $pkg.Nil)) { $s = -1; return [$pkg.Nil, $ifaceNil]; } _i++; /* } */ $s = 1; continue; case 2: if (forms.$length === 0) { $s = -1; return [$pkg.T, $ifaceNil]; } $s = -1; return [ret, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: And }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.form = form; $f.forms = forms; $f.ret = ret; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.And = And; Or = function(e, forms) { var _i, _r, _ref, _tuple, e, err, form, forms, ret, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tuple = $f._tuple; e = $f.e; err = $f.err; form = $f.form; forms = $f.forms; ret = $f.ret; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: ret = $ifaceNil; _ref = forms; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } form = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); err = $ifaceNil; _r = Eval($clone(e, env.Environment), form); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ret = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if (!($interfaceIsEqual(ret, $pkg.Nil))) { $s = -1; return [ret, $ifaceNil]; } _i++; /* } */ $s = 1; continue; case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Or }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.form = form; $f.forms = forms; $f.ret = ret; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Or = Or; Defmacro = function(e, macroName, lambdaList, forms) { var _r, _r$1, _tuple, e, err, err$1, forms, lambdaList, macroName, ret, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e = $f.e; err = $f.err; err$1 = $f.err$1; forms = $f.forms; lambdaList = $f.lambdaList; macroName = $f.macroName; ret = $f.ret; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Symbol, new sliceType([macroName])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = newNamedFunction($clone(e, env.Environment), macroName, lambdaList, forms); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; ret = _tuple[0]; err$1 = _tuple[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } $subslice(e.Macro, 0, 1).Define(macroName, ret); $s = -1; return [macroName, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Defmacro }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.forms = forms; $f.lambdaList = lambdaList; $f.macroName = macroName; $f.ret = ret; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Defmacro = Defmacro; Quasiquote = function(e, form) { var _r, e, form, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; form = $f.form; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = expand($clone(e, env.Environment), form, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: Quasiquote }; } $f._r = _r; $f.e = e; $f.form = form; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Quasiquote = Quasiquote; expand = function(e, form, level) { var _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, caadr, cadadr, cadadr$1, cadadr$2, caddr, cadr, cdadr, cddr, cdr, e, elt, elt$1, elt$2, elt$3, elt$4, elt$5, err, err$1, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, exp, form, i, j, level, lst, lst$1, lst$2, lst$3, lst$4, lst$5, lst$6, lstlst, lstlst$1, lstlst$2, x, x$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$10 = $f._tuple$10; _tuple$11 = $f._tuple$11; _tuple$12 = $f._tuple$12; _tuple$13 = $f._tuple$13; _tuple$14 = $f._tuple$14; _tuple$15 = $f._tuple$15; _tuple$16 = $f._tuple$16; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; _tuple$8 = $f._tuple$8; _tuple$9 = $f._tuple$9; caadr = $f.caadr; cadadr = $f.cadadr; cadadr$1 = $f.cadadr$1; cadadr$2 = $f.cadadr$2; caddr = $f.caddr; cadr = $f.cadr; cdadr = $f.cdadr; cddr = $f.cddr; cdr = $f.cdr; e = $f.e; elt = $f.elt; elt$1 = $f.elt$1; elt$2 = $f.elt$2; elt$3 = $f.elt$3; elt$4 = $f.elt$4; elt$5 = $f.elt$5; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; err$4 = $f.err$4; err$5 = $f.err$5; err$6 = $f.err$6; err$7 = $f.err$7; err$8 = $f.err$8; err$9 = $f.err$9; exp = $f.exp; form = $f.form; i = $f.i; j = $f.j; level = $f.level; lst = $f.lst; lst$1 = $f.lst$1; lst$2 = $f.lst$2; lst$3 = $f.lst$3; lst$4 = $f.lst$4; lst$5 = $f.lst$5; lst$6 = $f.lst$6; lstlst = $f.lstlst; lstlst$1 = $f.lstlst$1; lstlst$2 = $f.lstlst$2; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.Cons, form); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!_r) { */ case 1: $s = -1; return [form, $ifaceNil]; /* } */ case 2: exp = new sliceType([]); cdr = form; /* while (true) { */ case 4: _r$1 = ilos.InstanceOf(class$1.Cons, cdr); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* if (!(_r$1)) { break; } */ if(!(_r$1)) { $s = 5; continue; } cadr = $assertType(cdr, ptrType$1).Car; cddr = $assertType(cdr, ptrType$1).Cdr; /* */ if ($interfaceIsEqual(cadr, instance.NewSymbol("UNQUOTE")) && (level === 0)) { $s = 7; continue; } /* */ $s = 8; continue; /* if ($interfaceIsEqual(cadr, instance.NewSymbol("UNQUOTE")) && (level === 0)) { */ case 7: caddr = $assertType(cddr, ptrType$1).Car; _r$2 = Eval($clone(e, env.Environment), caddr); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple = _r$2; elt = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } exp = $append(exp, elt); /* break; */ $s = 5; continue; /* } */ case 8: _r$3 = ilos.InstanceOf(class$1.Cons, cadr); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (!_r$3) { $s = 10; continue; } /* */ $s = 11; continue; /* if (!_r$3) { */ case 10: _tuple$1 = List($clone(e, env.Environment), new sliceType([cadr])); lst = _tuple$1[0]; err$1 = _tuple$1[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } exp = $append(exp, lst); cdr = $assertType(cdr, ptrType$1).Cdr; /* continue; */ $s = 4; continue; /* } */ case 11: caadr = $assertType(cadr, ptrType$1).Car; cdadr = $assertType(cadr, ptrType$1).Cdr; /* */ if ($interfaceIsEqual(caadr, instance.NewSymbol("UNQUOTE"))) { $s = 13; continue; } /* */ $s = 14; continue; /* if ($interfaceIsEqual(caadr, instance.NewSymbol("UNQUOTE"))) { */ case 13: cadadr = $assertType(cdadr, ptrType$1).Car; _tmp = $ifaceNil; _tmp$1 = $ifaceNil; elt$1 = _tmp; err$2 = _tmp$1; /* */ if (level === 0) { $s = 15; continue; } /* */ $s = 16; continue; /* if (level === 0) { */ case 15: _r$4 = Eval($clone(e, env.Environment), cadadr); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$2 = _r$4; elt$1 = _tuple$2[0]; err$2 = _tuple$2[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } _tuple$3 = List($clone(e, env.Environment), new sliceType([elt$1])); lst$1 = _tuple$3[0]; err$3 = _tuple$3[1]; if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = -1; return [$ifaceNil, err$3]; } exp = $append(exp, lst$1); cdr = $assertType(cdr, ptrType$1).Cdr; /* continue; */ $s = 4; continue; $s = 17; continue; /* } else { */ case 16: _r$5 = expand($clone(e, env.Environment), cadadr, level - 1 >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$4 = _r$5; elt$1 = _tuple$4[0]; err$2 = _tuple$4[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } _tuple$5 = List($clone(e, env.Environment), new sliceType([caadr, elt$1])); lst$2 = _tuple$5[0]; err$4 = _tuple$5[1]; if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = -1; return [$ifaceNil, err$4]; } _tuple$6 = List($clone(e, env.Environment), new sliceType([lst$2])); lstlst = _tuple$6[0]; err$4 = _tuple$6[1]; if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = -1; return [$ifaceNil, err$4]; } exp = $append(exp, lstlst); cdr = $assertType(cdr, ptrType$1).Cdr; /* continue; */ $s = 4; continue; /* } */ case 17: /* } */ case 14: /* */ if ($interfaceIsEqual(caadr, instance.NewSymbol("UNQUOTE-SPLICING"))) { $s = 20; continue; } /* */ $s = 21; continue; /* if ($interfaceIsEqual(caadr, instance.NewSymbol("UNQUOTE-SPLICING"))) { */ case 20: cadadr$1 = $assertType(cdadr, ptrType$1).Car; /* */ if (level === 0) { $s = 22; continue; } /* */ $s = 23; continue; /* if (level === 0) { */ case 22: _r$6 = Eval($clone(e, env.Environment), cadadr$1); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _tuple$7 = _r$6; elt$2 = _tuple$7[0]; err$5 = _tuple$7[1]; if (!($interfaceIsEqual(err$5, $ifaceNil))) { $s = -1; return [$ifaceNil, err$5]; } exp = $append(exp, elt$2); cdr = $assertType(cdr, ptrType$1).Cdr; /* continue; */ $s = 4; continue; $s = 24; continue; /* } else { */ case 23: _r$7 = expand($clone(e, env.Environment), cadadr$1, level - 1 >> 0); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple$8 = _r$7; elt$3 = _tuple$8[0]; err$6 = _tuple$8[1]; if (!($interfaceIsEqual(err$6, $ifaceNil))) { $s = -1; return [$ifaceNil, err$6]; } _tuple$9 = List($clone(e, env.Environment), new sliceType([caadr, elt$3])); lst$3 = _tuple$9[0]; err$6 = _tuple$9[1]; if (!($interfaceIsEqual(err$6, $ifaceNil))) { $s = -1; return [$ifaceNil, err$6]; } _tuple$10 = List($clone(e, env.Environment), new sliceType([lst$3])); lstlst$1 = _tuple$10[0]; err$6 = _tuple$10[1]; if (!($interfaceIsEqual(err$6, $ifaceNil))) { $s = -1; return [$ifaceNil, err$6]; } exp = $append(exp, lstlst$1); cdr = $assertType(cdr, ptrType$1).Cdr; /* continue; */ $s = 4; continue; /* } */ case 24: /* } */ case 21: /* */ if ($interfaceIsEqual(caadr, instance.NewSymbol("QUASIQUOTE"))) { $s = 27; continue; } /* */ $s = 28; continue; /* if ($interfaceIsEqual(caadr, instance.NewSymbol("QUASIQUOTE"))) { */ case 27: cadadr$2 = $assertType(cdadr, ptrType$1).Car; _r$8 = expand($clone(e, env.Environment), cadadr$2, level + 1 >> 0); /* */ $s = 29; case 29: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _tuple$11 = _r$8; elt$4 = _tuple$11[0]; err$7 = _tuple$11[1]; if (!($interfaceIsEqual(err$7, $ifaceNil))) { $s = -1; return [$ifaceNil, err$7]; } _tuple$12 = List($clone(e, env.Environment), new sliceType([caadr, elt$4])); lst$4 = _tuple$12[0]; err$7 = _tuple$12[1]; if (!($interfaceIsEqual(err$7, $ifaceNil))) { $s = -1; return [$ifaceNil, err$7]; } _tuple$13 = List($clone(e, env.Environment), new sliceType([lst$4])); lstlst$2 = _tuple$13[0]; err$7 = _tuple$13[1]; if (!($interfaceIsEqual(err$7, $ifaceNil))) { $s = -1; return [$ifaceNil, err$7]; } exp = $append(exp, lstlst$2); cdr = $assertType(cdr, ptrType$1).Cdr; /* continue; */ $s = 4; continue; /* } */ case 28: _r$9 = expand($clone(e, env.Environment), cadr, level); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _tuple$14 = _r$9; elt$5 = _tuple$14[0]; err$8 = _tuple$14[1]; if (!($interfaceIsEqual(err$8, $ifaceNil))) { $s = -1; return [$ifaceNil, err$8]; } _tuple$15 = List($clone(e, env.Environment), new sliceType([elt$5])); lst$5 = _tuple$15[0]; err$8 = _tuple$15[1]; if (!($interfaceIsEqual(err$8, $ifaceNil))) { $s = -1; return [$ifaceNil, err$8]; } exp = $append(exp, lst$5); cdr = cddr; /* continue; */ $s = 4; continue; /* } */ $s = 4; continue; case 5: _r$10 = ilos.InstanceOf((x = class$1.Null, new x.constructor.elem(x)), cdr); /* */ $s = 33; case 33: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } /* */ if (_r$10) { $s = 31; continue; } /* */ $s = 32; continue; /* if (_r$10) { */ case 31: exp = $append(exp, $pkg.Nil); /* } */ case 32: lst$6 = (x$1 = exp.$length - 1 >> 0, ((x$1 < 0 || x$1 >= exp.$length) ? ($throwRuntimeError("index out of range"), undefined) : exp.$array[exp.$offset + x$1])); i = exp.$length - 2 >> 0; /* while (true) { */ case 34: /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 35; continue; } _r$11 = ilos.InstanceOf(class$1.List, lst$6); /* */ $s = 39; case 39: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } /* */ if (_r$11) { $s = 36; continue; } /* */ $s = 37; continue; /* if (_r$11) { */ case 36: err$9 = $ifaceNil; _r$12 = Append($clone(e, env.Environment), new sliceType([((i < 0 || i >= exp.$length) ? ($throwRuntimeError("index out of range"), undefined) : exp.$array[exp.$offset + i]), lst$6])); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } _tuple$16 = _r$12; lst$6 = _tuple$16[0]; err$9 = _tuple$16[1]; if (!($interfaceIsEqual(err$9, $ifaceNil))) { $s = -1; return [$ifaceNil, err$9]; } $s = 38; continue; /* } else { */ case 37: _r$13 = $assertType(((i < 0 || i >= exp.$length) ? ($throwRuntimeError("index out of range"), undefined) : exp.$array[exp.$offset + i]), instance.List).Length(); /* */ $s = 41; case 41: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } j = _r$13 - 1 >> 0; /* while (true) { */ case 42: /* if (!(j >= 0)) { break; } */ if(!(j >= 0)) { $s = 43; continue; } _r$14 = $assertType(((i < 0 || i >= exp.$length) ? ($throwRuntimeError("index out of range"), undefined) : exp.$array[exp.$offset + i]), instance.List).Nth(j); /* */ $s = 44; case 44: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } _r$15 = instance.NewCons(_r$14, lst$6); /* */ $s = 45; case 45: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } lst$6 = _r$15; j = j - (1) >> 0; /* } */ $s = 42; continue; case 43: /* } */ case 38: i = i - (1) >> 0; /* } */ $s = 34; continue; case 35: $s = -1; return [lst$6, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: expand }; } $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$10 = _tuple$10; $f._tuple$11 = _tuple$11; $f._tuple$12 = _tuple$12; $f._tuple$13 = _tuple$13; $f._tuple$14 = _tuple$14; $f._tuple$15 = _tuple$15; $f._tuple$16 = _tuple$16; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f._tuple$8 = _tuple$8; $f._tuple$9 = _tuple$9; $f.caadr = caadr; $f.cadadr = cadadr; $f.cadadr$1 = cadadr$1; $f.cadadr$2 = cadadr$2; $f.caddr = caddr; $f.cadr = cadr; $f.cdadr = cdadr; $f.cddr = cddr; $f.cdr = cdr; $f.e = e; $f.elt = elt; $f.elt$1 = elt$1; $f.elt$2 = elt$2; $f.elt$3 = elt$3; $f.elt$4 = elt$4; $f.elt$5 = elt$5; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.err$4 = err$4; $f.err$5 = err$5; $f.err$6 = err$6; $f.err$7 = err$7; $f.err$8 = err$8; $f.err$9 = err$9; $f.exp = exp; $f.form = form; $f.i = i; $f.j = j; $f.level = level; $f.lst = lst; $f.lst$1 = lst$1; $f.lst$2 = lst$2; $f.lst$3 = lst$3; $f.lst$4 = lst$4; $f.lst$5 = lst$5; $f.lst$6 = lst$6; $f.lstlst = lstlst; $f.lstlst$1 = lstlst$1; $f.lstlst$2 = lstlst$2; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; }; checkLambdaList = function(e, lambdaList) { var _arg, _arg$1, _arg$2, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, cadr, e, err, err$1, i, lambdaList, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; _tuple = $f._tuple; cadr = $f.cadr; e = $f.e; err = $f.err; err$1 = $f.err$1; i = $f.i; lambdaList = $f.lambdaList; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.List, new sliceType([lambdaList])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } _r$1 = $assertType(lambdaList, instance.List).Slice(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _ref = _r$1; _i = 0; /* while (true) { */ case 3: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } i = _i; cadr = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); /* */ if ($interfaceIsEqual(cadr, instance.NewSymbol(":REST")) || $interfaceIsEqual(cadr, instance.NewSymbol("&REST"))) { $s = 5; continue; } /* */ $s = 6; continue; /* if ($interfaceIsEqual(cadr, instance.NewSymbol(":REST")) || $interfaceIsEqual(cadr, instance.NewSymbol("&REST"))) { */ case 5: _r$2 = $assertType(lambdaList, instance.List).Length(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (!((_r$2 === (i + 2 >> 0)))) { $s = 7; continue; } /* */ $s = 8; continue; /* if (!((_r$2 === (i + 2 >> 0)))) { */ case 7: _arg = $clone(e, env.Environment); _r$3 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$1 = _r$3; _arg$2 = $pkg.Nil; _r$4 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple = _r$4; err$1 = _tuple[1]; $s = -1; return err$1; /* } */ case 8: /* } */ case 6: _i++; /* } */ $s = 3; continue; case 4: $s = -1; return $ifaceNil; /* */ } return; } if ($f === undefined) { $f = { $blk: checkLambdaList }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f._tuple = _tuple; $f.cadr = cadr; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.i = i; $f.lambdaList = lambdaList; $f.$s = $s; $f.$r = $r; return $f; }; newNamedFunction = function(e, functionName, lambdaList, forms) { var _i, _r, _r$1, _r$2, _ref, cadr, e, err, err$1, forms, functionName, lambdaList, lexical, parameters, variadic, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; cadr = $f.cadr; e = $f.e; err = $f.err; err$1 = $f.err$1; forms = $f.forms; functionName = $f.functionName; lambdaList = $f.lambdaList; lexical = $f.lexical; parameters = $f.parameters; variadic = $f.variadic; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: forms = [forms]; lexical = [lexical]; parameters = [parameters]; variadic = [variadic]; lexical[0] = $clone(e, env.Environment); _r = ensure($clone(e, env.Environment), class$1.Symbol, new sliceType([functionName])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = checkLambdaList($clone(e, env.Environment), lambdaList); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } err$1 = _r$1; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } parameters[0] = new sliceType([]); variadic[0] = false; _r$2 = $assertType(lambdaList, instance.List).Slice(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _ref = _r$2; _i = 0; /* while (true) { */ case 4: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } cadr = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if ($interfaceIsEqual(cadr, instance.NewSymbol(":REST")) || $interfaceIsEqual(cadr, instance.NewSymbol("&REST"))) { variadic[0] = true; } parameters[0] = $append(parameters[0], cadr); _i++; /* } */ $s = 4; continue; case 5: $s = -1; return [instance.NewFunction(new instance.Symbol($assertType(functionName, instance.Symbol)), new funcType$2((function(forms, lexical, parameters, variadic) { return function $b(e$1, arguments$1) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _i$1, _r$10, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref$1, _tuple, arguments$1, e$1, err$2, idx, key, key$1, value, value$1, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _arg$8 = $f._arg$8; _i$1 = $f._i$1; _r$10 = $f._r$10; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref$1 = $f._ref$1; _tuple = $f._tuple; arguments$1 = $f.arguments$1; e$1 = $f.e$1; err$2 = $f.err$2; idx = $f.idx; key = $f.key; key$1 = $f.key$1; value = $f.value; value$1 = $f.value$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: e$1.MergeLexical($clone(lexical[0], env.Environment)); /* */ if ((variadic[0] && (parameters[0].$length - 2 >> 0) > arguments$1.$length) || (!variadic[0] && !((parameters[0].$length === arguments$1.$length)))) { $s = 1; continue; } /* */ $s = 2; continue; /* if ((variadic[0] && (parameters[0].$length - 2 >> 0) > arguments$1.$length) || (!variadic[0] && !((parameters[0].$length === arguments$1.$length)))) { */ case 1: _arg = $clone(e$1, env.Environment); _r$3 = instance.NewArityError($clone(e$1, env.Environment)); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$1 = _r$3; _arg$2 = $pkg.Nil; _r$4 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 2: _ref$1 = parameters[0]; _i$1 = 0; /* while (true) { */ case 5: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } idx = _i$1; key = ((idx < 0 || idx >= parameters[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : parameters[0].$array[parameters[0].$offset + idx]); /* */ if ($interfaceIsEqual(key, instance.NewSymbol(":REST")) || $interfaceIsEqual(key, instance.NewSymbol("&REST"))) { $s = 7; continue; } /* */ $s = 8; continue; /* if ($interfaceIsEqual(key, instance.NewSymbol(":REST")) || $interfaceIsEqual(key, instance.NewSymbol("&REST"))) { */ case 7: key$1 = (x = idx + 1 >> 0, ((x < 0 || x >= parameters[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : parameters[0].$array[parameters[0].$offset + x])); _tuple = List($clone(e$1, env.Environment), $subslice(arguments$1, idx)); value = _tuple[0]; err$2 = _tuple[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } /* */ if (!e$1.Variable.Define(key$1, value)) { $s = 9; continue; } /* */ $s = 10; continue; /* if (!e$1.Variable.Define(key$1, value)) { */ case 9: _arg$3 = $clone(e$1, env.Environment); _r$5 = instance.NewImmutableBinding($clone(e$1, env.Environment)); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$4 = _r$5; _arg$5 = $pkg.Nil; _r$6 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* } */ case 10: /* break; */ $s = 6; continue; /* } */ case 8: value$1 = ((idx < 0 || idx >= arguments$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + idx]); /* */ if (!e$1.Variable.Define(key, value$1)) { $s = 13; continue; } /* */ $s = 14; continue; /* if (!e$1.Variable.Define(key, value$1)) { */ case 13: _r$7 = fmt.Print(new sliceType$3([key, value$1])); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _r$7; _arg$6 = $clone(e$1, env.Environment); _r$8 = instance.NewImmutableBinding($clone(e$1, env.Environment)); /* */ $s = 16; case 16: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _arg$7 = _r$8; _arg$8 = $pkg.Nil; _r$9 = SignalCondition(_arg$6, _arg$7, _arg$8); /* */ $s = 17; case 17: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } $s = -1; return _r$9; /* } */ case 14: _i$1++; /* } */ $s = 5; continue; case 6: _r$10 = Progn($clone(e$1, env.Environment), forms[0]); /* */ $s = 18; case 18: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } $s = -1; return _r$10; /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._arg$8 = _arg$8; $f._i$1 = _i$1; $f._r$10 = _r$10; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f.arguments$1 = arguments$1; $f.e$1 = e$1; $f.err$2 = err$2; $f.idx = idx; $f.key = key; $f.key$1 = key$1; $f.value = value; $f.value$1 = value$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; })(forms, lexical, parameters, variadic))), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: newNamedFunction }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f.cadr = cadr; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.forms = forms; $f.functionName = functionName; $f.lambdaList = lambdaList; $f.lexical = lexical; $f.parameters = parameters; $f.variadic = variadic; $f.$s = $s; $f.$r = $r; return $f; }; Block = function(e, tag, body) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, body, cadr, e, err, fail, obj, sucess, tag, tag1, uid, uid1, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _v = $f._v; body = $f.body; cadr = $f.cadr; e = $f.e; err = $f.err; fail = $f.fail; obj = $f.obj; sucess = $f.sucess; tag = $f.tag; tag1 = $f.tag1; uid = $f.uid; uid1 = $f.uid1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: err = $ifaceNil; _r = Eval($clone(e, env.Environment), tag); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; tag = _tuple[0]; err = _tuple[1]; uid = instance.NewInteger(uniqueInt()); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = ilos.InstanceOf(class$1.Number, tag); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } if (_r$1) { _v = true; $s = 4; continue s; } _r$2 = ilos.InstanceOf(class$1.Character, tag); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _v = _r$2; case 4: /* */ if (_v) { $s = 2; continue; } /* */ $s = 3; continue; /* if (_v) { */ case 2: _arg = $clone(e, env.Environment); _r$3 = instance.NewDomainError($clone(e, env.Environment), tag, (x = class$1.Object, new x.constructor.elem(x))); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$1 = _r$3; _arg$2 = $pkg.Nil; _r$4 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 3: /* */ if (!e.BlockTag.Define(tag, uid)) { $s = 9; continue; } /* */ $s = 10; continue; /* if (!e.BlockTag.Define(tag, uid)) { */ case 9: _arg$3 = $clone(e, env.Environment); _r$5 = instance.NewImmutableBinding($clone(e, env.Environment)); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$4 = _r$5; _arg$5 = $pkg.Nil; _r$6 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* } */ case 10: fail = $ifaceNil; sucess = $pkg.Nil; _ref = body; _i = 0; /* while (true) { */ case 13: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 14; continue; } cadr = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$7 = Eval($clone(e, env.Environment), cadr); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple$1 = _r$7; sucess = _tuple$1[0]; fail = _tuple$1[1]; /* */ if (!($interfaceIsEqual(fail, $ifaceNil))) { $s = 16; continue; } /* */ $s = 17; continue; /* if (!($interfaceIsEqual(fail, $ifaceNil))) { */ case 16: _r$8 = ilos.InstanceOf(class$1.BlockTag, fail); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } /* */ if (_r$8) { $s = 18; continue; } /* */ $s = 19; continue; /* if (_r$8) { */ case 18: _r$9 = $clone($assertType(fail, instance.Instance), instance.Instance).GetSlotValue(instance.NewSymbol("IRIS.TAG"), class$1.Escape); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _tuple$2 = _r$9; tag1 = _tuple$2[0]; _r$10 = $clone($assertType(fail, instance.Instance), instance.Instance).GetSlotValue(instance.NewSymbol("IRIS.UID"), class$1.Escape); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _tuple$3 = _r$10; uid1 = _tuple$3[0]; /* */ if ($interfaceIsEqual(tag, tag1) && $interfaceIsEqual(uid, uid1)) { $s = 23; continue; } /* */ $s = 24; continue; /* if ($interfaceIsEqual(tag, tag1) && $interfaceIsEqual(uid, uid1)) { */ case 23: _r$11 = $clone($assertType(fail, instance.Instance), instance.Instance).GetSlotValue(instance.NewSymbol("IRIS.OBJECT"), class$1.BlockTag); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _tuple$4 = _r$11; obj = _tuple$4[0]; $s = -1; return [obj, $ifaceNil]; /* } */ case 24: /* } */ case 19: $s = -1; return [$ifaceNil, fail]; /* } */ case 17: _i++; /* } */ $s = 13; continue; case 14: $s = -1; return [sucess, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Block }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._v = _v; $f.body = body; $f.cadr = cadr; $f.e = e; $f.err = err; $f.fail = fail; $f.obj = obj; $f.sucess = sucess; $f.tag = tag; $f.tag1 = tag1; $f.uid = uid; $f.uid1 = uid1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Block = Block; ReturnFrom = function(e, tag, object) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _tuple$2, _v, e, err, object, ok, tag, uid, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _v = $f._v; e = $f.e; err = $f.err; object = $f.object; ok = $f.ok; tag = $f.tag; uid = $f.uid; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: err = $ifaceNil; _r = Eval($clone(e, env.Environment), tag); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; tag = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = ilos.InstanceOf(class$1.Number, tag); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } if (_r$1) { _v = true; $s = 4; continue s; } _r$2 = ilos.InstanceOf(class$1.Character, tag); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _v = _r$2; case 4: /* */ if (_v) { $s = 2; continue; } /* */ $s = 3; continue; /* if (_v) { */ case 2: _arg = $clone(e, env.Environment); _r$3 = instance.NewDomainError($clone(e, env.Environment), tag, (x = class$1.Object, new x.constructor.elem(x))); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$1 = _r$3; _arg$2 = $pkg.Nil; _r$4 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 3: _r$5 = Eval($clone(e, env.Environment), object); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$1 = _r$5; object = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _tuple$2 = e.BlockTag.Get(tag); uid = _tuple$2[0]; ok = _tuple$2[1]; /* */ if (!ok) { $s = 10; continue; } /* */ $s = 11; continue; /* if (!ok) { */ case 10: _arg$3 = $clone(e, env.Environment); _r$6 = instance.NewControlError($clone(e, env.Environment)); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _arg$4 = _r$6; _arg$5 = $pkg.Nil; _r$7 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $s = -1; return _r$7; /* } */ case 11: _r$8 = instance.NewBlockTag(tag, uid, object); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$8]; /* */ } return; } if ($f === undefined) { $f = { $blk: ReturnFrom }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._v = _v; $f.e = e; $f.err = err; $f.object = object; $f.ok = ok; $f.tag = tag; $f.uid = uid; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.ReturnFrom = ReturnFrom; Catch = function(e, tag, body) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, body, cadr, e, err, fail, obj, sucess, tag, tag1, uid, uid1, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _v = $f._v; body = $f.body; cadr = $f.cadr; e = $f.e; err = $f.err; fail = $f.fail; obj = $f.obj; sucess = $f.sucess; tag = $f.tag; tag1 = $f.tag1; uid = $f.uid; uid1 = $f.uid1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: err = $ifaceNil; _r = Eval($clone(e, env.Environment), tag); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; tag = _tuple[0]; err = _tuple[1]; uid = instance.NewInteger(uniqueInt()); if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = ilos.InstanceOf(class$1.Number, tag); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } if (_r$1) { _v = true; $s = 4; continue s; } _r$2 = ilos.InstanceOf(class$1.Character, tag); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _v = _r$2; case 4: /* */ if (_v) { $s = 2; continue; } /* */ $s = 3; continue; /* if (_v) { */ case 2: _arg = $clone(e, env.Environment); _r$3 = instance.NewDomainError($clone(e, env.Environment), tag, (x = class$1.Object, new x.constructor.elem(x))); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$1 = _r$3; _arg$2 = $pkg.Nil; _r$4 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 3: /* */ if (!e.CatchTag.Define(tag, uid)) { $s = 9; continue; } /* */ $s = 10; continue; /* if (!e.CatchTag.Define(tag, uid)) { */ case 9: _arg$3 = $clone(e, env.Environment); _r$5 = instance.NewImmutableBinding($clone(e, env.Environment)); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$4 = _r$5; _arg$5 = $pkg.Nil; _r$6 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* } */ case 10: fail = $ifaceNil; sucess = $pkg.Nil; _ref = body; _i = 0; /* while (true) { */ case 13: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 14; continue; } cadr = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$7 = Eval($clone(e, env.Environment), cadr); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple$1 = _r$7; sucess = _tuple$1[0]; fail = _tuple$1[1]; /* */ if (!($interfaceIsEqual(fail, $ifaceNil))) { $s = 16; continue; } /* */ $s = 17; continue; /* if (!($interfaceIsEqual(fail, $ifaceNil))) { */ case 16: _r$8 = ilos.InstanceOf(class$1.CatchTag, fail); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } /* */ if (_r$8) { $s = 18; continue; } /* */ $s = 19; continue; /* if (_r$8) { */ case 18: _r$9 = $clone($assertType(fail, instance.Instance), instance.Instance).GetSlotValue(instance.NewSymbol("IRIS.TAG"), class$1.Escape); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _tuple$2 = _r$9; tag1 = _tuple$2[0]; _r$10 = $clone($assertType(fail, instance.Instance), instance.Instance).GetSlotValue(instance.NewSymbol("IRIS.UID"), class$1.Escape); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _tuple$3 = _r$10; uid1 = _tuple$3[0]; /* */ if ($interfaceIsEqual(tag, tag1) && $interfaceIsEqual(uid, uid1)) { $s = 23; continue; } /* */ $s = 24; continue; /* if ($interfaceIsEqual(tag, tag1) && $interfaceIsEqual(uid, uid1)) { */ case 23: _r$11 = $clone($assertType(fail, instance.Instance), instance.Instance).GetSlotValue(instance.NewSymbol("IRIS.OBJECT"), class$1.CatchTag); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _tuple$4 = _r$11; obj = _tuple$4[0]; $s = -1; return [obj, $ifaceNil]; /* } */ case 24: /* } */ case 19: $s = -1; return [$ifaceNil, fail]; /* } */ case 17: _i++; /* } */ $s = 13; continue; case 14: $s = -1; return [sucess, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Catch }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._v = _v; $f.body = body; $f.cadr = cadr; $f.e = e; $f.err = err; $f.fail = fail; $f.obj = obj; $f.sucess = sucess; $f.tag = tag; $f.tag1 = tag1; $f.uid = uid; $f.uid1 = uid1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Catch = Catch; Throw = function(e, tag, object) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _tuple$2, _v, e, err, object, ok, tag, uid, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _v = $f._v; e = $f.e; err = $f.err; object = $f.object; ok = $f.ok; tag = $f.tag; uid = $f.uid; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: err = $ifaceNil; _r = Eval($clone(e, env.Environment), tag); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; tag = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = ilos.InstanceOf(class$1.Number, tag); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } if (_r$1) { _v = true; $s = 4; continue s; } _r$2 = ilos.InstanceOf(class$1.Character, tag); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _v = _r$2; case 4: /* */ if (_v) { $s = 2; continue; } /* */ $s = 3; continue; /* if (_v) { */ case 2: _arg = $clone(e, env.Environment); _r$3 = instance.NewDomainError($clone(e, env.Environment), tag, (x = class$1.Object, new x.constructor.elem(x))); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$1 = _r$3; _arg$2 = $pkg.Nil; _r$4 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 3: _r$5 = Eval($clone(e, env.Environment), object); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$1 = _r$5; object = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _tuple$2 = e.CatchTag.Get(tag); uid = _tuple$2[0]; ok = _tuple$2[1]; /* */ if (!ok) { $s = 10; continue; } /* */ $s = 11; continue; /* if (!ok) { */ case 10: _arg$3 = $clone(e, env.Environment); _r$6 = instance.NewControlError($clone(e, env.Environment)); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _arg$4 = _r$6; _arg$5 = $pkg.Nil; _r$7 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $s = -1; return _r$7; /* } */ case 11: _r$8 = instance.NewCatchTag(tag, uid, object); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$8]; /* */ } return; } if ($f === undefined) { $f = { $blk: Throw }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._v = _v; $f.e = e; $f.err = err; $f.object = object; $f.ok = ok; $f.tag = tag; $f.uid = uid; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Throw = Throw; Tagbody = function(e, body) { var _arg, _arg$1, _arg$2, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, _tuple$3, body, cadr, cadr$1, e, fail, form, found, idx, tag, tag1, uid, uid1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _i$3 = $f._i$3; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _ref$3 = $f._ref$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; body = $f.body; cadr = $f.cadr; cadr$1 = $f.cadr$1; e = $f.e; fail = $f.fail; form = $f.form; found = $f.found; idx = $f.idx; tag = $f.tag; tag1 = $f.tag1; uid = $f.uid; uid1 = $f.uid1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: uid = instance.NewInteger(uniqueInt()); _ref = body; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } cadr = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r = ilos.InstanceOf(class$1.Cons, cadr); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!_r) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!_r) { */ case 3: /* */ if (!e.TagbodyTag.Define(cadr, uid)) { $s = 6; continue; } /* */ $s = 7; continue; /* if (!e.TagbodyTag.Define(cadr, uid)) { */ case 6: _arg = $clone(e, env.Environment); _r$1 = instance.NewImmutableBinding($clone(e, env.Environment)); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 7: /* } */ case 4: _i++; /* } */ $s = 1; continue; case 2: _ref$1 = body; _i$1 = 0; /* while (true) { */ case 10: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 11; continue; } idx = _i$1; cadr$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); _r$3 = ilos.InstanceOf(class$1.Cons, cadr$1); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3) { $s = 12; continue; } /* */ $s = 13; continue; /* if (_r$3) { */ case 12: _r$4 = Eval($clone(e, env.Environment), cadr$1); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple = _r$4; fail = _tuple[1]; /* */ if (!($interfaceIsEqual(fail, $ifaceNil))) { $s = 16; continue; } /* */ $s = 17; continue; /* if (!($interfaceIsEqual(fail, $ifaceNil))) { */ case 16: /* TAG: */ case 18: _r$5 = ilos.InstanceOf(class$1.TagbodyTag, fail); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } /* */ if (_r$5) { $s = 19; continue; } /* */ $s = 20; continue; /* if (_r$5) { */ case 19: _r$6 = $clone($assertType(fail, instance.Instance), instance.Instance).GetSlotValue(instance.NewSymbol("IRIS.TAG"), class$1.Escape); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _tuple$1 = _r$6; tag1 = _tuple$1[0]; _r$7 = $clone($assertType(fail, instance.Instance), instance.Instance).GetSlotValue(instance.NewSymbol("IRIS.UID"), class$1.Escape); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple$2 = _r$7; uid1 = _tuple$2[0]; found = false; _ref$2 = body; _i$2 = 0; while (true) { if (!(_i$2 < _ref$2.$length)) { break; } tag = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); if ($interfaceIsEqual(tag, tag1) && $interfaceIsEqual(uid, uid1)) { found = true; break; } _i$2++; } /* */ if (found) { $s = 24; continue; } /* */ $s = 25; continue; /* if (found) { */ case 24: _ref$3 = $subslice(body, (idx + 1 >> 0)); _i$3 = 0; /* while (true) { */ case 26: /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 27; continue; } form = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); _r$8 = ilos.InstanceOf(class$1.Cons, form); /* */ $s = 30; case 30: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } /* */ if (_r$8) { $s = 28; continue; } /* */ $s = 29; continue; /* if (_r$8) { */ case 28: _r$9 = Eval($clone(e, env.Environment), form); /* */ $s = 31; case 31: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _tuple$3 = _r$9; fail = _tuple$3[1]; /* */ if (!($interfaceIsEqual(fail, $ifaceNil))) { $s = 32; continue; } /* */ $s = 33; continue; /* if (!($interfaceIsEqual(fail, $ifaceNil))) { */ case 32: /* goto TAG */ $s = 18; continue; /* } */ case 33: /* } */ case 29: _i$3++; /* } */ $s = 26; continue; case 27: /* break; */ $s = 11; continue; /* } */ case 25: /* } */ case 20: $s = -1; return [$ifaceNil, fail]; /* } */ case 17: /* } */ case 13: _i$1++; /* } */ $s = 10; continue; case 11: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Tagbody }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._i$3 = _i$3; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._ref$3 = _ref$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.body = body; $f.cadr = cadr; $f.cadr$1 = cadr$1; $f.e = e; $f.fail = fail; $f.form = form; $f.found = found; $f.idx = idx; $f.tag = tag; $f.tag1 = tag1; $f.uid = uid; $f.uid1 = uid1; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Tagbody = Tagbody; Go = function(e, tag) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, e, ok, tag, uid, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; e = $f.e; ok = $f.ok; tag = $f.tag; uid = $f.uid; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tuple = e.TagbodyTag.Get(tag); uid = _tuple[0]; ok = _tuple[1]; /* */ if (!ok) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!ok) { */ case 1: _arg = $clone(e, env.Environment); _r = instance.NewControlError($clone(e, env.Environment)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; _arg$2 = $pkg.Nil; _r$1 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 2: _r$2 = instance.NewTagbodyTag(tag, uid); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$2]; /* */ } return; } if ($f === undefined) { $f = { $blk: Go }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f.e = e; $f.ok = ok; $f.tag = tag; $f.uid = uid; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Go = Go; UnwindProtect = function(e, form, cleanupForms) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, cleanupForms, e, err1, err2, form, ret1, ret2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; cleanupForms = $f.cleanupForms; e = $f.e; err1 = $f.err1; err2 = $f.err2; form = $f.form; ret1 = $f.ret1; ret2 = $f.ret2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Eval($clone(e, env.Environment), form); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ret1 = _tuple[0]; err1 = _tuple[1]; _r$1 = Progn($clone(e, env.Environment), cleanupForms); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; ret2 = _tuple$1[0]; err2 = _tuple$1[1]; _r$2 = ilos.InstanceOf(class$1.Escape, err2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (_r$2) { $s = 3; continue; } /* */ $s = 4; continue; /* if (_r$2) { */ case 3: _arg = $clone(e, env.Environment); _r$3 = instance.NewControlError($clone(e, env.Environment)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$1 = _r$3; _arg$2 = $pkg.Nil; _r$4 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 4: if (!($interfaceIsEqual(err2, $ifaceNil))) { $s = -1; return [ret2, err2]; } $s = -1; return [ret1, err1]; /* */ } return; } if ($f === undefined) { $f = { $blk: UnwindProtect }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.cleanupForms = cleanupForms; $f.e = e; $f.err1 = err1; $f.err2 = err2; $f.form = form; $f.ret1 = ret1; $f.ret2 = ret2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.UnwindProtect = UnwindProtect; Numberp = function(e, obj) { var _r, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.Number, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Numberp }; } $f._r = _r; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Numberp = Numberp; ParseNumber = function(e, str) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _v, e, err, err$1, ret, str, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _v = $f._v; e = $f.e; err = $f.err; err$1 = $f.err$1; ret = $f.ret; str = $f.str; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.String, new sliceType([str])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = parser.ParseAtom(($runesToString($assertType(str, instance.String)))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; ret = _tuple[0]; err$1 = _tuple[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { _v = true; $s = 5; continue s; } _r$2 = ilos.InstanceOf(class$1.Number, ret); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _v = !_r$2; case 5: /* */ if (_v) { $s = 3; continue; } /* */ $s = 4; continue; /* if (_v) { */ case 3: _arg = $clone(e, env.Environment); _r$3 = instance.NewParseError($clone(e, env.Environment), str, class$1.Number); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$1 = _r$3; _arg$2 = $pkg.Nil; _r$4 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 4: $s = -1; return [ret, err$1]; /* */ } return; } if ($f === undefined) { $f = { $blk: ParseNumber }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._v = _v; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.ret = ret; $f.str = str; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.ParseNumber = ParseNumber; NumberEqual = function(e, x1, x2) { var _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, _v$2, _v$3, e, err, ret, x1, x2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; _v$3 = $f._v$3; e = $f.e; err = $f.err; ret = $f.ret; x1 = $f.x1; x2 = $f.x2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Number, new sliceType([x1, x2])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } ret = false; _r$1 = ilos.InstanceOf(class$1.Integer, x1); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } if (!(_r$1)) { _v = false; $s = 8; continue s; } _r$2 = ilos.InstanceOf(class$1.Integer, x2); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _v = _r$2; case 8: /* */ if (_v) { $s = 3; continue; } _r$3 = ilos.InstanceOf(class$1.Integer, x1); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } if (!(_r$3)) { _v$1 = false; $s = 11; continue s; } _r$4 = ilos.InstanceOf(class$1.Float, x2); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _v$1 = _r$4; case 11: /* */ if (_v$1) { $s = 4; continue; } _r$5 = ilos.InstanceOf(class$1.Float, x1); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } if (!(_r$5)) { _v$2 = false; $s = 14; continue s; } _r$6 = ilos.InstanceOf(class$1.Integer, x2); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _v$2 = _r$6; case 14: /* */ if (_v$2) { $s = 5; continue; } _r$7 = ilos.InstanceOf(class$1.Float, x1); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } if (!(_r$7)) { _v$3 = false; $s = 17; continue s; } _r$8 = ilos.InstanceOf(class$1.Float, x2); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _v$3 = _r$8; case 17: /* */ if (_v$3) { $s = 6; continue; } /* */ $s = 7; continue; /* if (_v) { */ case 3: ret = $interfaceIsEqual(x1, x2); $s = 7; continue; /* } else if (_v$1) { */ case 4: ret = ($assertType(x1, instance.Integer)) === ($assertType(x2, instance.Float)); $s = 7; continue; /* } else if (_v$2) { */ case 5: ret = ($assertType(x1, instance.Float)) === ($assertType(x2, instance.Integer)); $s = 7; continue; /* } else if (_v$3) { */ case 6: ret = $interfaceIsEqual(x1, x2); /* } */ case 7: case 2: if (ret) { $s = -1; return [$pkg.T, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: NumberEqual }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f._v$3 = _v$3; $f.e = e; $f.err = err; $f.ret = ret; $f.x1 = x1; $f.x2 = x2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NumberEqual = NumberEqual; NumberGreaterThan = function(e, x1, x2) { var _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, _v$2, _v$3, e, err, ret, x1, x2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; _v$3 = $f._v$3; e = $f.e; err = $f.err; ret = $f.ret; x1 = $f.x1; x2 = $f.x2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Number, new sliceType([x1, x2])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } ret = false; _r$1 = ilos.InstanceOf(class$1.Integer, x1); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } if (!(_r$1)) { _v = false; $s = 8; continue s; } _r$2 = ilos.InstanceOf(class$1.Integer, x2); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _v = _r$2; case 8: /* */ if (_v) { $s = 3; continue; } _r$3 = ilos.InstanceOf(class$1.Integer, x1); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } if (!(_r$3)) { _v$1 = false; $s = 11; continue s; } _r$4 = ilos.InstanceOf(class$1.Float, x2); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _v$1 = _r$4; case 11: /* */ if (_v$1) { $s = 4; continue; } _r$5 = ilos.InstanceOf(class$1.Float, x1); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } if (!(_r$5)) { _v$2 = false; $s = 14; continue s; } _r$6 = ilos.InstanceOf(class$1.Integer, x2); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _v$2 = _r$6; case 14: /* */ if (_v$2) { $s = 5; continue; } _r$7 = ilos.InstanceOf(class$1.Float, x1); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } if (!(_r$7)) { _v$3 = false; $s = 17; continue s; } _r$8 = ilos.InstanceOf(class$1.Float, x2); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _v$3 = _r$8; case 17: /* */ if (_v$3) { $s = 6; continue; } /* */ $s = 7; continue; /* if (_v) { */ case 3: ret = ($assertType(x1, instance.Integer)) > ($assertType(x2, instance.Integer)); $s = 7; continue; /* } else if (_v$1) { */ case 4: ret = ($assertType(x1, instance.Integer)) > ($assertType(x2, instance.Float)); $s = 7; continue; /* } else if (_v$2) { */ case 5: ret = ($assertType(x1, instance.Float)) > ($assertType(x2, instance.Integer)); $s = 7; continue; /* } else if (_v$3) { */ case 6: ret = ($assertType(x1, instance.Float)) > ($assertType(x2, instance.Float)); /* } */ case 7: case 2: if (ret) { $s = -1; return [$pkg.T, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: NumberGreaterThan }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f._v$3 = _v$3; $f.e = e; $f.err = err; $f.ret = ret; $f.x1 = x1; $f.x2 = x2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NumberGreaterThan = NumberGreaterThan; NumberGreaterThanOrEqual = function(e, x1, x2) { var _r, _r$1, _tuple, _tuple$1, e, eq, err, gt, x1, x2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; eq = $f.eq; err = $f.err; gt = $f.gt; x1 = $f.x1; x2 = $f.x2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = NumberGreaterThan($clone(e, env.Environment), x1, x2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; gt = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = NumberEqual($clone(e, env.Environment), x1, x2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; eq = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if ($interfaceIsEqual(gt, $pkg.Nil) && $interfaceIsEqual(eq, $pkg.Nil)) { $s = -1; return [$pkg.Nil, $ifaceNil]; } $s = -1; return [$pkg.T, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: NumberGreaterThanOrEqual }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.eq = eq; $f.err = err; $f.gt = gt; $f.x1 = x1; $f.x2 = x2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NumberGreaterThanOrEqual = NumberGreaterThanOrEqual; NumberLessThan = function(e, x1, x2) { var _r, _tuple, e, err, ge, x1, x2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; e = $f.e; err = $f.err; ge = $f.ge; x1 = $f.x1; x2 = $f.x2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = NumberGreaterThanOrEqual($clone(e, env.Environment), x1, x2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ge = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return Not($clone(e, env.Environment), ge); /* */ } return; } if ($f === undefined) { $f = { $blk: NumberLessThan }; } $f._r = _r; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.ge = ge; $f.x1 = x1; $f.x2 = x2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NumberLessThan = NumberLessThan; NumberLessThanOrEqual = function(e, x1, x2) { var _r, _tuple, e, err, gt, x1, x2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; e = $f.e; err = $f.err; gt = $f.gt; x1 = $f.x1; x2 = $f.x2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = NumberGreaterThan($clone(e, env.Environment), x1, x2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; gt = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return Not($clone(e, env.Environment), gt); /* */ } return; } if ($f === undefined) { $f = { $blk: NumberLessThanOrEqual }; } $f._r = _r; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.gt = gt; $f.x1 = x1; $f.x2 = x2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.NumberLessThanOrEqual = NumberLessThanOrEqual; Add = function(e, x) { var _i, _r, _ref, _tuple, a, b, e, err, f, flt, sum, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tuple = $f._tuple; a = $f.a; b = $f.b; e = $f.e; err = $f.err; f = $f.f; flt = $f.flt; sum = $f.sum; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: flt = false; sum = 0; _ref = x; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } a = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r = convFloat64($clone(e, env.Environment), a); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = _tuple[0]; b = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } flt = flt || b; sum = sum + (f); _i++; /* } */ $s = 1; continue; case 2: if (flt) { $s = -1; return [instance.NewFloat(sum), $ifaceNil]; } $s = -1; return [instance.NewInteger(((sum >> 0))), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Add }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tuple = _tuple; $f.a = a; $f.b = b; $f.e = e; $f.err = err; $f.f = f; $f.flt = flt; $f.sum = sum; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Add = Add; Multiply = function(e, x) { var _i, _r, _ref, _tuple, a, b, e, err, f, flt, pdt, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tuple = $f._tuple; a = $f.a; b = $f.b; e = $f.e; err = $f.err; f = $f.f; flt = $f.flt; pdt = $f.pdt; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: flt = false; pdt = 1; _ref = x; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } a = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r = convFloat64($clone(e, env.Environment), a); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = _tuple[0]; b = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } pdt = pdt * (f); flt = flt || b; _i++; /* } */ $s = 1; continue; case 2: if (flt) { $s = -1; return [instance.NewFloat(pdt), $ifaceNil]; } $s = -1; return [instance.NewInteger(((pdt >> 0))), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Multiply }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tuple = _tuple; $f.a = a; $f.b = b; $f.e = e; $f.err = err; $f.f = f; $f.flt = flt; $f.pdt = pdt; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Multiply = Multiply; Substruct = function(e, x, xs) { var _i, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, a, b, e, err, err$1, err$2, f, flt, ret, sub, x, xs, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; a = $f.a; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; flt = $f.flt; ret = $f.ret; sub = $f.sub; x = $f.x; xs = $f.xs; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: /* */ if (xs.$length === 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if (xs.$length === 0) { */ case 1: _r = Substruct($clone(e, env.Environment), instance.NewInteger(0), new sliceType([x])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ret = _tuple[0]; err = _tuple[1]; $s = -1; return [ret, err]; /* } */ case 2: _r$1 = convFloat64($clone(e, env.Environment), x); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; sub = _tuple$1[0]; flt = _tuple$1[1]; err$1 = _tuple$1[2]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _ref = xs; _i = 0; /* while (true) { */ case 5: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } a = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$2 = convFloat64($clone(e, env.Environment), a); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$2 = _r$2; f = _tuple$2[0]; b = _tuple$2[1]; err$2 = _tuple$2[2]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } sub = sub - (f); flt = flt || b; _i++; /* } */ $s = 5; continue; case 6: if (flt) { $s = -1; return [instance.NewFloat(sub), $ifaceNil]; } $s = -1; return [instance.NewInteger(((sub >> 0))), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Substruct }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.a = a; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.flt = flt; $f.ret = ret; $f.sub = sub; $f.x = x; $f.xs = xs; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Substruct = Substruct; Quotient = function(e, dividend, divisor1, divisor) { var _arg, _arg$1, _arg$2, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, a, arguments$1, b, dividend, divisor, divisor1, e, err, err$1, f, flt, i, quotient, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; arguments$1 = $f.arguments$1; b = $f.b; dividend = $f.dividend; divisor = $f.divisor; divisor1 = $f.divisor1; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; flt = $f.flt; i = $f.i; quotient = $f.quotient; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: divisor = $appendSlice(new sliceType([divisor1]), divisor); _r = convFloat64($clone(e, env.Environment), dividend); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; quotient = _tuple[0]; flt = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _ref = divisor; _i = 0; /* while (true) { */ case 2: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } a = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$1 = convFloat64($clone(e, env.Environment), a); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; f = _tuple$1[0]; b = _tuple$1[1]; err$1 = _tuple$1[2]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } /* */ if (f === 0) { $s = 5; continue; } /* */ $s = 6; continue; /* if (f === 0) { */ case 5: arguments$1 = $pkg.Nil; i = divisor.$length - 1 >> 0; while (true) { if (!(i >= 0)) { break; } arguments$1 = instance.NewCons(((i < 0 || i >= divisor.$length) ? ($throwRuntimeError("index out of range"), undefined) : divisor.$array[divisor.$offset + i]), arguments$1); i = i - (1) >> 0; } _arg = $clone(e, env.Environment); _r$2 = instance.NewArithmeticError($clone(e, env.Environment), instance.NewSymbol("QUOTIENT"), arguments$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; _arg$2 = $pkg.Nil; _r$3 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* } */ case 6: if (!flt && !b && !(((_r$4 = ((quotient >> 0)) % ((f >> 0)), _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")) === 0))) { flt = true; } quotient = quotient / (f); _i++; /* } */ $s = 2; continue; case 3: if (flt) { $s = -1; return [instance.NewFloat(quotient), $ifaceNil]; } $s = -1; return [instance.NewInteger(((quotient >> 0))), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Quotient }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.arguments$1 = arguments$1; $f.b = b; $f.dividend = dividend; $f.divisor = divisor; $f.divisor1 = divisor1; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.flt = flt; $f.i = i; $f.quotient = quotient; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Quotient = Quotient; Max = function(e, x, xs) { var _i, _r, _ref, _tuple, e, err, max, ret, x, xs, y, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tuple = $f._tuple; e = $f.e; err = $f.err; max = $f.max; ret = $f.ret; x = $f.x; xs = $f.xs; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: max = x; _ref = xs; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } y = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r = NumberGreaterThan($clone(e, env.Environment), y, max); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ret = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if ($interfaceIsEqual(ret, $pkg.T)) { max = y; } _i++; /* } */ $s = 1; continue; case 2: $s = -1; return [max, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Max }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.max = max; $f.ret = ret; $f.x = x; $f.xs = xs; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Max = Max; Min = function(e, x, xs) { var _i, _r, _ref, _tuple, e, err, min, ret, x, xs, y, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tuple = $f._tuple; e = $f.e; err = $f.err; min = $f.min; ret = $f.ret; x = $f.x; xs = $f.xs; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: min = x; _ref = xs; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } y = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r = NumberLessThan($clone(e, env.Environment), y, min); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ret = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if ($interfaceIsEqual(ret, $pkg.T)) { min = y; } _i++; /* } */ $s = 1; continue; case 2: $s = -1; return [min, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Min }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.min = min; $f.ret = ret; $f.x = x; $f.xs = xs; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Min = Min; Abs = function(e, x) { var _r, _r$1, _tuple, e, err, ret, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e = $f.e; err = $f.err; ret = $f.ret; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = NumberLessThan($clone(e, env.Environment), x, instance.NewInteger(0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ret = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } /* */ if ($interfaceIsEqual(ret, $pkg.T)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ret, $pkg.T)) { */ case 2: _r$1 = Substruct($clone(e, env.Environment), x, new sliceType([])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 3: $s = -1; return [x, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Abs }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.ret = ret; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Abs = Abs; Exp = function(e, x) { var _r, _tuple, e, err, f, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; e = $f.e; err = $f.err; f = $f.f; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [instance.NewFloat(math.Exp(f)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Exp }; } $f._r = _r; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.f = f; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Exp = Exp; Log = function(e, x) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, e, err, f, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; e = $f.e; err = $f.err; f = $f.f; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } /* */ if (f <= 0) { $s = 2; continue; } /* */ $s = 3; continue; /* if (f <= 0) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), x, class$1.Number); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: $s = -1; return [instance.NewFloat(math.Log(f)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Log }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.f = f; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Log = Log; Expt = function(e, x1, x2) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, a, af, b, bf, e, err, err$1, operands, operation, x1, x2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; a = $f.a; af = $f.af; b = $f.b; bf = $f.bf; e = $f.e; err = $f.err; err$1 = $f.err$1; operands = $f.operands; operation = $f.operation; x1 = $f.x1; x2 = $f.x2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; a = _tuple[0]; af = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = convFloat64($clone(e, env.Environment), x2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; b = _tuple$1[0]; bf = _tuple$1[1]; err = _tuple$1[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if (!af && !bf && b >= 0) { $s = -1; return [instance.NewInteger(((math.Pow(a, b) >> 0))), $ifaceNil]; } /* */ if (((a === 0) && b < 0) || ((a === 0) && bf && (b === 0)) || (a < 0 && bf)) { $s = 3; continue; } /* */ $s = 4; continue; /* if (((a === 0) && b < 0) || ((a === 0) && bf && (b === 0)) || (a < 0 && bf)) { */ case 3: operation = instance.NewSymbol("EXPT"); _tuple$2 = List($clone(e, env.Environment), new sliceType([x1, x2])); operands = _tuple$2[0]; err$1 = _tuple$2[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _arg = $clone(e, env.Environment); _r$2 = instance.NewArithmeticError($clone(e, env.Environment), operation, operands); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; _arg$2 = $pkg.Nil; _r$3 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* } */ case 4: $s = -1; return [instance.NewFloat(math.Pow(a, b)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Expt }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.a = a; $f.af = af; $f.b = b; $f.bf = bf; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.operands = operands; $f.operation = operation; $f.x1 = x1; $f.x2 = x2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Expt = Expt; Sqrt = function(e, x) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, a, e, err, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; a = $f.a; e = $f.e; err = $f.err; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; a = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } /* */ if (a < 0) { $s = 2; continue; } /* */ $s = 3; continue; /* if (a < 0) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), x, class$1.Number); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: if (math.Ceil(math.Sqrt(a)) === math.Sqrt(a)) { $s = -1; return [instance.NewInteger(((math.Sqrt(a) >> 0))), $ifaceNil]; } $s = -1; return [instance.NewFloat(math.Sqrt(a)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Sqrt }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f.a = a; $f.e = e; $f.err = err; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Sqrt = Sqrt; Sin = function(e, x) { var _r, _tuple, a, e, err, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; a = $f.a; e = $f.e; err = $f.err; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; a = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [instance.NewFloat(math.Sin(a)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Sin }; } $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.e = e; $f.err = err; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Sin = Sin; Cos = function(e, x) { var _r, _tuple, a, e, err, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; a = $f.a; e = $f.e; err = $f.err; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; a = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [instance.NewFloat(math.Cos(a)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Cos }; } $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.e = e; $f.err = err; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Cos = Cos; Tan = function(e, x) { var _r, _tuple, a, e, err, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; a = $f.a; e = $f.e; err = $f.err; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; a = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [instance.NewFloat(math.Tan(a)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Tan }; } $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.e = e; $f.err = err; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Tan = Tan; Atan = function(e, x) { var _r, _tuple, a, e, err, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; a = $f.a; e = $f.e; err = $f.err; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; a = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [instance.NewFloat(math.Atan(a)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Atan }; } $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.e = e; $f.err = err; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Atan = Atan; Atan2 = function(e, x1, x2) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, a, b, e, err, err$1, operands, operation, x1, x2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; a = $f.a; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; operands = $f.operands; operation = $f.operation; x1 = $f.x1; x2 = $f.x2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; a = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = convFloat64($clone(e, env.Environment), x2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; b = _tuple$1[0]; err = _tuple$1[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } /* */ if ((a === 0) && (b === 0)) { $s = 3; continue; } /* */ $s = 4; continue; /* if ((a === 0) && (b === 0)) { */ case 3: operation = instance.NewSymbol("ATAN2"); _tuple$2 = List($clone(e, env.Environment), new sliceType([x1, x2])); operands = _tuple$2[0]; err$1 = _tuple$2[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _arg = $clone(e, env.Environment); _r$2 = instance.NewArithmeticError($clone(e, env.Environment), operation, operands); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; _arg$2 = $pkg.Nil; _r$3 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* } */ case 4: $s = -1; return [instance.NewFloat(math.Atan2(a, b)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Atan2 }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.a = a; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.operands = operands; $f.operation = operation; $f.x1 = x1; $f.x2 = x2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Atan2 = Atan2; Sinh = function(e, x) { var _r, _tuple, a, e, err, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; a = $f.a; e = $f.e; err = $f.err; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; a = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [instance.NewFloat(math.Sinh(a)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Sinh }; } $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.e = e; $f.err = err; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Sinh = Sinh; Cosh = function(e, x) { var _r, _tuple, a, e, err, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; a = $f.a; e = $f.e; err = $f.err; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; a = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [instance.NewFloat(math.Cosh(a)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Cosh }; } $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.e = e; $f.err = err; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Cosh = Cosh; Tanh = function(e, x) { var _r, _tuple, a, e, err, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; a = $f.a; e = $f.e; err = $f.err; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; a = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [instance.NewFloat(math.Tanh(a)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Tanh }; } $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.e = e; $f.err = err; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Tanh = Tanh; Atanh = function(e, x) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, a, e, err, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; a = $f.a; e = $f.e; err = $f.err; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = convFloat64($clone(e, env.Environment), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; a = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } /* */ if (math.Abs(a) >= 1) { $s = 2; continue; } /* */ $s = 3; continue; /* if (math.Abs(a) >= 1) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), x, class$1.Number); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: $s = -1; return [instance.NewFloat(math.Atanh(a)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Atanh }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f.a = a; $f.e = e; $f.err = err; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Atanh = Atanh; TopLevelHander = function(e, c) { var c, e; return [$ifaceNil, c]; }; $pkg.TopLevelHander = TopLevelHander; defclass = function(name, class$2) { var class$2, name, symbol; symbol = instance.NewSymbol(name); $pkg.TopLevel.Class.Define(symbol, class$2); }; defspecial = function(name, function$1) { var _arg, _arg$1, _r, _r$1, _r$2, function$1, name, symbol, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; function$1 = $f.function$1; name = $f.name; symbol = $f.symbol; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: symbol = instance.NewSymbol(name); _arg = symbol; _r = func2symbol(function$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = instance.NewFunction(_r, function$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _r$2 = $pkg.TopLevel.Special.Define(_arg, _arg$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: defspecial }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.function$1 = function$1; $f.name = name; $f.symbol = symbol; $f.$s = $s; $f.$r = $r; return $f; }; defun = function(name, function$1) { var function$1, name, symbol; symbol = instance.NewSymbol(name); $pkg.TopLevel.Function.Define(symbol, instance.NewFunction(symbol, function$1)); }; defgeneric = function(name, function$1) { var _r, _tuple, function$1, generic, lambdaList, name, symbol, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; function$1 = $f.function$1; generic = $f.generic; lambdaList = $f.lambdaList; name = $f.name; symbol = $f.symbol; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: symbol = instance.NewSymbol(name); _tuple = List($clone($pkg.TopLevel, env.Environment), new sliceType([instance.NewSymbol("FIRST"), instance.NewSymbol("&REST"), instance.NewSymbol("REST")])); lambdaList = _tuple[0]; generic = instance.NewGenericFunction(symbol, lambdaList, $pkg.T, class$1.GenericFunction); _r = $assertType(generic, ptrType$2).AddMethod($ifaceNil, lambdaList, new sliceType$2([class$1.StandardClass]), instance.NewFunction(symbol, function$1)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; $pkg.TopLevel.Function.Define(symbol, generic); $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: defgeneric }; } $f._r = _r; $f._tuple = _tuple; $f.function$1 = function$1; $f.generic = generic; $f.lambdaList = lambdaList; $f.name = name; $f.symbol = symbol; $f.$s = $s; $f.$r = $r; return $f; }; defglobal = function(name, value) { var name, symbol, value; symbol = instance.NewSymbol(name); $pkg.TopLevel.Variable.Define(symbol, value); }; init = function() { var x, x$1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: defglobal("*PI*", new instance.Float(3.141592653589793)); defglobal("*MOST-POSITIVE-FLOAT*", $pkg.MostPositiveFloat); defglobal("*MOST-NEGATIVE-FLOAT*", $pkg.MostNegativeFloat); defun("-", new funcType$3(Substruct)); defun("+", new funcType$2(Add)); defun("*", new funcType$2(Multiply)); defun("<", new funcType$1(NumberLessThan)); defun("<=", new funcType$1(NumberLessThanOrEqual)); defun("=", new funcType$1(NumberEqual)); defun(">", new funcType$1(NumberGreaterThan)); defun(">=", new funcType$1(NumberGreaterThanOrEqual)); $r = defspecial("QUASIQUOTE", new funcType(Quasiquote)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("ABS", new funcType(Abs)); $r = defspecial("AND", new funcType$2(And)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("APPEND", new funcType$2(Append)); defun("APPLY", new funcType$3(Apply)); defun("ARRAY-DIMENSIONS", new funcType(ArrayDimensions)); defun("AREF", new funcType$3(Aref)); defun("ASSOC", new funcType$1(Assoc)); defun("ATAN", new funcType(Atan)); defun("ATAN2", new funcType$1(Atan2)); defun("ATANH", new funcType(Atanh)); defun("BASIC-ARRAY*-P", new funcType(BasicArrayStarP)); defun("BASIC-ARRAY-P", new funcType(BasicArrayP)); defun("BASIC-VECTOR-P", new funcType(BasicVectorP)); $r = defspecial("BLOCK", new funcType$3(Block)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("CAR", new funcType(Car)); $r = defspecial("CASE", new funcType$3(Case)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("CASE-USING", new funcType$4(CaseUsing)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("CATCH", new funcType$3(Catch)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("CDR", new funcType(Cdr)); defun("CEILING", new funcType(Ceiling)); defun("CERROR", new funcType$4(Cerror)); defun("CHAR-INDEX", new funcType$4(CharIndex)); defun("CHAR/=", new funcType$1(CharNotEqual)); defun("CHAR<", new funcType$1(CharLessThan)); defun("CHAR<=", new funcType$1(CharLessThanOrEqual)); defun("CHAR=", new funcType$1(CharEqual)); defun("CHAR>", new funcType$1(CharGreaterThan)); defun("CHAR>=", new funcType$1(CharGreaterThanOrEqual)); defun("CHARACTERP", new funcType(Characterp)); $r = defspecial("CLASS", new funcType$5(Class)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("CLASS-OF", new funcType(ClassOf)); defun("CLOSE", new funcType(Close)); $r = defspecial("COND", new funcType$2(Cond)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("CONDITION-CONTINUABLE", new funcType(ConditionContinuable)); defun("CONS", new funcType$1(Cons)); defun("CONSP", new funcType(Consp)); defun("CONTINUE-CONDITION", new funcType$3(ContinueCondition)); $r = defspecial("CONVERT", new funcType$1(Convert)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("COS", new funcType(Cos)); defun("COSH", new funcType(Cosh)); $r = defgeneric("CREATE", new funcType$3(Create)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("CREATE-ARRAY", new funcType$3(CreateArray)); defun("CREATE-LIST", new funcType$3(CreateList)); defun("CREATE-STRING", new funcType$3(CreateString)); defun("CREATE-STRING-INPUT-STREAM", new funcType(CreateStringInputStream)); defun("CREATE-STRING-OUTPUT-STREAM", new funcType$6(CreateStringOutputStream)); defun("CREATE-VECTOR", new funcType$3(CreateVector)); $r = defspecial("DEFCLASS", new funcType$7(Defclass)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("DEFCONSTANT", new funcType$1(Defconstant)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("DEFDYNAMIC", new funcType$1(Defdynamic)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("DEFGENERIC", new funcType$4(Defgeneric)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("DEFMETHOD", new funcType$2(Defmethod)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("DEFGLOBAL", new funcType$1(Defglobal)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("DEFMACRO", new funcType$4(Defmacro)); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("DEFUN", new funcType$4(Defun)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("DIV", new funcType$1(Div)); $r = defspecial("DYNAMIC", new funcType(Dynamic)); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("DYNAMIC-LET", new funcType$3(DynamicLet)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("ELT", new funcType$1(Elt)); defun("EQ", new funcType$1(Eq)); defun("EQL", new funcType$1(Eql)); defun("EQUAL", new funcType$1(Equal)); defun("ERROR", new funcType$4(Error)); defun("ERROR-OUTPUT", new funcType$6(ErrorOutput)); defun("EXP", new funcType(Exp)); defun("EXPT", new funcType$1(Expt)); $r = defspecial("FLET", new funcType$3(Flet)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("FLOAT", new funcType(Float)); defun("FLOATP", new funcType(Floatp)); defun("FLOOR", new funcType(Floor)); $r = defspecial("FOR", new funcType$4(For)); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("FORMAT", new funcType$4(Format)); defun("FORMAT-CHAR", new funcType$1(FormatChar)); defun("FORMAT-FLOAT", new funcType$1(FormatFloat)); defun("FORMAT-FRESH-LINE", new funcType(FormatFreshLine)); defun("FORMAT-INTEGER", new funcType$8(FormatInteger)); defun("FORMAT-OBJECT", new funcType$8(FormatObject)); defun("FORMAT-TAB", new funcType$1(FormatTab)); defun("FUNCALL", new funcType$3(Funcall)); $r = defspecial("FUNCTION", new funcType(Function)); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("FUNCTIONP", new funcType(Functionp)); defun("GAREF", new funcType$3(Garef)); defun("GCD", new funcType$1(Gcd)); defun("GENERAL-ARRAY*-P", new funcType(GeneralArrayStarP)); defun("GENERAL-VECTOR-P", new funcType(GeneralVectorP)); defun("GENSYM", new funcType$6(Gensym)); defun("GET-OUTPUT-STREAM-STRING", new funcType(GetOutputStreamString)); $r = defspecial("GO", new funcType(Go)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("IF", new funcType$4(If)); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defgeneric("INITIALIZE-OBJECT", new funcType$3(InitializeObject)); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("INPUT-STREAM-P", new funcType(InputStreamP)); defun("INSTANCEP", new funcType$9(Instancep)); defun("INTEGERP", new funcType(Integerp)); defun("ISQRT", new funcType(Isqrt)); $r = defspecial("LABELS", new funcType$3(Labels)); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("LAMBDA", new funcType$3(Lambda)); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("LCM", new funcType$1(Lcm)); defun("LENGTH", new funcType(Length)); $r = defspecial("LET", new funcType$3(Let)); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("LET*", new funcType$3(LetStar)); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("LIST", new funcType$2(List)); defun("LISTP", new funcType(Listp)); defun("LOG", new funcType(Log)); defun("MAP-INTO", new funcType$4(MapInto)); defun("MAPC", new funcType$4(Mapc)); defun("MAPCAN", new funcType$4(Mapcan)); defun("MAPCAR", new funcType$4(Mapcar)); defun("MAPCON", new funcType$4(Mapcon)); defun("MAPL", new funcType$4(Mapl)); defun("MAPLIST", new funcType$4(Maplist)); defun("MAX", new funcType$3(Max)); defun("MEMBER", new funcType$1(Member)); defun("MIN", new funcType$3(Min)); defun("MOD", new funcType$1(Mod)); defglobal("NI-L", $pkg.Nil); defun("NOT", new funcType(Not)); defun("NREVERSE", new funcType(Nreverse)); defun("NULL", new funcType(Null)); defun("NUMBERP", new funcType(Numberp)); defun("OPEN-INPUT-FILE", new funcType$3(OpenInputFile)); defun("OPEN-IO-FILE", new funcType$3(OpenIoFile)); defun("OPEN-OUTPUT-FILE", new funcType$3(OpenOutputFile)); defun("OPEN-STREAM-P", new funcType(OpenStreamP)); $r = defspecial("OR", new funcType$2(Or)); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("OUTPUT-STREAM-P", new funcType(OutputStreamP)); defun("PARSE-NUMBER", new funcType(ParseNumber)); $r = defspecial("PROGN", new funcType$2(Progn)); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("PROPERTY", new funcType$4(Property)); $r = defspecial("QUASIQUOTE", new funcType(Quasiquote)); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("QUOTE", new funcType(Quote)); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("QUOTIENT", new funcType$4(Quotient)); defun("READ", new funcType$2(Read)); defun("READ-CHAR", new funcType$2(ReadChar)); defun("READ-LINE", new funcType$2(ReadLine)); defun("REMOVE-PROPERTY", new funcType$1(RemoveProperty)); defun("REPORT-CONDITION", new funcType$1(ReportCondition)); $r = defspecial("RETURN-FROM", new funcType$1(ReturnFrom)); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("REVERSE", new funcType(Reverse)); defun("ROUND", new funcType(Round)); defun("SET-AREF", new funcType$4(SetAref)); defun("(SETF AREF)", new funcType$4(SetAref)); defun("SET-CAR", new funcType$1(SetCar)); defun("(SETF CAR)", new funcType$1(SetCar)); defun("SET-CDR", new funcType$1(SetCdr)); defun("(SETF CDR)", new funcType$1(SetCdr)); defun("SET-DYNAMIC", new funcType$1(SetDynamic)); defun("(SETF DYNAMIC)", new funcType$1(SetDynamic)); defun("SET-ELT", new funcType$8(SetElt)); defun("(SETF ELT)", new funcType$8(SetElt)); defun("SET-GAREF", new funcType$4(SetGaref)); defun("(SETF GAREF)", new funcType$4(SetGaref)); defun("SET-PROPERTY", new funcType$8(SetProperty)); defun("(SETF PROPERTY)", new funcType$8(SetProperty)); $r = defspecial("SETF", new funcType$1(Setf)); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("SETQ", new funcType$1(Setq)); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("SIGNAL-CONDITION", new funcType$1(SignalCondition)); defun("SIN", new funcType(Sin)); defun("SINH", new funcType(Sinh)); defun("SQRT", new funcType(Sqrt)); defun("STANDARD-INPUT", new funcType$6(StandardInput)); defun("STANDARD-OUTPUT", new funcType$6(StandardOutput)); defun("STREAM-READY-P", new funcType(StreamReadyP)); defun("STREAMP", new funcType(Streamp)); defun("STRING-APPEND", new funcType$2(StringAppend)); defun("STRING-INDEX", new funcType$4(StringIndex)); defun("STRING/=", new funcType$1(StringNotEqual)); defun("STRING>", new funcType$1(StringGreaterThan)); defun("STRING>=", new funcType$1(StringGreaterThanOrEqual)); defun("STRING=", new funcType$1(StringEqual)); defun("STRING<", new funcType$1(StringLessThan)); defun("STRING<=", new funcType$1(StringLessThanOrEqual)); defun("STRINGP", new funcType(Stringp)); defun("SUBCLASSP", new funcType$10(Subclassp)); defun("SUBSEQ", new funcType$8(Subseq)); defun("SYMBOLP", new funcType(Symbolp)); defglobal("T", $pkg.T); $r = defspecial("TAGBODY", new funcType$2(Tagbody)); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("TAN", new funcType(Tan)); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("TANH", new funcType(Tanh)); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("THROW", new funcType$1(Throw)); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("TRUNCATE", new funcType(Truncate)); $r = defspecial("UNWIND-PROTECT", new funcType$3(UnwindProtect)); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defun("VECTOR", new funcType$2(Vector)); $r = defspecial("WHILE", new funcType$3(While)); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("WITH-ERROR-OUTPUT", new funcType$3(WithErrorOutput)); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("WITH-HANDLER", new funcType$3(WithHandler)); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("WITH-OPEN-INPUT-FILE", new funcType$3(WithOpenInputFile)); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("WITH-OPEN-OUTPUT-FILE", new funcType$3(WithOpenOutputFile)); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("WITH-STANDARD-INPUT", new funcType$3(WithStandardInput)); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = defspecial("WITH-STANDARD-OUTPUT", new funcType$3(WithStandardOutput)); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defclass("", (x = class$1.Object, new x.constructor.elem(x))); defclass("", class$1.BuiltInClass); defclass("", class$1.StandardClass); defclass("", class$1.BasicArray); defclass("", class$1.BasicArrayStar); defclass("", class$1.GeneralArrayStar); defclass("", class$1.BasicVector); defclass("", class$1.GeneralVector); defclass("", class$1.String); defclass("", class$1.Character); defclass("", class$1.Function); defclass("", class$1.GenericFunction); defclass("", class$1.StandardGenericFunction); defclass("", class$1.List); defclass("", class$1.Cons); defclass("", (x$1 = class$1.Null, new x$1.constructor.elem(x$1))); defclass("", class$1.Symbol); defclass("", class$1.Number); defclass("", class$1.Integer); defclass("", class$1.Float); defclass("", class$1.SeriousCondition); defclass("", class$1.Error); defclass("", class$1.ArithmeticError); defclass("", class$1.DivisionByZero); defclass("", class$1.FloatingPointOnderflow); defclass("", class$1.FloatingPointUnderflow); defclass("", class$1.ControlError); defclass("", class$1.ParseError); defclass("", class$1.ProgramError); defclass("", class$1.DomainError); defclass("", class$1.UndefinedEntity); defclass("", class$1.UndefinedVariable); defclass("", class$1.UndefinedFunction); defclass("", class$1.SimpleError); defclass("", class$1.StreamError); defclass("", class$1.EndOfStream); defclass("", class$1.StorageExhausted); defclass("", class$1.StandardObject); defclass("", class$1.Stream); $s = -1; return; /* */ } return; } if ($f === undefined) { $f = { $blk: init }; } $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; }; Length = function(e, sequence) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, e, sequence, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; e = $f.e; sequence = $f.sequence; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.String, sequence); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 2; continue; } _r$1 = ilos.InstanceOf(class$1.GeneralVector, sequence); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 3; continue; } _r$2 = ilos.InstanceOf(class$1.List, sequence); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (_r$2) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_r) { */ case 2: $s = -1; return [instance.NewInteger($assertType(sequence, instance.String).$length), $ifaceNil]; /* } else if (_r$1) { */ case 3: $s = -1; return [instance.NewInteger($assertType(sequence, instance.GeneralVector).$length), $ifaceNil]; /* } else if (_r$2) { */ case 4: _r$3 = $assertType(sequence, instance.List).Length(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$4 = instance.NewInteger(_r$3); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return [_r$4, $ifaceNil]; /* } */ case 5: case 1: _arg = $clone(e, env.Environment); _r$5 = instance.NewDomainError($clone(e, env.Environment), sequence, (x = class$1.Object, new x.constructor.elem(x))); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$1 = _r$5; _arg$2 = $pkg.Nil; _r$6 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* */ } return; } if ($f === undefined) { $f = { $blk: Length }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f.e = e; $f.sequence = sequence; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Length = Length; Elt = function(e, sequence, z) { var _arg, _arg$1, _arg$10, _arg$11, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, e, err, idx, idx$1, idx$2, seq, seq$1, seq$2, sequence, x, z, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$10 = $f._arg$10; _arg$11 = $f._arg$11; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _arg$8 = $f._arg$8; _arg$9 = $f._arg$9; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; e = $f.e; err = $f.err; idx = $f.idx; idx$1 = $f.idx$1; idx$2 = $f.idx$2; seq = $f.seq; seq$1 = $f.seq$1; seq$2 = $f.seq$2; sequence = $f.sequence; x = $f.x; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Integer, new sliceType([z])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = ilos.InstanceOf(class$1.String, sequence); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 3; continue; } _r$2 = ilos.InstanceOf(class$1.GeneralVector, sequence); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (_r$2) { $s = 4; continue; } _r$3 = ilos.InstanceOf(class$1.List, sequence); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_r$1) { */ case 3: seq = $assertType(sequence, instance.String); idx = (($assertType(z, instance.Integer) >> 0)); /* */ if (idx > 0 && seq.$length <= idx) { $s = 10; continue; } /* */ $s = 11; continue; /* if (idx > 0 && seq.$length <= idx) { */ case 10: _arg = $clone(e, env.Environment); _r$4 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$1 = _r$4; _arg$2 = $pkg.Nil; _r$5 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } */ case 11: $s = -1; return [instance.NewCharacter(((idx < 0 || idx >= seq.$length) ? ($throwRuntimeError("index out of range"), undefined) : seq.$array[seq.$offset + idx])), $ifaceNil]; /* } else if (_r$2) { */ case 4: seq$1 = $assertType(sequence, instance.GeneralVector); idx$1 = (($assertType(z, instance.Integer) >> 0)); /* */ if (idx$1 > 0 && seq$1.$length <= idx$1) { $s = 14; continue; } /* */ $s = 15; continue; /* if (idx$1 > 0 && seq$1.$length <= idx$1) { */ case 14: _arg$3 = $clone(e, env.Environment); _r$6 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _arg$4 = _r$6; _arg$5 = $pkg.Nil; _r$7 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $s = -1; return _r$7; /* } */ case 15: $s = -1; return [((idx$1 < 0 || idx$1 >= seq$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : seq$1.$array[seq$1.$offset + idx$1]), $ifaceNil]; /* } else if (_r$3) { */ case 5: _r$8 = $assertType(sequence, instance.List).Slice(); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } seq$2 = _r$8; idx$2 = (($assertType(z, instance.Integer) >> 0)); /* */ if (idx$2 > 0 && seq$2.$length <= idx$2) { $s = 19; continue; } /* */ $s = 20; continue; /* if (idx$2 > 0 && seq$2.$length <= idx$2) { */ case 19: _arg$6 = $clone(e, env.Environment); _r$9 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _arg$7 = _r$9; _arg$8 = $pkg.Nil; _r$10 = SignalCondition(_arg$6, _arg$7, _arg$8); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } $s = -1; return _r$10; /* } */ case 20: $s = -1; return [((idx$2 < 0 || idx$2 >= seq$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : seq$2.$array[seq$2.$offset + idx$2]), $ifaceNil]; /* } */ case 6: case 2: _arg$9 = $clone(e, env.Environment); _r$11 = instance.NewDomainError($clone(e, env.Environment), sequence, (x = class$1.Object, new x.constructor.elem(x))); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _arg$10 = _r$11; _arg$11 = $pkg.Nil; _r$12 = SignalCondition(_arg$9, _arg$10, _arg$11); /* */ $s = 24; case 24: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } $s = -1; return _r$12; /* */ } return; } if ($f === undefined) { $f = { $blk: Elt }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$10 = _arg$10; $f._arg$11 = _arg$11; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._arg$8 = _arg$8; $f._arg$9 = _arg$9; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f.e = e; $f.err = err; $f.idx = idx; $f.idx$1 = idx$1; $f.idx$2 = idx$2; $f.seq = seq; $f.seq$1 = seq$1; $f.seq$2 = seq$2; $f.sequence = sequence; $f.x = x; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Elt = Elt; SetElt = function(e, obj, sequence, z) { var _arg, _arg$1, _arg$10, _arg$11, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, e, err, err$1, idx, idx$1, idx$2, obj, seq, seq$1, seq$2, sequence, x, z, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$10 = $f._arg$10; _arg$11 = $f._arg$11; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _arg$8 = $f._arg$8; _arg$9 = $f._arg$9; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _v = $f._v; e = $f.e; err = $f.err; err$1 = $f.err$1; idx = $f.idx; idx$1 = $f.idx$1; idx$2 = $f.idx$2; obj = $f.obj; seq = $f.seq; seq$1 = $f.seq$1; seq$2 = $f.seq$2; sequence = $f.sequence; x = $f.x; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Integer, new sliceType([z])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = ilos.InstanceOf(class$1.String, sequence); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 3; continue; } _r$2 = ilos.InstanceOf(class$1.GeneralVector, sequence); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (_r$2) { $s = 4; continue; } _r$3 = ilos.InstanceOf(class$1.List, sequence); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_r$1) { */ case 3: seq = $assertType(sequence, instance.String); idx = (($assertType(z, instance.Integer) >> 0)); /* */ if (idx > 0 && seq.$length <= idx) { $s = 10; continue; } /* */ $s = 11; continue; /* if (idx > 0 && seq.$length <= idx) { */ case 10: _arg = $clone(e, env.Environment); _r$4 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$1 = _r$4; _arg$2 = $pkg.Nil; _r$5 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } */ case 11: _r$6 = ensure($clone(e, env.Environment), class$1.Character, new sliceType([obj])); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } err$1 = _r$6; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } ((idx < 0 || idx >= seq.$length) ? ($throwRuntimeError("index out of range"), undefined) : seq.$array[seq.$offset + idx] = (($assertType(obj, instance.Character) >> 0))); $s = -1; return [obj, $ifaceNil]; /* } else if (_r$2) { */ case 4: seq$1 = $assertType(sequence, instance.GeneralVector); idx$1 = (($assertType(z, instance.Integer) >> 0)); /* */ if (idx$1 > 0 && seq$1.$length <= idx$1) { $s = 15; continue; } /* */ $s = 16; continue; /* if (idx$1 > 0 && seq$1.$length <= idx$1) { */ case 15: _arg$3 = $clone(e, env.Environment); _r$7 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _arg$4 = _r$7; _arg$5 = $pkg.Nil; _r$8 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $s = -1; return _r$8; /* } */ case 16: ((idx$1 < 0 || idx$1 >= seq$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : seq$1.$array[seq$1.$offset + idx$1] = obj); $s = -1; return [obj, $ifaceNil]; /* } else if (_r$3) { */ case 5: _r$9 = $assertType(sequence, instance.List).Slice(); /* */ $s = 19; case 19: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } seq$2 = _r$9; idx$2 = (($assertType(z, instance.Integer) >> 0)); /* */ if (idx$2 > 0 && seq$2.$length <= idx$2) { $s = 20; continue; } /* */ $s = 21; continue; /* if (idx$2 > 0 && seq$2.$length <= idx$2) { */ case 20: _arg$6 = $clone(e, env.Environment); _r$10 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _arg$7 = _r$10; _arg$8 = $pkg.Nil; _r$11 = SignalCondition(_arg$6, _arg$7, _arg$8); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } $s = -1; return _r$11; /* } */ case 21: /* while (true) { */ case 24: if (!(!((idx$2 === 0)))) { _v = false; $s = 26; continue s; } _r$12 = ilos.InstanceOf(class$1.Cons, sequence); /* */ $s = 27; case 27: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } _v = _r$12; case 26: /* if (!(_v)) { break; } */ if(!(_v)) { $s = 25; continue; } idx$2 = idx$2 - (1) >> 0; sequence = $assertType(sequence, ptrType$1).Cdr; /* } */ $s = 24; continue; case 25: $assertType(sequence, ptrType$1).Car = obj; $s = -1; return [obj, $ifaceNil]; /* } */ case 6: case 2: _arg$9 = $clone(e, env.Environment); _r$13 = instance.NewDomainError($clone(e, env.Environment), sequence, (x = class$1.Object, new x.constructor.elem(x))); /* */ $s = 28; case 28: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _arg$10 = _r$13; _arg$11 = $pkg.Nil; _r$14 = SignalCondition(_arg$9, _arg$10, _arg$11); /* */ $s = 29; case 29: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } $s = -1; return _r$14; /* */ } return; } if ($f === undefined) { $f = { $blk: SetElt }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$10 = _arg$10; $f._arg$11 = _arg$11; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._arg$8 = _arg$8; $f._arg$9 = _arg$9; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._v = _v; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.idx = idx; $f.idx$1 = idx$1; $f.idx$2 = idx$2; $f.obj = obj; $f.seq = seq; $f.seq$1 = seq$1; $f.seq$2 = seq$2; $f.sequence = sequence; $f.x = x; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.SetElt = SetElt; Subseq = function(e, sequence, z1, z2) { var _arg, _arg$1, _arg$10, _arg$11, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, e, end, err, seq, seq$1, seq$2, sequence, start, x, z1, z2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$10 = $f._arg$10; _arg$11 = $f._arg$11; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _arg$8 = $f._arg$8; _arg$9 = $f._arg$9; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; e = $f.e; end = $f.end; err = $f.err; seq = $f.seq; seq$1 = $f.seq$1; seq$2 = $f.seq$2; sequence = $f.sequence; start = $f.start; x = $f.x; z1 = $f.z1; z2 = $f.z2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Integer, new sliceType([z1, z2])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } start = (($assertType(z1, instance.Integer) >> 0)); end = (($assertType(z2, instance.Integer) >> 0)); _r$1 = ilos.InstanceOf(class$1.String, sequence); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 3; continue; } _r$2 = ilos.InstanceOf(class$1.GeneralVector, sequence); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (_r$2) { $s = 4; continue; } _r$3 = ilos.InstanceOf(class$1.List, sequence); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_r$1) { */ case 3: seq = $assertType(sequence, instance.String); /* */ if (!(0 <= start && start < seq.$length && 0 <= end && end < seq.$length && start <= end)) { $s = 10; continue; } /* */ $s = 11; continue; /* if (!(0 <= start && start < seq.$length && 0 <= end && end < seq.$length && start <= end)) { */ case 10: _arg = $clone(e, env.Environment); _r$4 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$1 = _r$4; _arg$2 = $pkg.Nil; _r$5 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } */ case 11: $s = -1; return [$subslice(seq, start, end), $ifaceNil]; /* } else if (_r$2) { */ case 4: seq$1 = $assertType(sequence, instance.GeneralVector); /* */ if (!(0 <= start && start < seq$1.$length && 0 <= end && end < seq$1.$length && start <= end)) { $s = 14; continue; } /* */ $s = 15; continue; /* if (!(0 <= start && start < seq$1.$length && 0 <= end && end < seq$1.$length && start <= end)) { */ case 14: _arg$3 = $clone(e, env.Environment); _r$6 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _arg$4 = _r$6; _arg$5 = $pkg.Nil; _r$7 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $s = -1; return _r$7; /* } */ case 15: $s = -1; return [$subslice(seq$1, start, end), $ifaceNil]; /* } else if (_r$3) { */ case 5: _r$8 = $assertType(sequence, instance.List).Slice(); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } seq$2 = _r$8; /* */ if (!(0 < start && start < seq$2.$length && 0 < end && end < seq$2.$length && start <= end)) { $s = 19; continue; } /* */ $s = 20; continue; /* if (!(0 < start && start < seq$2.$length && 0 < end && end < seq$2.$length && start <= end)) { */ case 19: _arg$6 = $clone(e, env.Environment); _r$9 = instance.NewIndexOutOfRange($clone(e, env.Environment)); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _arg$7 = _r$9; _arg$8 = $pkg.Nil; _r$10 = SignalCondition(_arg$6, _arg$7, _arg$8); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } $s = -1; return _r$10; /* } */ case 20: $s = -1; return List($clone(e, env.Environment), $subslice(seq$2, start, end)); /* } */ case 6: case 2: _arg$9 = $clone(e, env.Environment); _r$11 = instance.NewDomainError($clone(e, env.Environment), sequence, (x = class$1.Object, new x.constructor.elem(x))); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _arg$10 = _r$11; _arg$11 = $pkg.Nil; _r$12 = SignalCondition(_arg$9, _arg$10, _arg$11); /* */ $s = 24; case 24: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } $s = -1; return _r$12; /* */ } return; } if ($f === undefined) { $f = { $blk: Subseq }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$10 = _arg$10; $f._arg$11 = _arg$11; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._arg$8 = _arg$8; $f._arg$9 = _arg$9; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f.e = e; $f.end = end; $f.err = err; $f.seq = seq; $f.seq$1 = seq$1; $f.seq$2 = seq$2; $f.sequence = sequence; $f.start = start; $f.x = x; $f.z1 = z1; $f.z2 = z2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Subseq = Subseq; MapInto = function(e, destination, function$1, sequences) { var _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, arguments$1, destination, e, err, err$1, err$2, err$3, err$4, err$5, err$6, function$1, i, j, len, min, ret, seq, seq$1, sequences, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _ref = $f._ref; _ref$1 = $f._ref$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; arguments$1 = $f.arguments$1; destination = $f.destination; e = $f.e; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; err$4 = $f.err$4; err$5 = $f.err$5; err$6 = $f.err$6; function$1 = $f.function$1; i = $f.i; j = $f.j; len = $f.len; min = $f.min; ret = $f.ret; seq = $f.seq; seq$1 = $f.seq$1; sequences = $f.sequences; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.List, $append(sequences, destination)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: _r$1 = ensure($clone(e, env.Environment), class$1.BasicVector, $append(sequences, destination)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } err$1 = _r$1; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } /* } */ case 3: _r$2 = ensure($clone(e, env.Environment), class$1.Function, new sliceType([function$1])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } err$2 = _r$2; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } _r$3 = Length($clone(e, env.Environment), destination); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple = _r$3; min = _tuple[0]; err$3 = _tuple[1]; if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = -1; return [$ifaceNil, err$3]; } _ref = sequences; _i = 0; /* while (true) { */ case 7: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 8; continue; } seq = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$4 = Length($clone(e, env.Environment), seq); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$1 = _r$4; len = _tuple$1[0]; err$4 = _tuple$1[1]; _r$5 = Min($clone(e, env.Environment), min, new sliceType([len])); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$2 = _r$5; min = _tuple$2[0]; err$4 = _tuple$2[1]; if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = -1; return [$ifaceNil, err$4]; } _i++; /* } */ $s = 7; continue; case 8: i = 0; /* while (true) { */ case 11: /* if (!(i < (($assertType(min, instance.Integer) >> 0)))) { break; } */ if(!(i < (($assertType(min, instance.Integer) >> 0)))) { $s = 12; continue; } arguments$1 = $makeSlice(sliceType, sequences.$length); _ref$1 = sequences; _i$1 = 0; /* while (true) { */ case 13: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 14; continue; } j = _i$1; seq$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); err$5 = $ifaceNil; _r$6 = Elt($clone(e, env.Environment), seq$1, instance.NewInteger(i)); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _tuple$3 = _r$6; ((j < 0 || j >= arguments$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + j] = _tuple$3[0]); err$5 = _tuple$3[1]; if (!($interfaceIsEqual(err$5, $ifaceNil))) { $s = -1; return [$ifaceNil, err$5]; } _i$1++; /* } */ $s = 13; continue; case 14: _r$7 = $assertType(function$1, instance.Applicable).Apply($clone(e.NewDynamic(), env.Environment), arguments$1); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple$4 = _r$7; ret = _tuple$4[0]; err$6 = _tuple$4[1]; if (!($interfaceIsEqual(err$6, $ifaceNil))) { $s = -1; return [$ifaceNil, err$6]; } _r$8 = SetElt($clone(e, env.Environment), ret, destination, instance.NewInteger(i)); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _tuple$5 = _r$8; err$6 = _tuple$5[1]; if (!($interfaceIsEqual(err$6, $ifaceNil))) { $s = -1; return [$ifaceNil, err$6]; } i = i + (1) >> 0; /* } */ $s = 11; continue; case 12: $s = -1; return [destination, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: MapInto }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f.arguments$1 = arguments$1; $f.destination = destination; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.err$4 = err$4; $f.err$5 = err$5; $f.err$6 = err$6; $f.function$1 = function$1; $f.i = i; $f.j = j; $f.len = len; $f.min = min; $f.ret = ret; $f.seq = seq; $f.seq$1 = seq$1; $f.sequences = sequences; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.MapInto = MapInto; Progn = function(e, forms) { var _i, _r, _ref, _tuple, e, err, form, forms, ret, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tuple = $f._tuple; e = $f.e; err = $f.err; form = $f.form; forms = $f.forms; ret = $f.ret; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: err = $ifaceNil; ret = $pkg.Nil; _ref = forms; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } form = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r = Eval($clone(e, env.Environment), form); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ret = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _i++; /* } */ $s = 1; continue; case 2: $s = -1; return [ret, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Progn }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.form = form; $f.forms = forms; $f.ret = ret; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Progn = Progn; Streamp = function(e, obj) { var _r, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.Stream, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Streamp }; } $f._r = _r; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Streamp = Streamp; OpenStreamP = function(e, obj) { var e, obj; return [$pkg.T, $ifaceNil]; }; $pkg.OpenStreamP = OpenStreamP; InputStreamP = function(e, obj) { var _tuple, e, obj, ok, s; _tuple = $assertType(obj, instance.Stream, true); s = $clone(_tuple[0], instance.Stream); ok = _tuple[1]; if (ok && !(s.Reader === ptrType$3.nil)) { return [$pkg.T, $ifaceNil]; } return [$pkg.Nil, $ifaceNil]; }; $pkg.InputStreamP = InputStreamP; OutputStreamP = function(e, obj) { var _tuple, e, obj, ok, s; _tuple = $assertType(obj, instance.Stream, true); s = $clone(_tuple[0], instance.Stream); ok = _tuple[1]; if (ok && !($interfaceIsEqual(s.Writer, $ifaceNil))) { return [$pkg.T, $ifaceNil]; } return [$pkg.Nil, $ifaceNil]; }; $pkg.OutputStreamP = OutputStreamP; StandardInput = function(e) { var e; return [e.StandardInput, $ifaceNil]; }; $pkg.StandardInput = StandardInput; StandardOutput = function(e) { var e; return [e.StandardOutput, $ifaceNil]; }; $pkg.StandardOutput = StandardOutput; ErrorOutput = function(e) { var e; return [e.ErrorOutput, $ifaceNil]; }; $pkg.ErrorOutput = ErrorOutput; WithStandardInput = function(e, streamForm, forms) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, e, err, forms, ok, streamForm, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; forms = $f.forms; ok = $f.ok; streamForm = $f.streamForm; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: err = $ifaceNil; _r = Eval($clone(e, env.Environment), streamForm); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; e.StandardInput = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _tuple$1 = InputStreamP($clone(e, env.Environment), e.StandardInput); ok = _tuple$1[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), e.StandardInput, class$1.Stream); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: _r$3 = Progn($clone(e, env.Environment), forms); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* */ } return; } if ($f === undefined) { $f = { $blk: WithStandardInput }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.forms = forms; $f.ok = ok; $f.streamForm = streamForm; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.WithStandardInput = WithStandardInput; WithStandardOutput = function(e, streamForm, forms) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, e, err, forms, ok, streamForm, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; forms = $f.forms; ok = $f.ok; streamForm = $f.streamForm; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: err = $ifaceNil; _r = Eval($clone(e, env.Environment), streamForm); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; e.StandardOutput = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _tuple$1 = OutputStreamP($clone(e, env.Environment), e.StandardOutput); ok = _tuple$1[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), e.StandardOutput, class$1.Stream); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: _r$3 = Progn($clone(e, env.Environment), forms); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* */ } return; } if ($f === undefined) { $f = { $blk: WithStandardOutput }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.forms = forms; $f.ok = ok; $f.streamForm = streamForm; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.WithStandardOutput = WithStandardOutput; WithErrorOutput = function(e, streamForm, forms) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, e, err, forms, ok, streamForm, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; forms = $f.forms; ok = $f.ok; streamForm = $f.streamForm; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: err = $ifaceNil; _r = Eval($clone(e, env.Environment), streamForm); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; e.ErrorOutput = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _tuple$1 = OutputStreamP($clone(e, env.Environment), e.ErrorOutput); ok = _tuple$1[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), e.ErrorOutput, class$1.Stream); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: _r$3 = Progn($clone(e, env.Environment), forms); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* */ } return; } if ($f === undefined) { $f = { $blk: WithErrorOutput }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.forms = forms; $f.ok = ok; $f.streamForm = streamForm; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.WithErrorOutput = WithErrorOutput; OpenInputFile = function(e, filename, elementClass) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, e, elementClass, err, file, filename, ok, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; elementClass = $f.elementClass; err = $f.err; file = $f.file; filename = $f.filename; ok = $f.ok; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Stringp($clone(e, env.Environment), filename); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), filename, class$1.String); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: _tuple$1 = os.Open(($runesToString($assertType(filename, instance.String)))); file = _tuple$1[0]; err = _tuple$1[1]; /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 6; continue; } /* */ $s = 7; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 6: _arg$3 = $clone(e, env.Environment); _r$3 = instance.NewStreamError($clone(e, env.Environment)); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$4 = _r$3; _arg$5 = $pkg.Nil; _r$4 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 7: $s = -1; return [instance.NewStream(file, $ifaceNil), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: OpenInputFile }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.elementClass = elementClass; $f.err = err; $f.file = file; $f.filename = filename; $f.ok = ok; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.OpenInputFile = OpenInputFile; OpenOutputFile = function(e, filename, elementClass) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, e, elementClass, err, file, filename, ok, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; elementClass = $f.elementClass; err = $f.err; file = $f.file; filename = $f.filename; ok = $f.ok; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Stringp($clone(e, env.Environment), filename); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), filename, class$1.String); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: _tuple$1 = os.Open(($runesToString($assertType(filename, instance.String)))); file = _tuple$1[0]; err = _tuple$1[1]; /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 6; continue; } /* */ $s = 7; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 6: _arg$3 = $clone(e, env.Environment); _r$3 = instance.NewStreamError($clone(e, env.Environment)); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$4 = _r$3; _arg$5 = $pkg.Nil; _r$4 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 7: $s = -1; return [instance.NewStream($ifaceNil, file), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: OpenOutputFile }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.elementClass = elementClass; $f.err = err; $f.file = file; $f.filename = filename; $f.ok = ok; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.OpenOutputFile = OpenOutputFile; OpenIoFile = function(e, filename, elementClass) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, e, elementClass, err, file, filename, ok, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; elementClass = $f.elementClass; err = $f.err; file = $f.file; filename = $f.filename; ok = $f.ok; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Stringp($clone(e, env.Environment), filename); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), filename, class$1.String); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: _tuple$1 = os.Open(($runesToString($assertType(filename, instance.String)))); file = _tuple$1[0]; err = _tuple$1[1]; /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 6; continue; } /* */ $s = 7; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 6: _arg$3 = $clone(e, env.Environment); _r$3 = instance.NewStreamError($clone(e, env.Environment)); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$4 = _r$3; _arg$5 = $pkg.Nil; _r$4 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 7: $s = -1; return [instance.NewStream(file, file), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: OpenIoFile }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.elementClass = elementClass; $f.err = err; $f.file = file; $f.filename = filename; $f.ok = ok; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.OpenIoFile = OpenIoFile; WithOpenInputFile = function(e, fileSpec, forms) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, e, err, fileSpec, forms, n, ok, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; e = $f.e; err = $f.err; fileSpec = $f.fileSpec; forms = $f.forms; n = $f.n; ok = $f.ok; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Consp($clone(e, env.Environment), fileSpec); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), fileSpec, class$1.Cons); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: _r$3 = Car($clone(e, env.Environment), fileSpec); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$1 = _r$3; n = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$4 = OpenInputFile($clone(e, env.Environment), n, new sliceType([])); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$2 = _r$4; s = _tuple$2[0]; err = _tuple$2[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } e.Variable.Define(n, s); _r$5 = Progn($clone(e, env.Environment), forms); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* */ } return; } if ($f === undefined) { $f = { $blk: WithOpenInputFile }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.e = e; $f.err = err; $f.fileSpec = fileSpec; $f.forms = forms; $f.n = n; $f.ok = ok; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.WithOpenInputFile = WithOpenInputFile; WithOpenOutputFile = function(e, fileSpec, forms) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, e, err, fileSpec, forms, n, ok, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; e = $f.e; err = $f.err; fileSpec = $f.fileSpec; forms = $f.forms; n = $f.n; ok = $f.ok; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Consp($clone(e, env.Environment), fileSpec); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), fileSpec, class$1.Cons); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: _r$3 = Car($clone(e, env.Environment), fileSpec); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$1 = _r$3; n = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$4 = OpenOutputFile($clone(e, env.Environment), n, new sliceType([])); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$2 = _r$4; s = _tuple$2[0]; err = _tuple$2[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } e.Variable.Define(n, s); _r$5 = Progn($clone(e, env.Environment), forms); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* */ } return; } if ($f === undefined) { $f = { $blk: WithOpenOutputFile }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.e = e; $f.err = err; $f.fileSpec = fileSpec; $f.forms = forms; $f.n = n; $f.ok = ok; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.WithOpenOutputFile = WithOpenOutputFile; Close = function(e, stream) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, e, ok, stream, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; e = $f.e; ok = $f.ok; stream = $f.stream; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Streamp($clone(e, env.Environment), stream); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), stream, class$1.Stream); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Close }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f.e = e; $f.ok = ok; $f.stream = stream; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Close = Close; CreateStringInputStream = function(e, str) { var e, str; return [instance.NewStream(strings.NewReader(($runesToString($assertType(str, instance.String)))), $ifaceNil), $ifaceNil]; }; $pkg.CreateStringInputStream = CreateStringInputStream; CreateStringOutputStream = function(e) { var e; return [instance.NewStream($ifaceNil, new bytes.Buffer.ptr(sliceType$6.nil, 0, 0, arrayType.zero())), $ifaceNil]; }; $pkg.CreateStringOutputStream = CreateStringOutputStream; GetOutputStreamString = function(e, stream) { var _arg, _arg$1, _arg$2, _r, _r$1, _tuple, e, ok, stream, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e = $f.e; ok = $f.ok; stream = $f.stream; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _tuple = OutputStreamP($clone(e, env.Environment), stream); ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 1; continue; } /* */ $s = 2; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 1: _arg = $clone(e, env.Environment); _r = instance.NewDomainError($clone(e, env.Environment), stream, class$1.Stream); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; _arg$2 = $pkg.Nil; _r$1 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 2: $s = -1; return [instance.NewString((new sliceType$4($stringToRunes($assertType($assertType(stream, instance.Stream).Writer, ptrType$5).String())))), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: GetOutputStreamString }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e = e; $f.ok = ok; $f.stream = stream; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.GetOutputStreamString = GetOutputStreamString; Read = function(e, options) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _v, b, e, eosErrorP, eosValue, err, options, s, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _v = $f._v; b = $f.b; e = $f.e; eosErrorP = $f.eosErrorP; eosValue = $f.eosValue; err = $f.err; options = $f.options; s = $f.s; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: s = e.StandardInput; if (options.$length > 0) { s = (0 >= options.$length ? ($throwRuntimeError("index out of range"), undefined) : options.$array[options.$offset + 0]); } _tuple = InputStreamP($clone(e, env.Environment), s); b = _tuple[0]; /* */ if ($interfaceIsEqual(b, $pkg.Nil)) { $s = 1; continue; } /* */ $s = 2; continue; /* if ($interfaceIsEqual(b, $pkg.Nil)) { */ case 1: _arg = $clone(e, env.Environment); _r = instance.NewDomainError($clone(e, env.Environment), s, class$1.Stream); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; _arg$2 = $pkg.Nil; _r$1 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 2: eosErrorP = true; if (options.$length > 1) { if ($interfaceIsEqual((1 >= options.$length ? ($throwRuntimeError("index out of range"), undefined) : options.$array[options.$offset + 1]), $pkg.Nil)) { eosErrorP = false; } } eosValue = $pkg.Nil; if (options.$length > 2) { if ($interfaceIsEqual((2 >= options.$length ? ($throwRuntimeError("index out of range"), undefined) : options.$array[options.$offset + 2]), $pkg.Nil)) { eosValue = (2 >= options.$length ? ($throwRuntimeError("index out of range"), undefined) : options.$array[options.$offset + 2]); } } _r$2 = parser.Parse($assertType(s, instance.Stream).Reader); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; v = _tuple$1[0]; err = _tuple$1[1]; if (!(!($interfaceIsEqual(err, $ifaceNil)))) { _v = false; $s = 8; continue s; } _r$3 = ilos.InstanceOf(class$1.EndOfStream, err); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _v = _r$3; case 8: /* */ if (_v) { $s = 6; continue; } /* */ $s = 7; continue; /* if (_v) { */ case 6: if (eosErrorP) { $s = -1; return [$ifaceNil, err]; } $s = -1; return [eosValue, $ifaceNil]; /* } */ case 7: $s = -1; return [v, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Read }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._v = _v; $f.b = b; $f.e = e; $f.eosErrorP = eosErrorP; $f.eosValue = eosValue; $f.err = err; $f.options = options; $f.s = s; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Read = Read; ReadChar = function(e, options) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, e, eosErrorP, eosValue, err, ok, options, s, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; eosErrorP = $f.eosErrorP; eosValue = $f.eosValue; err = $f.err; ok = $f.ok; options = $f.options; s = $f.s; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: s = e.StandardInput; if (options.$length > 0) { s = (0 >= options.$length ? ($throwRuntimeError("index out of range"), undefined) : options.$array[options.$offset + 0]); } _tuple = InputStreamP($clone(e, env.Environment), s); ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 1; continue; } /* */ $s = 2; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 1: _arg = $clone(e, env.Environment); _r = instance.NewDomainError($clone(e, env.Environment), s, class$1.Stream); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; _arg$2 = $pkg.Nil; _r$1 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 2: eosErrorP = true; if (options.$length > 1) { if ($interfaceIsEqual((1 >= options.$length ? ($throwRuntimeError("index out of range"), undefined) : options.$array[options.$offset + 1]), $pkg.Nil)) { eosErrorP = false; } } eosValue = $pkg.Nil; if (options.$length > 2) { if ($interfaceIsEqual((2 >= options.$length ? ($throwRuntimeError("index out of range"), undefined) : options.$array[options.$offset + 2]), $pkg.Nil)) { eosValue = (2 >= options.$length ? ($throwRuntimeError("index out of range"), undefined) : options.$array[options.$offset + 2]); } } _r$2 = bufio.NewReader($assertType(s, instance.Stream).Reader).ReadRune(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; v = _tuple$1[0]; err = _tuple$1[2]; /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 6; continue; } /* */ $s = 7; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 6: /* */ if (eosErrorP) { $s = 8; continue; } /* */ $s = 9; continue; /* if (eosErrorP) { */ case 8: _r$3 = instance.Create($clone(e, env.Environment), class$1.EndOfStream, new sliceType([])); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$3]; /* } */ case 9: $s = -1; return [eosValue, $ifaceNil]; /* } */ case 7: $s = -1; return [instance.NewCharacter(v), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: ReadChar }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.eosErrorP = eosErrorP; $f.eosValue = eosValue; $f.err = err; $f.ok = ok; $f.options = options; $f.s = s; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.ReadChar = ReadChar; ReadLine = function(e, options) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, e, eosErrorP, eosValue, err, ok, options, s, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; eosErrorP = $f.eosErrorP; eosValue = $f.eosValue; err = $f.err; ok = $f.ok; options = $f.options; s = $f.s; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: s = e.StandardInput; if (options.$length > 0) { s = (0 >= options.$length ? ($throwRuntimeError("index out of range"), undefined) : options.$array[options.$offset + 0]); } _tuple = InputStreamP($clone(e, env.Environment), s); ok = _tuple[0]; /* */ if ($interfaceIsEqual(ok, $pkg.Nil)) { $s = 1; continue; } /* */ $s = 2; continue; /* if ($interfaceIsEqual(ok, $pkg.Nil)) { */ case 1: _arg = $clone(e, env.Environment); _r = instance.NewDomainError($clone(e, env.Environment), s, class$1.Stream); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = _r; _arg$2 = $pkg.Nil; _r$1 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 2: eosErrorP = true; if (options.$length > 1) { if ($interfaceIsEqual((1 >= options.$length ? ($throwRuntimeError("index out of range"), undefined) : options.$array[options.$offset + 1]), $pkg.Nil)) { eosErrorP = false; } } eosValue = $pkg.Nil; if (options.$length > 2) { if ($interfaceIsEqual((2 >= options.$length ? ($throwRuntimeError("index out of range"), undefined) : options.$array[options.$offset + 2]), $pkg.Nil)) { eosValue = (2 >= options.$length ? ($throwRuntimeError("index out of range"), undefined) : options.$array[options.$offset + 2]); } } _r$2 = bufio.NewReader($assertType(s, instance.Stream).Reader).ReadLine(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; v = _tuple$1[0]; err = _tuple$1[2]; /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 6; continue; } /* */ $s = 7; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 6: /* */ if (eosErrorP) { $s = 8; continue; } /* */ $s = 9; continue; /* if (eosErrorP) { */ case 8: _r$3 = instance.Create($clone(e, env.Environment), class$1.EndOfStream, new sliceType([])); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return [$ifaceNil, _r$3]; /* } */ case 9: $s = -1; return [eosValue, $ifaceNil]; /* } */ case 7: $s = -1; return [instance.NewString((new sliceType$4($stringToRunes(($bytesToString(v)))))), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: ReadLine }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.eosErrorP = eosErrorP; $f.eosValue = eosValue; $f.err = err; $f.ok = ok; $f.options = options; $f.s = s; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.ReadLine = ReadLine; StreamReadyP = function(e, inputStream) { var e, inputStream; return [$pkg.T, $ifaceNil]; }; $pkg.StreamReadyP = StreamReadyP; Stringp = function(e, obj) { var _r, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.String, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Stringp }; } $f._r = _r; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Stringp = Stringp; CreateString = function(e, i, initialElement) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, e, err, i, i$1, initialElement, n, v, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; e = $f.e; err = $f.err; i = $f.i; i$1 = $f.i$1; initialElement = $f.initialElement; n = $f.n; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.Integer, i); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!_r || (($assertType(i, instance.Integer) >> 0)) < 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!_r || (($assertType(i, instance.Integer) >> 0)) < 0) { */ case 1: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), i, (x = class$1.Object, new x.constructor.elem(x))); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 2: /* */ if (initialElement.$length > 1) { $s = 6; continue; } /* */ $s = 7; continue; /* if (initialElement.$length > 1) { */ case 6: _arg$3 = $clone(e, env.Environment); _r$3 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$4 = _r$3; _arg$5 = $pkg.Nil; _r$4 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 7: n = (($assertType(i, instance.Integer) >> 0)); v = $makeSlice(sliceType$4, n); i$1 = 0; /* while (true) { */ case 10: /* if (!(i$1 < n)) { break; } */ if(!(i$1 < n)) { $s = 11; continue; } /* */ if (initialElement.$length === 0) { $s = 12; continue; } /* */ $s = 13; continue; /* if (initialElement.$length === 0) { */ case 12: ((i$1 < 0 || i$1 >= v.$length) ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + i$1] = 0); $s = 14; continue; /* } else { */ case 13: _r$5 = ensure($clone(e, env.Environment), class$1.Character, new sliceType([(0 >= initialElement.$length ? ($throwRuntimeError("index out of range"), undefined) : initialElement.$array[initialElement.$offset + 0])])); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } err = _r$5; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } ((i$1 < 0 || i$1 >= v.$length) ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + i$1] = (($assertType((0 >= initialElement.$length ? ($throwRuntimeError("index out of range"), undefined) : initialElement.$array[initialElement.$offset + 0]), instance.Character) >> 0))); /* } */ case 14: i$1 = i$1 + (1) >> 0; /* } */ $s = 10; continue; case 11: $s = -1; return [instance.NewString(v), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: CreateString }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.e = e; $f.err = err; $f.i = i; $f.i$1 = i$1; $f.initialElement = initialElement; $f.n = n; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.CreateString = CreateString; StringEqual = function(e, string1, string2) { var _r, e, err, string1, string2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; string1 = $f.string1; string2 = $f.string2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.String, new sliceType([string1, string2])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if (($runesToString($assertType(string1, instance.String))) === ($runesToString($assertType(string2, instance.String)))) { $s = -1; return [$pkg.T, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: StringEqual }; } $f._r = _r; $f.e = e; $f.err = err; $f.string1 = string1; $f.string2 = string2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.StringEqual = StringEqual; StringNotEqual = function(e, string1, string2) { var _r, _tuple, e, err, ret, string1, string2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; e = $f.e; err = $f.err; ret = $f.ret; string1 = $f.string1; string2 = $f.string2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = StringEqual($clone(e, env.Environment), string1, string2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ret = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } $s = -1; return Not($clone(e, env.Environment), ret); /* */ } return; } if ($f === undefined) { $f = { $blk: StringNotEqual }; } $f._r = _r; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.ret = ret; $f.string1 = string1; $f.string2 = string2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.StringNotEqual = StringNotEqual; StringGreaterThan = function(e, string1, string2) { var _r, e, err, string1, string2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; string1 = $f.string1; string2 = $f.string2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.String, new sliceType([string1, string2])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if (($runesToString($assertType(string1, instance.String))) > ($runesToString($assertType(string2, instance.String)))) { $s = -1; return [$pkg.T, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: StringGreaterThan }; } $f._r = _r; $f.e = e; $f.err = err; $f.string1 = string1; $f.string2 = string2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.StringGreaterThan = StringGreaterThan; StringGreaterThanOrEqual = function(e, string1, string2) { var _r, e, err, string1, string2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; string1 = $f.string1; string2 = $f.string2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.String, new sliceType([string1, string2])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if (($runesToString($assertType(string1, instance.String))) >= ($runesToString($assertType(string2, instance.String)))) { $s = -1; return [$pkg.T, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: StringGreaterThanOrEqual }; } $f._r = _r; $f.e = e; $f.err = err; $f.string1 = string1; $f.string2 = string2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.StringGreaterThanOrEqual = StringGreaterThanOrEqual; StringLessThan = function(e, string1, string2) { var _r, e, err, string1, string2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; string1 = $f.string1; string2 = $f.string2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.String, new sliceType([string1, string2])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if (($runesToString($assertType(string1, instance.String))) < ($runesToString($assertType(string2, instance.String)))) { $s = -1; return [$pkg.T, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: StringLessThan }; } $f._r = _r; $f.e = e; $f.err = err; $f.string1 = string1; $f.string2 = string2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.StringLessThan = StringLessThan; StringLessThanOrEqual = function(e, string1, string2) { var _r, e, err, string1, string2, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; string1 = $f.string1; string2 = $f.string2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.String, new sliceType([string1, string2])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if (($runesToString($assertType(string1, instance.String))) <= ($runesToString($assertType(string2, instance.String)))) { $s = -1; return [$pkg.T, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: StringLessThanOrEqual }; } $f._r = _r; $f.e = e; $f.err = err; $f.string1 = string1; $f.string2 = string2; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.StringLessThanOrEqual = StringLessThanOrEqual; CharIndex = function(e, char$1, str, startPosition) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, c, char$1, e, err, err$1, err$2, i, n, s, startPosition, str, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; c = $f.c; char$1 = $f.char$1; e = $f.e; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; i = $f.i; n = $f.n; s = $f.s; startPosition = $f.startPosition; str = $f.str; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Character, new sliceType([char$1])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = ensure($clone(e, env.Environment), class$1.String, new sliceType([str])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } err$1 = _r$1; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } /* */ if (startPosition.$length > 1) { $s = 3; continue; } /* */ $s = 4; continue; /* if (startPosition.$length > 1) { */ case 3: _arg = $clone(e, env.Environment); _r$2 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; _arg$2 = $pkg.Nil; _r$3 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* } */ case 4: n = 0; /* */ if (startPosition.$length === 1) { $s = 7; continue; } /* */ $s = 8; continue; /* if (startPosition.$length === 1) { */ case 7: _r$4 = ensure($clone(e, env.Environment), class$1.Integer, new sliceType([(0 >= startPosition.$length ? ($throwRuntimeError("index out of range"), undefined) : startPosition.$array[startPosition.$offset + 0])])); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } err$2 = _r$4; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } n = (($assertType((0 >= startPosition.$length ? ($throwRuntimeError("index out of range"), undefined) : startPosition.$array[startPosition.$offset + 0]), instance.Integer) >> 0)); /* } */ case 8: s = ($runesToString($subslice($assertType(str, instance.String), n))); c = (($assertType(char$1, instance.Character) >> 0)); i = strings.IndexRune(s, c); if (i < 0) { $s = -1; return [$pkg.Nil, $ifaceNil]; } $s = -1; return [instance.NewInteger(i + n >> 0), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: CharIndex }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.c = c; $f.char$1 = char$1; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.i = i; $f.n = n; $f.s = s; $f.startPosition = startPosition; $f.str = str; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.CharIndex = CharIndex; StringIndex = function(e, sub, str, startPosition) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, c, e, err, err$1, err$2, i, n, s, startPosition, str, sub, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; c = $f.c; e = $f.e; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; i = $f.i; n = $f.n; s = $f.s; startPosition = $f.startPosition; str = $f.str; sub = $f.sub; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.String, new sliceType([sub])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = ensure($clone(e, env.Environment), class$1.String, new sliceType([str])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } err$1 = _r$1; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } /* */ if (startPosition.$length > 1) { $s = 3; continue; } /* */ $s = 4; continue; /* if (startPosition.$length > 1) { */ case 3: _arg = $clone(e, env.Environment); _r$2 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; _arg$2 = $pkg.Nil; _r$3 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $s = -1; return _r$3; /* } */ case 4: n = 0; /* */ if (startPosition.$length === 1) { $s = 7; continue; } /* */ $s = 8; continue; /* if (startPosition.$length === 1) { */ case 7: _r$4 = ensure($clone(e, env.Environment), class$1.Integer, new sliceType([(0 >= startPosition.$length ? ($throwRuntimeError("index out of range"), undefined) : startPosition.$array[startPosition.$offset + 0])])); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } err$2 = _r$4; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } n = (($assertType((0 >= startPosition.$length ? ($throwRuntimeError("index out of range"), undefined) : startPosition.$array[startPosition.$offset + 0]), instance.Integer) >> 0)); /* } */ case 8: s = ($runesToString($subslice($assertType(str, instance.String), n))); c = ($runesToString($assertType(sub, instance.String))); i = strings.Index(s, c); if (i < 0) { $s = -1; return [$pkg.Nil, $ifaceNil]; } $s = -1; return [instance.NewInteger(i + n >> 0), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: StringIndex }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.c = c; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.i = i; $f.n = n; $f.s = s; $f.startPosition = startPosition; $f.str = str; $f.sub = sub; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.StringIndex = StringIndex; StringAppend = function(e, str) { var _i, _r, _ref, e, err, ret, s, str, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; e = $f.e; err = $f.err; ret = $f.ret; s = $f.s; str = $f.str; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: ret = ""; _ref = str; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r = ensure($clone(e, env.Environment), class$1.String, new sliceType([s])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } ret = ret + (($runesToString($assertType(s, instance.String)))); _i++; /* } */ $s = 1; continue; case 2: $s = -1; return [instance.NewString((new sliceType$4($stringToRunes(ret)))), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: StringAppend }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.e = e; $f.err = err; $f.ret = ret; $f.s = s; $f.str = str; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.StringAppend = StringAppend; Symbolp = function(e, obj) { var _r, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.Symbol, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Symbolp }; } $f._r = _r; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Symbolp = Symbolp; Property = function(e, symbol, propertyName, obj) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, e, err, obj, ok, propertyName, ret, symbol, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; e = $f.e; err = $f.err; obj = $f.obj; ok = $f.ok; propertyName = $f.propertyName; ret = $f.ret; symbol = $f.symbol; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Symbol, new sliceType([symbol])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } /* */ if (obj.$length > 1) { $s = 2; continue; } /* */ $s = 3; continue; /* if (obj.$length > 1) { */ case 2: _arg = $clone(e, env.Environment); _r$1 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 3: _tuple = new env.map2(e.Property).Get(symbol, propertyName); ret = _tuple[0]; ok = _tuple[1]; if (ok) { $s = -1; return [ret, $ifaceNil]; } $s = -1; return [(1 >= obj.$length ? ($throwRuntimeError("index out of range"), undefined) : obj.$array[obj.$offset + 1]), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Property }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.obj = obj; $f.ok = ok; $f.propertyName = propertyName; $f.ret = ret; $f.symbol = symbol; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Property = Property; SetProperty = function(e, obj, symbol, propertyName) { var _r, e, err, obj, propertyName, symbol, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; obj = $f.obj; propertyName = $f.propertyName; symbol = $f.symbol; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Symbol, new sliceType([symbol])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } new env.map2(e.Property).Set(symbol, propertyName, obj); $s = -1; return [obj, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: SetProperty }; } $f._r = _r; $f.e = e; $f.err = err; $f.obj = obj; $f.propertyName = propertyName; $f.symbol = symbol; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.SetProperty = SetProperty; RemoveProperty = function(e, symbol, propertyName) { var _r, _tuple, e, err, ok, propertyName, symbol, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; e = $f.e; err = $f.err; ok = $f.ok; propertyName = $f.propertyName; symbol = $f.symbol; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.Symbol, new sliceType([symbol])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _tuple = new env.map2(e.Property).Delete(symbol, propertyName); v = _tuple[0]; ok = _tuple[1]; if (ok) { $s = -1; return [v, $ifaceNil]; } $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: RemoveProperty }; } $f._r = _r; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.ok = ok; $f.propertyName = propertyName; $f.symbol = symbol; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.RemoveProperty = RemoveProperty; Gensym = function(e) { var _r, _r$1, e, symbol, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; e = $f.e; symbol = $f.symbol; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = fmt.Sprintf("#:%v", new sliceType$3([new $Int(uniqueInt())])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = instance.NewSymbol(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } symbol = _r$1; $s = -1; return [symbol, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: Gensym }; } $f._r = _r; $f._r$1 = _r$1; $f.e = e; $f.symbol = symbol; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Gensym = Gensym; convFloat64 = function(e, x) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, e, err, x, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; e = $f.e; err = $f.err; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.Integer, x); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 2; continue; } _r$1 = ilos.InstanceOf(class$1.Float, x); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (_r$1) { $s = 3; continue; } /* */ $s = 4; continue; /* if (_r) { */ case 2: $s = -1; return [($assertType(x, instance.Integer)), false, $ifaceNil]; /* } else if (_r$1) { */ case 3: $s = -1; return [($assertType(x, instance.Float)), true, $ifaceNil]; /* } else { */ case 4: _arg = $clone(e, env.Environment); _r$2 = instance.NewDomainError($clone(e, env.Environment), x, class$1.Number); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; _arg$2 = $pkg.Nil; _r$3 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple = _r$3; err = _tuple[1]; $s = -1; return [0, false, err]; /* } */ case 5: case 1: $s = -1; return [0, false, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: convFloat64 }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; }; ensure = function(e, c, i) { var _arg, _arg$1, _arg$2, _i, _r, _r$1, _r$2, _ref, _tuple, c, e, err, i, o, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tuple = $f._tuple; c = $f.c; e = $f.e; err = $f.err; i = $f.i; o = $f.o; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _ref = i; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } o = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r = ilos.InstanceOf(c, o); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!_r) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!_r) { */ case 3: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), o, c); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple = _r$2; err = _tuple[1]; $s = -1; return err; /* } */ case 4: _i++; /* } */ $s = 1; continue; case 2: $s = -1; return $ifaceNil; /* */ } return; } if ($f === undefined) { $f = { $blk: ensure }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tuple = _tuple; $f.c = c; $f.e = e; $f.err = err; $f.i = i; $f.o = o; $f.$s = $s; $f.$r = $r; return $f; }; uniqueInt = function() { var i; i = unique; unique = unique + (1) >> 0; return i; }; func2symbol = function(function$1) { var _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, function$1, name, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; function$1 = $f.function$1; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = reflect.ValueOf(function$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = $clone(_r, reflect.Value).Pointer(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = runtime.FuncForPC(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$3 = _r$2.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } name = _r$3; _r$4 = regexp.MustCompile(".*\\."); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _r$5 = _r$4.ReplaceAllString(name, ""); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } name = _r$5; _r$6 = regexp.MustCompile("(.)([A-Z])"); /* */ $s = 7; case 7: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _r$7 = _r$6.ReplaceAllString(name, "$1-$2"); /* */ $s = 8; case 8: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } name = _r$7; _r$8 = strings.ToUpper(name); /* */ $s = 9; case 9: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } name = _r$8; $s = -1; return instance.NewSymbol(name); /* */ } return; } if ($f === undefined) { $f = { $blk: func2symbol }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f.function$1 = function$1; $f.name = name; $f.$s = $s; $f.$r = $r; return $f; }; Setq = function(e, var1, form) { var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, e, err, form, ret, var1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; e = $f.e; err = $f.err; form = $f.form; ret = $f.ret; var1 = $f.var1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = Eval($clone(e, env.Environment), form); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; ret = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } if (e.Variable.Set(var1, ret)) { $s = -1; return [ret, $ifaceNil]; } _arg = $clone(e, env.Environment); _r$1 = instance.NewUndefinedVariable($clone(e, env.Environment), var1); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* */ } return; } if ($f === undefined) { $f = { $blk: Setq }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.form = form; $f.ret = ret; $f.var1 = var1; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Setq = Setq; Setf = function(e, var1, form) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, arguments$1, e, err, form, fun, funcSpec, ok, var1, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; arguments$1 = $f.arguments$1; e = $f.e; err = $f.err; form = $f.form; fun = $f.fun; funcSpec = $f.funcSpec; ok = $f.ok; var1 = $f.var1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.Symbol, var1); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: _r$1 = Setq($clone(e, env.Environment), var1, form); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $s = -1; return _r$1; /* } */ case 2: _r$2 = $assertType(var1, instance.List).Nth(0); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg = _r$2; _r$3 = fmt.Sprintf("(SETF %v)", new sliceType$3([_arg])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$4 = instance.NewSymbol(_r$3); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } funcSpec = _r$4; _tuple = e.Function.Get(funcSpec); fun = _tuple[0]; ok = _tuple[1]; /* */ if (!ok) { $s = 8; continue; } /* */ $s = 9; continue; /* if (!ok) { */ case 8: _arg$1 = $clone(e, env.Environment); _r$5 = instance.NewUndefinedFunction($clone(e, env.Environment), funcSpec); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$2 = _r$5; _arg$3 = $pkg.Nil; _r$6 = SignalCondition(_arg$1, _arg$2, _arg$3); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $s = -1; return _r$6; /* } */ case 9: _r$7 = evalArguments($clone(e, env.Environment), instance.NewCons(form, $assertType(var1, ptrType$1).Cdr)); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple$1 = _r$7; arguments$1 = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _arg$4 = $clone(e, env.Environment); _r$8 = $assertType(arguments$1, instance.List).Slice(); /* */ $s = 13; case 13: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _arg$5 = _r$8; _r$9 = $assertType(fun, instance.Applicable).Apply(_arg$4, _arg$5); /* */ $s = 14; case 14: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } $s = -1; return _r$9; /* */ } return; } if ($f === undefined) { $f = { $blk: Setf }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.arguments$1 = arguments$1; $f.e = e; $f.err = err; $f.form = form; $f.fun = fun; $f.funcSpec = funcSpec; $f.ok = ok; $f.var1 = var1; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Setf = Setf; Let = function(e, varForm, bodyForm) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _i, _i$1, _key, _keys, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, bodyForm, cadr, e, err, err$1, err$2, f, f$1, v, varForm, vfs, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _entry = $f._entry; _i = $f._i; _i$1 = $f._i$1; _key = $f._key; _keys = $f._keys; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _tuple = $f._tuple; bodyForm = $f.bodyForm; cadr = $f.cadr; e = $f.e; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; f$1 = $f.f$1; v = $f.v; varForm = $f.varForm; vfs = $f.vfs; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: vfs = $makeMap(ilos.Instance.keyFor, []); _r = ensure($clone(e, env.Environment), class$1.List, new sliceType([varForm])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = $assertType(varForm, instance.List).Slice(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _ref = _r$1; _i = 0; /* while (true) { */ case 3: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } cadr = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$2 = ensure($clone(e, env.Environment), class$1.List, new sliceType([cadr])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } err$1 = _r$2; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _r$3 = $assertType(cadr, instance.List).Length(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (!((_r$3 === 2))) { $s = 6; continue; } /* */ $s = 7; continue; /* if (!((_r$3 === 2))) { */ case 6: _arg = $clone(e, env.Environment); _r$4 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$1 = _r$4; _arg$2 = $pkg.Nil; _r$5 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } */ case 7: _arg$3 = $clone(e, env.Environment); _r$6 = $assertType(cadr, instance.List).Nth(1); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _arg$4 = _r$6; _r$7 = Eval(_arg$3, _arg$4); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple = _r$7; f = _tuple[0]; err$2 = _tuple[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } _r$8 = $assertType(cadr, instance.List).Nth(0); /* */ $s = 13; case 13: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _key = _r$8; (vfs || $throwRuntimeError("assignment to entry in nil map"))[ilos.Instance.keyFor(_key)] = { k: _key, v: f }; _i++; /* } */ $s = 3; continue; case 4: _ref$1 = vfs; _i$1 = 0; _keys = $keys(_ref$1); /* while (true) { */ case 14: /* if (!(_i$1 < _keys.length)) { break; } */ if(!(_i$1 < _keys.length)) { $s = 15; continue; } _entry = _ref$1[_keys[_i$1]]; if (_entry === undefined) { _i$1++; /* continue; */ $s = 14; continue; } v = _entry.k; f$1 = _entry.v; /* */ if (!e.Variable.Define(v, f$1)) { $s = 16; continue; } /* */ $s = 17; continue; /* if (!e.Variable.Define(v, f$1)) { */ case 16: _arg$5 = $clone(e, env.Environment); _r$9 = instance.NewImmutableBinding($clone(e, env.Environment)); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _arg$6 = _r$9; _arg$7 = $pkg.Nil; _r$10 = SignalCondition(_arg$5, _arg$6, _arg$7); /* */ $s = 19; case 19: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } $s = -1; return _r$10; /* } */ case 17: _i$1++; /* } */ $s = 14; continue; case 15: _r$11 = Progn($clone(e, env.Environment), bodyForm); /* */ $s = 20; case 20: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } $s = -1; return _r$11; /* */ } return; } if ($f === undefined) { $f = { $blk: Let }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._entry = _entry; $f._i = _i; $f._i$1 = _i$1; $f._key = _key; $f._keys = _keys; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f.bodyForm = bodyForm; $f.cadr = cadr; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.f$1 = f$1; $f.v = v; $f.varForm = varForm; $f.vfs = vfs; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.Let = Let; LetStar = function(e, varForm, bodyForm) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, bodyForm, cadr, e, err, err$1, err$2, f, varForm, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _tuple = $f._tuple; bodyForm = $f.bodyForm; cadr = $f.cadr; e = $f.e; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; varForm = $f.varForm; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ensure($clone(e, env.Environment), class$1.List, new sliceType([varForm])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, err]; } _r$1 = $assertType(varForm, instance.List).Slice(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _ref = _r$1; _i = 0; /* while (true) { */ case 3: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } cadr = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$2 = ensure($clone(e, env.Environment), class$1.List, new sliceType([cadr])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } err$1 = _r$2; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } _r$3 = $assertType(cadr, instance.List).Length(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (!((_r$3 === 2))) { $s = 6; continue; } /* */ $s = 7; continue; /* if (!((_r$3 === 2))) { */ case 6: _arg = $clone(e, env.Environment); _r$4 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$1 = _r$4; _arg$2 = $pkg.Nil; _r$5 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $s = -1; return _r$5; /* } */ case 7: _arg$3 = $clone(e, env.Environment); _r$6 = $assertType(cadr, instance.List).Nth(1); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _arg$4 = _r$6; _r$7 = Eval(_arg$3, _arg$4); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple = _r$7; f = _tuple[0]; err$2 = _tuple[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; } _r$8 = $assertType(cadr, instance.List).Nth(0); /* */ $s = 15; case 15: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _r$9 = e.Variable.Define(_r$8, f); /* */ $s = 16; case 16: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } /* */ if (!_r$9) { $s = 13; continue; } /* */ $s = 14; continue; /* if (!_r$9) { */ case 13: _arg$5 = $clone(e, env.Environment); _r$10 = instance.NewImmutableBinding($clone(e, env.Environment)); /* */ $s = 17; case 17: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _arg$6 = _r$10; _arg$7 = $pkg.Nil; _r$11 = SignalCondition(_arg$5, _arg$6, _arg$7); /* */ $s = 18; case 18: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } $s = -1; return _r$11; /* } */ case 14: _i++; /* } */ $s = 3; continue; case 4: _r$12 = Progn($clone(e, env.Environment), bodyForm); /* */ $s = 19; case 19: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } $s = -1; return _r$12; /* */ } return; } if ($f === undefined) { $f = { $blk: LetStar }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._tuple = _tuple; $f.bodyForm = bodyForm; $f.cadr = cadr; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.varForm = varForm; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.LetStar = LetStar; BasicVectorP = function(e, obj) { var _r, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.BasicVector, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: BasicVectorP }; } $f._r = _r; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.BasicVectorP = BasicVectorP; GeneralVectorP = function(e, obj) { var _r, e, obj, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; obj = $f.obj; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.GeneralVector, obj); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r) { */ case 1: $s = -1; return [$pkg.T, $ifaceNil]; /* } */ case 2: $s = -1; return [$pkg.Nil, $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: GeneralVectorP }; } $f._r = _r; $f.e = e; $f.obj = obj; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.GeneralVectorP = GeneralVectorP; CreateVector = function(e, i, initialElement) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r, _r$1, _r$2, _r$3, _r$4, e, i, i$1, initialElement, n, v, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; e = $f.e; i = $f.i; i$1 = $f.i$1; initialElement = $f.initialElement; n = $f.n; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = ilos.InstanceOf(class$1.Integer, i); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!_r || (($assertType(i, instance.Integer) >> 0)) < 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!_r || (($assertType(i, instance.Integer) >> 0)) < 0) { */ case 1: _arg = $clone(e, env.Environment); _r$1 = instance.NewDomainError($clone(e, env.Environment), i, class$1.Integer); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$1 = _r$1; _arg$2 = $pkg.Nil; _r$2 = SignalCondition(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $s = -1; return _r$2; /* } */ case 2: /* */ if (initialElement.$length > 1) { $s = 6; continue; } /* */ $s = 7; continue; /* if (initialElement.$length > 1) { */ case 6: _arg$3 = $clone(e, env.Environment); _r$3 = instance.NewArityError($clone(e, env.Environment)); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$4 = _r$3; _arg$5 = $pkg.Nil; _r$4 = SignalCondition(_arg$3, _arg$4, _arg$5); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $s = -1; return _r$4; /* } */ case 7: n = (($assertType(i, instance.Integer) >> 0)); v = $makeSlice(sliceType, n); i$1 = 0; while (true) { if (!(i$1 < n)) { break; } if (initialElement.$length === 0) { ((i$1 < 0 || i$1 >= v.$length) ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + i$1] = $pkg.Nil); } else { ((i$1 < 0 || i$1 >= v.$length) ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + i$1] = (0 >= initialElement.$length ? ($throwRuntimeError("index out of range"), undefined) : initialElement.$array[initialElement.$offset + 0])); } i$1 = i$1 + (1) >> 0; } $s = -1; return [($subslice(new instance.GeneralVector(v.$array), v.$offset, v.$offset + v.$length)), $ifaceNil]; /* */ } return; } if ($f === undefined) { $f = { $blk: CreateVector }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.e = e; $f.i = i; $f.i$1 = i$1; $f.initialElement = initialElement; $f.n = n; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.CreateVector = CreateVector; Vector = function(e, obj) { var e, obj; return [($subslice(new instance.GeneralVector(obj.$array), obj.$offset, obj.$offset + obj.$length)), $ifaceNil]; }; $pkg.Vector = Vector; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = bufio.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = bytes.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = fmt.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = parser.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = tokenizer.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = env.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = ilos.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = class$1.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = instance.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = math.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = os.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = reflect.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = regexp.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = runtime.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strconv.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strings.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = testing.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $pkg.Nil = instance.Nil; $pkg.T = instance.NewSymbol("T"); $pkg.MostPositiveFloat = instance.NewFloat(1.7976931348623157e+308); $pkg.MostNegativeFloat = instance.NewFloat(-1.7976931348623157e+308); $pkg.Pi = instance.NewFloat(3.141592653589793); $pkg.TopLevel = $clone(env.NewEnvironment(instance.NewStream(os.Stdin, $ifaceNil), instance.NewStream($ifaceNil, os.Stdout), instance.NewStream($ifaceNil, os.Stderr), instance.NewFunction(instance.NewSymbol("TOP-LEVEL-HANDLER"), new funcType(TopLevelHander))), env.Environment); unique = 0; $r = init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["html"] = (function() { var $pkg = {}, $init, strings, utf8, sliceType, htmlEscaper, EscapeString; strings = $packages["strings"]; utf8 = $packages["unicode/utf8"]; sliceType = $sliceType($String); EscapeString = function(s) { var _r, s, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: _r = htmlEscaper.Replace(s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $s = -1; return _r; /* */ } return; } if ($f === undefined) { $f = { $blk: EscapeString }; } $f._r = _r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; }; $pkg.EscapeString = EscapeString; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = strings.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } htmlEscaper = strings.NewReplacer(new sliceType(["&", "&", "'", "'", "<", "<", ">", ">", "\"", """])); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["main"] = (function() { var $pkg = {}, $init, bytes, fmt, runtime, instance, js, html, strings, funcType, mapType, sliceType, arrayType, sliceType$1, sliceType$2, main, eval$1; bytes = $packages["bytes"]; fmt = $packages["fmt"]; runtime = $packages["github.com/asciian/iris/runtime"]; instance = $packages["github.com/asciian/iris/runtime/ilos/instance"]; js = $packages["github.com/gopherjs/gopherjs/js"]; html = $packages["html"]; strings = $packages["strings"]; funcType = $funcType([$String], [$String], false); mapType = $mapType($String, $emptyInterface); sliceType = $sliceType($Uint8); arrayType = $arrayType($Uint8, 64); sliceType$1 = $sliceType($packages["github.com/asciian/iris/runtime/ilos"].Instance); sliceType$2 = $sliceType($emptyInterface); main = function() { console.log("Welcome to Iris (a0f4f8d). Iris is an ISLisp implementation on Go.\nThis library works with gopherjs and has no methods to get input.\nFor more infomation, see https://islisp.js.org.\n\nCopyright © 2017 asciian All Rights Reserved."); $global.islisp = $externalize($makeMap($String.keyFor, [{ k: "eval", v: new funcType(eval$1) }]), mapType); }; eval$1 = function(s) { var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, e, err, p, r, s, w, $s, $r; /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; p = $f.p; r = $f.r; s = $f.s; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: r = strings.NewReader(s); w = new bytes.Buffer.ptr(sliceType.nil, 0, 0, arrayType.zero()); runtime.TopLevel.StandardInput = instance.NewStream(r, $ifaceNil); runtime.TopLevel.StandardOutput = instance.NewStream($ifaceNil, w); runtime.TopLevel.ErrorOutput = instance.NewStream($ifaceNil, w); runtime.TopLevel.Function.Set(instance.NewSymbol("READ"), $ifaceNil); runtime.TopLevel.Function.Set(instance.NewSymbol("READ-LINE"), $ifaceNil); runtime.TopLevel.Function.Set(instance.NewSymbol("READ-CHAR"), $ifaceNil); _r = runtime.Read($clone(runtime.TopLevel, $packages["github.com/asciian/iris/runtime/env"].Environment), new sliceType$1([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; p = _tuple[0]; err = _tuple[1]; /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: _arg = w; _r$1 = err.String(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = html.EscapeString(_r$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = new $String(_r$2); _r$3 = fmt.Fprint(_arg, new sliceType$2([_arg$1])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$3; $s = -1; return w.String(); /* } */ case 3: _r$4 = runtime.Eval($clone(runtime.TopLevel, $packages["github.com/asciian/iris/runtime/env"].Environment), p); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$1 = _r$4; e = _tuple$1[0]; err = _tuple$1[1]; /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 8; continue; } /* */ $s = 9; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 8: _arg$2 = w; _r$5 = err.String(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _r$6 = html.EscapeString(_r$5); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _arg$3 = new $String(_r$6); _r$7 = fmt.Fprint(_arg$2, new sliceType$2([_arg$3])); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _r$7; $s = -1; return w.String(); /* } */ case 9: _arg$4 = w; _r$8 = e.String(); /* */ $s = 13; case 13: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _r$9 = html.EscapeString(_r$8); /* */ $s = 14; case 14: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _arg$5 = new $String(_r$9); _r$10 = fmt.Fprint(_arg$4, new sliceType$2([_arg$5])); /* */ $s = 15; case 15: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _r$10; $s = -1; return w.String(); /* */ } return; } if ($f === undefined) { $f = { $blk: eval$1 }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.p = p; $f.r = r; $f.s = s; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; }; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = runtime.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = instance.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = js.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = html.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if ($pkg === $mainPkg) { main(); $mainFinished = true; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $synthesizeMethods(); var $mainPkg = $packages["main"]; $packages["runtime"].$init(); $go($mainPkg.$init, []); $flushConsole(); }).call(this); //# sourceMappingURL=eval.js.map