How to use subLen method of flat Package

Best Go-testdeep code snippet using flat.subLen

ego.go

Source:ego.go Github

copy

Full Screen

...8var _ = fmt.Sprint("") // just so that we can keep the fmt import for now9//line Main.wui.ego:1170710 func WriteMainWuiHtml( w io.Writer ) error {11//line Main.wui.ego:112_, _ = io.WriteString(w, "<!DOCTYPE HTML>\n<html><head><meta charset=\"UTF-8\"><title>RSync</title><style>html,head,body { padding:0; margin:0; }\nbody { font-family: calibri, helvetica, arial, sans-serif; }</style><script type=\"text/javascript\">\n(function() {\n'use strict';\n\nfunction F2(fun)\n{\n function wrapper(a) { return function(b) { return fun(a,b); }; }\n wrapper.arity = 2;\n wrapper.func = fun;\n return wrapper;\n}\n\nfunction F3(fun)\n{\n function wrapper(a) {\n return function(b) { return function(c) { return fun(a, b, c); }; };\n }\n wrapper.arity = 3;\n wrapper.func = fun;\n return wrapper;\n}\n\nfunction F4(fun)\n{\n function wrapper(a) { return function(b) { return function(c) {\n return function(d) { return fun(a, b, c, d); }; }; };\n }\n wrapper.arity = 4;\n wrapper.func = fun;\n return wrapper;\n}\n\nfunction F5(fun)\n{\n function wrapper(a) { return function(b) { return function(c) {\n return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; };\n }\n wrapper.arity = 5;\n wrapper.func = fun;\n return wrapper;\n}\n\nfunction F6(fun)\n{\n function wrapper(a) { return function(b) { return function(c) {\n return function(d) { return function(e) { return function(f) {\n return fun(a, b, c, d, e, f); }; }; }; }; };\n }\n wrapper.arity = 6;\n wrapper.func = fun;\n return wrapper;\n}\n\nfunction F7(fun)\n{\n function wrapper(a) { return function(b) { return function(c) {\n return function(d) { return function(e) { return function(f) {\n return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; };\n }\n wrapper.arity = 7;\n wrapper.func = fun;\n return wrapper;\n}\n\nfunction F8(fun)\n{\n function wrapper(a) { return function(b) { return function(c) {\n return function(d) { return function(e) { return function(f) {\n return function(g) { return function(h) {\n return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; };\n }\n wrapper.arity = 8;\n wrapper.func = fun;\n return wrapper;\n}\n\nfunction F9(fun)\n{\n function wrapper(a) { return function(b) { return function(c) {\n return function(d) { return function(e) { return function(f) {\n return function(g) { return function(h) { return function(i) {\n return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; };\n }\n wrapper.arity = 9;\n wrapper.func = fun;\n return wrapper;\n}\n\nfunction A2(fun, a, b)\n{\n return fun.arity === 2\n ? fun.func(a, b)\n : fun(a)(b);\n}\nfunction A3(fun, a, b, c)\n{\n return fun.arity === 3\n ? fun.func(a, b, c)\n : fun(a)(b)(c);\n}\nfunction A4(fun, a, b, c, d)\n{\n return fun.arity === 4\n ? fun.func(a, b, c, d)\n : fun(a)(b)(c)(d);\n}\nfunction A5(fun, a, b, c, d, e)\n{\n return fun.arity === 5\n ? fun.func(a, b, c, d, e)\n : fun(a)(b)(c)(d)(e);\n}\nfunction A6(fun, a, b, c, d, e, f)\n{\n return fun.arity === 6\n ? fun.func(a, b, c, d, e, f)\n : fun(a)(b)(c)(d)(e)(f);\n}\nfunction A7(fun, a, b, c, d, e, f, g)\n{\n return fun.arity === 7\n ? fun.func(a, b, c, d, e, f, g)\n : fun(a)(b)(c)(d)(e)(f)(g);\n}\nfunction A8(fun, a, b, c, d, e, f, g, h)\n{\n return fun.arity === 8\n ? fun.func(a, b, c, d, e, f, g, h)\n : fun(a)(b)(c)(d)(e)(f)(g)(h);\n}\nfunction A9(fun, a, b, c, d, e, f, g, h, i)\n{\n return fun.arity === 9\n ? fun.func(a, b, c, d, e, f, g, h, i)\n : fun(a)(b)(c)(d)(e)(f)(g)(h)(i);\n}\n//import Native.Utils //\n\nvar _elm_lang$core$Native_Basics = function() {\n\nfunction div(a, b)\n{\n\treturn (a / b) | 0;\n}\nfunction rem(a, b)\n{\n\treturn a % b;\n}\nfunction mod(a, b)\n{\n\tif (b === 0)\n\t{\n\t\tthrow new Error('Cannot perform mod 0. Division by zero error.');\n\t}\n\tvar r = a % b;\n\tvar m = a === 0 ? 0 : (b > 0 ? (a >= 0 ? r : r + b) : -mod(-a, -b));\n\n\treturn m === b ? 0 : m;\n}\nfunction logBase(base, n)\n{\n\treturn Math.log(n) / Math.log(base);\n}\nfunction negate(n)\n{\n\treturn -n;\n}\nfunction abs(n)\n{\n\treturn n < 0 ? -n : n;\n}\n\nfunction min(a, b)\n{\n\treturn _elm_lang$core$Native_Utils.cmp(a, b) < 0 ? a : b;\n}\nfunction max(a, b)\n{\n\treturn _elm_lang$core$Native_Utils.cmp(a, b) > 0 ? a : b;\n}\nfunction clamp(lo, hi, n)\n{\n\treturn _elm_lang$core$Native_Utils.cmp(n, lo) < 0\n\t\t? lo\n\t\t: _elm_lang$core$Native_Utils.cmp(n, hi) > 0\n\t\t\t? hi\n\t\t\t: n;\n}\n\nvar ord = ['LT', 'EQ', 'GT'];\n\nfunction compare(x, y)\n{\n\treturn { ctor: ord[_elm_lang$core$Native_Utils.cmp(x, y) + 1] };\n}\n\nfunction xor(a, b)\n{\n\treturn a !== b;\n}\nfunction not(b)\n{\n\treturn !b;\n}\nfunction isInfinite(n)\n{\n\treturn n === Infinity || n === -Infinity;\n}\n\nfunction truncate(n)\n{\n\treturn n | 0;\n}\n\nfunction degrees(d)\n{\n\treturn d * Math.PI / 180;\n}\nfunction turns(t)\n{\n\treturn 2 * Math.PI * t;\n}\nfunction fromPolar(point)\n{\n\tvar r = point._0;\n\tvar t = point._1;\n\treturn _elm_lang$core$Native_Utils.Tuple2(r * Math.cos(t), r * Math.sin(t));\n}\nfunction toPolar(point)\n{\n\tvar x = point._0;\n\tvar y = point._1;\n\treturn _elm_lang$core$Native_Utils.Tuple2(Math.sqrt(x * x + y * y), Math.atan2(y, x));\n}\n\nreturn {\n\tdiv: F2(div),\n\trem: F2(rem),\n\tmod: F2(mod),\n\n\tpi: Math.PI,\n\te: Math.E,\n\tcos: Math.cos,\n\tsin: Math.sin,\n\ttan: Math.tan,\n\tacos: Math.acos,\n\tasin: Math.asin,\n\tatan: Math.atan,\n\tatan2: F2(Math.atan2),\n\n\tdegrees: degrees,\n\tturns: turns,\n\tfromPolar: fromPolar,\n\ttoPolar: toPolar,\n\n\tsqrt: Math.sqrt,\n\tlogBase: F2(logBase),\n\tnegate: negate,\n\tabs: abs,\n\tmin: F2(min),\n\tmax: F2(max),\n\tclamp: F3(clamp),\n\tcompare: F2(compare),\n\n\txor: F2(xor),\n\tnot: not,\n\n\ttruncate: truncate,\n\tceiling: Math.ceil,\n\tfloor: Math.floor,\n\tround: Math.round,\n\ttoFloat: function(x) { return x; },\n\tisNaN: isNaN,\n\tisInfinite: isInfinite\n};\n\n}();//import //\n\nvar _elm_lang$core$Native_Utils = function() {\n\n// COMPARISONS\n\nfunction eq(x, y)\n{\n\tvar stack = [];\n\tvar isEqual = eqHelp(x, y, 0, stack);\n\tvar pair;\n\twhile (isEqual && (pair = stack.pop()))\n\t{\n\t\tisEqual = eqHelp(pair.x, pair.y, 0, stack);\n\t}\n\treturn isEqual;\n}\n\n\nfunction eqHelp(x, y, depth, stack)\n{\n\tif (depth > 100)\n\t{\n\t\tstack.push({ x: x, y: y });\n\t\treturn true;\n\t}\n\n\tif (x === y)\n\t{\n\t\treturn true;\n\t}\n\n\tif (typeof x !== 'object')\n\t{\n\t\tif (typeof x === 'function')\n\t\t{\n\t\t\tthrow new Error(\n\t\t\t\t'Trying to use `(==)` on functions. There is no way to know if functions are \"the same\" in the Elm sense.'\n\t\t\t\t+ ' Read more about this at http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#=='\n\t\t\t\t+ ' which describes why it is this way and what the better version will look like.'\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t}\n\n\tif (x === null || y === null)\n\t{\n\t\treturn false\n\t}\n\n\tif (x instanceof Date)\n\t{\n\t\treturn x.getTime() === y.getTime();\n\t}\n\n\tif (!('ctor' in x))\n\t{\n\t\tfor (var key in x)\n\t\t{\n\t\t\tif (!eqHelp(x[key], y[key], depth + 1, stack))\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\t// convert Dicts and Sets to lists\n\tif (x.ctor === 'RBNode_elm_builtin' || x.ctor === 'RBEmpty_elm_builtin')\n\t{\n\t\tx = _elm_lang$core$Dict$toList(x);\n\t\ty = _elm_lang$core$Dict$toList(y);\n\t}\n\tif (x.ctor === 'Set_elm_builtin')\n\t{\n\t\tx = _elm_lang$core$Set$toList(x);\n\t\ty = _elm_lang$core$Set$toList(y);\n\t}\n\n\t// check if lists are equal without recursion\n\tif (x.ctor === '::')\n\t{\n\t\tvar a = x;\n\t\tvar b = y;\n\t\twhile (a.ctor === '::' && b.ctor === '::')\n\t\t{\n\t\t\tif (!eqHelp(a._0, b._0, depth + 1, stack))\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\ta = a._1;\n\t\t\tb = b._1;\n\t\t}\n\t\treturn a.ctor === b.ctor;\n\t}\n\n\t// check if Arrays are equal\n\tif (x.ctor === '_Array')\n\t{\n\t\tvar xs = _elm_lang$core$Native_Array.toJSArray(x);\n\t\tvar ys = _elm_lang$core$Native_Array.toJSArray(y);\n\t\tif (xs.length !== ys.length)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t\tfor (var i = 0; i < xs.length; i++)\n\t\t{\n\t\t\tif (!eqHelp(xs[i], ys[i], depth + 1, stack))\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tif (!eqHelp(x.ctor, y.ctor, depth + 1, stack))\n\t{\n\t\treturn false;\n\t}\n\n\tfor (var key in x)\n\t{\n\t\tif (!eqHelp(x[key], y[key], depth + 1, stack))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on\n// the particular integer values assigned to LT, EQ, and GT.\n\nvar LT = -1, EQ = 0, GT = 1;\n\nfunction cmp(x, y)\n{\n\tif (typeof x !== 'object')\n\t{\n\t\treturn x === y ? EQ : x < y ? LT : GT;\n\t}\n\n\tif (x instanceof String)\n\t{\n\t\tvar a = x.valueOf();\n\t\tvar b = y.valueOf();\n\t\treturn a === b ? EQ : a < b ? LT : GT;\n\t}\n\n\tif (x.ctor === '::' || x.ctor === '[]')\n\t{\n\t\twhile (x.ctor === '::' && y.ctor === '::')\n\t\t{\n\t\t\tvar ord = cmp(x._0, y._0);\n\t\t\tif (ord !== EQ)\n\t\t\t{\n\t\t\t\treturn ord;\n\t\t\t}\n\t\t\tx = x._1;\n\t\t\ty = y._1;\n\t\t}\n\t\treturn x.ctor === y.ctor ? EQ : x.ctor === '[]' ? LT : GT;\n\t}\n\n\tif (x.ctor.slice(0, 6) === '_Tuple')\n\t{\n\t\tvar ord;\n\t\tvar n = x.ctor.slice(6) - 0;\n\t\tvar err = 'cannot compare tuples with more than 6 elements.';\n\t\tif (n === 0) return EQ;\n\t\tif (n >= 1) { ord = cmp(x._0, y._0); if (ord !== EQ) return ord;\n\t\tif (n >= 2) { ord = cmp(x._1, y._1); if (ord !== EQ) return ord;\n\t\tif (n >= 3) { ord = cmp(x._2, y._2); if (ord !== EQ) return ord;\n\t\tif (n >= 4) { ord = cmp(x._3, y._3); if (ord !== EQ) return ord;\n\t\tif (n >= 5) { ord = cmp(x._4, y._4); if (ord !== EQ) return ord;\n\t\tif (n >= 6) { ord = cmp(x._5, y._5); if (ord !== EQ) return ord;\n\t\tif (n >= 7) throw new Error('Comparison error: ' + err); } } } } } }\n\t\treturn EQ;\n\t}\n\n\tthrow new Error(\n\t\t'Comparison error: comparison is only defined on ints, '\n\t\t+ 'floats, times, chars, strings, lists of comparable values, '\n\t\t+ 'and tuples of comparable values.'\n\t);\n}\n\n\n// COMMON VALUES\n\nvar Tuple0 = {\n\tctor: '_Tuple0'\n};\n\nfunction Tuple2(x, y)\n{\n\treturn {\n\t\tctor: '_Tuple2',\n\t\t_0: x,\n\t\t_1: y\n\t};\n}\n\nfunction chr(c)\n{\n\treturn new String(c);\n}\n\n\n// GUID\n\nvar count = 0;\nfunction guid(_)\n{\n\treturn count++;\n}\n\n\n// RECORDS\n\nfunction update(oldRecord, updatedFields)\n{\n\tvar newRecord = {};\n\tfor (var key in oldRecord)\n\t{\n\t\tvar value = (key in updatedFields) ? updatedFields[key] : oldRecord[key];\n\t\tnewRecord[key] = value;\n\t}\n\treturn newRecord;\n}\n\n\n//// LIST STUFF ////\n\nvar Nil = { ctor: '[]' };\n\nfunction Cons(hd, tl)\n{\n\treturn {\n\t\tctor: '::',\n\t\t_0: hd,\n\t\t_1: tl\n\t};\n}\n\nfunction append(xs, ys)\n{\n\t// append Strings\n\tif (typeof xs === 'string')\n\t{\n\t\treturn xs + ys;\n\t}\n\n\t// append Lists\n\tif (xs.ctor === '[]')\n\t{\n\t\treturn ys;\n\t}\n\tvar root = Cons(xs._0, Nil);\n\tvar curr = root;\n\txs = xs._1;\n\twhile (xs.ctor !== '[]')\n\t{\n\t\tcurr._1 = Cons(xs._0, Nil);\n\t\txs = xs._1;\n\t\tcurr = curr._1;\n\t}\n\tcurr._1 = ys;\n\treturn root;\n}\n\n\n// CRASHES\n\nfunction crash(moduleName, region)\n{\n\treturn function(message) {\n\t\tthrow new Error(\n\t\t\t'Ran into a `Debug.crash` in module `' + moduleName + '` ' + regionToString(region) + '\\n'\n\t\t\t+ 'The message provided by the code author is:\\n\\n '\n\t\t\t+ message\n\t\t);\n\t};\n}\n\nfunction crashCase(moduleName, region, value)\n{\n\treturn function(message) {\n\t\tthrow new Error(\n\t\t\t'Ran into a `Debug.crash` in module `' + moduleName + '`\\n\\n'\n\t\t\t+ 'This was caused by the `case` expression ' + regionToString(region) + '.\\n'\n\t\t\t+ 'One of the branches ended with a crash and the following value got through:\\n\\n ' + toString(value) + '\\n\\n'\n\t\t\t+ 'The message provided by the code author is:\\n\\n '\n\t\t\t+ message\n\t\t);\n\t};\n}\n\nfunction regionToString(region)\n{\n\tif (region.start.line == region.end.line)\n\t{\n\t\treturn 'on line ' + region.start.line;\n\t}\n\treturn 'between lines ' + region.start.line + ' and ' + region.end.line;\n}\n\n\n// TO STRING\n\nfunction toString(v)\n{\n\tvar type = typeof v;\n\tif (type === 'function')\n\t{\n\t\tvar name = v.func ? v.func.name : v.name;\n\t\treturn '<function' + (name === '' ? '' : ':') + name + '>';\n\t}\n\n\tif (type === 'boolean')\n\t{\n\t\treturn v ? 'True' : 'False';\n\t}\n\n\tif (type === 'number')\n\t{\n\t\treturn v + '';\n\t}\n\n\tif (v instanceof String)\n\t{\n\t\treturn '\\'' + addSlashes(v, true) + '\\'';\n\t}\n\n\tif (type === 'string')\n\t{\n\t\treturn '\"' + addSlashes(v, false) + '\"';\n\t}\n\n\tif (v === null)\n\t{\n\t\treturn 'null';\n\t}\n\n\tif (type === 'object' && 'ctor' in v)\n\t{\n\t\tvar ctorStarter = v.ctor.substring(0, 5);\n\n\t\tif (ctorStarter === '_Tupl')\n\t\t{\n\t\t\tvar output = [];\n\t\t\tfor (var k in v)\n\t\t\t{\n\t\t\t\tif (k === 'ctor') continue;\n\t\t\t\toutput.push(toString(v[k]));\n\t\t\t}\n\t\t\treturn '(' + output.join(',') + ')';\n\t\t}\n\n\t\tif (ctorStarter === '_Task')\n\t\t{\n\t\t\treturn '<task>'\n\t\t}\n\n\t\tif (v.ctor === '_Array')\n\t\t{\n\t\t\tvar list = _elm_lang$core$Array$toList(v);\n\t\t\treturn 'Array.fromList ' + toString(list);\n\t\t}\n\n\t\tif (v.ctor === '<decoder>')\n\t\t{\n\t\t\treturn '<decoder>';\n\t\t}\n\n\t\tif (v.ctor === '_Process')\n\t\t{\n\t\t\treturn '<process:' + v.id + '>';\n\t\t}\n\n\t\tif (v.ctor === '::')\n\t\t{\n\t\t\tvar output = '[' + toString(v._0);\n\t\t\tv = v._1;\n\t\t\twhile (v.ctor === '::')\n\t\t\t{\n\t\t\t\toutput += ',' + toString(v._0);\n\t\t\t\tv = v._1;\n\t\t\t}\n\t\t\treturn output + ']';\n\t\t}\n\n\t\tif (v.ctor === '[]')\n\t\t{\n\t\t\treturn '[]';\n\t\t}\n\n\t\tif (v.ctor === 'Set_elm_builtin')\n\t\t{\n\t\t\treturn 'Set.fromList ' + toString(_elm_lang$core$Set$toList(v));\n\t\t}\n\n\t\tif (v.ctor === 'RBNode_elm_builtin' || v.ctor === 'RBEmpty_elm_builtin')\n\t\t{\n\t\t\treturn 'Dict.fromList ' + toString(_elm_lang$core$Dict$toList(v));\n\t\t}\n\n\t\tvar output = '';\n\t\tfor (var i in v)\n\t\t{\n\t\t\tif (i === 'ctor') continue;\n\t\t\tvar str = toString(v[i]);\n\t\t\tvar c0 = str[0];\n\t\t\tvar parenless = c0 === '{' || c0 === '(' || c0 === '<' || c0 === '\"' || str.indexOf(' ') < 0;\n\t\t\toutput += ' ' + (parenless ? str : '(' + str + ')');\n\t\t}\n\t\treturn v.ctor + output;\n\t}\n\n\tif (type === 'object')\n\t{\n\t\tif (v instanceof Date)\n\t\t{\n\t\t\treturn '<' + v.toString() + '>';\n\t\t}\n\n\t\tif (v.elm_web_socket)\n\t\t{\n\t\t\treturn '<websocket>';\n\t\t}\n\n\t\tvar output = [];\n\t\tfor (var k in v)\n\t\t{\n\t\t\toutput.push(k + ' = ' + toString(v[k]));\n\t\t}\n\t\tif (output.length === 0)\n\t\t{\n\t\t\treturn '{}';\n\t\t}\n\t\treturn '{ ' + output.join(', ') + ' }';\n\t}\n\n\treturn '<internal structure>';\n}\n\nfunction addSlashes(str, isChar)\n{\n\tvar s = str.replace(/\\\\/g, '\\\\\\\\')\n\t\t\t .replace(/\\n/g, '\\\\n')\n\t\t\t .replace(/\\t/g, '\\\\t')\n\t\t\t .replace(/\\r/g, '\\\\r')\n\t\t\t .replace(/\\v/g, '\\\\v')\n\t\t\t .replace(/\\0/g, '\\\\0');\n\tif (isChar)\n\t{\n\t\treturn s.replace(/\\'/g, '\\\\\\'');\n\t}\n\telse\n\t{\n\t\treturn s.replace(/\\\"/g, '\\\\\"');\n\t}\n}\n\n\nreturn {\n\teq: eq,\n\tcmp: cmp,\n\tTuple0: Tuple0,\n\tTuple2: Tuple2,\n\tchr: chr,\n\tupdate: update,\n\tguid: guid,\n\n\tappend: F2(append),\n\n\tcrash: crash,\n\tcrashCase: crashCase,\n\n\ttoString: toString\n};\n\n}();var _elm_lang$core$Basics$uncurry = F2(\n\tfunction (f, _p0) {\n\t\tvar _p1 = _p0;\n\t\treturn A2(f, _p1._0, _p1._1);\n\t});\nvar _elm_lang$core$Basics$curry = F3(\n\tfunction (f, a, b) {\n\t\treturn f(\n\t\t\t{ctor: '_Tuple2', _0: a, _1: b});\n\t});\nvar _elm_lang$core$Basics$flip = F3(\n\tfunction (f, b, a) {\n\t\treturn A2(f, a, b);\n\t});\nvar _elm_lang$core$Basics$snd = function (_p2) {\n\tvar _p3 = _p2;\n\treturn _p3._1;\n};\nvar _elm_lang$core$Basics$fst = function (_p4) {\n\tvar _p5 = _p4;\n\treturn _p5._0;\n};\nvar _elm_lang$core$Basics$always = F2(\n\tfunction (a, _p6) {\n\t\treturn a;\n\t});\nvar _elm_lang$core$Basics$identity = function (x) {\n\treturn x;\n};\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['<|'] = F2(\n\tfunction (f, x) {\n\t\treturn f(x);\n\t});\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['|>'] = F2(\n\tfunction (x, f) {\n\t\treturn f(x);\n\t});\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['>>'] = F3(\n\tfunction (f, g, x) {\n\t\treturn g(\n\t\t\tf(x));\n\t});\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['<<'] = F3(\n\tfunction (g, f, x) {\n\t\treturn g(\n\t\t\tf(x));\n\t});\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['++'] = _elm_lang$core$Native_Utils.append;\nvar _elm_lang$core$Basics$toString = _elm_lang$core$Native_Utils.toString;\nvar _elm_lang$core$Basics$isInfinite = _elm_lang$core$Native_Basics.isInfinite;\nvar _elm_lang$core$Basics$isNaN = _elm_lang$core$Native_Basics.isNaN;\nvar _elm_lang$core$Basics$toFloat = _elm_lang$core$Native_Basics.toFloat;\nvar _elm_lang$core$Basics$ceiling = _elm_lang$core$Native_Basics.ceiling;\nvar _elm_lang$core$Basics$floor = _elm_lang$core$Native_Basics.floor;\nvar _elm_lang$core$Basics$truncate = _elm_lang$core$Native_Basics.truncate;\nvar _elm_lang$core$Basics$round = _elm_lang$core$Native_Basics.round;\nvar _elm_lang$core$Basics$not = _elm_lang$core$Native_Basics.not;\nvar _elm_lang$core$Basics$xor = _elm_lang$core$Native_Basics.xor;\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['||'] = _elm_lang$core$Native_Basics.or;\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['&&'] = _elm_lang$core$Native_Basics.and;\nvar _elm_lang$core$Basics$max = _elm_lang$core$Native_Basics.max;\nvar _elm_lang$core$Basics$min = _elm_lang$core$Native_Basics.min;\nvar _elm_lang$core$Basics$compare = _elm_lang$core$Native_Basics.compare;\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['>='] = _elm_lang$core$Native_Basics.ge;\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['<='] = _elm_lang$core$Native_Basics.le;\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['>'] = _elm_lang$core$Native_Basics.gt;\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['<'] = _elm_lang$core$Native_Basics.lt;\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['/='] = _elm_lang$core$Native_Basics.neq;\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['=='] = _elm_lang$core$Native_Basics.eq;\nvar _elm_lang$core$Basics$e = _elm_lang$core$Native_Basics.e;\nvar _elm_lang$core$Basics$pi = _elm_lang$core$Native_Basics.pi;\nvar _elm_lang$core$Basics$clamp = _elm_lang$core$Native_Basics.clamp;\nvar _elm_lang$core$Basics$logBase = _elm_lang$core$Native_Basics.logBase;\nvar _elm_lang$core$Basics$abs = _elm_lang$core$Native_Basics.abs;\nvar _elm_lang$core$Basics$negate = _elm_lang$core$Native_Basics.negate;\nvar _elm_lang$core$Basics$sqrt = _elm_lang$core$Native_Basics.sqrt;\nvar _elm_lang$core$Basics$atan2 = _elm_lang$core$Native_Basics.atan2;\nvar _elm_lang$core$Basics$atan = _elm_lang$core$Native_Basics.atan;\nvar _elm_lang$core$Basics$asin = _elm_lang$core$Native_Basics.asin;\nvar _elm_lang$core$Basics$acos = _elm_lang$core$Native_Basics.acos;\nvar _elm_lang$core$Basics$tan = _elm_lang$core$Native_Basics.tan;\nvar _elm_lang$core$Basics$sin = _elm_lang$core$Native_Basics.sin;\nvar _elm_lang$core$Basics$cos = _elm_lang$core$Native_Basics.cos;\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['^'] = _elm_lang$core$Native_Basics.exp;\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['%'] = _elm_lang$core$Native_Basics.mod;\nvar _elm_lang$core$Basics$rem = _elm_lang$core$Native_Basics.rem;\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['//'] = _elm_lang$core$Native_Basics.div;\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['/'] = _elm_lang$core$Native_Basics.floatDiv;\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['*'] = _elm_lang$core$Native_Basics.mul;\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['-'] = _elm_lang$core$Native_Basics.sub;\nvar _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {};\n_elm_lang$core$Basics_ops['+'] = _elm_lang$core$Native_Basics.add;\nvar _elm_lang$core$Basics$toPolar = _elm_lang$core$Native_Basics.toPolar;\nvar _elm_lang$core$Basics$fromPolar = _elm_lang$core$Native_Basics.fromPolar;\nvar _elm_lang$core$Basics$turns = _elm_lang$core$Native_Basics.turns;\nvar _elm_lang$core$Basics$degrees = _elm_lang$core$Native_Basics.degrees;\nvar _elm_lang$core$Basics$radians = function (t) {\n\treturn t;\n};\nvar _elm_lang$core$Basics$GT = {ctor: 'GT'};\nvar _elm_lang$core$Basics$EQ = {ctor: 'EQ'};\nvar _elm_lang$core$Basics$LT = {ctor: 'LT'};\nvar _elm_lang$core$Basics$Never = function (a) {\n\treturn {ctor: 'Never', _0: a};\n};\n//import Native.Utils //\n\nvar _elm_lang$core$Native_Debug = function() {\n\nfunction log(tag, value)\n{\n\tvar msg = tag + ': ' + _elm_lang$core$Native_Utils.toString(value);\n\tvar process = process || {};\n\tif (process.stdout)\n\t{\n\t\tprocess.stdout.write(msg);\n\t}\n\telse\n\t{\n\t\tconsole.log(msg);\n\t}\n\treturn value;\n}\n\nfunction crash(message)\n{\n\tthrow new Error(message);\n}\n\nreturn {\n\tcrash: crash,\n\tlog: F2(log)\n};\n\n}();var _elm_lang$core$Debug$crash = _elm_lang$core$Native_Debug.crash;\nvar _elm_lang$core$Debug$log = _elm_lang$core$Native_Debug.log;\nvar _elm_lang$core$Maybe$withDefault = F2(\n\tfunction ($default, maybe) {\n\t\tvar _p0 = maybe;\n\t\tif (_p0.ctor === 'Just') {\n\t\t\treturn _p0._0;\n\t\t} else {\n\t\t\treturn $default;\n\t\t}\n\t});\nvar _elm_lang$core$Maybe$Nothing = {ctor: 'Nothing'};\nvar _elm_lang$core$Maybe$oneOf = function (maybes) {\n\toneOf:\n\twhile (true) {\n\t\tvar _p1 = maybes;\n\t\tif (_p1.ctor === '[]') {\n\t\t\treturn _elm_lang$core$Maybe$Nothing;\n\t\t} else {\n\t\t\tvar _p3 = _p1._0;\n\t\t\tvar _p2 = _p3;\n\t\t\tif (_p2.ctor === 'Nothing') {\n\t\t\t\tvar _v3 = _p1._1;\n\t\t\t\tmaybes = _v3;\n\t\t\t\tcontinue oneOf;\n\t\t\t} else {\n\t\t\t\treturn _p3;\n\t\t\t}\n\t\t}\n\t}\n};\nvar _elm_lang$core$Maybe$andThen = F2(\n\tfunction (maybeValue, callback) {\n\t\tvar _p4 = maybeValue;\n\t\tif (_p4.ctor === 'Just') {\n\t\t\treturn callback(_p4._0);\n\t\t} else {\n\t\t\treturn _elm_lang$core$Maybe$Nothing;\n\t\t}\n\t});\nvar _elm_lang$core$Maybe$Just = function (a) {\n\treturn {ctor: 'Just', _0: a};\n};\nvar _elm_lang$core$Maybe$map = F2(\n\tfunction (f, maybe) {\n\t\tvar _p5 = maybe;\n\t\tif (_p5.ctor === 'Just') {\n\t\t\treturn _elm_lang$core$Maybe$Just(\n\t\t\t\tf(_p5._0));\n\t\t} else {\n\t\t\treturn _elm_lang$core$Maybe$Nothing;\n\t\t}\n\t});\nvar _elm_lang$core$Maybe$map2 = F3(\n\tfunction (func, ma, mb) {\n\t\tvar _p6 = {ctor: '_Tuple2', _0: ma, _1: mb};\n\t\tif (((_p6.ctor === '_Tuple2') && (_p6._0.ctor === 'Just')) && (_p6._1.ctor === 'Just')) {\n\t\t\treturn _elm_lang$core$Maybe$Just(\n\t\t\t\tA2(func, _p6._0._0, _p6._1._0));\n\t\t} else {\n\t\t\treturn _elm_lang$core$Maybe$Nothing;\n\t\t}\n\t});\nvar _elm_lang$core$Maybe$map3 = F4(\n\tfunction (func, ma, mb, mc) {\n\t\tvar _p7 = {ctor: '_Tuple3', _0: ma, _1: mb, _2: mc};\n\t\tif ((((_p7.ctor === '_Tuple3') && (_p7._0.ctor === 'Just')) && (_p7._1.ctor === 'Just')) && (_p7._2.ctor === 'Just')) {\n\t\t\treturn _elm_lang$core$Maybe$Just(\n\t\t\t\tA3(func, _p7._0._0, _p7._1._0, _p7._2._0));\n\t\t} else {\n\t\t\treturn _elm_lang$core$Maybe$Nothing;\n\t\t}\n\t});\nvar _elm_lang$core$Maybe$map4 = F5(\n\tfunction (func, ma, mb, mc, md) {\n\t\tvar _p8 = {ctor: '_Tuple4', _0: ma, _1: mb, _2: mc, _3: md};\n\t\tif (((((_p8.ctor === '_Tuple4') && (_p8._0.ctor === 'Just')) && (_p8._1.ctor === 'Just')) && (_p8._2.ctor === 'Just')) && (_p8._3.ctor === 'Just')) {\n\t\t\treturn _elm_lang$core$Maybe$Just(\n\t\t\t\tA4(func, _p8._0._0, _p8._1._0, _p8._2._0, _p8._3._0));\n\t\t} else {\n\t\t\treturn _elm_lang$core$Maybe$Nothing;\n\t\t}\n\t});\nvar _elm_lang$core$Maybe$map5 = F6(\n\tfunction (func, ma, mb, mc, md, me) {\n\t\tvar _p9 = {ctor: '_Tuple5', _0: ma, _1: mb, _2: mc, _3: md, _4: me};\n\t\tif ((((((_p9.ctor === '_Tuple5') && (_p9._0.ctor === 'Just')) && (_p9._1.ctor === 'Just')) && (_p9._2.ctor === 'Just')) && (_p9._3.ctor === 'Just')) && (_p9._4.ctor === 'Just')) {\n\t\t\treturn _elm_lang$core$Maybe$Just(\n\t\t\t\tA5(func, _p9._0._0, _p9._1._0, _p9._2._0, _p9._3._0, _p9._4._0));\n\t\t} else {\n\t\t\treturn _elm_lang$core$Maybe$Nothing;\n\t\t}\n\t});\n//import Native.Utils //\n\nvar _elm_lang$core$Native_List = function() {\n\nvar Nil = { ctor: '[]' };\n\nfunction Cons(hd, tl)\n{\n\treturn { ctor: '::', _0: hd, _1: tl };\n}\n\nfunction fromArray(arr)\n{\n\tvar out = Nil;\n\tfor (var i = arr.length; i--; )\n\t{\n\t\tout = Cons(arr[i], out);\n\t}\n\treturn out;\n}\n\nfunction toArray(xs)\n{\n\tvar out = [];\n\twhile (xs.ctor !== '[]')\n\t{\n\t\tout.push(xs._0);\n\t\txs = xs._1;\n\t}\n\treturn out;\n}\n\n\nfunction range(lo, hi)\n{\n\tvar list = Nil;\n\tif (lo <= hi)\n\t{\n\t\tdo\n\t\t{\n\t\t\tlist = Cons(hi, list);\n\t\t}\n\t\twhile (hi-- > lo);\n\t}\n\treturn list;\n}\n\nfunction foldr(f, b, xs)\n{\n\tvar arr = toArray(xs);\n\tvar acc = b;\n\tfor (var i = arr.length; i--; )\n\t{\n\t\tacc = A2(f, arr[i], acc);\n\t}\n\treturn acc;\n}\n\nfunction map2(f, xs, ys)\n{\n\tvar arr = [];\n\twhile (xs.ctor !== '[]' && ys.ctor !== '[]')\n\t{\n\t\tarr.push(A2(f, xs._0, ys._0));\n\t\txs = xs._1;\n\t\tys = ys._1;\n\t}\n\treturn fromArray(arr);\n}\n\nfunction map3(f, xs, ys, zs)\n{\n\tvar arr = [];\n\twhile (xs.ctor !== '[]' && ys.ctor !== '[]' && zs.ctor !== '[]')\n\t{\n\t\tarr.push(A3(f, xs._0, ys._0, zs._0));\n\t\txs = xs._1;\n\t\tys = ys._1;\n\t\tzs = zs._1;\n\t}\n\treturn fromArray(arr);\n}\n\nfunction map4(f, ws, xs, ys, zs)\n{\n\tvar arr = [];\n\twhile ( ws.ctor !== '[]'\n\t\t && xs.ctor !== '[]'\n\t\t && ys.ctor !== '[]'\n\t\t && zs.ctor !== '[]')\n\t{\n\t\tarr.push(A4(f, ws._0, xs._0, ys._0, zs._0));\n\t\tws = ws._1;\n\t\txs = xs._1;\n\t\tys = ys._1;\n\t\tzs = zs._1;\n\t}\n\treturn fromArray(arr);\n}\n\nfunction map5(f, vs, ws, xs, ys, zs)\n{\n\tvar arr = [];\n\twhile ( vs.ctor !== '[]'\n\t\t && ws.ctor !== '[]'\n\t\t && xs.ctor !== '[]'\n\t\t && ys.ctor !== '[]'\n\t\t && zs.ctor !== '[]')\n\t{\n\t\tarr.push(A5(f, vs._0, ws._0, xs._0, ys._0, zs._0));\n\t\tvs = vs._1;\n\t\tws = ws._1;\n\t\txs = xs._1;\n\t\tys = ys._1;\n\t\tzs = zs._1;\n\t}\n\treturn fromArray(arr);\n}\n\nfunction sortBy(f, xs)\n{\n\treturn fromArray(toArray(xs).sort(function(a, b) {\n\t\treturn _elm_lang$core$Native_Utils.cmp(f(a), f(b));\n\t}));\n}\n\nfunction sortWith(f, xs)\n{\n\treturn fromArray(toArray(xs).sort(function(a, b) {\n\t\tvar ord = f(a)(b).ctor;\n\t\treturn ord === 'EQ' ? 0 : ord === 'LT' ? -1 : 1;\n\t}));\n}\n\nreturn {\n\tNil: Nil,\n\tCons: Cons,\n\tcons: F2(Cons),\n\ttoArray: toArray,\n\tfromArray: fromArray,\n\trange: range,\n\n\tfoldr: F3(foldr),\n\n\tmap2: F3(map2),\n\tmap3: F4(map3),\n\tmap4: F5(map4),\n\tmap5: F6(map5),\n\tsortBy: F2(sortBy),\n\tsortWith: F2(sortWith)\n};\n\n}();var _elm_lang$core$List$sortWith = _elm_lang$core$Native_List.sortWith;\nvar _elm_lang$core$List$sortBy = _elm_lang$core$Native_List.sortBy;\nvar _elm_lang$core$List$sort = function (xs) {\n\treturn A2(_elm_lang$core$List$sortBy, _elm_lang$core$Basics$identity, xs);\n};\nvar _elm_lang$core$List$drop = F2(\n\tfunction (n, list) {\n\t\tdrop:\n\t\twhile (true) {\n\t\t\tif (_elm_lang$core$Native_Utils.cmp(n, 0) < 1) {\n\t\t\t\treturn list;\n\t\t\t} else {\n\t\t\t\tvar _p0 = list;\n\t\t\t\tif (_p0.ctor === '[]') {\n\t\t\t\t\treturn list;\n\t\t\t\t} else {\n\t\t\t\t\tvar _v1 = n - 1,\n\t\t\t\t\t\t_v2 = _p0._1;\n\t\t\t\t\tn = _v1;\n\t\t\t\t\tlist = _v2;\n\t\t\t\t\tcontinue drop;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar _elm_lang$core$List$map5 = _elm_lang$core$Native_List.map5;\nvar _elm_lang$core$List$map4 = _elm_lang$core$Native_List.map4;\nvar _elm_lang$core$List$map3 = _elm_lang$core$Native_List.map3;\nvar _elm_lang$core$List$map2 = _elm_lang$core$Native_List.map2;\nvar _elm_lang$core$List$any = F2(\n\tfunction (isOkay, list) {\n\t\tany:\n\t\twhile (true) {\n\t\t\tvar _p1 = list;\n\t\t\tif (_p1.ctor === '[]') {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tif (isOkay(_p1._0)) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\tvar _v4 = isOkay,\n\t\t\t\t\t\t_v5 = _p1._1;\n\t\t\t\t\tisOkay = _v4;\n\t\t\t\t\tlist = _v5;\n\t\t\t\t\tcontinue any;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar _elm_lang$core$List$all = F2(\n\tfunction (isOkay, list) {\n\t\treturn _elm_lang$core$Basics$not(\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$List$any,\n\t\t\t\tfunction (_p2) {\n\t\t\t\t\treturn _elm_lang$core$Basics$not(\n\t\t\t\t\t\tisOkay(_p2));\n\t\t\t\t},\n\t\t\t\tlist));\n\t});\nvar _elm_lang$core$List$foldr = _elm_lang$core$Native_List.foldr;\nvar _elm_lang$core$List$foldl = F3(\n\tfunction (func, acc, list) {\n\t\tfoldl:\n\t\twhile (true) {\n\t\t\tvar _p3 = list;\n\t\t\tif (_p3.ctor === '[]') {\n\t\t\t\treturn acc;\n\t\t\t} else {\n\t\t\t\tvar _v7 = func,\n\t\t\t\t\t_v8 = A2(func, _p3._0, acc),\n\t\t\t\t\t_v9 = _p3._1;\n\t\t\t\tfunc = _v7;\n\t\t\t\tacc = _v8;\n\t\t\t\tlist = _v9;\n\t\t\t\tcontinue foldl;\n\t\t\t}\n\t\t}\n\t});\nvar _elm_lang$core$List$length = function (xs) {\n\treturn A3(\n\t\t_elm_lang$core$List$foldl,\n\t\tF2(\n\t\t\tfunction (_p4, i) {\n\t\t\t\treturn i + 1;\n\t\t\t}),\n\t\t0,\n\t\txs);\n};\nvar _elm_lang$core$List$sum = function (numbers) {\n\treturn A3(\n\t\t_elm_lang$core$List$foldl,\n\t\tF2(\n\t\t\tfunction (x, y) {\n\t\t\t\treturn x + y;\n\t\t\t}),\n\t\t0,\n\t\tnumbers);\n};\nvar _elm_lang$core$List$product = function (numbers) {\n\treturn A3(\n\t\t_elm_lang$core$List$foldl,\n\t\tF2(\n\t\t\tfunction (x, y) {\n\t\t\t\treturn x * y;\n\t\t\t}),\n\t\t1,\n\t\tnumbers);\n};\nvar _elm_lang$core$List$maximum = function (list) {\n\tvar _p5 = list;\n\tif (_p5.ctor === '::') {\n\t\treturn _elm_lang$core$Maybe$Just(\n\t\t\tA3(_elm_lang$core$List$foldl, _elm_lang$core$Basics$max, _p5._0, _p5._1));\n\t} else {\n\t\treturn _elm_lang$core$Maybe$Nothing;\n\t}\n};\nvar _elm_lang$core$List$minimum = function (list) {\n\tvar _p6 = list;\n\tif (_p6.ctor === '::') {\n\t\treturn _elm_lang$core$Maybe$Just(\n\t\t\tA3(_elm_lang$core$List$foldl, _elm_lang$core$Basics$min, _p6._0, _p6._1));\n\t} else {\n\t\treturn _elm_lang$core$Maybe$Nothing;\n\t}\n};\nvar _elm_lang$core$List$indexedMap = F2(\n\tfunction (f, xs) {\n\t\treturn A3(\n\t\t\t_elm_lang$core$List$map2,\n\t\t\tf,\n\t\t\t_elm_lang$core$Native_List.range(\n\t\t\t\t0,\n\t\t\t\t_elm_lang$core$List$length(xs) - 1),\n\t\t\txs);\n\t});\nvar _elm_lang$core$List$member = F2(\n\tfunction (x, xs) {\n\t\treturn A2(\n\t\t\t_elm_lang$core$List$any,\n\t\t\tfunction (a) {\n\t\t\t\treturn _elm_lang$core$Native_Utils.eq(a, x);\n\t\t\t},\n\t\t\txs);\n\t});\nvar _elm_lang$core$List$isEmpty = function (xs) {\n\tvar _p7 = xs;\n\tif (_p7.ctor === '[]') {\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\nvar _elm_lang$core$List$tail = function (list) {\n\tvar _p8 = list;\n\tif (_p8.ctor === '::') {\n\t\treturn _elm_lang$core$Maybe$Just(_p8._1);\n\t} else {\n\t\treturn _elm_lang$core$Maybe$Nothing;\n\t}\n};\nvar _elm_lang$core$List$head = function (list) {\n\tvar _p9 = list;\n\tif (_p9.ctor === '::') {\n\t\treturn _elm_lang$core$Maybe$Just(_p9._0);\n\t} else {\n\t\treturn _elm_lang$core$Maybe$Nothing;\n\t}\n};\nvar _elm_lang$core$List_ops = _elm_lang$core$List_ops || {};\n_elm_lang$core$List_ops['::'] = _elm_lang$core$Native_List.cons;\nvar _elm_lang$core$List$map = F2(\n\tfunction (f, xs) {\n\t\treturn A3(\n\t\t\t_elm_lang$core$List$foldr,\n\t\t\tF2(\n\t\t\t\tfunction (x, acc) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\t\t\tf(x),\n\t\t\t\t\t\tacc);\n\t\t\t\t}),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\txs);\n\t});\nvar _elm_lang$core$List$filter = F2(\n\tfunction (pred, xs) {\n\t\tvar conditionalCons = F2(\n\t\t\tfunction (x, xs$) {\n\t\t\t\treturn pred(x) ? A2(_elm_lang$core$List_ops['::'], x, xs$) : xs$;\n\t\t\t});\n\t\treturn A3(\n\t\t\t_elm_lang$core$List$foldr,\n\t\t\tconditionalCons,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\txs);\n\t});\nvar _elm_lang$core$List$maybeCons = F3(\n\tfunction (f, mx, xs) {\n\t\tvar _p10 = f(mx);\n\t\tif (_p10.ctor === 'Just') {\n\t\t\treturn A2(_elm_lang$core$List_ops['::'], _p10._0, xs);\n\t\t} else {\n\t\t\treturn xs;\n\t\t}\n\t});\nvar _elm_lang$core$List$filterMap = F2(\n\tfunction (f, xs) {\n\t\treturn A3(\n\t\t\t_elm_lang$core$List$foldr,\n\t\t\t_elm_lang$core$List$maybeCons(f),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\txs);\n\t});\nvar _elm_lang$core$List$reverse = function (list) {\n\treturn A3(\n\t\t_elm_lang$core$List$foldl,\n\t\tF2(\n\t\t\tfunction (x, y) {\n\t\t\t\treturn A2(_elm_lang$core$List_ops['::'], x, y);\n\t\t\t}),\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\tlist);\n};\nvar _elm_lang$core$List$scanl = F3(\n\tfunction (f, b, xs) {\n\t\tvar scan1 = F2(\n\t\t\tfunction (x, accAcc) {\n\t\t\t\tvar _p11 = accAcc;\n\t\t\t\tif (_p11.ctor === '::') {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\t\t\tA2(f, x, _p11._0),\n\t\t\t\t\t\taccAcc);\n\t\t\t\t} else {\n\t\t\t\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]);\n\t\t\t\t}\n\t\t\t});\n\t\treturn _elm_lang$core$List$reverse(\n\t\t\tA3(\n\t\t\t\t_elm_lang$core$List$foldl,\n\t\t\t\tscan1,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[b]),\n\t\t\t\txs));\n\t});\nvar _elm_lang$core$List$append = F2(\n\tfunction (xs, ys) {\n\t\tvar _p12 = ys;\n\t\tif (_p12.ctor === '[]') {\n\t\t\treturn xs;\n\t\t} else {\n\t\t\treturn A3(\n\t\t\t\t_elm_lang$core$List$foldr,\n\t\t\t\tF2(\n\t\t\t\t\tfunction (x, y) {\n\t\t\t\t\t\treturn A2(_elm_lang$core$List_ops['::'], x, y);\n\t\t\t\t\t}),\n\t\t\t\tys,\n\t\t\t\txs);\n\t\t}\n\t});\nvar _elm_lang$core$List$concat = function (lists) {\n\treturn A3(\n\t\t_elm_lang$core$List$foldr,\n\t\t_elm_lang$core$List$append,\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\tlists);\n};\nvar _elm_lang$core$List$concatMap = F2(\n\tfunction (f, list) {\n\t\treturn _elm_lang$core$List$concat(\n\t\t\tA2(_elm_lang$core$List$map, f, list));\n\t});\nvar _elm_lang$core$List$partition = F2(\n\tfunction (pred, list) {\n\t\tvar step = F2(\n\t\t\tfunction (x, _p13) {\n\t\t\t\tvar _p14 = _p13;\n\t\t\t\tvar _p16 = _p14._0;\n\t\t\t\tvar _p15 = _p14._1;\n\t\t\t\treturn pred(x) ? {\n\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t_0: A2(_elm_lang$core$List_ops['::'], x, _p16),\n\t\t\t\t\t_1: _p15\n\t\t\t\t} : {\n\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t_0: _p16,\n\t\t\t\t\t_1: A2(_elm_lang$core$List_ops['::'], x, _p15)\n\t\t\t\t};\n\t\t\t});\n\t\treturn A3(\n\t\t\t_elm_lang$core$List$foldr,\n\t\t\tstep,\n\t\t\t{\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[]),\n\t\t\t\t_1: _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[])\n\t\t\t},\n\t\t\tlist);\n\t});\nvar _elm_lang$core$List$unzip = function (pairs) {\n\tvar step = F2(\n\t\tfunction (_p18, _p17) {\n\t\t\tvar _p19 = _p18;\n\t\t\tvar _p20 = _p17;\n\t\t\treturn {\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: A2(_elm_lang$core$List_ops['::'], _p19._0, _p20._0),\n\t\t\t\t_1: A2(_elm_lang$core$List_ops['::'], _p19._1, _p20._1)\n\t\t\t};\n\t\t});\n\treturn A3(\n\t\t_elm_lang$core$List$foldr,\n\t\tstep,\n\t\t{\n\t\t\tctor: '_Tuple2',\n\t\t\t_0: _elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\t_1: _elm_lang$core$Native_List.fromArray(\n\t\t\t\t[])\n\t\t},\n\t\tpairs);\n};\nvar _elm_lang$core$List$intersperse = F2(\n\tfunction (sep, xs) {\n\t\tvar _p21 = xs;\n\t\tif (_p21.ctor === '[]') {\n\t\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]);\n\t\t} else {\n\t\t\tvar step = F2(\n\t\t\t\tfunction (x, rest) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\t\t\tsep,\n\t\t\t\t\t\tA2(_elm_lang$core$List_ops['::'], x, rest));\n\t\t\t\t});\n\t\t\tvar spersed = A3(\n\t\t\t\t_elm_lang$core$List$foldr,\n\t\t\t\tstep,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[]),\n\t\t\t\t_p21._1);\n\t\t\treturn A2(_elm_lang$core$List_ops['::'], _p21._0, spersed);\n\t\t}\n\t});\nvar _elm_lang$core$List$takeReverse = F3(\n\tfunction (n, list, taken) {\n\t\ttakeReverse:\n\t\twhile (true) {\n\t\t\tif (_elm_lang$core$Native_Utils.cmp(n, 0) < 1) {\n\t\t\t\treturn taken;\n\t\t\t} else {\n\t\t\t\tvar _p22 = list;\n\t\t\t\tif (_p22.ctor === '[]') {\n\t\t\t\t\treturn taken;\n\t\t\t\t} else {\n\t\t\t\t\tvar _v23 = n - 1,\n\t\t\t\t\t\t_v24 = _p22._1,\n\t\t\t\t\t\t_v25 = A2(_elm_lang$core$List_ops['::'], _p22._0, taken);\n\t\t\t\t\tn = _v23;\n\t\t\t\t\tlist = _v24;\n\t\t\t\t\ttaken = _v25;\n\t\t\t\t\tcontinue takeReverse;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar _elm_lang$core$List$takeTailRec = F2(\n\tfunction (n, list) {\n\t\treturn _elm_lang$core$List$reverse(\n\t\t\tA3(\n\t\t\t\t_elm_lang$core$List$takeReverse,\n\t\t\t\tn,\n\t\t\t\tlist,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[])));\n\t});\nvar _elm_lang$core$List$takeFast = F3(\n\tfunction (ctr, n, list) {\n\t\tif (_elm_lang$core$Native_Utils.cmp(n, 0) < 1) {\n\t\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]);\n\t\t} else {\n\t\t\tvar _p23 = {ctor: '_Tuple2', _0: n, _1: list};\n\t\t\t_v26_5:\n\t\t\tdo {\n\t\t\t\t_v26_1:\n\t\t\t\tdo {\n\t\t\t\t\tif (_p23.ctor === '_Tuple2') {\n\t\t\t\t\t\tif (_p23._1.ctor === '[]') {\n\t\t\t\t\t\t\treturn list;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (_p23._1._1.ctor === '::') {\n\t\t\t\t\t\t\t\tswitch (_p23._0) {\n\t\t\t\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t\t\t\tbreak _v26_1;\n\t\t\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\t\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[_p23._1._0, _p23._1._1._0]);\n\t\t\t\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\t\t\t\tif (_p23._1._1._1.ctor === '::') {\n\t\t\t\t\t\t\t\t\t\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[_p23._1._0, _p23._1._1._0, _p23._1._1._1._0]);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tbreak _v26_5;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tif ((_p23._1._1._1.ctor === '::') && (_p23._1._1._1._1.ctor === '::')) {\n\t\t\t\t\t\t\t\t\t\t\tvar _p28 = _p23._1._1._1._0;\n\t\t\t\t\t\t\t\t\t\t\tvar _p27 = _p23._1._1._0;\n\t\t\t\t\t\t\t\t\t\t\tvar _p26 = _p23._1._0;\n\t\t\t\t\t\t\t\t\t\t\tvar _p25 = _p23._1._1._1._1._0;\n\t\t\t\t\t\t\t\t\t\t\tvar _p24 = _p23._1._1._1._1._1;\n\t\t\t\t\t\t\t\t\t\t\treturn (_elm_lang$core$Native_Utils.cmp(ctr, 1000) > 0) ? A2(\n\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\t\t\t\t\t\t\t\t\t_p26,\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t_p27,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_p28,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_p25,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(_elm_lang$core$List$takeTailRec, n - 4, _p24))))) : A2(\n\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\t\t\t\t\t\t\t\t\t_p26,\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t_p27,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_p28,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_p25,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA3(_elm_lang$core$List$takeFast, ctr + 1, n - 4, _p24)))));\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tbreak _v26_5;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (_p23._0 === 1) {\n\t\t\t\t\t\t\t\t\tbreak _v26_1;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tbreak _v26_5;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v26_5;\n\t\t\t\t\t}\n\t\t\t\t} while(false);\n\t\t\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[_p23._1._0]);\n\t\t\t} while(false);\n\t\t\treturn list;\n\t\t}\n\t});\nvar _elm_lang$core$List$take = F2(\n\tfunction (n, list) {\n\t\treturn A3(_elm_lang$core$List$takeFast, 0, n, list);\n\t});\nvar _elm_lang$core$List$repeatHelp = F3(\n\tfunction (result, n, value) {\n\t\trepeatHelp:\n\t\twhile (true) {\n\t\t\tif (_elm_lang$core$Native_Utils.cmp(n, 0) < 1) {\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\tvar _v27 = A2(_elm_lang$core$List_ops['::'], value, result),\n\t\t\t\t\t_v28 = n - 1,\n\t\t\t\t\t_v29 = value;\n\t\t\t\tresult = _v27;\n\t\t\t\tn = _v28;\n\t\t\t\tvalue = _v29;\n\t\t\t\tcontinue repeatHelp;\n\t\t\t}\n\t\t}\n\t});\nvar _elm_lang$core$List$repeat = F2(\n\tfunction (n, value) {\n\t\treturn A3(\n\t\t\t_elm_lang$core$List$repeatHelp,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\tn,\n\t\t\tvalue);\n\t});\nvar _elm_lang$core$Result$toMaybe = function (result) {\n\tvar _p0 = result;\n\tif (_p0.ctor === 'Ok') {\n\t\treturn _elm_lang$core$Maybe$Just(_p0._0);\n\t} else {\n\t\treturn _elm_lang$core$Maybe$Nothing;\n\t}\n};\nvar _elm_lang$core$Result$withDefault = F2(\n\tfunction (def, result) {\n\t\tvar _p1 = result;\n\t\tif (_p1.ctor === 'Ok') {\n\t\t\treturn _p1._0;\n\t\t} else {\n\t\t\treturn def;\n\t\t}\n\t});\nvar _elm_lang$core$Result$Err = function (a) {\n\treturn {ctor: 'Err', _0: a};\n};\nvar _elm_lang$core$Result$andThen = F2(\n\tfunction (result, callback) {\n\t\tvar _p2 = result;\n\t\tif (_p2.ctor === 'Ok') {\n\t\t\treturn callback(_p2._0);\n\t\t} else {\n\t\t\treturn _elm_lang$core$Result$Err(_p2._0);\n\t\t}\n\t});\nvar _elm_lang$core$Result$Ok = function (a) {\n\treturn {ctor: 'Ok', _0: a};\n};\nvar _elm_lang$core$Result$map = F2(\n\tfunction (func, ra) {\n\t\tvar _p3 = ra;\n\t\tif (_p3.ctor === 'Ok') {\n\t\t\treturn _elm_lang$core$Result$Ok(\n\t\t\t\tfunc(_p3._0));\n\t\t} else {\n\t\t\treturn _elm_lang$core$Result$Err(_p3._0);\n\t\t}\n\t});\nvar _elm_lang$core$Result$map2 = F3(\n\tfunction (func, ra, rb) {\n\t\tvar _p4 = {ctor: '_Tuple2', _0: ra, _1: rb};\n\t\tif (_p4._0.ctor === 'Ok') {\n\t\t\tif (_p4._1.ctor === 'Ok') {\n\t\t\t\treturn _elm_lang$core$Result$Ok(\n\t\t\t\t\tA2(func, _p4._0._0, _p4._1._0));\n\t\t\t} else {\n\t\t\t\treturn _elm_lang$core$Result$Err(_p4._1._0);\n\t\t\t}\n\t\t} else {\n\t\t\treturn _elm_lang$core$Result$Err(_p4._0._0);\n\t\t}\n\t});\nvar _elm_lang$core$Result$map3 = F4(\n\tfunction (func, ra, rb, rc) {\n\t\tvar _p5 = {ctor: '_Tuple3', _0: ra, _1: rb, _2: rc};\n\t\tif (_p5._0.ctor === 'Ok') {\n\t\t\tif (_p5._1.ctor === 'Ok') {\n\t\t\t\tif (_p5._2.ctor === 'Ok') {\n\t\t\t\t\treturn _elm_lang$core$Result$Ok(\n\t\t\t\t\t\tA3(func, _p5._0._0, _p5._1._0, _p5._2._0));\n\t\t\t\t} else {\n\t\t\t\t\treturn _elm_lang$core$Result$Err(_p5._2._0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn _elm_lang$core$Result$Err(_p5._1._0);\n\t\t\t}\n\t\t} else {\n\t\t\treturn _elm_lang$core$Result$Err(_p5._0._0);\n\t\t}\n\t});\nvar _elm_lang$core$Result$map4 = F5(\n\tfunction (func, ra, rb, rc, rd) {\n\t\tvar _p6 = {ctor: '_Tuple4', _0: ra, _1: rb, _2: rc, _3: rd};\n\t\tif (_p6._0.ctor === 'Ok') {\n\t\t\tif (_p6._1.ctor === 'Ok') {\n\t\t\t\tif (_p6._2.ctor === 'Ok') {\n\t\t\t\t\tif (_p6._3.ctor === 'Ok') {\n\t\t\t\t\t\treturn _elm_lang$core$Result$Ok(\n\t\t\t\t\t\t\tA4(func, _p6._0._0, _p6._1._0, _p6._2._0, _p6._3._0));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn _elm_lang$core$Result$Err(_p6._3._0);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn _elm_lang$core$Result$Err(_p6._2._0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn _elm_lang$core$Result$Err(_p6._1._0);\n\t\t\t}\n\t\t} else {\n\t\t\treturn _elm_lang$core$Result$Err(_p6._0._0);\n\t\t}\n\t});\nvar _elm_lang$core$Result$map5 = F6(\n\tfunction (func, ra, rb, rc, rd, re) {\n\t\tvar _p7 = {ctor: '_Tuple5', _0: ra, _1: rb, _2: rc, _3: rd, _4: re};\n\t\tif (_p7._0.ctor === 'Ok') {\n\t\t\tif (_p7._1.ctor === 'Ok') {\n\t\t\t\tif (_p7._2.ctor === 'Ok') {\n\t\t\t\t\tif (_p7._3.ctor === 'Ok') {\n\t\t\t\t\t\tif (_p7._4.ctor === 'Ok') {\n\t\t\t\t\t\t\treturn _elm_lang$core$Result$Ok(\n\t\t\t\t\t\t\t\tA5(func, _p7._0._0, _p7._1._0, _p7._2._0, _p7._3._0, _p7._4._0));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn _elm_lang$core$Result$Err(_p7._4._0);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn _elm_lang$core$Result$Err(_p7._3._0);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn _elm_lang$core$Result$Err(_p7._2._0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn _elm_lang$core$Result$Err(_p7._1._0);\n\t\t\t}\n\t\t} else {\n\t\t\treturn _elm_lang$core$Result$Err(_p7._0._0);\n\t\t}\n\t});\nvar _elm_lang$core$Result$formatError = F2(\n\tfunction (f, result) {\n\t\tvar _p8 = result;\n\t\tif (_p8.ctor === 'Ok') {\n\t\t\treturn _elm_lang$core$Result$Ok(_p8._0);\n\t\t} else {\n\t\t\treturn _elm_lang$core$Result$Err(\n\t\t\t\tf(_p8._0));\n\t\t}\n\t});\nvar _elm_lang$core$Result$fromMaybe = F2(\n\tfunction (err, maybe) {\n\t\tvar _p9 = maybe;\n\t\tif (_p9.ctor === 'Just') {\n\t\t\treturn _elm_lang$core$Result$Ok(_p9._0);\n\t\t} else {\n\t\t\treturn _elm_lang$core$Result$Err(err);\n\t\t}\n\t});\n//import //\n\nvar _elm_lang$core$Native_Platform = function() {\n\n\n// PROGRAMS\n\nfunction addPublicModule(object, name, main)\n{\n\tvar init = main ? makeEmbed(name, main) : mainIsUndefined(name);\n\n\tobject['worker'] = function worker(flags)\n\t{\n\t\treturn init(undefined, flags, false);\n\t}\n\n\tobject['embed'] = function embed(domNode, flags)\n\t{\n\t\treturn init(domNode, flags, true);\n\t}\n\n\tobject['fullscreen'] = function fullscreen(flags)\n\t{\n\t\treturn init(document.body, flags, true);\n\t};\n}\n\n\n// PROGRAM FAIL\n\nfunction mainIsUndefined(name)\n{\n\treturn function(domNode)\n\t{\n\t\tvar message = 'Cannot initialize module `' + name +\n\t\t\t'` because it has no `main` value!\\nWhat should I show on screen?';\n\t\tdomNode.innerHTML = errorHtml(message);\n\t\tthrow new Error(message);\n\t};\n}\n\nfunction errorHtml(message)\n{\n\treturn '<div style=\"padding-left:1em;\">'\n\t\t+ '<h2 style=\"font-weight:normal;\"><b>Oops!</b> Something went wrong when starting your Elm program.</h2>'\n\t\t+ '<pre style=\"padding-left:1em;\">' + message + '</pre>'\n\t\t+ '</div>';\n}\n\n\n// PROGRAM SUCCESS\n\nfunction makeEmbed(moduleName, main)\n{\n\treturn function embed(rootDomNode, flags, withRenderer)\n\t{\n\t\ttry\n\t\t{\n\t\t\tvar program = mainToProgram(moduleName, main);\n\t\t\tif (!withRenderer)\n\t\t\t{\n\t\t\t\tprogram.renderer = dummyRenderer;\n\t\t\t}\n\t\t\treturn makeEmbedHelp(moduleName, program, rootDomNode, flags);\n\t\t}\n\t\tcatch (e)\n\t\t{\n\t\t\trootDomNode.innerHTML = errorHtml(e.message);\n\t\t\tthrow e;\n\t\t}\n\t};\n}\n\nfunction dummyRenderer()\n{\n\treturn { update: function() {} };\n}\n\n\n// MAIN TO PROGRAM\n\nfunction mainToProgram(moduleName, wrappedMain)\n{\n\tvar main = wrappedMain.main;\n\n\tif (typeof main.init === 'undefined')\n\t{\n\t\tvar emptyBag = batch(_elm_lang$core$Native_List.Nil);\n\t\tvar noChange = _elm_lang$core$Native_Utils.Tuple2(\n\t\t\t_elm_lang$core$Native_Utils.Tuple0,\n\t\t\temptyBag\n\t\t);\n\n\t\treturn _elm_lang$virtual_dom$VirtualDom$programWithFlags({\n\t\t\tinit: function() { return noChange; },\n\t\t\tview: function() { return main; },\n\t\t\tupdate: F2(function() { return noChange; }),\n\t\t\tsubscriptions: function () { return emptyBag; }\n\t\t});\n\t}\n\n\tvar flags = wrappedMain.flags;\n\tvar init = flags\n\t\t? initWithFlags(moduleName, main.init, flags)\n\t\t: initWithoutFlags(moduleName, main.init);\n\n\treturn _elm_lang$virtual_dom$VirtualDom$programWithFlags({\n\t\tinit: init,\n\t\tview: main.view,\n\t\tupdate: main.update,\n\t\tsubscriptions: main.subscriptions,\n\t});\n}\n\nfunction initWithoutFlags(moduleName, realInit)\n{\n\treturn function init(flags)\n\t{\n\t\tif (typeof flags !== 'undefined')\n\t\t{\n\t\t\tthrow new Error(\n\t\t\t\t'You are giving module `' + moduleName + '` an argument in JavaScript.\\n'\n\t\t\t\t+ 'This module does not take arguments though! You probably need to change the\\n'\n\t\t\t\t+ 'initialization code to something like `Elm.' + moduleName + '.fullscreen()`'\n\t\t\t);\n\t\t}\n\t\treturn realInit();\n\t};\n}\n\nfunction initWithFlags(moduleName, realInit, flagDecoder)\n{\n\treturn function init(flags)\n\t{\n\t\tvar result = A2(_elm_lang$core$Native_Json.run, flagDecoder, flags);\n\t\tif (result.ctor === 'Err')\n\t\t{\n\t\t\tthrow new Error(\n\t\t\t\t'You are trying to initialize module `' + moduleName + '` with an unexpected argument.\\n'\n\t\t\t\t+ 'When trying to convert it to a usable Elm value, I run into this problem:\\n\\n'\n\t\t\t\t+ result._0\n\t\t\t);\n\t\t}\n\t\treturn realInit(result._0);\n\t};\n}\n\n\n// SETUP RUNTIME SYSTEM\n\nfunction makeEmbedHelp(moduleName, program, rootDomNode, flags)\n{\n\tvar init = program.init;\n\tvar update = program.update;\n\tvar subscriptions = program.subscriptions;\n\tvar view = program.view;\n\tvar makeRenderer = program.renderer;\n\n\t// ambient state\n\tvar managers = {};\n\tvar renderer;\n\n\t// init and update state in main process\n\tvar initApp = _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) {\n\t\tvar results = init(flags);\n\t\tvar model = results._0;\n\t\trenderer = makeRenderer(rootDomNode, enqueue, view(model));\n\t\tvar cmds = results._1;\n\t\tvar subs = subscriptions(model);\n\t\tdispatchEffects(managers, cmds, subs);\n\t\tcallback(_elm_lang$core$Native_Scheduler.succeed(model));\n\t});\n\n\tfunction onMessage(msg, model)\n\t{\n\t\treturn _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) {\n\t\t\tvar results = A2(update, msg, model);\n\t\t\tmodel = results._0;\n\t\t\trenderer.update(view(model));\n\t\t\tvar cmds = results._1;\n\t\t\tvar subs = subscriptions(model);\n\t\t\tdispatchEffects(managers, cmds, subs);\n\t\t\tcallback(_elm_lang$core$Native_Scheduler.succeed(model));\n\t\t});\n\t}\n\n\tvar mainProcess = spawnLoop(initApp, onMessage);\n\n\tfunction enqueue(msg)\n\t{\n\t\t_elm_lang$core$Native_Scheduler.rawSend(mainProcess, msg);\n\t}\n\n\tvar ports = setupEffects(managers, enqueue);\n\n\treturn ports ? { ports: ports } : {};\n}\n\n\n// EFFECT MANAGERS\n\nvar effectManagers = {};\n\nfunction setupEffects(managers, callback)\n{\n\tvar ports;\n\n\t// setup all necessary effect managers\n\tfor (var key in effectManagers)\n\t{\n\t\tvar manager = effectManagers[key];\n\n\t\tif (manager.isForeign)\n\t\t{\n\t\t\tports = ports || {};\n\t\t\tports[key] = manager.tag === 'cmd'\n\t\t\t\t? setupOutgoingPort(key)\n\t\t\t\t: setupIncomingPort(key, callback);\n\t\t}\n\n\t\tmanagers[key] = makeManager(manager, callback);\n\t}\n\n\treturn ports;\n}\n\nfunction makeManager(info, callback)\n{\n\tvar router = {\n\t\tmain: callback,\n\t\tself: undefined\n\t};\n\n\tvar tag = info.tag;\n\tvar onEffects = info.onEffects;\n\tvar onSelfMsg = info.onSelfMsg;\n\n\tfunction onMessage(msg, state)\n\t{\n\t\tif (msg.ctor === 'self')\n\t\t{\n\t\t\treturn A3(onSelfMsg, router, msg._0, state);\n\t\t}\n\n\t\tvar fx = msg._0;\n\t\tswitch (tag)\n\t\t{\n\t\t\tcase 'cmd':\n\t\t\t\treturn A3(onEffects, router, fx.cmds, state);\n\n\t\t\tcase 'sub':\n\t\t\t\treturn A3(onEffects, router, fx.subs, state);\n\n\t\t\tcase 'fx':\n\t\t\t\treturn A4(onEffects, router, fx.cmds, fx.subs, state);\n\t\t}\n\t}\n\n\tvar process = spawnLoop(info.init, onMessage);\n\trouter.self = process;\n\treturn process;\n}\n\nfunction sendToApp(router, msg)\n{\n\treturn _elm_lang$core$Native_Scheduler.nativeBinding(function(callback)\n\t{\n\t\trouter.main(msg);\n\t\tcallback(_elm_lang$core$Native_Scheduler.succeed(_elm_lang$core$Native_Utils.Tuple0));\n\t});\n}\n\nfunction sendToSelf(router, msg)\n{\n\treturn A2(_elm_lang$core$Native_Scheduler.send, router.self, {\n\t\tctor: 'self',\n\t\t_0: msg\n\t});\n}\n\n\n// HELPER for STATEFUL LOOPS\n\nfunction spawnLoop(init, onMessage)\n{\n\tvar andThen = _elm_lang$core$Native_Scheduler.andThen;\n\n\tfunction loop(state)\n\t{\n\t\tvar handleMsg = _elm_lang$core$Native_Scheduler.receive(function(msg) {\n\t\t\treturn onMessage(msg, state);\n\t\t});\n\t\treturn A2(andThen, handleMsg, loop);\n\t}\n\n\tvar task = A2(andThen, init, loop);\n\n\treturn _elm_lang$core$Native_Scheduler.rawSpawn(task);\n}\n\n\n// BAGS\n\nfunction leaf(home)\n{\n\treturn function(value)\n\t{\n\t\treturn {\n\t\t\ttype: 'leaf',\n\t\t\thome: home,\n\t\t\tvalue: value\n\t\t};\n\t};\n}\n\nfunction batch(list)\n{\n\treturn {\n\t\ttype: 'node',\n\t\tbranches: list\n\t};\n}\n\nfunction map(tagger, bag)\n{\n\treturn {\n\t\ttype: 'map',\n\t\ttagger: tagger,\n\t\ttree: bag\n\t}\n}\n\n\n// PIPE BAGS INTO EFFECT MANAGERS\n\nfunction dispatchEffects(managers, cmdBag, subBag)\n{\n\tvar effectsDict = {};\n\tgatherEffects(true, cmdBag, effectsDict, null);\n\tgatherEffects(false, subBag, effectsDict, null);\n\n\tfor (var home in managers)\n\t{\n\t\tvar fx = home in effectsDict\n\t\t\t? effectsDict[home]\n\t\t\t: {\n\t\t\t\tcmds: _elm_lang$core$Native_List.Nil,\n\t\t\t\tsubs: _elm_lang$core$Native_List.Nil\n\t\t\t};\n\n\t\t_elm_lang$core$Native_Scheduler.rawSend(managers[home], { ctor: 'fx', _0: fx });\n\t}\n}\n\nfunction gatherEffects(isCmd, bag, effectsDict, taggers)\n{\n\tswitch (bag.type)\n\t{\n\t\tcase 'leaf':\n\t\t\tvar home = bag.home;\n\t\t\tvar effect = toEffect(isCmd, home, taggers, bag.value);\n\t\t\teffectsDict[home] = insert(isCmd, effect, effectsDict[home]);\n\t\t\treturn;\n\n\t\tcase 'node':\n\t\t\tvar list = bag.branches;\n\t\t\twhile (list.ctor !== '[]')\n\t\t\t{\n\t\t\t\tgatherEffects(isCmd, list._0, effectsDict, taggers);\n\t\t\t\tlist = list._1;\n\t\t\t}\n\t\t\treturn;\n\n\t\tcase 'map':\n\t\t\tgatherEffects(isCmd, bag.tree, effectsDict, {\n\t\t\t\ttagger: bag.tagger,\n\t\t\t\trest: taggers\n\t\t\t});\n\t\t\treturn;\n\t}\n}\n\nfunction toEffect(isCmd, home, taggers, value)\n{\n\tfunction applyTaggers(x)\n\t{\n\t\tvar temp = taggers;\n\t\twhile (temp)\n\t\t{\n\t\t\tx = temp.tagger(x);\n\t\t\ttemp = temp.rest;\n\t\t}\n\t\treturn x;\n\t}\n\n\tvar map = isCmd\n\t\t? effectManagers[home].cmdMap\n\t\t: effectManagers[home].subMap;\n\n\treturn A2(map, applyTaggers, value)\n}\n\nfunction insert(isCmd, newEffect, effects)\n{\n\teffects = effects || {\n\t\tcmds: _elm_lang$core$Native_List.Nil,\n\t\tsubs: _elm_lang$core$Native_List.Nil\n\t};\n\tif (isCmd)\n\t{\n\t\teffects.cmds = _elm_lang$core$Native_List.Cons(newEffect, effects.cmds);\n\t\treturn effects;\n\t}\n\teffects.subs = _elm_lang$core$Native_List.Cons(newEffect, effects.subs);\n\treturn effects;\n}\n\n\n// PORTS\n\nfunction checkPortName(name)\n{\n\tif (name in effectManagers)\n\t{\n\t\tthrow new Error('There can only be one port named `' + name + '`, but your program has multiple.');\n\t}\n}\n\n\n// OUTGOING PORTS\n\nfunction outgoingPort(name, converter)\n{\n\tcheckPortName(name);\n\teffectManagers[name] = {\n\t\ttag: 'cmd',\n\t\tcmdMap: outgoingPortMap,\n\t\tconverter: converter,\n\t\tisForeign: true\n\t};\n\treturn leaf(name);\n}\n\nvar outgoingPortMap = F2(function cmdMap(tagger, value) {\n\treturn value;\n});\n\nfunction setupOutgoingPort(name)\n{\n\tvar subs = [];\n\tvar converter = effectManagers[name].converter;\n\n\t// CREATE MANAGER\n\n\tvar init = _elm_lang$core$Native_Scheduler.succeed(null);\n\n\tfunction onEffects(router, cmdList, state)\n\t{\n\t\twhile (cmdList.ctor !== '[]')\n\t\t{\n\t\t\tvar value = converter(cmdList._0);\n\t\t\tfor (var i = 0; i < subs.length; i++)\n\t\t\t{\n\t\t\t\tsubs[i](value);\n\t\t\t}\n\t\t\tcmdList = cmdList._1;\n\t\t}\n\t\treturn init;\n\t}\n\n\teffectManagers[name].init = init;\n\teffectManagers[name].onEffects = F3(onEffects);\n\n\t// PUBLIC API\n\n\tfunction subscribe(callback)\n\t{\n\t\tsubs.push(callback);\n\t}\n\n\tfunction unsubscribe(callback)\n\t{\n\t\tvar index = subs.indexOf(callback);\n\t\tif (index >= 0)\n\t\t{\n\t\t\tsubs.splice(index, 1);\n\t\t}\n\t}\n\n\treturn {\n\t\tsubscribe: subscribe,\n\t\tunsubscribe: unsubscribe\n\t};\n}\n\n\n// INCOMING PORTS\n\nfunction incomingPort(name, converter)\n{\n\tcheckPortName(name);\n\teffectManagers[name] = {\n\t\ttag: 'sub',\n\t\tsubMap: incomingPortMap,\n\t\tconverter: converter,\n\t\tisForeign: true\n\t};\n\treturn leaf(name);\n}\n\nvar incomingPortMap = F2(function subMap(tagger, finalTagger)\n{\n\treturn function(value)\n\t{\n\t\treturn tagger(finalTagger(value));\n\t};\n});\n\nfunction setupIncomingPort(name, callback)\n{\n\tvar sentBeforeInit = [];\n\tvar subs = _elm_lang$core$Native_List.Nil;\n\tvar converter = effectManagers[name].converter;\n\tvar currentOnEffects = preInitOnEffects;\n\tvar currentSend = preInitSend;\n\n\t// CREATE MANAGER\n\n\tvar init = _elm_lang$core$Native_Scheduler.succeed(null);\n\n\tfunction preInitOnEffects(router, subList, state)\n\t{\n\t\tvar postInitResult = postInitOnEffects(router, subList, state);\n\n\t\tfor(var i = 0; i < sentBeforeInit.length; i++)\n\t\t{\n\t\t\tpostInitSend(sentBeforeInit[i]);\n\t\t}\n\n\t\tsentBeforeInit = null; // to release objects held in queue\n\t\tcurrentSend = postInitSend;\n\t\tcurrentOnEffects = postInitOnEffects;\n\t\treturn postInitResult;\n\t}\n\n\tfunction postInitOnEffects(router, subList, state)\n\t{\n\t\tsubs = subList;\n\t\treturn init;\n\t}\n\n\tfunction onEffects(router, subList, state)\n\t{\n\t\treturn currentOnEffects(router, subList, state);\n\t}\n\n\teffectManagers[name].init = init;\n\teffectManagers[name].onEffects = F3(onEffects);\n\n\t// PUBLIC API\n\n\tfunction preInitSend(value)\n\t{\n\t\tsentBeforeInit.push(value);\n\t}\n\n\tfunction postInitSend(incomingValue)\n\t{\n\t\tvar result = A2(_elm_lang$core$Json_Decode$decodeValue, converter, incomingValue);\n\t\tif (result.ctor === 'Err')\n\t\t{\n\t\t\tthrow new Error('Trying to send an unexpected type of value through port `' + name + '`:\\n' + result._0);\n\t\t}\n\n\t\tvar value = result._0;\n\t\tvar temp = subs;\n\t\twhile (temp.ctor !== '[]')\n\t\t{\n\t\t\tcallback(temp._0(value));\n\t\t\ttemp = temp._1;\n\t\t}\n\t}\n\n\tfunction send(incomingValue)\n\t{\n\t\tcurrentSend(incomingValue);\n\t}\n\n\treturn { send: send };\n}\n\nreturn {\n\t// routers\n\tsendToApp: F2(sendToApp),\n\tsendToSelf: F2(sendToSelf),\n\n\t// global setup\n\tmainToProgram: mainToProgram,\n\teffectManagers: effectManagers,\n\toutgoingPort: outgoingPort,\n\tincomingPort: incomingPort,\n\taddPublicModule: addPublicModule,\n\n\t// effect bags\n\tleaf: leaf,\n\tbatch: batch,\n\tmap: F2(map)\n};\n\n}();\n//import Native.Utils //\n\nvar _elm_lang$core$Native_Scheduler = function() {\n\nvar MAX_STEPS = 10000;\n\n\n// TASKS\n\nfunction succeed(value)\n{\n\treturn {\n\t\tctor: '_Task_succeed',\n\t\tvalue: value\n\t};\n}\n\nfunction fail(error)\n{\n\treturn {\n\t\tctor: '_Task_fail',\n\t\tvalue: error\n\t};\n}\n\nfunction nativeBinding(callback)\n{\n\treturn {\n\t\tctor: '_Task_nativeBinding',\n\t\tcallback: callback,\n\t\tcancel: null\n\t};\n}\n\nfunction andThen(task, callback)\n{\n\treturn {\n\t\tctor: '_Task_andThen',\n\t\ttask: task,\n\t\tcallback: callback\n\t};\n}\n\nfunction onError(task, callback)\n{\n\treturn {\n\t\tctor: '_Task_onError',\n\t\ttask: task,\n\t\tcallback: callback\n\t};\n}\n\nfunction receive(callback)\n{\n\treturn {\n\t\tctor: '_Task_receive',\n\t\tcallback: callback\n\t};\n}\n\n\n// PROCESSES\n\nfunction rawSpawn(task)\n{\n\tvar process = {\n\t\tctor: '_Process',\n\t\tid: _elm_lang$core$Native_Utils.guid(),\n\t\troot: task,\n\t\tstack: null,\n\t\tmailbox: []\n\t};\n\n\tenqueue(process);\n\n\treturn process;\n}\n\nfunction spawn(task)\n{\n\treturn nativeBinding(function(callback) {\n\t\tvar process = rawSpawn(task);\n\t\tcallback(succeed(process));\n\t});\n}\n\nfunction rawSend(process, msg)\n{\n\tprocess.mailbox.push(msg);\n\tenqueue(process);\n}\n\nfunction send(process, msg)\n{\n\treturn nativeBinding(function(callback) {\n\t\trawSend(process, msg);\n\t\tcallback(succeed(_elm_lang$core$Native_Utils.Tuple0));\n\t});\n}\n\nfunction kill(process)\n{\n\treturn nativeBinding(function(callback) {\n\t\tvar root = process.root;\n\t\tif (root.ctor === '_Task_nativeBinding' && root.cancel)\n\t\t{\n\t\t\troot.cancel();\n\t\t}\n\n\t\tprocess.root = null;\n\n\t\tcallback(succeed(_elm_lang$core$Native_Utils.Tuple0));\n\t});\n}\n\nfunction sleep(time)\n{\n\treturn nativeBinding(function(callback) {\n\t\tvar id = setTimeout(function() {\n\t\t\tcallback(succeed(_elm_lang$core$Native_Utils.Tuple0));\n\t\t}, time);\n\n\t\treturn function() { clearTimeout(id); };\n\t});\n}\n\n\n// STEP PROCESSES\n\nfunction step(numSteps, process)\n{\n\twhile (numSteps < MAX_STEPS)\n\t{\n\t\tvar ctor = process.root.ctor;\n\n\t\tif (ctor === '_Task_succeed')\n\t\t{\n\t\t\twhile (process.stack && process.stack.ctor === '_Task_onError')\n\t\t\t{\n\t\t\t\tprocess.stack = process.stack.rest;\n\t\t\t}\n\t\t\tif (process.stack === null)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tprocess.root = process.stack.callback(process.root.value);\n\t\t\tprocess.stack = process.stack.rest;\n\t\t\t++numSteps;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (ctor === '_Task_fail')\n\t\t{\n\t\t\twhile (process.stack && process.stack.ctor === '_Task_andThen')\n\t\t\t{\n\t\t\t\tprocess.stack = process.stack.rest;\n\t\t\t}\n\t\t\tif (process.stack === null)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tprocess.root = process.stack.callback(process.root.value);\n\t\t\tprocess.stack = process.stack.rest;\n\t\t\t++numSteps;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (ctor === '_Task_andThen')\n\t\t{\n\t\t\tprocess.stack = {\n\t\t\t\tctor: '_Task_andThen',\n\t\t\t\tcallback: process.root.callback,\n\t\t\t\trest: process.stack\n\t\t\t};\n\t\t\tprocess.root = process.root.task;\n\t\t\t++numSteps;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (ctor === '_Task_onError')\n\t\t{\n\t\t\tprocess.stack = {\n\t\t\t\tctor: '_Task_onError',\n\t\t\t\tcallback: process.root.callback,\n\t\t\t\trest: process.stack\n\t\t\t};\n\t\t\tprocess.root = process.root.task;\n\t\t\t++numSteps;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (ctor === '_Task_nativeBinding')\n\t\t{\n\t\t\tprocess.root.cancel = process.root.callback(function(newRoot) {\n\t\t\t\tprocess.root = newRoot;\n\t\t\t\tenqueue(process);\n\t\t\t});\n\n\t\t\tbreak;\n\t\t}\n\n\t\tif (ctor === '_Task_receive')\n\t\t{\n\t\t\tvar mailbox = process.mailbox;\n\t\t\tif (mailbox.length === 0)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tprocess.root = process.root.callback(mailbox.shift());\n\t\t\t++numSteps;\n\t\t\tcontinue;\n\t\t}\n\n\t\tthrow new Error(ctor);\n\t}\n\n\tif (numSteps < MAX_STEPS)\n\t{\n\t\treturn numSteps + 1;\n\t}\n\tenqueue(process);\n\n\treturn numSteps;\n}\n\n\n// WORK QUEUE\n\nvar working = false;\nvar workQueue = [];\n\nfunction enqueue(process)\n{\n\tworkQueue.push(process);\n\n\tif (!working)\n\t{\n\t\tsetTimeout(work, 0);\n\t\tworking = true;\n\t}\n}\n\nfunction work()\n{\n\tvar numSteps = 0;\n\tvar process;\n\twhile (numSteps < MAX_STEPS && (process = workQueue.shift()))\n\t{\n\t\tif (process.root)\n\t\t{\n\t\t\tnumSteps = step(numSteps, process);\n\t\t}\n\t}\n\tif (!process)\n\t{\n\t\tworking = false;\n\t\treturn;\n\t}\n\tsetTimeout(work, 0);\n}\n\n\nreturn {\n\tsucceed: succeed,\n\tfail: fail,\n\tnativeBinding: nativeBinding,\n\tandThen: F2(andThen),\n\tonError: F2(onError),\n\treceive: receive,\n\n\tspawn: spawn,\n\tkill: kill,\n\tsleep: sleep,\n\tsend: F2(send),\n\n\trawSpawn: rawSpawn,\n\trawSend: rawSend\n};\n\n}();var _elm_lang$core$Platform$hack = _elm_lang$core$Native_Scheduler.succeed;\nvar _elm_lang$core$Platform$sendToSelf = _elm_lang$core$Native_Platform.sendToSelf;\nvar _elm_lang$core$Platform$sendToApp = _elm_lang$core$Native_Platform.sendToApp;\nvar _elm_lang$core$Platform$Program = {ctor: 'Program'};\nvar _elm_lang$core$Platform$Task = {ctor: 'Task'};\nvar _elm_lang$core$Platform$ProcessId = {ctor: 'ProcessId'};\nvar _elm_lang$core$Platform$Router = {ctor: 'Router'};\nvar _elm_lang$core$Platform_Cmd$batch = _elm_lang$core$Native_Platform.batch;\nvar _elm_lang$core$Platform_Cmd$none = _elm_lang$core$Platform_Cmd$batch(\n\t_elm_lang$core$Native_List.fromArray(\n\t\t[]));\nvar _elm_lang$core$Platform_Cmd_ops = _elm_lang$core$Platform_Cmd_ops || {};\n_elm_lang$core$Platform_Cmd_ops['!'] = F2(\n\tfunction (model, commands) {\n\t\treturn {\n\t\t\tctor: '_Tuple2',\n\t\t\t_0: model,\n\t\t\t_1: _elm_lang$core$Platform_Cmd$batch(commands)\n\t\t};\n\t});\nvar _elm_lang$core$Platform_Cmd$map = _elm_lang$core$Native_Platform.map;\nvar _elm_lang$core$Platform_Cmd$Cmd = {ctor: 'Cmd'};\nvar _elm_lang$core$Platform_Sub$batch = _elm_lang$core$Native_Platform.batch;\nvar _elm_lang$core$Platform_Sub$none = _elm_lang$core$Platform_Sub$batch(\n\t_elm_lang$core$Native_List.fromArray(\n\t\t[]));\nvar _elm_lang$core$Platform_Sub$map = _elm_lang$core$Native_Platform.map;\nvar _elm_lang$core$Platform_Sub$Sub = {ctor: 'Sub'};\n//import Maybe, Native.List, Native.Utils, Result //\n\nvar _elm_lang$core$Native_String = function() {\n\nfunction isEmpty(str)\n{\n\treturn str.length === 0;\n}\nfunction cons(chr, str)\n{\n\treturn chr + str;\n}\nfunction uncons(str)\n{\n\tvar hd = str[0];\n\tif (hd)\n\t{\n\t\treturn _elm_lang$core$Maybe$Just(_elm_lang$core$Native_Utils.Tuple2(_elm_lang$core$Native_Utils.chr(hd), str.slice(1)));\n\t}\n\treturn _elm_lang$core$Maybe$Nothing;\n}\nfunction append(a, b)\n{\n\treturn a + b;\n}\nfunction concat(strs)\n{\n\treturn _elm_lang$core$Native_List.toArray(strs).join('');\n}\nfunction length(str)\n{\n\treturn str.length;\n}\nfunction map(f, str)\n{\n\tvar out = str.split('');\n\tfor (var i = out.length; i--; )\n\t{\n\t\tout[i] = f(_elm_lang$core$Native_Utils.chr(out[i]));\n\t}\n\treturn out.join('');\n}\nfunction filter(pred, str)\n{\n\treturn str.split('').map(_elm_lang$core$Native_Utils.chr).filter(pred).join('');\n}\nfunction reverse(str)\n{\n\treturn str.split('').reverse().join('');\n}\nfunction foldl(f, b, str)\n{\n\tvar len = str.length;\n\tfor (var i = 0; i < len; ++i)\n\t{\n\t\tb = A2(f, _elm_lang$core$Native_Utils.chr(str[i]), b);\n\t}\n\treturn b;\n}\nfunction foldr(f, b, str)\n{\n\tfor (var i = str.length; i--; )\n\t{\n\t\tb = A2(f, _elm_lang$core$Native_Utils.chr(str[i]), b);\n\t}\n\treturn b;\n}\nfunction split(sep, str)\n{\n\treturn _elm_lang$core$Native_List.fromArray(str.split(sep));\n}\nfunction join(sep, strs)\n{\n\treturn _elm_lang$core$Native_List.toArray(strs).join(sep);\n}\nfunction repeat(n, str)\n{\n\tvar result = '';\n\twhile (n > 0)\n\t{\n\t\tif (n & 1)\n\t\t{\n\t\t\tresult += str;\n\t\t}\n\t\tn >>= 1, str += str;\n\t}\n\treturn result;\n}\nfunction slice(start, end, str)\n{\n\treturn str.slice(start, end);\n}\nfunction left(n, str)\n{\n\treturn n < 1 ? '' : str.slice(0, n);\n}\nfunction right(n, str)\n{\n\treturn n < 1 ? '' : str.slice(-n);\n}\nfunction dropLeft(n, str)\n{\n\treturn n < 1 ? str : str.slice(n);\n}\nfunction dropRight(n, str)\n{\n\treturn n < 1 ? str : str.slice(0, -n);\n}\nfunction pad(n, chr, str)\n{\n\tvar half = (n - str.length) / 2;\n\treturn repeat(Math.ceil(half), chr) + str + repeat(half | 0, chr);\n}\nfunction padRight(n, chr, str)\n{\n\treturn str + repeat(n - str.length, chr);\n}\nfunction padLeft(n, chr, str)\n{\n\treturn repeat(n - str.length, chr) + str;\n}\n\nfunction trim(str)\n{\n\treturn str.trim();\n}\nfunction trimLeft(str)\n{\n\treturn str.replace(/^\\s+/, '');\n}\nfunction trimRight(str)\n{\n\treturn str.replace(/\\s+$/, '');\n}\n\nfunction words(str)\n{\n\treturn _elm_lang$core$Native_List.fromArray(str.trim().split(/\\s+/g));\n}\nfunction lines(str)\n{\n\treturn _elm_lang$core$Native_List.fromArray(str.split(/\\r\\n|\\r|\\n/g));\n}\n\nfunction toUpper(str)\n{\n\treturn str.toUpperCase();\n}\nfunction toLower(str)\n{\n\treturn str.toLowerCase();\n}\n\nfunction any(pred, str)\n{\n\tfor (var i = str.length; i--; )\n\t{\n\t\tif (pred(_elm_lang$core$Native_Utils.chr(str[i])))\n\t\t{\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\nfunction all(pred, str)\n{\n\tfor (var i = str.length; i--; )\n\t{\n\t\tif (!pred(_elm_lang$core$Native_Utils.chr(str[i])))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\nfunction contains(sub, str)\n{\n\treturn str.indexOf(sub) > -1;\n}\nfunction startsWith(sub, str)\n{\n\treturn str.indexOf(sub) === 0;\n}\nfunction endsWith(sub, str)\n{\n\treturn str.length >= sub.length &&\n\t\tstr.lastIndexOf(sub) === str.length - sub.length;\n}\nfunction indexes(sub, str)\n{\n\tvar subLen = sub.length;\n\t\n\tif (subLen < 1)\n\t{\n\t\treturn _elm_lang$core$Native_List.Nil;\n\t}\n\n\tvar i = 0;\n\tvar is = [];\n\n\twhile ((i = str.indexOf(sub, i)) > -1)\n\t{\n\t\tis.push(i);\n\t\ti = i + subLen;\n\t}\t\n\t\n\treturn _elm_lang$core$Native_List.fromArray(is);\n}\n\nfunction toInt(s)\n{\n\tvar len = s.length;\n\tif (len === 0)\n\t{\n\t\treturn _elm_lang$core$Result$Err(\"could not convert string '\" + s + \"' to an Int\" );\n\t}\n\tvar start = 0;\n\tif (s[0] === '-')\n\t{\n\t\tif (len === 1)\n\t\t{\n\t\t\treturn _elm_lang$core$Result$Err(\"could not convert string '\" + s + \"' to an Int\" );\n\t\t}\n\t\tstart = 1;\n\t}\n\tfor (var i = start; i < len; ++i)\n\t{\n\t\tvar c = s[i];\n\t\tif (c < '0' || '9' < c)\n\t\t{\n\t\t\treturn _elm_lang$core$Result$Err(\"could not convert string '\" + s + \"' to an Int\" );\n\t\t}\n\t}\n\treturn _elm_lang$core$Result$Ok(parseInt(s, 10));\n}\n\nfunction toFloat(s)\n{\n\tvar len = s.length;\n\tif (len === 0)\n\t{\n\t\treturn _elm_lang$core$Result$Err(\"could not convert string '\" + s + \"' to a Float\" );\n\t}\n\tvar start = 0;\n\tif (s[0] === '-')\n\t{\n\t\tif (len === 1)\n\t\t{\n\t\t\treturn _elm_lang$core$Result$Err(\"could not convert string '\" + s + \"' to a Float\" );\n\t\t}\n\t\tstart = 1;\n\t}\n\tvar dotCount = 0;\n\tfor (var i = start; i < len; ++i)\n\t{\n\t\tvar c = s[i];\n\t\tif ('0' <= c && c <= '9')\n\t\t{\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === '.')\n\t\t{\n\t\t\tdotCount += 1;\n\t\t\tif (dotCount <= 1)\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\treturn _elm_lang$core$Result$Err(\"could not convert string '\" + s + \"' to a Float\" );\n\t}\n\treturn _elm_lang$core$Result$Ok(parseFloat(s));\n}\n\nfunction toList(str)\n{\n\treturn _elm_lang$core$Native_List.fromArray(str.split('').map(_elm_lang$core$Native_Utils.chr));\n}\nfunction fromList(chars)\n{\n\treturn _elm_lang$core$Native_List.toArray(chars).join('');\n}\n\nreturn {\n\tisEmpty: isEmpty,\n\tcons: F2(cons),\n\tuncons: uncons,\n\tappend: F2(append),\n\tconcat: concat,\n\tlength: length,\n\tmap: F2(map),\n\tfilter: F2(filter),\n\treverse: reverse,\n\tfoldl: F3(foldl),\n\tfoldr: F3(foldr),\n\n\tsplit: F2(split),\n\tjoin: F2(join),\n\trepeat: F2(repeat),\n\n\tslice: F3(slice),\n\tleft: F2(left),\n\tright: F2(right),\n\tdropLeft: F2(dropLeft),\n\tdropRight: F2(dropRight),\n\n\tpad: F3(pad),\n\tpadLeft: F3(padLeft),\n\tpadRight: F3(padRight),\n\n\ttrim: trim,\n\ttrimLeft: trimLeft,\n\ttrimRight: trimRight,\n\n\twords: words,\n\tlines: lines,\n\n\ttoUpper: toUpper,\n\ttoLower: toLower,\n\n\tany: F2(any),\n\tall: F2(all),\n\n\tcontains: F2(contains),\n\tstartsWith: F2(startsWith),\n\tendsWith: F2(endsWith),\n\tindexes: F2(indexes),\n\n\ttoInt: toInt,\n\ttoFloat: toFloat,\n\ttoList: toList,\n\tfromList: fromList\n};\n\n}();\n//import Native.Utils //\n\nvar _elm_lang$core$Native_Char = function() {\n\nreturn {\n\tfromCode: function(c) { return _elm_lang$core$Native_Utils.chr(String.fromCharCode(c)); },\n\ttoCode: function(c) { return c.charCodeAt(0); },\n\ttoUpper: function(c) { return _elm_lang$core$Native_Utils.chr(c.toUpperCase()); },\n\ttoLower: function(c) { return _elm_lang$core$Native_Utils.chr(c.toLowerCase()); },\n\ttoLocaleUpper: function(c) { return _elm_lang$core$Native_Utils.chr(c.toLocaleUpperCase()); },\n\ttoLocaleLower: function(c) { return _elm_lang$core$Native_Utils.chr(c.toLocaleLowerCase()); }\n};\n\n}();var _elm_lang$core$Char$fromCode = _elm_lang$core$Native_Char.fromCode;\nvar _elm_lang$core$Char$toCode = _elm_lang$core$Native_Char.toCode;\nvar _elm_lang$core$Char$toLocaleLower = _elm_lang$core$Native_Char.toLocaleLower;\nvar _elm_lang$core$Char$toLocaleUpper = _elm_lang$core$Native_Char.toLocaleUpper;\nvar _elm_lang$core$Char$toLower = _elm_lang$core$Native_Char.toLower;\nvar _elm_lang$core$Char$toUpper = _elm_lang$core$Native_Char.toUpper;\nvar _elm_lang$core$Char$isBetween = F3(\n\tfunction (low, high, $char) {\n\t\tvar code = _elm_lang$core$Char$toCode($char);\n\t\treturn (_elm_lang$core$Native_Utils.cmp(\n\t\t\tcode,\n\t\t\t_elm_lang$core$Char$toCode(low)) > -1) && (_elm_lang$core$Native_Utils.cmp(\n\t\t\tcode,\n\t\t\t_elm_lang$core$Char$toCode(high)) < 1);\n\t});\nvar _elm_lang$core$Char$isUpper = A2(\n\t_elm_lang$core$Char$isBetween,\n\t_elm_lang$core$Native_Utils.chr('A'),\n\t_elm_lang$core$Native_Utils.chr('Z'));\nvar _elm_lang$core$Char$isLower = A2(\n\t_elm_lang$core$Char$isBetween,\n\t_elm_lang$core$Native_Utils.chr('a'),\n\t_elm_lang$core$Native_Utils.chr('z'));\nvar _elm_lang$core$Char$isDigit = A2(\n\t_elm_lang$core$Char$isBetween,\n\t_elm_lang$core$Native_Utils.chr('0'),\n\t_elm_lang$core$Native_Utils.chr('9'));\nvar _elm_lang$core$Char$isOctDigit = A2(\n\t_elm_lang$core$Char$isBetween,\n\t_elm_lang$core$Native_Utils.chr('0'),\n\t_elm_lang$core$Native_Utils.chr('7'));\nvar _elm_lang$core$Char$isHexDigit = function ($char) {\n\treturn _elm_lang$core$Char$isDigit($char) || (A3(\n\t\t_elm_lang$core$Char$isBetween,\n\t\t_elm_lang$core$Native_Utils.chr('a'),\n\t\t_elm_lang$core$Native_Utils.chr('f'),\n\t\t$char) || A3(\n\t\t_elm_lang$core$Char$isBetween,\n\t\t_elm_lang$core$Native_Utils.chr('A'),\n\t\t_elm_lang$core$Native_Utils.chr('F'),\n\t\t$char));\n};\nvar _elm_lang$core$String$fromList = _elm_lang$core$Native_String.fromList;\nvar _elm_lang$core$String$toList = _elm_lang$core$Native_String.toList;\nvar _elm_lang$core$String$toFloat = _elm_lang$core$Native_String.toFloat;\nvar _elm_lang$core$String$toInt = _elm_lang$core$Native_String.toInt;\nvar _elm_lang$core$String$indices = _elm_lang$core$Native_String.indexes;\nvar _elm_lang$core$String$indexes = _elm_lang$core$Native_String.indexes;\nvar _elm_lang$core$String$endsWith = _elm_lang$core$Native_String.endsWith;\nvar _elm_lang$core$String$startsWith = _elm_lang$core$Native_String.startsWith;\nvar _elm_lang$core$String$contains = _elm_lang$core$Native_String.contains;\nvar _elm_lang$core$String$all = _elm_lang$core$Native_String.all;\nvar _elm_lang$core$String$any = _elm_lang$core$Native_String.any;\nvar _elm_lang$core$String$toLower = _elm_lang$core$Native_String.toLower;\nvar _elm_lang$core$String$toUpper = _elm_lang$core$Native_String.toUpper;\nvar _elm_lang$core$String$lines = _elm_lang$core$Native_String.lines;\nvar _elm_lang$core$String$words = _elm_lang$core$Native_String.words;\nvar _elm_lang$core$String$trimRight = _elm_lang$core$Native_String.trimRight;\nvar _elm_lang$core$String$trimLeft = _elm_lang$core$Native_String.trimLeft;\nvar _elm_lang$core$String$trim = _elm_lang$core$Native_String.trim;\nvar _elm_lang$core$String$padRight = _elm_lang$core$Native_String.padRight;\nvar _elm_lang$core$String$padLeft = _elm_lang$core$Native_String.padLeft;\nvar _elm_lang$core$String$pad = _elm_lang$core$Native_String.pad;\nvar _elm_lang$core$String$dropRight = _elm_lang$core$Native_String.dropRight;\nvar _elm_lang$core$String$dropLeft = _elm_lang$core$Native_String.dropLeft;\nvar _elm_lang$core$String$right = _elm_lang$core$Native_String.right;\nvar _elm_lang$core$String$left = _elm_lang$core$Native_String.left;\nvar _elm_lang$core$String$slice = _elm_lang$core$Native_String.slice;\nvar _elm_lang$core$String$repeat = _elm_lang$core$Native_String.repeat;\nvar _elm_lang$core$String$join = _elm_lang$core$Native_String.join;\nvar _elm_lang$core$String$split = _elm_lang$core$Native_String.split;\nvar _elm_lang$core$String$foldr = _elm_lang$core$Native_String.foldr;\nvar _elm_lang$core$String$foldl = _elm_lang$core$Native_String.foldl;\nvar _elm_lang$core$String$reverse = _elm_lang$core$Native_String.reverse;\nvar _elm_lang$core$String$filter = _elm_lang$core$Native_String.filter;\nvar _elm_lang$core$String$map = _elm_lang$core$Native_String.map;\nvar _elm_lang$core$String$length = _elm_lang$core$Native_String.length;\nvar _elm_lang$core$String$concat = _elm_lang$core$Native_String.concat;\nvar _elm_lang$core$String$append = _elm_lang$core$Native_String.append;\nvar _elm_lang$core$String$uncons = _elm_lang$core$Native_String.uncons;\nvar _elm_lang$core$String$cons = _elm_lang$core$Native_String.cons;\nvar _elm_lang$core$String$fromChar = function ($char) {\n\treturn A2(_elm_lang$core$String$cons, $char, '');\n};\nvar _elm_lang$core$String$isEmpty = _elm_lang$core$Native_String.isEmpty;\nvar _elm_lang$html$Html$text = _elm_lang$virtual_dom$VirtualDom$text;\nvar _elm_lang$html$Html$node = _elm_lang$virtual_dom$VirtualDom$node;\nvar _elm_lang$html$Html$body = _elm_lang$html$Html$node('body');\nvar _elm_lang$html$Html$section = _elm_lang$html$Html$node('section');\nvar _elm_lang$html$Html$nav = _elm_lang$html$Html$node('nav');\nvar _elm_lang$html$Html$article = _elm_lang$html$Html$node('article');\nvar _elm_lang$html$Html$aside = _elm_lang$html$Html$node('aside');\nvar _elm_lang$html$Html$h1 = _elm_lang$html$Html$node('h1');\nvar _elm_lang$html$Html$h2 = _elm_lang$html$Html$node('h2');\nvar _elm_lang$html$Html$h3 = _elm_lang$html$Html$node('h3');\nvar _elm_lang$html$Html$h4 = _elm_lang$html$Html$node('h4');\nvar _elm_lang$html$Html$h5 = _elm_lang$html$Html$node('h5');\nvar _elm_lang$html$Html$h6 = _elm_lang$html$Html$node('h6');\nvar _elm_lang$html$Html$header = _elm_lang$html$Html$node('header');\nvar _elm_lang$html$Html$footer = _elm_lang$html$Html$node('footer');\nvar _elm_lang$html$Html$address = _elm_lang$html$Html$node('address');\nvar _elm_lang$html$Html$main$ = _elm_lang$html$Html$node('main');\nvar _elm_lang$html$Html$p = _elm_lang$html$Html$node('p');\nvar _elm_lang$html$Html$hr = _elm_lang$html$Html$node('hr');\nvar _elm_lang$html$Html$pre = _elm_lang$html$Html$node('pre');\nvar _elm_lang$html$Html$blockquote = _elm_lang$html$Html$node('blockquote');\nvar _elm_lang$html$Html$ol = _elm_lang$html$Html$node('ol');\nvar _elm_lang$html$Html$ul = _elm_lang$html$Html$node('ul');\nvar _elm_lang$html$Html$li = _elm_lang$html$Html$node('li');\nvar _elm_lang$html$Html$dl = _elm_lang$html$Html$node('dl');\nvar _elm_lang$html$Html$dt = _elm_lang$html$Html$node('dt');\nvar _elm_lang$html$Html$dd = _elm_lang$html$Html$node('dd');\nvar _elm_lang$html$Html$figure = _elm_lang$html$Html$node('figure');\nvar _elm_lang$html$Html$figcaption = _elm_lang$html$Html$node('figcaption');\nvar _elm_lang$html$Html$div = _elm_lang$html$Html$node('div');\nvar _elm_lang$html$Html$a = _elm_lang$html$Html$node('a');\nvar _elm_lang$html$Html$em = _elm_lang$html$Html$node('em');\nvar _elm_lang$html$Html$strong = _elm_lang$html$Html$node('strong');\nvar _elm_lang$html$Html$small = _elm_lang$html$Html$node('small');\nvar _elm_lang$html$Html$s = _elm_lang$html$Html$node('s');\nvar _elm_lang$html$Html$cite = _elm_lang$html$Html$node('cite');\nvar _elm_lang$html$Html$q = _elm_lang$html$Html$node('q');\nvar _elm_lang$html$Html$dfn = _elm_lang$html$Html$node('dfn');\nvar _elm_lang$html$Html$abbr = _elm_lang$html$Html$node('abbr');\nvar _elm_lang$html$Html$time = _elm_lang$html$Html$node('time');\nvar _elm_lang$html$Html$code = _elm_lang$html$Html$node('code');\nvar _elm_lang$html$Html$var = _elm_lang$html$Html$node('var');\nvar _elm_lang$html$Html$samp = _elm_lang$html$Html$node('samp');\nvar _elm_lang$html$Html$kbd = _elm_lang$html$Html$node('kbd');\nvar _elm_lang$html$Html$sub = _elm_lang$html$Html$node('sub');\nvar _elm_lang$html$Html$sup = _elm_lang$html$Html$node('sup');\nvar _elm_lang$html$Html$i = _elm_lang$html$Html$node('i');\nvar _elm_lang$html$Html$b = _elm_lang$html$Html$node('b');\nvar _elm_lang$html$Html$u = _elm_lang$html$Html$node('u');\nvar _elm_lang$html$Html$mark = _elm_lang$html$Html$node('mark');\nvar _elm_lang$html$Html$ruby = _elm_lang$html$Html$node('ruby');\nvar _elm_lang$html$Html$rt = _elm_lang$html$Html$node('rt');\nvar _elm_lang$html$Html$rp = _elm_lang$html$Html$node('rp');\nvar _elm_lang$html$Html$bdi = _elm_lang$html$Html$node('bdi');\nvar _elm_lang$html$Html$bdo = _elm_lang$html$Html$node('bdo');\nvar _elm_lang$html$Html$span = _elm_lang$html$Html$node('span');\nvar _elm_lang$html$Html$br = _elm_lang$html$Html$node('br');\nvar _elm_lang$html$Html$wbr = _elm_lang$html$Html$node('wbr');\nvar _elm_lang$html$Html$ins = _elm_lang$html$Html$node('ins');\nvar _elm_lang$html$Html$del = _elm_lang$html$Html$node('del');\nvar _elm_lang$html$Html$img = _elm_lang$html$Html$node('img');\nvar _elm_lang$html$Html$iframe = _elm_lang$html$Html$node('iframe');\nvar _elm_lang$html$Html$embed = _elm_lang$html$Html$node('embed');\nvar _elm_lang$html$Html$object = _elm_lang$html$Html$node('object');\nvar _elm_lang$html$Html$param = _elm_lang$html$Html$node('param');\nvar _elm_lang$html$Html$video = _elm_lang$html$Html$node('video');\nvar _elm_lang$html$Html$audio = _elm_lang$html$Html$node('audio');\nvar _elm_lang$html$Html$source = _elm_lang$html$Html$node('source');\nvar _elm_lang$html$Html$track = _elm_lang$html$Html$node('track');\nvar _elm_lang$html$Html$canvas = _elm_lang$html$Html$node('canvas');\nvar _elm_lang$html$Html$svg = _elm_lang$html$Html$node('svg');\nvar _elm_lang$html$Html$math = _elm_lang$html$Html$node('math');\nvar _elm_lang$html$Html$table = _elm_lang$html$Html$node('table');\nvar _elm_lang$html$Html$caption = _elm_lang$html$Html$node('caption');\nvar _elm_lang$html$Html$colgroup = _elm_lang$html$Html$node('colgroup');\nvar _elm_lang$html$Html$col = _elm_lang$html$Html$node('col');\nvar _elm_lang$html$Html$tbody = _elm_lang$html$Html$node('tbody');\nvar _elm_lang$html$Html$thead = _elm_lang$html$Html$node('thead');\nvar _elm_lang$html$Html$tfoot = _elm_lang$html$Html$node('tfoot');\nvar _elm_lang$html$Html$tr = _elm_lang$html$Html$node('tr');\nvar _elm_lang$html$Html$td = _elm_lang$html$Html$node('td');\nvar _elm_lang$html$Html$th = _elm_lang$html$Html$node('th');\nvar _elm_lang$html$Html$form = _elm_lang$html$Html$node('form');\nvar _elm_lang$html$Html$fieldset = _elm_lang$html$Html$node('fieldset');\nvar _elm_lang$html$Html$legend = _elm_lang$html$Html$node('legend');\nvar _elm_lang$html$Html$label = _elm_lang$html$Html$node('label');\nvar _elm_lang$html$Html$input = _elm_lang$html$Html$node('input');\nvar _elm_lang$html$Html$button = _elm_lang$html$Html$node('button');\nvar _elm_lang$html$Html$select = _elm_lang$html$Html$node('select');\nvar _elm_lang$html$Html$datalist = _elm_lang$html$Html$node('datalist');\nvar _elm_lang$html$Html$optgroup = _elm_lang$html$Html$node('optgroup');\nvar _elm_lang$html$Html$option = _elm_lang$html$Html$node('option');\nvar _elm_lang$html$Html$textarea = _elm_lang$html$Html$node('textarea');\nvar _elm_lang$html$Html$keygen = _elm_lang$html$Html$node('keygen');\nvar _elm_lang$html$Html$output = _elm_lang$html$Html$node('output');\nvar _elm_lang$html$Html$progress = _elm_lang$html$Html$node('progress');\nvar _elm_lang$html$Html$meter = _elm_lang$html$Html$node('meter');\nvar _elm_lang$html$Html$details = _elm_lang$html$Html$node('details');\nvar _elm_lang$html$Html$summary = _elm_lang$html$Html$node('summary');\nvar _elm_lang$html$Html$menuitem = _elm_lang$html$Html$node('menuitem');\nvar _elm_lang$html$Html$menu = _elm_lang$html$Html$node('menu');\nvar _elm_lang$html$Html_App$programWithFlags = _elm_lang$virtual_dom$VirtualDom$programWithFlags;\nvar _elm_lang$html$Html_App$program = function (app) {\n\treturn _elm_lang$html$Html_App$programWithFlags(\n\t\t_elm_lang$core$Native_Utils.update(\n\t\t\tapp,\n\t\t\t{\n\t\t\t\tinit: function (_p0) {\n\t\t\t\t\treturn app.init;\n\t\t\t\t}\n\t\t\t}));\n};\nvar _elm_lang$html$Html_App$beginnerProgram = function (_p1) {\n\tvar _p2 = _p1;\n\treturn _elm_lang$html$Html_App$programWithFlags(\n\t\t{\n\t\t\tinit: function (_p3) {\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t_p2.model,\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]));\n\t\t\t},\n\t\t\tupdate: F2(\n\t\t\t\tfunction (msg, model) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\tA2(_p2.update, msg, model),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]));\n\t\t\t\t}),\n\t\t\tview: _p2.view,\n\t\t\tsubscriptions: function (_p4) {\n\t\t\t\treturn _elm_lang$core$Platform_Sub$none;\n\t\t\t}\n\t\t});\n};\nvar _elm_lang$html$Html_App$map = _elm_lang$virtual_dom$VirtualDom$map;\n//import Native.List //\n\nvar _elm_lang$core$Native_Array = function() {\n\n// A RRB-Tree has two distinct data types.\n// Leaf -> \"height\" is always 0\n// \"table\" is an array of elements\n// Node -> \"height\" is always greater than 0\n// \"table\" is an array of child nodes\n// \"lengths\" is an array of accumulated lengths of the child nodes\n\n// M is the maximal table size. 32 seems fast. E is the allowed increase\n// of search steps when concatting to find an index. Lower values will\n// decrease balancing, but will increase search steps.\nvar M = 32;\nvar E = 2;\n\n// An empty array.\nvar empty = {\n\tctor: '_Array',\n\theight: 0,\n\ttable: []\n};\n\n\nfunction get(i, array)\n{\n\tif (i < 0 || i >= length(array))\n\t{\n\t\tthrow new Error(\n\t\t\t'Index ' + i + ' is out of range. Check the length of ' +\n\t\t\t'your array first or use getMaybe or getWithDefault.');\n\t}\n\treturn unsafeGet(i, array);\n}\n\n\nfunction unsafeGet(i, array)\n{\n\tfor (var x = array.height; x > 0; x--)\n\t{\n\t\tvar slot = i >> (x * 5);\n\t\twhile (array.lengths[slot] <= i)\n\t\t{\n\t\t\tslot++;\n\t\t}\n\t\tif (slot > 0)\n\t\t{\n\t\t\ti -= array.lengths[slot - 1];\n\t\t}\n\t\tarray = array.table[slot];\n\t}\n\treturn array.table[i];\n}\n\n\n// Sets the value at the index i. Only the nodes leading to i will get\n// copied and updated.\nfunction set(i, item, array)\n{\n\tif (i < 0 || length(array) <= i)\n\t{\n\t\treturn array;\n\t}\n\treturn unsafeSet(i, item, array);\n}\n\n\nfunction unsafeSet(i, item, array)\n{\n\tarray = nodeCopy(array);\n\n\tif (array.height === 0)\n\t{\n\t\tarray.table[i] = item;\n\t}\n\telse\n\t{\n\t\tvar slot = getSlot(i, array);\n\t\tif (slot > 0)\n\t\t{\n\t\t\ti -= array.lengths[slot - 1];\n\t\t}\n\t\tarray.table[slot] = unsafeSet(i, item, array.table[slot]);\n\t}\n\treturn array;\n}\n\n\nfunction initialize(len, f)\n{\n\tif (len <= 0)\n\t{\n\t\treturn empty;\n\t}\n\tvar h = Math.floor( Math.log(len) / Math.log(M) );\n\treturn initialize_(f, h, 0, len);\n}\n\nfunction initialize_(f, h, from, to)\n{\n\tif (h === 0)\n\t{\n\t\tvar table = new Array((to - from) % (M + 1));\n\t\tfor (var i = 0; i < table.length; i++)\n\t\t{\n\t\t table[i] = f(from + i);\n\t\t}\n\t\treturn {\n\t\t\tctor: '_Array',\n\t\t\theight: 0,\n\t\t\ttable: table\n\t\t};\n\t}\n\n\tvar step = Math.pow(M, h);\n\tvar table = new Array(Math.ceil((to - from) / step));\n\tvar lengths = new Array(table.length);\n\tfor (var i = 0; i < table.length; i++)\n\t{\n\t\ttable[i] = initialize_(f, h - 1, from + (i * step), Math.min(from + ((i + 1) * step), to));\n\t\tlengths[i] = length(table[i]) + (i > 0 ? lengths[i-1] : 0);\n\t}\n\treturn {\n\t\tctor: '_Array',\n\t\theight: h,\n\t\ttable: table,\n\t\tlengths: lengths\n\t};\n}\n\nfunction fromList(list)\n{\n\tif (list.ctor === '[]')\n\t{\n\t\treturn empty;\n\t}\n\n\t// Allocate M sized blocks (table) and write list elements to it.\n\tvar table = new Array(M);\n\tvar nodes = [];\n\tvar i = 0;\n\n\twhile (list.ctor !== '[]')\n\t{\n\t\ttable[i] = list._0;\n\t\tlist = list._1;\n\t\ti++;\n\n\t\t// table is full, so we can push a leaf containing it into the\n\t\t// next node.\n\t\tif (i === M)\n\t\t{\n\t\t\tvar leaf = {\n\t\t\t\tctor: '_Array',\n\t\t\t\theight: 0,\n\t\t\t\ttable: table\n\t\t\t};\n\t\t\tfromListPush(leaf, nodes);\n\t\t\ttable = new Array(M);\n\t\t\ti = 0;\n\t\t}\n\t}\n\n\t// Maybe there is something left on the table.\n\tif (i > 0)\n\t{\n\t\tvar leaf = {\n\t\t\tctor: '_Array',\n\t\t\theight: 0,\n\t\t\ttable: table.splice(0, i)\n\t\t};\n\t\tfromListPush(leaf, nodes);\n\t}\n\n\t// Go through all of the nodes and eventually push them into higher nodes.\n\tfor (var h = 0; h < nodes.length - 1; h++)\n\t{\n\t\tif (nodes[h].table.length > 0)\n\t\t{\n\t\t\tfromListPush(nodes[h], nodes);\n\t\t}\n\t}\n\n\tvar head = nodes[nodes.length - 1];\n\tif (head.height > 0 && head.table.length === 1)\n\t{\n\t\treturn head.table[0];\n\t}\n\telse\n\t{\n\t\treturn head;\n\t}\n}\n\n// Push a node into a higher node as a child.\nfunction fromListPush(toPush, nodes)\n{\n\tvar h = toPush.height;\n\n\t// Maybe the node on this height does not exist.\n\tif (nodes.length === h)\n\t{\n\t\tvar node = {\n\t\t\tctor: '_Array',\n\t\t\theight: h + 1,\n\t\t\ttable: [],\n\t\t\tlengths: []\n\t\t};\n\t\tnodes.push(node);\n\t}\n\n\tnodes[h].table.push(toPush);\n\tvar len = length(toPush);\n\tif (nodes[h].lengths.length > 0)\n\t{\n\t\tlen += nodes[h].lengths[nodes[h].lengths.length - 1];\n\t}\n\tnodes[h].lengths.push(len);\n\n\tif (nodes[h].table.length === M)\n\t{\n\t\tfromListPush(nodes[h], nodes);\n\t\tnodes[h] = {\n\t\t\tctor: '_Array',\n\t\t\theight: h + 1,\n\t\t\ttable: [],\n\t\t\tlengths: []\n\t\t};\n\t}\n}\n\n// Pushes an item via push_ to the bottom right of a tree.\nfunction push(item, a)\n{\n\tvar pushed = push_(item, a);\n\tif (pushed !== null)\n\t{\n\t\treturn pushed;\n\t}\n\n\tvar newTree = create(item, a.height);\n\treturn siblise(a, newTree);\n}\n\n// Recursively tries to push an item to the bottom-right most\n// tree possible. If there is no space left for the item,\n// null will be returned.\nfunction push_(item, a)\n{\n\t// Handle resursion stop at leaf level.\n\tif (a.height === 0)\n\t{\n\t\tif (a.table.length < M)\n\t\t{\n\t\t\tvar newA = {\n\t\t\t\tctor: '_Array',\n\t\t\t\theight: 0,\n\t\t\t\ttable: a.table.slice()\n\t\t\t};\n\t\t\tnewA.table.push(item);\n\t\t\treturn newA;\n\t\t}\n\t\telse\n\t\t{\n\t\t return null;\n\t\t}\n\t}\n\n\t// Recursively push\n\tvar pushed = push_(item, botRight(a));\n\n\t// There was space in the bottom right tree, so the slot will\n\t// be updated.\n\tif (pushed !== null)\n\t{\n\t\tvar newA = nodeCopy(a);\n\t\tnewA.table[newA.table.length - 1] = pushed;\n\t\tnewA.lengths[newA.lengths.length - 1]++;\n\t\treturn newA;\n\t}\n\n\t// When there was no space left, check if there is space left\n\t// for a new slot with a tree which contains only the item\n\t// at the bottom.\n\tif (a.table.length < M)\n\t{\n\t\tvar newSlot = create(item, a.height - 1);\n\t\tvar newA = nodeCopy(a);\n\t\tnewA.table.push(newSlot);\n\t\tnewA.lengths.push(newA.lengths[newA.lengths.length - 1] + length(newSlot));\n\t\treturn newA;\n\t}\n\telse\n\t{\n\t\treturn null;\n\t}\n}\n\n// Converts an array into a list of elements.\nfunction toList(a)\n{\n\treturn toList_(_elm_lang$core$Native_List.Nil, a);\n}\n\nfunction toList_(list, a)\n{\n\tfor (var i = a.table.length - 1; i >= 0; i--)\n\t{\n\t\tlist =\n\t\t\ta.height === 0\n\t\t\t\t? _elm_lang$core$Native_List.Cons(a.table[i], list)\n\t\t\t\t: toList_(list, a.table[i]);\n\t}\n\treturn list;\n}\n\n// Maps a function over the elements of an array.\nfunction map(f, a)\n{\n\tvar newA = {\n\t\tctor: '_Array',\n\t\theight: a.height,\n\t\ttable: new Array(a.table.length)\n\t};\n\tif (a.height > 0)\n\t{\n\t\tnewA.lengths = a.lengths;\n\t}\n\tfor (var i = 0; i < a.table.length; i++)\n\t{\n\t\tnewA.table[i] =\n\t\t\ta.height === 0\n\t\t\t\t? f(a.table[i])\n\t\t\t\t: map(f, a.table[i]);\n\t}\n\treturn newA;\n}\n\n// Maps a function over the elements with their index as first argument.\nfunction indexedMap(f, a)\n{\n\treturn indexedMap_(f, a, 0);\n}\n\nfunction indexedMap_(f, a, from)\n{\n\tvar newA = {\n\t\tctor: '_Array',\n\t\theight: a.height,\n\t\ttable: new Array(a.table.length)\n\t};\n\tif (a.height > 0)\n\t{\n\t\tnewA.lengths = a.lengths;\n\t}\n\tfor (var i = 0; i < a.table.length; i++)\n\t{\n\t\tnewA.table[i] =\n\t\t\ta.height === 0\n\t\t\t\t? A2(f, from + i, a.table[i])\n\t\t\t\t: indexedMap_(f, a.table[i], i == 0 ? from : from + a.lengths[i - 1]);\n\t}\n\treturn newA;\n}\n\nfunction foldl(f, b, a)\n{\n\tif (a.height === 0)\n\t{\n\t\tfor (var i = 0; i < a.table.length; i++)\n\t\t{\n\t\t\tb = A2(f, a.table[i], b);\n\t\t}\n\t}\n\telse\n\t{\n\t\tfor (var i = 0; i < a.table.length; i++)\n\t\t{\n\t\t\tb = foldl(f, b, a.table[i]);\n\t\t}\n\t}\n\treturn b;\n}\n\nfunction foldr(f, b, a)\n{\n\tif (a.height === 0)\n\t{\n\t\tfor (var i = a.table.length; i--; )\n\t\t{\n\t\t\tb = A2(f, a.table[i], b);\n\t\t}\n\t}\n\telse\n\t{\n\t\tfor (var i = a.table.length; i--; )\n\t\t{\n\t\t\tb = foldr(f, b, a.table[i]);\n\t\t}\n\t}\n\treturn b;\n}\n\n// TODO: currently, it slices the right, then the left. This can be\n// optimized.\nfunction slice(from, to, a)\n{\n\tif (from < 0)\n\t{\n\t\tfrom += length(a);\n\t}\n\tif (to < 0)\n\t{\n\t\tto += length(a);\n\t}\n\treturn sliceLeft(from, sliceRight(to, a));\n}\n\nfunction sliceRight(to, a)\n{\n\tif (to === length(a))\n\t{\n\t\treturn a;\n\t}\n\n\t// Handle leaf level.\n\tif (a.height === 0)\n\t{\n\t\tvar newA = { ctor:'_Array', height:0 };\n\t\tnewA.table = a.table.slice(0, to);\n\t\treturn newA;\n\t}\n\n\t// Slice the right recursively.\n\tvar right = getSlot(to, a);\n\tvar sliced = sliceRight(to - (right > 0 ? a.lengths[right - 1] : 0), a.table[right]);\n\n\t// Maybe the a node is not even needed, as sliced contains the whole slice.\n\tif (right === 0)\n\t{\n\t\treturn sliced;\n\t}\n\n\t// Create new node.\n\tvar newA = {\n\t\tctor: '_Array',\n\t\theight: a.height,\n\t\ttable: a.table.slice(0, right),\n\t\tlengths: a.lengths.slice(0, right)\n\t};\n\tif (sliced.table.length > 0)\n\t{\n\t\tnewA.table[right] = sliced;\n\t\tnewA.lengths[right] = length(sliced) + (right > 0 ? newA.lengths[right - 1] : 0);\n\t}\n\treturn newA;\n}\n\nfunction sliceLeft(from, a)\n{\n\tif (from === 0)\n\t{\n\t\treturn a;\n\t}\n\n\t// Handle leaf level.\n\tif (a.height === 0)\n\t{\n\t\tvar newA = { ctor:'_Array', height:0 };\n\t\tnewA.table = a.table.slice(from, a.table.length + 1);\n\t\treturn newA;\n\t}\n\n\t// Slice the left recursively.\n\tvar left = getSlot(from, a);\n\tvar sliced = sliceLeft(from - (left > 0 ? a.lengths[left - 1] : 0), a.table[left]);\n\n\t// Maybe the a node is not even needed, as sliced contains the whole slice.\n\tif (left === a.table.length - 1)\n\t{\n\t\treturn sliced;\n\t}\n\n\t// Create new node.\n\tvar newA = {\n\t\tctor: '_Array',\n\t\theight: a.height,\n\t\ttable: a.table.slice(left, a.table.length + 1),\n\t\tlengths: new Array(a.table.length - left)\n\t};\n\tnewA.table[0] = sliced;\n\tvar len = 0;\n\tfor (var i = 0; i < newA.table.length; i++)\n\t{\n\t\tlen += length(newA.table[i]);\n\t\tnewA.lengths[i] = len;\n\t}\n\n\treturn newA;\n}\n\n// Appends two trees.\nfunction append(a,b)\n{\n\tif (a.table.length === 0)\n\t{\n\t\treturn b;\n\t}\n\tif (b.table.length === 0)\n\t{\n\t\treturn a;\n\t}\n\n\tvar c = append_(a, b);\n\n\t// Check if both nodes can be crunshed together.\n\tif (c[0].table.length + c[1].table.length <= M)\n\t{\n\t\tif (c[0].table.length === 0)\n\t\t{\n\t\t\treturn c[1];\n\t\t}\n\t\tif (c[1].table.length === 0)\n\t\t{\n\t\t\treturn c[0];\n\t\t}\n\n\t\t// Adjust .table and .lengths\n\t\tc[0].table = c[0].table.concat(c[1].table);\n\t\tif (c[0].height > 0)\n\t\t{\n\t\t\tvar len = length(c[0]);\n\t\t\tfor (var i = 0; i < c[1].lengths.length; i++)\n\t\t\t{\n\t\t\t\tc[1].lengths[i] += len;\n\t\t\t}\n\t\t\tc[0].lengths = c[0].lengths.concat(c[1].lengths);\n\t\t}\n\n\t\treturn c[0];\n\t}\n\n\tif (c[0].height > 0)\n\t{\n\t\tvar toRemove = calcToRemove(a, b);\n\t\tif (toRemove > E)\n\t\t{\n\t\t\tc = shuffle(c[0], c[1], toRemove);\n\t\t}\n\t}\n\n\treturn siblise(c[0], c[1]);\n}\n\n// Returns an array of two nodes; right and left. One node _may_ be empty.\nfunction append_(a, b)\n{\n\tif (a.height === 0 && b.height === 0)\n\t{\n\t\treturn [a, b];\n\t}\n\n\tif (a.height !== 1 || b.height !== 1)\n\t{\n\t\tif (a.height === b.height)\n\t\t{\n\t\t\ta = nodeCopy(a);\n\t\t\tb = nodeCopy(b);\n\t\t\tvar appended = append_(botRight(a), botLeft(b));\n\n\t\t\tinsertRight(a, appended[1]);\n\t\t\tinsertLeft(b, appended[0]);\n\t\t}\n\t\telse if (a.height > b.height)\n\t\t{\n\t\t\ta = nodeCopy(a);\n\t\t\tvar appended = append_(botRight(a), b);\n\n\t\t\tinsertRight(a, appended[0]);\n\t\t\tb = parentise(appended[1], appended[1].height + 1);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tb = nodeCopy(b);\n\t\t\tvar appended = append_(a, botLeft(b));\n\n\t\t\tvar left = appended[0].table.length === 0 ? 0 : 1;\n\t\t\tvar right = left === 0 ? 1 : 0;\n\t\t\tinsertLeft(b, appended[left]);\n\t\t\ta = parentise(appended[right], appended[right].height + 1);\n\t\t}\n\t}\n\n\t// Check if balancing is needed and return based on that.\n\tif (a.table.length === 0 || b.table.length === 0)\n\t{\n\t\treturn [a, b];\n\t}\n\n\tvar toRemove = calcToRemove(a, b);\n\tif (toRemove <= E)\n\t{\n\t\treturn [a, b];\n\t}\n\treturn shuffle(a, b, toRemove);\n}\n\n// Helperfunctions for append_. Replaces a child node at the side of the parent.\nfunction insertRight(parent, node)\n{\n\tvar index = parent.table.length - 1;\n\tparent.table[index] = node;\n\tparent.lengths[index] = length(node);\n\tparent.lengths[index] += index > 0 ? parent.lengths[index - 1] : 0;\n}\n\nfunction insertLeft(parent, node)\n{\n\tif (node.table.length > 0)\n\t{\n\t\tparent.table[0] = node;\n\t\tparent.lengths[0] = length(node);\n\n\t\tvar len = length(parent.table[0]);\n\t\tfor (var i = 1; i < parent.lengths.length; i++)\n\t\t{\n\t\t\tlen += length(parent.table[i]);\n\t\t\tparent.lengths[i] = len;\n\t\t}\n\t}\n\telse\n\t{\n\t\tparent.table.shift();\n\t\tfor (var i = 1; i < parent.lengths.length; i++)\n\t\t{\n\t\t\tparent.lengths[i] = parent.lengths[i] - parent.lengths[0];\n\t\t}\n\t\tparent.lengths.shift();\n\t}\n}\n\n// Returns the extra search steps for E. Refer to the paper.\nfunction calcToRemove(a, b)\n{\n\tvar subLengths = 0;\n\tfor (var i = 0; i < a.table.length; i++)\n\t{\n\t\tsubLengths += a.table[i].table.length;\n\t}\n\tfor (var i = 0; i < b.table.length; i++)\n\t{\n\t\tsubLengths += b.table[i].table.length;\n\t}\n\n\tvar toRemove = a.table.length + b.table.length;\n\treturn toRemove - (Math.floor((subLengths - 1) / M) + 1);\n}\n\n// get2, set2 and saveSlot are helpers for accessing elements over two arrays.\nfunction get2(a, b, index)\n{\n\treturn index < a.length\n\t\t? a[index]\n\t\t: b[index - a.length];\n}\n\nfunction set2(a, b, index, value)\n{\n\tif (index < a.length)\n\t{\n\t\ta[index] = value;\n\t}\n\telse\n\t{\n\t\tb[index - a.length] = value;\n\t}\n}\n\nfunction saveSlot(a, b, index, slot)\n{\n\tset2(a.table, b.table, index, slot);\n\n\tvar l = (index === 0 || index === a.lengths.length)\n\t\t? 0\n\t\t: get2(a.lengths, a.lengths, index - 1);\n\n\tset2(a.lengths, b.lengths, index, l + length(slot));\n}\n\n// Creates a node or leaf with a given length at their arrays for perfomance.\n// Is only used by shuffle.\nfunction createNode(h, length)\n{\n\tif (length < 0)\n\t{\n\t\tlength = 0;\n\t}\n\tvar a = {\n\t\tctor: '_Array',\n\t\theight: h,\n\t\ttable: new Array(length)\n\t};\n\tif (h > 0)\n\t{\n\t\ta.lengths = new Array(length);\n\t}\n\treturn a;\n}\n\n// Returns an array of two balanced nodes.\nfunction shuffle(a, b, toRemove)\n{\n\tvar newA = createNode(a.height, Math.min(M, a.table.length + b.table.length - toRemove));\n\tvar newB = createNode(a.height, newA.table.length - (a.table.length + b.table.length - toRemove));\n\n\t// Skip the slots with size M. More precise: copy the slot references\n\t// to the new node\n\tvar read = 0;\n\twhile (get2(a.table, b.table, read).table.length % M === 0)\n\t{\n\t\tset2(newA.table, newB.table, read, get2(a.table, b.table, read));\n\t\tset2(newA.lengths, newB.lengths, read, get2(a.lengths, b.lengths, read));\n\t\tread++;\n\t}\n\n\t// Pulling items from left to right, caching in a slot before writing\n\t// it into the new nodes.\n\tvar write = read;\n\tvar slot = new createNode(a.height - 1, 0);\n\tvar from = 0;\n\n\t// If the current slot is still containing data, then there will be at\n\t// least one more write, so we do not break this loop yet.\n\twhile (read - write - (slot.table.length > 0 ? 1 : 0) < toRemove)\n\t{\n\t\t// Find out the max possible items for copying.\n\t\tvar source = get2(a.table, b.table, read);\n\t\tvar to = Math.min(M - slot.table.length, source.table.length);\n\n\t\t// Copy and adjust size table.\n\t\tslot.table = slot.table.concat(source.table.slice(from, to));\n\t\tif (slot.height > 0)\n\t\t{\n\t\t\tvar len = slot.lengths.length;\n\t\t\tfor (var i = len; i < len + to - from; i++)\n\t\t\t{\n\t\t\t\tslot.lengths[i] = length(slot.table[i]);\n\t\t\t\tslot.lengths[i] += (i > 0 ? slot.lengths[i - 1] : 0);\n\t\t\t}\n\t\t}\n\n\t\tfrom += to;\n\n\t\t// Only proceed to next slots[i] if the current one was\n\t\t// fully copied.\n\t\tif (source.table.length <= to)\n\t\t{\n\t\t\tread++; from = 0;\n\t\t}\n\n\t\t// Only create a new slot if the current one is filled up.\n\t\tif (slot.table.length === M)\n\t\t{\n\t\t\tsaveSlot(newA, newB, write, slot);\n\t\t\tslot = createNode(a.height - 1, 0);\n\t\t\twrite++;\n\t\t}\n\t}\n\n\t// Cleanup after the loop. Copy the last slot into the new nodes.\n\tif (slot.table.length > 0)\n\t{\n\t\tsaveSlot(newA, newB, write, slot);\n\t\twrite++;\n\t}\n\n\t// Shift the untouched slots to the left\n\twhile (read < a.table.length + b.table.length )\n\t{\n\t\tsaveSlot(newA, newB, write, get2(a.table, b.table, read));\n\t\tread++;\n\t\twrite++;\n\t}\n\n\treturn [newA, newB];\n}\n\n// Navigation functions\nfunction botRight(a)\n{\n\treturn a.table[a.table.length - 1];\n}\nfunction botLeft(a)\n{\n\treturn a.table[0];\n}\n\n// Copies a node for updating. Note that you should not use this if\n// only updating only one of \"table\" or \"lengths\" for performance reasons.\nfunction nodeCopy(a)\n{\n\tvar newA = {\n\t\tctor: '_Array',\n\t\theight: a.height,\n\t\ttable: a.table.slice()\n\t};\n\tif (a.height > 0)\n\t{\n\t\tnewA.lengths = a.lengths.slice();\n\t}\n\treturn newA;\n}\n\n// Returns how many items are in the tree.\nfunction length(array)\n{\n\tif (array.height === 0)\n\t{\n\t\treturn array.table.length;\n\t}\n\telse\n\t{\n\t\treturn array.lengths[array.lengths.length - 1];\n\t}\n}\n\n// Calculates in which slot of \"table\" the item probably is, then\n// find the exact slot via forward searching in \"lengths\". Returns the index.\nfunction getSlot(i, a)\n{\n\tvar slot = i >> (5 * a.height);\n\twhile (a.lengths[slot] <= i)\n\t{\n\t\tslot++;\n\t}\n\treturn slot;\n}\n\n// Recursively creates a tree with a given height containing\n// only the given item.\nfunction create(item, h)\n{\n\tif (h === 0)\n\t{\n\t\treturn {\n\t\t\tctor: '_Array',\n\t\t\theight: 0,\n\t\t\ttable: [item]\n\t\t};\n\t}\n\treturn {\n\t\tctor: '_Array',\n\t\theight: h,\n\t\ttable: [create(item, h - 1)],\n\t\tlengths: [1]\n\t};\n}\n\n// Recursively creates a tree that contains the given tree.\nfunction parentise(tree, h)\n{\n\tif (h === tree.height)\n\t{\n\t\treturn tree;\n\t}\n\n\treturn {\n\t\tctor: '_Array',\n\t\theight: h,\n\t\ttable: [parentise(tree, h - 1)],\n\t\tlengths: [length(tree)]\n\t};\n}\n\n// Emphasizes blood brotherhood beneath two trees.\nfunction siblise(a, b)\n{\n\treturn {\n\t\tctor: '_Array',\n\t\theight: a.height + 1,\n\t\ttable: [a, b],\n\t\tlengths: [length(a), length(a) + length(b)]\n\t};\n}\n\nfunction toJSArray(a)\n{\n\tvar jsArray = new Array(length(a));\n\ttoJSArray_(jsArray, 0, a);\n\treturn jsArray;\n}\n\nfunction toJSArray_(jsArray, i, a)\n{\n\tfor (var t = 0; t < a.table.length; t++)\n\t{\n\t\tif (a.height === 0)\n\t\t{\n\t\t\tjsArray[i + t] = a.table[t];\n\t\t}\n\t\telse\n\t\t{\n\t\t\tvar inc = t === 0 ? 0 : a.lengths[t - 1];\n\t\t\ttoJSArray_(jsArray, i + inc, a.table[t]);\n\t\t}\n\t}\n}\n\nfunction fromJSArray(jsArray)\n{\n\tif (jsArray.length === 0)\n\t{\n\t\treturn empty;\n\t}\n\tvar h = Math.floor(Math.log(jsArray.length) / Math.log(M));\n\treturn fromJSArray_(jsArray, h, 0, jsArray.length);\n}\n\nfunction fromJSArray_(jsArray, h, from, to)\n{\n\tif (h === 0)\n\t{\n\t\treturn {\n\t\t\tctor: '_Array',\n\t\t\theight: 0,\n\t\t\ttable: jsArray.slice(from, to)\n\t\t};\n\t}\n\n\tvar step = Math.pow(M, h);\n\tvar table = new Array(Math.ceil((to - from) / step));\n\tvar lengths = new Array(table.length);\n\tfor (var i = 0; i < table.length; i++)\n\t{\n\t\ttable[i] = fromJSArray_(jsArray, h - 1, from + (i * step), Math.min(from + ((i + 1) * step), to));\n\t\tlengths[i] = length(table[i]) + (i > 0 ? lengths[i - 1] : 0);\n\t}\n\treturn {\n\t\tctor: '_Array',\n\t\theight: h,\n\t\ttable: table,\n\t\tlengths: lengths\n\t};\n}\n\nreturn {\n\tempty: empty,\n\tfromList: fromList,\n\ttoList: toList,\n\tinitialize: F2(initialize),\n\tappend: F2(append),\n\tpush: F2(push),\n\tslice: F3(slice),\n\tget: F2(get),\n\tset: F3(set),\n\tmap: F2(map),\n\tindexedMap: F2(indexedMap),\n\tfoldl: F3(foldl),\n\tfoldr: F3(foldr),\n\tlength: length,\n\n\ttoJSArray: toJSArray,\n\tfromJSArray: fromJSArray\n};\n\n}();var _elm_lang$core$Array$append = _elm_lang$core$Native_Array.append;\nvar _elm_lang$core$Array$length = _elm_lang$core$Native_Array.length;\nvar _elm_lang$core$Array$isEmpty = function (array) {\n\treturn _elm_lang$core$Native_Utils.eq(\n\t\t_elm_lang$core$Array$length(array),\n\t\t0);\n};\nvar _elm_lang$core$Array$slice = _elm_lang$core$Native_Array.slice;\nvar _elm_lang$core$Array$set = _elm_lang$core$Native_Array.set;\nvar _elm_lang$core$Array$get = F2(\n\tfunction (i, array) {\n\t\treturn ((_elm_lang$core$Native_Utils.cmp(0, i) < 1) && (_elm_lang$core$Native_Utils.cmp(\n\t\t\ti,\n\t\t\t_elm_lang$core$Native_Array.length(array)) < 0)) ? _elm_lang$core$Maybe$Just(\n\t\t\tA2(_elm_lang$core$Native_Array.get, i, array)) : _elm_lang$core$Maybe$Nothing;\n\t});\nvar _elm_lang$core$Array$push = _elm_lang$core$Native_Array.push;\nvar _elm_lang$core$Array$empty = _elm_lang$core$Native_Array.empty;\nvar _elm_lang$core$Array$filter = F2(\n\tfunction (isOkay, arr) {\n\t\tvar update = F2(\n\t\t\tfunction (x, xs) {\n\t\t\t\treturn isOkay(x) ? A2(_elm_lang$core$Native_Array.push, x, xs) : xs;\n\t\t\t});\n\t\treturn A3(_elm_lang$core$Native_Array.foldl, update, _elm_lang$core$Native_Array.empty, arr);\n\t});\nvar _elm_lang$core$Array$foldr = _elm_lang$core$Native_Array.foldr;\nvar _elm_lang$core$Array$foldl = _elm_lang$core$Native_Array.foldl;\nvar _elm_lang$core$Array$indexedMap = _elm_lang$core$Native_Array.indexedMap;\nvar _elm_lang$core$Array$map = _elm_lang$core$Native_Array.map;\nvar _elm_lang$core$Array$toIndexedList = function (array) {\n\treturn A3(\n\t\t_elm_lang$core$List$map2,\n\t\tF2(\n\t\t\tfunction (v0, v1) {\n\t\t\t\treturn {ctor: '_Tuple2', _0: v0, _1: v1};\n\t\t\t}),\n\t\t_elm_lang$core$Native_List.range(\n\t\t\t0,\n\t\t\t_elm_lang$core$Native_Array.length(array) - 1),\n\t\t_elm_lang$core$Native_Array.toList(array));\n};\nvar _elm_lang$core$Array$toList = _elm_lang$core$Native_Array.toList;\nvar _elm_lang$core$Array$fromList = _elm_lang$core$Native_Array.fromList;\nvar _elm_lang$core$Array$initialize = _elm_lang$core$Native_Array.initialize;\nvar _elm_lang$core$Array$repeat = F2(\n\tfunction (n, e) {\n\t\treturn A2(\n\t\t\t_elm_lang$core$Array$initialize,\n\t\t\tn,\n\t\t\t_elm_lang$core$Basics$always(e));\n\t});\nvar _elm_lang$core$Array$Array = {ctor: 'Array'};\nvar _elm_lang$core$Dict$foldr = F3(\n\tfunction (f, acc, t) {\n\t\tfoldr:\n\t\twhile (true) {\n\t\t\tvar _p0 = t;\n\t\t\tif (_p0.ctor === 'RBEmpty_elm_builtin') {\n\t\t\t\treturn acc;\n\t\t\t} else {\n\t\t\t\tvar _v1 = f,\n\t\t\t\t\t_v2 = A3(\n\t\t\t\t\tf,\n\t\t\t\t\t_p0._1,\n\t\t\t\t\t_p0._2,\n\t\t\t\t\tA3(_elm_lang$core$Dict$foldr, f, acc, _p0._4)),\n\t\t\t\t\t_v3 = _p0._3;\n\t\t\t\tf = _v1;\n\t\t\t\tacc = _v2;\n\t\t\t\tt = _v3;\n\t\t\t\tcontinue foldr;\n\t\t\t}\n\t\t}\n\t});\nvar _elm_lang$core$Dict$keys = function (dict) {\n\treturn A3(\n\t\t_elm_lang$core$Dict$foldr,\n\t\tF3(\n\t\t\tfunction (key, value, keyList) {\n\t\t\t\treturn A2(_elm_lang$core$List_ops['::'], key, keyList);\n\t\t\t}),\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\tdict);\n};\nvar _elm_lang$core$Dict$values = function (dict) {\n\treturn A3(\n\t\t_elm_lang$core$Dict$foldr,\n\t\tF3(\n\t\t\tfunction (key, value, valueList) {\n\t\t\t\treturn A2(_elm_lang$core$List_ops['::'], value, valueList);\n\t\t\t}),\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\tdict);\n};\nvar _elm_lang$core$Dict$toList = function (dict) {\n\treturn A3(\n\t\t_elm_lang$core$Dict$foldr,\n\t\tF3(\n\t\t\tfunction (key, value, list) {\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\t\t{ctor: '_Tuple2', _0: key, _1: value},\n\t\t\t\t\tlist);\n\t\t\t}),\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\tdict);\n};\nvar _elm_lang$core$Dict$foldl = F3(\n\tfunction (f, acc, dict) {\n\t\tfoldl:\n\t\twhile (true) {\n\t\t\tvar _p1 = dict;\n\t\t\tif (_p1.ctor === 'RBEmpty_elm_builtin') {\n\t\t\t\treturn acc;\n\t\t\t} else {\n\t\t\t\tvar _v5 = f,\n\t\t\t\t\t_v6 = A3(\n\t\t\t\t\tf,\n\t\t\t\t\t_p1._1,\n\t\t\t\t\t_p1._2,\n\t\t\t\t\tA3(_elm_lang$core$Dict$foldl, f, acc, _p1._3)),\n\t\t\t\t\t_v7 = _p1._4;\n\t\t\t\tf = _v5;\n\t\t\t\tacc = _v6;\n\t\t\t\tdict = _v7;\n\t\t\t\tcontinue foldl;\n\t\t\t}\n\t\t}\n\t});\nvar _elm_lang$core$Dict$merge = F6(\n\tfunction (leftStep, bothStep, rightStep, leftDict, rightDict, initialResult) {\n\t\tvar stepState = F3(\n\t\t\tfunction (rKey, rValue, _p2) {\n\t\t\t\tstepState:\n\t\t\t\twhile (true) {\n\t\t\t\t\tvar _p3 = _p2;\n\t\t\t\t\tvar _p9 = _p3._1;\n\t\t\t\t\tvar _p8 = _p3._0;\n\t\t\t\t\tvar _p4 = _p8;\n\t\t\t\t\tif (_p4.ctor === '[]') {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t_0: _p8,\n\t\t\t\t\t\t\t_1: A3(rightStep, rKey, rValue, _p9)\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _p7 = _p4._1;\n\t\t\t\t\t\tvar _p6 = _p4._0._1;\n\t\t\t\t\t\tvar _p5 = _p4._0._0;\n\t\t\t\t\t\tif (_elm_lang$core$Native_Utils.cmp(_p5, rKey) < 0) {\n\t\t\t\t\t\t\tvar _v10 = rKey,\n\t\t\t\t\t\t\t\t_v11 = rValue,\n\t\t\t\t\t\t\t\t_v12 = {\n\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t_0: _p7,\n\t\t\t\t\t\t\t\t_1: A3(leftStep, _p5, _p6, _p9)\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\trKey = _v10;\n\t\t\t\t\t\t\trValue = _v11;\n\t\t\t\t\t\t\t_p2 = _v12;\n\t\t\t\t\t\t\tcontinue stepState;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (_elm_lang$core$Native_Utils.cmp(_p5, rKey) > 0) {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t\t_0: _p8,\n\t\t\t\t\t\t\t\t\t_1: A3(rightStep, rKey, rValue, _p9)\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t\t_0: _p7,\n\t\t\t\t\t\t\t\t\t_1: A4(bothStep, _p5, _p6, rValue, _p9)\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\tvar _p10 = A3(\n\t\t\t_elm_lang$core$Dict$foldl,\n\t\t\tstepState,\n\t\t\t{\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: _elm_lang$core$Dict$toList(leftDict),\n\t\t\t\t_1: initialResult\n\t\t\t},\n\t\t\trightDict);\n\t\tvar leftovers = _p10._0;\n\t\tvar intermediateResult = _p10._1;\n\t\treturn A3(\n\t\t\t_elm_lang$core$List$foldl,\n\t\t\tF2(\n\t\t\t\tfunction (_p11, result) {\n\t\t\t\t\tvar _p12 = _p11;\n\t\t\t\t\treturn A3(leftStep, _p12._0, _p12._1, result);\n\t\t\t\t}),\n\t\t\tintermediateResult,\n\t\t\tleftovers);\n\t});\nvar _elm_lang$core$Dict$reportRemBug = F4(\n\tfunction (msg, c, lgot, rgot) {\n\t\treturn _elm_lang$core$Native_Debug.crash(\n\t\t\t_elm_lang$core$String$concat(\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t'Internal red-black tree invariant violated, expected ',\n\t\t\t\t\t\tmsg,\n\t\t\t\t\t\t' and got ',\n\t\t\t\t\t\t_elm_lang$core$Basics$toString(c),\n\t\t\t\t\t\t'/',\n\t\t\t\t\t\tlgot,\n\t\t\t\t\t\t'/',\n\t\t\t\t\t\trgot,\n\t\t\t\t\t\t'\\nPlease report this bug to <https://github.com/elm-lang/core/issues>'\n\t\t\t\t\t])));\n\t});\nvar _elm_lang$core$Dict$isBBlack = function (dict) {\n\tvar _p13 = dict;\n\t_v14_2:\n\tdo {\n\t\tif (_p13.ctor === 'RBNode_elm_builtin') {\n\t\t\tif (_p13._0.ctor === 'BBlack') {\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\tbreak _v14_2;\n\t\t\t}\n\t\t} else {\n\t\t\tif (_p13._0.ctor === 'LBBlack') {\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\tbreak _v14_2;\n\t\t\t}\n\t\t}\n\t} while(false);\n\treturn false;\n};\nvar _elm_lang$core$Dict$sizeHelp = F2(\n\tfunction (n, dict) {\n\t\tsizeHelp:\n\t\twhile (true) {\n\t\t\tvar _p14 = dict;\n\t\t\tif (_p14.ctor === 'RBEmpty_elm_builtin') {\n\t\t\t\treturn n;\n\t\t\t} else {\n\t\t\t\tvar _v16 = A2(_elm_lang$core$Dict$sizeHelp, n + 1, _p14._4),\n\t\t\t\t\t_v17 = _p14._3;\n\t\t\t\tn = _v16;\n\t\t\t\tdict = _v17;\n\t\t\t\tcontinue sizeHelp;\n\t\t\t}\n\t\t}\n\t});\nvar _elm_lang$core$Dict$size = function (dict) {\n\treturn A2(_elm_lang$core$Dict$sizeHelp, 0, dict);\n};\nvar _elm_lang$core$Dict$get = F2(\n\tfunction (targetKey, dict) {\n\t\tget:\n\t\twhile (true) {\n\t\t\tvar _p15 = dict;\n\t\t\tif (_p15.ctor === 'RBEmpty_elm_builtin') {\n\t\t\t\treturn _elm_lang$core$Maybe$Nothing;\n\t\t\t} else {\n\t\t\t\tvar _p16 = A2(_elm_lang$core$Basics$compare, targetKey, _p15._1);\n\t\t\t\tswitch (_p16.ctor) {\n\t\t\t\t\tcase 'LT':\n\t\t\t\t\t\tvar _v20 = targetKey,\n\t\t\t\t\t\t\t_v21 = _p15._3;\n\t\t\t\t\t\ttargetKey = _v20;\n\t\t\t\t\t\tdict = _v21;\n\t\t\t\t\t\tcontinue get;\n\t\t\t\t\tcase 'EQ':\n\t\t\t\t\t\treturn _elm_lang$core$Maybe$Just(_p15._2);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar _v22 = targetKey,\n\t\t\t\t\t\t\t_v23 = _p15._4;\n\t\t\t\t\t\ttargetKey = _v22;\n\t\t\t\t\t\tdict = _v23;\n\t\t\t\t\t\tcontinue get;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar _elm_lang$core$Dict$member = F2(\n\tfunction (key, dict) {\n\t\tvar _p17 = A2(_elm_lang$core$Dict$get, key, dict);\n\t\tif (_p17.ctor === 'Just') {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t});\nvar _elm_lang$core$Dict$maxWithDefault = F3(\n\tfunction (k, v, r) {\n\t\tmaxWithDefault:\n\t\twhile (true) {\n\t\t\tvar _p18 = r;\n\t\t\tif (_p18.ctor === 'RBEmpty_elm_builtin') {\n\t\t\t\treturn {ctor: '_Tuple2', _0: k, _1: v};\n\t\t\t} else {\n\t\t\t\tvar _v26 = _p18._1,\n\t\t\t\t\t_v27 = _p18._2,\n\t\t\t\t\t_v28 = _p18._4;\n\t\t\t\tk = _v26;\n\t\t\t\tv = _v27;\n\t\t\t\tr = _v28;\n\t\t\t\tcontinue maxWithDefault;\n\t\t\t}\n\t\t}\n\t});\nvar _elm_lang$core$Dict$NBlack = {ctor: 'NBlack'};\nvar _elm_lang$core$Dict$BBlack = {ctor: 'BBlack'};\nvar _elm_lang$core$Dict$Black = {ctor: 'Black'};\nvar _elm_lang$core$Dict$blackish = function (t) {\n\tvar _p19 = t;\n\tif (_p19.ctor === 'RBNode_elm_builtin') {\n\t\tvar _p20 = _p19._0;\n\t\treturn _elm_lang$core$Native_Utils.eq(_p20, _elm_lang$core$Dict$Black) || _elm_lang$core$Native_Utils.eq(_p20, _elm_lang$core$Dict$BBlack);\n\t} else {\n\t\treturn true;\n\t}\n};\nvar _elm_lang$core$Dict$Red = {ctor: 'Red'};\nvar _elm_lang$core$Dict$moreBlack = function (color) {\n\tvar _p21 = color;\n\tswitch (_p21.ctor) {\n\t\tcase 'Black':\n\t\t\treturn _elm_lang$core$Dict$BBlack;\n\t\tcase 'Red':\n\t\t\treturn _elm_lang$core$Dict$Black;\n\t\tcase 'NBlack':\n\t\t\treturn _elm_lang$core$Dict$Red;\n\t\tdefault:\n\t\t\treturn _elm_lang$core$Native_Debug.crash('Can\\'t make a double black node more black!');\n\t}\n};\nvar _elm_lang$core$Dict$lessBlack = function (color) {\n\tvar _p22 = color;\n\tswitch (_p22.ctor) {\n\t\tcase 'BBlack':\n\t\t\treturn _elm_lang$core$Dict$Black;\n\t\tcase 'Black':\n\t\t\treturn _elm_lang$core$Dict$Red;\n\t\tcase 'Red':\n\t\t\treturn _elm_lang$core$Dict$NBlack;\n\t\tdefault:\n\t\t\treturn _elm_lang$core$Native_Debug.crash('Can\\'t make a negative black node less black!');\n\t}\n};\nvar _elm_lang$core$Dict$LBBlack = {ctor: 'LBBlack'};\nvar _elm_lang$core$Dict$LBlack = {ctor: 'LBlack'};\nvar _elm_lang$core$Dict$RBEmpty_elm_builtin = function (a) {\n\treturn {ctor: 'RBEmpty_elm_builtin', _0: a};\n};\nvar _elm_lang$core$Dict$empty = _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBlack);\nvar _elm_lang$core$Dict$isEmpty = function (dict) {\n\treturn _elm_lang$core$Native_Utils.eq(dict, _elm_lang$core$Dict$empty);\n};\nvar _elm_lang$core$Dict$RBNode_elm_builtin = F5(\n\tfunction (a, b, c, d, e) {\n\t\treturn {ctor: 'RBNode_elm_builtin', _0: a, _1: b, _2: c, _3: d, _4: e};\n\t});\nvar _elm_lang$core$Dict$ensureBlackRoot = function (dict) {\n\tvar _p23 = dict;\n\tif ((_p23.ctor === 'RBNode_elm_builtin') && (_p23._0.ctor === 'Red')) {\n\t\treturn A5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Black, _p23._1, _p23._2, _p23._3, _p23._4);\n\t} else {\n\t\treturn dict;\n\t}\n};\nvar _elm_lang$core$Dict$lessBlackTree = function (dict) {\n\tvar _p24 = dict;\n\tif (_p24.ctor === 'RBNode_elm_builtin') {\n\t\treturn A5(\n\t\t\t_elm_lang$core$Dict$RBNode_elm_builtin,\n\t\t\t_elm_lang$core$Dict$lessBlack(_p24._0),\n\t\t\t_p24._1,\n\t\t\t_p24._2,\n\t\t\t_p24._3,\n\t\t\t_p24._4);\n\t} else {\n\t\treturn _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBlack);\n\t}\n};\nvar _elm_lang$core$Dict$balancedTree = function (col) {\n\treturn function (xk) {\n\t\treturn function (xv) {\n\t\t\treturn function (yk) {\n\t\t\t\treturn function (yv) {\n\t\t\t\t\treturn function (zk) {\n\t\t\t\t\t\treturn function (zv) {\n\t\t\t\t\t\t\treturn function (a) {\n\t\t\t\t\t\t\t\treturn function (b) {\n\t\t\t\t\t\t\t\t\treturn function (c) {\n\t\t\t\t\t\t\t\t\t\treturn function (d) {\n\t\t\t\t\t\t\t\t\t\t\treturn A5(\n\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Dict$lessBlack(col),\n\t\t\t\t\t\t\t\t\t\t\t\tyk,\n\t\t\t\t\t\t\t\t\t\t\t\tyv,\n\t\t\t\t\t\t\t\t\t\t\t\tA5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Black, xk, xv, a, b),\n\t\t\t\t\t\t\t\t\t\t\t\tA5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Black, zk, zv, c, d));\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t};\n\t};\n};\nvar _elm_lang$core$Dict$blacken = function (t) {\n\tvar _p25 = t;\n\tif (_p25.ctor === 'RBEmpty_elm_builtin') {\n\t\treturn _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBlack);\n\t} else {\n\t\treturn A5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Black, _p25._1, _p25._2, _p25._3, _p25._4);\n\t}\n};\nvar _elm_lang$core$Dict$redden = function (t) {\n\tvar _p26 = t;\n\tif (_p26.ctor === 'RBEmpty_elm_builtin') {\n\t\treturn _elm_lang$core$Native_Debug.crash('can\\'t make a Leaf red');\n\t} else {\n\t\treturn A5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Red, _p26._1, _p26._2, _p26._3, _p26._4);\n\t}\n};\nvar _elm_lang$core$Dict$balanceHelp = function (tree) {\n\tvar _p27 = tree;\n\t_v36_6:\n\tdo {\n\t\t_v36_5:\n\t\tdo {\n\t\t\t_v36_4:\n\t\t\tdo {\n\t\t\t\t_v36_3:\n\t\t\t\tdo {\n\t\t\t\t\t_v36_2:\n\t\t\t\t\tdo {\n\t\t\t\t\t\t_v36_1:\n\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t_v36_0:\n\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\tif (_p27.ctor === 'RBNode_elm_builtin') {\n\t\t\t\t\t\t\t\t\tif (_p27._3.ctor === 'RBNode_elm_builtin') {\n\t\t\t\t\t\t\t\t\t\tif (_p27._4.ctor === 'RBNode_elm_builtin') {\n\t\t\t\t\t\t\t\t\t\t\tswitch (_p27._3._0.ctor) {\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'Red':\n\t\t\t\t\t\t\t\t\t\t\t\t\tswitch (_p27._4._0.ctor) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'Red':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._3._3.ctor === 'RBNode_elm_builtin') && (_p27._3._3._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._3._4.ctor === 'RBNode_elm_builtin') && (_p27._3._4._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._4._3.ctor === 'RBNode_elm_builtin') && (_p27._4._3._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._4._4.ctor === 'RBNode_elm_builtin') && (_p27._4._4._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'NBlack':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._3._3.ctor === 'RBNode_elm_builtin') && (_p27._3._3._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._3._4.ctor === 'RBNode_elm_builtin') && (_p27._3._4._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (((((_p27._0.ctor === 'BBlack') && (_p27._4._3.ctor === 'RBNode_elm_builtin')) && (_p27._4._3._0.ctor === 'Black')) && (_p27._4._4.ctor === 'RBNode_elm_builtin')) && (_p27._4._4._0.ctor === 'Black')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._3._3.ctor === 'RBNode_elm_builtin') && (_p27._3._3._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._3._4.ctor === 'RBNode_elm_builtin') && (_p27._3._4._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'NBlack':\n\t\t\t\t\t\t\t\t\t\t\t\t\tswitch (_p27._4._0.ctor) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'Red':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._4._3.ctor === 'RBNode_elm_builtin') && (_p27._4._3._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._4._4.ctor === 'RBNode_elm_builtin') && (_p27._4._4._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (((((_p27._0.ctor === 'BBlack') && (_p27._3._3.ctor === 'RBNode_elm_builtin')) && (_p27._3._3._0.ctor === 'Black')) && (_p27._3._4.ctor === 'RBNode_elm_builtin')) && (_p27._3._4._0.ctor === 'Black')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'NBlack':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (_p27._0.ctor === 'BBlack') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((((_p27._4._3.ctor === 'RBNode_elm_builtin') && (_p27._4._3._0.ctor === 'Black')) && (_p27._4._4.ctor === 'RBNode_elm_builtin')) && (_p27._4._4._0.ctor === 'Black')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((((_p27._3._3.ctor === 'RBNode_elm_builtin') && (_p27._3._3._0.ctor === 'Black')) && (_p27._3._4.ctor === 'RBNode_elm_builtin')) && (_p27._3._4._0.ctor === 'Black')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (((((_p27._0.ctor === 'BBlack') && (_p27._3._3.ctor === 'RBNode_elm_builtin')) && (_p27._3._3._0.ctor === 'Black')) && (_p27._3._4.ctor === 'RBNode_elm_builtin')) && (_p27._3._4._0.ctor === 'Black')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\tswitch (_p27._4._0.ctor) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'Red':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._4._3.ctor === 'RBNode_elm_builtin') && (_p27._4._3._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._4._4.ctor === 'RBNode_elm_builtin') && (_p27._4._4._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'NBlack':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (((((_p27._0.ctor === 'BBlack') && (_p27._4._3.ctor === 'RBNode_elm_builtin')) && (_p27._4._3._0.ctor === 'Black')) && (_p27._4._4.ctor === 'RBNode_elm_builtin')) && (_p27._4._4._0.ctor === 'Black')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tswitch (_p27._3._0.ctor) {\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'Red':\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._3._3.ctor === 'RBNode_elm_builtin') && (_p27._3._3._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._3._4.ctor === 'RBNode_elm_builtin') && (_p27._3._4._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'NBlack':\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (((((_p27._0.ctor === 'BBlack') && (_p27._3._3.ctor === 'RBNode_elm_builtin')) && (_p27._3._3._0.ctor === 'Black')) && (_p27._3._4.ctor === 'RBNode_elm_builtin')) && (_p27._3._4._0.ctor === 'Black')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif (_p27._4.ctor === 'RBNode_elm_builtin') {\n\t\t\t\t\t\t\t\t\t\t\tswitch (_p27._4._0.ctor) {\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'Red':\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._4._3.ctor === 'RBNode_elm_builtin') && (_p27._4._3._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((_p27._4._4.ctor === 'RBNode_elm_builtin') && (_p27._4._4._0.ctor === 'Red')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'NBlack':\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (((((_p27._0.ctor === 'BBlack') && (_p27._4._3.ctor === 'RBNode_elm_builtin')) && (_p27._4._3._0.ctor === 'Black')) && (_p27._4._4.ctor === 'RBNode_elm_builtin')) && (_p27._4._4._0.ctor === 'Black')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tbreak _v36_6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} while(false);\n\t\t\t\t\t\t\treturn _elm_lang$core$Dict$balancedTree(_p27._0)(_p27._3._3._1)(_p27._3._3._2)(_p27._3._1)(_p27._3._2)(_p27._1)(_p27._2)(_p27._3._3._3)(_p27._3._3._4)(_p27._3._4)(_p27._4);\n\t\t\t\t\t\t} while(false);\n\t\t\t\t\t\treturn _elm_lang$core$Dict$balancedTree(_p27._0)(_p27._3._1)(_p27._3._2)(_p27._3._4._1)(_p27._3._4._2)(_p27._1)(_p27._2)(_p27._3._3)(_p27._3._4._3)(_p27._3._4._4)(_p27._4);\n\t\t\t\t\t} while(false);\n\t\t\t\t\treturn _elm_lang$core$Dict$balancedTree(_p27._0)(_p27._1)(_p27._2)(_p27._4._3._1)(_p27._4._3._2)(_p27._4._1)(_p27._4._2)(_p27._3)(_p27._4._3._3)(_p27._4._3._4)(_p27._4._4);\n\t\t\t\t} while(false);\n\t\t\t\treturn _elm_lang$core$Dict$balancedTree(_p27._0)(_p27._1)(_p27._2)(_p27._4._1)(_p27._4._2)(_p27._4._4._1)(_p27._4._4._2)(_p27._3)(_p27._4._3)(_p27._4._4._3)(_p27._4._4._4);\n\t\t\t} while(false);\n\t\t\treturn A5(\n\t\t\t\t_elm_lang$core$Dict$RBNode_elm_builtin,\n\t\t\t\t_elm_lang$core$Dict$Black,\n\t\t\t\t_p27._4._3._1,\n\t\t\t\t_p27._4._3._2,\n\t\t\t\tA5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Black, _p27._1, _p27._2, _p27._3, _p27._4._3._3),\n\t\t\t\tA5(\n\t\t\t\t\t_elm_lang$core$Dict$balance,\n\t\t\t\t\t_elm_lang$core$Dict$Black,\n\t\t\t\t\t_p27._4._1,\n\t\t\t\t\t_p27._4._2,\n\t\t\t\t\t_p27._4._3._4,\n\t\t\t\t\t_elm_lang$core$Dict$redden(_p27._4._4)));\n\t\t} while(false);\n\t\treturn A5(\n\t\t\t_elm_lang$core$Dict$RBNode_elm_builtin,\n\t\t\t_elm_lang$core$Dict$Black,\n\t\t\t_p27._3._4._1,\n\t\t\t_p27._3._4._2,\n\t\t\tA5(\n\t\t\t\t_elm_lang$core$Dict$balance,\n\t\t\t\t_elm_lang$core$Dict$Black,\n\t\t\t\t_p27._3._1,\n\t\t\t\t_p27._3._2,\n\t\t\t\t_elm_lang$core$Dict$redden(_p27._3._3),\n\t\t\t\t_p27._3._4._3),\n\t\t\tA5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Black, _p27._1, _p27._2, _p27._3._4._4, _p27._4));\n\t} while(false);\n\treturn tree;\n};\nvar _elm_lang$core$Dict$balance = F5(\n\tfunction (c, k, v, l, r) {\n\t\tvar tree = A5(_elm_lang$core$Dict$RBNode_elm_builtin, c, k, v, l, r);\n\t\treturn _elm_lang$core$Dict$blackish(tree) ? _elm_lang$core$Dict$balanceHelp(tree) : tree;\n\t});\nvar _elm_lang$core$Dict$bubble = F5(\n\tfunction (c, k, v, l, r) {\n\t\treturn (_elm_lang$core$Dict$isBBlack(l) || _elm_lang$core$Dict$isBBlack(r)) ? A5(\n\t\t\t_elm_lang$core$Dict$balance,\n\t\t\t_elm_lang$core$Dict$moreBlack(c),\n\t\t\tk,\n\t\t\tv,\n\t\t\t_elm_lang$core$Dict$lessBlackTree(l),\n\t\t\t_elm_lang$core$Dict$lessBlackTree(r)) : A5(_elm_lang$core$Dict$RBNode_elm_builtin, c, k, v, l, r);\n\t});\nvar _elm_lang$core$Dict$removeMax = F5(\n\tfunction (c, k, v, l, r) {\n\t\tvar _p28 = r;\n\t\tif (_p28.ctor === 'RBEmpty_elm_builtin') {\n\t\t\treturn A3(_elm_lang$core$Dict$rem, c, l, r);\n\t\t} else {\n\t\t\treturn A5(\n\t\t\t\t_elm_lang$core$Dict$bubble,\n\t\t\t\tc,\n\t\t\t\tk,\n\t\t\t\tv,\n\t\t\t\tl,\n\t\t\t\tA5(_elm_lang$core$Dict$removeMax, _p28._0, _p28._1, _p28._2, _p28._3, _p28._4));\n\t\t}\n\t});\nvar _elm_lang$core$Dict$rem = F3(\n\tfunction (c, l, r) {\n\t\tvar _p29 = {ctor: '_Tuple2', _0: l, _1: r};\n\t\tif (_p29._0.ctor === 'RBEmpty_elm_builtin') {\n\t\t\tif (_p29._1.ctor === 'RBEmpty_elm_builtin') {\n\t\t\t\tvar _p30 = c;\n\t\t\t\tswitch (_p30.ctor) {\n\t\t\t\t\tcase 'Red':\n\t\t\t\t\t\treturn _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBlack);\n\t\t\t\t\tcase 'Black':\n\t\t\t\t\t\treturn _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBBlack);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn _elm_lang$core$Native_Debug.crash('cannot have bblack or nblack nodes at this point');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar _p33 = _p29._1._0;\n\t\t\t\tvar _p32 = _p29._0._0;\n\t\t\t\tvar _p31 = {ctor: '_Tuple3', _0: c, _1: _p32, _2: _p33};\n\t\t\t\tif ((((_p31.ctor === '_Tuple3') && (_p31._0.ctor === 'Black')) && (_p31._1.ctor === 'LBlack')) && (_p31._2.ctor === 'Red')) {\n\t\t\t\t\treturn A5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Black, _p29._1._1, _p29._1._2, _p29._1._3, _p29._1._4);\n\t\t\t\t} else {\n\t\t\t\t\treturn A4(\n\t\t\t\t\t\t_elm_lang$core$Dict$reportRemBug,\n\t\t\t\t\t\t'Black/LBlack/Red',\n\t\t\t\t\t\tc,\n\t\t\t\t\t\t_elm_lang$core$Basics$toString(_p32),\n\t\t\t\t\t\t_elm_lang$core$Basics$toString(_p33));\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (_p29._1.ctor === 'RBEmpty_elm_builtin') {\n\t\t\t\tvar _p36 = _p29._1._0;\n\t\t\t\tvar _p35 = _p29._0._0;\n\t\t\t\tvar _p34 = {ctor: '_Tuple3', _0: c, _1: _p35, _2: _p36};\n\t\t\t\tif ((((_p34.ctor === '_Tuple3') && (_p34._0.ctor === 'Black')) && (_p34._1.ctor === 'Red')) && (_p34._2.ctor === 'LBlack')) {\n\t\t\t\t\treturn A5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Black, _p29._0._1, _p29._0._2, _p29._0._3, _p29._0._4);\n\t\t\t\t} else {\n\t\t\t\t\treturn A4(\n\t\t\t\t\t\t_elm_lang$core$Dict$reportRemBug,\n\t\t\t\t\t\t'Black/Red/LBlack',\n\t\t\t\t\t\tc,\n\t\t\t\t\t\t_elm_lang$core$Basics$toString(_p35),\n\t\t\t\t\t\t_elm_lang$core$Basics$toString(_p36));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar _p40 = _p29._0._2;\n\t\t\t\tvar _p39 = _p29._0._4;\n\t\t\t\tvar _p38 = _p29._0._1;\n\t\t\t\tvar l$ = A5(_elm_lang$core$Dict$removeMax, _p29._0._0, _p38, _p40, _p29._0._3, _p39);\n\t\t\t\tvar _p37 = A3(_elm_lang$core$Dict$maxWithDefault, _p38, _p40, _p39);\n\t\t\t\tvar k = _p37._0;\n\t\t\t\tvar v = _p37._1;\n\t\t\t\treturn A5(_elm_lang$core$Dict$bubble, c, k, v, l$, r);\n\t\t\t}\n\t\t}\n\t});\nvar _elm_lang$core$Dict$map = F2(\n\tfunction (f, dict) {\n\t\tvar _p41 = dict;\n\t\tif (_p41.ctor === 'RBEmpty_elm_builtin') {\n\t\t\treturn _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBlack);\n\t\t} else {\n\t\t\tvar _p42 = _p41._1;\n\t\t\treturn A5(\n\t\t\t\t_elm_lang$core$Dict$RBNode_elm_builtin,\n\t\t\t\t_p41._0,\n\t\t\t\t_p42,\n\t\t\t\tA2(f, _p42, _p41._2),\n\t\t\t\tA2(_elm_lang$core$Dict$map, f, _p41._3),\n\t\t\t\tA2(_elm_lang$core$Dict$map, f, _p41._4));\n\t\t}\n\t});\nvar _elm_lang$core$Dict$Same = {ctor: 'Same'};\nvar _elm_lang$core$Dict$Remove = {ctor: 'Remove'};\nvar _elm_lang$core$Dict$Insert = {ctor: 'Insert'};\nvar _elm_lang$core$Dict$update = F3(\n\tfunction (k, alter, dict) {\n\t\tvar up = function (dict) {\n\t\t\tvar _p43 = dict;\n\t\t\tif (_p43.ctor === 'RBEmpty_elm_builtin') {\n\t\t\t\tvar _p44 = alter(_elm_lang$core$Maybe$Nothing);\n\t\t\t\tif (_p44.ctor === 'Nothing') {\n\t\t\t\t\treturn {ctor: '_Tuple2', _0: _elm_lang$core$Dict$Same, _1: _elm_lang$core$Dict$empty};\n\t\t\t\t} else {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: _elm_lang$core$Dict$Insert,\n\t\t\t\t\t\t_1: A5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Red, k, _p44._0, _elm_lang$core$Dict$empty, _elm_lang$core$Dict$empty)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar _p55 = _p43._2;\n\t\t\t\tvar _p54 = _p43._4;\n\t\t\t\tvar _p53 = _p43._3;\n\t\t\t\tvar _p52 = _p43._1;\n\t\t\t\tvar _p51 = _p43._0;\n\t\t\t\tvar _p45 = A2(_elm_lang$core$Basics$compare, k, _p52);\n\t\t\t\tswitch (_p45.ctor) {\n\t\t\t\t\tcase 'EQ':\n\t\t\t\t\t\tvar _p46 = alter(\n\t\t\t\t\t\t\t_elm_lang$core$Maybe$Just(_p55));\n\t\t\t\t\t\tif (_p46.ctor === 'Nothing') {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t_0: _elm_lang$core$Dict$Remove,\n\t\t\t\t\t\t\t\t_1: A3(_elm_lang$core$Dict$rem, _p51, _p53, _p54)\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t_0: _elm_lang$core$Dict$Same,\n\t\t\t\t\t\t\t\t_1: A5(_elm_lang$core$Dict$RBNode_elm_builtin, _p51, _p52, _p46._0, _p53, _p54)\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'LT':\n\t\t\t\t\t\tvar _p47 = up(_p53);\n\t\t\t\t\t\tvar flag = _p47._0;\n\t\t\t\t\t\tvar newLeft = _p47._1;\n\t\t\t\t\t\tvar _p48 = flag;\n\t\t\t\t\t\tswitch (_p48.ctor) {\n\t\t\t\t\t\t\tcase 'Same':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t\t_0: _elm_lang$core$Dict$Same,\n\t\t\t\t\t\t\t\t\t_1: A5(_elm_lang$core$Dict$RBNode_elm_builtin, _p51, _p52, _p55, newLeft, _p54)\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'Insert':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t\t_0: _elm_lang$core$Dict$Insert,\n\t\t\t\t\t\t\t\t\t_1: A5(_elm_lang$core$Dict$balance, _p51, _p52, _p55, newLeft, _p54)\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t\t_0: _elm_lang$core$Dict$Remove,\n\t\t\t\t\t\t\t\t\t_1: A5(_elm_lang$core$Dict$bubble, _p51, _p52, _p55, newLeft, _p54)\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar _p49 = up(_p54);\n\t\t\t\t\t\tvar flag = _p49._0;\n\t\t\t\t\t\tvar newRight = _p49._1;\n\t\t\t\t\t\tvar _p50 = flag;\n\t\t\t\t\t\tswitch (_p50.ctor) {\n\t\t\t\t\t\t\tcase 'Same':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t\t_0: _elm_lang$core$Dict$Same,\n\t\t\t\t\t\t\t\t\t_1: A5(_elm_lang$core$Dict$RBNode_elm_builtin, _p51, _p52, _p55, _p53, newRight)\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'Insert':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t\t_0: _elm_lang$core$Dict$Insert,\n\t\t\t\t\t\t\t\t\t_1: A5(_elm_lang$core$Dict$balance, _p51, _p52, _p55, _p53, newRight)\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t\t_0: _elm_lang$core$Dict$Remove,\n\t\t\t\t\t\t\t\t\t_1: A5(_elm_lang$core$Dict$bubble, _p51, _p52, _p55, _p53, newRight)\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tvar _p56 = up(dict);\n\t\tvar flag = _p56._0;\n\t\tvar updatedDict = _p56._1;\n\t\tvar _p57 = flag;\n\t\tswitch (_p57.ctor) {\n\t\t\tcase 'Same':\n\t\t\t\treturn updatedDict;\n\t\t\tcase 'Insert':\n\t\t\t\treturn _elm_lang$core$Dict$ensureBlackRoot(updatedDict);\n\t\t\tdefault:\n\t\t\t\treturn _elm_lang$core$Dict$blacken(updatedDict);\n\t\t}\n\t});\nvar _elm_lang$core$Dict$insert = F3(\n\tfunction (key, value, dict) {\n\t\treturn A3(\n\t\t\t_elm_lang$core$Dict$update,\n\t\t\tkey,\n\t\t\t_elm_lang$core$Basics$always(\n\t\t\t\t_elm_lang$core$Maybe$Just(value)),\n\t\t\tdict);\n\t});\nvar _elm_lang$core$Dict$singleton = F2(\n\tfunction (key, value) {\n\t\treturn A3(_elm_lang$core$Dict$insert, key, value, _elm_lang$core$Dict$empty);\n\t});\nvar _elm_lang$core$Dict$union = F2(\n\tfunction (t1, t2) {\n\t\treturn A3(_elm_lang$core$Dict$foldl, _elm_lang$core$Dict$insert, t2, t1);\n\t});\nvar _elm_lang$core$Dict$filter = F2(\n\tfunction (predicate, dictionary) {\n\t\tvar add = F3(\n\t\t\tfunction (key, value, dict) {\n\t\t\t\treturn A2(predicate, key, value) ? A3(_elm_lang$core$Dict$insert, key, value, dict) : dict;\n\t\t\t});\n\t\treturn A3(_elm_lang$core$Dict$foldl, add, _elm_lang$core$Dict$empty, dictionary);\n\t});\nvar _elm_lang$core$Dict$intersect = F2(\n\tfunction (t1, t2) {\n\t\treturn A2(\n\t\t\t_elm_lang$core$Dict$filter,\n\t\t\tF2(\n\t\t\t\tfunction (k, _p58) {\n\t\t\t\t\treturn A2(_elm_lang$core$Dict$member, k, t2);\n\t\t\t\t}),\n\t\t\tt1);\n\t});\nvar _elm_lang$core$Dict$partition = F2(\n\tfunction (predicate, dict) {\n\t\tvar add = F3(\n\t\t\tfunction (key, value, _p59) {\n\t\t\t\tvar _p60 = _p59;\n\t\t\t\tvar _p62 = _p60._1;\n\t\t\t\tvar _p61 = _p60._0;\n\t\t\t\treturn A2(predicate, key, value) ? {\n\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t_0: A3(_elm_lang$core$Dict$insert, key, value, _p61),\n\t\t\t\t\t_1: _p62\n\t\t\t\t} : {\n\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t_0: _p61,\n\t\t\t\t\t_1: A3(_elm_lang$core$Dict$insert, key, value, _p62)\n\t\t\t\t};\n\t\t\t});\n\t\treturn A3(\n\t\t\t_elm_lang$core$Dict$foldl,\n\t\t\tadd,\n\t\t\t{ctor: '_Tuple2', _0: _elm_lang$core$Dict$empty, _1: _elm_lang$core$Dict$empty},\n\t\t\tdict);\n\t});\nvar _elm_lang$core$Dict$fromList = function (assocs) {\n\treturn A3(\n\t\t_elm_lang$core$List$foldl,\n\t\tF2(\n\t\t\tfunction (_p63, dict) {\n\t\t\t\tvar _p64 = _p63;\n\t\t\t\treturn A3(_elm_lang$core$Dict$insert, _p64._0, _p64._1, dict);\n\t\t\t}),\n\t\t_elm_lang$core$Dict$empty,\n\t\tassocs);\n};\nvar _elm_lang$core$Dict$remove = F2(\n\tfunction (key, dict) {\n\t\treturn A3(\n\t\t\t_elm_lang$core$Dict$update,\n\t\t\tkey,\n\t\t\t_elm_lang$core$Basics$always(_elm_lang$core$Maybe$Nothing),\n\t\t\tdict);\n\t});\nvar _elm_lang$core$Dict$diff = F2(\n\tfunction (t1, t2) {\n\t\treturn A3(\n\t\t\t_elm_lang$core$Dict$foldl,\n\t\t\tF3(\n\t\t\t\tfunction (k, v, t) {\n\t\t\t\t\treturn A2(_elm_lang$core$Dict$remove, k, t);\n\t\t\t\t}),\n\t\t\tt1,\n\t\t\tt2);\n\t});\n//import Maybe, Native.Array, Native.List, Native.Utils, Result //\n\nvar _elm_lang$core$Native_Json = function() {\n\n\n// CORE DECODERS\n\nfunction succeed(msg)\n{\n\treturn {\n\t\tctor: '<decoder>',\n\t\ttag: 'succeed',\n\t\tmsg: msg\n\t};\n}\n\nfunction fail(msg)\n{\n\treturn {\n\t\tctor: '<decoder>',\n\t\ttag: 'fail',\n\t\tmsg: msg\n\t};\n}\n\nfunction decodePrimitive(tag)\n{\n\treturn {\n\t\tctor: '<decoder>',\n\t\ttag: tag\n\t};\n}\n\nfunction decodeContainer(tag, decoder)\n{\n\treturn {\n\t\tctor: '<decoder>',\n\t\ttag: tag,\n\t\tdecoder: decoder\n\t};\n}\n\nfunction decodeNull(value)\n{\n\treturn {\n\t\tctor: '<decoder>',\n\t\ttag: 'null',\n\t\tvalue: value\n\t};\n}\n\nfunction decodeField(field, decoder)\n{\n\treturn {\n\t\tctor: '<decoder>',\n\t\ttag: 'field',\n\t\tfield: field,\n\t\tdecoder: decoder\n\t};\n}\n\nfunction decodeKeyValuePairs(decoder)\n{\n\treturn {\n\t\tctor: '<decoder>',\n\t\ttag: 'key-value',\n\t\tdecoder: decoder\n\t};\n}\n\nfunction decodeObject(f, decoders)\n{\n\treturn {\n\t\tctor: '<decoder>',\n\t\ttag: 'map-many',\n\t\tfunc: f,\n\t\tdecoders: decoders\n\t};\n}\n\nfunction decodeTuple(f, decoders)\n{\n\treturn {\n\t\tctor: '<decoder>',\n\t\ttag: 'tuple',\n\t\tfunc: f,\n\t\tdecoders: decoders\n\t};\n}\n\nfunction andThen(decoder, callback)\n{\n\treturn {\n\t\tctor: '<decoder>',\n\t\ttag: 'andThen',\n\t\tdecoder: decoder,\n\t\tcallback: callback\n\t};\n}\n\nfunction customAndThen(decoder, callback)\n{\n\treturn {\n\t\tctor: '<decoder>',\n\t\ttag: 'customAndThen',\n\t\tdecoder: decoder,\n\t\tcallback: callback\n\t};\n}\n\nfunction oneOf(decoders)\n{\n\treturn {\n\t\tctor: '<decoder>',\n\t\ttag: 'oneOf',\n\t\tdecoders: decoders\n\t};\n}\n\n\n// DECODING OBJECTS\n\nfunction decodeObject1(f, d1)\n{\n\treturn decodeObject(f, [d1]);\n}\n\nfunction decodeObject2(f, d1, d2)\n{\n\treturn decodeObject(f, [d1, d2]);\n}\n\nfunction decodeObject3(f, d1, d2, d3)\n{\n\treturn decodeObject(f, [d1, d2, d3]);\n}\n\nfunction decodeObject4(f, d1, d2, d3, d4)\n{\n\treturn decodeObject(f, [d1, d2, d3, d4]);\n}\n\nfunction decodeObject5(f, d1, d2, d3, d4, d5)\n{\n\treturn decodeObject(f, [d1, d2, d3, d4, d5]);\n}\n\nfunction decodeObject6(f, d1, d2, d3, d4, d5, d6)\n{\n\treturn decodeObject(f, [d1, d2, d3, d4, d5, d6]);\n}\n\nfunction decodeObject7(f, d1, d2, d3, d4, d5, d6, d7)\n{\n\treturn decodeObject(f, [d1, d2, d3, d4, d5, d6, d7]);\n}\n\nfunction decodeObject8(f, d1, d2, d3, d4, d5, d6, d7, d8)\n{\n\treturn decodeObject(f, [d1, d2, d3, d4, d5, d6, d7, d8]);\n}\n\n\n// DECODING TUPLES\n\nfunction decodeTuple1(f, d1)\n{\n\treturn decodeTuple(f, [d1]);\n}\n\nfunction decodeTuple2(f, d1, d2)\n{\n\treturn decodeTuple(f, [d1, d2]);\n}\n\nfunction decodeTuple3(f, d1, d2, d3)\n{\n\treturn decodeTuple(f, [d1, d2, d3]);\n}\n\nfunction decodeTuple4(f, d1, d2, d3, d4)\n{\n\treturn decodeTuple(f, [d1, d2, d3, d4]);\n}\n\nfunction decodeTuple5(f, d1, d2, d3, d4, d5)\n{\n\treturn decodeTuple(f, [d1, d2, d3, d4, d5]);\n}\n\nfunction decodeTuple6(f, d1, d2, d3, d4, d5, d6)\n{\n\treturn decodeTuple(f, [d1, d2, d3, d4, d5, d6]);\n}\n\nfunction decodeTuple7(f, d1, d2, d3, d4, d5, d6, d7)\n{\n\treturn decodeTuple(f, [d1, d2, d3, d4, d5, d6, d7]);\n}\n\nfunction decodeTuple8(f, d1, d2, d3, d4, d5, d6, d7, d8)\n{\n\treturn decodeTuple(f, [d1, d2, d3, d4, d5, d6, d7, d8]);\n}\n\n\n// DECODE HELPERS\n\nfunction ok(value)\n{\n\treturn { tag: 'ok', value: value };\n}\n\nfunction badPrimitive(type, value)\n{\n\treturn { tag: 'primitive', type: type, value: value };\n}\n\nfunction badIndex(index, nestedProblems)\n{\n\treturn { tag: 'index', index: index, rest: nestedProblems };\n}\n\nfunction badField(field, nestedProblems)\n{\n\treturn { tag: 'field', field: field, rest: nestedProblems };\n}\n\nfunction badOneOf(problems)\n{\n\treturn { tag: 'oneOf', problems: problems };\n}\n\nfunction badCustom(msg)\n{\n\treturn { tag: 'custom', msg: msg };\n}\n\nfunction bad(msg)\n{\n\treturn { tag: 'fail', msg: msg };\n}\n\nfunction badToString(problem)\n{\n\tvar context = '_';\n\twhile (problem)\n\t{\n\t\tswitch (problem.tag)\n\t\t{\n\t\t\tcase 'primitive':\n\t\t\t\treturn 'Expecting ' + problem.type\n\t\t\t\t\t+ (context === '_' ? '' : ' at ' + context)\n\t\t\t\t\t+ ' but instead got: ' + jsToString(problem.value);\n\n\t\t\tcase 'index':\n\t\t\t\tcontext += '[' + problem.index + ']';\n\t\t\t\tproblem = problem.rest;\n\t\t\t\tbreak;\n\n\t\t\tcase 'field':\n\t\t\t\tcontext += '.' + problem.field;\n\t\t\t\tproblem = problem.rest;\n\t\t\t\tbreak;\n\n\t\t\tcase 'oneOf':\n\t\t\t\tvar problems = problem.problems;\n\t\t\t\tfor (var i = 0; i < problems.length; i++)\n\t\t\t\t{\n\t\t\t\t\tproblems[i] = badToString(problems[i]);\n\t\t\t\t}\n\t\t\t\treturn 'I ran into the following problems'\n\t\t\t\t\t+ (context === '_' ? '' : ' at ' + context)\n\t\t\t\t\t+ ':\\n\\n' + problems.join('\\n');\n\n\t\t\tcase 'custom':\n\t\t\t\treturn 'A `customDecoder` failed'\n\t\t\t\t\t+ (context === '_' ? '' : ' at ' + context)\n\t\t\t\t\t+ ' with the message: ' + problem.msg;\n\n\t\t\tcase 'fail':\n\t\t\t\treturn 'I ran into a `fail` decoder'\n\t\t\t\t\t+ (context === '_' ? '' : ' at ' + context)\n\t\t\t\t\t+ ': ' + problem.msg;\n\t\t}\n\t}\n}\n\nfunction jsToString(value)\n{\n\treturn value === undefined\n\t\t? 'undefined'\n\t\t: JSON.stringify(value);\n}\n\n\n// DECODE\n\nfunction runOnString(decoder, string)\n{\n\tvar json;\n\ttry\n\t{\n\t\tjson = JSON.parse(string);\n\t}\n\tcatch (e)\n\t{\n\t\treturn _elm_lang$core$Result$Err('Given an invalid JSON: ' + e.message);\n\t}\n\treturn run(decoder, json);\n}\n\nfunction run(decoder, value)\n{\n\tvar result = runHelp(decoder, value);\n\treturn (result.tag === 'ok')\n\t\t? _elm_lang$core$Result$Ok(result.value)\n\t\t: _elm_lang$core$Result$Err(badToString(result));\n}\n\nfunction runHelp(decoder, value)\n{\n\tswitch (decoder.tag)\n\t{\n\t\tcase 'bool':\n\t\t\treturn (typeof value === 'boolean')\n\t\t\t\t? ok(value)\n\t\t\t\t: badPrimitive('a Bool', value);\n\n\t\tcase 'int':\n\t\t\tif (typeof value !== 'number') {\n\t\t\t\treturn badPrimitive('an Int', value);\n\t\t\t}\n\n\t\t\tif (-2147483647 < value && value < 2147483647 && (value | 0) === value) {\n\t\t\t\treturn ok(value);\n\t\t\t}\n\n\t\t\tif (isFinite(value) && !(value % 1)) {\n\t\t\t\treturn ok(value);\n\t\t\t}\n\n\t\t\treturn badPrimitive('an Int', value);\n\n\t\tcase 'float':\n\t\t\treturn (typeof value === 'number')\n\t\t\t\t? ok(value)\n\t\t\t\t: badPrimitive('a Float', value);\n\n\t\tcase 'string':\n\t\t\treturn (typeof value === 'string')\n\t\t\t\t? ok(value)\n\t\t\t\t: (value instanceof String)\n\t\t\t\t\t? ok(value + '')\n\t\t\t\t\t: badPrimitive('a String', value);\n\n\t\tcase 'null':\n\t\t\treturn (value === null)\n\t\t\t\t? ok(decoder.value)\n\t\t\t\t: badPrimitive('null', value);\n\n\t\tcase 'value':\n\t\t\treturn ok(value);\n\n\t\tcase 'list':\n\t\t\tif (!(value instanceof Array))\n\t\t\t{\n\t\t\t\treturn badPrimitive('a List', value);\n\t\t\t}\n\n\t\t\tvar list = _elm_lang$core$Native_List.Nil;\n\t\t\tfor (var i = value.length; i--; )\n\t\t\t{\n\t\t\t\tvar result = runHelp(decoder.decoder, value[i]);\n\t\t\t\tif (result.tag !== 'ok')\n\t\t\t\t{\n\t\t\t\t\treturn badIndex(i, result)\n\t\t\t\t}\n\t\t\t\tlist = _elm_lang$core$Native_List.Cons(result.value, list);\n\t\t\t}\n\t\t\treturn ok(list);\n\n\t\tcase 'array':\n\t\t\tif (!(value instanceof Array))\n\t\t\t{\n\t\t\t\treturn badPrimitive('an Array', value);\n\t\t\t}\n\n\t\t\tvar len = value.length;\n\t\t\tvar array = new Array(len);\n\t\t\tfor (var i = len; i--; )\n\t\t\t{\n\t\t\t\tvar result = runHelp(decoder.decoder, value[i]);\n\t\t\t\tif (result.tag !== 'ok')\n\t\t\t\t{\n\t\t\t\t\treturn badIndex(i, result);\n\t\t\t\t}\n\t\t\t\tarray[i] = result.value;\n\t\t\t}\n\t\t\treturn ok(_elm_lang$core$Native_Array.fromJSArray(array));\n\n\t\tcase 'maybe':\n\t\t\tvar result = runHelp(decoder.decoder, value);\n\t\t\treturn (result.tag === 'ok')\n\t\t\t\t? ok(_elm_lang$core$Maybe$Just(result.value))\n\t\t\t\t: ok(_elm_lang$core$Maybe$Nothing);\n\n\t\tcase 'field':\n\t\t\tvar field = decoder.field;\n\t\t\tif (typeof value !== 'object' || value === null || !(field in value))\n\t\t\t{\n\t\t\t\treturn badPrimitive('an object with a field named `' + field + '`', value);\n\t\t\t}\n\n\t\t\tvar result = runHelp(decoder.decoder, value[field]);\n\t\t\treturn (result.tag === 'ok')\n\t\t\t\t? result\n\t\t\t\t: badField(field, result);\n\n\t\tcase 'key-value':\n\t\t\tif (typeof value !== 'object' || value === null || value instanceof Array)\n\t\t\t{\n\t\t\t\treturn badPrimitive('an object', value);\n\t\t\t}\n\n\t\t\tvar keyValuePairs = _elm_lang$core$Native_List.Nil;\n\t\t\tfor (var key in value)\n\t\t\t{\n\t\t\t\tvar result = runHelp(decoder.decoder, value[key]);\n\t\t\t\tif (result.tag !== 'ok')\n\t\t\t\t{\n\t\t\t\t\treturn badField(key, result);\n\t\t\t\t}\n\t\t\t\tvar pair = _elm_lang$core$Native_Utils.Tuple2(key, result.value);\n\t\t\t\tkeyValuePairs = _elm_lang$core$Native_List.Cons(pair, keyValuePairs);\n\t\t\t}\n\t\t\treturn ok(keyValuePairs);\n\n\t\tcase 'map-many':\n\t\t\tvar answer = decoder.func;\n\t\t\tvar decoders = decoder.decoders;\n\t\t\tfor (var i = 0; i < decoders.length; i++)\n\t\t\t{\n\t\t\t\tvar result = runHelp(decoders[i], value);\n\t\t\t\tif (result.tag !== 'ok')\n\t\t\t\t{\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t\tanswer = answer(result.value);\n\t\t\t}\n\t\t\treturn ok(answer);\n\n\t\tcase 'tuple':\n\t\t\tvar decoders = decoder.decoders;\n\t\t\tvar len = decoders.length;\n\n\t\t\tif ( !(value instanceof Array) || value.length !== len )\n\t\t\t{\n\t\t\t\treturn badPrimitive('a Tuple with ' + len + ' entries', value);\n\t\t\t}\n\n\t\t\tvar answer = decoder.func;\n\t\t\tfor (var i = 0; i < len; i++)\n\t\t\t{\n\t\t\t\tvar result = runHelp(decoders[i], value[i]);\n\t\t\t\tif (result.tag !== 'ok')\n\t\t\t\t{\n\t\t\t\t\treturn badIndex(i, result);\n\t\t\t\t}\n\t\t\t\tanswer = answer(result.value);\n\t\t\t}\n\t\t\treturn ok(answer);\n\n\t\tcase 'customAndThen':\n\t\t\tvar result = runHelp(decoder.decoder, value);\n\t\t\tif (result.tag !== 'ok')\n\t\t\t{\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tvar realResult = decoder.callback(result.value);\n\t\t\tif (realResult.ctor === 'Err')\n\t\t\t{\n\t\t\t\treturn badCustom(realResult._0);\n\t\t\t}\n\t\t\treturn ok(realResult._0);\n\n\t\tcase 'andThen':\n\t\t\tvar result = runHelp(decoder.decoder, value);\n\t\t\treturn (result.tag !== 'ok')\n\t\t\t\t? result\n\t\t\t\t: runHelp(decoder.callback(result.value), value);\n\n\t\tcase 'oneOf':\n\t\t\tvar errors = [];\n\t\t\tvar temp = decoder.decoders;\n\t\t\twhile (temp.ctor !== '[]')\n\t\t\t{\n\t\t\t\tvar result = runHelp(temp._0, value);\n\n\t\t\t\tif (result.tag === 'ok')\n\t\t\t\t{\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\terrors.push(result);\n\n\t\t\t\ttemp = temp._1;\n\t\t\t}\n\t\t\treturn badOneOf(errors);\n\n\t\tcase 'fail':\n\t\t\treturn bad(decoder.msg);\n\n\t\tcase 'succeed':\n\t\t\treturn ok(decoder.msg);\n\t}\n}\n\n\n// EQUALITY\n\nfunction equality(a, b)\n{\n\tif (a === b)\n\t{\n\t\treturn true;\n\t}\n\n\tif (a.tag !== b.tag)\n\t{\n\t\treturn false;\n\t}\n\n\tswitch (a.tag)\n\t{\n\t\tcase 'succeed':\n\t\tcase 'fail':\n\t\t\treturn a.msg === b.msg;\n\n\t\tcase 'bool':\n\t\tcase 'int':\n\t\tcase 'float':\n\t\tcase 'string':\n\t\tcase 'value':\n\t\t\treturn true;\n\n\t\tcase 'null':\n\t\t\treturn a.value === b.value;\n\n\t\tcase 'list':\n\t\tcase 'array':\n\t\tcase 'maybe':\n\t\tcase 'key-value':\n\t\t\treturn equality(a.decoder, b.decoder);\n\n\t\tcase 'field':\n\t\t\treturn a.field === b.field && equality(a.decoder, b.decoder);\n\n\t\tcase 'map-many':\n\t\tcase 'tuple':\n\t\t\tif (a.func !== b.func)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn listEquality(a.decoders, b.decoders);\n\n\t\tcase 'andThen':\n\t\tcase 'customAndThen':\n\t\t\treturn a.callback === b.callback && equality(a.decoder, b.decoder);\n\n\t\tcase 'oneOf':\n\t\t\treturn listEquality(a.decoders, b.decoders);\n\t}\n}\n\nfunction listEquality(aDecoders, bDecoders)\n{\n\tvar len = aDecoders.length;\n\tif (len !== bDecoders.length)\n\t{\n\t\treturn false;\n\t}\n\tfor (var i = 0; i < len; i++)\n\t{\n\t\tif (!equality(aDecoders[i], bDecoders[i]))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// ENCODE\n\nfunction encode(indentLevel, value)\n{\n\treturn JSON.stringify(value, null, indentLevel);\n}\n\nfunction identity(value)\n{\n\treturn value;\n}\n\nfunction encodeObject(keyValuePairs)\n{\n\tvar obj = {};\n\twhile (keyValuePairs.ctor !== '[]')\n\t{\n\t\tvar pair = keyValuePairs._0;\n\t\tobj[pair._0] = pair._1;\n\t\tkeyValuePairs = keyValuePairs._1;\n\t}\n\treturn obj;\n}\n\nreturn {\n\tencode: F2(encode),\n\trunOnString: F2(runOnString),\n\trun: F2(run),\n\n\tdecodeNull: decodeNull,\n\tdecodePrimitive: decodePrimitive,\n\tdecodeContainer: F2(decodeContainer),\n\n\tdecodeField: F2(decodeField),\n\n\tdecodeObject1: F2(decodeObject1),\n\tdecodeObject2: F3(decodeObject2),\n\tdecodeObject3: F4(decodeObject3),\n\tdecodeObject4: F5(decodeObject4),\n\tdecodeObject5: F6(decodeObject5),\n\tdecodeObject6: F7(decodeObject6),\n\tdecodeObject7: F8(decodeObject7),\n\tdecodeObject8: F9(decodeObject8),\n\tdecodeKeyValuePairs: decodeKeyValuePairs,\n\n\tdecodeTuple1: F2(decodeTuple1),\n\tdecodeTuple2: F3(decodeTuple2),\n\tdecodeTuple3: F4(decodeTuple3),\n\tdecodeTuple4: F5(decodeTuple4),\n\tdecodeTuple5: F6(decodeTuple5),\n\tdecodeTuple6: F7(decodeTuple6),\n\tdecodeTuple7: F8(decodeTuple7),\n\tdecodeTuple8: F9(decodeTuple8),\n\n\tandThen: F2(andThen),\n\tcustomAndThen: F2(customAndThen),\n\tfail: fail,\n\tsucceed: succeed,\n\toneOf: oneOf,\n\n\tidentity: identity,\n\tencodeNull: null,\n\tencodeArray: _elm_lang$core$Native_Array.toJSArray,\n\tencodeList: _elm_lang$core$Native_List.toArray,\n\tencodeObject: encodeObject,\n\n\tequality: equality\n};\n\n}();\nvar _elm_lang$core$Json_Encode$list = _elm_lang$core$Native_Json.encodeList;\nvar _elm_lang$core$Json_Encode$array = _elm_lang$core$Native_Json.encodeArray;\nvar _elm_lang$core$Json_Encode$object = _elm_lang$core$Native_Json.encodeObject;\nvar _elm_lang$core$Json_Encode$null = _elm_lang$core$Native_Json.encodeNull;\nvar _elm_lang$core$Json_Encode$bool = _elm_lang$core$Native_Json.identity;\nvar _elm_lang$core$Json_Encode$float = _elm_lang$core$Native_Json.identity;\nvar _elm_lang$core$Json_Encode$int = _elm_lang$core$Native_Json.identity;\nvar _elm_lang$core$Json_Encode$string = _elm_lang$core$Native_Json.identity;\nvar _elm_lang$core$Json_Encode$encode = _elm_lang$core$Native_Json.encode;\nvar _elm_lang$core$Json_Encode$Value = {ctor: 'Value'};\nvar _elm_lang$core$Json_Decode$tuple8 = _elm_lang$core$Native_Json.decodeTuple8;\nvar _elm_lang$core$Json_Decode$tuple7 = _elm_lang$core$Native_Json.decodeTuple7;\nvar _elm_lang$core$Json_Decode$tuple6 = _elm_lang$core$Native_Json.decodeTuple6;\nvar _elm_lang$core$Json_Decode$tuple5 = _elm_lang$core$Native_Json.decodeTuple5;\nvar _elm_lang$core$Json_Decode$tuple4 = _elm_lang$core$Native_Json.decodeTuple4;\nvar _elm_lang$core$Json_Decode$tuple3 = _elm_lang$core$Native_Json.decodeTuple3;\nvar _elm_lang$core$Json_Decode$tuple2 = _elm_lang$core$Native_Json.decodeTuple2;\nvar _elm_lang$core$Json_Decode$tuple1 = _elm_lang$core$Native_Json.decodeTuple1;\nvar _elm_lang$core$Json_Decode$succeed = _elm_lang$core$Native_Json.succeed;\nvar _elm_lang$core$Json_Decode$fail = _elm_lang$core$Native_Json.fail;\nvar _elm_lang$core$Json_Decode$andThen = _elm_lang$core$Native_Json.andThen;\nvar _elm_lang$core$Json_Decode$customDecoder = _elm_lang$core$Native_Json.customAndThen;\nvar _elm_lang$core$Json_Decode$decodeValue = _elm_lang$core$Native_Json.run;\nvar _elm_lang$core$Json_Decode$value = _elm_lang$core$Native_Json.decodePrimitive('value');\nvar _elm_lang$core$Json_Decode$maybe = function (decoder) {\n\treturn A2(_elm_lang$core$Native_Json.decodeContainer, 'maybe', decoder);\n};\nvar _elm_lang$core$Json_Decode$null = _elm_lang$core$Native_Json.decodeNull;\nvar _elm_lang$core$Json_Decode$array = function (decoder) {\n\treturn A2(_elm_lang$core$Native_Json.decodeContainer, 'array', decoder);\n};\nvar _elm_lang$core$Json_Decode$list = function (decoder) {\n\treturn A2(_elm_lang$core$Native_Json.decodeContainer, 'list', decoder);\n};\nvar _elm_lang$core$Json_Decode$bool = _elm_lang$core$Native_Json.decodePrimitive('bool');\nvar _elm_lang$core$Json_Decode$int = _elm_lang$core$Native_Json.decodePrimitive('int');\nvar _elm_lang$core$Json_Decode$float = _elm_lang$core$Native_Json.decodePrimitive('float');\nvar _elm_lang$core$Json_Decode$string = _elm_lang$core$Native_Json.decodePrimitive('string');\nvar _elm_lang$core$Json_Decode$oneOf = _elm_lang$core$Native_Json.oneOf;\nvar _elm_lang$core$Json_Decode$keyValuePairs = _elm_lang$core$Native_Json.decodeKeyValuePairs;\nvar _elm_lang$core$Json_Decode$object8 = _elm_lang$core$Native_Json.decodeObject8;\nvar _elm_lang$core$Json_Decode$object7 = _elm_lang$core$Native_Json.decodeObject7;\nvar _elm_lang$core$Json_Decode$object6 = _elm_lang$core$Native_Json.decodeObject6;\nvar _elm_lang$core$Json_Decode$object5 = _elm_lang$core$Native_Json.decodeObject5;\nvar _elm_lang$core$Json_Decode$object4 = _elm_lang$core$Native_Json.decodeObject4;\nvar _elm_lang$core$Json_Decode$object3 = _elm_lang$core$Native_Json.decodeObject3;\nvar _elm_lang$core$Json_Decode$object2 = _elm_lang$core$Native_Json.decodeObject2;\nvar _elm_lang$core$Json_Decode$object1 = _elm_lang$core$Native_Json.decodeObject1;\nvar _elm_lang$core$Json_Decode_ops = _elm_lang$core$Json_Decode_ops || {};\n_elm_lang$core$Json_Decode_ops[':='] = _elm_lang$core$Native_Json.decodeField;\nvar _elm_lang$core$Json_Decode$at = F2(\n\tfunction (fields, decoder) {\n\t\treturn A3(\n\t\t\t_elm_lang$core$List$foldr,\n\t\t\tF2(\n\t\t\t\tfunction (x, y) {\n\t\t\t\t\treturn A2(_elm_lang$core$Json_Decode_ops[':='], x, y);\n\t\t\t\t}),\n\t\t\tdecoder,\n\t\t\tfields);\n\t});\nvar _elm_lang$core$Json_Decode$decodeString = _elm_lang$core$Native_Json.runOnString;\nvar _elm_lang$core$Json_Decode$map = _elm_lang$core$Native_Json.decodeObject1;\nvar _elm_lang$core$Json_Decode$dict = function (decoder) {\n\treturn A2(\n\t\t_elm_lang$core$Json_Decode$map,\n\t\t_elm_lang$core$Dict$fromList,\n\t\t_elm_lang$core$Json_Decode$keyValuePairs(decoder));\n};\nvar _elm_lang$core$Json_Decode$Decoder = {ctor: 'Decoder'};\n//import Result //\n\nvar _elm_lang$core$Native_Date = function() {\n\nfunction fromString(str)\n{\n\tvar date = new Date(str);\n\treturn isNaN(date.getTime())\n\t\t? _elm_lang$core$Result$Err('Unable to parse \\'' + str + '\\' as a date. Dates must be in the ISO 8601 format.')\n\t\t: _elm_lang$core$Result$Ok(date);\n}\n\nvar dayTable = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\nvar monthTable =\n\t['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n\t 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\n\nreturn {\n\tfromString: fromString,\n\tyear: function(d) { return d.getFullYear(); },\n\tmonth: function(d) { return { ctor: monthTable[d.getMonth()] }; },\n\tday: function(d) { return d.getDate(); },\n\thour: function(d) { return d.getHours(); },\n\tminute: function(d) { return d.getMinutes(); },\n\tsecond: function(d) { return d.getSeconds(); },\n\tmillisecond: function(d) { return d.getMilliseconds(); },\n\ttoTime: function(d) { return d.getTime(); },\n\tfromTime: function(t) { return new Date(t); },\n\tdayOfWeek: function(d) { return { ctor: dayTable[d.getDay()] }; }\n};\n\n}();var _elm_lang$core$Task$onError = _elm_lang$core$Native_Scheduler.onError;\nvar _elm_lang$core$Task$andThen = _elm_lang$core$Native_Scheduler.andThen;\nvar _elm_lang$core$Task$spawnCmd = F2(\n\tfunction (router, _p0) {\n\t\tvar _p1 = _p0;\n\t\treturn _elm_lang$core$Native_Scheduler.spawn(\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t_p1._0,\n\t\t\t\t_elm_lang$core$Platform$sendToApp(router)));\n\t});\nvar _elm_lang$core$Task$fail = _elm_lang$core$Native_Scheduler.fail;\nvar _elm_lang$core$Task$mapError = F2(\n\tfunction (f, task) {\n\t\treturn A2(\n\t\t\t_elm_lang$core$Task$onError,\n\t\t\ttask,\n\t\t\tfunction (err) {\n\t\t\t\treturn _elm_lang$core$Task$fail(\n\t\t\t\t\tf(err));\n\t\t\t});\n\t});\nvar _elm_lang$core$Task$succeed = _elm_lang$core$Native_Scheduler.succeed;\nvar _elm_lang$core$Task$map = F2(\n\tfunction (func, taskA) {\n\t\treturn A2(\n\t\t\t_elm_lang$core$Task$andThen,\n\t\t\ttaskA,\n\t\t\tfunction (a) {\n\t\t\t\treturn _elm_lang$core$Task$succeed(\n\t\t\t\t\tfunc(a));\n\t\t\t});\n\t});\nvar _elm_lang$core$Task$map2 = F3(\n\tfunction (func, taskA, taskB) {\n\t\treturn A2(\n\t\t\t_elm_lang$core$Task$andThen,\n\t\t\ttaskA,\n\t\t\tfunction (a) {\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t\ttaskB,\n\t\t\t\t\tfunction (b) {\n\t\t\t\t\t\treturn _elm_lang$core$Task$succeed(\n\t\t\t\t\t\t\tA2(func, a, b));\n\t\t\t\t\t});\n\t\t\t});\n\t});\nvar _elm_lang$core$Task$map3 = F4(\n\tfunction (func, taskA, taskB, taskC) {\n\t\treturn A2(\n\t\t\t_elm_lang$core$Task$andThen,\n\t\t\ttaskA,\n\t\t\tfunction (a) {\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t\ttaskB,\n\t\t\t\t\tfunction (b) {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t\t\t\ttaskC,\n\t\t\t\t\t\t\tfunction (c) {\n\t\t\t\t\t\t\t\treturn _elm_lang$core$Task$succeed(\n\t\t\t\t\t\t\t\t\tA3(func, a, b, c));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t});\n\t});\nvar _elm_lang$core$Task$map4 = F5(\n\tfunction (func, taskA, taskB, taskC, taskD) {\n\t\treturn A2(\n\t\t\t_elm_lang$core$Task$andThen,\n\t\t\ttaskA,\n\t\t\tfunction (a) {\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t\ttaskB,\n\t\t\t\t\tfunction (b) {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t\t\t\ttaskC,\n\t\t\t\t\t\t\tfunction (c) {\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t\t\t\t\t\ttaskD,\n\t\t\t\t\t\t\t\t\tfunction (d) {\n\t\t\t\t\t\t\t\t\t\treturn _elm_lang$core$Task$succeed(\n\t\t\t\t\t\t\t\t\t\t\tA4(func, a, b, c, d));\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t});\n\t});\nvar _elm_lang$core$Task$map5 = F6(\n\tfunction (func, taskA, taskB, taskC, taskD, taskE) {\n\t\treturn A2(\n\t\t\t_elm_lang$core$Task$andThen,\n\t\t\ttaskA,\n\t\t\tfunction (a) {\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t\ttaskB,\n\t\t\t\t\tfunction (b) {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t\t\t\ttaskC,\n\t\t\t\t\t\t\tfunction (c) {\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t\t\t\t\t\ttaskD,\n\t\t\t\t\t\t\t\t\tfunction (d) {\n\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t\t\t\t\t\t\t\ttaskE,\n\t\t\t\t\t\t\t\t\t\t\tfunction (e) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn _elm_lang$core$Task$succeed(\n\t\t\t\t\t\t\t\t\t\t\t\t\tA5(func, a, b, c, d, e));\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t});\n\t});\nvar _elm_lang$core$Task$andMap = F2(\n\tfunction (taskFunc, taskValue) {\n\t\treturn A2(\n\t\t\t_elm_lang$core$Task$andThen,\n\t\t\ttaskFunc,\n\t\t\tfunction (func) {\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t\ttaskValue,\n\t\t\t\t\tfunction (value) {\n\t\t\t\t\t\treturn _elm_lang$core$Task$succeed(\n\t\t\t\t\t\t\tfunc(value));\n\t\t\t\t\t});\n\t\t\t});\n\t});\nvar _elm_lang$core$Task$sequence = function (tasks) {\n\tvar _p2 = tasks;\n\tif (_p2.ctor === '[]') {\n\t\treturn _elm_lang$core$Task$succeed(\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]));\n\t} else {\n\t\treturn A3(\n\t\t\t_elm_lang$core$Task$map2,\n\t\t\tF2(\n\t\t\t\tfunction (x, y) {\n\t\t\t\t\treturn A2(_elm_lang$core$List_ops['::'], x, y);\n\t\t\t\t}),\n\t\t\t_p2._0,\n\t\t\t_elm_lang$core$Task$sequence(_p2._1));\n\t}\n};\nvar _elm_lang$core$Task$onEffects = F3(\n\tfunction (router, commands, state) {\n\t\treturn A2(\n\t\t\t_elm_lang$core$Task$map,\n\t\t\tfunction (_p3) {\n\t\t\t\treturn {ctor: '_Tuple0'};\n\t\t\t},\n\t\t\t_elm_lang$core$Task$sequence(\n\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$core$List$map,\n\t\t\t\t\t_elm_lang$core$Task$spawnCmd(router),\n\t\t\t\t\tcommands)));\n\t});\nvar _elm_lang$core$Task$toMaybe = function (task) {\n\treturn A2(\n\t\t_elm_lang$core$Task$onError,\n\t\tA2(_elm_lang$core$Task$map, _elm_lang$core$Maybe$Just, task),\n\t\tfunction (_p4) {\n\t\t\treturn _elm_lang$core$Task$succeed(_elm_lang$core$Maybe$Nothing);\n\t\t});\n};\nvar _elm_lang$core$Task$fromMaybe = F2(\n\tfunction ($default, maybe) {\n\t\tvar _p5 = maybe;\n\t\tif (_p5.ctor === 'Just') {\n\t\t\treturn _elm_lang$core$Task$succeed(_p5._0);\n\t\t} else {\n\t\t\treturn _elm_lang$core$Task$fail($default);\n\t\t}\n\t});\nvar _elm_lang$core$Task$toResult = function (task) {\n\treturn A2(\n\t\t_elm_lang$core$Task$onError,\n\t\tA2(_elm_lang$core$Task$map, _elm_lang$core$Result$Ok, task),\n\t\tfunction (msg) {\n\t\t\treturn _elm_lang$core$Task$succeed(\n\t\t\t\t_elm_lang$core$Result$Err(msg));\n\t\t});\n};\nvar _elm_lang$core$Task$fromResult = function (result) {\n\tvar _p6 = result;\n\tif (_p6.ctor === 'Ok') {\n\t\treturn _elm_lang$core$Task$succeed(_p6._0);\n\t} else {\n\t\treturn _elm_lang$core$Task$fail(_p6._0);\n\t}\n};\nvar _elm_lang$core$Task$init = _elm_lang$core$Task$succeed(\n\t{ctor: '_Tuple0'});\nvar _elm_lang$core$Task$onSelfMsg = F3(\n\tfunction (_p9, _p8, _p7) {\n\t\treturn _elm_lang$core$Task$succeed(\n\t\t\t{ctor: '_Tuple0'});\n\t});\nvar _elm_lang$core$Task$command = _elm_lang$core$Native_Platform.leaf('Task');\nvar _elm_lang$core$Task$T = function (a) {\n\treturn {ctor: 'T', _0: a};\n};\nvar _elm_lang$core$Task$perform = F3(\n\tfunction (onFail, onSuccess, task) {\n\t\treturn _elm_lang$core$Task$command(\n\t\t\t_elm_lang$core$Task$T(\n\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$core$Task$onError,\n\t\t\t\t\tA2(_elm_lang$core$Task$map, onSuccess, task),\n\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\treturn _elm_lang$core$Task$succeed(\n\t\t\t\t\t\t\tonFail(x));\n\t\t\t\t\t})));\n\t});\nvar _elm_lang$core$Task$cmdMap = F2(\n\tfunction (tagger, _p10) {\n\t\tvar _p11 = _p10;\n\t\treturn _elm_lang$core$Task$T(\n\t\t\tA2(_elm_lang$core$Task$map, tagger, _p11._0));\n\t});\n_elm_lang$core$Native_Platform.effectManagers['Task'] = {pkg: 'elm-lang/core', init: _elm_lang$core$Task$init, onEffects: _elm_lang$core$Task$onEffects, onSelfMsg: _elm_lang$core$Task$onSelfMsg, tag: 'cmd', cmdMap: _elm_lang$core$Task$cmdMap};\n//import Native.Scheduler //\n\nvar _elm_lang$core$Native_Time = function() {\n\nvar now = _elm_lang$core$Native_Scheduler.nativeBinding(function(callback)\n{\n\tcallback(_elm_lang$core$Native_Scheduler.succeed(Date.now()));\n});\n\nfunction setInterval_(interval, task)\n{\n\treturn _elm_lang$core$Native_Scheduler.nativeBinding(function(callback)\n\t{\n\t\tvar id = setInterval(function() {\n\t\t\t_elm_lang$core$Native_Scheduler.rawSpawn(task);\n\t\t}, interval);\n\n\t\treturn function() { clearInterval(id); };\n\t});\n}\n\nreturn {\n\tnow: now,\n\tsetInterval_: F2(setInterval_)\n};\n\n}();var _elm_lang$core$Time$setInterval = _elm_lang$core$Native_Time.setInterval_;\nvar _elm_lang$core$Time$spawnHelp = F3(\n\tfunction (router, intervals, processes) {\n\t\tvar _p0 = intervals;\n\t\tif (_p0.ctor === '[]') {\n\t\t\treturn _elm_lang$core$Task$succeed(processes);\n\t\t} else {\n\t\t\tvar _p1 = _p0._0;\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t_elm_lang$core$Native_Scheduler.spawn(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_lang$core$Time$setInterval,\n\t\t\t\t\t\t_p1,\n\t\t\t\t\t\tA2(_elm_lang$core$Platform$sendToSelf, router, _p1))),\n\t\t\t\tfunction (id) {\n\t\t\t\t\treturn A3(\n\t\t\t\t\t\t_elm_lang$core$Time$spawnHelp,\n\t\t\t\t\t\trouter,\n\t\t\t\t\t\t_p0._1,\n\t\t\t\t\t\tA3(_elm_lang$core$Dict$insert, _p1, id, processes));\n\t\t\t\t});\n\t\t}\n\t});\nvar _elm_lang$core$Time$addMySub = F2(\n\tfunction (_p2, state) {\n\t\tvar _p3 = _p2;\n\t\tvar _p6 = _p3._1;\n\t\tvar _p5 = _p3._0;\n\t\tvar _p4 = A2(_elm_lang$core$Dict$get, _p5, state);\n\t\tif (_p4.ctor === 'Nothing') {\n\t\t\treturn A3(\n\t\t\t\t_elm_lang$core$Dict$insert,\n\t\t\t\t_p5,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[_p6]),\n\t\t\t\tstate);\n\t\t} else {\n\t\t\treturn A3(\n\t\t\t\t_elm_lang$core$Dict$insert,\n\t\t\t\t_p5,\n\t\t\t\tA2(_elm_lang$core$List_ops['::'], _p6, _p4._0),\n\t\t\t\tstate);\n\t\t}\n\t});\nvar _elm_lang$core$Time$inMilliseconds = function (t) {\n\treturn t;\n};\nvar _elm_lang$core$Time$millisecond = 1;\nvar _elm_lang$core$Time$second = 1000 * _elm_lang$core$Time$millisecond;\nvar _elm_lang$core$Time$minute = 60 * _elm_lang$core$Time$second;\nvar _elm_lang$core$Time$hour = 60 * _elm_lang$core$Time$minute;\nvar _elm_lang$core$Time$inHours = function (t) {\n\treturn t / _elm_lang$core$Time$hour;\n};\nvar _elm_lang$core$Time$inMinutes = function (t) {\n\treturn t / _elm_lang$core$Time$minute;\n};\nvar _elm_lang$core$Time$inSeconds = function (t) {\n\treturn t / _elm_lang$core$Time$second;\n};\nvar _elm_lang$core$Time$now = _elm_lang$core$Native_Time.now;\nvar _elm_lang$core$Time$onSelfMsg = F3(\n\tfunction (router, interval, state) {\n\t\tvar _p7 = A2(_elm_lang$core$Dict$get, interval, state.taggers);\n\t\tif (_p7.ctor === 'Nothing') {\n\t\t\treturn _elm_lang$core$Task$succeed(state);\n\t\t} else {\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t_elm_lang$core$Time$now,\n\t\t\t\tfunction (time) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t\t\t_elm_lang$core$Task$sequence(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$core$List$map,\n\t\t\t\t\t\t\t\tfunction (tagger) {\n\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Platform$sendToApp,\n\t\t\t\t\t\t\t\t\t\trouter,\n\t\t\t\t\t\t\t\t\t\ttagger(time));\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t_p7._0)),\n\t\t\t\t\t\tfunction (_p8) {\n\t\t\t\t\t\t\treturn _elm_lang$core$Task$succeed(state);\n\t\t\t\t\t\t});\n\t\t\t\t});\n\t\t}\n\t});\nvar _elm_lang$core$Time$subscription = _elm_lang$core$Native_Platform.leaf('Time');\nvar _elm_lang$core$Time$State = F2(\n\tfunction (a, b) {\n\t\treturn {taggers: a, processes: b};\n\t});\nvar _elm_lang$core$Time$init = _elm_lang$core$Task$succeed(\n\tA2(_elm_lang$core$Time$State, _elm_lang$core$Dict$empty, _elm_lang$core$Dict$empty));\nvar _elm_lang$core$Time$onEffects = F3(\n\tfunction (router, subs, _p9) {\n\t\tvar _p10 = _p9;\n\t\tvar rightStep = F3(\n\t\t\tfunction (_p12, id, _p11) {\n\t\t\t\tvar _p13 = _p11;\n\t\t\t\treturn {\n\t\t\t\t\tctor: '_Tuple3',\n\t\t\t\t\t_0: _p13._0,\n\t\t\t\t\t_1: _p13._1,\n\t\t\t\t\t_2: A2(\n\t\t\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t\t\t_elm_lang$core$Native_Scheduler.kill(id),\n\t\t\t\t\t\tfunction (_p14) {\n\t\t\t\t\t\t\treturn _p13._2;\n\t\t\t\t\t\t})\n\t\t\t\t};\n\t\t\t});\n\t\tvar bothStep = F4(\n\t\t\tfunction (interval, taggers, id, _p15) {\n\t\t\t\tvar _p16 = _p15;\n\t\t\t\treturn {\n\t\t\t\t\tctor: '_Tuple3',\n\t\t\t\t\t_0: _p16._0,\n\t\t\t\t\t_1: A3(_elm_lang$core$Dict$insert, interval, id, _p16._1),\n\t\t\t\t\t_2: _p16._2\n\t\t\t\t};\n\t\t\t});\n\t\tvar leftStep = F3(\n\t\t\tfunction (interval, taggers, _p17) {\n\t\t\t\tvar _p18 = _p17;\n\t\t\t\treturn {\n\t\t\t\t\tctor: '_Tuple3',\n\t\t\t\t\t_0: A2(_elm_lang$core$List_ops['::'], interval, _p18._0),\n\t\t\t\t\t_1: _p18._1,\n\t\t\t\t\t_2: _p18._2\n\t\t\t\t};\n\t\t\t});\n\t\tvar newTaggers = A3(_elm_lang$core$List$foldl, _elm_lang$core$Time$addMySub, _elm_lang$core$Dict$empty, subs);\n\t\tvar _p19 = A6(\n\t\t\t_elm_lang$core$Dict$merge,\n\t\t\tleftStep,\n\t\t\tbothStep,\n\t\t\trightStep,\n\t\t\tnewTaggers,\n\t\t\t_p10.processes,\n\t\t\t{\n\t\t\t\tctor: '_Tuple3',\n\t\t\t\t_0: _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[]),\n\t\t\t\t_1: _elm_lang$core$Dict$empty,\n\t\t\t\t_2: _elm_lang$core$Task$succeed(\n\t\t\t\t\t{ctor: '_Tuple0'})\n\t\t\t});\n\t\tvar spawnList = _p19._0;\n\t\tvar existingDict = _p19._1;\n\t\tvar killTask = _p19._2;\n\t\treturn A2(\n\t\t\t_elm_lang$core$Task$andThen,\n\t\t\tkillTask,\n\t\t\tfunction (_p20) {\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$core$Task$andThen,\n\t\t\t\t\tA3(_elm_lang$core$Time$spawnHelp, router, spawnList, existingDict),\n\t\t\t\t\tfunction (newProcesses) {\n\t\t\t\t\t\treturn _elm_lang$core$Task$succeed(\n\t\t\t\t\t\t\tA2(_elm_lang$core$Time$State, newTaggers, newProcesses));\n\t\t\t\t\t});\n\t\t\t});\n\t});\nvar _elm_lang$core$Time$Every = F2(\n\tfunction (a, b) {\n\t\treturn {ctor: 'Every', _0: a, _1: b};\n\t});\nvar _elm_lang$core$Time$every = F2(\n\tfunction (interval, tagger) {\n\t\treturn _elm_lang$core$Time$subscription(\n\t\t\tA2(_elm_lang$core$Time$Every, interval, tagger));\n\t});\nvar _elm_lang$core$Time$subMap = F2(\n\tfunction (f, _p21) {\n\t\tvar _p22 = _p21;\n\t\treturn A2(\n\t\t\t_elm_lang$core$Time$Every,\n\t\t\t_p22._0,\n\t\t\tfunction (_p23) {\n\t\t\t\treturn f(\n\t\t\t\t\t_p22._1(_p23));\n\t\t\t});\n\t});\n_elm_lang$core$Native_Platform.effectManagers['Time'] = {pkg: 'elm-lang/core', init: _elm_lang$core$Time$init, onEffects: _elm_lang$core$Time$onEffects, onSelfMsg: _elm_lang$core$Time$onSelfMsg, tag: 'sub', subMap: _elm_lang$core$Time$subMap};\nvar _elm_lang$core$Date$millisecond = _elm_lang$core$Native_Date.millisecond;\nvar _elm_lang$core$Date$second = _elm_lang$core$Native_Date.second;\nvar _elm_lang$core$Date$minute = _elm_lang$core$Native_Date.minute;\nvar _elm_lang$core$Date$hour = _elm_lang$core$Native_Date.hour;\nvar _elm_lang$core$Date$dayOfWeek = _elm_lang$core$Native_Date.dayOfWeek;\nvar _elm_lang$core$Date$day = _elm_lang$core$Native_Date.day;\nvar _elm_lang$core$Date$month = _elm_lang$core$Native_Date.month;\nvar _elm_lang$core$Date$year = _elm_lang$core$Native_Date.year;\nvar _elm_lang$core$Date$fromTime = _elm_lang$core$Native_Date.fromTime;\nvar _elm_lang$core$Date$toTime = _elm_lang$core$Native_Date.toTime;\nvar _elm_lang$core$Date$fromString = _elm_lang$core$Native_Date.fromString;\nvar _elm_lang$core$Date$now = A2(_elm_lang$core$Task$map, _elm_lang$core$Date$fromTime, _elm_lang$core$Time$now);\nvar _elm_lang$core$Date$Date = {ctor: 'Date'};\nvar _elm_lang$core$Date$Sun = {ctor: 'Sun'};\nvar _elm_lang$core$Date$Sat = {ctor: 'Sat'};\nvar _elm_lang$core$Date$Fri = {ctor: 'Fri'};\nvar _elm_lang$core$Date$Thu = {ctor: 'Thu'};\nvar _elm_lang$core$Date$Wed = {ctor: 'Wed'};\nvar _elm_lang$core$Date$Tue = {ctor: 'Tue'};\nvar _elm_lang$core$Date$Mon = {ctor: 'Mon'};\nvar _elm_lang$core$Date$Dec = {ctor: 'Dec'};\nvar _elm_lang$core$Date$Nov = {ctor: 'Nov'};\nvar _elm_lang$core$Date$Oct = {ctor: 'Oct'};\nvar _elm_lang$core$Date$Sep = {ctor: 'Sep'};\nvar _elm_lang$core$Date$Aug = {ctor: 'Aug'};\nvar _elm_lang$core$Date$Jul = {ctor: 'Jul'};\nvar _elm_lang$core$Date$Jun = {ctor: 'Jun'};\nvar _elm_lang$core$Date$May = {ctor: 'May'};\nvar _elm_lang$core$Date$Apr = {ctor: 'Apr'};\nvar _elm_lang$core$Date$Mar = {ctor: 'Mar'};\nvar _elm_lang$core$Date$Feb = {ctor: 'Feb'};\nvar _elm_lang$core$Date$Jan = {ctor: 'Jan'};\nvar _elm_lang$core$Set$foldr = F3(\n\tfunction (f, b, _p0) {\n\t\tvar _p1 = _p0;\n\t\treturn A3(\n\t\t\t_elm_lang$core$Dict$foldr,\n\t\t\tF3(\n\t\t\t\tfunction (k, _p2, b) {\n\t\t\t\t\treturn A2(f, k, b);\n\t\t\t\t}),\n\t\t\tb,\n\t\t\t_p1._0);\n\t});\nvar _elm_lang$core$Set$foldl = F3(\n\tfunction (f, b, _p3) {\n\t\tvar _p4 = _p3;\n\t\treturn A3(\n\t\t\t_elm_lang$core$Dict$foldl,\n\t\t\tF3(\n\t\t\t\tfunction (k, _p5, b) {\n\t\t\t\t\treturn A2(f, k, b);\n\t\t\t\t}),\n\t\t\tb,\n\t\t\t_p4._0);\n\t});\nvar _elm_lang$core$Set$toList = function (_p6) {\n\tvar _p7 = _p6;\n\treturn _elm_lang$core$Dict$keys(_p7._0);\n};\nvar _elm_lang$core$Set$size = function (_p8) {\n\tvar _p9 = _p8;\n\treturn _elm_lang$core$Dict$size(_p9._0);\n};\nvar _elm_lang$core$Set$member = F2(\n\tfunction (k, _p10) {\n\t\tvar _p11 = _p10;\n\t\treturn A2(_elm_lang$core$Dict$member, k, _p11._0);\n\t});\nvar _elm_lang$core$Set$isEmpty = function (_p12) {\n\tvar _p13 = _p12;\n\treturn _elm_lang$core$Dict$isEmpty(_p13._0);\n};\nvar _elm_lang$core$Set$Set_elm_builtin = function (a) {\n\treturn {ctor: 'Set_elm_builtin', _0: a};\n};\nvar _elm_lang$core$Set$empty = _elm_lang$core$Set$Set_elm_builtin(_elm_lang$core$Dict$empty);\nvar _elm_lang$core$Set$singleton = function (k) {\n\treturn _elm_lang$core$Set$Set_elm_builtin(\n\t\tA2(\n\t\t\t_elm_lang$core$Dict$singleton,\n\t\t\tk,\n\t\t\t{ctor: '_Tuple0'}));\n};\nvar _elm_lang$core$Set$insert = F2(\n\tfunction (k, _p14) {\n\t\tvar _p15 = _p14;\n\t\treturn _elm_lang$core$Set$Set_elm_builtin(\n\t\t\tA3(\n\t\t\t\t_elm_lang$core$Dict$insert,\n\t\t\t\tk,\n\t\t\t\t{ctor: '_Tuple0'},\n\t\t\t\t_p15._0));\n\t});\nvar _elm_lang$core$Set$fromList = function (xs) {\n\treturn A3(_elm_lang$core$List$foldl, _elm_lang$core$Set$insert, _elm_lang$core$Set$empty, xs);\n};\nvar _elm_lang$core$Set$map = F2(\n\tfunction (f, s) {\n\t\treturn _elm_lang$core$Set$fromList(\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$List$map,\n\t\t\t\tf,\n\t\t\t\t_elm_lang$core$Set$toList(s)));\n\t});\nvar _elm_lang$core$Set$remove = F2(\n\tfunction (k, _p16) {\n\t\tvar _p17 = _p16;\n\t\treturn _elm_lang$core$Set$Set_elm_builtin(\n\t\t\tA2(_elm_lang$core$Dict$remove, k, _p17._0));\n\t});\nvar _elm_lang$core$Set$union = F2(\n\tfunction (_p19, _p18) {\n\t\tvar _p20 = _p19;\n\t\tvar _p21 = _p18;\n\t\treturn _elm_lang$core$Set$Set_elm_builtin(\n\t\t\tA2(_elm_lang$core$Dict$union, _p20._0, _p21._0));\n\t});\nvar _elm_lang$core$Set$intersect = F2(\n\tfunction (_p23, _p22) {\n\t\tvar _p24 = _p23;\n\t\tvar _p25 = _p22;\n\t\treturn _elm_lang$core$Set$Set_elm_builtin(\n\t\t\tA2(_elm_lang$core$Dict$intersect, _p24._0, _p25._0));\n\t});\nvar _elm_lang$core$Set$diff = F2(\n\tfunction (_p27, _p26) {\n\t\tvar _p28 = _p27;\n\t\tvar _p29 = _p26;\n\t\treturn _elm_lang$core$Set$Set_elm_builtin(\n\t\t\tA2(_elm_lang$core$Dict$diff, _p28._0, _p29._0));\n\t});\nvar _elm_lang$core$Set$filter = F2(\n\tfunction (p, _p30) {\n\t\tvar _p31 = _p30;\n\t\treturn _elm_lang$core$Set$Set_elm_builtin(\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$Dict$filter,\n\t\t\t\tF2(\n\t\t\t\t\tfunction (k, _p32) {\n\t\t\t\t\t\treturn p(k);\n\t\t\t\t\t}),\n\t\t\t\t_p31._0));\n\t});\nvar _elm_lang$core$Set$partition = F2(\n\tfunction (p, _p33) {\n\t\tvar _p34 = _p33;\n\t\tvar _p35 = A2(\n\t\t\t_elm_lang$core$Dict$partition,\n\t\t\tF2(\n\t\t\t\tfunction (k, _p36) {\n\t\t\t\t\treturn p(k);\n\t\t\t\t}),\n\t\t\t_p34._0);\n\t\tvar p1 = _p35._0;\n\t\tvar p2 = _p35._1;\n\t\treturn {\n\t\t\tctor: '_Tuple2',\n\t\t\t_0: _elm_lang$core$Set$Set_elm_builtin(p1),\n\t\t\t_1: _elm_lang$core$Set$Set_elm_builtin(p2)\n\t\t};\n\t});\nvar _elm_community$json_extra$Json_Decode_Extra$lazy = function (getDecoder) {\n\treturn A2(\n\t\t_elm_lang$core$Json_Decode$customDecoder,\n\t\t_elm_lang$core$Json_Decode$value,\n\t\tfunction (rawValue) {\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$Json_Decode$decodeValue,\n\t\t\t\tgetDecoder(\n\t\t\t\t\t{ctor: '_Tuple0'}),\n\t\t\t\trawValue);\n\t\t});\n};\nvar _elm_community$json_extra$Json_Decode_Extra$maybeNull = function (decoder) {\n\treturn _elm_lang$core$Json_Decode$oneOf(\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\t_elm_lang$core$Json_Decode$null(_elm_lang$core$Maybe$Nothing),\n\t\t\t\tA2(_elm_lang$core$Json_Decode$map, _elm_lang$core$Maybe$Just, decoder)\n\t\t\t]));\n};\nvar _elm_community$json_extra$Json_Decode_Extra$withDefault = F2(\n\tfunction (fallback, decoder) {\n\t\treturn A2(\n\t\t\t_elm_lang$core$Json_Decode$andThen,\n\t\t\t_elm_lang$core$Json_Decode$maybe(decoder),\n\t\t\tfunction (_p0) {\n\t\t\t\treturn _elm_lang$core$Json_Decode$succeed(\n\t\t\t\t\tA2(_elm_lang$core$Maybe$withDefault, fallback, _p0));\n\t\t\t});\n\t});\nvar _elm_community$json_extra$Json_Decode_Extra$decodeDictFromTuples = F2(\n\tfunction (keyDecoder, tuples) {\n\t\tvar _p1 = tuples;\n\t\tif (_p1.ctor === '[]') {\n\t\t\treturn _elm_lang$core$Json_Decode$succeed(_elm_lang$core$Dict$empty);\n\t\t} else {\n\t\t\tvar _p2 = A2(_elm_lang$core$Json_Decode$decodeString, keyDecoder, _p1._0._0);\n\t\t\tif (_p2.ctor === 'Ok') {\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$core$Json_Decode$andThen,\n\t\t\t\t\tA2(_elm_community$json_extra$Json_Decode_Extra$decodeDictFromTuples, keyDecoder, _p1._1),\n\t\t\t\t\tfunction (_p3) {\n\t\t\t\t\t\treturn _elm_lang$core$Json_Decode$succeed(\n\t\t\t\t\t\t\tA3(_elm_lang$core$Dict$insert, _p2._0, _p1._0._1, _p3));\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn _elm_lang$core$Json_Decode$fail(_p2._0);\n\t\t\t}\n\t\t}\n\t});\nvar _elm_community$json_extra$Json_Decode_Extra$dict2 = F2(\n\tfunction (keyDecoder, valueDecoder) {\n\t\treturn A2(\n\t\t\t_elm_lang$core$Json_Decode$andThen,\n\t\t\t_elm_lang$core$Json_Decode$dict(valueDecoder),\n\t\t\tfunction (_p4) {\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_community$json_extra$Json_Decode_Extra$decodeDictFromTuples,\n\t\t\t\t\tkeyDecoder,\n\t\t\t\t\t_elm_lang$core$Dict$toList(_p4));\n\t\t\t});\n\t});\nvar _elm_community$json_extra$Json_Decode_Extra$set = function (decoder) {\n\treturn A2(\n\t\t_elm_lang$core$Json_Decode$andThen,\n\t\t_elm_lang$core$Json_Decode$list(decoder),\n\t\tfunction (_p5) {\n\t\t\treturn _elm_lang$core$Json_Decode$succeed(\n\t\t\t\t_elm_lang$core$Set$fromList(_p5));\n\t\t});\n};\nvar _elm_community$json_extra$Json_Decode_Extra$date = A2(_elm_lang$core$Json_Decode$customDecoder, _elm_lang$core$Json_Decode$string, _elm_lang$core$Date$fromString);\nvar _elm_community$json_extra$Json_Decode_Extra$apply = _elm_lang$core$Json_Decode$object2(\n\tF2(\n\t\tfunction (x, y) {\n\t\t\treturn x(y);\n\t\t}));\nvar _elm_community$json_extra$Json_Decode_Extra_ops = _elm_community$json_extra$Json_Decode_Extra_ops || {};\n_elm_community$json_extra$Json_Decode_Extra_ops['|:'] = _elm_community$json_extra$Json_Decode_Extra$apply;\n//import Maybe, Native.List //\n\nvar _elm_lang$core$Native_Regex = function() {\n\nfunction escape(str)\n{\n\treturn str.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\nfunction caseInsensitive(re)\n{\n\treturn new RegExp(re.source, 'gi');\n}\nfunction regex(raw)\n{\n\treturn new RegExp(raw, 'g');\n}\n\nfunction contains(re, string)\n{\n\treturn string.match(re) !== null;\n}\n\nfunction find(n, re, str)\n{\n\tn = n.ctor === 'All' ? Infinity : n._0;\n\tvar out = [];\n\tvar number = 0;\n\tvar string = str;\n\tvar lastIndex = re.lastIndex;\n\tvar prevLastIndex = -1;\n\tvar result;\n\twhile (number++ < n && (result = re.exec(string)))\n\t{\n\t\tif (prevLastIndex === re.lastIndex) break;\n\t\tvar i = result.length - 1;\n\t\tvar subs = new Array(i);\n\t\twhile (i > 0)\n\t\t{\n\t\t\tvar submatch = result[i];\n\t\t\tsubs[--i] = submatch === undefined\n\t\t\t\t? _elm_lang$core$Maybe$Nothing\n\t\t\t\t: _elm_lang$core$Maybe$Just(submatch);\n\t\t}\n\t\tout.push({\n\t\t\tmatch: result[0],\n\t\t\tsubmatches: _elm_lang$core$Native_List.fromArray(subs),\n\t\t\tindex: result.index,\n\t\t\tnumber: number\n\t\t});\n\t\tprevLastIndex = re.lastIndex;\n\t}\n\tre.lastIndex = lastIndex;\n\treturn _elm_lang$core$Native_List.fromArray(out);\n}\n\nfunction replace(n, re, replacer, string)\n{\n\tn = n.ctor === 'All' ? Infinity : n._0;\n\tvar count = 0;\n\tfunction jsReplacer(match)\n\t{\n\t\tif (count++ >= n)\n\t\t{\n\t\t\treturn match;\n\t\t}\n\t\tvar i = arguments.length - 3;\n\t\tvar submatches = new Array(i);\n\t\twhile (i > 0)\n\t\t{\n\t\t\tvar submatch = arguments[i];\n\t\t\tsubmatches[--i] = submatch === undefined\n\t\t\t\t? _elm_lang$core$Maybe$Nothing\n\t\t\t\t: _elm_lang$core$Maybe$Just(submatch);\n\t\t}\n\t\treturn replacer({\n\t\t\tmatch: match,\n\t\t\tsubmatches: _elm_lang$core$Native_List.fromArray(submatches),\n\t\t\tindex: arguments[i - 1],\n\t\t\tnumber: count\n\t\t});\n\t}\n\treturn string.replace(re, jsReplacer);\n}\n\nfunction split(n, re, str)\n{\n\tn = n.ctor === 'All' ? Infinity : n._0;\n\tif (n === Infinity)\n\t{\n\t\treturn _elm_lang$core$Native_List.fromArray(str.split(re));\n\t}\n\tvar string = str;\n\tvar result;\n\tvar out = [];\n\tvar start = re.lastIndex;\n\twhile (n--)\n\t{\n\t\tif (!(result = re.exec(string))) break;\n\t\tout.push(string.slice(start, result.index));\n\t\tstart = re.lastIndex;\n\t}\n\tout.push(string.slice(start));\n\treturn _elm_lang$core$Native_List.fromArray(out);\n}\n\nreturn {\n\tregex: regex,\n\tcaseInsensitive: caseInsensitive,\n\tescape: escape,\n\n\tcontains: F2(contains),\n\tfind: F3(find),\n\treplace: F4(replace),\n\tsplit: F3(split)\n};\n\n}();\nvar _elm_lang$core$Regex$split = _elm_lang$core$Native_Regex.split;\nvar _elm_lang$core$Regex$replace = _elm_lang$core$Native_Regex.replace;\nvar _elm_lang$core$Regex$find = _elm_lang$core$Native_Regex.find;\nvar _elm_lang$core$Regex$contains = _elm_lang$core$Native_Regex.contains;\nvar _elm_lang$core$Regex$caseInsensitive = _elm_lang$core$Native_Regex.caseInsensitive;\nvar _elm_lang$core$Regex$regex = _elm_lang$core$Native_Regex.regex;\nvar _elm_lang$core$Regex$escape = _elm_lang$core$Native_Regex.escape;\nvar _elm_lang$core$Regex$Match = F4(\n\tfunction (a, b, c, d) {\n\t\treturn {match: a, submatches: b, index: c, number: d};\n\t});\nvar _elm_lang$core$Regex$Regex = {ctor: 'Regex'};\nvar _elm_lang$core$Regex$AtMost = function (a) {\n\treturn {ctor: 'AtMost', _0: a};\n};\nvar _elm_lang$core$Regex$All = {ctor: 'All'};\nvar _elm_lang$html$Html_Attributes$attribute = _elm_lang$virtual_dom$VirtualDom$attribute;\nvar _elm_lang$html$Html_Attributes$contextmenu = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$attribute, 'contextmenu', value);\n};\nvar _elm_lang$html$Html_Attributes$draggable = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$attribute, 'draggable', value);\n};\nvar _elm_lang$html$Html_Attributes$list = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$attribute, 'list', value);\n};\nvar _elm_lang$html$Html_Attributes$maxlength = function (n) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Attributes$attribute,\n\t\t'maxlength',\n\t\t_elm_lang$core$Basics$toString(n));\n};\nvar _elm_lang$html$Html_Attributes$datetime = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$attribute, 'datetime', value);\n};\nvar _elm_lang$html$Html_Attributes$pubdate = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$attribute, 'pubdate', value);\n};\nvar _elm_lang$html$Html_Attributes$colspan = function (n) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Attributes$attribute,\n\t\t'colspan',\n\t\t_elm_lang$core$Basics$toString(n));\n};\nvar _elm_lang$html$Html_Attributes$rowspan = function (n) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Attributes$attribute,\n\t\t'rowspan',\n\t\t_elm_lang$core$Basics$toString(n));\n};\nvar _elm_lang$html$Html_Attributes$property = _elm_lang$virtual_dom$VirtualDom$property;\nvar _elm_lang$html$Html_Attributes$stringProperty = F2(\n\tfunction (name, string) {\n\t\treturn A2(\n\t\t\t_elm_lang$html$Html_Attributes$property,\n\t\t\tname,\n\t\t\t_elm_lang$core$Json_Encode$string(string));\n\t});\nvar _elm_lang$html$Html_Attributes$class = function (name) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'className', name);\n};\nvar _elm_lang$html$Html_Attributes$id = function (name) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'id', name);\n};\nvar _elm_lang$html$Html_Attributes$title = function (name) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'title', name);\n};\nvar _elm_lang$html$Html_Attributes$accesskey = function ($char) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Attributes$stringProperty,\n\t\t'accessKey',\n\t\t_elm_lang$core$String$fromChar($char));\n};\nvar _elm_lang$html$Html_Attributes$dir = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'dir', value);\n};\nvar _elm_lang$html$Html_Attributes$dropzone = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'dropzone', value);\n};\nvar _elm_lang$html$Html_Attributes$itemprop = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'itemprop', value);\n};\nvar _elm_lang$html$Html_Attributes$lang = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'lang', value);\n};\nvar _elm_lang$html$Html_Attributes$tabindex = function (n) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Attributes$stringProperty,\n\t\t'tabIndex',\n\t\t_elm_lang$core$Basics$toString(n));\n};\nvar _elm_lang$html$Html_Attributes$charset = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'charset', value);\n};\nvar _elm_lang$html$Html_Attributes$content = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'content', value);\n};\nvar _elm_lang$html$Html_Attributes$httpEquiv = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'httpEquiv', value);\n};\nvar _elm_lang$html$Html_Attributes$language = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'language', value);\n};\nvar _elm_lang$html$Html_Attributes$src = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'src', value);\n};\nvar _elm_lang$html$Html_Attributes$height = function (value) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Attributes$stringProperty,\n\t\t'height',\n\t\t_elm_lang$core$Basics$toString(value));\n};\nvar _elm_lang$html$Html_Attributes$width = function (value) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Attributes$stringProperty,\n\t\t'width',\n\t\t_elm_lang$core$Basics$toString(value));\n};\nvar _elm_lang$html$Html_Attributes$alt = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'alt', value);\n};\nvar _elm_lang$html$Html_Attributes$preload = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'preload', value);\n};\nvar _elm_lang$html$Html_Attributes$poster = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'poster', value);\n};\nvar _elm_lang$html$Html_Attributes$kind = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'kind', value);\n};\nvar _elm_lang$html$Html_Attributes$srclang = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'srclang', value);\n};\nvar _elm_lang$html$Html_Attributes$sandbox = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'sandbox', value);\n};\nvar _elm_lang$html$Html_Attributes$srcdoc = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'srcdoc', value);\n};\nvar _elm_lang$html$Html_Attributes$type$ = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'type', value);\n};\nvar _elm_lang$html$Html_Attributes$value = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'value', value);\n};\nvar _elm_lang$html$Html_Attributes$defaultValue = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'defaultValue', value);\n};\nvar _elm_lang$html$Html_Attributes$placeholder = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'placeholder', value);\n};\nvar _elm_lang$html$Html_Attributes$accept = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'accept', value);\n};\nvar _elm_lang$html$Html_Attributes$acceptCharset = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'acceptCharset', value);\n};\nvar _elm_lang$html$Html_Attributes$action = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'action', value);\n};\nvar _elm_lang$html$Html_Attributes$autocomplete = function (bool) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Attributes$stringProperty,\n\t\t'autocomplete',\n\t\tbool ? 'on' : 'off');\n};\nvar _elm_lang$html$Html_Attributes$autosave = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'autosave', value);\n};\nvar _elm_lang$html$Html_Attributes$enctype = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'enctype', value);\n};\nvar _elm_lang$html$Html_Attributes$formaction = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'formAction', value);\n};\nvar _elm_lang$html$Html_Attributes$minlength = function (n) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Attributes$stringProperty,\n\t\t'minLength',\n\t\t_elm_lang$core$Basics$toString(n));\n};\nvar _elm_lang$html$Html_Attributes$method = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'method', value);\n};\nvar _elm_lang$html$Html_Attributes$name = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'name', value);\n};\nvar _elm_lang$html$Html_Attributes$pattern = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'pattern', value);\n};\nvar _elm_lang$html$Html_Attributes$size = function (n) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Attributes$stringProperty,\n\t\t'size',\n\t\t_elm_lang$core$Basics$toString(n));\n};\nvar _elm_lang$html$Html_Attributes$for = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'htmlFor', value);\n};\nvar _elm_lang$html$Html_Attributes$form = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'form', value);\n};\nvar _elm_lang$html$Html_Attributes$max = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'max', value);\n};\nvar _elm_lang$html$Html_Attributes$min = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'min', value);\n};\nvar _elm_lang$html$Html_Attributes$step = function (n) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'step', n);\n};\nvar _elm_lang$html$Html_Attributes$cols = function (n) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Attributes$stringProperty,\n\t\t'cols',\n\t\t_elm_lang$core$Basics$toString(n));\n};\nvar _elm_lang$html$Html_Attributes$rows = function (n) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Attributes$stringProperty,\n\t\t'rows',\n\t\t_elm_lang$core$Basics$toString(n));\n};\nvar _elm_lang$html$Html_Attributes$wrap = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'wrap', value);\n};\nvar _elm_lang$html$Html_Attributes$usemap = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'useMap', value);\n};\nvar _elm_lang$html$Html_Attributes$shape = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'shape', value);\n};\nvar _elm_lang$html$Html_Attributes$coords = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'coords', value);\n};\nvar _elm_lang$html$Html_Attributes$challenge = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'challenge', value);\n};\nvar _elm_lang$html$Html_Attributes$keytype = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'keytype', value);\n};\nvar _elm_lang$html$Html_Attributes$align = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'align', value);\n};\nvar _elm_lang$html$Html_Attributes$cite = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'cite', value);\n};\nvar _elm_lang$html$Html_Attributes$href = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'href', value);\n};\nvar _elm_lang$html$Html_Attributes$target = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'target', value);\n};\nvar _elm_lang$html$Html_Attributes$downloadAs = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'download', value);\n};\nvar _elm_lang$html$Html_Attributes$hreflang = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'hreflang', value);\n};\nvar _elm_lang$html$Html_Attributes$media = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'media', value);\n};\nvar _elm_lang$html$Html_Attributes$ping = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'ping', value);\n};\nvar _elm_lang$html$Html_Attributes$rel = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'rel', value);\n};\nvar _elm_lang$html$Html_Attributes$start = function (n) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Attributes$stringProperty,\n\t\t'start',\n\t\t_elm_lang$core$Basics$toString(n));\n};\nvar _elm_lang$html$Html_Attributes$headers = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'headers', value);\n};\nvar _elm_lang$html$Html_Attributes$scope = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'scope', value);\n};\nvar _elm_lang$html$Html_Attributes$manifest = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$stringProperty, 'manifest', value);\n};\nvar _elm_lang$html$Html_Attributes$boolProperty = F2(\n\tfunction (name, bool) {\n\t\treturn A2(\n\t\t\t_elm_lang$html$Html_Attributes$property,\n\t\t\tname,\n\t\t\t_elm_lang$core$Json_Encode$bool(bool));\n\t});\nvar _elm_lang$html$Html_Attributes$hidden = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'hidden', bool);\n};\nvar _elm_lang$html$Html_Attributes$contenteditable = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'contentEditable', bool);\n};\nvar _elm_lang$html$Html_Attributes$spellcheck = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'spellcheck', bool);\n};\nvar _elm_lang$html$Html_Attributes$async = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'async', bool);\n};\nvar _elm_lang$html$Html_Attributes$defer = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'defer', bool);\n};\nvar _elm_lang$html$Html_Attributes$scoped = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'scoped', bool);\n};\nvar _elm_lang$html$Html_Attributes$autoplay = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'autoplay', bool);\n};\nvar _elm_lang$html$Html_Attributes$controls = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'controls', bool);\n};\nvar _elm_lang$html$Html_Attributes$loop = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'loop', bool);\n};\nvar _elm_lang$html$Html_Attributes$default = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'default', bool);\n};\nvar _elm_lang$html$Html_Attributes$seamless = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'seamless', bool);\n};\nvar _elm_lang$html$Html_Attributes$checked = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'checked', bool);\n};\nvar _elm_lang$html$Html_Attributes$selected = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'selected', bool);\n};\nvar _elm_lang$html$Html_Attributes$autofocus = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'autofocus', bool);\n};\nvar _elm_lang$html$Html_Attributes$disabled = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'disabled', bool);\n};\nvar _elm_lang$html$Html_Attributes$multiple = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'multiple', bool);\n};\nvar _elm_lang$html$Html_Attributes$novalidate = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'noValidate', bool);\n};\nvar _elm_lang$html$Html_Attributes$readonly = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'readOnly', bool);\n};\nvar _elm_lang$html$Html_Attributes$required = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'required', bool);\n};\nvar _elm_lang$html$Html_Attributes$ismap = function (value) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'isMap', value);\n};\nvar _elm_lang$html$Html_Attributes$download = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'download', bool);\n};\nvar _elm_lang$html$Html_Attributes$reversed = function (bool) {\n\treturn A2(_elm_lang$html$Html_Attributes$boolProperty, 'reversed', bool);\n};\nvar _elm_lang$html$Html_Attributes$classList = function (list) {\n\treturn _elm_lang$html$Html_Attributes$class(\n\t\tA2(\n\t\t\t_elm_lang$core$String$join,\n\t\t\t' ',\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$List$map,\n\t\t\t\t_elm_lang$core$Basics$fst,\n\t\t\t\tA2(_elm_lang$core$List$filter, _elm_lang$core$Basics$snd, list))));\n};\nvar _elm_lang$html$Html_Attributes$style = _elm_lang$virtual_dom$VirtualDom$style;\nvar _elm_lang$html$Html_Events$keyCode = A2(_elm_lang$core$Json_Decode_ops[':='], 'keyCode', _elm_lang$core$Json_Decode$int);\nvar _elm_lang$html$Html_Events$targetChecked = A2(\n\t_elm_lang$core$Json_Decode$at,\n\t_elm_lang$core$Native_List.fromArray(\n\t\t['target', 'checked']),\n\t_elm_lang$core$Json_Decode$bool);\nvar _elm_lang$html$Html_Events$targetValue = A2(\n\t_elm_lang$core$Json_Decode$at,\n\t_elm_lang$core$Native_List.fromArray(\n\t\t['target', 'value']),\n\t_elm_lang$core$Json_Decode$string);\nvar _elm_lang$html$Html_Events$defaultOptions = _elm_lang$virtual_dom$VirtualDom$defaultOptions;\nvar _elm_lang$html$Html_Events$onWithOptions = _elm_lang$virtual_dom$VirtualDom$onWithOptions;\nvar _elm_lang$html$Html_Events$on = _elm_lang$virtual_dom$VirtualDom$on;\nvar _elm_lang$html$Html_Events$onFocus = function (msg) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Events$on,\n\t\t'focus',\n\t\t_elm_lang$core$Json_Decode$succeed(msg));\n};\nvar _elm_lang$html$Html_Events$onBlur = function (msg) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Events$on,\n\t\t'blur',\n\t\t_elm_lang$core$Json_Decode$succeed(msg));\n};\nvar _elm_lang$html$Html_Events$onSubmitOptions = _elm_lang$core$Native_Utils.update(\n\t_elm_lang$html$Html_Events$defaultOptions,\n\t{preventDefault: true});\nvar _elm_lang$html$Html_Events$onSubmit = function (msg) {\n\treturn A3(\n\t\t_elm_lang$html$Html_Events$onWithOptions,\n\t\t'submit',\n\t\t_elm_lang$html$Html_Events$onSubmitOptions,\n\t\t_elm_lang$core$Json_Decode$succeed(msg));\n};\nvar _elm_lang$html$Html_Events$onCheck = function (tagger) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Events$on,\n\t\t'change',\n\t\tA2(_elm_lang$core$Json_Decode$map, tagger, _elm_lang$html$Html_Events$targetChecked));\n};\nvar _elm_lang$html$Html_Events$onInput = function (tagger) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Events$on,\n\t\t'input',\n\t\tA2(_elm_lang$core$Json_Decode$map, tagger, _elm_lang$html$Html_Events$targetValue));\n};\nvar _elm_lang$html$Html_Events$onMouseOut = function (msg) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Events$on,\n\t\t'mouseout',\n\t\t_elm_lang$core$Json_Decode$succeed(msg));\n};\nvar _elm_lang$html$Html_Events$onMouseOver = function (msg) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Events$on,\n\t\t'mouseover',\n\t\t_elm_lang$core$Json_Decode$succeed(msg));\n};\nvar _elm_lang$html$Html_Events$onMouseLeave = function (msg) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Events$on,\n\t\t'mouseleave',\n\t\t_elm_lang$core$Json_Decode$succeed(msg));\n};\nvar _elm_lang$html$Html_Events$onMouseEnter = function (msg) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Events$on,\n\t\t'mouseenter',\n\t\t_elm_lang$core$Json_Decode$succeed(msg));\n};\nvar _elm_lang$html$Html_Events$onMouseUp = function (msg) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Events$on,\n\t\t'mouseup',\n\t\t_elm_lang$core$Json_Decode$succeed(msg));\n};\nvar _elm_lang$html$Html_Events$onMouseDown = function (msg) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Events$on,\n\t\t'mousedown',\n\t\t_elm_lang$core$Json_Decode$succeed(msg));\n};\nvar _elm_lang$html$Html_Events$onDoubleClick = function (msg) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Events$on,\n\t\t'dblclick',\n\t\t_elm_lang$core$Json_Decode$succeed(msg));\n};\nvar _elm_lang$html$Html_Events$onClick = function (msg) {\n\treturn A2(\n\t\t_elm_lang$html$Html_Events$on,\n\t\t'click',\n\t\t_elm_lang$core$Json_Decode$succeed(msg));\n};\nvar _elm_lang$html$Html_Events$Options = F2(\n\tfunction (a, b) {\n\t\treturn {stopPropagation: a, preventDefault: b};\n\t});\n//import Dict, List, Maybe, Native.Scheduler //\n\nvar _evancz$elm_http$Native_Http = function() {\n\nfunction send(settings, request)\n{\n\treturn _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) {\n\t\tvar req = new XMLHttpRequest();\n\n\t\t// start\n\t\tif (settings.onStart.ctor === 'Just')\n\t\t{\n\t\t\treq.addEventListener('loadStart', function() {\n\t\t\t\tvar task = settings.onStart._0;\n\t\t\t\t_elm_lang$core$Native_Scheduler.rawSpawn(task);\n\t\t\t});\n\t\t}\n\n\t\t// progress\n\t\tif (settings.onProgress.ctor === 'Just')\n\t\t{\n\t\t\treq.addEventListener('progress', function(event) {\n\t\t\t\tvar progress = !event.lengthComputable\n\t\t\t\t\t? _elm_lang$core$Maybe$Nothing\n\t\t\t\t\t: _elm_lang$core$Maybe$Just({\n\t\t\t\t\t\tloaded: event.loaded,\n\t\t\t\t\t\ttotal: event.total\n\t\t\t\t\t});\n\t\t\t\tvar task = settings.onProgress._0(progress);\n\t\t\t\t_elm_lang$core$Native_Scheduler.rawSpawn(task);\n\t\t\t});\n\t\t}\n\n\t\t// end\n\t\treq.addEventListener('error', function() {\n\t\t\treturn callback(_elm_lang$core$Native_Scheduler.fail({ ctor: 'RawNetworkError' }));\n\t\t});\n\n\t\treq.addEventListener('timeout', function() {\n\t\t\treturn callback(_elm_lang$core$Native_Scheduler.fail({ ctor: 'RawTimeout' }));\n\t\t});\n\n\t\treq.addEventListener('load', function() {\n\t\t\treturn callback(_elm_lang$core$Native_Scheduler.succeed(toResponse(req)));\n\t\t});\n\n\t\treq.open(request.verb, request.url, true);\n\n\t\t// set all the headers\n\t\tfunction setHeader(pair) {\n\t\t\treq.setRequestHeader(pair._0, pair._1);\n\t\t}\n\t\tA2(_elm_lang$core$List$map, setHeader, request.headers);\n\n\t\t// set the timeout\n\t\treq.timeout = settings.timeout;\n\n\t\t// enable this withCredentials thing\n\t\treq.withCredentials = settings.withCredentials;\n\n\t\t// ask for a specific MIME type for the response\n\t\tif (settings.desiredResponseType.ctor === 'Just')\n\t\t{\n\t\t\treq.overrideMimeType(settings.desiredResponseType._0);\n\t\t}\n\n\t\t// actuall send the request\n\t\tif(request.body.ctor === \"BodyFormData\")\n\t\t{\n\t\t\treq.send(request.body.formData)\n\t\t}\n\t\telse\n\t\t{\n\t\t\treq.send(request.body._0);\n\t\t}\n\n\t\treturn function() {\n\t\t\treq.abort();\n\t\t};\n\t});\n}\n\n\n// deal with responses\n\nfunction toResponse(req)\n{\n\tvar tag = req.responseType === 'blob' ? 'Blob' : 'Text'\n\tvar response = tag === 'Blob' ? req.response : req.responseText;\n\treturn {\n\t\tstatus: req.status,\n\t\tstatusText: req.statusText,\n\t\theaders: parseHeaders(req.getAllResponseHeaders()),\n\t\turl: req.responseURL,\n\t\tvalue: { ctor: tag, _0: response }\n\t};\n}\n\n\nfunction parseHeaders(rawHeaders)\n{\n\tvar headers = _elm_lang$core$Dict$empty;\n\n\tif (!rawHeaders)\n\t{\n\t\treturn headers;\n\t}\n\n\tvar headerPairs = rawHeaders.split('\\u000d\\u000a');\n\tfor (var i = headerPairs.length; i--; )\n\t{\n\t\tvar headerPair = headerPairs[i];\n\t\tvar index = headerPair.indexOf('\\u003a\\u0020');\n\t\tif (index > 0)\n\t\t{\n\t\t\tvar key = headerPair.substring(0, index);\n\t\t\tvar value = headerPair.substring(index + 2);\n\n\t\t\theaders = A3(_elm_lang$core$Dict$update, key, function(oldValue) {\n\t\t\t\tif (oldValue.ctor === 'Just')\n\t\t\t\t{\n\t\t\t\t\treturn _elm_lang$core$Maybe$Just(value + ', ' + oldValue._0);\n\t\t\t\t}\n\t\t\t\treturn _elm_lang$core$Maybe$Just(value);\n\t\t\t}, headers);\n\t\t}\n\t}\n\n\treturn headers;\n}\n\n\nfunction multipart(dataList)\n{\n\tvar formData = new FormData();\n\n\twhile (dataList.ctor !== '[]')\n\t{\n\t\tvar data = dataList._0;\n\t\tif (data.ctor === 'StringData')\n\t\t{\n\t\t\tformData.append(data._0, data._1);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tvar fileName = data._1.ctor === 'Nothing'\n\t\t\t\t? undefined\n\t\t\t\t: data._1._0;\n\t\t\tformData.append(data._0, data._2, fileName);\n\t\t}\n\t\tdataList = dataList._1;\n\t}\n\n\treturn { ctor: 'BodyFormData', formData: formData };\n}\n\n\nfunction uriEncode(string)\n{\n\treturn encodeURIComponent(string);\n}\n\nfunction uriDecode(string)\n{\n\treturn decodeURIComponent(string);\n}\n\nreturn {\n\tsend: F2(send),\n\tmultipart: multipart,\n\turiEncode: uriEncode,\n\turiDecode: uriDecode\n};\n\n}();\nvar _evancz$elm_http$Http$send = _evancz$elm_http$Native_Http.send;\nvar _evancz$elm_http$Http$defaultSettings = {timeout: 0, onStart: _elm_lang$core$Maybe$Nothing, onProgress: _elm_lang$core$Maybe$Nothing, desiredResponseType: _elm_lang$core$Maybe$Nothing, withCredentials: false};\nvar _evancz$elm_http$Http$multipart = _evancz$elm_http$Native_Http.multipart;\nvar _evancz$elm_http$Http$uriDecode = _evancz$elm_http$Native_Http.uriDecode;\nvar _evancz$elm_http$Http$uriEncode = _evancz$elm_http$Native_Http.uriEncode;\nvar _evancz$elm_http$Http$queryEscape = function (string) {\n\treturn A2(\n\t\t_elm_lang$core$String$join,\n\t\t'+',\n\t\tA2(\n\t\t\t_elm_lang$core$String$split,\n\t\t\t'%20',\n\t\t\t_evancz$elm_http$Http$uriEncode(string)));\n};\nvar _evancz$elm_http$Http$queryPair = function (_p0) {\n\tvar _p1 = _p0;\n\treturn A2(\n\t\t_elm_lang$core$Basics_ops['++'],\n\t\t_evancz$elm_http$Http$queryEscape(_p1._0),\n\t\tA2(\n\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t'=',\n\t\t\t_evancz$elm_http$Http$queryEscape(_p1._1)));\n};\nvar _evancz$elm_http$Http$url = F2(\n\tfunction (baseUrl, args) {\n\t\tvar _p2 = args;\n\t\tif (_p2.ctor === '[]') {\n\t\t\treturn baseUrl;\n\t\t} else {\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\tbaseUrl,\n\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t'?',\n\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_lang$core$String$join,\n\t\t\t\t\t\t'&',\n\t\t\t\t\t\tA2(_elm_lang$core$List$map, _evancz$elm_http$Http$queryPair, args))));\n\t\t}\n\t});\nvar _evancz$elm_http$Http$Request = F4(\n\tfunction (a, b, c, d) {\n\t\treturn {verb: a, headers: b, url: c, body: d};\n\t});\nvar _evancz$elm_http$Http$Settings = F5(\n\tfunction (a, b, c, d, e) {\n\t\treturn {timeout: a, onStart: b, onProgress: c, desiredResponseType: d, withCredentials: e};\n\t});\nvar _evancz$elm_http$Http$Response = F5(\n\tfunction (a, b, c, d, e) {\n\t\treturn {status: a, statusText: b, headers: c, url: d, value: e};\n\t});\nvar _evancz$elm_http$Http$TODO_implement_blob_in_another_library = {ctor: 'TODO_implement_blob_in_another_library'};\nvar _evancz$elm_http$Http$TODO_implement_file_in_another_library = {ctor: 'TODO_implement_file_in_another_library'};\nvar _evancz$elm_http$Http$BodyBlob = function (a) {\n\treturn {ctor: 'BodyBlob', _0: a};\n};\nvar _evancz$elm_http$Http$BodyFormData = {ctor: 'BodyFormData'};\nvar _evancz$elm_http$Http$ArrayBuffer = {ctor: 'ArrayBuffer'};\nvar _evancz$elm_http$Http$BodyString = function (a) {\n\treturn {ctor: 'BodyString', _0: a};\n};\nvar _evancz$elm_http$Http$string = _evancz$elm_http$Http$BodyString;\nvar _evancz$elm_http$Http$Empty = {ctor: 'Empty'};\nvar _evancz$elm_http$Http$empty = _evancz$elm_http$Http$Empty;\nvar _evancz$elm_http$Http$FileData = F3(\n\tfunction (a, b, c) {\n\t\treturn {ctor: 'FileData', _0: a, _1: b, _2: c};\n\t});\nvar _evancz$elm_http$Http$BlobData = F3(\n\tfunction (a, b, c) {\n\t\treturn {ctor: 'BlobData', _0: a, _1: b, _2: c};\n\t});\nvar _evancz$elm_http$Http$blobData = _evancz$elm_http$Http$BlobData;\nvar _evancz$elm_http$Http$StringData = F2(\n\tfunction (a, b) {\n\t\treturn {ctor: 'StringData', _0: a, _1: b};\n\t});\nvar _evancz$elm_http$Http$stringData = _evancz$elm_http$Http$StringData;\nvar _evancz$elm_http$Http$Blob = function (a) {\n\treturn {ctor: 'Blob', _0: a};\n};\nvar _evancz$elm_http$Http$Text = function (a) {\n\treturn {ctor: 'Text', _0: a};\n};\nvar _evancz$elm_http$Http$RawNetworkError = {ctor: 'RawNetworkError'};\nvar _evancz$elm_http$Http$RawTimeout = {ctor: 'RawTimeout'};\nvar _evancz$elm_http$Http$BadResponse = F2(\n\tfunction (a, b) {\n\t\treturn {ctor: 'BadResponse', _0: a, _1: b};\n\t});\nvar _evancz$elm_http$Http$UnexpectedPayload = function (a) {\n\treturn {ctor: 'UnexpectedPayload', _0: a};\n};\nvar _evancz$elm_http$Http$handleResponse = F2(\n\tfunction (handle, response) {\n\t\tif ((_elm_lang$core$Native_Utils.cmp(200, response.status) < 1) && (_elm_lang$core$Native_Utils.cmp(response.status, 300) < 0)) {\n\t\t\tvar _p3 = response.value;\n\t\t\tif (_p3.ctor === 'Text') {\n\t\t\t\treturn handle(_p3._0);\n\t\t\t} else {\n\t\t\t\treturn _elm_lang$core$Task$fail(\n\t\t\t\t\t_evancz$elm_http$Http$UnexpectedPayload('Response body is a blob, expecting a string.'));\n\t\t\t}\n\t\t} else {\n\t\t\treturn _elm_lang$core$Task$fail(\n\t\t\t\tA2(_evancz$elm_http$Http$BadResponse, response.status, response.statusText));\n\t\t}\n\t});\nvar _evancz$elm_http$Http$NetworkError = {ctor: 'NetworkError'};\nvar _evancz$elm_http$Http$Timeout = {ctor: 'Timeout'};\nvar _evancz$elm_http$Http$promoteError = function (rawError) {\n\tvar _p4 = rawError;\n\tif (_p4.ctor === 'RawTimeout') {\n\t\treturn _evancz$elm_http$Http$Timeout;\n\t} else {\n\t\treturn _evancz$elm_http$Http$NetworkError;\n\t}\n};\nvar _evancz$elm_http$Http$getString = function (url) {\n\tvar request = {\n\t\tverb: 'GET',\n\t\theaders: _elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\turl: url,\n\t\tbody: _evancz$elm_http$Http$empty\n\t};\n\treturn A2(\n\t\t_elm_lang$core$Task$andThen,\n\t\tA2(\n\t\t\t_elm_lang$core$Task$mapError,\n\t\t\t_evancz$elm_http$Http$promoteError,\n\t\t\tA2(_evancz$elm_http$Http$send, _evancz$elm_http$Http$defaultSettings, request)),\n\t\t_evancz$elm_http$Http$handleResponse(_elm_lang$core$Task$succeed));\n};\nvar _evancz$elm_http$Http$fromJson = F2(\n\tfunction (decoder, response) {\n\t\tvar decode = function (str) {\n\t\t\tvar _p5 = A2(_elm_lang$core$Json_Decode$decodeString, decoder, str);\n\t\t\tif (_p5.ctor === 'Ok') {\n\t\t\t\treturn _elm_lang$core$Task$succeed(_p5._0);\n\t\t\t} else {\n\t\t\t\treturn _elm_lang$core$Task$fail(\n\t\t\t\t\t_evancz$elm_http$Http$UnexpectedPayload(_p5._0));\n\t\t\t}\n\t\t};\n\t\treturn A2(\n\t\t\t_elm_lang$core$Task$andThen,\n\t\t\tA2(_elm_lang$core$Task$mapError, _evancz$elm_http$Http$promoteError, response),\n\t\t\t_evancz$elm_http$Http$handleResponse(decode));\n\t});\nvar _evancz$elm_http$Http$get = F2(\n\tfunction (decoder, url) {\n\t\tvar request = {\n\t\t\tverb: 'GET',\n\t\t\theaders: _elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\turl: url,\n\t\t\tbody: _evancz$elm_http$Http$empty\n\t\t};\n\t\treturn A2(\n\t\t\t_evancz$elm_http$Http$fromJson,\n\t\t\tdecoder,\n\t\t\tA2(_evancz$elm_http$Http$send, _evancz$elm_http$Http$defaultSettings, request));\n\t});\nvar _evancz$elm_http$Http$post = F3(\n\tfunction (decoder, url, body) {\n\t\tvar request = {\n\t\t\tverb: 'POST',\n\t\t\theaders: _elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\turl: url,\n\t\t\tbody: body\n\t\t};\n\t\treturn A2(\n\t\t\t_evancz$elm_http$Http$fromJson,\n\t\t\tdecoder,\n\t\t\tA2(_evancz$elm_http$Http$send, _evancz$elm_http$Http$defaultSettings, request));\n\t});\nvar _massung$elm_css$Css$style = F2(\n\tfunction (attributes, sheet) {\n\t\treturn A3(\n\t\t\t_elm_lang$html$Html$node,\n\t\t\t'style',\n\t\t\tattributes,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[sheet.node]));\n\t});\nvar _massung$elm_css$Css$importUrl = function (url) {\n\treturn _elm_lang$core$String$concat(\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t['@import url(', url, ');']));\n};\nvar _massung$elm_css$Css$desc = function (_p0) {\n\treturn _elm_lang$core$String$concat(\n\t\tA2(\n\t\t\t_elm_lang$core$List$map,\n\t\t\tfunction (_p1) {\n\t\t\t\tvar _p2 = _p1;\n\t\t\t\treturn _elm_lang$core$String$concat(\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[_p2._0, ':', _p2._1, ';']));\n\t\t\t},\n\t\t\t_p0));\n};\nvar _massung$elm_css$Css$pseudo = function (p) {\n\tvar _p3 = p;\n\tswitch (_p3.ctor) {\n\t\tcase 'Any':\n\t\t\treturn ':any';\n\t\tcase 'Default':\n\t\t\treturn ':default';\n\t\tcase 'Link':\n\t\t\treturn ':link';\n\t\tcase 'Visited':\n\t\t\treturn ':visited';\n\t\tcase 'Hover':\n\t\t\treturn ':hover';\n\t\tcase 'Active':\n\t\t\treturn ':active';\n\t\tcase 'Focus':\n\t\t\treturn ':focus';\n\t\tcase 'Target':\n\t\t\treturn ':target';\n\t\tcase 'Enabled':\n\t\t\treturn ':enabled';\n\t\tcase 'Disabled':\n\t\t\treturn ':disabled';\n\t\tcase 'Checked':\n\t\t\treturn ':checked';\n\t\tcase 'Indeterminate':\n\t\t\treturn ':indeterminate';\n\t\tcase 'Invalid':\n\t\t\treturn ':invalid';\n\t\tcase 'Valid':\n\t\t\treturn ':valid';\n\t\tcase 'Fullscreen':\n\t\t\treturn ':fullscreen';\n\t\tcase 'Root':\n\t\t\treturn ':root';\n\t\tcase 'Scope':\n\t\t\treturn ':scope';\n\t\tcase 'FirstChild':\n\t\t\treturn ':first-child';\n\t\tcase 'LastChild':\n\t\t\treturn ':last-child';\n\t\tcase 'NthChild':\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t':nth-child(',\n\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t_elm_lang$core$Basics$toString(_p3._0),\n\t\t\t\t\t')'));\n\t\tcase 'NthLastChild':\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t':nth-last-child(',\n\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t_elm_lang$core$Basics$toString(_p3._0),\n\t\t\t\t\t')'));\n\t\tcase 'NthOfType':\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t':nth-of-type(',\n\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], _p3._0, ')'));\n\t\tcase 'NthLastOfType':\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t':nth-last-of-type(',\n\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], _p3._0, ')'));\n\t\tcase 'FirstOfType':\n\t\t\treturn ':first-of-type';\n\t\tcase 'LastOfType':\n\t\t\treturn ':last-of-type';\n\t\tcase 'OnlyOfType':\n\t\t\treturn ':only-of-type';\n\t\tcase 'Lang':\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t':lang(',\n\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], _p3._0, ')'));\n\t\tcase 'Dir':\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t':dir(',\n\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], _p3._0, ')'));\n\t\tcase 'Empty':\n\t\t\treturn ':empty';\n\t\tcase 'Left':\n\t\t\treturn ':left';\n\t\tcase 'Right':\n\t\t\treturn ':right';\n\t\tcase 'FirstLetter':\n\t\t\treturn '::first-letter';\n\t\tcase 'FirstLine':\n\t\t\treturn '::first-line';\n\t\tcase 'Before':\n\t\t\treturn '::before';\n\t\tcase 'After':\n\t\t\treturn '::after';\n\t\tcase 'Selection':\n\t\t\treturn '::selection';\n\t\tdefault:\n\t\t\treturn '::backdrop';\n\t}\n};\nvar _massung$elm_css$Css$sel = function (selector) {\n\tvar _p4 = selector;\n\tswitch (_p4.ctor) {\n\t\tcase 'Type':\n\t\t\treturn _p4._0;\n\t\tcase 'Id':\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$String$cons,\n\t\t\t\t_elm_lang$core$Native_Utils.chr('#'),\n\t\t\t\t_elm_lang$core$Basics$toString(_p4._0));\n\t\tcase 'Class':\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$String$cons,\n\t\t\t\t_elm_lang$core$Native_Utils.chr('.'),\n\t\t\t\t_elm_lang$core$Basics$toString(_p4._0));\n\t\tcase 'Descendant':\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$String$join,\n\t\t\t\t' ',\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t_massung$elm_css$Css$sel(_p4._1),\n\t\t\t\t\t\t_massung$elm_css$Css$sel(_p4._0)\n\t\t\t\t\t]));\n\t\tcase 'Child':\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$String$join,\n\t\t\t\t' > ',\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t_massung$elm_css$Css$sel(_p4._1),\n\t\t\t\t\t\t_massung$elm_css$Css$sel(_p4._0)\n\t\t\t\t\t]));\n\t\tcase 'Sibling':\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$String$join,\n\t\t\t\t' ~ ',\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t_massung$elm_css$Css$sel(_p4._1),\n\t\t\t\t\t\t_massung$elm_css$Css$sel(_p4._0)\n\t\t\t\t\t]));\n\t\tcase 'Adjacent':\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$String$join,\n\t\t\t\t' + ',\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t_massung$elm_css$Css$sel(_p4._1),\n\t\t\t\t\t\t_massung$elm_css$Css$sel(_p4._0)\n\t\t\t\t\t]));\n\t\tdefault:\n\t\t\treturn _elm_lang$core$String$concat(\n\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\t\t_massung$elm_css$Css$sel(_p4._1),\n\t\t\t\t\tA2(_elm_lang$core$List$map, _massung$elm_css$Css$pseudo, _p4._0)));\n\t}\n};\nvar _massung$elm_css$Css$rule = function (rule) {\n\treturn _elm_lang$core$String$concat(\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t_elm_lang$core$String$join,\n\t\t\t\t',',\n\t\t\t\tA2(_elm_lang$core$List$map, _massung$elm_css$Css$sel, rule.selectors)),\n\t\t\t\t'{',\n\t\t\t\t_massung$elm_css$Css$desc(rule.descriptor),\n\t\t\t\t'}'\n\t\t\t]));\n};\nvar _massung$elm_css$Css$stylesheet = F2(\n\tfunction (urls, rules) {\n\t\treturn {\n\t\t\tnode: function (_p5) {\n\t\t\t\treturn _elm_lang$html$Html$text(\n\t\t\t\t\t_elm_lang$core$String$concat(_p5));\n\t\t\t}(\n\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\tA2(_elm_lang$core$List$map, _massung$elm_css$Css$importUrl, urls),\n\t\t\t\t\tA2(_elm_lang$core$List$map, _massung$elm_css$Css$rule, rules))),\n\t\t\tid: function (_p6) {\n\t\t\t\treturn _elm_lang$html$Html_Attributes$id(\n\t\t\t\t\t_elm_lang$core$Basics$toString(_p6));\n\t\t\t},\n\t\t\t$class: function (_p7) {\n\t\t\t\treturn _elm_lang$html$Html_Attributes$class(\n\t\t\t\t\t_elm_lang$core$Basics$toString(_p7));\n\t\t\t},\n\t\t\tclasses: function (_p8) {\n\t\t\t\treturn _elm_lang$html$Html_Attributes$class(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_lang$core$String$join,\n\t\t\t\t\t\t' ',\n\t\t\t\t\t\tA2(_elm_lang$core$List$map, _elm_lang$core$Basics$toString, _p8)));\n\t\t\t}\n\t\t};\n\t});\nvar _massung$elm_css$Css$Stylesheet = F4(\n\tfunction (a, b, c, d) {\n\t\treturn {node: a, id: b, $class: c, classes: d};\n\t});\nvar _massung$elm_css$Css$Rule = F2(\n\tfunction (a, b) {\n\t\treturn {selectors: a, descriptor: b};\n\t});\nvar _massung$elm_css$Css$Pseudo = F2(\n\tfunction (a, b) {\n\t\treturn {ctor: 'Pseudo', _0: a, _1: b};\n\t});\nvar _massung$elm_css$Css$Adjacent = F2(\n\tfunction (a, b) {\n\t\treturn {ctor: 'Adjacent', _0: a, _1: b};\n\t});\nvar _massung$elm_css$Css$Sibling = F2(\n\tfunction (a, b) {\n\t\treturn {ctor: 'Sibling', _0: a, _1: b};\n\t});\nvar _massung$elm_css$Css$Child = F2(\n\tfunction (a, b) {\n\t\treturn {ctor: 'Child', _0: a, _1: b};\n\t});\nvar _massung$elm_css$Css$Descendant = F2(\n\tfunction (a, b) {\n\t\treturn {ctor: 'Descendant', _0: a, _1: b};\n\t});\nvar _massung$elm_css$Css$Class = function (a) {\n\treturn {ctor: 'Class', _0: a};\n};\nvar _massung$elm_css$Css$Id = function (a) {\n\treturn {ctor: 'Id', _0: a};\n};\nvar _massung$elm_css$Css$Type = function (a) {\n\treturn {ctor: 'Type', _0: a};\n};\nvar _massung$elm_css$Css$Backdrop = {ctor: 'Backdrop'};\nvar _massung$elm_css$Css$Selection = {ctor: 'Selection'};\nvar _massung$elm_css$Css$After = {ctor: 'After'};\nvar _massung$elm_css$Css$Before = {ctor: 'Before'};\nvar _massung$elm_css$Css$FirstLine = {ctor: 'FirstLine'};\nvar _massung$elm_css$Css$FirstLetter = {ctor: 'FirstLetter'};\nvar _massung$elm_css$Css$Dir = function (a) {\n\treturn {ctor: 'Dir', _0: a};\n};\nvar _massung$elm_css$Css$Lang = function (a) {\n\treturn {ctor: 'Lang', _0: a};\n};\nvar _massung$elm_css$Css$Right = {ctor: 'Right'};\nvar _massung$elm_css$Css$Left = {ctor: 'Left'};\nvar _massung$elm_css$Css$Empty = {ctor: 'Empty'};\nvar _massung$elm_css$Css$OnlyOfType = {ctor: 'OnlyOfType'};\nvar _massung$elm_css$Css$LastOfType = {ctor: 'LastOfType'};\nvar _massung$elm_css$Css$FirstOfType = {ctor: 'FirstOfType'};\nvar _massung$elm_css$Css$NthLastOfType = function (a) {\n\treturn {ctor: 'NthLastOfType', _0: a};\n};\nvar _massung$elm_css$Css$NthOfType = function (a) {\n\treturn {ctor: 'NthOfType', _0: a};\n};\nvar _massung$elm_css$Css$NthLastChild = function (a) {\n\treturn {ctor: 'NthLastChild', _0: a};\n};\nvar _massung$elm_css$Css$NthChild = function (a) {\n\treturn {ctor: 'NthChild', _0: a};\n};\nvar _massung$elm_css$Css$LastChild = {ctor: 'LastChild'};\nvar _massung$elm_css$Css$FirstChild = {ctor: 'FirstChild'};\nvar _massung$elm_css$Css$Scope = {ctor: 'Scope'};\nvar _massung$elm_css$Css$Root = {ctor: 'Root'};\nvar _massung$elm_css$Css$Fullscreen = {ctor: 'Fullscreen'};\nvar _massung$elm_css$Css$Valid = {ctor: 'Valid'};\nvar _massung$elm_css$Css$Invalid = {ctor: 'Invalid'};\nvar _massung$elm_css$Css$Indeterminate = {ctor: 'Indeterminate'};\nvar _massung$elm_css$Css$Checked = {ctor: 'Checked'};\nvar _massung$elm_css$Css$Disabled = {ctor: 'Disabled'};\nvar _massung$elm_css$Css$Enabled = {ctor: 'Enabled'};\nvar _massung$elm_css$Css$Target = {ctor: 'Target'};\nvar _massung$elm_css$Css$Focus = {ctor: 'Focus'};\nvar _massung$elm_css$Css$Active = {ctor: 'Active'};\nvar _massung$elm_css$Css$Hover = {ctor: 'Hover'};\nvar _massung$elm_css$Css$Visited = {ctor: 'Visited'};\nvar _massung$elm_css$Css$Link = {ctor: 'Link'};\nvar _massung$elm_css$Css$Default = {ctor: 'Default'};\nvar _massung$elm_css$Css$Any = {ctor: 'Any'};\nvar _shmookey$cmd_extra$Cmd_Extra$message = function (x) {\n\treturn A3(\n\t\t_elm_lang$core$Task$perform,\n\t\t_elm_lang$core$Basics$identity,\n\t\t_elm_lang$core$Basics$identity,\n\t\t_elm_lang$core$Task$succeed(x));\n};\nvar _user$project$ComboBox$imports = _elm_lang$core$Native_List.fromArray(\n\t[]);\nvar _user$project$ComboBox$seamlessAttrs = _elm_lang$core$Native_List.fromArray(\n\t[\n\t\t{ctor: '_Tuple2', _0: 'border', _1: 'none'},\n\t\t{ctor: '_Tuple2', _0: 'padding', _1: '0'}\n\t]);\nvar _user$project$ComboBox$seamlessStyle = _elm_lang$core$Native_List.fromArray(\n\t[\n\t\t_elm_lang$html$Html_Attributes$style(_user$project$ComboBox$seamlessAttrs)\n\t]);\nvar _user$project$ComboBox$seamlessStyleWithAttrs = function (attrs) {\n\treturn _elm_lang$html$Html_Attributes$style(\n\t\tA2(_elm_lang$core$Basics_ops['++'], _user$project$ComboBox$seamlessAttrs, attrs));\n};\nvar _user$project$ComboBox$listTail = function (l) {\n\tvar _p0 = _elm_lang$core$List$tail(l);\n\tif (_p0.ctor === 'Nothing') {\n\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t[]);\n\t} else {\n\t\treturn _p0._0;\n\t}\n};\nvar _user$project$ComboBox$update = F2(\n\tfunction (msg, model) {\n\t\tvar _p1 = msg;\n\t\tswitch (_p1.ctor) {\n\t\t\tcase 'UpdateField':\n\t\t\t\tvar _p2 = _p1._0;\n\t\t\t\tvar eMsg = A2(_elm_lang$core$List$member, _p2, model.entries) ? 'DUCPLICATE' : '';\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{current: _p2, errMsg: eMsg}),\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]));\n\t\t\tcase 'FieldChanged':\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{current: _p1._0}),\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]));\n\t\t\tcase 'Select':\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{current: _p1._0}),\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]));\n\t\t\tcase 'ToggleDebug':\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{debug: _p1._0}),\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]));\n\t\t\tdefault:\n\t\t\t\tvar _p4 = _p1._0;\n\t\t\t\tvar model$ = function () {\n\t\t\t\t\tvar _p3 = _elm_lang$core$List$head(_p4);\n\t\t\t\t\tif (_p3.ctor === 'Just') {\n\t\t\t\t\t\treturn _elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tentries: _user$project$ComboBox$listTail(_p4),\n\t\t\t\t\t\t\t\tcurrent: _p3._0\n\t\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn model;\n\t\t\t\t\t}\n\t\t\t\t}();\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\tmodel$,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmutable: _elm_lang$core$Basics$not(\n\t\t\t\t\t\t\t\t_elm_lang$core$List$isEmpty(_p4))\n\t\t\t\t\t\t}),\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]));\n\t\t}\n\t});\nvar _user$project$ComboBox$Model = F5(\n\tfunction (a, b, c, d, e) {\n\t\treturn {current: a, mutable: b, entries: c, debug: d, errMsg: e};\n\t});\nvar _user$project$ComboBox$init = function (entries) {\n\treturn A5(_user$project$ComboBox$Model, '', false, entries, false, '');\n};\nvar _user$project$ComboBox$testInit = _user$project$ComboBox$init(\n\t_elm_lang$core$Native_List.fromArray(\n\t\t['aa', 'bbbb']));\nvar _user$project$ComboBox$NewOptions = function (a) {\n\treturn {ctor: 'NewOptions', _0: a};\n};\nvar _user$project$ComboBox$ToggleDebug = function (a) {\n\treturn {ctor: 'ToggleDebug', _0: a};\n};\nvar _user$project$ComboBox$viewDbg = function (model) {\n\tvar dbgInfo = model.debug ? _elm_lang$html$Html$text(\n\t\t_elm_lang$core$Basics$toString(model)) : A2(\n\t\t_elm_lang$html$Html$div,\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]));\n\treturn A2(\n\t\t_elm_lang$html$Html$div,\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t_elm_lang$html$Html$label,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[]),\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t_elm_lang$html$Html$text('debug')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t_elm_lang$html$Html$input,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t_elm_lang$html$Html_Attributes$type$('checkbox'),\n\t\t\t\t\t\t_elm_lang$html$Html_Attributes$checked(model.debug),\n\t\t\t\t\t\t_elm_lang$html$Html_Events$onCheck(_user$project$ComboBox$ToggleDebug)\n\t\t\t\t\t]),\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[])),\n\t\t\t\tdbgInfo\n\t\t\t]));\n};\nvar _user$project$ComboBox$Select = function (a) {\n\treturn {ctor: 'Select', _0: a};\n};\nvar _user$project$ComboBox$FieldChanged = function (a) {\n\treturn {ctor: 'FieldChanged', _0: a};\n};\nvar _user$project$ComboBox$UpdateField = function (a) {\n\treturn {ctor: 'UpdateField', _0: a};\n};\nvar _user$project$ComboBox$viewField = function (model) {\n\tvar _p5 = _elm_lang$core$Native_Utils.eq(model.errMsg, '') ? {\n\t\tctor: '_Tuple2',\n\t\t_0: _elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\t_1: _elm_lang$core$Native_List.fromArray(\n\t\t\t[])\n\t} : {\n\t\tctor: '_Tuple2',\n\t\t_0: _elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\t{ctor: '_Tuple2', _0: 'color', _1: 'red'}\n\t\t\t]),\n\t\t_1: _elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t_elm_lang$html$Html$label,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t_elm_lang$html$Html_Attributes$style(\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t{ctor: '_Tuple2', _0: 'color', _1: 'red'}\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t]),\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t_elm_lang$html$Html$text(model.errMsg)\n\t\t\t\t\t]))\n\t\t\t])\n\t};\n\tvar styles = _p5._0;\n\tvar err = _p5._1;\n\tvar style = _elm_lang$html$Html_Attributes$style(styles);\n\tvar currentIsEmpty = _elm_lang$core$String$isEmpty(\n\t\t_elm_lang$core$String$trim(model.current));\n\treturn A2(\n\t\t_elm_lang$html$Html$div,\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\tA2(\n\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$html$Html$input,\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$type$('text'),\n\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$value(model.current),\n\t\t\t\t\t\t\t_elm_lang$html$Html_Events$onInput(_user$project$ComboBox$UpdateField),\n\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$disabled(\n\t\t\t\t\t\t\t_elm_lang$core$Basics$not(model.mutable)),\n\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$autofocus(true),\n\t\t\t\t\t\t\tstyle,\n\t\t\t\t\t\t\t_elm_lang$html$Html_Events$onBlur(\n\t\t\t\t\t\t\t_user$project$ComboBox$FieldChanged(model.current))\n\t\t\t\t\t\t]),\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]))\n\t\t\t\t]),\n\t\t\terr));\n};\nvar _user$project$ComboBox$DropDownContent = {ctor: 'DropDownContent'};\nvar _user$project$ComboBox$dropDownContentRule = {\n\tselectors: _elm_lang$core$Native_List.fromArray(\n\t\t[\n\t\t\t_massung$elm_css$Css$Class(_user$project$ComboBox$DropDownContent)\n\t\t]),\n\tdescriptor: _elm_lang$core$Native_List.fromArray(\n\t\t[\n\t\t\t{ctor: '_Tuple2', _0: 'position', _1: 'absolute'},\n\t\t\t{ctor: '_Tuple2', _0: 'display', _1: 'none'},\n\t\t\t{ctor: '_Tuple2', _0: 'background-color', _1: '#E7FAC4'},\n\t\t\t{ctor: '_Tuple2', _0: 'width', _1: '100%'}\n\t\t])\n};\nvar _user$project$ComboBox$DropDown = {ctor: 'DropDown'};\nvar _user$project$ComboBox$dropDownRule = {\n\tselectors: _elm_lang$core$Native_List.fromArray(\n\t\t[\n\t\t\t_massung$elm_css$Css$Class(_user$project$ComboBox$DropDown)\n\t\t]),\n\tdescriptor: _elm_lang$core$Native_List.fromArray(\n\t\t[\n\t\t\t{ctor: '_Tuple2', _0: 'position', _1: 'relative'},\n\t\t\t{ctor: '_Tuple2', _0: 'display', _1: 'inline-block'}\n\t\t])\n};\nvar _user$project$ComboBox$dropDownHoverRule = {\n\tselectors: _elm_lang$core$Native_List.fromArray(\n\t\t[\n\t\t\tA2(\n\t\t\t_massung$elm_css$Css$Descendant,\n\t\t\t_massung$elm_css$Css$Class(_user$project$ComboBox$DropDownContent),\n\t\t\tA2(\n\t\t\t\t_massung$elm_css$Css$Pseudo,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[_massung$elm_css$Css$Hover]),\n\t\t\t\t_massung$elm_css$Css$Class(_user$project$ComboBox$DropDown)))\n\t\t]),\n\tdescriptor: _elm_lang$core$Native_List.fromArray(\n\t\t[\n\t\t\t{ctor: '_Tuple2', _0: 'display', _1: 'block'},\n\t\t\t{ctor: '_Tuple2', _0: 'background-color', _1: '#E7FAC4'}\n\t\t])\n};\nvar _user$project$ComboBox$stylesheet = A2(\n\t_massung$elm_css$Css$stylesheet,\n\t_user$project$ComboBox$imports,\n\t_elm_lang$core$Native_List.fromArray(\n\t\t[_user$project$ComboBox$dropDownHoverRule, _user$project$ComboBox$dropDownRule, _user$project$ComboBox$dropDownContentRule]));\nvar _user$project$ComboBox$viewX = F4(\n\tfunction (labels, neutralEntry, selectMsg, model) {\n\t\treturn A2(\n\t\t\t_elm_lang$html$Html$div,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t_massung$elm_css$Css$style,\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]),\n\t\t\t\t\t_user$project$ComboBox$stylesheet),\n\t\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$html$Html$div,\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_user$project$ComboBox$stylesheet.$class(_user$project$ComboBox$DropDown)\n\t\t\t\t\t\t]),\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_lang$html$Html$table,\n\t\t\t\t\t\t\t_user$project$ComboBox$seamlessStyle,\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t\t\t\t\t_user$project$ComboBox$seamlessStyle,\n\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2(_elm_lang$html$Html$td, _user$project$ComboBox$seamlessStyle, labels),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t\t\t\t_user$project$ComboBox$seamlessStyle,\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t_user$project$ComboBox$viewField(model),\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$table,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_user$project$ComboBox$stylesheet.$class(_user$project$ComboBox$DropDownContent)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (lbl) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_user$project$ComboBox$seamlessStyle,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$button,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_Events$onClick(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectMsg(lbl)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_user$project$ComboBox$seamlessStyleWithAttrs(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ctor: '_Tuple2', _0: 'width', _1: '100%'},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ctor: '_Tuple2', _0: 'background-color', _1: '#E7FAC4'}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text(lbl)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmodel.entries))\n\t\t\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t_user$project$ComboBox$viewDbg(model)\n\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t]))\n\t\t\t\t]));\n\t});\nvar _user$project$ComboBox$viewTest = function (model) {\n\treturn A2(\n\t\t_elm_lang$html$Html$table,\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[]),\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t_user$project$ComboBox$viewX,\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text('Test: Pick new')\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t'--',\n\t\t\t\t\t\t\t\t_user$project$ComboBox$Select,\n\t\t\t\t\t\t\t\tmodel)\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t]))\n\t\t\t]));\n};\nvar _user$project$ComboBox$view = F4(\n\tfunction (labels, neutralEntry, selectMsg, model) {\n\t\tvar xLabels = A2(_elm_lang$core$List$map, _elm_lang$html$Html$text, labels);\n\t\treturn A4(_user$project$ComboBox$viewX, xLabels, neutralEntry, selectMsg, model);\n\t});\nvar _user$project$Widget_Data_Type$validateFormatForParam = function (cmdFmt) {\n\treturn A2(_elm_lang$core$String$contains, '{{}}', cmdFmt) ? '' : '!! format MUST contain \\'{{}}\\' !!';\n};\nvar _user$project$Widget_Data_Type$getKids = function (node) {\n\tvar _p0 = node.kids;\n\treturn _p0._0;\n};\nvar _user$project$Widget_Data_Type$kidsOf = _user$project$Widget_Data_Type$getKids;\nvar _user$project$Widget_Data_Type$Record = F5(\n\tfunction (a, b, c, d, e) {\n\t\treturn {id: a, label: b, descr: c, value: d, fmtr: e};\n\t});\nvar _user$project$Widget_Data_Type$Node = F2(\n\tfunction (a, b) {\n\t\treturn {rec: a, kids: b};\n\t});\nvar _user$project$Widget_Data_Type$Kids = function (a) {\n\treturn {ctor: 'Kids', _0: a};\n};\nvar _user$project$Widget_Data_Type$replaceKids = F2(\n\tfunction (node, newKids_l) {\n\t\treturn _elm_lang$core$Native_Utils.update(\n\t\t\tnode,\n\t\t\t{\n\t\t\t\tkids: _user$project$Widget_Data_Type$Kids(newKids_l)\n\t\t\t});\n\t});\nvar _user$project$Widget_Data_Type$insertKid = F2(\n\tfunction (newKid, node) {\n\t\treturn A2(\n\t\t\t_user$project$Widget_Data_Type$replaceKids,\n\t\t\tnode,\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\tnewKid,\n\t\t\t\t_user$project$Widget_Data_Type$kidsOf(node)));\n\t});\nvar _user$project$Widget_Data_Type$Switch = function (a) {\n\treturn {ctor: 'Switch', _0: a};\n};\nvar _user$project$Widget_Data_Type$Group = function (a) {\n\treturn {ctor: 'Group', _0: a};\n};\nvar _user$project$Widget_Data_Type$StringValue = F2(\n\tfunction (a, b) {\n\t\treturn {ctor: 'StringValue', _0: a, _1: b};\n\t});\nvar _user$project$Widget_Data_Type$BoolValue = function (a) {\n\treturn {ctor: 'BoolValue', _0: a};\n};\nvar _user$project$Widget_Data_Type$Disoriented = {ctor: 'Disoriented'};\nvar _user$project$Widget_Data_Type$Horizontal = {ctor: 'Horizontal'};\nvar _user$project$Widget_Data_Type$aHorizontal = F4(\n\tfunction (id, label, kids_l, fmtr) {\n\t\treturn A2(\n\t\t\t_user$project$Widget_Data_Type$Node,\n\t\t\tA5(\n\t\t\t\t_user$project$Widget_Data_Type$Record,\n\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], id, '-HG'),\n\t\t\t\tlabel,\n\t\t\t\t'a horizontal grouping',\n\t\t\t\t_user$project$Widget_Data_Type$Group(_user$project$Widget_Data_Type$Horizontal),\n\t\t\t\tfmtr),\n\t\t\t_user$project$Widget_Data_Type$Kids(kids_l));\n\t});\nvar _user$project$Widget_Data_Type$Vertical = {ctor: 'Vertical'};\nvar _user$project$Widget_Data_Type$aVertical = F4(\n\tfunction (id, label, kids_l, fmtr) {\n\t\treturn A2(\n\t\t\t_user$project$Widget_Data_Type$Node,\n\t\t\tA5(\n\t\t\t\t_user$project$Widget_Data_Type$Record,\n\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], id, '-VG'),\n\t\t\t\tlabel,\n\t\t\t\t'a vertical grouping',\n\t\t\t\t_user$project$Widget_Data_Type$Group(_user$project$Widget_Data_Type$Vertical),\n\t\t\t\tfmtr),\n\t\t\t_user$project$Widget_Data_Type$Kids(kids_l));\n\t});\nvar _user$project$Widget_Data_Type$SelectedKidFmtr = {ctor: 'SelectedKidFmtr'};\nvar _user$project$Widget_Data_Type$aSwitch = F3(\n\tfunction (id, label, kids_l) {\n\t\tvar optFirstKid = _elm_lang$core$List$head(kids_l);\n\t\tvar fkid = function () {\n\t\t\tvar _p1 = optFirstKid;\n\t\t\tif (_p1.ctor === 'Nothing') {\n\t\t\t\treturn '';\n\t\t\t} else {\n\t\t\t\treturn _p1._0.rec.id;\n\t\t\t}\n\t\t}();\n\t\treturn A2(\n\t\t\t_user$project$Widget_Data_Type$Node,\n\t\t\tA5(\n\t\t\t\t_user$project$Widget_Data_Type$Record,\n\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], id, '-SW'),\n\t\t\t\tlabel,\n\t\t\t\t'a switch',\n\t\t\t\t_user$project$Widget_Data_Type$Switch(fkid),\n\t\t\t\t_user$project$Widget_Data_Type$SelectedKidFmtr),\n\t\t\t_user$project$Widget_Data_Type$Kids(kids_l));\n\t});\nvar _user$project$Widget_Data_Type$KidsListFmtr = F2(\n\tfunction (a, b) {\n\t\treturn {ctor: 'KidsListFmtr', _0: a, _1: b};\n\t});\nvar _user$project$Widget_Data_Type$fmtList = F2(\n\tfunction (cmdFmt, listSep) {\n\t\treturn A2(_user$project$Widget_Data_Type$KidsListFmtr, cmdFmt, listSep);\n\t});\nvar _user$project$Widget_Data_Type$StringFmtr = function (a) {\n\treturn {ctor: 'StringFmtr', _0: a};\n};\nvar _user$project$Widget_Data_Type$aString = F5(\n\tfunction (id, label, descr, cmdFmt, required) {\n\t\tvar strValue = A2(\n\t\t\t_user$project$Widget_Data_Type$StringValue,\n\t\t\t_user$project$Widget_Data_Type$validateFormatForParam(cmdFmt),\n\t\t\trequired);\n\t\treturn A2(\n\t\t\t_user$project$Widget_Data_Type$Node,\n\t\t\tA5(\n\t\t\t\t_user$project$Widget_Data_Type$Record,\n\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], id, '_S'),\n\t\t\t\tlabel,\n\t\t\t\tdescr,\n\t\t\t\tstrValue,\n\t\t\t\t_user$project$Widget_Data_Type$StringFmtr(cmdFmt)),\n\t\t\t_user$project$Widget_Data_Type$Kids(\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[])));\n\t});\nvar _user$project$Widget_Data_Type$BoolFmtr = F2(\n\tfunction (a, b) {\n\t\treturn {ctor: 'BoolFmtr', _0: a, _1: b};\n\t});\nvar _user$project$Widget_Data_Type$aBoolX = F6(\n\tfunction (id, label, descr, flag, cmdTrue, cmdFalse) {\n\t\treturn A2(\n\t\t\t_user$project$Widget_Data_Type$Node,\n\t\t\tA5(\n\t\t\t\t_user$project$Widget_Data_Type$Record,\n\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], id, '_B'),\n\t\t\t\tlabel,\n\t\t\t\tdescr,\n\t\t\t\t_user$project$Widget_Data_Type$BoolValue(flag),\n\t\t\t\tA2(_user$project$Widget_Data_Type$BoolFmtr, cmdTrue, cmdFalse)),\n\t\t\t_user$project$Widget_Data_Type$Kids(\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[])));\n\t});\nvar _user$project$Widget_Data_Type$flag = F4(\n\tfunction (showName, $default, descr, optionNames) {\n\t\tvar listHead = function (l) {\n\t\t\tvar _p2 = _elm_lang$core$List$head(l);\n\t\t\tif (_p2.ctor === 'Nothing') {\n\t\t\t\treturn '';\n\t\t\t} else {\n\t\t\t\treturn _p2._0;\n\t\t\t}\n\t\t};\n\t\tvar listTail = function (l) {\n\t\t\tvar _p3 = _elm_lang$core$List$tail(l);\n\t\t\tif (_p3.ctor === 'Nothing') {\n\t\t\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[]);\n\t\t\t} else {\n\t\t\t\treturn _p3._0;\n\t\t\t}\n\t\t};\n\t\tvar _p4 = {\n\t\t\tctor: '_Tuple2',\n\t\t\t_0: listHead(optionNames),\n\t\t\t_1: listHead(\n\t\t\t\tlistTail(optionNames))\n\t\t};\n\t\tvar opt1 = _p4._0;\n\t\tvar opt2 = _p4._1;\n\t\tvar id = function () {\n\t\t\tvar _p5 = _elm_lang$core$List$head(\n\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$core$List$filter,\n\t\t\t\t\tfunction (s) {\n\t\t\t\t\t\treturn !_elm_lang$core$Native_Utils.eq(s, '');\n\t\t\t\t\t},\n\t\t\t\t\toptionNames));\n\t\t\tif (_p5.ctor === 'Nothing') {\n\t\t\t\treturn '<<< MISSING CLI-OPTION-NAME >>>';\n\t\t\t} else {\n\t\t\t\tvar _p6 = _p5._0;\n\t\t\t\treturn A2(_elm_lang$core$String$startsWith, '--', _p6) ? A2(_elm_lang$core$String$dropLeft, 2, _p6) : _p6;\n\t\t\t}\n\t\t}();\n\t\treturn A6(_user$project$Widget_Data_Type$aBoolX, id, showName, descr, $default, opt1, opt2);\n\t});\nvar _user$project$Widget_Data_Type$aBool = F4(\n\tfunction (id, label, descr, cmdTrue) {\n\t\treturn A6(\n\t\t\t_user$project$Widget_Data_Type$aBoolX,\n\t\t\tA2(_elm_lang$core$Basics_ops['++'], id, 'F'),\n\t\t\tlabel,\n\t\t\tdescr,\n\t\t\tfalse,\n\t\t\tcmdTrue,\n\t\t\t'');\n\t});\nvar _user$project$Widget_Data_Type$notFoundRec = function (errMsg) {\n\treturn A4(_user$project$Widget_Data_Type$aBool, 'id', errMsg, errMsg, errMsg).rec;\n};\nvar _user$project$Widget_Data_Type$notFoundNode = function (errMsg) {\n\treturn A2(\n\t\t_user$project$Widget_Data_Type$Node,\n\t\t_user$project$Widget_Data_Type$notFoundRec(errMsg),\n\t\t_user$project$Widget_Data_Type$Kids(\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[])));\n};\nvar _user$project$Widget_Data_Type$aBooT = F4(\n\tfunction (id, label, descr, cmdTrue) {\n\t\treturn A6(\n\t\t\t_user$project$Widget_Data_Type$aBoolX,\n\t\t\tA2(_elm_lang$core$Basics_ops['++'], id, 'T'),\n\t\t\tlabel,\n\t\t\tdescr,\n\t\t\ttrue,\n\t\t\tcmdTrue,\n\t\t\t'');\n\t});\nvar _user$project$Widget_Data_Flat$getNodeWithDefault = F3(\n\tfunction (id, nodeArray, defaultRecord) {\n\t\treturn A2(\n\t\t\t_elm_lang$core$Maybe$withDefault,\n\t\t\tA2(\n\t\t\t\t_user$project$Widget_Data_Type$Node,\n\t\t\t\tdefaultRecord,\n\t\t\t\t_user$project$Widget_Data_Type$Kids(\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]))),\n\t\t\tA2(_elm_lang$core$Array$get, id, nodeArray));\n\t});\nvar _user$project$Widget_Data_Flat$deflattenNodesHelper = F2(\n\tfunction (loopWrap, model) {\n\t\tvar node = A3(_user$project$Widget_Data_Flat$getNodeWithDefault, loopWrap.id, model.na, loopWrap.rec);\n\t\tvar modelWithNode = _elm_lang$core$Native_Utils.update(\n\t\t\tmodel,\n\t\t\t{\n\t\t\t\tna: A3(_elm_lang$core$Array$set, loopWrap.id, node, model.na)\n\t\t\t});\n\t\tif (_elm_lang$core$Native_Utils.cmp(loopWrap.parent, 0) < 0) {\n\t\t\treturn modelWithNode;\n\t\t} else {\n\t\t\tvar parNode = A3(\n\t\t\t\t_user$project$Widget_Data_Flat$getNodeWithDefault,\n\t\t\t\tloopWrap.parent,\n\t\t\t\tmodel.na,\n\t\t\t\t_user$project$Widget_Data_Type$notFoundRec('Not Yet Unwrapped'));\n\t\t\tvar newParNode = A2(_user$project$Widget_Data_Type$insertKid, node, parNode);\n\t\t\treturn _elm_lang$core$Native_Utils.update(\n\t\t\t\tmodelWithNode,\n\t\t\t\t{\n\t\t\t\t\tna: A3(_elm_lang$core$Array$set, loopWrap.parent, newParNode, model.na)\n\t\t\t\t});\n\t\t}\n\t});\nvar _user$project$Widget_Data_Flat$unwrapNode = function (wrap) {\n\treturn A2(\n\t\t_user$project$Widget_Data_Type$Node,\n\t\twrap.rec,\n\t\t_user$project$Widget_Data_Type$Kids(\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[])));\n};\nvar _user$project$Widget_Data_Flat$Wrap = F3(\n\tfunction (a, b, c) {\n\t\treturn {rec: a, id: b, parent: c};\n\t});\nvar _user$project$Widget_Data_Flat$flattenHelp = F3(\n\tfunction (model, nodes_l, parId) {\n\t\tflattenHelp:\n\t\twhile (true) {\n\t\t\tvar restNodes = function () {\n\t\t\t\tvar _p0 = _elm_lang$core$List$tail(nodes_l);\n\t\t\t\tif (_p0.ctor === 'Nothing') {\n\t\t\t\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]);\n\t\t\t\t} else {\n\t\t\t\t\treturn _p0._0;\n\t\t\t\t}\n\t\t\t}();\n\t\t\tvar _p1 = _elm_lang$core$List$head(nodes_l);\n\t\t\tif (_p1.ctor === 'Nothing') {\n\t\t\t\treturn model;\n\t\t\t} else {\n\t\t\t\tvar _p2 = _p1._0;\n\t\t\t\tvar id = _elm_lang$core$Array$length(model.wa);\n\t\t\t\tvar nod = _elm_lang$core$Native_Utils.update(\n\t\t\t\t\t_p2,\n\t\t\t\t\t{\n\t\t\t\t\t\tkids: _user$project$Widget_Data_Type$Kids(\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[]))\n\t\t\t\t\t});\n\t\t\t\tvar wrap = A3(_user$project$Widget_Data_Flat$Wrap, nod.rec, id, parId);\n\t\t\t\tvar nModel = _elm_lang$core$Native_Utils.update(\n\t\t\t\t\tmodel,\n\t\t\t\t\t{\n\t\t\t\t\t\twa: A2(_elm_lang$core$Array$push, wrap, model.wa),\n\t\t\t\t\t\tid: id\n\t\t\t\t\t});\n\t\t\t\tvar kidsModel = A3(\n\t\t\t\t\t_user$project$Widget_Data_Flat$flattenHelp,\n\t\t\t\t\tnModel,\n\t\t\t\t\t_user$project$Widget_Data_Type$kidsOf(_p2),\n\t\t\t\t\tid);\n\t\t\t\tvar _v2 = kidsModel,\n\t\t\t\t\t_v3 = restNodes,\n\t\t\t\t\t_v4 = parId;\n\t\t\t\tmodel = _v2;\n\t\t\t\tnodes_l = _v3;\n\t\t\t\tparId = _v4;\n\t\t\t\tcontinue flattenHelp;\n\t\t\t}\n\t\t}\n\t});\nvar _user$project$Widget_Data_Flat$FModel = F2(\n\tfunction (a, b) {\n\t\treturn {wa: a, id: b};\n\t});\nvar _user$project$Widget_Data_Flat$flatten = function (node) {\n\tvar model = A2(_user$project$Widget_Data_Flat$FModel, _elm_lang$core$Array$empty, 100);\n\tvar fmodel = A3(\n\t\t_user$project$Widget_Data_Flat$flattenHelp,\n\t\tmodel,\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[node]),\n\t\t-100);\n\treturn fmodel.wa;\n};\nvar _user$project$Widget_Data_Flat$DModel = function (a) {\n\treturn {na: a};\n};\nvar _user$project$Widget_Data_Flat$deflatten = function (wa) {\n\tvar modelWithRecords = _user$project$Widget_Data_Flat$DModel(\n\t\tA2(_elm_lang$core$Array$map, _user$project$Widget_Data_Flat$unwrapNode, wa));\n\tvar modelWithNodes = A3(_elm_lang$core$Array$foldr, _user$project$Widget_Data_Flat$deflattenNodesHelper, modelWithRecords, wa);\n\tvar _p3 = A2(_elm_lang$core$Array$get, 0, modelWithNodes.na);\n\tif (_p3.ctor === 'Nothing') {\n\t\treturn _user$project$Widget_Data_Type$notFoundNode('Idx 0 in Array not found');\n\t} else {\n\t\treturn _p3._0;\n\t}\n};\nvar _user$project$Widget_Data_Json$decodeStringToOrientation = function (s) {\n\tvar _p0 = s;\n\tswitch (_p0) {\n\t\tcase 'vertical':\n\t\t\treturn _user$project$Widget_Data_Type$Vertical;\n\t\tcase 'horizontal':\n\t\t\treturn _user$project$Widget_Data_Type$Horizontal;\n\t\tdefault:\n\t\t\treturn _user$project$Widget_Data_Type$Disoriented;\n\t}\n};\nvar _user$project$Widget_Data_Json$decodeOrientation = A2(_elm_lang$core$Json_Decode$map, _user$project$Widget_Data_Json$decodeStringToOrientation, _elm_lang$core$Json_Decode$string);\nvar _user$project$Widget_Data_Json$selectedKidFmtr = function (_p1) {\n\treturn _user$project$Widget_Data_Type$SelectedKidFmtr;\n};\nvar _user$project$Widget_Data_Json$decodeFormatter = _elm_lang$core$Json_Decode$oneOf(\n\t_elm_lang$core$Native_List.fromArray(\n\t\t[\n\t\t\tA3(\n\t\t\t_elm_lang$core$Json_Decode$object2,\n\t\t\t_user$project$Widget_Data_Type$BoolFmtr,\n\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'on', _elm_lang$core$Json_Decode$string),\n\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'off', _elm_lang$core$Json_Decode$string)),\n\t\t\tA2(\n\t\t\t_elm_lang$core$Json_Decode$object1,\n\t\t\t_user$project$Widget_Data_Type$StringFmtr,\n\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'fmt', _elm_lang$core$Json_Decode$string)),\n\t\t\tA3(\n\t\t\t_elm_lang$core$Json_Decode$object2,\n\t\t\t_user$project$Widget_Data_Type$KidsListFmtr,\n\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'list_fmt', _elm_lang$core$Json_Decode$string),\n\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'list_sep', _elm_lang$core$Json_Decode$string)),\n\t\t\tA2(\n\t\t\t_elm_lang$core$Json_Decode$object1,\n\t\t\t_user$project$Widget_Data_Json$selectedKidFmtr,\n\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'selected', _elm_lang$core$Json_Decode$string))\n\t\t]));\nvar _user$project$Widget_Data_Json$encodeFormatter = function (item) {\n\tvar _p2 = item;\n\tswitch (_p2.ctor) {\n\t\tcase 'BoolFmtr':\n\t\t\treturn _elm_lang$core$Json_Encode$object(\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'on',\n\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string(_p2._0)\n\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'off',\n\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string(_p2._1)\n\t\t\t\t\t}\n\t\t\t\t\t]));\n\t\tcase 'StringFmtr':\n\t\t\treturn _elm_lang$core$Json_Encode$object(\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'fmt',\n\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string(_p2._0)\n\t\t\t\t\t}\n\t\t\t\t\t]));\n\t\tcase 'KidsListFmtr':\n\t\t\treturn _elm_lang$core$Json_Encode$object(\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'list_fmt',\n\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string(_p2._0)\n\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'list_sep',\n\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string(_p2._1)\n\t\t\t\t\t}\n\t\t\t\t\t]));\n\t\tdefault:\n\t\t\treturn _elm_lang$core$Json_Encode$object(\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'selected',\n\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string('')\n\t\t\t\t\t}\n\t\t\t\t\t]));\n\t}\n};\nvar _user$project$Widget_Data_Json$decodeValue = _elm_lang$core$Json_Decode$oneOf(\n\t_elm_lang$core$Native_List.fromArray(\n\t\t[\n\t\t\tA2(\n\t\t\t_elm_lang$core$Json_Decode$object1,\n\t\t\t_user$project$Widget_Data_Type$BoolValue,\n\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'bool', _elm_lang$core$Json_Decode$bool)),\n\t\t\tA3(\n\t\t\t_elm_lang$core$Json_Decode$object2,\n\t\t\t_user$project$Widget_Data_Type$StringValue,\n\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'string', _elm_lang$core$Json_Decode$string),\n\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'required', _elm_lang$core$Json_Decode$bool)),\n\t\t\tA2(\n\t\t\t_elm_lang$core$Json_Decode$object1,\n\t\t\t_user$project$Widget_Data_Type$Group,\n\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'group', _user$project$Widget_Data_Json$decodeOrientation)),\n\t\t\tA2(\n\t\t\t_elm_lang$core$Json_Decode$object1,\n\t\t\t_user$project$Widget_Data_Type$Switch,\n\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'switch', _elm_lang$core$Json_Decode$string))\n\t\t]));\nvar _user$project$Widget_Data_Json$encodeValue = function (v) {\n\tvar _p3 = v;\n\tswitch (_p3.ctor) {\n\t\tcase 'BoolValue':\n\t\t\treturn _elm_lang$core$Json_Encode$object(\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'bool',\n\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$bool(_p3._0)\n\t\t\t\t\t}\n\t\t\t\t\t]));\n\t\tcase 'StringValue':\n\t\t\treturn _elm_lang$core$Json_Encode$object(\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'string',\n\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string(_p3._0)\n\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'required',\n\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$bool(_p3._1)\n\t\t\t\t\t}\n\t\t\t\t\t]));\n\t\tcase 'Group':\n\t\t\tvar _p4 = _p3._0;\n\t\t\tswitch (_p4.ctor) {\n\t\t\t\tcase 'Vertical':\n\t\t\t\t\treturn _elm_lang$core$Json_Encode$object(\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t_0: 'group',\n\t\t\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string('vertical')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'Horizontal':\n\t\t\t\t\treturn _elm_lang$core$Json_Encode$object(\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t_0: 'group',\n\t\t\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string('horizontal')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]));\n\t\t\t\tdefault:\n\t\t\t\t\treturn _elm_lang$core$Json_Encode$object(\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t_0: 'group',\n\t\t\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string('Disoriented')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]));\n\t\t\t}\n\t\tdefault:\n\t\t\treturn _elm_lang$core$Json_Encode$object(\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'switch',\n\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string(_p3._0)\n\t\t\t\t\t}\n\t\t\t\t\t]));\n\t}\n};\nvar _user$project$Widget_Data_Json$encodeId = function (id) {\n\treturn _elm_lang$core$Json_Encode$string(id);\n};\nvar _user$project$Widget_Data_Json$decodeId = _elm_lang$core$Json_Decode$string;\nvar _user$project$Widget_Data_Json$decRec = A2(\n\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\tA2(\n\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\tA2(\n\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\tA2(\n\t\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\t\tA2(\n\t\t\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\t\t\t_elm_lang$core$Json_Decode$succeed(_user$project$Widget_Data_Type$Record),\n\t\t\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'id', _user$project$Widget_Data_Json$decodeId)),\n\t\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'label', _elm_lang$core$Json_Decode$string)),\n\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'descr', _elm_lang$core$Json_Decode$string)),\n\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'value', _user$project$Widget_Data_Json$decodeValue)),\n\tA2(_elm_lang$core$Json_Decode_ops[':='], 'fmtr', _user$project$Widget_Data_Json$decodeFormatter));\nvar _user$project$Widget_Data_Json$decWrap = A4(\n\t_elm_lang$core$Json_Decode$object3,\n\t_user$project$Widget_Data_Flat$Wrap,\n\tA2(_elm_lang$core$Json_Decode_ops[':='], 'rec', _user$project$Widget_Data_Json$decRec),\n\tA2(_elm_lang$core$Json_Decode_ops[':='], 'id', _elm_lang$core$Json_Decode$int),\n\tA2(_elm_lang$core$Json_Decode_ops[':='], 'parent_id', _elm_lang$core$Json_Decode$int));\nvar _user$project$Widget_Data_Json$decWrapArray = _elm_lang$core$Json_Decode$array(_user$project$Widget_Data_Json$decWrap);\nvar _user$project$Widget_Data_Json$json2wraps = function (json_s) {\n\treturn A2(_elm_lang$core$Json_Decode$decodeString, _user$project$Widget_Data_Json$decWrapArray, json_s);\n};\nvar _user$project$Widget_Data_Json$decodeNode = A2(_elm_lang$core$Json_Decode$map, _user$project$Widget_Data_Flat$deflatten, _user$project$Widget_Data_Json$decWrapArray);\nvar _user$project$Widget_Data_Json$encRec = function (record) {\n\treturn _elm_lang$core$Json_Encode$object(\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: 'id',\n\t\t\t\t_1: _user$project$Widget_Data_Json$encodeId(record.id)\n\t\t\t},\n\t\t\t\t{\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: 'label',\n\t\t\t\t_1: _elm_lang$core$Json_Encode$string(record.label)\n\t\t\t},\n\t\t\t\t{\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: 'descr',\n\t\t\t\t_1: _elm_lang$core$Json_Encode$string(record.descr)\n\t\t\t},\n\t\t\t\t{\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: 'value',\n\t\t\t\t_1: _user$project$Widget_Data_Json$encodeValue(record.value)\n\t\t\t},\n\t\t\t\t{\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: 'fmtr',\n\t\t\t\t_1: _user$project$Widget_Data_Json$encodeFormatter(record.fmtr)\n\t\t\t}\n\t\t\t]));\n};\nvar _user$project$Widget_Data_Json$encWrap = function (wrap) {\n\treturn _elm_lang$core$Json_Encode$object(\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: 'rec',\n\t\t\t\t_1: _user$project$Widget_Data_Json$encRec(wrap.rec)\n\t\t\t},\n\t\t\t\t{\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: 'id',\n\t\t\t\t_1: _elm_lang$core$Json_Encode$int(wrap.id)\n\t\t\t},\n\t\t\t\t{\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: 'parent_id',\n\t\t\t\t_1: _elm_lang$core$Json_Encode$int(wrap.parent)\n\t\t\t}\n\t\t\t]));\n};\nvar _user$project$Widget_Data_Json$encWrapArray = function (wraps_l) {\n\treturn _elm_lang$core$Json_Encode$array(\n\t\tA2(_elm_lang$core$Array$map, _user$project$Widget_Data_Json$encWrap, wraps_l));\n};\nvar _user$project$Widget_Data_Json$wraps2json = function (wraps_a) {\n\treturn A2(\n\t\t_elm_lang$core$Json_Encode$encode,\n\t\t2,\n\t\t_user$project$Widget_Data_Json$encWrapArray(wraps_a));\n};\nvar _user$project$Widget_Data_Json$encodeNode = function (node) {\n\treturn _user$project$Widget_Data_Json$encWrapArray(\n\t\t_user$project$Widget_Data_Flat$flatten(node));\n};\nvar _user$project$Widget_Gen$upgradeHelper = F2(\n\tfunction (oldNodes_m, node) {\n\t\tvar kids = A2(\n\t\t\t_elm_lang$core$List$map,\n\t\t\t_user$project$Widget_Gen$upgradeHelper(oldNodes_m),\n\t\t\t_user$project$Widget_Data_Type$getKids(node));\n\t\tvar rec = node.rec;\n\t\tvar newValue = function () {\n\t\t\tvar _p0 = A2(_elm_lang$core$Dict$get, node.rec.id, oldNodes_m);\n\t\t\tif (_p0.ctor === 'Nothing') {\n\t\t\t\treturn node.rec.value;\n\t\t\t} else {\n\t\t\t\treturn _p0._0.value;\n\t\t\t}\n\t\t}();\n\t\tvar newRecord = _elm_lang$core$Native_Utils.update(\n\t\t\trec,\n\t\t\t{value: newValue});\n\t\treturn _elm_lang$core$Native_Utils.update(\n\t\t\tnode,\n\t\t\t{\n\t\t\t\trec: newRecord,\n\t\t\t\tkids: _user$project$Widget_Data_Type$Kids(kids)\n\t\t\t});\n\t});\nvar _user$project$Widget_Gen$nodeTree2recordByIdTupList = function (root) {\n\treturn A2(\n\t\t_elm_lang$core$List$map,\n\t\tfunction (w) {\n\t\t\treturn {ctor: '_Tuple2', _0: w.rec.id, _1: w.rec};\n\t\t},\n\t\t_elm_lang$core$Array$toList(\n\t\t\t_user$project$Widget_Data_Flat$flatten(root)));\n};\nvar _user$project$Widget_Gen$nodeTree2recordByIdDict = function (root) {\n\treturn _elm_lang$core$Dict$fromList(\n\t\t_user$project$Widget_Gen$nodeTree2recordByIdTupList(root));\n};\nvar _user$project$Widget_Gen$upgrade = F2(\n\tfunction (defaultRoot, oldRoot) {\n\t\tvar oldNodes_itl = _user$project$Widget_Gen$nodeTree2recordByIdTupList(oldRoot);\n\t\tvar defaultNodes_m = _user$project$Widget_Gen$nodeTree2recordByIdDict(defaultRoot);\n\t\tvar missingNodes = _elm_lang$core$List$concat(\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$List$map,\n\t\t\t\tfunction (_p1) {\n\t\t\t\t\tvar _p2 = _p1;\n\t\t\t\t\tvar _p3 = A2(_elm_lang$core$Dict$get, _p2._0, defaultNodes_m);\n\t\t\t\t\tif (_p3.ctor === 'Nothing') {\n\t\t\t\t\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[_p2._1]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\toldNodes_itl));\n\t\tvar oldNodes_m = _user$project$Widget_Gen$nodeTree2recordByIdDict(oldRoot);\n\t\tvar oldIds = _elm_lang$core$Dict$keys(oldNodes_m);\n\t\treturn {\n\t\t\tctor: '_Tuple2',\n\t\t\t_0: A2(_user$project$Widget_Gen$upgradeHelper, oldNodes_m, defaultRoot),\n\t\t\t_1: missingNodes\n\t\t};\n\t});\nvar _user$project$Widget_Gen$sprintf = F3(\n\tfunction (str, sFmt, param) {\n\t\treturn A4(\n\t\t\t_elm_lang$core$Regex$replace,\n\t\t\t_elm_lang$core$Regex$All,\n\t\t\t_elm_lang$core$Regex$regex(sFmt),\n\t\t\tfunction (_p4) {\n\t\t\t\treturn param;\n\t\t\t},\n\t\t\tstr);\n\t});\nvar _user$project$Widget_Gen$sprintf1 = F2(\n\tfunction (str, param) {\n\t\treturn A4(\n\t\t\t_elm_lang$core$Regex$replace,\n\t\t\t_elm_lang$core$Regex$All,\n\t\t\t_elm_lang$core$Regex$regex('({{}}|%s)'),\n\t\t\tfunction (_p5) {\n\t\t\t\treturn param;\n\t\t\t},\n\t\t\tstr);\n\t});\nvar _user$project$Widget_Gen$getSelectedKid = F2(\n\tfunction (sid, node) {\n\t\treturn _elm_lang$core$List$head(\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$List$filter,\n\t\t\t\tfunction (kid) {\n\t\t\t\t\treturn _elm_lang$core$Native_Utils.eq(kid.rec.id, sid);\n\t\t\t\t},\n\t\t\t\t_user$project$Widget_Data_Type$kidsOf(node)));\n\t});\nvar _user$project$Widget_Gen$cmdOf = function (node) {\n\tvar selectedId = function (node) {\n\t\tvar _p6 = node.value;\n\t\tif (_p6.ctor === 'Switch') {\n\t\t\treturn _p6._0;\n\t\t} else {\n\t\t\treturn '';\n\t\t}\n\t};\n\tvar resultCmdlet = function () {\n\t\tvar _p7 = node.rec.fmtr;\n\t\tswitch (_p7.ctor) {\n\t\t\tcase 'BoolFmtr':\n\t\t\t\tvar _p8 = node.rec.value;\n\t\t\t\tif (_p8.ctor === 'BoolValue') {\n\t\t\t\t\treturn _p8._0 ? _p7._0 : _p7._1;\n\t\t\t\t} else {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t'!!! NEITHER TRUE NOR FALSE : ',\n\t\t\t\t\t\t_elm_lang$core$Basics$toString(node.rec.value));\n\t\t\t\t}\n\t\t\tcase 'StringFmtr':\n\t\t\t\tvar _p9 = node.rec.value;\n\t\t\t\tif (_p9.ctor === 'StringValue') {\n\t\t\t\t\tvar _p10 = _p9._0;\n\t\t\t\t\treturn _elm_lang$core$Native_Utils.eq(_p10, '') ? (_p9._1 ? '!! MISSING !!' : '') : A2(_user$project$Widget_Gen$sprintf1, _p7._0, _p10);\n\t\t\t\t} else {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t'!!! NOT A STRING : ',\n\t\t\t\t\t\t_elm_lang$core$Basics$toString(node.rec.value));\n\t\t\t\t}\n\t\t\tcase 'KidsListFmtr':\n\t\t\t\treturn A2(\n\t\t\t\t\t_user$project$Widget_Gen$sprintf1,\n\t\t\t\t\t_p7._0,\n\t\t\t\t\tA2(_user$project$Widget_Gen$cmdsOfKids, _p7._1, node));\n\t\t\tdefault:\n\t\t\t\tvar _p11 = A2(\n\t\t\t\t\t_user$project$Widget_Gen$getSelectedKid,\n\t\t\t\t\tselectedId(node.rec),\n\t\t\t\t\tnode);\n\t\t\t\tif (_p11.ctor === 'Just') {\n\t\t\t\t\treturn _user$project$Widget_Gen$cmdOf(_p11._0);\n\t\t\t\t} else {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t'!!! NOTHING SELECTED : ',\n\t\t\t\t\t\t_elm_lang$core$Basics$toString(node.rec.value));\n\t\t\t\t}\n\t\t}\n\t}();\n\treturn resultCmdlet;\n};\nvar _user$project$Widget_Gen$cmdsOfKids = F2(\n\tfunction (listSep, node) {\n\t\treturn A2(\n\t\t\t_elm_lang$core$String$join,\n\t\t\tlistSep,\n\t\t\t_user$project$Widget_Gen$cmdListOfKids(node));\n\t});\nvar _user$project$Widget_Gen$cmdListOfKids = function (node) {\n\treturn A2(\n\t\t_elm_lang$core$List$map,\n\t\tfunction (kid) {\n\t\t\treturn _user$project$Widget_Gen$cmdOf(kid);\n\t\t},\n\t\t_user$project$Widget_Data_Type$kidsOf(node));\n};\nvar _user$project$Widget_Gen$insertNodeValue = F2(\n\tfunction (str, kid) {\n\t\treturn A3(\n\t\t\t_user$project$Widget_Gen$sprintf,\n\t\t\tstr,\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t'{{',\n\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], kid.rec.id, '}}')),\n\t\t\t_user$project$Widget_Gen$cmdOf(kid));\n\t});\nvar _user$project$Widget_Gen$kidsCmdletsByIdList = function (node) {\n\treturn A2(\n\t\t_elm_lang$core$List$map,\n\t\tfunction (k) {\n\t\t\treturn {\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: k.rec.id,\n\t\t\t\t_1: _user$project$Widget_Gen$cmdOf(k)\n\t\t\t};\n\t\t},\n\t\t_user$project$Widget_Data_Type$kidsOf(node));\n};\nvar _user$project$Widget_Gen$kidsCmdletsByIdDict = function (node) {\n\treturn A2(\n\t\t_elm_lang$core$Debug$log,\n\t\t'kids Cmdlets By Id Dict',\n\t\t_elm_lang$core$Dict$fromList(\n\t\t\t_user$project$Widget_Gen$kidsCmdletsByIdList(node)));\n};\nvar _user$project$Widget_Gen$kidsCmdletsListByIds = function (node) {\n\treturn _elm_lang$core$Basics$snd(\n\t\t_elm_lang$core$List$unzip(\n\t\t\t_elm_lang$core$Dict$toList(\n\t\t\t\t_user$project$Widget_Gen$kidsCmdletsByIdDict(node))));\n};\nvar _user$project$Widget$notImplemented = F2(\n\tfunction (rec, errDesr) {\n\t\treturn A2(\n\t\t\t_elm_lang$html$Html$div,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\t_elm_lang$html$Html$text(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t'ERROR: ',\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\terrDesr,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\t\t' NOT IMPLEMENTED: ',\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\t\t\trec.label,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\t\t\t\t': ',\n\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics$toString(rec.value)))))))\n\t\t\t\t]));\n\t});\nvar _user$project$Widget$mkLabel = F2(\n\tfunction (showLabel, rec) {\n\t\tvar em$ = F2(\n\t\t\tfunction (styles, lbl) {\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$html$Html$em,\n\t\t\t\t\t(_elm_lang$core$Native_Utils.cmp(\n\t\t\t\t\t\t_elm_lang$core$List$length(styles),\n\t\t\t\t\t\t0) > 0) ? _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$style(styles)\n\t\t\t\t\t\t]) : _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]),\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_elm_lang$html$Html$text(lbl)\n\t\t\t\t\t\t]));\n\t\t\t});\n\t\tvar _p0 = function () {\n\t\t\tvar _p1 = rec.value;\n\t\t\tif (_p1.ctor === 'StringValue') {\n\t\t\t\treturn _p1._1 ? {\n\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t_0: ' *',\n\t\t\t\t\t_1: em$(\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.eq(_p1._0, '') ? _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t{ctor: '_Tuple2', _0: 'color', _1: 'red'}\n\t\t\t\t\t\t\t]) : _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]))\n\t\t\t\t} : {ctor: '_Tuple2', _0: '', _1: _elm_lang$html$Html$text};\n\t\t\t} else {\n\t\t\t\treturn {ctor: '_Tuple2', _0: '', _1: _elm_lang$html$Html$text};\n\t\t\t}\n\t\t}();\n\t\tvar sfx = _p0._0;\n\t\tvar txt = _p0._1;\n\t\treturn showLabel ? A2(\n\t\t\t_elm_lang$html$Html$td,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\t_elm_lang$html$Html_Attributes$title(rec.descr)\n\t\t\t\t]),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\ttxt(\n\t\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], rec.label, sfx))\n\t\t\t\t])) : A2(\n\t\t\t_elm_lang$html$Html$td,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\t_elm_lang$html$Html_Attributes$title(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\trec.label,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\tsfx,\n\t\t\t\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], ' : ', rec.descr))))\n\t\t\t\t]),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]));\n\t});\nvar _user$project$Widget$valueUpdateRequiresSaving = function (value) {\n\tvar _p2 = value;\n\tswitch (_p2.ctor) {\n\t\tcase 'BoolValue':\n\t\t\treturn true;\n\t\tcase 'StringValue':\n\t\t\treturn false;\n\t\tcase 'Group':\n\t\t\treturn false;\n\t\tdefault:\n\t\t\treturn true;\n\t}\n};\nvar _user$project$Widget$append3Tuple = F2(\n\tfunction (tuple3, listsTuple) {\n\t\tvar _p3 = listsTuple;\n\t\tvar _p4 = tuple3;\n\t\treturn {\n\t\t\tctor: '_Tuple3',\n\t\t\t_0: A2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t_p3._0,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[_p4._0])),\n\t\t\t_1: A2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t_p3._1,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[_p4._1])),\n\t\t\t_2: A2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t_p3._2,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[_p4._2]))\n\t\t};\n\t});\nvar _user$project$Widget$unzip3 = function (typle3_l) {\n\treturn A3(\n\t\t_elm_lang$core$List$foldl,\n\t\t_user$project$Widget$append3Tuple,\n\t\t{\n\t\t\tctor: '_Tuple3',\n\t\t\t_0: _elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\t_1: _elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\t_2: _elm_lang$core$Native_List.fromArray(\n\t\t\t\t[])\n\t\t},\n\t\ttyple3_l);\n};\nvar _user$project$Widget$anyIsTrue = function (bool_l) {\n\treturn A3(\n\t\t_elm_lang$core$List$foldl,\n\t\tF2(\n\t\t\tfunction (x, y) {\n\t\t\t\treturn x || y;\n\t\t\t}),\n\t\tfalse,\n\t\tbool_l);\n};\nvar _user$project$Widget$mapUpdate = F2(\n\tfunction (f, node) {\n\t\tvar _p5 = _elm_lang$core$List$unzip(\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$List$map,\n\t\t\t\t_user$project$Widget$mapUpdate(f),\n\t\t\t\t_user$project$Widget_Data_Type$kidsOf(node)));\n\t\tvar newKids = _p5._0;\n\t\tvar cmds = _p5._1;\n\t\tvar _p6 = f(node);\n\t\tvar newNode = _p6._0;\n\t\tvar cmd = _p6._1;\n\t\treturn {\n\t\t\tctor: '_Tuple2',\n\t\t\t_0: A2(_user$project$Widget_Data_Type$replaceKids, newNode, newKids),\n\t\t\t_1: _elm_lang$core$Platform_Cmd$batch(\n\t\t\t\tA2(_elm_lang$core$List_ops['::'], cmd, cmds))\n\t\t};\n\t});\nvar _user$project$Widget$updateSingleNode = F2(\n\tfunction (msg, node) {\n\t\tvar _p7 = msg;\n\t\tvar value = _p7._1;\n\t\tif (_elm_lang$core$Native_Utils.eq(_p7._0, node.rec.id)) {\n\t\t\tvar rec0 = node.rec;\n\t\t\treturn {\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: _elm_lang$core$Native_Utils.update(\n\t\t\t\t\tnode,\n\t\t\t\t\t{\n\t\t\t\t\t\trec: _elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\trec0,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: A2(\n\t\t\t\t\t\t\t\t\t_elm_lang$core$Debug$log,\n\t\t\t\t\t\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], 'update ', node.rec.label),\n\t\t\t\t\t\t\t\t\tvalue)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t}),\n\t\t\t\t_1: _elm_lang$core$Platform_Cmd$none\n\t\t\t};\n\t\t} else {\n\t\t\treturn {ctor: '_Tuple2', _0: node, _1: _elm_lang$core$Platform_Cmd$none};\n\t\t}\n\t});\nvar _user$project$Widget$update = F2(\n\tfunction (msg, node) {\n\t\treturn A2(\n\t\t\t_user$project$Widget$mapUpdate,\n\t\t\t_user$project$Widget$updateSingleNode(msg),\n\t\t\tnode);\n\t});\nvar _user$project$Widget$Modify = F2(\n\tfunction (a, b) {\n\t\treturn {ctor: 'Modify', _0: a, _1: b};\n\t});\nvar _user$project$Widget$editBool = F2(\n\tfunction (id, b) {\n\t\treturn A2(\n\t\t\t_user$project$Widget$Modify,\n\t\t\tid,\n\t\t\t_user$project$Widget_Data_Type$BoolValue(b));\n\t});\nvar _user$project$Widget$editString = F2(\n\tfunction (id, s) {\n\t\treturn A2(\n\t\t\t_user$project$Widget$Modify,\n\t\t\tid,\n\t\t\tA2(_user$project$Widget_Data_Type$StringValue, s, true));\n\t});\nvar _user$project$Widget$viewTupleOfRecord = function (rec) {\n\tvar _p8 = function () {\n\t\tvar _p9 = rec.value;\n\t\tswitch (_p9.ctor) {\n\t\t\tcase 'BoolValue':\n\t\t\t\treturn {\n\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t_0: A2(\n\t\t\t\t\t\t_elm_lang$html$Html$input,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$type$('checkbox'),\n\t\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$checked(_p9._0),\n\t\t\t\t\t\t\t\t_elm_lang$html$Html_Events$onCheck(\n\t\t\t\t\t\t\t\t_user$project$Widget$editBool(rec.id))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[])),\n\t\t\t\t\t_1: true\n\t\t\t\t};\n\t\t\tcase 'StringValue':\n\t\t\t\treturn {\n\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t_0: A2(\n\t\t\t\t\t\t_elm_lang$html$Html$input,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$type$('text'),\n\t\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$value(_p9._0),\n\t\t\t\t\t\t\t\t_elm_lang$html$Html_Events$onInput(\n\t\t\t\t\t\t\t\t_user$project$Widget$editString(rec.id))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[])),\n\t\t\t\t\t_1: true\n\t\t\t\t};\n\t\t\tdefault:\n\t\t\t\treturn {\n\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t_0: A2(_user$project$Widget$notImplemented, rec, 'node2Table'),\n\t\t\t\t\t_1: false\n\t\t\t\t};\n\t\t}\n\t}();\n\tvar content = _p8._0;\n\tvar showLabel = _p8._1;\n\treturn {ctor: '_Tuple2', _0: content, _1: showLabel};\n};\nvar _user$project$Widget$record2Table = function (rec) {\n\tvar _p10 = _user$project$Widget$viewTupleOfRecord(rec);\n\tvar cont = _p10._0;\n\tvar showLabel = _p10._1;\n\tvar nTable = function (rec) {\n\t\treturn A2(\n\t\t\t_elm_lang$html$Html$table,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\t_elm_lang$html$Html_Attributes$title(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\trec.label,\n\t\t\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], ' ', rec.id)))\n\t\t\t\t]),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]),\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(_user$project$Widget$mkLabel, showLabel, rec),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[cont]))\n\t\t\t\t\t\t]))\n\t\t\t\t]));\n\t};\n\tvar _p11 = rec.value;\n\tswitch (_p11.ctor) {\n\t\tcase 'BoolValue':\n\t\t\treturn nTable(rec);\n\t\tcase 'StringValue':\n\t\t\treturn nTable(rec);\n\t\tdefault:\n\t\t\treturn A2(_user$project$Widget$notImplemented, rec, 'node2Table');\n\t}\n};\nvar _user$project$Widget$viewRecord = F2(\n\tfunction (defaultHtml, rec) {\n\t\tvar _p12 = rec.value;\n\t\tswitch (_p12.ctor) {\n\t\t\tcase 'BoolValue':\n\t\t\t\treturn _user$project$Widget$record2Table(rec);\n\t\t\tcase 'StringValue':\n\t\t\t\treturn _user$project$Widget$record2Table(rec);\n\t\t\tdefault:\n\t\t\t\treturn defaultHtml;\n\t\t}\n\t});\nvar _user$project$Widget$selectSwitch = F2(\n\tfunction (sid, kid) {\n\t\treturn A2(\n\t\t\t_user$project$Widget$Modify,\n\t\t\tsid,\n\t\t\t_user$project$Widget_Data_Type$Switch(kid));\n\t});\nvar _user$project$Widget$view = function (node) {\n\tvar _p13 = node.rec.value;\n\tswitch (_p13.ctor) {\n\t\tcase 'BoolValue':\n\t\t\treturn _user$project$Widget$record2Table(node.rec);\n\t\tcase 'StringValue':\n\t\t\treturn _user$project$Widget$record2Table(node.rec);\n\t\tcase 'Group':\n\t\t\treturn A2(_user$project$Widget$viewGroup, _p13._0, node);\n\t\tdefault:\n\t\t\tvar _p18 = _p13._0;\n\t\t\tvar selectedKidTR = function () {\n\t\t\t\tvar _p14 = A2(_user$project$Widget_Gen$getSelectedKid, _p18, node);\n\t\t\t\tif (_p14.ctor === 'Nothing') {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$title('please select one switch option')\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text(\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\t\t\t\t\t'(please select one of the options for ',\n\t\t\t\t\t\t\t\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], node.rec.label, ')')))\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t]));\n\t\t\t\t} else {\n\t\t\t\t\treturn _user$project$Widget$view(_p14._0);\n\t\t\t\t}\n\t\t\t}();\n\t\t\tvar mkRadioTR = function (_p15) {\n\t\t\t\tvar _p16 = _p15;\n\t\t\t\tvar _p17 = _p16._0;\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]),\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$label,\n\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text(_p16._1)\n\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$input,\n\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$type$('radio'),\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$value(_p17),\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$name(node.rec.id),\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$checked(\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_Utils.eq(_p17, _p18)),\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_Events$onClick(\n\t\t\t\t\t\t\t\t\t\t\tA2(_user$project$Widget$selectSwitch, node.rec.id, _p17))\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t[]))\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t]));\n\t\t\t};\n\t\t\tvar kids_l = _user$project$Widget_Data_Type$kidsOf(node);\n\t\t\tvar kidsIdsAndLabels_l = A2(\n\t\t\t\t_elm_lang$core$List$map,\n\t\t\t\tfunction (k) {\n\t\t\t\t\treturn {ctor: '_Tuple2', _0: k.rec.id, _1: k.rec.label};\n\t\t\t\t},\n\t\t\t\tkids_l);\n\t\t\tvar kidsAsRadioTRs_l = A2(_elm_lang$core$List$map, mkRadioTR, kidsIdsAndLabels_l);\n\t\t\tvar switchBoard = A2(\n\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]),\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_lang$html$Html$th,\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text(node.rec.label)\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t])),\n\t\t\t\tkidsAsRadioTRs_l);\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t_elm_lang$html$Html_Attributes$title(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\tnode.rec.label,\n\t\t\t\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], ' ', node.rec.id)))\n\t\t\t\t\t]),\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$html$Html$table,\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\tswitchBoard)\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$html$Html$table,\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[selectedKidTR]))\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t]));\n\t}\n};\nvar _user$project$Widget$viewGroup = F2(\n\tfunction (orientation, node) {\n\t\tvar tableRows = function () {\n\t\t\tvar _p19 = orientation;\n\t\t\tswitch (_p19.ctor) {\n\t\t\t\tcase 'Vertical':\n\t\t\t\t\tvar row = function (_p20) {\n\t\t\t\t\t\tvar _p21 = _p20;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(_user$project$Widget$mkLabel, _p21._2, _p21._1.rec),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t[_p21._0]))\n\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t};\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$List$map,\n\t\t\t\t\t\trow,\n\t\t\t\t\t\t_user$project$Widget$kidsListOfTuples(node));\n\t\t\t\tcase 'Horizontal':\n\t\t\t\t\tvar tdOf = function (cont) {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[cont]));\n\t\t\t\t\t};\n\t\t\t\t\tvar _p22 = _user$project$Widget$kidsTupleOfLists(node);\n\t\t\t\t\tvar labels = _p22._0;\n\t\t\t\t\tvar conts = _p22._1;\n\t\t\t\t\tvar row1 = A2(\n\t\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\tlabels);\n\t\t\t\t\tvar row2 = A2(\n\t\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\tA2(_elm_lang$core$List$map, tdOf, conts));\n\t\t\t\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[row1, row2]);\n\t\t\t\tdefault:\n\t\t\t\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_elm_lang$html$Html$text('DISORIENTED')\n\t\t\t\t\t\t]);\n\t\t\t}\n\t\t}();\n\t\tvar toolTip = _elm_lang$html$Html_Attributes$title(\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\tnode.rec.label,\n\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t' # ',\n\t\t\t\t\t_elm_lang$core$Basics$toString(node.rec.value))));\n\t\tvar showLabelXX = true;\n\t\treturn A2(\n\t\t\t_elm_lang$html$Html$table,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[toolTip]),\n\t\t\ttableRows);\n\t});\nvar _user$project$Widget$kidsListOfTuples = function (node) {\n\treturn A2(\n\t\t_elm_lang$core$List$map,\n\t\t_user$project$Widget$viewTuple,\n\t\t_user$project$Widget_Data_Type$kidsOf(node));\n};\nvar _user$project$Widget$viewTuple = function (node) {\n\tvar _p23 = function () {\n\t\tvar _p24 = node.rec.value;\n\t\tswitch (_p24.ctor) {\n\t\t\tcase 'Group':\n\t\t\t\treturn {\n\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t_0: _user$project$Widget$view(node),\n\t\t\t\t\t_1: true\n\t\t\t\t};\n\t\t\tcase 'Switch':\n\t\t\t\treturn {\n\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t_0: _user$project$Widget$view(node),\n\t\t\t\t\t_1: false\n\t\t\t\t};\n\t\t\tdefault:\n\t\t\t\treturn _user$project$Widget$viewTupleOfRecord(node.rec);\n\t\t}\n\t}();\n\tvar content = _p23._0;\n\tvar showLabel = _p23._1;\n\treturn {ctor: '_Tuple3', _0: content, _1: node, _2: showLabel};\n};\nvar _user$project$Widget$kidsTupleOfLists = function (node) {\n\tvar triple2htmlTuple = function (_p25) {\n\t\tvar _p26 = _p25;\n\t\treturn {\n\t\t\tctor: '_Tuple2',\n\t\t\t_0: A2(_user$project$Widget$mkLabel, _p26._2, _p26._1.rec),\n\t\t\t_1: _p26._0\n\t\t};\n\t};\n\tvar tuples = A2(\n\t\t_elm_lang$core$List$map,\n\t\ttriple2htmlTuple,\n\t\t_user$project$Widget$kidsListOfTuples(node));\n\treturn _elm_lang$core$List$unzip(tuples);\n};\nvar _user$project$Widget$viewRoot = function (node) {\n\tvar kidsCont_l = A2(\n\t\t_elm_lang$core$List$map,\n\t\t_user$project$Widget$view,\n\t\t_user$project$Widget_Data_Type$kidsOf(node));\n\tvar cont = A2(\n\t\t_elm_lang$html$Html$div,\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\tkidsCont_l);\n\treturn {ctor: '_Tuple2', _0: node.rec.label, _1: cont};\n};\nvar _user$project$Util_Debug$encode = function (model) {\n\treturn _elm_lang$core$Json_Encode$object(\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: 'debug',\n\t\t\t\t_1: _elm_lang$core$Json_Encode$bool(model.debug)\n\t\t\t},\n\t\t\t\t{\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: 'state',\n\t\t\t\t_1: _elm_lang$core$Json_Encode$string(model.state)\n\t\t\t}\n\t\t\t]));\n};\nvar _user$project$Util_Debug$update = F2(\n\tfunction (msg, model) {\n\t\tvar _p0 = msg;\n\t\tif (_p0.ctor === 'ToggleDebug') {\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\tmodel,\n\t\t\t\t\t{debug: _p0._0}),\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[]));\n\t\t} else {\n\t\t\treturn A2(\n\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\tmodel,\n\t\t\t\t\t{state: _p0._0}),\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[]));\n\t\t}\n\t});\nvar _user$project$Util_Debug$Model = F2(\n\tfunction (a, b) {\n\t\treturn {debug: a, state: b};\n\t});\nvar _user$project$Util_Debug$init = A2(_user$project$Util_Debug$Model, false, '');\nvar _user$project$Util_Debug$decode = A2(\n\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\tA2(\n\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t_elm_lang$core$Json_Decode$succeed(_user$project$Util_Debug$Model),\n\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'debug', _elm_lang$core$Json_Decode$bool)),\n\tA2(_elm_lang$core$Json_Decode_ops[':='], 'state', _elm_lang$core$Json_Decode$string));\nvar _user$project$Util_Debug$Change = function (a) {\n\treturn {ctor: 'Change', _0: a};\n};\nvar _user$project$Util_Debug$ToggleDebug = function (a) {\n\treturn {ctor: 'ToggleDebug', _0: a};\n};\nvar _user$project$Util_Debug$view = F2(\n\tfunction (label, model) {\n\t\tvar dbgInfoHtml = model.debug ? _elm_lang$html$Html$text(model.state) : A2(\n\t\t\t_elm_lang$html$Html$div,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]));\n\t\treturn A2(\n\t\t\t_elm_lang$html$Html$div,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$html$Html$label,\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]),\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_elm_lang$html$Html$text(\n\t\t\t\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], 'debug ', label)),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_lang$html$Html$input,\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$type$('checkbox'),\n\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$checked(model.debug),\n\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_Events$onCheck(_user$project$Util_Debug$ToggleDebug)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[])),\n\t\t\t\t\t\t\tdbgInfoHtml\n\t\t\t\t\t\t]))\n\t\t\t\t]));\n\t});\nvar _user$project$RSyncConfig$scriptTemplate = '#!/bin/bash\\n#\\n# %[2]s - %[3]s %[6]s\\n#\\n# generated script - do not edit\\n#\\n\\n%[5]s 2>&1 | tee \\\"%[2]s--%[3]s--$$.log\\\"\\nRET=$?\\n\\necho return=$RET\\nexit $RET\\n\\ncat <<EOYD | less\\n#\\n# begin: %[1]s %[2]s - %[3]s %[6]s\\n#\\n\\n%[4]s\\n#\\n# end: %[1]s %[2]s - %[3]s %[6]s\\n#\\nEOYD\\n';\nvar _user$project$RSyncConfig$nwport = F2(\n\tfunction (id, descr) {\n\t\treturn A5(\n\t\t\t_user$project$Widget_Data_Type$aString,\n\t\t\tA2(_elm_lang$core$Basics_ops['++'], id, '-P'),\n\t\t\t'Port',\n\t\t\tdescr,\n\t\t\t':{{}}',\n\t\t\tfalse);\n\t});\nvar _user$project$RSyncConfig$user = F2(\n\tfunction (id, descr) {\n\t\treturn A5(\n\t\t\t_user$project$Widget_Data_Type$aString,\n\t\t\tA2(_elm_lang$core$Basics_ops['++'], id, '-U'),\n\t\t\t'User',\n\t\t\tdescr,\n\t\t\t'{{}}@',\n\t\t\tfalse);\n\t});\nvar _user$project$RSyncConfig$host = F2(\n\tfunction (id, descr) {\n\t\treturn A5(\n\t\t\t_user$project$Widget_Data_Type$aString,\n\t\t\tA2(_elm_lang$core$Basics_ops['++'], id, '-H'),\n\t\t\t'Host',\n\t\t\tdescr,\n\t\t\t'{{}}',\n\t\t\ttrue);\n\t});\nvar _user$project$RSyncConfig$folder = F3(\n\tfunction (id, descr, prefix) {\n\t\treturn A5(\n\t\t\t_user$project$Widget_Data_Type$aString,\n\t\t\tA2(_elm_lang$core$Basics_ops['++'], id, '-F'),\n\t\t\t'Folder',\n\t\t\tdescr,\n\t\t\tA2(_elm_lang$core$Basics_ops['++'], prefix, '{{}}'),\n\t\t\ttrue);\n\t});\nvar _user$project$RSyncConfig$localFolder = function (id) {\n\tvar lfId = A2(_elm_lang$core$Basics_ops['++'], id, '-L');\n\tvar idFmt = A2(\n\t\t_elm_lang$core$Basics_ops['++'],\n\t\t'{{',\n\t\tA2(_elm_lang$core$Basics_ops['++'], lfId, '}}'));\n\treturn A4(\n\t\t_user$project$Widget_Data_Type$aVertical,\n\t\tlfId,\n\t\t'Local',\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\tA3(_user$project$RSyncConfig$folder, lfId, 'a directory in the local file system', '')\n\t\t\t]),\n\t\tA2(_user$project$Widget_Data_Type$fmtList, '\\'{{}}\\'', ''));\n};\nvar _user$project$RSyncConfig$remoteShell = function (id) {\n\tvar rsid = A2(_elm_lang$core$Basics_ops['++'], id, '-RS');\n\treturn A4(\n\t\t_user$project$Widget_Data_Type$aVertical,\n\t\trsid,\n\t\t'Remote Shell',\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\tA2(_user$project$RSyncConfig$user, rsid, 'a user name on the remote host'),\n\t\t\t\tA2(_user$project$RSyncConfig$host, rsid, 'a remote host name or IP address'),\n\t\t\t\tA3(_user$project$RSyncConfig$folder, rsid, 'a directory on the remote host', ':')\n\t\t\t]),\n\t\tA2(_user$project$Widget_Data_Type$fmtList, '\\'{{}}\\'', ''));\n};\nvar _user$project$RSyncConfig$remoteDaemon = function (id) {\n\tvar did = A2(_elm_lang$core$Basics_ops['++'], id, '-RD');\n\treturn A4(\n\t\t_user$project$Widget_Data_Type$aVertical,\n\t\tdid,\n\t\t'Remote Daemon',\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\tA2(_user$project$RSyncConfig$user, did, 'a user name on the remote host'),\n\t\t\t\tA2(_user$project$RSyncConfig$host, did, 'a remote host name or IP address'),\n\t\t\t\tA2(_user$project$RSyncConfig$nwport, did, 'a port number on the remote host'),\n\t\t\t\tA3(_user$project$RSyncConfig$folder, did, 'a directory on the remote host', '::')\n\t\t\t]),\n\t\tA2(_user$project$Widget_Data_Type$fmtList, '\\'{{}}\\'', ''));\n};\nvar _user$project$RSyncConfig$locationSwitch = F2(\n\tfunction (id, name) {\n\t\treturn A3(\n\t\t\t_user$project$Widget_Data_Type$aSwitch,\n\t\t\tid,\n\t\t\tname,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\t_user$project$RSyncConfig$localFolder(id),\n\t\t\t\t\t_user$project$RSyncConfig$remoteShell(id),\n\t\t\t\t\t_user$project$RSyncConfig$remoteDaemon(id)\n\t\t\t\t]));\n\t});\nvar _user$project$RSyncConfig$fake = A4(\n\t_user$project$Widget_Data_Type$aVertical,\n\t'all',\n\t'All RSync',\n\t_elm_lang$core$Native_List.fromArray(\n\t\t[\n\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'b1', 'Sunshine', 'the sun is shining', '--sunny'),\n\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'r1', 'Rain', 'it is raining', '--rain'),\n\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'c1', 'Clouds', 'there are clouds', '--cloudy')\n\t\t]),\n\tA2(_user$project$Widget_Data_Type$fmtList, 'weather {{}} # ...', ' '));\nvar _user$project$RSyncConfig$init = function () {\n\tvar options5 = A4(\n\t\t_user$project$Widget_Data_Type$aVertical,\n\t\t'flags5',\n\t\t'Options 5',\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'd', 'Directories', 'transfer directories without recursing', '--dirs'),\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'l', 'Symlinks', 'copy symlinks as symlinks', '--links'),\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'L', 'Copy Symlinks', 'transform symlink into referent file/dir', '--copy-links'),\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBooT, 'n', 'Dry Run', 'perform a trial run with no changes made', '--dry-run')\n\t\t\t]),\n\t\tA2(_user$project$Widget_Data_Type$fmtList, '{{}}', ' '));\n\tvar options4 = A4(\n\t\t_user$project$Widget_Data_Type$aVertical,\n\t\t'flags4',\n\t\t'Options 4',\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'del', 'Delete from Destination', 'delete extraneous files from dest dirs', '--delete'),\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'ie', 'Ignore Existing Files', 'skip updating files that exist on receiver', '--ignore-existing'),\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'x', 'Stay on One File system', 'don\\'t cross filesystem boundaries', '--one-file-system'),\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 's', 'Protect remote arguments', 'no space-splitting; wildcard chars only', '--protect-args')\n\t\t\t]),\n\t\tA2(_user$project$Widget_Data_Type$fmtList, '{{}}', ' '));\n\tvar options3 = A4(\n\t\t_user$project$Widget_Data_Type$aVertical,\n\t\t'flags3',\n\t\t'Options 3',\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 't', 'Preserve Times', 'preserve modification times', '--times'),\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'p', 'Preserve Permissions', 'preserve permissions', '--perms'),\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'o', 'Preserve Owner', 'preserve owner (super-user only)', '--owner'),\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'g', 'Preserve Group', 'preserve group', '--group')\n\t\t\t]),\n\t\tA2(_user$project$Widget_Data_Type$fmtList, '{{}}', ' '));\n\tvar options2 = A4(\n\t\t_user$project$Widget_Data_Type$aVertical,\n\t\t'flags2',\n\t\t'Options 2',\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBooT, 'r', 'Recursive', 'recurse into directories', '--recursive'),\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'R', 'Relative', 'use relative path names', '--relative'),\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'b', 'Backup', 'make backups (see --suffix & --backup-dir)', '--backup'),\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'u', 'Update', 'skip files that are newer on the receiver', '--update')\n\t\t\t]),\n\t\tA2(_user$project$Widget_Data_Type$fmtList, '{{}}', ' '));\n\tvar options1 = A4(\n\t\t_user$project$Widget_Data_Type$aVertical,\n\t\t'flags1',\n\t\t'Options 1',\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\tA4(\n\t\t\t\t_user$project$Widget_Data_Type$flag,\n\t\t\t\t'Verbose',\n\t\t\t\ttrue,\n\t\t\t\t'increase verbosity',\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t['--verbose'])),\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'q', 'Quiet', 'suppress non-error messages', '--quiet'),\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBooT, 'c', 'Checksum', 'skip based on checksum, not mod-time & size', '--checksum'),\n\t\t\t\tA4(_user$project$Widget_Data_Type$aBool, 'a', 'Archive', 'archive mode; equals -rlptgoD (no -H,-A,-X)', '--archive')\n\t\t\t]),\n\t\tA2(_user$project$Widget_Data_Type$fmtList, '{{}}', ' '));\n\tvar options = A4(\n\t\t_user$project$Widget_Data_Type$aHorizontal,\n\t\t'opts',\n\t\t'Options',\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[options1, options2, options3, options4, options5]),\n\t\tA2(_user$project$Widget_Data_Type$fmtList, '{{}}', ' '));\n\tvar tgtLocationSwitch = A2(_user$project$RSyncConfig$locationSwitch, 'tgt', 'Target');\n\tvar srcLocationSwitch = A2(_user$project$RSyncConfig$locationSwitch, 'src', 'Source');\n\tvar locationSwitches = A4(\n\t\t_user$project$Widget_Data_Type$aHorizontal,\n\t\t'dataLoc',\n\t\t'Data',\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[srcLocationSwitch, tgtLocationSwitch]),\n\t\tA2(_user$project$Widget_Data_Type$fmtList, '{{}}', ' '));\n\treturn A4(\n\t\t_user$project$Widget_Data_Type$aVertical,\n\t\t'all',\n\t\t'All RSync',\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[options, locationSwitches]),\n\t\tA2(_user$project$Widget_Data_Type$fmtList, 'rsync {{}}', ' '));\n}();\nvar _user$project$Job$encodeNewJobOfType = F3(\n\tfunction (jobTypeName, scriptTemplate, jobFields) {\n\t\treturn _elm_lang$core$Json_Encode$object(\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'type_name',\n\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string(jobTypeName)\n\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'script_template',\n\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string(scriptTemplate)\n\t\t\t\t\t}\n\t\t\t\t\t]),\n\t\t\t\tjobFields));\n\t});\nvar _user$project$Job$encodeX = F3(\n\tfunction (jobTypeName, model, addFields) {\n\t\treturn A3(\n\t\t\t_user$project$Job$encodeNewJobOfType,\n\t\t\tjobTypeName,\n\t\t\tmodel.scriptTemplate,\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'job_id',\n\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string(model.id)\n\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'job_name',\n\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string(model.name)\n\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'cmd',\n\t\t\t\t\t\t_1: _elm_lang$core$Json_Encode$string(\n\t\t\t\t\t\t\t_user$project$Widget_Gen$cmdOf(model.node))\n\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: 'debug',\n\t\t\t\t\t\t_1: _user$project$Util_Debug$encode(model.debug)\n\t\t\t\t\t}\n\t\t\t\t\t]),\n\t\t\t\taddFields));\n\t});\nvar _user$project$Job$encode = F2(\n\tfunction (jobTypeName, model) {\n\t\treturn A3(\n\t\t\t_user$project$Job$encodeX,\n\t\t\tjobTypeName,\n\t\t\tmodel,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t_0: 'root',\n\t\t\t\t\t_1: _user$project$Widget_Data_Json$encodeNode(model.node)\n\t\t\t\t}\n\t\t\t\t]));\n\t});\nvar _user$project$Job$httpSend = F4(\n\tfunction (verb, decoder, url, body) {\n\t\tvar request = {\n\t\t\tverb: verb,\n\t\t\theaders: _elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\turl: url,\n\t\t\tbody: body\n\t\t};\n\t\treturn A2(\n\t\t\t_evancz$elm_http$Http$fromJson,\n\t\t\tdecoder,\n\t\t\tA2(_evancz$elm_http$Http$send, _evancz$elm_http$Http$defaultSettings, request));\n\t});\nvar _user$project$Job$defaultScript = _user$project$RSyncConfig$scriptTemplate;\nvar _user$project$Job$encTuple = F2(\n\tfunction (name, node) {\n\t\treturn {\n\t\t\tctor: '_Tuple2',\n\t\t\t_0: name,\n\t\t\t_1: _user$project$Widget_Data_Json$encodeNode(node)\n\t\t};\n\t});\nvar _user$project$Job$encDefaultRootTuple = function (node) {\n\treturn A2(_user$project$Job$encTuple, 'default_root', node);\n};\nvar _user$project$Job$defaultRootNode = _user$project$RSyncConfig$init;\nvar _user$project$Job$defaultRootEncTuple = _user$project$Job$encDefaultRootTuple(_user$project$Job$defaultRootNode);\nvar _user$project$Job$Model = F8(\n\tfunction (a, b, c, d, e, f, g, h) {\n\t\treturn {id: a, name: b, typeName: c, scriptTemplate: d, node: e, debug: f, scriptFile: g, lostFoundRecs: h};\n\t});\nvar _user$project$Job$init = function () {\n\tvar node = A4(\n\t\t_user$project$Widget_Data_Type$aVertical,\n\t\t'new-job',\n\t\t'new',\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\tA2(_user$project$Widget_Data_Type$fmtList, '<<EMPTY JOB -- DON\\'T USE>>', ', '));\n\treturn {\n\t\tctor: '_Tuple2',\n\t\t_0: A8(\n\t\t\t_user$project$Job$Model,\n\t\t\t'',\n\t\t\tnode.rec.label,\n\t\t\t'Empty Job Type',\n\t\t\t_user$project$Job$defaultScript,\n\t\t\tnode,\n\t\t\t_user$project$Util_Debug$init,\n\t\t\t'empty-file',\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[])),\n\t\t_1: _elm_lang$core$Platform_Cmd$none\n\t};\n}();\nvar _user$project$Job$defaultJob = function () {\n\tvar node = _user$project$Job$defaultRootNode;\n\treturn {\n\t\tctor: '_Tuple2',\n\t\t_0: A8(\n\t\t\t_user$project$Job$Model,\n\t\t\t'default',\n\t\t\t'new',\n\t\t\t'RSync',\n\t\t\t_user$project$Job$defaultScript,\n\t\t\tnode,\n\t\t\t_user$project$Util_Debug$init,\n\t\t\t'',\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[])),\n\t\t_1: _elm_lang$core$Platform_Cmd$none\n\t};\n}();\nvar _user$project$Job$decode = A2(\n\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\tA2(\n\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\tA2(\n\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\tA2(\n\t\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\t\tA2(\n\t\t\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\t\t\t\t\t\t_elm_lang$core$Json_Decode$succeed(_user$project$Job$Model),\n\t\t\t\t\t\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'job_id', _elm_lang$core$Json_Decode$string)),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_community$json_extra$Json_Decode_Extra$withDefault,\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'job_name', _elm_lang$core$Json_Decode$string))),\n\t\t\t\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'type_name', _elm_lang$core$Json_Decode$string)),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_community$json_extra$Json_Decode_Extra$withDefault,\n\t\t\t\t\t\t_user$project$Job$defaultScript,\n\t\t\t\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'script_template', _elm_lang$core$Json_Decode$string))),\n\t\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'root', _user$project$Widget_Data_Json$decodeNode)),\n\t\t\tA2(\n\t\t\t\t_elm_community$json_extra$Json_Decode_Extra$withDefault,\n\t\t\t\t_user$project$Util_Debug$init,\n\t\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'debug', _user$project$Util_Debug$decode))),\n\t\tA2(\n\t\t\t_elm_community$json_extra$Json_Decode_Extra$withDefault,\n\t\t\t'',\n\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'script_fpath', _elm_lang$core$Json_Decode$string))),\n\tA2(\n\t\t_elm_community$json_extra$Json_Decode_Extra$withDefault,\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\tA2(\n\t\t\t_elm_lang$core$Json_Decode_ops[':='],\n\t\t\t'lost+found',\n\t\t\t_elm_lang$core$Json_Decode$list(_user$project$Widget_Data_Json$decRec))));\nvar _user$project$Job$newJobCall = F4(\n\tfunction (jobTypeName, model, defRootEncTuple, newJobName) {\n\t\tvar _p0 = _elm_lang$core$Native_Utils.eq(model.id, '') ? {\n\t\t\tctor: '_Tuple2',\n\t\t\t_0: A2(_user$project$Job$encodeNewJobOfType, jobTypeName, model.scriptTemplate),\n\t\t\t_1: _elm_lang$core$Native_List.fromArray(\n\t\t\t\t[])\n\t\t} : {\n\t\t\tctor: '_Tuple2',\n\t\t\t_0: A2(_user$project$Job$encodeX, jobTypeName, model),\n\t\t\t_1: _elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t_0: 'root',\n\t\t\t\t\t_1: _user$project$Widget_Data_Json$encodeNode(model.node)\n\t\t\t\t}\n\t\t\t\t])\n\t\t};\n\t\tvar toJsonString = _p0._0;\n\t\tvar extraNodes = _p0._1;\n\t\tvar body_s = A2(\n\t\t\t_elm_lang$core$Json_Encode$encode,\n\t\t\t2,\n\t\t\ttoJsonString(\n\t\t\t\tA2(_elm_lang$core$List_ops['::'], defRootEncTuple, extraNodes)));\n\t\tvar url = A2(\n\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t'/jobs/RSync',\n\t\t\t_elm_lang$core$Native_Utils.eq(newJobName, '') ? '' : A2(_elm_lang$core$Basics_ops['++'], '?newJobName=', newJobName));\n\t\tvar _p1 = A2(\n\t\t\t_elm_lang$core$Debug$log,\n\t\t\t'Job.newJobCall',\n\t\t\t{ctor: '_Tuple4', _0: jobTypeName, _1: newJobName, _2: model, _3: defRootEncTuple});\n\t\treturn A3(\n\t\t\t_evancz$elm_http$Http$post,\n\t\t\t_user$project$Job$decode,\n\t\t\turl,\n\t\t\t_evancz$elm_http$Http$string(body_s));\n\t});\nvar _user$project$Job$loadJobCall = F2(\n\tfunction (jobTypeName, newJobId) {\n\t\tvar url = A2(\n\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t'/jobs/RSync',\n\t\t\tA2(_elm_lang$core$Basics_ops['++'], '/', newJobId));\n\t\treturn A2(_evancz$elm_http$Http$get, _user$project$Job$decode, url);\n\t});\nvar _user$project$Job$saveLoadJobCall = F3(\n\tfunction (jobTypeName, model, newJobId) {\n\t\tvar body_s = A2(\n\t\t\t_elm_lang$core$Json_Encode$encode,\n\t\t\t2,\n\t\t\tA2(_user$project$Job$encode, jobTypeName, model));\n\t\tvar url = A2(\n\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t'/jobs/RSync',\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t'/',\n\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\tmodel.id,\n\t\t\t\t\t_elm_lang$core$Native_Utils.eq(newJobId, '') ? '' : A2(_elm_lang$core$Basics_ops['++'], '?newJobId=', newJobId))));\n\t\treturn A4(\n\t\t\t_user$project$Job$httpSend,\n\t\t\t'PUT',\n\t\t\t_user$project$Job$decode,\n\t\t\turl,\n\t\t\t_evancz$elm_http$Http$string(body_s));\n\t});\nvar _user$project$Job$DebugMsg = function (a) {\n\treturn {ctor: 'DebugMsg', _0: a};\n};\nvar _user$project$Job$WidgetMsg = function (a) {\n\treturn {ctor: 'WidgetMsg', _0: a};\n};\nvar _user$project$Job$view = F2(\n\tfunction (jobTypeName, model) {\n\t\tvar lostFound = _elm_lang$core$Native_Utils.eq(\n\t\t\t_elm_lang$core$List$length(model.lostFoundRecs),\n\t\t\t0) ? _elm_lang$core$Native_List.fromArray(\n\t\t\t[]) : A2(\n\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$html$Html$h4,\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]),\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_elm_lang$html$Html$text('Lost + Found')\n\t\t\t\t\t\t]))\n\t\t\t\t]),\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$List$map,\n\t\t\t\tfunction (lfr) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$html$Html_App$map,\n\t\t\t\t\t\t_user$project$Job$WidgetMsg,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_user$project$Widget$viewRecord,\n\t\t\t\t\t\t\t_elm_lang$html$Html$text(\n\t\t\t\t\t\t\t\t_elm_lang$core$Basics$toString(lfr)),\n\t\t\t\t\t\t\tlfr));\n\t\t\t\t},\n\t\t\t\tmodel.lostFoundRecs));\n\t\treturn A2(\n\t\t\t_elm_lang$html$Html$div,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$html$Html$table,\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_App$map,\n\t\t\t\t\t\t\t\t\t\t\t\t_user$project$Job$WidgetMsg,\n\t\t\t\t\t\t\t\t\t\t\t\t_user$project$Widget$view(model.node))\n\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\tlostFound,\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$h4,\n\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text('Details')\n\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$table,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text('command:')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$em,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_user$project$Widget_Gen$cmdOf(model.node))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text('script file:')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$em,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text(model.scriptFile)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_App$map,\n\t\t\t\t\t\t\t\t\t_user$project$Job$DebugMsg,\n\t\t\t\t\t\t\t\t\tA2(_user$project$Util_Debug$view, 'Job', model.debug))\n\t\t\t\t\t\t\t\t]))))\n\t\t\t\t]));\n\t});\nvar _user$project$Job$SaveDefault = {ctor: 'SaveDefault'};\nvar _user$project$Job$LoadSucceed = function (a) {\n\treturn {ctor: 'LoadSucceed', _0: a};\n};\nvar _user$project$Job$LoadFail = function (a) {\n\treturn {ctor: 'LoadFail', _0: a};\n};\nvar _user$project$Job$loadJob = F2(\n\tfunction (jobTypeName, newJobId) {\n\t\treturn A3(\n\t\t\t_elm_lang$core$Task$perform,\n\t\t\t_user$project$Job$LoadFail,\n\t\t\t_user$project$Job$LoadSucceed,\n\t\t\tA2(_user$project$Job$loadJobCall, jobTypeName, newJobId));\n\t});\nvar _user$project$Job$Load = F2(\n\tfunction (a, b) {\n\t\treturn {ctor: 'Load', _0: a, _1: b};\n\t});\nvar _user$project$Job$SaveFail = function (a) {\n\treturn {ctor: 'SaveFail', _0: a};\n};\nvar _user$project$Job$SaveSucceed = function (a) {\n\treturn {ctor: 'SaveSucceed', _0: a};\n};\nvar _user$project$Job$newJob = F4(\n\tfunction (jobTypeName, model, defRootEncTuple, newJobName) {\n\t\treturn A3(\n\t\t\t_elm_lang$core$Task$perform,\n\t\t\t_user$project$Job$SaveFail,\n\t\t\t_user$project$Job$SaveSucceed,\n\t\t\tA4(_user$project$Job$newJobCall, jobTypeName, model, defRootEncTuple, newJobName));\n\t});\nvar _user$project$Job$saveLoadJob = F3(\n\tfunction (jobTypeName, model, newJobId) {\n\t\treturn A3(\n\t\t\t_elm_lang$core$Task$perform,\n\t\t\t_user$project$Job$SaveFail,\n\t\t\t_user$project$Job$SaveSucceed,\n\t\t\tA3(_user$project$Job$saveLoadJobCall, jobTypeName, model, newJobId));\n\t});\nvar _user$project$Job$Save = F2(\n\tfunction (a, b) {\n\t\treturn {ctor: 'Save', _0: a, _1: b};\n\t});\nvar _user$project$Job$update = F2(\n\tfunction (msg, model) {\n\t\tvar _p2 = function () {\n\t\t\tvar _p3 = msg;\n\t\t\tswitch (_p3.ctor) {\n\t\t\t\tcase 'New':\n\t\t\t\t\tvar njCmd = A4(_user$project$Job$newJob, _p3._0, model, _user$project$Job$defaultRootEncTuple, '');\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[njCmd]));\n\t\t\t\tcase 'Clone':\n\t\t\t\t\tvar cjCmd = A4(\n\t\t\t\t\t\t_user$project$Job$newJob,\n\t\t\t\t\t\tmodel.typeName,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t_user$project$Job$encDefaultRootTuple(model.node),\n\t\t\t\t\t\tmodel.name);\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[cjCmd]));\n\t\t\t\tcase 'Rename':\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{name: _p3._0}),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]));\n\t\t\t\tcase 'Upgrade':\n\t\t\t\t\tvar _p4 = A2(_user$project$Widget_Gen$upgrade, _user$project$Job$defaultRootNode, model.node);\n\t\t\t\t\tvar node$ = _p4._0;\n\t\t\t\t\tvar lfRecs = _p4._1;\n\t\t\t\t\tvar _p5 = A2(_elm_lang$core$Debug$log, 'lost+found', lfRecs);\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tnode: node$,\n\t\t\t\t\t\t\t\tscriptTemplate: _user$project$Job$defaultScript,\n\t\t\t\t\t\t\t\tlostFoundRecs: A2(_elm_lang$core$Basics_ops['++'], lfRecs, model.lostFoundRecs)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\tA2(_user$project$Job$Save, '', ''))\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'WidgetMsg':\n\t\t\t\t\tvar _p6 = A2(_user$project$Widget$update, _p3._0, model.node);\n\t\t\t\t\tvar node$ = _p6._0;\n\t\t\t\t\tvar wm$ = _p6._1;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{node: node$}),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(_elm_lang$core$Platform_Cmd$map, _user$project$Job$WidgetMsg, wm$),\n\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\tA2(_user$project$Job$Save, '', ''))\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'Save':\n\t\t\t\t\tvar _p7 = _p3._0;\n\t\t\t\t\tvar jobType = _elm_lang$core$Native_Utils.eq(_p7, '') ? model.typeName : _p7;\n\t\t\t\t\tvar sljCmd = A3(_user$project$Job$saveLoadJob, jobType, model, _p3._1);\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{typeName: jobType}),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[sljCmd]));\n\t\t\t\tcase 'SaveDefault':\n\t\t\t\t\tvar job = _elm_lang$core$Basics$fst(_user$project$Job$defaultJob);\n\t\t\t\t\tvar jobType = job.typeName;\n\t\t\t\t\tvar sljCmd = A3(_user$project$Job$saveLoadJob, jobType, job, '');\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{typeName: jobType}),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[sljCmd]));\n\t\t\t\tcase 'SaveSucceed':\n\t\t\t\t\tvar _p8 = _p3._0;\n\t\t\t\t\tvar newModel$ = _elm_lang$core$Native_Utils.eq(_p8.id, 'default') ? model : _p8;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\tnewModel$,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]));\n\t\t\t\tcase 'SaveFail':\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\t_user$project$Job$DebugMsg(\n\t\t\t\t\t\t\t\t\t_user$project$Util_Debug$Change(\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\t\t\t\t\t'Job.SaveFail: ',\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics$toString(_p3._0)))))\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'Load':\n\t\t\t\t\tvar _p9 = _p3._0;\n\t\t\t\t\tvar jobType = _elm_lang$core$Native_Utils.eq(_p9, '') ? model.typeName : _p9;\n\t\t\t\t\tvar ljCmd = A2(_user$project$Job$loadJob, jobType, _p3._1);\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{typeName: jobType}),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[ljCmd]));\n\t\t\t\tcase 'LoadSucceed':\n\t\t\t\t\tvar _p11 = _p3._0;\n\t\t\t\t\tvar _p10 = A2(\n\t\t\t\t\t\t_elm_lang$core$Debug$log,\n\t\t\t\t\t\t'Job.LoadSucceed',\n\t\t\t\t\t\t{ctor: '_Tuple2', _0: _p11.name, _1: _p11.id});\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_p11,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]));\n\t\t\t\tcase 'LoadFail':\n\t\t\t\t\tvar _p13 = _p3._0;\n\t\t\t\t\tvar _p12 = A2(_elm_lang$core$Debug$log, 'Job.LoadFail', _p13);\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\t_user$project$Job$DebugMsg(\n\t\t\t\t\t\t\t\t\t_user$project$Util_Debug$Change(\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\t\t\t\t\t'Job.LoadFail: ',\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics$toString(_p13)))))\n\t\t\t\t\t\t\t]));\n\t\t\t\tdefault:\n\t\t\t\t\tvar _p14 = A2(_user$project$Util_Debug$update, _p3._0, model.debug);\n\t\t\t\t\tvar newDebug = _p14._0;\n\t\t\t\t\tvar nDbgMsg = _p14._1;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{debug: newDebug}),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(_elm_lang$core$Platform_Cmd$map, _user$project$Job$DebugMsg, nDbgMsg)\n\t\t\t\t\t\t\t]));\n\t\t\t}\n\t\t}();\n\t\tvar model$ = _p2._0;\n\t\tvar cmdMsg = _p2._1;\n\t\tvar _p15 = function () {\n\t\t\tvar modelStr = _elm_lang$core$Basics$toString(\n\t\t\t\t{id: model$.id, name: model$.name, jtype: model$.typeName});\n\t\t\treturn A2(\n\t\t\t\t_user$project$Util_Debug$update,\n\t\t\t\t_user$project$Util_Debug$Change(modelStr),\n\t\t\t\tmodel$.debug);\n\t\t}();\n\t\tvar debug$ = _p15._0;\n\t\tvar dbgMsg$ = _p15._1;\n\t\treturn A2(\n\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\tmodel$,\n\t\t\t\t{debug: debug$}),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\tcmdMsg,\n\t\t\t\t\tA2(_elm_lang$core$Platform_Cmd$map, _user$project$Job$DebugMsg, dbgMsg$)\n\t\t\t\t]));\n\t});\nvar _user$project$Job$Clone = {ctor: 'Clone'};\nvar _user$project$Job$Upgrade = {ctor: 'Upgrade'};\nvar _user$project$Job$New = function (a) {\n\treturn {ctor: 'New', _0: a};\n};\nvar _user$project$Job$Rename = function (a) {\n\treturn {ctor: 'Rename', _0: a};\n};\nvar _user$project$Util_Status$viewEntry = function (statusEntry) {\n\tvar _p0 = statusEntry.status;\n\tif (_p0.ctor === 'Ok') {\n\t\treturn A2(\n\t\t\t_elm_lang$html$Html$label,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\t_elm_lang$html$Html_Attributes$style(\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t{ctor: '_Tuple2', _0: 'color', _1: 'green'}\n\t\t\t\t\t\t]))\n\t\t\t\t]),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\t_elm_lang$html$Html$text(_p0._0)\n\t\t\t\t]));\n\t} else {\n\t\treturn A2(\n\t\t\t_elm_lang$html$Html$label,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\t_elm_lang$html$Html_Attributes$style(\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t{ctor: '_Tuple2', _0: 'color', _1: 'red'}\n\t\t\t\t\t\t]))\n\t\t\t\t]),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\t_elm_lang$html$Html$text(_p0._0)\n\t\t\t\t]));\n\t}\n};\nvar _user$project$Util_Status$foldHelper = F2(\n\tfunction (statusEntry, state) {\n\t\tvar _p1 = statusEntry.status;\n\t\tif (_p1.ctor === 'Ok') {\n\t\t\treturn (_elm_lang$core$Native_Utils.cmp(state.oksLeft, 0) > 0) ? _elm_lang$core$Native_Utils.update(\n\t\t\t\tstate,\n\t\t\t\t{\n\t\t\t\t\toksLeft: state.oksLeft - 1,\n\t\t\t\t\ttr_l: A2(\n\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\tstate.tr_l,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$html$Html$label,\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$style(\n\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t{ctor: '_Tuple2', _0: 'color', _1: 'green'}\n\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text(\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\t\t\t\t\tstatusEntry.action,\n\t\t\t\t\t\t\t\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], ': ', _p1._0)))\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t]))\n\t\t\t\t}) : state;\n\t\t} else {\n\t\t\treturn (_elm_lang$core$Native_Utils.cmp(state.errsLeft, 0) > 0) ? _elm_lang$core$Native_Utils.update(\n\t\t\t\tstate,\n\t\t\t\t{\n\t\t\t\t\terrsLeft: state.errsLeft - 1,\n\t\t\t\t\ttr_l: A2(\n\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\tstate.tr_l,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$html$Html$label,\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_Attributes$style(\n\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t{ctor: '_Tuple2', _0: 'color', _1: 'red'}\n\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text(\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\t\t\t\t\tstatusEntry.action,\n\t\t\t\t\t\t\t\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], ': ', _p1._0)))\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t]))\n\t\t\t\t}) : state;\n\t\t}\n\t});\nvar _user$project$Util_Status$view = function (model) {\n\tvar start = {\n\t\terrsLeft: model.showErr,\n\t\toksLeft: model.showOk,\n\t\ttr_l: _elm_lang$core$Native_List.fromArray(\n\t\t\t[])\n\t};\n\tvar end = A3(_elm_lang$core$List$foldl, _user$project$Util_Status$foldHelper, start, model.history);\n\treturn A2(\n\t\t_elm_lang$html$Html$table,\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\tA2(\n\t\t\t_elm_lang$core$List$map,\n\t\t\tfunction (e) {\n\t\t\t\treturn A2(\n\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[]),\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[e]))\n\t\t\t\t\t\t]));\n\t\t\t},\n\t\t\tend.tr_l));\n};\nvar _user$project$Util_Status$update = F2(\n\tfunction (msg, model) {\n\t\tvar _p2 = msg;\n\t\treturn A2(\n\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\tmodel,\n\t\t\t\t{\n\t\t\t\t\thistory: A2(_elm_lang$core$List_ops['::'], _p2._0, model.history)\n\t\t\t\t}),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]));\n\t});\nvar _user$project$Util_Status$Model = F3(\n\tfunction (a, b, c) {\n\t\treturn {history: a, showErr: b, showOk: c};\n\t});\nvar _user$project$Util_Status$init = A3(\n\t_user$project$Util_Status$Model,\n\t_elm_lang$core$Native_List.fromArray(\n\t\t[]),\n\t2,\n\t1);\nvar _user$project$Util_Status$Status = F2(\n\tfunction (a, b) {\n\t\treturn {action: a, status: b};\n\t});\nvar _user$project$Util_Status$Add = function (a) {\n\treturn {ctor: 'Add', _0: a};\n};\nvar _user$project$JobType$jobHeadList2IdNameTupleList = function (jobHeadList) {\n\treturn A2(\n\t\t_elm_lang$core$List$map,\n\t\tfunction (jh) {\n\t\t\treturn {ctor: '_Tuple2', _0: jh.id, _1: jh.name};\n\t\t},\n\t\tjobHeadList);\n};\nvar _user$project$JobType$newJobIdNames = F2(\n\tfunction (model, job$) {\n\t\tvar validId = function (_p0) {\n\t\t\tvar _p1 = _p0;\n\t\t\treturn !_elm_lang$core$Native_Utils.eq(_p1._0, '');\n\t\t};\n\t\tvar otherId = function (_p2) {\n\t\t\tvar _p3 = _p2;\n\t\t\tvar _p4 = _p3._0;\n\t\t\treturn (!_elm_lang$core$Native_Utils.eq(_p4, model.job.id)) && (!_elm_lang$core$Native_Utils.eq(_p4, job$.id));\n\t\t};\n\t\tvar otherJobIdNames = A2(_elm_lang$core$List$filter, otherId, model.jobIdNames);\n\t\tvar newJobIdNames = _elm_lang$core$Native_Utils.eq(model.job.id, job$.id) ? A2(\n\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t{ctor: '_Tuple2', _0: job$.id, _1: job$.name},\n\t\t\totherJobIdNames) : A2(\n\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t{ctor: '_Tuple2', _0: job$.id, _1: job$.name},\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$List_ops['::'],\n\t\t\t\t{ctor: '_Tuple2', _0: model.job.id, _1: model.job.name},\n\t\t\t\totherJobIdNames));\n\t\tvar validJobIdNames = A2(_elm_lang$core$List$filter, validId, newJobIdNames);\n\t\treturn validJobIdNames;\n\t});\nvar _user$project$JobType$viewModel = function (model) {\n\treturn A2(\n\t\t_elm_lang$html$Html$table,\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[]),\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_elm_lang$html$Html$text(\n\t\t\t\t\t\t\t\t_elm_lang$core$Basics$toString(model.jobIdNames))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_elm_lang$html$Html$text(\n\t\t\t\t\t\t\t\t_elm_lang$core$Basics$toString(model.job))\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t]))\n\t\t\t]));\n};\nvar _user$project$JobType$findJobId = F2(\n\tfunction (jobName, model) {\n\t\tvar _p7 = _elm_lang$core$List$head(\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$List$filter,\n\t\t\t\tfunction (_p5) {\n\t\t\t\t\tvar _p6 = _p5;\n\t\t\t\t\treturn _elm_lang$core$Native_Utils.eq(_p6._1, jobName);\n\t\t\t\t},\n\t\t\t\tmodel.jobIdNames));\n\t\tif (_p7.ctor === 'Nothing') {\n\t\t\treturn '---';\n\t\t} else {\n\t\t\treturn _p7._0._0;\n\t\t}\n\t});\nvar _user$project$JobType$equal = F2(\n\tfunction (model1, model2) {\n\t\treturn _elm_lang$core$Native_Utils.eq(model1.name, model2.name) && (_elm_lang$core$Native_Utils.eq(model1.job, model2.job) && _elm_lang$core$Native_Utils.eq(model1.jobIdNames, model2.jobIdNames));\n\t});\nvar _user$project$JobType$emptyComboBox = _user$project$ComboBox$init(\n\t_elm_lang$core$Native_List.fromArray(\n\t\t[]));\nvar _user$project$JobType$defaultJob = _elm_lang$core$Basics$fst(_user$project$Job$init);\nvar _user$project$JobType$Model = F8(\n\tfunction (a, b, c, d, e, f, g, h) {\n\t\treturn {id: a, name: b, job: c, jobIdNames: d, combo: e, action: f, status: g, debug: h};\n\t});\nvar _user$project$JobType$JobHead = F3(\n\tfunction (a, b, c) {\n\t\treturn {id: a, name: b, typeName: c};\n\t});\nvar _user$project$JobType$decodeJobHead = A2(\n\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\tA2(\n\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\tA2(\n\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\t_elm_lang$core$Json_Decode$succeed(_user$project$JobType$JobHead),\n\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'job_id', _elm_lang$core$Json_Decode$string)),\n\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'job_name', _elm_lang$core$Json_Decode$string)),\n\tA2(_elm_lang$core$Json_Decode_ops[':='], 'type_name', _elm_lang$core$Json_Decode$string));\nvar _user$project$JobType$decodeJobIdNamesList = A2(\n\t_elm_lang$core$Json_Decode$map,\n\t_user$project$JobType$jobHeadList2IdNameTupleList,\n\t_elm_lang$core$Json_Decode$list(_user$project$JobType$decodeJobHead));\nvar _user$project$JobType$decode = A2(\n\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\tA2(\n\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\tA2(\n\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\tA2(\n\t\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\t\tA2(\n\t\t\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_community$json_extra$Json_Decode_Extra_ops['|:'],\n\t\t\t\t\t\t\t\t_elm_lang$core$Json_Decode$succeed(_user$project$JobType$Model),\n\t\t\t\t\t\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'id', _elm_lang$core$Json_Decode$string)),\n\t\t\t\t\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'name', _elm_lang$core$Json_Decode$string)),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_community$json_extra$Json_Decode_Extra$withDefault,\n\t\t\t\t\t\t\t_user$project$JobType$defaultJob,\n\t\t\t\t\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'job', _user$project$Job$decode))),\n\t\t\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'jobs', _user$project$JobType$decodeJobIdNamesList)),\n\t\t\t\tA2(\n\t\t\t\t\t_elm_community$json_extra$Json_Decode_Extra$withDefault,\n\t\t\t\t\t_user$project$JobType$emptyComboBox,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_lang$core$Json_Decode_ops[':='],\n\t\t\t\t\t\t'combo',\n\t\t\t\t\t\t_elm_lang$core$Json_Decode$null(_user$project$JobType$emptyComboBox)))),\n\t\t\tA2(\n\t\t\t\t_elm_community$json_extra$Json_Decode_Extra$withDefault,\n\t\t\t\t'',\n\t\t\t\tA2(_elm_lang$core$Json_Decode_ops[':='], 'action', _elm_lang$core$Json_Decode$string))),\n\t\tA2(\n\t\t\t_elm_community$json_extra$Json_Decode_Extra$withDefault,\n\t\t\t_user$project$Util_Status$init,\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$Json_Decode_ops[':='],\n\t\t\t\t'status',\n\t\t\t\t_elm_lang$core$Json_Decode$null(_user$project$Util_Status$init)))),\n\tA2(\n\t\t_elm_community$json_extra$Json_Decode_Extra$withDefault,\n\t\t_user$project$Util_Debug$init,\n\t\tA2(\n\t\t\t_elm_lang$core$Json_Decode_ops[':='],\n\t\t\t'debug',\n\t\t\t_elm_lang$core$Json_Decode$null(_user$project$Util_Debug$init))));\nvar _user$project$JobType$StatusMsg = function (a) {\n\treturn {ctor: 'StatusMsg', _0: a};\n};\nvar _user$project$JobType$DebugMsg = function (a) {\n\treturn {ctor: 'DebugMsg', _0: a};\n};\nvar _user$project$JobType$ComboMsg = function (a) {\n\treturn {ctor: 'ComboMsg', _0: a};\n};\nvar _user$project$JobType$JobMsg = function (a) {\n\treturn {ctor: 'JobMsg', _0: a};\n};\nvar _user$project$JobType$updateCombo = F2(\n\tfunction (cbmsg, model) {\n\t\tvar _p8 = function () {\n\t\t\tvar _p9 = cbmsg;\n\t\t\tswitch (_p9.ctor) {\n\t\t\t\tcase 'UpdateField':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: model.job,\n\t\t\t\t\t\t_1: A2(\n\t\t\t\t\t\t\t_elm_lang$core$Platform_Cmd$map,\n\t\t\t\t\t\t\t_user$project$JobType$JobMsg,\n\t\t\t\t\t\t\t_elm_lang$core$Platform_Cmd$batch(\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\t\t\t_user$project$Job$Rename(_p9._0))\n\t\t\t\t\t\t\t\t\t])))\n\t\t\t\t\t};\n\t\t\t\tcase 'FieldChanged':\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\tmodel.job,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\t_user$project$JobType$JobMsg(\n\t\t\t\t\t\t\t\t\tA2(_user$project$Job$Save, model.name, '')))\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'Select':\n\t\t\t\t\tvar newJobId = A2(_user$project$JobType$findJobId, _p9._0, model);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: model.job,\n\t\t\t\t\t\t_1: A2(\n\t\t\t\t\t\t\t_elm_lang$core$Platform_Cmd$map,\n\t\t\t\t\t\t\t_user$project$JobType$JobMsg,\n\t\t\t\t\t\t\t_elm_lang$core$Platform_Cmd$batch(\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\t\t\tA2(_user$project$Job$Save, model.name, newJobId))\n\t\t\t\t\t\t\t\t\t])))\n\t\t\t\t\t};\n\t\t\t\tdefault:\n\t\t\t\t\treturn {\n\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t_0: model.job,\n\t\t\t\t\t\t_1: A2(\n\t\t\t\t\t\t\t_elm_lang$core$Debug$log,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\t\t'combo other ',\n\t\t\t\t\t\t\t\t_elm_lang$core$Basics$toString(cbmsg)),\n\t\t\t\t\t\t\t_elm_lang$core$Platform_Cmd$none)\n\t\t\t\t\t};\n\t\t\t}\n\t\t}();\n\t\tvar nJob = _p8._0;\n\t\tvar msg2 = _p8._1;\n\t\tvar _p10 = A2(_user$project$ComboBox$update, cbmsg, model.combo);\n\t\tvar cbb = _p10._0;\n\t\tvar cbmsg$ = _p10._1;\n\t\tvar oldJobName = A2(\n\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t'old job ',\n\t\t\tA2(\n\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t_elm_lang$core$Basics$toString(model.job.id),\n\t\t\t\tA2(\n\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t': ',\n\t\t\t\t\t_elm_lang$core$Basics$toString(model.job.name))));\n\t\treturn A2(\n\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\tmodel,\n\t\t\t\t{combo: cbb, job: nJob}),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(_elm_lang$core$Platform_Cmd$map, _user$project$JobType$ComboMsg, cbmsg$),\n\t\t\t\t\tmsg2\n\t\t\t\t]));\n\t});\nvar _user$project$JobType$LoadJobsSucceed = function (a) {\n\treturn {ctor: 'LoadJobsSucceed', _0: a};\n};\nvar _user$project$JobType$LoadJobsFail = function (a) {\n\treturn {ctor: 'LoadJobsFail', _0: a};\n};\nvar _user$project$JobType$loadJobs = function () {\n\tvar url = '/jobs/RSync';\n\tvar httpCall = A2(_evancz$elm_http$Http$get, _user$project$JobType$decode, url);\n\treturn A3(_elm_lang$core$Task$perform, _user$project$JobType$LoadJobsFail, _user$project$JobType$LoadJobsSucceed, httpCall);\n}();\nvar _user$project$JobType$update = F2(\n\tfunction (msg, model) {\n\t\tvar _p11 = function () {\n\t\t\tvar _p12 = msg;\n\t\t\tswitch (_p12.ctor) {\n\t\t\t\tcase 'NewJob':\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{action: 'Create New Job'}),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$core$Platform_Cmd$map,\n\t\t\t\t\t\t\t\t_user$project$JobType$JobMsg,\n\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\t\t_user$project$Job$New(model.name)))\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'CloneJob':\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{action: 'Clone Job'}),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$core$Platform_Cmd$map,\n\t\t\t\t\t\t\t\t_user$project$JobType$JobMsg,\n\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(_user$project$Job$Clone))\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'SaveJob':\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{action: 'Save Job'}),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$core$Platform_Cmd$map,\n\t\t\t\t\t\t\t\t_user$project$JobType$JobMsg,\n\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\t\tA2(_user$project$Job$Save, model.name, '')))\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'UpgradeJob':\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{action: 'Upgrade Job'}),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$core$Platform_Cmd$map,\n\t\t\t\t\t\t\t\t_user$project$JobType$JobMsg,\n\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(_user$project$Job$Upgrade))\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'Rename':\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{name: _p12._0}),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]));\n\t\t\t\tcase 'DebugMsg':\n\t\t\t\t\tvar _p13 = A2(_user$project$Util_Debug$update, _p12._0, model.debug);\n\t\t\t\t\tvar newDebug = _p13._0;\n\t\t\t\t\tvar nDbgMsg = _p13._1;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{debug: newDebug}),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(_elm_lang$core$Platform_Cmd$map, _user$project$JobType$DebugMsg, nDbgMsg)\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'JobMsg':\n\t\t\t\t\tvar _p18 = _p12._0;\n\t\t\t\t\tvar _p14 = A2(_user$project$Job$update, _p18, model.job);\n\t\t\t\t\tvar job$ = _p14._0;\n\t\t\t\t\tvar jmsg$ = _p14._1;\n\t\t\t\t\tvar validJobIdNames = A2(_user$project$JobType$newJobIdNames, model, job$);\n\t\t\t\t\tvar newJobNames = A2(\n\t\t\t\t\t\t_elm_lang$core$List$map,\n\t\t\t\t\t\tfunction (_p15) {\n\t\t\t\t\t\t\tvar _p16 = _p15;\n\t\t\t\t\t\t\treturn _p16._1;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalidJobIdNames);\n\t\t\t\t\tvar newOptionsMsgs = function () {\n\t\t\t\t\t\tvar _p17 = _p18;\n\t\t\t\t\t\tswitch (_p17.ctor) {\n\t\t\t\t\t\t\tcase 'SaveSucceed':\n\t\t\t\t\t\t\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\t\t\t_user$project$JobType$ComboMsg(\n\t\t\t\t\t\t\t\t\t\t\t_user$project$ComboBox$NewOptions(newJobNames))),\n\t\t\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\t\t\t_user$project$JobType$StatusMsg(\n\t\t\t\t\t\t\t\t\t\t\t_user$project$Util_Status$Add(\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_user$project$Util_Status$Status,\n\t\t\t\t\t\t\t\t\t\t\t\t\tmodel.action,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Result$Ok(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Job ',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(_elm_lang$core$Basics_ops['++'], model.job.name, ' saved')))))))\n\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tcase 'SaveFail':\n\t\t\t\t\t\t\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\t\t\t_user$project$JobType$StatusMsg(\n\t\t\t\t\t\t\t\t\t\t\t_user$project$Util_Status$Add(\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_user$project$Util_Status$Status,\n\t\t\t\t\t\t\t\t\t\t\t\t\tmodel.action,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Result$Err(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Failed to save Job ',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmodel.job.name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t' : ',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics$toString(_p17._0)))))))))\n\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\treturn _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}();\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{job: job$, jobIdNames: validJobIdNames}),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(_elm_lang$core$Platform_Cmd$map, _user$project$JobType$JobMsg, jmsg$)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\tnewOptionsMsgs));\n\t\t\t\tcase 'ComboMsg':\n\t\t\t\t\treturn A2(_user$project$JobType$updateCombo, _p12._0, model);\n\t\t\t\tcase 'LoadJobs':\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{action: 'Loading Jobs'}),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[_user$project$JobType$loadJobs]));\n\t\t\t\tcase 'LoadJobsFail':\n\t\t\t\t\tvar _p20 = _p12._0;\n\t\t\t\t\tvar _p19 = A2(_elm_lang$core$Debug$log, 'JobType.LoadJobsFail', _p20);\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\t_user$project$JobType$StatusMsg(\n\t\t\t\t\t\t\t\t\t_user$project$Util_Status$Add(\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t_user$project$Util_Status$Status,\n\t\t\t\t\t\t\t\t\t\t\tmodel.action,\n\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Result$Err(\n\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Basics$toString(_p20))))))\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'LoadJobsSucceed':\n\t\t\t\t\tvar _p25 = _p12._0;\n\t\t\t\t\tvar _p21 = function () {\n\t\t\t\t\t\tvar _p22 = _elm_lang$core$List$head(_p25.jobIdNames);\n\t\t\t\t\t\tif (_p22.ctor === 'Nothing') {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t_0: _p25,\n\t\t\t\t\t\t\t\t_1: _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\t\t\t_user$project$JobType$StatusMsg(\n\t\t\t\t\t\t\t\t\t\t\t_user$project$Util_Status$Add(\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_user$project$Util_Status$Status,\n\t\t\t\t\t\t\t\t\t\t\t\t\tmodel.action,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Result$Ok('done')))))\n\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tctor: '_Tuple2',\n\t\t\t\t\t\t\t\t_0: _elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\t\t\t_p25,\n\t\t\t\t\t\t\t\t\t{action: 'Load Job'}),\n\t\t\t\t\t\t\t\t_1: _elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\t\t\t_user$project$JobType$JobMsg(\n\t\t\t\t\t\t\t\t\t\t\tA2(_user$project$Job$Load, _p25.name, _p22._0._0)))\n\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}();\n\t\t\t\t\tvar jobType$ = _p21._0;\n\t\t\t\t\tvar jobLoadMsgs = _p21._1;\n\t\t\t\t\tvar loadedJobNames = A2(\n\t\t\t\t\t\t_elm_lang$core$List$map,\n\t\t\t\t\t\tfunction (_p23) {\n\t\t\t\t\t\t\tvar _p24 = _p23;\n\t\t\t\t\t\t\treturn _p24._1;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t_p25.jobIdNames);\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\tjobType$,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t_elm_lang$core$Basics_ops['++'],\n\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t\t\t\t\t\t_user$project$JobType$ComboMsg(\n\t\t\t\t\t\t\t\t\t\t_user$project$ComboBox$NewOptions(loadedJobNames)))\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\tjobLoadMsgs));\n\t\t\t\tdefault:\n\t\t\t\t\tvar _p26 = A2(_user$project$Util_Status$update, _p12._0, model.status);\n\t\t\t\t\tvar status$ = _p26._0;\n\t\t\t\t\tvar stMsg$ = _p26._1;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{status: status$}),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(_elm_lang$core$Platform_Cmd$map, _user$project$JobType$StatusMsg, stMsg$)\n\t\t\t\t\t\t\t]));\n\t\t\t}\n\t\t}();\n\t\tvar model$ = _p11._0;\n\t\tvar msg$ = _p11._1;\n\t\tvar _p27 = function () {\n\t\t\tvar modelStr = _elm_lang$core$Basics$toString(\n\t\t\t\t{id: model$.id, name: model$.name, jobs: model$.jobIdNames});\n\t\t\treturn A2(\n\t\t\t\t_user$project$Util_Debug$update,\n\t\t\t\t_user$project$Util_Debug$Change(modelStr),\n\t\t\t\tmodel$.debug);\n\t\t}();\n\t\tvar debug$ = _p27._0;\n\t\tvar dbgMsg$ = _p27._1;\n\t\treturn A2(\n\t\t\t_elm_lang$core$Platform_Cmd_ops['!'],\n\t\t\t_elm_lang$core$Native_Utils.update(\n\t\t\t\tmodel$,\n\t\t\t\t{debug: debug$}),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[\n\t\t\t\t\tmsg$,\n\t\t\t\t\tA2(_elm_lang$core$Platform_Cmd$map, _user$project$JobType$DebugMsg, dbgMsg$)\n\t\t\t\t]));\n\t});\nvar _user$project$JobType$putDefaultAndLoadJobs = function () {\n\tvar loadJobsCmd = _user$project$JobType$loadJobs;\n\treturn _elm_lang$core$Platform_Cmd$batch(\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\t_shmookey$cmd_extra$Cmd_Extra$message(\n\t\t\t\t_user$project$JobType$JobMsg(_user$project$Job$SaveDefault)),\n\t\t\t\t_user$project$JobType$loadJobs\n\t\t\t]));\n}();\nvar _user$project$JobType$init = {\n\tctor: '_Tuple2',\n\t_0: A8(\n\t\t_user$project$JobType$Model,\n\t\t'rsync',\n\t\t'RSync',\n\t\t_user$project$JobType$defaultJob,\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\t_user$project$JobType$emptyComboBox,\n\t\t'Load existing Jobs',\n\t\t_user$project$Util_Status$init,\n\t\t_user$project$Util_Debug$init),\n\t_1: _user$project$JobType$putDefaultAndLoadJobs\n};\nvar _user$project$JobType$LoadJobs = {ctor: 'LoadJobs'};\nvar _user$project$JobType$Rename = function (a) {\n\treturn {ctor: 'Rename', _0: a};\n};\nvar _user$project$JobType$UpgradeJob = {ctor: 'UpgradeJob'};\nvar _user$project$JobType$SaveJob = {ctor: 'SaveJob'};\nvar _user$project$JobType$CloneJob = {ctor: 'CloneJob'};\nvar _user$project$JobType$NewJob = {ctor: 'NewJob'};\nvar _user$project$JobType$view = function (model) {\n\treturn A2(\n\t\t_elm_lang$html$Html$div,\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t_elm_lang$html$Html$h2,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[]),\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t_elm_lang$html$Html$text(model.name)\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t_elm_lang$html$Html$table,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[]),\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$button,\n\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_Events$onClick(_user$project$JobType$NewJob)\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text('New')\n\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$button,\n\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_Events$onClick(_user$project$JobType$CloneJob)\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text('Clone')\n\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$button,\n\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_Events$onClick(_user$project$JobType$SaveJob)\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text('Save')\n\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$button,\n\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html_Events$onClick(_user$project$JobType$UpgradeJob)\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t_elm_lang$html$Html$text('Upgrade')\n\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t_elm_lang$html$Html_App$map,\n\t\t\t\t_user$project$JobType$StatusMsg,\n\t\t\t\t_user$project$Util_Status$view(model.status)),\n\t\t\t\tA2(\n\t\t\t\t_elm_lang$html$Html_App$map,\n\t\t\t\t_user$project$JobType$ComboMsg,\n\t\t\t\tA4(\n\t\t\t\t\t_user$project$ComboBox$view,\n\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t['Job']),\n\t\t\t\t\t'--',\n\t\t\t\t\t_user$project$ComboBox$Select,\n\t\t\t\t\tmodel.combo)),\n\t\t\t\tA2(\n\t\t\t\t_elm_lang$html$Html_App$map,\n\t\t\t\t_user$project$JobType$JobMsg,\n\t\t\t\tA2(_user$project$Job$view, model.name, model.job)),\n\t\t\t\tA2(\n\t\t\t\t_elm_lang$html$Html_App$map,\n\t\t\t\t_user$project$JobType$DebugMsg,\n\t\t\t\tA2(_user$project$Util_Debug$view, 'JobType', model.debug))\n\t\t\t]));\n};\nvar _user$project$Main$subscriptions = function (model) {\n\treturn _elm_lang$core$Platform_Sub$none;\n};\nvar _user$project$Main$Model = F3(\n\tfunction (a, b, c) {\n\t\treturn {output: a, debug: b, jobType: c};\n\t});\nvar _user$project$Main$ToggleDebug = function (a) {\n\treturn {ctor: 'ToggleDebug', _0: a};\n};\nvar _user$project$Main$JobTypeMsg = function (a) {\n\treturn {ctor: 'JobTypeMsg', _0: a};\n};\nvar _user$project$Main$init = function () {\n\tvar _p0 = _user$project$JobType$init;\n\tvar jobType = _p0._0;\n\tvar jtCmd = _p0._1;\n\treturn {\n\t\tctor: '_Tuple2',\n\t\t_0: A3(_user$project$Main$Model, '', false, jobType),\n\t\t_1: A2(_elm_lang$core$Platform_Cmd$map, _user$project$Main$JobTypeMsg, jtCmd)\n\t};\n}();\nvar _user$project$Main$update = F2(\n\tfunction (msg, model) {\n\t\tvar _p1 = msg;\n\t\tif (_p1.ctor === 'JobTypeMsg') {\n\t\t\tvar _p2 = A2(_user$project$JobType$update, _p1._0, model.jobType);\n\t\t\tvar newJT = _p2._0;\n\t\t\tvar cmd = _p2._1;\n\t\t\treturn {\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: _elm_lang$core$Native_Utils.update(\n\t\t\t\t\tmodel,\n\t\t\t\t\t{jobType: newJT}),\n\t\t\t\t_1: A2(_elm_lang$core$Platform_Cmd$map, _user$project$Main$JobTypeMsg, cmd)\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tctor: '_Tuple2',\n\t\t\t\t_0: _elm_lang$core$Native_Utils.update(\n\t\t\t\t\tmodel,\n\t\t\t\t\t{debug: _p1._0}),\n\t\t\t\t_1: _elm_lang$core$Platform_Cmd$none\n\t\t\t};\n\t\t}\n\t});\nvar _user$project$Main$view = function (model) {\n\tvar dbg = A2(\n\t\t_elm_lang$html$Html$div,\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]));\n\tvar wTreeLI = function (w) {\n\t\treturn A2(\n\t\t\t_elm_lang$html$Html$div,\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]),\n\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t[]));\n\t};\n\tvar jt = _user$project$JobType$view(model.jobType);\n\treturn A2(\n\t\t_elm_lang$html$Html$div,\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[]),\n\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t_elm_lang$html$Html$table,\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[]),\n\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t_elm_lang$html$Html$tr,\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t_elm_lang$html$Html$td,\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t_elm_lang$core$Native_List.fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(_elm_lang$html$Html_App$map, _user$project$Main$JobTypeMsg, jt)\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t])),\n\t\t\t\tdbg\n\t\t\t]));\n};\nvar _user$project$Main$main = {\n\tmain: _elm_lang$html$Html_App$program(\n\t\t{init: _user$project$Main$init, view: _user$project$Main$view, update: _user$project$Main$update, subscriptions: _user$project$Main$subscriptions})\n};\nvar Elm = {};\nElm['Main'] = Elm['Main'] || {};\n_elm_lang$core$Native_Platform.addPublicModule(Elm['Main'], 'Main', typeof _user$project$Main$main === 'undefined' ? null : _user$project$Main$main);\n\nif (typeof define === \"function\" && define['amd'])\n{\n define([], function() { return Elm; });\n return;\n}\n\nif (typeof module === \"object\")\n{\n module['exports'] = Elm;\n return;\n}\n\nvar globalElm = this['Elm'];\nif (typeof globalElm === \"undefined\")\n{\n this['Elm'] = Elm;\n return;\n}\n\nfor (var publicModule in Elm)\n{\n if (publicModule in globalElm)\n {\n throw new Error('There are two Elm modules called `' + publicModule + '` on this page! Rename one of them.');\n }\n globalElm[publicModule] = Elm[publicModule];\n}\n\n}).call(this);\n</script></head><body><script type=\"text/javascript\">Elm.Main.fullscreen()</script></body></html>\n")13//line Main.wui.ego:1170814_, _ = io.WriteString(w, "\n")15return nil16}...

Full Screen

Full Screen

collect.go

Source:collect.go Github

copy

Full Screen

...808func Pop[V any](subject []V) (response []V, item V) {809 if subject == nil {810 return response, item811 }812 subLen := len(subject)813 if subLen == 0 {814 return []V{}, item815 } else if subLen == 1 {816 return []V{}, subject[0]817 }818 return subject[:subLen-1], subject[subLen-1]819}820// Prepend [V any]821// @Description:Push an item onto the beginning of the collection.822// @param subject823// @param item824// @return response825func Prepend[V any](subject []V, item ...V) (response []V) {826 return append(item, subject...)827}828// Pull [K comparable, V any]829// @Description:Get and remove an item from the collection.830// @param subject831// @param key832// @return response833// @return item834func Pull[K comparable, V any](subject map[K]V, key K) (response map[K]V, item V) {835 if subject == nil {836 return response, item837 }838 item = subject[key]839 delete(subject, key)840 return subject, item841}842// Push [V any]843// @Description:Push one or more items onto the end of the collection.844// @param subject845// @param item846// @return response847func Push[V any](subject []V, item ...V) (response []V) {848 return append(subject, item...)849}850// Put [K comparable, V any]851// @Description:Put an item in the collection by key.852// @param subject853// @param key854// @param item855// @return response856func Put[K comparable, V any](subject map[K]V, key K, item V) (response map[K]V) {857 if subject == nil {858 response = map[K]V{}859 } else {860 response = subject861 }862 response[key] = item863 return response864}865// IsEmpty [V any]866// @Description:Determine if the collection is empty or not.867// @param subject868// @return bool869func IsEmpty[V any](subject V) bool {870 switch reflect.TypeOf(subject).Kind() {871 case reflect.String:872 if TypeTransformOrFail[V, string](subject) == "" {873 return true874 }875 case reflect.Int:876 if TypeTransformOrFail[V, int](subject) == 0 {877 return true878 }879 case reflect.Float64:880 if TypeTransformOrFail[V, float64](subject) == 0 {881 return true882 }883 case reflect.Bool:884 if TypeTransformOrFail[V, bool](subject) == false {885 return true886 }887 default:888 panic(exceptions.NewInvalidParamError(889 fmt.Sprintf(890 "type transform error, please check code(is empty method)",891 ),892 ))893 }894 return false895}896// IsEmptySlice [V any]897// @Description:Determine if the collection is empty or not.898// @param subject899// @return bool900func IsEmptySlice[V any](subject []V) bool {901 if subject == nil || len(subject) == 0 {902 return true903 }904 return false905}906// IsEmptyMap [K comparable, V any]907// @Description: Determine if the collection is empty or not.908// @param subject909// @return bool910func IsEmptyMap[K comparable, V any](subject map[K]V) bool {911 if subject == nil || len(subject) == 0 {912 return true913 }914 return false915}916// IsNotEmpty [V any]917// @Description: Determine if the collection is not empty.918// @param subject919// @return bool920func IsNotEmpty[V any](subject V) bool {921 return !IsEmpty(subject)922}923// IsNotEmptySlice [V any]924// @Description:925// @param subject926// @return bool927func IsNotEmptySlice[V any](subject []V) bool {928 return !IsEmptySlice(subject)929}930// IsNotEmptyMap [K comparable, V any]931// @Description:932// @param subject933// @return bool934func IsNotEmptyMap[K comparable, V any](subject map[K]V) bool {935 return !IsEmptyMap(subject)936}937// Implode [V any]938// @Description:939// @param subject940// @param callback941// @param glue942// @return response943func Implode[V any](subject []V, callback func(int, V) string, glue string) (response string) {944 if subject == nil {945 return response946 }947 stringSlice := MapSlice(subject, func(index int, item V) string {948 return callback(index, item)949 })950 return strings.Join(stringSlice, glue)951}952// KeyBy [K comparable, V any]953// @Description:Key an associative using a callback.954// @param subject955// @param callback956// @return response957func KeyBy[K comparable, V any](subject []V, callback func(int, V) K) (response map[K]V) {958 if subject == nil {959 return response960 }961 response = make(map[K]V, len(subject))962 for index, item := range subject {963 response[callback(index, item)] = item964 }965 return response966}967// Merge [K comparable, V any]968// @Description: map merge969// @param arg970func Merge[K comparable, V any](subject ...map[K]V) (response map[K]V) {971 if subject == nil {972 return response973 }974 response = map[K]V{}975 for _, item := range subject {976 for key, value := range item {977 response[key] = value978 }979 }980 return response981}982// MergeRecursive [K comparable, V any]983// @Description:Recursively merge the collection with the given items.984// @param subject985// @return response986func MergeRecursive[K comparable, V any](subject ...map[K][]V) (response map[K][]V) {987 if subject == nil {988 return response989 }990 response = map[K][]V{}991 for _, item := range subject {992 for key, value := range item {993 response[key] = append(response[key], value...)994 }995 }996 return response997}998// Skip [V any]999// @Description: Skip the first {$count} items.1000// @param subject1001// @param skip1002// @return response1003func Skip[V any](subject []V, offset int) (response []V) {1004 if subject == nil {1005 return response1006 }1007 if offset > len(subject) {1008 return []V{}1009 }1010 return subject[offset:]1011}1012// Slice [V any]1013// @Description:Slice the underlying collection array.1014// @param subject1015// @param offset1016// @param length1017// @return response1018func Slice[V any](subject []V, offset int, length int) (response []V) {1019 if subject == nil {1020 return response1021 }1022 subLen := len(subject)1023 if offset > subLen || offset+subLen < 0 {1024 return []V{}1025 }1026 if offset < 0 {1027 offset += subLen1028 }1029 last := offset + length1030 if last > subLen {1031 last = subLen1032 }1033 return subject[offset:last]1034}1035// Nth [V any]1036// @Description:Create a new collection consisting of every n-th element.1037// @param subject1038// @param offset1039// @return response1040func Nth[V any](subject []V, offset int) (response []V) {1041 if subject == nil {1042 return response1043 }1044 response = make([]V, len(subject)/offset)1045 resLen := len(response)1046 for i := 0; i < resLen; i++ {1047 response[i] = subject[i*offset]1048 }1049 return response1050}1051// Pad [V any]1052// @Description: Pad collection to the specified length with a value.1053// @param subject1054// @param size1055// @param item1056// @return response1057func Pad[V any](subject []V, size int, item V) (response []V) {1058 isAfter := true1059 if size < 0 {1060 isAfter = false1061 size = -size1062 }1063 if len(subject) >= size {1064 return subject1065 }1066 result := make([]V, size-len(subject))1067 for i := size - len(subject) - 1; i >= 0; i-- {1068 result[i] = item1069 }1070 if isAfter {1071 return append(subject, result...)1072 }1073 return append(result, subject...)1074}1075// Partition [V any]1076// @Description:Partition the collection into two arrays using the given callback .1077// @param subject1078// @param callback1079// @return pass1080// @return fail1081func Partition[V any](subject []V, callback func(int, V) bool) (pass []V, fail []V) {1082 if subject == nil {1083 return pass, fail1084 }1085 pass = []V{}1086 fail = []V{}1087 for index, item := range subject {1088 if callback(index, item) {1089 pass = append(pass, item)1090 } else {1091 fail = append(fail, item)1092 }1093 }1094 return pass, fail1095}1096// Pluck [K comparable, V any]1097// @Description:Get the values of a given key.1098// @param subject1099// @param key1100// @return response1101func Pluck[K comparable, V any](subject []map[K]V, key K) (response []V) {1102 if subject == nil {1103 return response1104 }1105 for _, items := range subject {1106 if item, ok := items[key]; ok {1107 response = append(response, item)1108 }1109 }1110 return response1111}1112// Range1113// @Description:Create a collection with the given range.1114// @param from1115// @param to1116// @return response1117func Range(from, to int) (response []int) {1118 response = make([]int, to-from+1)1119 for i := from; i <= to; i++ {1120 response[i-from] = i1121 }1122 return response1123}1124// ForPage [V any]1125// @Description:"Paginate" the collection by slicing it into a smaller collection.1126// @param subject1127// @param page1128// @param perPage1129// @return response1130func ForPage[V any](subject []V, page, perPage int) (response []V) {1131 if subject == nil {1132 return response1133 }1134 offset := Max([]int{0, (page - 1) * perPage})1135 return Slice(subject, offset, perPage)1136}1137// GroupBy [K comparable, V any]1138// @Description:Group an associative array by a field or using a callback.1139// @param subject1140// @param callback1141// @return response1142func GroupBy[K comparable, V any](subject []V, callback func(int, V) K) (response map[K][]V) {1143 if subject == nil {1144 return response1145 }1146 response = map[K][]V{}1147 for index, item := range subject {1148 tmpKey := callback(index, item)1149 response[tmpKey] = append(response[tmpKey], item)1150 }1151 return response1152}1153// Shuffle [V any]1154// @Description:Shuffle the given array and return the result.1155// @param slices1156// @return response1157func Shuffle[V any](subject []V) (response []V) {1158 if subject == nil {1159 return response1160 }1161 rand.Seed(time.Now().UnixNano())1162 rand.Shuffle(len(subject), func(i, j int) {1163 subject[i], subject[j] = subject[j], subject[i]1164 })1165 return subject1166}1167// Random [V any]1168// @Description:Get a specified number of items randomly from the collection.1169// @param subject1170// @param number1171// @return response1172func Random[V any](subject []V, number int) (response []V) {1173 if number > len(subject) {1174 number = len(subject)1175 }1176 response = Shuffle(subject)[:number]1177 return response1178}1179// Reduce [V, S any]1180// @Description: Reduce the collection to a single value.1181// @param subject1182// @param callback1183// @return response1184func Reduce[V, S any](subject []V, callback func(S, int, V) S) (response S) {1185 if subject == nil {1186 return response1187 }1188 for index, item := range subject {1189 response = callback(response, index, item)1190 }1191 return response1192}1193// Reverse [K, V comparable]1194// @Description:Reverse items order.1195// @param subject1196// @return response1197func Reverse[K, V comparable](subject map[K]V) (response map[V]K) {1198 if subject == nil {1199 return response1200 }1201 response = make(map[V]K, len(subject))1202 for key, item := range subject {1203 response[item] = key1204 }1205 return response1206}1207// SearchSlice [V comparable]1208// @Description: Search the collection for a given value and return the corresponding key if successful.1209// @param subject1210// @param search1211// @return response1212// @return ok1213func SearchSlice[V comparable](subject []V, search V) (response int, ok bool) {1214 if subject == nil {1215 return response, ok1216 }1217 for index, item := range subject {1218 if item == search {1219 return index, true1220 }1221 }1222 return response, false1223}1224// SearchMap [K, V comparable]1225// @Description:Search the collection for a given value and return the corresponding key if successful.1226// @param subject1227// @param search1228// @return response1229// @return ok1230func SearchMap[K, V comparable](subject map[K]V, search V) (response K, ok bool) {1231 if subject == nil {1232 return response, ok1233 }1234 for key, item := range subject {1235 if item == search {1236 return key, true1237 }1238 }1239 return response, false1240}1241// Shift [V any]1242// @Description:Search the collection for a given value and return the corresponding key if successful.1243// @param subject1244// @return response1245// @return item1246func Shift[V any](subject []V) (response []V, item V) {1247 if subject == nil {1248 return response, item1249 }1250 subLen := len(subject)1251 if subLen == 0 {1252 return []V{}, item1253 } else if subLen == 1 {1254 return []V{}, subject[0]1255 }1256 return subject[1:subLen], subject[0]1257}1258// Times [V any]1259// @Description:Create a new collection by invoking the callback a given amount of times.1260// @param times1261// @param callback1262// @return response1263func Times[V any](times int, callback func(index int) V) (response []V) {1264 if times <= 0 {1265 return response1266 }1267 response = make([]V, times)1268 for i := 1; i <= times; i++ {1269 response[i-1] = callback(i)1270 }1271 return response1272}1273// Sliding [V any]1274// @Description: Create chunks representing a "sliding window" view of the items in the collection.1275// @param subject1276// @param size1277// @param step1278// @return response1279func Sliding[V any](subject []V, size, step int) (response [][]V) {1280 if subject == nil || len(subject)-size < 0 {1281 return response1282 }1283 chunks := ((len(subject) - size) / step) + 11284 return Times(chunks, func(index int) []V {1285 return Slice(subject, (index-1)*step, size)1286 })1287}1288// Splice [V any]1289// @Description:Splice a portion of the underlying collection array.1290// @param subject1291// @param offset1292// @param length1293// @return response1294// @return other1295func Splice[V any](subject []V, offset, length int) (response []V, other []V) {1296 if subject == nil {1297 return response, other1298 }1299 subLen := len(subject)1300 if offset > subLen || offset+subLen < 0 {1301 return []V{}, subject1302 }1303 if offset < 0 {1304 offset += subLen1305 }1306 last := offset + length1307 if last > subLen {1308 last = subLen1309 }1310 response = []V{}1311 other = []V{}1312 for i := 0; i < subLen; i++ {1313 if i >= offset && i < last {1314 response = append(response, subject[i])1315 } else {1316 other = append(other, subject[i])1317 }1318 }1319 return response, other1320}1321// Split [V any]1322// @Description:Split a collection into a certain number of groups, and fill the first groups completely.1323// @param subject1324// @param numberOfGroups1325// @return response1326func Split[V any](subject []V, numberOfGroups int) (response [][]V) {...

Full Screen

Full Screen

slice.go

Source:slice.go Github

copy

Full Screen

...18func (f Slice) isFlat() bool {19 t := reflect.TypeOf(f.Slice).Elem()20 return t != sliceType && t.Kind() != reflect.Interface21}22func subLen(v reflect.Value) int {23 if v.Kind() == reflect.Interface {24 v = v.Elem()25 }26 if s, ok := v.Interface().(Slice); ok {27 return s.len()28 }29 return 130}31func (f Slice) len() int {32 fv := reflect.ValueOf(f.Slice)33 l := 034 if fv.Kind() == reflect.Map {35 if f.isFlat() {36 return fv.Len() * 237 }38 tdutil.MapEach(fv, func(k, v reflect.Value) bool {39 l += 1 + subLen(v)40 return true41 })42 return l43 }44 fvLen := fv.Len()45 if f.isFlat() {46 return fvLen47 }48 for i := 0; i < fvLen; i++ {49 l += subLen(fv.Index(i))50 }51 return l52}53func subAppendValuesTo(sv []reflect.Value, v reflect.Value) []reflect.Value {54 if v.Kind() == reflect.Interface {55 v = v.Elem()56 }57 if s, ok := v.Interface().(Slice); ok {58 return s.appendValuesTo(sv)59 }60 return append(sv, v)61}62func (f Slice) appendValuesTo(sv []reflect.Value) []reflect.Value {63 fv := reflect.ValueOf(f.Slice)...

Full Screen

Full Screen

subLen

Using AI Code Generation

copy

Full Screen

1import (2type flat struct {3}4func (f flat) area() float64 {5}6func (f flat) perim() float64 {7 return 2 * (f.length + f.breadth)8}9func (f flat) subLen() float64 {10 return math.Sqrt(f.length*f.length - f.breadth*f.breadth)11}12func main() {13 f := flat{3, 4}14 fmt.Println("Area of the flat is:", f.area())15 fmt.Println("Perimeter of the flat is:", f.perim())16 fmt.Println("Sub length of the flat is:", f.subLen())17}18import (19type flat struct {20}21func (f flat) area() float64 {22}23func (f flat) perim() float64 {24 return 2 * (f.length + f.breadth)25}26func (f flat) subLen() float64 {27 return math.Sqrt(f.length*f.length - f.breadth*f.breadth)28}29func (f flat) diagLen() float64 {30 return math.Sqrt(f.length*f.length + f.breadth*f.breadth)31}32func main() {33 f := flat{3, 4}34 fmt.Println("Area of the flat is:", f.area())35 fmt.Println("Perimeter of the flat is:", f.perim())36 fmt.Println("Sub length of the flat is:", f.subLen())37 fmt.Println("Diagonal length of the flat is:", f.diagLen())38}

Full Screen

Full Screen

subLen

Using AI Code Generation

copy

Full Screen

1import (2type flat struct {3}4func (f flat) subLen() float64 {5 return math.Sqrt(f.length*f.length + f.breadth*f.breadth)6}7func main() {8 f := flat{3, 4}9 fmt.Println("Length of diagonal is", f.subLen())10}11import (12type flat struct {13}14func (f *flat) subLen() float64 {15 return math.Sqrt(f.length*f.length + f.breadth*f.breadth)16}17func main() {18 f := flat{3, 4}19 fmt.Println("Length of diagonal is", f.subLen())20}21import

Full Screen

Full Screen

subLen

Using AI Code Generation

copy

Full Screen

1import "fmt"2func main() {3 fmt.Println("Area of flat is: ", f.area())4 fmt.Println("Length of flat is: ", f.subLen())5}6import "fmt"7func main() {8 fmt.Println("Area of flat is: ", f.area())9}10import "fmt"11func main() {12 fmt.Println("Area of flat is: ", f.area())13}14import "fmt"15func main() {16 fmt.Println("Area of flat is: ", f.area())17 fmt.Println("Length of flat is: ", f.subLen())18}19import "fmt"20func main() {21 fmt.Println("Area of flat is: ", f.area())22}23import "fmt"24func main() {25 fmt.Println("Area of flat is: ", f.area())26 fmt.Println("Length of flat is: ", f.subLen())27}28import "fmt"29func main() {30 fmt.Println("Area of flat is: ", f.area())31}

Full Screen

Full Screen

subLen

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 fmt.Println("Length of flat:", f.length)4 fmt.Println("Width of flat:", f.width)5 fmt.Println("Sub Length of flat:", f.subLen())6}

Full Screen

Full Screen

subLen

Using AI Code Generation

copy

Full Screen

1import "fmt"2func main() {3 f := flat{10, 20}4 fmt.Println("Sub:", f.subLen())5}6import "fmt"7func main() {8 f := flat{10, 20}9 fmt.Println("Sub:", f.subLen())10}11import "fmt"12func main() {13 f := flat{10, 20}14 fmt.Println("Sub:", f.subLen())15}16import "fmt"17import "github.com/ashish-singh-au3/go-tutorial/structs/flat"18func main() {19 f := flat.Flat{10, 20}20 fmt.Println("Sub:", f.SubLen())21}22import "fmt"23import "github.com/ashish-singh-au3/go-tutorial/structs/flat"24func main() {25 f := flat.Flat{10, 20}26 fmt.Println("Sub:", f.SubLen())27}28func (v *Vertex) Scale(f float64) {29}30func main() {31 v := Vertex{3, 4}32 v.Scale(10)

Full Screen

Full Screen

subLen

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 f := flat{length: 50, breadth: 40}4 f.subLen(10)5 fmt.Println("Length after subtraction is", f.length)6}

Full Screen

Full Screen

subLen

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 f := flat.NewFlat(10, 12)4 fmt.Println("length of flat is ", f.SubLen())5}6import (7func main() {8 f := flat.NewFlat(10, 12)9 fmt.Println("length of flat is ", f.SubLen())10}11import (12func main() {13 f := flat.NewFlat(10, 12)14 fmt.Println("length of flat is ", f.SubLen())15}

Full Screen

Full Screen

subLen

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 f.SubLen(2)4 fmt.Println(f)5}6import (7func main() {8 f.SubLen(2)9 fmt.Println(f)10}11import (12func main() {13 f.SubLen(2)14 fmt.Println(f)15}16import (17func main() {18 f.SubLen(2)19 fmt.Println(f)20}21import (22func main() {23 f.SubLen(2)24 fmt.Println(f)25}26import (27func main() {28 f.SubLen(2)29 fmt.Println(f)30}31import (32func main() {33 f.SubLen(2)34 fmt.Println(f)35}36import (37func main() {38 f.SubLen(2)39 fmt.Println(f)40}41import (42func main() {43 f.SubLen(2)

Full Screen

Full Screen

subLen

Using AI Code Generation

copy

Full Screen

1import "fmt"2func main() {3 f := flat{length: 20, breadth: 30}4 fmt.Println("length of flat is", f.subLen())5}6import "fmt"7type flat struct {8}9func (f flat) area() int {10}11func (f flat) area(discount int) int {12 return (f.length * f.breadth) - discount13}14func main() {15 f := flat{length: 20, breadth: 30}16 fmt.Println("area of flat is", f.area())17 fmt.Println("area of flat with discount is", f.area(100))18}19import "fmt"20type flat struct {21}22func (f flat) area() int {23}24func (f flat) area(discount int) int {25 return (f.length * f.breadth) - discount26}

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Go-testdeep automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful