{"ScriptPreparationCode":null,"TestCases":[{"Name":"generators","Code":"var GAS = 0;\r\nfunction run(init, makeGen) {\r\n GAS = init;\r\n var gen = makeGen();\r\n while(true) {\r\n var res = gen.next();\r\n if(res.done) {\r\n return res.value;\r\n }\r\n else {\r\n GAS = init;\r\n continue;\r\n }\r\n }\r\n}\r\n\r\n\r\nvar linkNames = [\u0022first\u0022, \u0022rest\u0022];\r\nfunction* link(f, r) {\r\n return {\r\n $name: \u0022link\u0022,\r\n $fields: linkNames,\r\n first: f,\r\n rest: r\r\n }\r\n}\r\nvar empty = { $name: \u0022empty\u0022 };\r\n\r\nfunction* map(f, l) {\r\n if(GAS-- \u003C= 0) { yield null; }\r\n var ans;\r\n var dispatch = {\r\n empty: 0,\r\n link: 1\r\n };\r\n var case_step = dispatch[l.$name];\r\n switch(case_step) {\r\n case 0:\r\n ans = empty\r\n break;\r\n case 1:\r\n fst = l[l.$fields[0]];\r\n rst = l[l.$fields[1]];\r\n var t1 = yield* f(fst);\r\n var t2 = yield* map(f, rst);\r\n var t3 = yield* link(t1, t2);\r\n ans = t3;\r\n }\r\n return ans;\r\n}\r\n\r\nvar buildList = function(n) {\r\n var l = empty;\r\n for(var i = 0; i \u003C n; i\u002B\u002B) {\r\n l = link(i, l).next().value;\r\n }\r\n return l;\r\n}\r\nrun(100, function*() {\r\n return yield* map(function*(l) { return l \u002B 1; }, buildList(1000));\r\n });\r\n\r\n","IsDeferred":false},{"Name":"Manual","Code":"var GAS = 0;\r\nfunction run(init, runner) {\r\n GAS = init;\r\n var frames = [{\r\n run: runner \r\n }];\r\n var thisFrame = frames.pop();\r\n while(true) {\r\n var res = thisFrame.run(thisFrame);\r\n if(res.isCont) {\r\n var len = res.frames.length;\r\n for(var i = 0; i \u003C len; i\u002B\u002B) {\r\n frames.push(res.frames.pop());\r\n }\r\n GAS = init;\r\n thisFrame = frames.pop();\r\n }\r\n else {\r\n if(frames.length \u003C= 0) {\r\n break;\r\n }\r\n thisFrame = frames.pop();\r\n thisFrame.ans = res;\r\n }\r\n }\r\n return res;\r\n}\r\n\r\nvar linkNames = [\u0022first\u0022, \u0022rest\u0022];\r\nfunction link(f, r) {\r\n return {\r\n $name: \u0022link\u0022,\r\n $fields: linkNames,\r\n first: f,\r\n rest: r\r\n }\r\n}\r\nvar empty = { $name: \u0022empty\u0022 };\r\n\r\nfunction map(f, l) {\r\n var step = 0;\r\n if(f.isFrame) {\r\n var ans = f.ans;\r\n step = f.step;\r\n var t1 = f.vars[0];\r\n var fst = f.vars[1];\r\n var rst = f.vars[2];\r\n var t2 = f.vars[3];\r\n l = f.args[1];\r\n f = f.args[0];\r\n }\r\n if(GAS-- \u003C= 0) {\r\n return {\r\n isCont: true,\r\n frames: [{\r\n run: map,\r\n isFrame: true,\r\n vars: [t1, fst, rst, t2],\r\n args: [f, l],\r\n step: step\r\n }]\r\n };\r\n }\r\n while(true) {\r\n switch(step) {\r\n case 0:\r\n var dispatch = {\r\n empty: 1,\r\n link: 2\r\n };\r\n step = dispatch[l.$name];\r\n break;\r\n case 1:\r\n ans = empty\r\n step = 5\r\n break;\r\n case 2:\r\n fst = l[l.$fields[0]];\r\n rst = l[l.$fields[1]];\r\n step = 3;\r\n ans = f(fst);\r\n break;\r\n case 3:\r\n t1 = ans;\r\n step = 4\r\n ans = map(f, rst);\r\n break;\r\n case 4:\r\n t2 = ans;\r\n step = 5\r\n ans = link(t1, t2);\r\n break;\r\n case 5:\r\n GAS\u002B\u002B;\r\n return ans;\r\n }\r\n if(ans \u0026\u0026 ans.isCont) {\r\n ans.frames.push({\r\n run: map,\r\n isFrame: true,\r\n vars: [t1, fst, rst, t2],\r\n args: [f, l],\r\n step: step\r\n });\r\n return ans;\r\n }\r\n }\r\n}\r\n\r\nvar buildList = function(n) {\r\n var l = empty;\r\n for(var i = 0; i \u003C n; i\u002B\u002B) {\r\n l = link(i, l);\r\n }\r\n return l;\r\n}\r\nrun(100, function() {\r\n return map(function(l) { return l \u002B 1; }, buildList(1000));\r\n });\r\n\r\n\r\n","IsDeferred":false},{"Name":"Vanilla","Code":"let linkNames = [\u0027first\u0027, \u0027rest\u0027];\r\n\r\nlet empty = { $name: \u0027empty\u0027 };\r\n\r\nfunction map(f, l) {\r\n var dispatch = {\r\n empty: 0,\r\n link: 1,\r\n };\r\n var case_step = dispatch[l.$name];\r\n switch (case_step) {\r\n case 0:\r\n return empty;\r\n case 1:\r\n fst = l[l.$fields[0]];\r\n rst = l[l.$fields[1]];\r\n let a = f(fst);\r\n let b = map(f, rst);\r\n let c = link(a, b);\r\n return c;\r\n }\r\n}\r\n\r\nfunction link(f, r) {\r\n return {\r\n $name: \u0027link\u0027,\r\n $fields: linkNames,\r\n first: f,\r\n rest: r\r\n };\r\n}\r\n\r\nfunction buildList(n) {\r\n var l = empty;\r\n for (var i = 0; i \u003C n; i\u002B\u002B) {\r\n l = link(i, l);\r\n }\r\n return l;\r\n}\r\n\r\nmap(function (l) { return l \u002B 1; }, buildList(1000));\r\n","IsDeferred":false},{"Name":"Jumper","Code":"(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\u0022function\u0022\u0026\u0026require;if(!u\u0026\u0026a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\u0022Cannot find module \u0027\u0022\u002Bo\u002B\u0022\u0027\u0022);throw f.code=\u0022MODULE_NOT_FOUND\u0022,f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\u0022function\u0022\u0026\u0026require;for(var o=0;o\u003Cr.length;o\u002B\u002B)s(r[o]);return s})({1:[function(require,module,exports){\r\n(function (global){\r\n\u0022use strict\u0022;\r\nObject.defineProperty(exports, \u0022__esModule\u0022, { value: true });\r\nconst assert = require(\u0027assert\u0027);\r\nexports.stack = [];\r\nexports.mode = \u0027normal\u0027;\r\n// We throw this exception when a continuation value is applied. i.e.,\r\n// callCC applies its argument to a function that throws this exception.\r\nclass Restore {\r\n constructor(stack) {\r\n this.stack = stack;\r\n }\r\n}\r\nexports.Restore = Restore;\r\n// We throw this exception to capture the current continuation. i.e.,\r\n// callCC throws this exception when it is applied.\r\nclass Capture {\r\n constructor(f, stack) {\r\n this.f = f;\r\n this.stack = stack;\r\n }\r\n}\r\nexports.Capture = Capture;\r\nfunction callCC(f) {\r\n throw new Capture(f, []);\r\n}\r\nexports.callCC = callCC;\r\n// Helper function that constructs a top-of-stack frame.\r\nfunction topK(f) {\r\n return {\r\n kind: \u0027top\u0027,\r\n f: () =\u003E {\r\n exports.stack = [];\r\n exports.mode = \u0027normal\u0027;\r\n return f();\r\n }\r\n };\r\n}\r\nexports.topK = topK;\r\n// Wraps a stack in a function that throws an exception to discard the current\r\n// continuation. The exception carries the provided stack with a final frame\r\n// that returns the supplied value.\r\nfunction makeCont(stack) {\r\n return function (v) {\r\n throw new Restore([topK(() =\u003E v), ...stack]);\r\n };\r\n}\r\nexports.makeCont = makeCont;\r\nfunction restore(aStack) {\r\n assert(aStack.length \u003E 0);\r\n exports.mode = \u0027restoring\u0027;\r\n exports.stack = aStack;\r\n exports.stack[exports.stack.length - 1].f();\r\n}\r\nexports.restore = restore;\r\nfunction runtime(body) {\r\n try {\r\n body();\r\n }\r\n catch (exn) {\r\n if (exn instanceof Capture) {\r\n // Recursive call to runtime addresses nested continuations. The return\r\n // statement ensures that the invocation is in tail position.\r\n // At this point, exn.stack is the continuation of callCC, but doesn\u2019t have\r\n // a top-of-stack frame that actually restores the saved continuation. We\r\n // need to apply the function passed to callCC to the stack here, because\r\n // this is the only point where the whole stack is ready.\r\n return runtime(() =\u003E \r\n // Doing exn.f makes \u0022this\u0022 wrong.\r\n restore([topK(() =\u003E exn.f.call(global, makeCont(exn.stack))), ...exn.stack]));\r\n }\r\n else if (exn instanceof Restore) {\r\n // The current continuation has been discarded and we now restore the\r\n // continuation in exn.\r\n return runtime(() =\u003E restore([...exn.stack]));\r\n }\r\n else {\r\n throw exn; // userland exception\r\n }\r\n }\r\n}\r\nexports.runtime = runtime;\r\nconst knownBuiltIns = [Object, Function, Boolean, Symbol, Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError, Number, Math, Date, String, RegExp, Array, Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, Map, Set, WeakMap, WeakSet];\r\nfunction handleNew(constr, ...args) {\r\n if (knownBuiltIns.includes(constr)) {\r\n return new constr(...args);\r\n }\r\n let obj;\r\n if (exports.mode === \u0022normal\u0022) {\r\n obj = Object.create(constr.prototype);\r\n }\r\n else {\r\n const frame = exports.stack[exports.stack.length - 1];\r\n if (frame.kind === \u0022rest\u0022) {\r\n [obj] = frame.locals;\r\n }\r\n else {\r\n throw \u0022bad\u0022;\r\n }\r\n exports.stack.pop();\r\n }\r\n try {\r\n if (exports.mode === \u0022normal\u0022) {\r\n constr.apply(obj, args);\r\n }\r\n else {\r\n exports.stack[exports.stack.length - 1].f.apply(obj, []);\r\n }\r\n }\r\n catch (exn) {\r\n if (exn instanceof Capture) {\r\n exn.stack.push({\r\n kind: \u0022rest\u0022,\r\n f: () =\u003E handleNew(constr, ...args),\r\n locals: [obj],\r\n index: 0\r\n });\r\n }\r\n throw exn;\r\n }\r\n return obj;\r\n}\r\nexports.handleNew = handleNew;\r\nlet countDown;\r\nfunction suspend(interval, top) {\r\n if (Number.isNaN(interval)) {\r\n return;\r\n }\r\n if (countDown === undefined) {\r\n countDown = interval;\r\n }\r\n if (--countDown === 0) {\r\n countDown = interval;\r\n return callCC(top);\r\n }\r\n}\r\nexports.suspend = suspend;\r\n\r\n}).call(this,typeof global !== \u0022undefined\u0022 ? global : typeof self !== \u0022undefined\u0022 ? self : typeof window !== \u0022undefined\u0022 ? window : {})\r\n},{\u0022assert\u0022:3}],2:[function(require,module,exports){\r\n\r\n \r\n const s = Date.now();\r\n ((function ($isStop, $onStop, $onDone, $interval) {\r\n const $__R = require(\u0022stopify/built/src/callcc/runtime\u0022);\r\n\r\n function $program() {\r\n let target = null;\r\n let _app7 = {\r\n box: void 0\r\n };\r\n let $result = {\r\n box: void 0\r\n };\r\n let $handleNew = {\r\n box: void 0\r\n };\r\n let $knownBuiltIns = {\r\n box: void 0\r\n };\r\n\r\n if ($__R.mode === \u0022restoring\u0022) {\r\n const _locals6 = $__R.stack[$__R.stack.length - 1].locals;\r\n _app7 = _locals6[0];\r\n $result = _locals6[1];\r\n $handleNew = _locals6[2];\r\n $knownBuiltIns = _locals6[3];\r\n target = $__R.stack[$__R.stack.length - 1].index;\r\n $__R.stack.pop();\r\n }\r\n\r\n $__R.mode === \u0022normal\u0022 ? $knownBuiltIns.box = [Object, Function, Boolean, Symbol, Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError, Number, Math, Date, String, RegExp, Array, Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, Map, Set, WeakMap, WeakSet] : void 0;\r\n $__R.mode === \u0022normal\u0022 ? $handleNew.box = $__R.handleNew : void 0;\r\n\r\n try {\r\n if ($__R.mode === \u0022normal\u0022) {\r\n $result.box = $__R.callCC(function _funExpr($top) {\r\n let target = null;\r\n let _app5 = {\r\n box: void 0\r\n };\r\n let _app6 = {\r\n box: void 0\r\n };\r\n let empty = {\r\n box: void 0\r\n };\r\n let linkNames = {\r\n box: void 0\r\n };\r\n var fst = {\r\n box: void 0\r\n };\r\n var rst = {\r\n box: void 0\r\n };\r\n\r\n if ($__R.mode === \u0022restoring\u0022) {\r\n const _locals5 = $__R.stack[$__R.stack.length - 1].locals;\r\n _app5 = _locals5[0];\r\n _app6 = _locals5[1];\r\n empty = _locals5[2];\r\n linkNames = _locals5[3];\r\n fst = _locals5[4];\r\n rst = _locals5[5];\r\n map = _locals5[6];\r\n link = _locals5[7];\r\n buildList = _locals5[8];\r\n target = $__R.stack[$__R.stack.length - 1].index;\r\n $__R.stack.pop();\r\n }\r\n\r\n $__R.mode === \u0022normal\u0022 ? rst.box = void 0 : void 0;\r\n $__R.mode === \u0022normal\u0022 ? fst.box = void 0 : void 0;\r\n $__R.mode === \u0022normal\u0022 ? linkNames.box = [\u0027first\u0027, \u0027rest\u0027] : void 0;\r\n $__R.mode === \u0022normal\u0022 ? empty.box = { $name: \u0027empty\u0027 } : void 0;\r\n\r\n\r\n function map(f, l) {\r\n let target = null;\r\n let c = {\r\n box: void 0\r\n };\r\n let b = {\r\n box: void 0\r\n };\r\n let a = {\r\n box: void 0\r\n };\r\n let _fallthrough = {\r\n box: void 0\r\n };\r\n let _test = {\r\n box: void 0\r\n };\r\n var case_step = {\r\n box: void 0\r\n };\r\n var dispatch = {\r\n box: void 0\r\n };\r\n let _app = {\r\n box: void 0\r\n };\r\n\r\n if ($__R.mode === \u0022restoring\u0022) {\r\n const _locals = $__R.stack[$__R.stack.length - 1].locals;\r\n c = _locals[0];\r\n b = _locals[1];\r\n a = _locals[2];\r\n _fallthrough = _locals[3];\r\n _test = _locals[4];\r\n case_step = _locals[5];\r\n dispatch = _locals[6];\r\n _app = _locals[7];\r\n target = $__R.stack[$__R.stack.length - 1].index;\r\n $__R.stack.pop();\r\n }\r\n\r\n try {\r\n if ($__R.mode === \u0022normal\u0022) {\r\n _app.box = $__R.suspend($interval, $top);\r\n } else {\r\n if (target === 1) {\r\n _app.box = $__R.stack[$__R.stack.length - 1].f();\r\n }\r\n }\r\n } catch (exn) {\r\n if (exn instanceof $__R.Capture) {\r\n exn.stack.push({\r\n kind: \u0022rest\u0022,\r\n f: () =\u003E map.call(this, f, l),\r\n locals: [c, b, a, _fallthrough, _test, case_step, dispatch, _app],\r\n index: 1\r\n });\r\n }\r\n\r\n throw exn;\r\n }\r\n\r\n _app.box;\r\n $__R.mode === \u0022normal\u0022 ? dispatch.box = {\r\n empty: 0,\r\n link: 1\r\n } : void 0;\r\n $__R.mode === \u0022normal\u0022 ? case_step.box = dispatch.box[l.$name] : void 0;\r\n\r\n _switch: {\r\n $__R.mode === \u0022normal\u0022 ? _test.box = case_step.box : void 0;\r\n $__R.mode === \u0022normal\u0022 ? _fallthrough.box = false : void 0;\r\n\r\n if ($__R.mode === \u0022restoring\u0022 \u0026\u0026 false || $__R.mode === \u0022normal\u0022 \u0026\u0026 (_test.box === 0 || _fallthrough.box)) {\r\n $__R.mode === \u0022normal\u0022 ? _fallthrough.box = true : void 0;\r\n\r\n return empty.box;\r\n } else if ($__R.mode === \u0022restoring\u0022 \u0026\u0026 false || $__R.mode === \u0022normal\u0022) {\r\n ;\r\n }\r\n\r\n if ($__R.mode === \u0022restoring\u0022 \u0026\u0026 (target === 4 || target === 3 || target === 2 || false) || $__R.mode === \u0022normal\u0022 \u0026\u0026 (_test.box === 1 || _fallthrough.box)) {\r\n $__R.mode === \u0022normal\u0022 ? _fallthrough.box = true : void 0;\r\n\r\n $__R.mode === \u0022normal\u0022 ? fst.box = l[l.$fields[0]] : void 0;\r\n $__R.mode === \u0022normal\u0022 ? rst.box = l[l.$fields[1]] : void 0;\r\n\r\n try {\r\n if ($__R.mode === \u0022normal\u0022) {\r\n a.box = f(fst.box);\r\n } else {\r\n if (target === 2) {\r\n a.box = $__R.stack[$__R.stack.length - 1].f();\r\n }\r\n }\r\n } catch (exn) {\r\n if (exn instanceof $__R.Capture) {\r\n exn.stack.push({\r\n kind: \u0022rest\u0022,\r\n f: () =\u003E map.call(this, f, l),\r\n locals: [c, b, a, _fallthrough, _test, case_step, dispatch, _app],\r\n index: 2\r\n });\r\n }\r\n\r\n throw exn;\r\n }\r\n\r\n try {\r\n if ($__R.mode === \u0022normal\u0022) {\r\n b.box = map(f, rst.box);\r\n } else {\r\n if (target === 3) {\r\n b.box = $__R.stack[$__R.stack.length - 1].f();\r\n }\r\n }\r\n } catch (exn) {\r\n if (exn instanceof $__R.Capture) {\r\n exn.stack.push({\r\n kind: \u0022rest\u0022,\r\n f: () =\u003E map.call(this, f, l),\r\n locals: [c, b, a, _fallthrough, _test, case_step, dispatch, _app],\r\n index: 3\r\n });\r\n }\r\n\r\n throw exn;\r\n }\r\n\r\n try {\r\n if ($__R.mode === \u0022normal\u0022) {\r\n c.box = link(a.box, b.box);\r\n } else {\r\n if (target === 4) {\r\n c.box = $__R.stack[$__R.stack.length - 1].f();\r\n }\r\n }\r\n } catch (exn) {\r\n if (exn instanceof $__R.Capture) {\r\n exn.stack.push({\r\n kind: \u0022rest\u0022,\r\n f: () =\u003E map.call(this, f, l),\r\n locals: [c, b, a, _fallthrough, _test, case_step, dispatch, _app],\r\n index: 4\r\n });\r\n }\r\n\r\n throw exn;\r\n }\r\n\r\n return c.box;\r\n } else if ($__R.mode === \u0022restoring\u0022 \u0026\u0026 false || $__R.mode === \u0022normal\u0022) {\r\n ;\r\n }\r\n }\r\n }\r\n\r\n function link(f, r) {\r\n let target = null;\r\n\r\n if ($__R.mode === \u0022restoring\u0022) {\r\n const _locals2 = $__R.stack[$__R.stack.length - 1].locals;\r\n target = $__R.stack[$__R.stack.length - 1].index;\r\n $__R.stack.pop();\r\n }\r\n\r\n return {\r\n $name: \u0027link\u0027,\r\n $fields: linkNames.box,\r\n first: f,\r\n rest: r\r\n };\r\n }\r\n\r\n function buildList(n) {\r\n let target = null;\r\n let _app4 = {\r\n box: void 0\r\n };\r\n let _app3 = {\r\n box: void 0\r\n };\r\n var i = {\r\n box: void 0\r\n };\r\n var l = {\r\n box: void 0\r\n };\r\n let _app2 = {\r\n box: void 0\r\n };\r\n\r\n if ($__R.mode === \u0022restoring\u0022) {\r\n const _locals3 = $__R.stack[$__R.stack.length - 1].locals;\r\n _app4 = _locals3[0];\r\n _app3 = _locals3[1];\r\n i = _locals3[2];\r\n l = _locals3[3];\r\n _app2 = _locals3[4];\r\n target = $__R.stack[$__R.stack.length - 1].index;\r\n $__R.stack.pop();\r\n }\r\n\r\n try {\r\n if ($__R.mode === \u0022normal\u0022) {\r\n _app2.box = $__R.suspend($interval, $top);\r\n } else {\r\n if (target === 5) {\r\n _app2.box = $__R.stack[$__R.stack.length - 1].f();\r\n }\r\n }\r\n } catch (exn) {\r\n if (exn instanceof $__R.Capture) {\r\n exn.stack.push({\r\n kind: \u0022rest\u0022,\r\n f: () =\u003E buildList.call(this, n),\r\n locals: [_app4, _app3, i, l, _app2],\r\n index: 5\r\n });\r\n }\r\n\r\n throw exn;\r\n }\r\n\r\n _app2.box;\r\n $__R.mode === \u0022normal\u0022 ? l.box = empty.box : void 0;\r\n {\r\n $__R.mode === \u0022normal\u0022 ? i.box = 0 : void 0;\r\n\r\n _loop_break: while ($__R.mode === \u0022restoring\u0022 \u0026\u0026 (target === 7 || target === 6 || false) || $__R.mode === \u0022normal\u0022 \u0026\u0026 i.box \u003C n) {\r\n _loop_continue: {\r\n try {\r\n if ($__R.mode === \u0022normal\u0022) {\r\n _app3.box = $__R.suspend($interval, $top);\r\n } else {\r\n if (target === 6) {\r\n _app3.box = $__R.stack[$__R.stack.length - 1].f();\r\n }\r\n }\r\n } catch (exn) {\r\n if (exn instanceof $__R.Capture) {\r\n exn.stack.push({\r\n kind: \u0022rest\u0022,\r\n f: () =\u003E buildList.call(this, n),\r\n locals: [_app4, _app3, i, l, _app2],\r\n index: 6\r\n });\r\n }\r\n\r\n throw exn;\r\n }\r\n\r\n _app3.box;\r\n\r\n try {\r\n if ($__R.mode === \u0022normal\u0022) {\r\n _app4.box = link(i.box, l.box);\r\n } else {\r\n if (target === 7) {\r\n _app4.box = $__R.stack[$__R.stack.length - 1].f();\r\n }\r\n }\r\n } catch (exn) {\r\n if (exn instanceof $__R.Capture) {\r\n exn.stack.push({\r\n kind: \u0022rest\u0022,\r\n f: () =\u003E buildList.call(this, n),\r\n locals: [_app4, _app3, i, l, _app2],\r\n index: 7\r\n });\r\n }\r\n\r\n throw exn;\r\n }\r\n\r\n $__R.mode === \u0022normal\u0022 ? l.box = _app4.box : void 0;\r\n }\r\n\r\n $__R.mode === \u0022normal\u0022 ? i.box\u002B\u002B : void 0;\r\n }\r\n }\r\n\r\n return l.box;\r\n }\r\n\r\n try {\r\n if ($__R.mode === \u0022normal\u0022) {\r\n _app6.box = buildList(1000);\r\n } else {\r\n if (target === 8) {\r\n _app6.box = $__R.stack[$__R.stack.length - 1].f();\r\n }\r\n }\r\n } catch (exn) {\r\n if (exn instanceof $__R.Capture) {\r\n exn.stack.push({\r\n kind: \u0022rest\u0022,\r\n f: () =\u003E _funExpr.call(this, $top),\r\n locals: [_app5, _app6, empty, linkNames, fst, rst, map, link, buildList],\r\n index: 8\r\n });\r\n }\r\n\r\n throw exn;\r\n }\r\n\r\n try {\r\n if ($__R.mode === \u0022normal\u0022) {\r\n _app5.box = map(function _funExpr2(l) {\r\n let target = null;\r\n\r\n if ($__R.mode === \u0022restoring\u0022) {\r\n const _locals4 = $__R.stack[$__R.stack.length - 1].locals;\r\n target = $__R.stack[$__R.stack.length - 1].index;\r\n $__R.stack.pop();\r\n }\r\n\r\n return l \u002B 1;\r\n }, _app6.box);\r\n } else {\r\n if (target === 9) {\r\n _app5.box = $__R.stack[$__R.stack.length - 1].f();\r\n }\r\n }\r\n } catch (exn) {\r\n if (exn instanceof $__R.Capture) {\r\n exn.stack.push({\r\n kind: \u0022rest\u0022,\r\n f: () =\u003E _funExpr.call(this, $top),\r\n locals: [_app5, _app6, empty, linkNames, fst, rst, map, link, buildList],\r\n index: 9\r\n });\r\n }\r\n\r\n throw exn;\r\n }\r\n\r\n _app5.box;\r\n return \u0022done\u0022;\r\n });\r\n } else {\r\n if (target === 0) {\r\n $result.box = $__R.stack[$__R.stack.length - 1].f();\r\n }\r\n }\r\n } catch (exn) {\r\n if (exn instanceof $__R.Capture) {\r\n exn.stack.push({\r\n kind: \u0022rest\u0022,\r\n f: () =\u003E $program.call(this),\r\n locals: [_app7, $result, $handleNew, $knownBuiltIns],\r\n index: 0\r\n });\r\n }\r\n\r\n throw exn;\r\n }\r\n\r\n if ($__R.mode === \u0022restoring\u0022 \u0026\u0026 (target === 10 || false) || $__R.mode === \u0022normal\u0022 \u0026\u0026 $result.box === \u0022done\u0022) {\r\n if ($__R.mode === \u0022normal\u0022) return $onDone();else if ($__R.mode === \u0022restoring\u0022 \u0026\u0026 (target === 10 || false)) return $__R.stack[$__R.stack.length - 1].f();\r\n } else if ($__R.mode === \u0022restoring\u0022 \u0026\u0026 (target === 13 || target === 12 || target === 11 || false) || $__R.mode === \u0022normal\u0022) {\r\n try {\r\n if ($__R.mode === \u0022normal\u0022) {\r\n _app7.box = $isStop();\r\n } else {\r\n if (target === 11) {\r\n _app7.box = $__R.stack[$__R.stack.length - 1].f();\r\n }\r\n }\r\n } catch (exn) {\r\n if (exn instanceof $__R.Capture) {\r\n exn.stack.push({\r\n kind: \u0022rest\u0022,\r\n f: () =\u003E $program.call(this),\r\n locals: [_app7, $result, $handleNew, $knownBuiltIns],\r\n index: 11\r\n });\r\n }\r\n\r\n throw exn;\r\n }\r\n\r\n if ($__R.mode === \u0022restoring\u0022 \u0026\u0026 (target === 12 || false) || $__R.mode === \u0022normal\u0022 \u0026\u0026 _app7.box) {\r\n if ($__R.mode === \u0022normal\u0022) return $onStop();else if ($__R.mode === \u0022restoring\u0022 \u0026\u0026 (target === 12 || false)) return $__R.stack[$__R.stack.length - 1].f();\r\n } else if ($__R.mode === \u0022restoring\u0022 \u0026\u0026 (target === 13 || false) || $__R.mode === \u0022normal\u0022) {\r\n if ($__R.mode === \u0022normal\u0022) return setTimeout(function _funExpr3() {\r\n return $__R.runtime($result.box);\r\n }, 0);else if ($__R.mode === \u0022restoring\u0022 \u0026\u0026 (target === 13 || false)) return $__R.stack[$__R.stack.length - 1].f();\r\n }\r\n }\r\n }\r\n\r\n return $__R.runtime($program);\r\n})).call(this, _ =\u003E false, () =\u003E 0, () =\u003E {\r\n console.error(\u0027Compilation time: 193ms\u0027)\r\n const e = Date.now();\r\n // s is defined at the start of the program\r\n console.error(\u0022Runtime: \u0022 \u002B (e - s) \u002B \u0022ms\u0022);\r\n \r\n}, // |INTERVAL|\r\n undefined)\r\n \r\n\r\n},{\u0022stopify/built/src/callcc/runtime\u0022:1}],3:[function(require,module,exports){\r\n(function (global){\r\n\u0027use strict\u0027;\r\n\r\n// compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\r\n// original notice:\r\n\r\n/*!\r\n * The buffer module from node.js, for the browser.\r\n *\r\n * @author Feross Aboukhadijeh \u003Cfeross@feross.org\u003E \u003Chttp://feross.org\u003E\r\n * @license MIT\r\n */\r\nfunction compare(a, b) {\r\n if (a === b) {\r\n return 0;\r\n }\r\n\r\n var x = a.length;\r\n var y = b.length;\r\n\r\n for (var i = 0, len = Math.min(x, y); i \u003C len; \u002B\u002Bi) {\r\n if (a[i] !== b[i]) {\r\n x = a[i];\r\n y = b[i];\r\n break;\r\n }\r\n }\r\n\r\n if (x \u003C y) {\r\n return -1;\r\n }\r\n if (y \u003C x) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\nfunction isBuffer(b) {\r\n if (global.Buffer \u0026\u0026 typeof global.Buffer.isBuffer === \u0027function\u0027) {\r\n return global.Buffer.isBuffer(b);\r\n }\r\n return !!(b != null \u0026\u0026 b._isBuffer);\r\n}\r\n\r\n// based on node assert, original notice:\r\n\r\n// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\r\n//\r\n// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\r\n//\r\n// Originally from narwhal.js (http://narwhaljs.org)\r\n// Copyright (c) 2009 Thomas Robinson \u003C280north.com\u003E\r\n//\r\n// Permission is hereby granted, free of charge, to any person obtaining a copy\r\n// of this software and associated documentation files (the \u0027Software\u0027), to\r\n// deal in the Software without restriction, including without limitation the\r\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\r\n// sell copies of the Software, and to permit persons to whom the Software is\r\n// furnished to do so, subject to the following conditions:\r\n//\r\n// The above copyright notice and this permission notice shall be included in\r\n// all copies or substantial portions of the Software.\r\n//\r\n// THE SOFTWARE IS PROVIDED \u0027AS IS\u0027, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\nvar util = require(\u0027util/\u0027);\r\nvar hasOwn = Object.prototype.hasOwnProperty;\r\nvar pSlice = Array.prototype.slice;\r\nvar functionsHaveNames = (function () {\r\n return function foo() {}.name === \u0027foo\u0027;\r\n}());\r\nfunction pToString (obj) {\r\n return Object.prototype.toString.call(obj);\r\n}\r\nfunction isView(arrbuf) {\r\n if (isBuffer(arrbuf)) {\r\n return false;\r\n }\r\n if (typeof global.ArrayBuffer !== \u0027function\u0027) {\r\n return false;\r\n }\r\n if (typeof ArrayBuffer.isView === \u0027function\u0027) {\r\n return ArrayBuffer.isView(arrbuf);\r\n }\r\n if (!arrbuf) {\r\n return false;\r\n }\r\n if (arrbuf instanceof DataView) {\r\n return true;\r\n }\r\n if (arrbuf.buffer \u0026\u0026 arrbuf.buffer instanceof ArrayBuffer) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n// 1. The assert module provides functions that throw\r\n// AssertionError\u0027s when particular conditions are not met. The\r\n// assert module must conform to the following interface.\r\n\r\nvar assert = module.exports = ok;\r\n\r\n// 2. The AssertionError is defined in assert.\r\n// new assert.AssertionError({ message: message,\r\n// actual: actual,\r\n// expected: expected })\r\n\r\nvar regex = /\\s*function\\s\u002B([^\\(\\s]*)\\s*/;\r\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\r\nfunction getName(func) {\r\n if (!util.isFunction(func)) {\r\n return;\r\n }\r\n if (functionsHaveNames) {\r\n return func.name;\r\n }\r\n var str = func.toString();\r\n var match = str.match(regex);\r\n return match \u0026\u0026 match[1];\r\n}\r\nassert.AssertionError = function AssertionError(options) {\r\n this.name = \u0027AssertionError\u0027;\r\n this.actual = options.actual;\r\n this.expected = options.expected;\r\n this.operator = options.operator;\r\n if (options.message) {\r\n this.message = options.message;\r\n this.generatedMessage = false;\r\n } else {\r\n this.message = getMessage(this);\r\n this.generatedMessage = true;\r\n }\r\n var stackStartFunction = options.stackStartFunction || fail;\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, stackStartFunction);\r\n } else {\r\n // non v8 browsers so we can have a stacktrace\r\n var err = new Error();\r\n if (err.stack) {\r\n var out = err.stack;\r\n\r\n // try to strip useless frames\r\n var fn_name = getName(stackStartFunction);\r\n var idx = out.indexOf(\u0027\\n\u0027 \u002B fn_name);\r\n if (idx \u003E= 0) {\r\n // once we have located the function frame\r\n // we need to strip out everything before it (and its line)\r\n var next_line = out.indexOf(\u0027\\n\u0027, idx \u002B 1);\r\n out = out.substring(next_line \u002B 1);\r\n }\r\n\r\n this.stack = out;\r\n }\r\n }\r\n};\r\n\r\n// assert.AssertionError instanceof Error\r\nutil.inherits(assert.AssertionError, Error);\r\n\r\nfunction truncate(s, n) {\r\n if (typeof s === \u0027string\u0027) {\r\n return s.length \u003C n ? s : s.slice(0, n);\r\n } else {\r\n return s;\r\n }\r\n}\r\nfunction inspect(something) {\r\n if (functionsHaveNames || !util.isFunction(something)) {\r\n return util.inspect(something);\r\n }\r\n var rawname = getName(something);\r\n var name = rawname ? \u0027: \u0027 \u002B rawname : \u0027\u0027;\r\n return \u0027[Function\u0027 \u002B name \u002B \u0027]\u0027;\r\n}\r\nfunction getMessage(self) {\r\n return truncate(inspect(self.actual), 128) \u002B \u0027 \u0027 \u002B\r\n self.operator \u002B \u0027 \u0027 \u002B\r\n truncate(inspect(self.expected), 128);\r\n}\r\n\r\n// At present only the three keys mentioned above are used and\r\n// understood by the spec. Implementations or sub modules can pass\r\n// other keys to the AssertionError\u0027s constructor - they will be\r\n// ignored.\r\n\r\n// 3. All of the following functions must throw an AssertionError\r\n// when a corresponding condition is not met, with a message that\r\n// may be undefined if not provided. All assertion methods provide\r\n// both the actual and expected values to the assertion error for\r\n// display purposes.\r\n\r\nfunction fail(actual, expected, message, operator, stackStartFunction) {\r\n throw new assert.AssertionError({\r\n message: message,\r\n actual: actual,\r\n expected: expected,\r\n operator: operator,\r\n stackStartFunction: stackStartFunction\r\n });\r\n}\r\n\r\n// EXTENSION! allows for well behaved errors defined elsewhere.\r\nassert.fail = fail;\r\n\r\n// 4. Pure assertion tests whether a value is truthy, as determined\r\n// by !!guard.\r\n// assert.ok(guard, message_opt);\r\n// This statement is equivalent to assert.equal(true, !!guard,\r\n// message_opt);. To test strictly for the value true, use\r\n// assert.strictEqual(true, guard, message_opt);.\r\n\r\nfunction ok(value, message) {\r\n if (!value) fail(value, true, message, \u0027==\u0027, assert.ok);\r\n}\r\nassert.ok = ok;\r\n\r\n// 5. The equality assertion tests shallow, coercive equality with\r\n// ==.\r\n// assert.equal(actual, expected, message_opt);\r\n\r\nassert.equal = function equal(actual, expected, message) {\r\n if (actual != expected) fail(actual, expected, message, \u0027==\u0027, assert.equal);\r\n};\r\n\r\n// 6. The non-equality assertion tests for whether two objects are not equal\r\n// with != assert.notEqual(actual, expected, message_opt);\r\n\r\nassert.notEqual = function notEqual(actual, expected, message) {\r\n if (actual == expected) {\r\n fail(actual, expected, message, \u0027!=\u0027, assert.notEqual);\r\n }\r\n};\r\n\r\n// 7. The equivalence assertion tests a deep equality relation.\r\n// assert.deepEqual(actual, expected, message_opt);\r\n\r\nassert.deepEqual = function deepEqual(actual, expected, message) {\r\n if (!_deepEqual(actual, expected, false)) {\r\n fail(actual, expected, message, \u0027deepEqual\u0027, assert.deepEqual);\r\n }\r\n};\r\n\r\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\r\n if (!_deepEqual(actual, expected, true)) {\r\n fail(actual, expected, message, \u0027deepStrictEqual\u0027, assert.deepStrictEqual);\r\n }\r\n};\r\n\r\nfunction _deepEqual(actual, expected, strict, memos) {\r\n // 7.1. All identical values are equivalent, as determined by ===.\r\n if (actual === expected) {\r\n return true;\r\n } else if (isBuffer(actual) \u0026\u0026 isBuffer(expected)) {\r\n return compare(actual, expected) === 0;\r\n\r\n // 7.2. If the expected value is a Date object, the actual value is\r\n // equivalent if it is also a Date object that refers to the same time.\r\n } else if (util.isDate(actual) \u0026\u0026 util.isDate(expected)) {\r\n return actual.getTime() === expected.getTime();\r\n\r\n // 7.3 If the expected value is a RegExp object, the actual value is\r\n // equivalent if it is also a RegExp object with the same source and\r\n // properties (\u0060global\u0060, \u0060multiline\u0060, \u0060lastIndex\u0060, \u0060ignoreCase\u0060).\r\n } else if (util.isRegExp(actual) \u0026\u0026 util.isRegExp(expected)) {\r\n return actual.source === expected.source \u0026\u0026\r\n actual.global === expected.global \u0026\u0026\r\n actual.multiline === expected.multiline \u0026\u0026\r\n actual.lastIndex === expected.lastIndex \u0026\u0026\r\n actual.ignoreCase === expected.ignoreCase;\r\n\r\n // 7.4. Other pairs that do not both pass typeof value == \u0027object\u0027,\r\n // equivalence is determined by ==.\r\n } else if ((actual === null || typeof actual !== \u0027object\u0027) \u0026\u0026\r\n (expected === null || typeof expected !== \u0027object\u0027)) {\r\n return strict ? actual === expected : actual == expected;\r\n\r\n // If both values are instances of typed arrays, wrap their underlying\r\n // ArrayBuffers in a Buffer each to increase performance\r\n // This optimization requires the arrays to have the same type as checked by\r\n // Object.prototype.toString (aka pToString). Never perform binary\r\n // comparisons for Float*Arrays, though, since e.g. \u002B0 === -0 but their\r\n // bit patterns are not identical.\r\n } else if (isView(actual) \u0026\u0026 isView(expected) \u0026\u0026\r\n pToString(actual) === pToString(expected) \u0026\u0026\r\n !(actual instanceof Float32Array ||\r\n actual instanceof Float64Array)) {\r\n return compare(new Uint8Array(actual.buffer),\r\n new Uint8Array(expected.buffer)) === 0;\r\n\r\n // 7.5 For all other Object pairs, including Array objects, equivalence is\r\n // determined by having the same number of owned properties (as verified\r\n // with Object.prototype.hasOwnProperty.call), the same set of keys\r\n // (although not necessarily the same order), equivalent values for every\r\n // corresponding key, and an identical \u0027prototype\u0027 property. Note: this\r\n // accounts for both named and indexed properties on Arrays.\r\n } else if (isBuffer(actual) !== isBuffer(expected)) {\r\n return false;\r\n } else {\r\n memos = memos || {actual: [], expected: []};\r\n\r\n var actualIndex = memos.actual.indexOf(actual);\r\n if (actualIndex !== -1) {\r\n if (actualIndex === memos.expected.indexOf(expected)) {\r\n return true;\r\n }\r\n }\r\n\r\n memos.actual.push(actual);\r\n memos.expected.push(expected);\r\n\r\n return objEquiv(actual, expected, strict, memos);\r\n }\r\n}\r\n\r\nfunction isArguments(object) {\r\n return Object.prototype.toString.call(object) == \u0027[object Arguments]\u0027;\r\n}\r\n\r\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\r\n if (a === null || a === undefined || b === null || b === undefined)\r\n return false;\r\n // if one is a primitive, the other must be same\r\n if (util.isPrimitive(a) || util.isPrimitive(b))\r\n return a === b;\r\n if (strict \u0026\u0026 Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\r\n return false;\r\n var aIsArgs = isArguments(a);\r\n var bIsArgs = isArguments(b);\r\n if ((aIsArgs \u0026\u0026 !bIsArgs) || (!aIsArgs \u0026\u0026 bIsArgs))\r\n return false;\r\n if (aIsArgs) {\r\n a = pSlice.call(a);\r\n b = pSlice.call(b);\r\n return _deepEqual(a, b, strict);\r\n }\r\n var ka = objectKeys(a);\r\n var kb = objectKeys(b);\r\n var key, i;\r\n // having the same number of owned properties (keys incorporates\r\n // hasOwnProperty)\r\n if (ka.length !== kb.length)\r\n return false;\r\n //the same set of keys (although not necessarily the same order),\r\n ka.sort();\r\n kb.sort();\r\n //~~~cheap key test\r\n for (i = ka.length - 1; i \u003E= 0; i--) {\r\n if (ka[i] !== kb[i])\r\n return false;\r\n }\r\n //equivalent values for every corresponding key, and\r\n //~~~possibly expensive deep test\r\n for (i = ka.length - 1; i \u003E= 0; i--) {\r\n key = ka[i];\r\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\n// 8. The non-equivalence assertion tests for any deep inequality.\r\n// assert.notDeepEqual(actual, expected, message_opt);\r\n\r\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\r\n if (_deepEqual(actual, expected, false)) {\r\n fail(actual, expected, message, \u0027notDeepEqual\u0027, assert.notDeepEqual);\r\n }\r\n};\r\n\r\nassert.notDeepStrictEqual = notDeepStrictEqual;\r\nfunction notDeepStrictEqual(actual, expected, message) {\r\n if (_deepEqual(actual, expected, true)) {\r\n fail(actual, expected, message, \u0027notDeepStrictEqual\u0027, notDeepStrictEqual);\r\n }\r\n}\r\n\r\n\r\n// 9. The strict equality assertion tests strict equality, as determined by ===.\r\n// assert.strictEqual(actual, expected, message_opt);\r\n\r\nassert.strictEqual = function strictEqual(actual, expected, message) {\r\n if (actual !== expected) {\r\n fail(actual, expected, message, \u0027===\u0027, assert.strictEqual);\r\n }\r\n};\r\n\r\n// 10. The strict non-equality assertion tests for strict inequality, as\r\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\r\n\r\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\r\n if (actual === expected) {\r\n fail(actual, expected, message, \u0027!==\u0027, assert.notStrictEqual);\r\n }\r\n};\r\n\r\nfunction expectedException(actual, expected) {\r\n if (!actual || !expected) {\r\n return false;\r\n }\r\n\r\n if (Object.prototype.toString.call(expected) == \u0027[object RegExp]\u0027) {\r\n return expected.test(actual);\r\n }\r\n\r\n try {\r\n if (actual instanceof expected) {\r\n return true;\r\n }\r\n } catch (e) {\r\n // Ignore. The instanceof check doesn\u0027t work for arrow functions.\r\n }\r\n\r\n if (Error.isPrototypeOf(expected)) {\r\n return false;\r\n }\r\n\r\n return expected.call({}, actual) === true;\r\n}\r\n\r\nfunction _tryBlock(block) {\r\n var error;\r\n try {\r\n block();\r\n } catch (e) {\r\n error = e;\r\n }\r\n return error;\r\n}\r\n\r\nfunction _throws(shouldThrow, block, expected, message) {\r\n var actual;\r\n\r\n if (typeof block !== \u0027function\u0027) {\r\n throw new TypeError(\u0027\u0022block\u0022 argument must be a function\u0027);\r\n }\r\n\r\n if (typeof expected === \u0027string\u0027) {\r\n message = expected;\r\n expected = null;\r\n }\r\n\r\n actual = _tryBlock(block);\r\n\r\n message = (expected \u0026\u0026 expected.name ? \u0027 (\u0027 \u002B expected.name \u002B \u0027).\u0027 : \u0027.\u0027) \u002B\r\n (message ? \u0027 \u0027 \u002B message : \u0027.\u0027);\r\n\r\n if (shouldThrow \u0026\u0026 !actual) {\r\n fail(actual, expected, \u0027Missing expected exception\u0027 \u002B message);\r\n }\r\n\r\n var userProvidedMessage = typeof message === \u0027string\u0027;\r\n var isUnwantedException = !shouldThrow \u0026\u0026 util.isError(actual);\r\n var isUnexpectedException = !shouldThrow \u0026\u0026 actual \u0026\u0026 !expected;\r\n\r\n if ((isUnwantedException \u0026\u0026\r\n userProvidedMessage \u0026\u0026\r\n expectedException(actual, expected)) ||\r\n isUnexpectedException) {\r\n fail(actual, expected, \u0027Got unwanted exception\u0027 \u002B message);\r\n }\r\n\r\n if ((shouldThrow \u0026\u0026 actual \u0026\u0026 expected \u0026\u0026\r\n !expectedException(actual, expected)) || (!shouldThrow \u0026\u0026 actual)) {\r\n throw actual;\r\n }\r\n}\r\n\r\n// 11. Expected to throw an error:\r\n// assert.throws(block, Error_opt, message_opt);\r\n\r\nassert.throws = function(block, /*optional*/error, /*optional*/message) {\r\n _throws(true, block, error, message);\r\n};\r\n\r\n// EXTENSION! This is annoying to write outside this module.\r\nassert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {\r\n _throws(false, block, error, message);\r\n};\r\n\r\nassert.ifError = function(err) { if (err) throw err; };\r\n\r\nvar objectKeys = Object.keys || function (obj) {\r\n var keys = [];\r\n for (var key in obj) {\r\n if (hasOwn.call(obj, key)) keys.push(key);\r\n }\r\n return keys;\r\n};\r\n\r\n}).call(this,typeof global !== \u0022undefined\u0022 ? global : typeof self !== \u0022undefined\u0022 ? self : typeof window !== \u0022undefined\u0022 ? window : {})\r\n},{\u0022util/\u0022:7}],4:[function(require,module,exports){\r\n// shim for using process in browser\r\nvar process = module.exports = {};\r\n\r\n// cached from whatever global is present so that test runners that stub it\r\n// don\u0027t break things. But we need to wrap it in a try catch in case it is\r\n// wrapped in strict mode code which doesn\u0027t define any globals. It\u0027s inside a\r\n// function because try/catches deoptimize in certain engines.\r\n\r\nvar cachedSetTimeout;\r\nvar cachedClearTimeout;\r\n\r\nfunction defaultSetTimout() {\r\n throw new Error(\u0027setTimeout has not been defined\u0027);\r\n}\r\nfunction defaultClearTimeout () {\r\n throw new Error(\u0027clearTimeout has not been defined\u0027);\r\n}\r\n(function () {\r\n try {\r\n if (typeof setTimeout === \u0027function\u0027) {\r\n cachedSetTimeout = setTimeout;\r\n } else {\r\n cachedSetTimeout = defaultSetTimout;\r\n }\r\n } catch (e) {\r\n cachedSetTimeout = defaultSetTimout;\r\n }\r\n try {\r\n if (typeof clearTimeout === \u0027function\u0027) {\r\n cachedClearTimeout = clearTimeout;\r\n } else {\r\n cachedClearTimeout = defaultClearTimeout;\r\n }\r\n } catch (e) {\r\n cachedClearTimeout = defaultClearTimeout;\r\n }\r\n} ())\r\nfunction runTimeout(fun) {\r\n if (cachedSetTimeout === setTimeout) {\r\n //normal enviroments in sane situations\r\n return setTimeout(fun, 0);\r\n }\r\n // if setTimeout wasn\u0027t available but was latter defined\r\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) \u0026\u0026 setTimeout) {\r\n cachedSetTimeout = setTimeout;\r\n return setTimeout(fun, 0);\r\n }\r\n try {\r\n // when when somebody has screwed with setTimeout but no I.E. maddness\r\n return cachedSetTimeout(fun, 0);\r\n } catch(e){\r\n try {\r\n // When we are in I.E. but the script has been evaled so I.E. doesn\u0027t trust the global object when called normally\r\n return cachedSetTimeout.call(null, fun, 0);\r\n } catch(e){\r\n // same as above but when it\u0027s a version of I.E. that must have the global object for \u0027this\u0027, hopfully our context correct otherwise it will throw a global error\r\n return cachedSetTimeout.call(this, fun, 0);\r\n }\r\n }\r\n\r\n\r\n}\r\nfunction runClearTimeout(marker) {\r\n if (cachedClearTimeout === clearTimeout) {\r\n //normal enviroments in sane situations\r\n return clearTimeout(marker);\r\n }\r\n // if clearTimeout wasn\u0027t available but was latter defined\r\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) \u0026\u0026 clearTimeout) {\r\n cachedClearTimeout = clearTimeout;\r\n return clearTimeout(marker);\r\n }\r\n try {\r\n // when when somebody has screwed with setTimeout but no I.E. maddness\r\n return cachedClearTimeout(marker);\r\n } catch (e){\r\n try {\r\n // When we are in I.E. but the script has been evaled so I.E. doesn\u0027t trust the global object when called normally\r\n return cachedClearTimeout.call(null, marker);\r\n } catch (e){\r\n // same as above but when it\u0027s a version of I.E. that must have the global object for \u0027this\u0027, hopfully our context correct otherwise it will throw a global error.\r\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\r\n return cachedClearTimeout.call(this, marker);\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\nvar queue = [];\r\nvar draining = false;\r\nvar currentQueue;\r\nvar queueIndex = -1;\r\n\r\nfunction cleanUpNextTick() {\r\n if (!draining || !currentQueue) {\r\n return;\r\n }\r\n draining = false;\r\n if (currentQueue.length) {\r\n queue = currentQueue.concat(queue);\r\n } else {\r\n queueIndex = -1;\r\n }\r\n if (queue.length) {\r\n drainQueue();\r\n }\r\n}\r\n\r\nfunction drainQueue() {\r\n if (draining) {\r\n return;\r\n }\r\n var timeout = runTimeout(cleanUpNextTick);\r\n draining = true;\r\n\r\n var len = queue.length;\r\n while(len) {\r\n currentQueue = queue;\r\n queue = [];\r\n while (\u002B\u002BqueueIndex \u003C len) {\r\n if (currentQueue) {\r\n currentQueue[queueIndex].run();\r\n }\r\n }\r\n queueIndex = -1;\r\n len = queue.length;\r\n }\r\n currentQueue = null;\r\n draining = false;\r\n runClearTimeout(timeout);\r\n}\r\n\r\nprocess.nextTick = function (fun) {\r\n var args = new Array(arguments.length - 1);\r\n if (arguments.length \u003E 1) {\r\n for (var i = 1; i \u003C arguments.length; i\u002B\u002B) {\r\n args[i - 1] = arguments[i];\r\n }\r\n }\r\n queue.push(new Item(fun, args));\r\n if (queue.length === 1 \u0026\u0026 !draining) {\r\n runTimeout(drainQueue);\r\n }\r\n};\r\n\r\n// v8 likes predictible objects\r\nfunction Item(fun, array) {\r\n this.fun = fun;\r\n this.array = array;\r\n}\r\nItem.prototype.run = function () {\r\n this.fun.apply(null, this.array);\r\n};\r\nprocess.title = \u0027browser\u0027;\r\nprocess.browser = true;\r\nprocess.env = {};\r\nprocess.argv = [];\r\nprocess.version = \u0027\u0027; // empty string to avoid regexp issues\r\nprocess.versions = {};\r\n\r\nfunction noop() {}\r\n\r\nprocess.on = noop;\r\nprocess.addListener = noop;\r\nprocess.once = noop;\r\nprocess.off = noop;\r\nprocess.removeListener = noop;\r\nprocess.removeAllListeners = noop;\r\nprocess.emit = noop;\r\nprocess.prependListener = noop;\r\nprocess.prependOnceListener = noop;\r\n\r\nprocess.listeners = function (name) { return [] }\r\n\r\nprocess.binding = function (name) {\r\n throw new Error(\u0027process.binding is not supported\u0027);\r\n};\r\n\r\nprocess.cwd = function () { return \u0027/\u0027 };\r\nprocess.chdir = function (dir) {\r\n throw new Error(\u0027process.chdir is not supported\u0027);\r\n};\r\nprocess.umask = function() { return 0; };\r\n\r\n},{}],5:[function(require,module,exports){\r\nif (typeof Object.create === \u0027function\u0027) {\r\n // implementation from standard node.js \u0027util\u0027 module\r\n module.exports = function inherits(ctor, superCtor) {\r\n ctor.super_ = superCtor\r\n ctor.prototype = Object.create(superCtor.prototype, {\r\n constructor: {\r\n value: ctor,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n };\r\n} else {\r\n // old school shim for old browsers\r\n module.exports = function inherits(ctor, superCtor) {\r\n ctor.super_ = superCtor\r\n var TempCtor = function () {}\r\n TempCtor.prototype = superCtor.prototype\r\n ctor.prototype = new TempCtor()\r\n ctor.prototype.constructor = ctor\r\n }\r\n}\r\n\r\n},{}],6:[function(require,module,exports){\r\nmodule.exports = function isBuffer(arg) {\r\n return arg \u0026\u0026 typeof arg === \u0027object\u0027\r\n \u0026\u0026 typeof arg.copy === \u0027function\u0027\r\n \u0026\u0026 typeof arg.fill === \u0027function\u0027\r\n \u0026\u0026 typeof arg.readUInt8 === \u0027function\u0027;\r\n}\r\n},{}],7:[function(require,module,exports){\r\n(function (process,global){\r\n// Copyright Joyent, Inc. and other Node contributors.\r\n//\r\n// Permission is hereby granted, free of charge, to any person obtaining a\r\n// copy of this software and associated documentation files (the\r\n// \u0022Software\u0022), to deal in the Software without restriction, including\r\n// without limitation the rights to use, copy, modify, merge, publish,\r\n// distribute, sublicense, and/or sell copies of the Software, and to permit\r\n// persons to whom the Software is furnished to do so, subject to the\r\n// following conditions:\r\n//\r\n// The above copyright notice and this permission notice shall be included\r\n// in all copies or substantial portions of the Software.\r\n//\r\n// THE SOFTWARE IS PROVIDED \u0022AS IS\u0022, WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\r\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\r\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\r\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\r\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\nvar formatRegExp = /%[sdj%]/g;\r\nexports.format = function(f) {\r\n if (!isString(f)) {\r\n var objects = [];\r\n for (var i = 0; i \u003C arguments.length; i\u002B\u002B) {\r\n objects.push(inspect(arguments[i]));\r\n }\r\n return objects.join(\u0027 \u0027);\r\n }\r\n\r\n var i = 1;\r\n var args = arguments;\r\n var len = args.length;\r\n var str = String(f).replace(formatRegExp, function(x) {\r\n if (x === \u0027%%\u0027) return \u0027%\u0027;\r\n if (i \u003E= len) return x;\r\n switch (x) {\r\n case \u0027%s\u0027: return String(args[i\u002B\u002B]);\r\n case \u0027%d\u0027: return Number(args[i\u002B\u002B]);\r\n case \u0027%j\u0027:\r\n try {\r\n return JSON.stringify(args[i\u002B\u002B]);\r\n } catch (_) {\r\n return \u0027[Circular]\u0027;\r\n }\r\n default:\r\n return x;\r\n }\r\n });\r\n for (var x = args[i]; i \u003C len; x = args[\u002B\u002Bi]) {\r\n if (isNull(x) || !isObject(x)) {\r\n str \u002B= \u0027 \u0027 \u002B x;\r\n } else {\r\n str \u002B= \u0027 \u0027 \u002B inspect(x);\r\n }\r\n }\r\n return str;\r\n};\r\n\r\n\r\n// Mark that a method should not be used.\r\n// Returns a modified function which warns once by default.\r\n// If --no-deprecation is set, then it is a no-op.\r\nexports.deprecate = function(fn, msg) {\r\n // Allow for deprecating things in the process of starting up.\r\n if (isUndefined(global.process)) {\r\n return function() {\r\n return exports.deprecate(fn, msg).apply(this, arguments);\r\n };\r\n }\r\n\r\n if (process.noDeprecation === true) {\r\n return fn;\r\n }\r\n\r\n var warned = false;\r\n function deprecated() {\r\n if (!warned) {\r\n if (process.throwDeprecation) {\r\n throw new Error(msg);\r\n } else if (process.traceDeprecation) {\r\n console.trace(msg);\r\n } else {\r\n console.error(msg);\r\n }\r\n warned = true;\r\n }\r\n return fn.apply(this, arguments);\r\n }\r\n\r\n return deprecated;\r\n};\r\n\r\n\r\nvar debugs = {};\r\nvar debugEnviron;\r\nexports.debuglog = function(set) {\r\n if (isUndefined(debugEnviron))\r\n debugEnviron = process.env.NODE_DEBUG || \u0027\u0027;\r\n set = set.toUpperCase();\r\n if (!debugs[set]) {\r\n if (new RegExp(\u0027\\\\b\u0027 \u002B set \u002B \u0027\\\\b\u0027, \u0027i\u0027).test(debugEnviron)) {\r\n var pid = process.pid;\r\n debugs[set] = function() {\r\n var msg = exports.format.apply(exports, arguments);\r\n console.error(\u0027%s %d: %s\u0027, set, pid, msg);\r\n };\r\n } else {\r\n debugs[set] = function() {};\r\n }\r\n }\r\n return debugs[set];\r\n};\r\n\r\n\r\n/**\r\n * Echos the value of a value. Trys to print the value out\r\n * in the best way possible given the different types.\r\n *\r\n * @param {Object} obj The object to print out.\r\n * @param {Object} opts Optional options object that alters the output.\r\n */\r\n/* legacy: obj, showHidden, depth, colors*/\r\nfunction inspect(obj, opts) {\r\n // default options\r\n var ctx = {\r\n seen: [],\r\n stylize: stylizeNoColor\r\n };\r\n // legacy...\r\n if (arguments.length \u003E= 3) ctx.depth = arguments[2];\r\n if (arguments.length \u003E= 4) ctx.colors = arguments[3];\r\n if (isBoolean(opts)) {\r\n // legacy...\r\n ctx.showHidden = opts;\r\n } else if (opts) {\r\n // got an \u0022options\u0022 object\r\n exports._extend(ctx, opts);\r\n }\r\n // set default options\r\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\r\n if (isUndefined(ctx.depth)) ctx.depth = 2;\r\n if (isUndefined(ctx.colors)) ctx.colors = false;\r\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\r\n if (ctx.colors) ctx.stylize = stylizeWithColor;\r\n return formatValue(ctx, obj, ctx.depth);\r\n}\r\nexports.inspect = inspect;\r\n\r\n\r\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\r\ninspect.colors = {\r\n \u0027bold\u0027 : [1, 22],\r\n \u0027italic\u0027 : [3, 23],\r\n \u0027underline\u0027 : [4, 24],\r\n \u0027inverse\u0027 : [7, 27],\r\n \u0027white\u0027 : [37, 39],\r\n \u0027grey\u0027 : [90, 39],\r\n \u0027black\u0027 : [30, 39],\r\n \u0027blue\u0027 : [34, 39],\r\n \u0027cyan\u0027 : [36, 39],\r\n \u0027green\u0027 : [32, 39],\r\n \u0027magenta\u0027 : [35, 39],\r\n \u0027red\u0027 : [31, 39],\r\n \u0027yellow\u0027 : [33, 39]\r\n};\r\n\r\n// Don\u0027t use \u0027blue\u0027 not visible on cmd.exe\r\ninspect.styles = {\r\n \u0027special\u0027: \u0027cyan\u0027,\r\n \u0027number\u0027: \u0027yellow\u0027,\r\n \u0027boolean\u0027: \u0027yellow\u0027,\r\n \u0027undefined\u0027: \u0027grey\u0027,\r\n \u0027null\u0027: \u0027bold\u0027,\r\n \u0027string\u0027: \u0027green\u0027,\r\n \u0027date\u0027: \u0027magenta\u0027,\r\n // \u0022name\u0022: intentionally not styling\r\n \u0027regexp\u0027: \u0027red\u0027\r\n};\r\n\r\n\r\nfunction stylizeWithColor(str, styleType) {\r\n var style = inspect.styles[styleType];\r\n\r\n if (style) {\r\n return \u0027\\u001b[\u0027 \u002B inspect.colors[style][0] \u002B \u0027m\u0027 \u002B str \u002B\r\n \u0027\\u001b[\u0027 \u002B inspect.colors[style][1] \u002B \u0027m\u0027;\r\n } else {\r\n return str;\r\n }\r\n}\r\n\r\n\r\nfunction stylizeNoColor(str, styleType) {\r\n return str;\r\n}\r\n\r\n\r\nfunction arrayToHash(array) {\r\n var hash = {};\r\n\r\n array.forEach(function(val, idx) {\r\n hash[val] = true;\r\n });\r\n\r\n return hash;\r\n}\r\n\r\n\r\nfunction formatValue(ctx, value, recurseTimes) {\r\n // Provide a hook for user-specified inspect functions.\r\n // Check that value is an object with an inspect function on it\r\n if (ctx.customInspect \u0026\u0026\r\n value \u0026\u0026\r\n isFunction(value.inspect) \u0026\u0026\r\n // Filter out the util module, it\u0027s inspect function is special\r\n value.inspect !== exports.inspect \u0026\u0026\r\n // Also filter out any prototype objects using the circular check.\r\n !(value.constructor \u0026\u0026 value.constructor.prototype === value)) {\r\n var ret = value.inspect(recurseTimes, ctx);\r\n if (!isString(ret)) {\r\n ret = formatValue(ctx, ret, recurseTimes);\r\n }\r\n return ret;\r\n }\r\n\r\n // Primitive types cannot have properties\r\n var primitive = formatPrimitive(ctx, value);\r\n if (primitive) {\r\n return primitive;\r\n }\r\n\r\n // Look up the keys of the object.\r\n var keys = Object.keys(value);\r\n var visibleKeys = arrayToHash(keys);\r\n\r\n if (ctx.showHidden) {\r\n keys = Object.getOwnPropertyNames(value);\r\n }\r\n\r\n // IE doesn\u0027t make error fields non-enumerable\r\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\r\n if (isError(value)\r\n \u0026\u0026 (keys.indexOf(\u0027message\u0027) \u003E= 0 || keys.indexOf(\u0027description\u0027) \u003E= 0)) {\r\n return formatError(value);\r\n }\r\n\r\n // Some type of object without properties can be shortcutted.\r\n if (keys.length === 0) {\r\n if (isFunction(value)) {\r\n var name = value.name ? \u0027: \u0027 \u002B value.name : \u0027\u0027;\r\n return ctx.stylize(\u0027[Function\u0027 \u002B name \u002B \u0027]\u0027, \u0027special\u0027);\r\n }\r\n if (isRegExp(value)) {\r\n return ctx.stylize(RegExp.prototype.toString.call(value), \u0027regexp\u0027);\r\n }\r\n if (isDate(value)) {\r\n return ctx.stylize(Date.prototype.toString.call(value), \u0027date\u0027);\r\n }\r\n if (isError(value)) {\r\n return formatError(value);\r\n }\r\n }\r\n\r\n var base = \u0027\u0027, array = false, braces = [\u0027{\u0027, \u0027}\u0027];\r\n\r\n // Make Array say that they are Array\r\n if (isArray(value)) {\r\n array = true;\r\n braces = [\u0027[\u0027, \u0027]\u0027];\r\n }\r\n\r\n // Make functions say that they are functions\r\n if (isFunction(value)) {\r\n var n = value.name ? \u0027: \u0027 \u002B value.name : \u0027\u0027;\r\n base = \u0027 [Function\u0027 \u002B n \u002B \u0027]\u0027;\r\n }\r\n\r\n // Make RegExps say that they are RegExps\r\n if (isRegExp(value)) {\r\n base = \u0027 \u0027 \u002B RegExp.prototype.toString.call(value);\r\n }\r\n\r\n // Make dates with properties first say the date\r\n if (isDate(value)) {\r\n base = \u0027 \u0027 \u002B Date.prototype.toUTCString.call(value);\r\n }\r\n\r\n // Make error with message first say the error\r\n if (isError(value)) {\r\n base = \u0027 \u0027 \u002B formatError(value);\r\n }\r\n\r\n if (keys.length === 0 \u0026\u0026 (!array || value.length == 0)) {\r\n return braces[0] \u002B base \u002B braces[1];\r\n }\r\n\r\n if (recurseTimes \u003C 0) {\r\n if (isRegExp(value)) {\r\n return ctx.stylize(RegExp.prototype.toString.call(value), \u0027regexp\u0027);\r\n } else {\r\n return ctx.stylize(\u0027[Object]\u0027, \u0027special\u0027);\r\n }\r\n }\r\n\r\n ctx.seen.push(value);\r\n\r\n var output;\r\n if (array) {\r\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\r\n } else {\r\n output = keys.map(function(key) {\r\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\r\n });\r\n }\r\n\r\n ctx.seen.pop();\r\n\r\n return reduceToSingleString(output, base, braces);\r\n}\r\n\r\n\r\nfunction formatPrimitive(ctx, value) {\r\n if (isUndefined(value))\r\n return ctx.stylize(\u0027undefined\u0027, \u0027undefined\u0027);\r\n if (isString(value)) {\r\n var simple = \u0027\\\u0027\u0027 \u002B JSON.stringify(value).replace(/^\u0022|\u0022$/g, \u0027\u0027)\r\n .replace(/\u0027/g, \u0022\\\\\u0027\u0022)\r\n .replace(/\\\\\u0022/g, \u0027\u0022\u0027) \u002B \u0027\\\u0027\u0027;\r\n return ctx.stylize(simple, \u0027string\u0027);\r\n }\r\n if (isNumber(value))\r\n return ctx.stylize(\u0027\u0027 \u002B value, \u0027number\u0027);\r\n if (isBoolean(value))\r\n return ctx.stylize(\u0027\u0027 \u002B value, \u0027boolean\u0027);\r\n // For some reason typeof null is \u0022object\u0022, so special case here.\r\n if (isNull(value))\r\n return ctx.stylize(\u0027null\u0027, \u0027null\u0027);\r\n}\r\n\r\n\r\nfunction formatError(value) {\r\n return \u0027[\u0027 \u002B Error.prototype.toString.call(value) \u002B \u0027]\u0027;\r\n}\r\n\r\n\r\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\r\n var output = [];\r\n for (var i = 0, l = value.length; i \u003C l; \u002B\u002Bi) {\r\n if (hasOwnProperty(value, String(i))) {\r\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\r\n String(i), true));\r\n } else {\r\n output.push(\u0027\u0027);\r\n }\r\n }\r\n keys.forEach(function(key) {\r\n if (!key.match(/^\\d\u002B$/)) {\r\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\r\n key, true));\r\n }\r\n });\r\n return output;\r\n}\r\n\r\n\r\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\r\n var name, str, desc;\r\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\r\n if (desc.get) {\r\n if (desc.set) {\r\n str = ctx.stylize(\u0027[Getter/Setter]\u0027, \u0027special\u0027);\r\n } else {\r\n str = ctx.stylize(\u0027[Getter]\u0027, \u0027special\u0027);\r\n }\r\n } else {\r\n if (desc.set) {\r\n str = ctx.stylize(\u0027[Setter]\u0027, \u0027special\u0027);\r\n }\r\n }\r\n if (!hasOwnProperty(visibleKeys, key)) {\r\n name = \u0027[\u0027 \u002B key \u002B \u0027]\u0027;\r\n }\r\n if (!str) {\r\n if (ctx.seen.indexOf(desc.value) \u003C 0) {\r\n if (isNull(recurseTimes)) {\r\n str = formatValue(ctx, desc.value, null);\r\n } else {\r\n str = formatValue(ctx, desc.value, recurseTimes - 1);\r\n }\r\n if (str.indexOf(\u0027\\n\u0027) \u003E -1) {\r\n if (array) {\r\n str = str.split(\u0027\\n\u0027).map(function(line) {\r\n return \u0027 \u0027 \u002B line;\r\n }).join(\u0027\\n\u0027).substr(2);\r\n } else {\r\n str = \u0027\\n\u0027 \u002B str.split(\u0027\\n\u0027).map(function(line) {\r\n return \u0027 \u0027 \u002B line;\r\n }).join(\u0027\\n\u0027);\r\n }\r\n }\r\n } else {\r\n str = ctx.stylize(\u0027[Circular]\u0027, \u0027special\u0027);\r\n }\r\n }\r\n if (isUndefined(name)) {\r\n if (array \u0026\u0026 key.match(/^\\d\u002B$/)) {\r\n return str;\r\n }\r\n name = JSON.stringify(\u0027\u0027 \u002B key);\r\n if (name.match(/^\u0022([a-zA-Z_][a-zA-Z_0-9]*)\u0022$/)) {\r\n name = name.substr(1, name.length - 2);\r\n name = ctx.stylize(name, \u0027name\u0027);\r\n } else {\r\n name = name.replace(/\u0027/g, \u0022\\\\\u0027\u0022)\r\n .replace(/\\\\\u0022/g, \u0027\u0022\u0027)\r\n .replace(/(^\u0022|\u0022$)/g, \u0022\u0027\u0022);\r\n name = ctx.stylize(name, \u0027string\u0027);\r\n }\r\n }\r\n\r\n return name \u002B \u0027: \u0027 \u002B str;\r\n}\r\n\r\n\r\nfunction reduceToSingleString(output, base, braces) {\r\n var numLinesEst = 0;\r\n var length = output.reduce(function(prev, cur) {\r\n numLinesEst\u002B\u002B;\r\n if (cur.indexOf(\u0027\\n\u0027) \u003E= 0) numLinesEst\u002B\u002B;\r\n return prev \u002B cur.replace(/\\u001b\\[\\d\\d?m/g, \u0027\u0027).length \u002B 1;\r\n }, 0);\r\n\r\n if (length \u003E 60) {\r\n return braces[0] \u002B\r\n (base === \u0027\u0027 ? \u0027\u0027 : base \u002B \u0027\\n \u0027) \u002B\r\n \u0027 \u0027 \u002B\r\n output.join(\u0027,\\n \u0027) \u002B\r\n \u0027 \u0027 \u002B\r\n braces[1];\r\n }\r\n\r\n return braces[0] \u002B base \u002B \u0027 \u0027 \u002B output.join(\u0027, \u0027) \u002B \u0027 \u0027 \u002B braces[1];\r\n}\r\n\r\n\r\n// NOTE: These type checking functions intentionally don\u0027t use \u0060instanceof\u0060\r\n// because it is fragile and can be easily faked with \u0060Object.create()\u0060.\r\nfunction isArray(ar) {\r\n return Array.isArray(ar);\r\n}\r\nexports.isArray = isArray;\r\n\r\nfunction isBoolean(arg) {\r\n return typeof arg === \u0027boolean\u0027;\r\n}\r\nexports.isBoolean = isBoolean;\r\n\r\nfunction isNull(arg) {\r\n return arg === null;\r\n}\r\nexports.isNull = isNull;\r\n\r\nfunction isNullOrUndefined(arg) {\r\n return arg == null;\r\n}\r\nexports.isNullOrUndefined = isNullOrUndefined;\r\n\r\nfunction isNumber(arg) {\r\n return typeof arg === \u0027number\u0027;\r\n}\r\nexports.isNumber = isNumber;\r\n\r\nfunction isString(arg) {\r\n return typeof arg === \u0027string\u0027;\r\n}\r\nexports.isString = isString;\r\n\r\nfunction isSymbol(arg) {\r\n return typeof arg === \u0027symbol\u0027;\r\n}\r\nexports.isSymbol = isSymbol;\r\n\r\nfunction isUndefined(arg) {\r\n return arg === void 0;\r\n}\r\nexports.isUndefined = isUndefined;\r\n\r\nfunction isRegExp(re) {\r\n return isObject(re) \u0026\u0026 objectToString(re) === \u0027[object RegExp]\u0027;\r\n}\r\nexports.isRegExp = isRegExp;\r\n\r\nfunction isObject(arg) {\r\n return typeof arg === \u0027object\u0027 \u0026\u0026 arg !== null;\r\n}\r\nexports.isObject = isObject;\r\n\r\nfunction isDate(d) {\r\n return isObject(d) \u0026\u0026 objectToString(d) === \u0027[object Date]\u0027;\r\n}\r\nexports.isDate = isDate;\r\n\r\nfunction isError(e) {\r\n return isObject(e) \u0026\u0026\r\n (objectToString(e) === \u0027[object Error]\u0027 || e instanceof Error);\r\n}\r\nexports.isError = isError;\r\n\r\nfunction isFunction(arg) {\r\n return typeof arg === \u0027function\u0027;\r\n}\r\nexports.isFunction = isFunction;\r\n\r\nfunction isPrimitive(arg) {\r\n return arg === null ||\r\n typeof arg === \u0027boolean\u0027 ||\r\n typeof arg === \u0027number\u0027 ||\r\n typeof arg === \u0027string\u0027 ||\r\n typeof arg === \u0027symbol\u0027 || // ES6 symbol\r\n typeof arg === \u0027undefined\u0027;\r\n}\r\nexports.isPrimitive = isPrimitive;\r\n\r\nexports.isBuffer = require(\u0027./support/isBuffer\u0027);\r\n\r\nfunction objectToString(o) {\r\n return Object.prototype.toString.call(o);\r\n}\r\n\r\n\r\nfunction pad(n) {\r\n return n \u003C 10 ? \u00270\u0027 \u002B n.toString(10) : n.toString(10);\r\n}\r\n\r\n\r\nvar months = [\u0027Jan\u0027, \u0027Feb\u0027, \u0027Mar\u0027, \u0027Apr\u0027, \u0027May\u0027, \u0027Jun\u0027, \u0027Jul\u0027, \u0027Aug\u0027, \u0027Sep\u0027,\r\n \u0027Oct\u0027, \u0027Nov\u0027, \u0027Dec\u0027];\r\n\r\n// 26 Feb 16:19:34\r\nfunction timestamp() {\r\n var d = new Date();\r\n var time = [pad(d.getHours()),\r\n pad(d.getMinutes()),\r\n pad(d.getSeconds())].join(\u0027:\u0027);\r\n return [d.getDate(), months[d.getMonth()], time].join(\u0027 \u0027);\r\n}\r\n\r\n\r\n// log is just a thin wrapper to console.log that prepends a timestamp\r\nexports.log = function() {\r\n console.log(\u0027%s - %s\u0027, timestamp(), exports.format.apply(exports, arguments));\r\n};\r\n\r\n\r\n/**\r\n * Inherit the prototype methods from one constructor into another.\r\n *\r\n * The Function.prototype.inherits from lang.js rewritten as a standalone\r\n * function (not on Function.prototype). NOTE: If this file is to be loaded\r\n * during bootstrapping this function needs to be rewritten using some native\r\n * functions as prototype setup using normal JavaScript does not work as\r\n * expected during bootstrapping (see mirror.js in r114903).\r\n *\r\n * @param {function} ctor Constructor function which needs to inherit the\r\n * prototype.\r\n * @param {function} superCtor Constructor function to inherit prototype from.\r\n */\r\nexports.inherits = require(\u0027inherits\u0027);\r\n\r\nexports._extend = function(origin, add) {\r\n // Don\u0027t do anything if add isn\u0027t an object\r\n if (!add || !isObject(add)) return origin;\r\n\r\n var keys = Object.keys(add);\r\n var i = keys.length;\r\n while (i--) {\r\n origin[keys[i]] = add[keys[i]];\r\n }\r\n return origin;\r\n};\r\n\r\nfunction hasOwnProperty(obj, prop) {\r\n return Object.prototype.hasOwnProperty.call(obj, prop);\r\n}\r\n\r\n}).call(this,require(\u0027_process\u0027),typeof global !== \u0022undefined\u0022 ? global : typeof self !== \u0022undefined\u0022 ? self : typeof window !== \u0022undefined\u0022 ? window : {})\r\n},{\u0022./support/isBuffer\u0022:6,\u0022_process\u0022:4,\u0022inherits\u0022:5}]},{},[2]);\r\n","IsDeferred":false}]}