From 53abd879e62242576a9e1c903fad9668fa36c763 Mon Sep 17 00:00:00 2001 From: andre alves garzia Date: Wed, 19 Sep 2018 00:18:19 +0100 Subject: [PATCH 1/4] upgrading --- libraries/aagRemoteError.livecodescript | 1 + web-modules/lexicon/.gitignore | 2 +- web-modules/lexicon/build/bundle.js | 9839 +++++++++++++++++++ web-modules/lexicon/build/elm-package.json | 15 + web-modules/lexicon/build/index.html | 31 + web-modules/lexicon/build/index.js | 77 + web-modules/lexicon/build/main.css | 15 + web-modules/lexicon/build/normalize.css | 341 + web-modules/lexicon/build/test.html | 30 + web-modules/lexicon/build/wordlist.js | 2 + web-modules/lexicon/elm-package.json | 24 - web-modules/lexicon/elm-package.old.json | 15 + web-modules/lexicon/elm.json | 35 + web-modules/lexicon/index.html | 9858 ++++++++++++++++++++ web-modules/lexicon/src/Lexicon.elm | 424 +- web-modules/lexicon/src/Main.elm | 44 +- web-modules/lexicon/src/Theme/Colors.elm | 96 +- web-modules/lexicon/src/Theme/Elements.elm | 486 +- 18 files changed, 20804 insertions(+), 531 deletions(-) create mode 100644 libraries/aagRemoteError.livecodescript create mode 100644 web-modules/lexicon/build/bundle.js create mode 100644 web-modules/lexicon/build/elm-package.json create mode 100644 web-modules/lexicon/build/index.html create mode 100644 web-modules/lexicon/build/index.js create mode 100644 web-modules/lexicon/build/main.css create mode 100644 web-modules/lexicon/build/normalize.css create mode 100644 web-modules/lexicon/build/test.html create mode 100644 web-modules/lexicon/build/wordlist.js delete mode 100755 web-modules/lexicon/elm-package.json create mode 100644 web-modules/lexicon/elm-package.old.json create mode 100644 web-modules/lexicon/elm.json create mode 100644 web-modules/lexicon/index.html diff --git a/libraries/aagRemoteError.livecodescript b/libraries/aagRemoteError.livecodescript new file mode 100644 index 00000000..4ece73a5 --- /dev/null +++ b/libraries/aagRemoteError.livecodescript @@ -0,0 +1 @@ +script "aagRemoteError" diff --git a/web-modules/lexicon/.gitignore b/web-modules/lexicon/.gitignore index e7e7f129..6e65e7d8 100755 --- a/web-modules/lexicon/.gitignore +++ b/web-modules/lexicon/.gitignore @@ -1,5 +1,5 @@ # Distribution -build/ +# build/ # elm-package generated files elm-stuff diff --git a/web-modules/lexicon/build/bundle.js b/web-modules/lexicon/build/bundle.js new file mode 100644 index 00000000..1cce3566 --- /dev/null +++ b/web-modules/lexicon/build/bundle.js @@ -0,0 +1,9839 @@ +(function(scope){ +'use strict'; + +function F(arity, fun, wrapper) { + wrapper.a = arity; + wrapper.f = fun; + return wrapper; +} + +function F2(fun) { + return F(2, fun, function(a) { return function(b) { return fun(a,b); }; }) +} +function F3(fun) { + return F(3, fun, function(a) { + return function(b) { return function(c) { return fun(a, b, c); }; }; + }); +} +function F4(fun) { + return F(4, fun, function(a) { return function(b) { return function(c) { + return function(d) { return fun(a, b, c, d); }; }; }; + }); +} +function F5(fun) { + return F(5, fun, function(a) { return function(b) { return function(c) { + return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; }; + }); +} +function F6(fun) { + return F(6, fun, function(a) { return function(b) { return function(c) { + return function(d) { return function(e) { return function(f) { + return fun(a, b, c, d, e, f); }; }; }; }; }; + }); +} +function F7(fun) { + return F(7, fun, function(a) { return function(b) { return function(c) { + return function(d) { return function(e) { return function(f) { + return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; }; + }); +} +function F8(fun) { + return F(8, fun, function(a) { return function(b) { return function(c) { + return function(d) { return function(e) { return function(f) { + return function(g) { return function(h) { + return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; }; + }); +} +function F9(fun) { + return F(9, fun, function(a) { return function(b) { return function(c) { + return function(d) { return function(e) { return function(f) { + return function(g) { return function(h) { return function(i) { + return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; }; + }); +} + +function A2(fun, a, b) { + return fun.a === 2 ? fun.f(a, b) : fun(a)(b); +} +function A3(fun, a, b, c) { + return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c); +} +function A4(fun, a, b, c, d) { + return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d); +} +function A5(fun, a, b, c, d, e) { + return fun.a === 5 ? fun.f(a, b, c, d, e) : fun(a)(b)(c)(d)(e); +} +function A6(fun, a, b, c, d, e, f) { + return fun.a === 6 ? fun.f(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f); +} +function A7(fun, a, b, c, d, e, f, g) { + return fun.a === 7 ? fun.f(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g); +} +function A8(fun, a, b, c, d, e, f, g, h) { + return fun.a === 8 ? fun.f(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h); +} +function A9(fun, a, b, c, d, e, f, g, h, i) { + return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i); +} + +console.warn('Compiled in DEV mode. Follow the advice at https://elm-lang.org/0.19.0/optimize for better performance and smaller assets.'); + + +var _List_Nil_UNUSED = { $: 0 }; +var _List_Nil = { $: '[]' }; + +function _List_Cons_UNUSED(hd, tl) { return { $: 1, a: hd, b: tl }; } +function _List_Cons(hd, tl) { return { $: '::', a: hd, b: tl }; } + + +var _List_cons = F2(_List_Cons); + +function _List_fromArray(arr) +{ + var out = _List_Nil; + for (var i = arr.length; i--; ) + { + out = _List_Cons(arr[i], out); + } + return out; +} + +function _List_toArray(xs) +{ + for (var out = []; xs.b; xs = xs.b) // WHILE_CONS + { + out.push(xs.a); + } + return out; +} + +var _List_map2 = F3(function(f, xs, ys) +{ + for (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES + { + arr.push(A2(f, xs.a, ys.a)); + } + return _List_fromArray(arr); +}); + +var _List_map3 = F4(function(f, xs, ys, zs) +{ + for (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES + { + arr.push(A3(f, xs.a, ys.a, zs.a)); + } + return _List_fromArray(arr); +}); + +var _List_map4 = F5(function(f, ws, xs, ys, zs) +{ + for (var arr = []; ws.b && xs.b && ys.b && zs.b; ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES + { + arr.push(A4(f, ws.a, xs.a, ys.a, zs.a)); + } + return _List_fromArray(arr); +}); + +var _List_map5 = F6(function(f, vs, ws, xs, ys, zs) +{ + for (var arr = []; vs.b && ws.b && xs.b && ys.b && zs.b; vs = vs.b, ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES + { + arr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a)); + } + return _List_fromArray(arr); +}); + +var _List_sortBy = F2(function(f, xs) +{ + return _List_fromArray(_List_toArray(xs).sort(function(a, b) { + return _Utils_cmp(f(a), f(b)); + })); +}); + +var _List_sortWith = F2(function(f, xs) +{ + return _List_fromArray(_List_toArray(xs).sort(function(a, b) { + var ord = A2(f, a, b); + return ord === elm$core$Basics$EQ ? 0 : ord === elm$core$Basics$LT ? -1 : 1; + })); +}); + + + +// EQUALITY + +function _Utils_eq(x, y) +{ + for ( + var pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack); + isEqual && (pair = stack.pop()); + isEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack) + ) + {} + + return isEqual; +} + +function _Utils_eqHelp(x, y, depth, stack) +{ + if (depth > 100) + { + stack.push(_Utils_Tuple2(x,y)); + return true; + } + + if (x === y) + { + return true; + } + + if (typeof x !== 'object' || x === null || y === null) + { + typeof x === 'function' && _Debug_crash(5); + return false; + } + + /**/ + if (x.$ === 'Set_elm_builtin') + { + x = elm$core$Set$toList(x); + y = elm$core$Set$toList(y); + } + if (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin') + { + x = elm$core$Dict$toList(x); + y = elm$core$Dict$toList(y); + } + //*/ + + /**_UNUSED/ + if (x.$ < 0) + { + x = elm$core$Dict$toList(x); + y = elm$core$Dict$toList(y); + } + //*/ + + for (var key in x) + { + if (!_Utils_eqHelp(x[key], y[key], depth + 1, stack)) + { + return false; + } + } + return true; +} + +var _Utils_equal = F2(_Utils_eq); +var _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); }); + + + +// COMPARISONS + +// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on +// the particular integer values assigned to LT, EQ, and GT. + +function _Utils_cmp(x, y, ord) +{ + if (typeof x !== 'object') + { + return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1; + } + + /**/ + if (x instanceof String) + { + var a = x.valueOf(); + var b = y.valueOf(); + return a === b ? 0 : a < b ? -1 : 1; + } + //*/ + + /**_UNUSED/ + if (!x.$) + //*/ + /**/ + if (x.$[0] === '#') + //*/ + { + return (ord = _Utils_cmp(x.a, y.a)) + ? ord + : (ord = _Utils_cmp(x.b, y.b)) + ? ord + : _Utils_cmp(x.c, y.c); + } + + // traverse conses until end of a list or a mismatch + for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES + return ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0); +} + +var _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; }); +var _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; }); +var _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; }); +var _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; }); + +var _Utils_compare = F2(function(x, y) +{ + var n = _Utils_cmp(x, y); + return n < 0 ? elm$core$Basics$LT : n ? elm$core$Basics$GT : elm$core$Basics$EQ; +}); + + +// COMMON VALUES + +var _Utils_Tuple0_UNUSED = 0; +var _Utils_Tuple0 = { $: '#0' }; + +function _Utils_Tuple2_UNUSED(a, b) { return { a: a, b: b }; } +function _Utils_Tuple2(a, b) { return { $: '#2', a: a, b: b }; } + +function _Utils_Tuple3_UNUSED(a, b, c) { return { a: a, b: b, c: c }; } +function _Utils_Tuple3(a, b, c) { return { $: '#3', a: a, b: b, c: c }; } + +function _Utils_chr_UNUSED(c) { return c; } +function _Utils_chr(c) { return new String(c); } + + +// RECORDS + +function _Utils_update(oldRecord, updatedFields) +{ + var newRecord = {}; + + for (var key in oldRecord) + { + newRecord[key] = oldRecord[key]; + } + + for (var key in updatedFields) + { + newRecord[key] = updatedFields[key]; + } + + return newRecord; +} + + +// APPEND + +var _Utils_append = F2(_Utils_ap); + +function _Utils_ap(xs, ys) +{ + // append Strings + if (typeof xs === 'string') + { + return xs + ys; + } + + // append Lists + if (!xs.b) + { + return ys; + } + var root = _List_Cons(xs.a, ys); + xs = xs.b + for (var curr = root; xs.b; xs = xs.b) // WHILE_CONS + { + curr = curr.b = _List_Cons(xs.a, ys); + } + return root; +} + + + +var _JsArray_empty = []; + +function _JsArray_singleton(value) +{ + return [value]; +} + +function _JsArray_length(array) +{ + return array.length; +} + +var _JsArray_initialize = F3(function(size, offset, func) +{ + var result = new Array(size); + + for (var i = 0; i < size; i++) + { + result[i] = func(offset + i); + } + + return result; +}); + +var _JsArray_initializeFromList = F2(function (max, ls) +{ + var result = new Array(max); + + for (var i = 0; i < max && ls.b; i++) + { + result[i] = ls.a; + ls = ls.b; + } + + result.length = i; + return _Utils_Tuple2(result, ls); +}); + +var _JsArray_unsafeGet = F2(function(index, array) +{ + return array[index]; +}); + +var _JsArray_unsafeSet = F3(function(index, value, array) +{ + var length = array.length; + var result = new Array(length); + + for (var i = 0; i < length; i++) + { + result[i] = array[i]; + } + + result[index] = value; + return result; +}); + +var _JsArray_push = F2(function(value, array) +{ + var length = array.length; + var result = new Array(length + 1); + + for (var i = 0; i < length; i++) + { + result[i] = array[i]; + } + + result[length] = value; + return result; +}); + +var _JsArray_foldl = F3(function(func, acc, array) +{ + var length = array.length; + + for (var i = 0; i < length; i++) + { + acc = A2(func, array[i], acc); + } + + return acc; +}); + +var _JsArray_foldr = F3(function(func, acc, array) +{ + for (var i = array.length - 1; i >= 0; i--) + { + acc = A2(func, array[i], acc); + } + + return acc; +}); + +var _JsArray_map = F2(function(func, array) +{ + var length = array.length; + var result = new Array(length); + + for (var i = 0; i < length; i++) + { + result[i] = func(array[i]); + } + + return result; +}); + +var _JsArray_indexedMap = F3(function(func, offset, array) +{ + var length = array.length; + var result = new Array(length); + + for (var i = 0; i < length; i++) + { + result[i] = A2(func, offset + i, array[i]); + } + + return result; +}); + +var _JsArray_slice = F3(function(from, to, array) +{ + return array.slice(from, to); +}); + +var _JsArray_appendN = F3(function(n, dest, source) +{ + var destLen = dest.length; + var itemsToCopy = n - destLen; + + if (itemsToCopy > source.length) + { + itemsToCopy = source.length; + } + + var size = destLen + itemsToCopy; + var result = new Array(size); + + for (var i = 0; i < destLen; i++) + { + result[i] = dest[i]; + } + + for (var i = 0; i < itemsToCopy; i++) + { + result[i + destLen] = source[i]; + } + + return result; +}); + + + +// LOG + +var _Debug_log_UNUSED = F2(function(tag, value) +{ + return value; +}); + +var _Debug_log = F2(function(tag, value) +{ + console.log(tag + ': ' + _Debug_toString(value)); + return value; +}); + + +// TODOS + +function _Debug_todo(moduleName, region) +{ + return function(message) { + _Debug_crash(8, moduleName, region, message); + }; +} + +function _Debug_todoCase(moduleName, region, value) +{ + return function(message) { + _Debug_crash(9, moduleName, region, value, message); + }; +} + + +// TO STRING + +function _Debug_toString_UNUSED(value) +{ + return ''; +} + +function _Debug_toString(value) +{ + return _Debug_toAnsiString(false, value); +} + +function _Debug_toAnsiString(ansi, value) +{ + if (typeof value === 'function') + { + return _Debug_internalColor(ansi, ''); + } + + if (typeof value === 'boolean') + { + return _Debug_ctorColor(ansi, value ? 'True' : 'False'); + } + + if (typeof value === 'number') + { + return _Debug_numberColor(ansi, value + ''); + } + + if (value instanceof String) + { + return _Debug_charColor(ansi, "'" + _Debug_addSlashes(value, true) + "'"); + } + + if (typeof value === 'string') + { + return _Debug_stringColor(ansi, '"' + _Debug_addSlashes(value, false) + '"'); + } + + if (typeof value === 'object' && '$' in value) + { + var tag = value.$; + + if (typeof tag === 'number') + { + return _Debug_internalColor(ansi, ''); + } + + if (tag[0] === '#') + { + var output = []; + for (var k in value) + { + if (k === '$') continue; + output.push(_Debug_toAnsiString(ansi, value[k])); + } + return '(' + output.join(',') + ')'; + } + + if (tag === 'Set_elm_builtin') + { + return _Debug_ctorColor(ansi, 'Set') + + _Debug_fadeColor(ansi, '.fromList') + ' ' + + _Debug_toAnsiString(ansi, elm$core$Set$toList(value)); + } + + if (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin') + { + return _Debug_ctorColor(ansi, 'Dict') + + _Debug_fadeColor(ansi, '.fromList') + ' ' + + _Debug_toAnsiString(ansi, elm$core$Dict$toList(value)); + } + + if (tag === 'Array_elm_builtin') + { + return _Debug_ctorColor(ansi, 'Array') + + _Debug_fadeColor(ansi, '.fromList') + ' ' + + _Debug_toAnsiString(ansi, elm$core$Array$toList(value)); + } + + if (tag === '::' || tag === '[]') + { + var output = '['; + + value.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b) + + for (; value.b; value = value.b) // WHILE_CONS + { + output += ',' + _Debug_toAnsiString(ansi, value.a); + } + return output + ']'; + } + + var output = ''; + for (var i in value) + { + if (i === '$') continue; + var str = _Debug_toAnsiString(ansi, value[i]); + var c0 = str[0]; + var parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0; + output += ' ' + (parenless ? str : '(' + str + ')'); + } + return _Debug_ctorColor(ansi, tag) + output; + } + + if (typeof value === 'object') + { + var output = []; + for (var key in value) + { + var field = key[0] === '_' ? key.slice(1) : key; + output.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key])); + } + if (output.length === 0) + { + return '{}'; + } + return '{ ' + output.join(', ') + ' }'; + } + + return _Debug_internalColor(ansi, ''); +} + +function _Debug_addSlashes(str, isChar) +{ + var s = str + .replace(/\\/g, '\\\\') + .replace(/\n/g, '\\n') + .replace(/\t/g, '\\t') + .replace(/\r/g, '\\r') + .replace(/\v/g, '\\v') + .replace(/\0/g, '\\0'); + + if (isChar) + { + return s.replace(/\'/g, '\\\''); + } + else + { + return s.replace(/\"/g, '\\"'); + } +} + +function _Debug_ctorColor(ansi, string) +{ + return ansi ? '\x1b[96m' + string + '\x1b[0m' : string; +} + +function _Debug_numberColor(ansi, string) +{ + return ansi ? '\x1b[95m' + string + '\x1b[0m' : string; +} + +function _Debug_stringColor(ansi, string) +{ + return ansi ? '\x1b[93m' + string + '\x1b[0m' : string; +} + +function _Debug_charColor(ansi, string) +{ + return ansi ? '\x1b[92m' + string + '\x1b[0m' : string; +} + +function _Debug_fadeColor(ansi, string) +{ + return ansi ? '\x1b[37m' + string + '\x1b[0m' : string; +} + +function _Debug_internalColor(ansi, string) +{ + return ansi ? '\x1b[94m' + string + '\x1b[0m' : string; +} + + + +// CRASH + + +function _Debug_crash_UNUSED(identifier) +{ + throw new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md'); +} + + +function _Debug_crash(identifier, fact1, fact2, fact3, fact4) +{ + switch(identifier) + { + case 0: + throw new Error('What node should I take over? In JavaScript I need something like:\n\n Elm.Main.init({\n node: document.getElementById("elm-node")\n })\n\nYou need to do this with any Browser.sandbox or Browser.element program.'); + + case 1: + throw new Error('Browser.application programs cannot handle URLs like this:\n\n ' + document.location.href + '\n\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.'); + + case 2: + var jsonErrorString = fact1; + throw new Error('Problem with the flags given to your Elm program on initialization.\n\n' + jsonErrorString); + + case 3: + var portName = fact1; + throw new Error('There can only be one port named `' + portName + '`, but your program has multiple.'); + + case 4: + var portName = fact1; + var problem = fact2; + throw new Error('Trying to send an unexpected type of value through port `' + portName + '`:\n' + problem); + + case 5: + throw new Error('Trying to use `(==)` on functions.\nThere is no way to know if functions are "the same" in the Elm sense.\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.'); + + case 6: + var moduleName = fact1; + throw new Error('Your page is loading multiple Elm scripts with a module named ' + moduleName + '. Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!'); + + case 8: + var moduleName = fact1; + var region = fact2; + var message = fact3; + throw new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\n\n' + message); + + case 9: + var moduleName = fact1; + var region = fact2; + var value = fact3; + var message = fact4; + throw new Error( + 'TODO in module `' + moduleName + '` from the `case` expression ' + + _Debug_regionToString(region) + '\n\nIt received the following value:\n\n ' + + _Debug_toString(value).replace('\n', '\n ') + + '\n\nBut the branch that handles it says:\n\n ' + message.replace('\n', '\n ') + ); + + case 10: + throw new Error('Bug in https://github.com/elm/virtual-dom/issues'); + + case 11: + throw new Error('Cannot perform mod 0. Division by zero error.'); + } +} + +function _Debug_regionToString(region) +{ + if (region.start.line === region.end.line) + { + return 'on line ' + region.start.line; + } + return 'on lines ' + region.start.line + ' through ' + region.end.line; +} + + + +// MATH + +var _Basics_add = F2(function(a, b) { return a + b; }); +var _Basics_sub = F2(function(a, b) { return a - b; }); +var _Basics_mul = F2(function(a, b) { return a * b; }); +var _Basics_fdiv = F2(function(a, b) { return a / b; }); +var _Basics_idiv = F2(function(a, b) { return (a / b) | 0; }); +var _Basics_pow = F2(Math.pow); + +var _Basics_remainderBy = F2(function(b, a) { return a % b; }); + +// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf +var _Basics_modBy = F2(function(modulus, x) +{ + var answer = x % modulus; + return modulus === 0 + ? _Debug_crash(11) + : + ((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0)) + ? answer + modulus + : answer; +}); + + +// TRIGONOMETRY + +var _Basics_pi = Math.PI; +var _Basics_e = Math.E; +var _Basics_cos = Math.cos; +var _Basics_sin = Math.sin; +var _Basics_tan = Math.tan; +var _Basics_acos = Math.acos; +var _Basics_asin = Math.asin; +var _Basics_atan = Math.atan; +var _Basics_atan2 = F2(Math.atan2); + + +// MORE MATH + +function _Basics_toFloat(x) { return x; } +function _Basics_truncate(n) { return n | 0; } +function _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; } + +var _Basics_ceiling = Math.ceil; +var _Basics_floor = Math.floor; +var _Basics_round = Math.round; +var _Basics_sqrt = Math.sqrt; +var _Basics_log = Math.log; +var _Basics_isNaN = isNaN; + + +// BOOLEANS + +function _Basics_not(bool) { return !bool; } +var _Basics_and = F2(function(a, b) { return a && b; }); +var _Basics_or = F2(function(a, b) { return a || b; }); +var _Basics_xor = F2(function(a, b) { return a !== b; }); + + + +function _Char_toCode(char) +{ + var code = char.charCodeAt(0); + if (0xD800 <= code && code <= 0xDBFF) + { + return (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000 + } + return code; +} + +function _Char_fromCode(code) +{ + return _Utils_chr( + (code < 0 || 0x10FFFF < code) + ? '\uFFFD' + : + (code <= 0xFFFF) + ? String.fromCharCode(code) + : + (code -= 0x10000, + String.fromCharCode(Math.floor(code / 0x400) + 0xD800) + + + String.fromCharCode(code % 0x400 + 0xDC00) + ) + ); +} + +function _Char_toUpper(char) +{ + return _Utils_chr(char.toUpperCase()); +} + +function _Char_toLower(char) +{ + return _Utils_chr(char.toLowerCase()); +} + +function _Char_toLocaleUpper(char) +{ + return _Utils_chr(char.toLocaleUpperCase()); +} + +function _Char_toLocaleLower(char) +{ + return _Utils_chr(char.toLocaleLowerCase()); +} + + + +var _String_cons = F2(function(chr, str) +{ + return chr + str; +}); + +function _String_uncons(string) +{ + var word = string.charCodeAt(0); + return word + ? elm$core$Maybe$Just( + 0xD800 <= word && word <= 0xDBFF + ? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2)) + : _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1)) + ) + : elm$core$Maybe$Nothing; +} + +var _String_append = F2(function(a, b) +{ + return a + b; +}); + +function _String_length(str) +{ + return str.length; +} + +var _String_map = F2(function(func, string) +{ + var len = string.length; + var array = new Array(len); + var i = 0; + while (i < len) + { + var word = string.charCodeAt(i); + if (0xD800 <= word && word <= 0xDBFF) + { + array[i] = func(_Utils_chr(string[i] + string[i+1])); + i += 2; + continue; + } + array[i] = func(_Utils_chr(string[i])); + i++; + } + return array.join(''); +}); + +var _String_filter = F2(function(isGood, str) +{ + var arr = []; + var len = str.length; + var i = 0; + while (i < len) + { + var char = str[i]; + var word = str.charCodeAt(i); + i++; + if (0xD800 <= word && word <= 0xDBFF) + { + char += str[i]; + i++; + } + + if (isGood(_Utils_chr(char))) + { + arr.push(char); + } + } + return arr.join(''); +}); + +function _String_reverse(str) +{ + var len = str.length; + var arr = new Array(len); + var i = 0; + while (i < len) + { + var word = str.charCodeAt(i); + if (0xD800 <= word && word <= 0xDBFF) + { + arr[len - i] = str[i + 1]; + i++; + arr[len - i] = str[i - 1]; + i++; + } + else + { + arr[len - i] = str[i]; + i++; + } + } + return arr.join(''); +} + +var _String_foldl = F3(function(func, state, string) +{ + var len = string.length; + var i = 0; + while (i < len) + { + var char = string[i]; + var word = string.charCodeAt(i); + i++; + if (0xD800 <= word && word <= 0xDBFF) + { + char += string[i]; + i++; + } + state = A2(func, _Utils_chr(char), state); + } + return state; +}); + +var _String_foldr = F3(function(func, state, string) +{ + var i = string.length; + while (i--) + { + var char = string[i]; + var word = string.charCodeAt(i); + if (0xDC00 <= word && word <= 0xDFFF) + { + i--; + char = string[i] + char; + } + state = A2(func, _Utils_chr(char), state); + } + return state; +}); + +var _String_split = F2(function(sep, str) +{ + return str.split(sep); +}); + +var _String_join = F2(function(sep, strs) +{ + return strs.join(sep); +}); + +var _String_slice = F3(function(start, end, str) { + return str.slice(start, end); +}); + +function _String_trim(str) +{ + return str.trim(); +} + +function _String_trimLeft(str) +{ + return str.replace(/^\s+/, ''); +} + +function _String_trimRight(str) +{ + return str.replace(/\s+$/, ''); +} + +function _String_words(str) +{ + return _List_fromArray(str.trim().split(/\s+/g)); +} + +function _String_lines(str) +{ + return _List_fromArray(str.split(/\r\n|\r|\n/g)); +} + +function _String_toUpper(str) +{ + return str.toUpperCase(); +} + +function _String_toLower(str) +{ + return str.toLowerCase(); +} + +var _String_any = F2(function(isGood, string) +{ + var i = string.length; + while (i--) + { + var char = string[i]; + var word = string.charCodeAt(i); + if (0xDC00 <= word && word <= 0xDFFF) + { + i--; + char = string[i] + char; + } + if (isGood(_Utils_chr(char))) + { + return true; + } + } + return false; +}); + +var _String_all = F2(function(isGood, string) +{ + var i = string.length; + while (i--) + { + var char = string[i]; + var word = string.charCodeAt(i); + if (0xDC00 <= word && word <= 0xDFFF) + { + i--; + char = string[i] + char; + } + if (!isGood(_Utils_chr(char))) + { + return false; + } + } + return true; +}); + +var _String_contains = F2(function(sub, str) +{ + return str.indexOf(sub) > -1; +}); + +var _String_startsWith = F2(function(sub, str) +{ + return str.indexOf(sub) === 0; +}); + +var _String_endsWith = F2(function(sub, str) +{ + return str.length >= sub.length && + str.lastIndexOf(sub) === str.length - sub.length; +}); + +var _String_indexes = F2(function(sub, str) +{ + var subLen = sub.length; + + if (subLen < 1) + { + return _List_Nil; + } + + var i = 0; + var is = []; + + while ((i = str.indexOf(sub, i)) > -1) + { + is.push(i); + i = i + subLen; + } + + return _List_fromArray(is); +}); + + +// TO STRING + +function _String_fromNumber(number) +{ + return number + ''; +} + + +// INT CONVERSIONS + +function _String_toInt(str) +{ + var total = 0; + var code0 = str.charCodeAt(0); + var start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0; + + for (var i = start; i < str.length; ++i) + { + var code = str.charCodeAt(i); + if (code < 0x30 || 0x39 < code) + { + return elm$core$Maybe$Nothing; + } + total = 10 * total + code - 0x30; + } + + return i == start + ? elm$core$Maybe$Nothing + : elm$core$Maybe$Just(code0 == 0x2D ? -total : total); +} + + +// FLOAT CONVERSIONS + +function _String_toFloat(s) +{ + // check if it is a hex, octal, or binary number + if (s.length === 0 || /[\sxbo]/.test(s)) + { + return elm$core$Maybe$Nothing; + } + var n = +s; + // faster isNaN check + return n === n ? elm$core$Maybe$Just(n) : elm$core$Maybe$Nothing; +} + +function _String_fromList(chars) +{ + return _List_toArray(chars).join(''); +} + + + + +/**/ +function _Json_errorToString(error) +{ + return elm$json$Json$Decode$errorToString(error); +} +//*/ + + +// CORE DECODERS + +function _Json_succeed(msg) +{ + return { + $: 0, + a: msg + }; +} + +function _Json_fail(msg) +{ + return { + $: 1, + a: msg + }; +} + +var _Json_decodeInt = { $: 2 }; +var _Json_decodeBool = { $: 3 }; +var _Json_decodeFloat = { $: 4 }; +var _Json_decodeValue = { $: 5 }; +var _Json_decodeString = { $: 6 }; + +function _Json_decodeList(decoder) { return { $: 7, b: decoder }; } +function _Json_decodeArray(decoder) { return { $: 8, b: decoder }; } + +function _Json_decodeNull(value) { return { $: 9, c: value }; } + +var _Json_decodeField = F2(function(field, decoder) +{ + return { + $: 10, + d: field, + b: decoder + }; +}); + +var _Json_decodeIndex = F2(function(index, decoder) +{ + return { + $: 11, + e: index, + b: decoder + }; +}); + +function _Json_decodeKeyValuePairs(decoder) +{ + return { + $: 12, + b: decoder + }; +} + +function _Json_mapMany(f, decoders) +{ + return { + $: 13, + f: f, + g: decoders + }; +} + +var _Json_andThen = F2(function(callback, decoder) +{ + return { + $: 14, + b: decoder, + h: callback + }; +}); + +function _Json_oneOf(decoders) +{ + return { + $: 15, + g: decoders + }; +} + + +// DECODING OBJECTS + +var _Json_map1 = F2(function(f, d1) +{ + return _Json_mapMany(f, [d1]); +}); + +var _Json_map2 = F3(function(f, d1, d2) +{ + return _Json_mapMany(f, [d1, d2]); +}); + +var _Json_map3 = F4(function(f, d1, d2, d3) +{ + return _Json_mapMany(f, [d1, d2, d3]); +}); + +var _Json_map4 = F5(function(f, d1, d2, d3, d4) +{ + return _Json_mapMany(f, [d1, d2, d3, d4]); +}); + +var _Json_map5 = F6(function(f, d1, d2, d3, d4, d5) +{ + return _Json_mapMany(f, [d1, d2, d3, d4, d5]); +}); + +var _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6) +{ + return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]); +}); + +var _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7) +{ + return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]); +}); + +var _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8) +{ + return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]); +}); + + +// DECODE + +var _Json_runOnString = F2(function(decoder, string) +{ + try + { + var value = JSON.parse(string); + return _Json_runHelp(decoder, value); + } + catch (e) + { + return elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string))); + } +}); + +var _Json_run = F2(function(decoder, value) +{ + return _Json_runHelp(decoder, _Json_unwrap(value)); +}); + +function _Json_runHelp(decoder, value) +{ + switch (decoder.$) + { + case 3: + return (typeof value === 'boolean') + ? elm$core$Result$Ok(value) + : _Json_expecting('a BOOL', value); + + case 2: + if (typeof value !== 'number') { + return _Json_expecting('an INT', value); + } + + if (-2147483647 < value && value < 2147483647 && (value | 0) === value) { + return elm$core$Result$Ok(value); + } + + if (isFinite(value) && !(value % 1)) { + return elm$core$Result$Ok(value); + } + + return _Json_expecting('an INT', value); + + case 4: + return (typeof value === 'number') + ? elm$core$Result$Ok(value) + : _Json_expecting('a FLOAT', value); + + case 6: + return (typeof value === 'string') + ? elm$core$Result$Ok(value) + : (value instanceof String) + ? elm$core$Result$Ok(value + '') + : _Json_expecting('a STRING', value); + + case 9: + return (value === null) + ? elm$core$Result$Ok(decoder.c) + : _Json_expecting('null', value); + + case 5: + return elm$core$Result$Ok(_Json_wrap(value)); + + case 7: + if (!Array.isArray(value)) + { + return _Json_expecting('a LIST', value); + } + return _Json_runArrayDecoder(decoder.b, value, _List_fromArray); + + case 8: + if (!Array.isArray(value)) + { + return _Json_expecting('an ARRAY', value); + } + return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray); + + case 10: + var field = decoder.d; + if (typeof value !== 'object' || value === null || !(field in value)) + { + return _Json_expecting('an OBJECT with a field named `' + field + '`', value); + } + var result = _Json_runHelp(decoder.b, value[field]); + return (elm$core$Result$isOk(result)) ? result : elm$core$Result$Err(A2(elm$json$Json$Decode$Field, field, result.a)); + + case 11: + var index = decoder.e; + if (!Array.isArray(value)) + { + return _Json_expecting('an ARRAY', value); + } + if (index >= value.length) + { + return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value); + } + var result = _Json_runHelp(decoder.b, value[index]); + return (elm$core$Result$isOk(result)) ? result : elm$core$Result$Err(A2(elm$json$Json$Decode$Index, index, result.a)); + + case 12: + if (typeof value !== 'object' || value === null || Array.isArray(value)) + { + return _Json_expecting('an OBJECT', value); + } + + var keyValuePairs = _List_Nil; + // TODO test perf of Object.keys and switch when support is good enough + for (var key in value) + { + if (value.hasOwnProperty(key)) + { + var result = _Json_runHelp(decoder.b, value[key]); + if (!elm$core$Result$isOk(result)) + { + return elm$core$Result$Err(A2(elm$json$Json$Decode$Field, key, result.a)); + } + keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs); + } + } + return elm$core$Result$Ok(elm$core$List$reverse(keyValuePairs)); + + case 13: + var answer = decoder.f; + var decoders = decoder.g; + for (var i = 0; i < decoders.length; i++) + { + var result = _Json_runHelp(decoders[i], value); + if (!elm$core$Result$isOk(result)) + { + return result; + } + answer = answer(result.a); + } + return elm$core$Result$Ok(answer); + + case 14: + var result = _Json_runHelp(decoder.b, value); + return (!elm$core$Result$isOk(result)) + ? result + : _Json_runHelp(decoder.h(result.a), value); + + case 15: + var errors = _List_Nil; + for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS + { + var result = _Json_runHelp(temp.a, value); + if (elm$core$Result$isOk(result)) + { + return result; + } + errors = _List_Cons(result.a, errors); + } + return elm$core$Result$Err(elm$json$Json$Decode$OneOf(elm$core$List$reverse(errors))); + + case 1: + return elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value))); + + case 0: + return elm$core$Result$Ok(decoder.a); + } +} + +function _Json_runArrayDecoder(decoder, value, toElmValue) +{ + var len = value.length; + var array = new Array(len); + for (var i = 0; i < len; i++) + { + var result = _Json_runHelp(decoder, value[i]); + if (!elm$core$Result$isOk(result)) + { + return elm$core$Result$Err(A2(elm$json$Json$Decode$Index, i, result.a)); + } + array[i] = result.a; + } + return elm$core$Result$Ok(toElmValue(array)); +} + +function _Json_toElmArray(array) +{ + return A2(elm$core$Array$initialize, array.length, function(i) { return array[i]; }); +} + +function _Json_expecting(type, value) +{ + return elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value))); +} + + +// EQUALITY + +function _Json_equality(x, y) +{ + if (x === y) + { + return true; + } + + if (x.$ !== y.$) + { + return false; + } + + switch (x.$) + { + case 0: + case 1: + return x.a === y.a; + + case 3: + case 2: + case 4: + case 6: + case 5: + return true; + + case 9: + return x.c === y.c; + + case 7: + case 8: + case 12: + return _Json_equality(x.b, y.b); + + case 10: + return x.d === y.d && _Json_equality(x.b, y.b); + + case 11: + return x.e === y.e && _Json_equality(x.b, y.b); + + case 13: + return x.f === y.f && _Json_listEquality(x.g, y.g); + + case 14: + return x.h === y.h && _Json_equality(x.b, y.b); + + case 15: + return _Json_listEquality(x.g, y.g); + } +} + +function _Json_listEquality(aDecoders, bDecoders) +{ + var len = aDecoders.length; + if (len !== bDecoders.length) + { + return false; + } + for (var i = 0; i < len; i++) + { + if (!_Json_equality(aDecoders[i], bDecoders[i])) + { + return false; + } + } + return true; +} + + +// ENCODE + +var _Json_encode = F2(function(indentLevel, value) +{ + return JSON.stringify(_Json_unwrap(value), null, indentLevel) + ''; +}); + +function _Json_wrap(value) { return { $: 0, a: value }; } +function _Json_unwrap(value) { return value.a; } + +function _Json_wrap_UNUSED(value) { return value; } +function _Json_unwrap_UNUSED(value) { return value; } + +function _Json_emptyArray() { return []; } +function _Json_emptyObject() { return {}; } + +var _Json_addField = F3(function(key, value, object) +{ + object[key] = _Json_unwrap(value); + return object; +}); + +function _Json_addEntry(func) +{ + return F2(function(entry, array) + { + array.push(_Json_unwrap(func(entry))); + return array; + }); +} + +var _Json_encodeNull = _Json_wrap(null); + + + +// TASKS + +function _Scheduler_succeed(value) +{ + return { + $: 0, + a: value + }; +} + +function _Scheduler_fail(error) +{ + return { + $: 1, + a: error + }; +} + +function _Scheduler_binding(callback) +{ + return { + $: 2, + b: callback, + c: null + }; +} + +var _Scheduler_andThen = F2(function(callback, task) +{ + return { + $: 3, + b: callback, + d: task + }; +}); + +var _Scheduler_onError = F2(function(callback, task) +{ + return { + $: 4, + b: callback, + d: task + }; +}); + +function _Scheduler_receive(callback) +{ + return { + $: 5, + b: callback + }; +} + + +// PROCESSES + +var _Scheduler_guid = 0; + +function _Scheduler_rawSpawn(task) +{ + var proc = { + $: 0, + e: _Scheduler_guid++, + f: task, + g: null, + h: [] + }; + + _Scheduler_enqueue(proc); + + return proc; +} + +function _Scheduler_spawn(task) +{ + return _Scheduler_binding(function(callback) { + callback(_Scheduler_succeed(_Scheduler_rawSpawn(task))); + }); +} + +function _Scheduler_rawSend(proc, msg) +{ + proc.h.push(msg); + _Scheduler_enqueue(proc); +} + +var _Scheduler_send = F2(function(proc, msg) +{ + return _Scheduler_binding(function(callback) { + _Scheduler_rawSend(proc, msg); + callback(_Scheduler_succeed(_Utils_Tuple0)); + }); +}); + +function _Scheduler_kill(proc) +{ + return _Scheduler_binding(function(callback) { + var task = proc.f; + if (task.$ === 2 && task.c) + { + task.c(); + } + + proc.f = null; + + callback(_Scheduler_succeed(_Utils_Tuple0)); + }); +} + + +/* STEP PROCESSES + +type alias Process = + { $ : tag + , id : unique_id + , root : Task + , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack } + , mailbox : [msg] + } + +*/ + + +var _Scheduler_working = false; +var _Scheduler_queue = []; + + +function _Scheduler_enqueue(proc) +{ + _Scheduler_queue.push(proc); + if (_Scheduler_working) + { + return; + } + _Scheduler_working = true; + while (proc = _Scheduler_queue.shift()) + { + _Scheduler_step(proc); + } + _Scheduler_working = false; +} + + +function _Scheduler_step(proc) +{ + while (proc.f) + { + var rootTag = proc.f.$; + if (rootTag === 0 || rootTag === 1) + { + while (proc.g && proc.g.$ !== rootTag) + { + proc.g = proc.g.i; + } + if (!proc.g) + { + return; + } + proc.f = proc.g.b(proc.f.a); + proc.g = proc.g.i; + } + else if (rootTag === 2) + { + proc.f.c = proc.f.b(function(newRoot) { + proc.f = newRoot; + _Scheduler_enqueue(proc); + }); + return; + } + else if (rootTag === 5) + { + if (proc.h.length === 0) + { + return; + } + proc.f = proc.f.b(proc.h.shift()); + } + else // if (rootTag === 3 || rootTag === 4) + { + proc.g = { + $: rootTag === 3 ? 0 : 1, + b: proc.f.b, + i: proc.g + }; + proc.f = proc.f.d; + } + } +} + + + +function _Process_sleep(time) +{ + return _Scheduler_binding(function(callback) { + var id = setTimeout(function() { + callback(_Scheduler_succeed(_Utils_Tuple0)); + }, time); + + return function() { clearTimeout(id); }; + }); +} + + + + +// PROGRAMS + + +var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args) +{ + return _Platform_initialize( + flagDecoder, + args, + impl.init, + impl.update, + impl.subscriptions, + function() { return function() {} } + ); +}); + + + +// INITIALIZE A PROGRAM + + +function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder) +{ + var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined)); + elm$core$Result$isOk(result) || _Debug_crash(2 /**/, _Json_errorToString(result.a) /**/); + var managers = {}; + result = init(result.a); + var model = result.a; + var stepper = stepperBuilder(sendToApp, model); + var ports = _Platform_setupEffects(managers, sendToApp); + + function sendToApp(msg, viewMetadata) + { + result = A2(update, msg, model); + stepper(model = result.a, viewMetadata); + _Platform_dispatchEffects(managers, result.b, subscriptions(model)); + } + + _Platform_dispatchEffects(managers, result.b, subscriptions(model)); + + return ports ? { ports: ports } : {}; +} + + + +// TRACK PRELOADS +// +// This is used by code in elm/browser and elm/http +// to register any HTTP requests that are triggered by init. +// + + +var _Platform_preload; + + +function _Platform_registerPreload(url) +{ + _Platform_preload.add(url); +} + + + +// EFFECT MANAGERS + + +var _Platform_effectManagers = {}; + + +function _Platform_setupEffects(managers, sendToApp) +{ + var ports; + + // setup all necessary effect managers + for (var key in _Platform_effectManagers) + { + var manager = _Platform_effectManagers[key]; + + if (manager.a) + { + ports = ports || {}; + ports[key] = manager.a(key, sendToApp); + } + + managers[key] = _Platform_instantiateManager(manager, sendToApp); + } + + return ports; +} + + +function _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap) +{ + return { + b: init, + c: onEffects, + d: onSelfMsg, + e: cmdMap, + f: subMap + }; +} + + +function _Platform_instantiateManager(info, sendToApp) +{ + var router = { + g: sendToApp, + h: undefined + }; + + var onEffects = info.c; + var onSelfMsg = info.d; + var cmdMap = info.e; + var subMap = info.f; + + function loop(state) + { + return A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg) + { + var value = msg.a; + + if (msg.$ === 0) + { + return A3(onSelfMsg, router, value, state); + } + + return cmdMap && subMap + ? A4(onEffects, router, value.i, value.j, state) + : A3(onEffects, router, cmdMap ? value.i : value.j, state); + })); + } + + return router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b)); +} + + + +// ROUTING + + +var _Platform_sendToApp = F2(function(router, msg) +{ + return _Scheduler_binding(function(callback) + { + router.g(msg); + callback(_Scheduler_succeed(_Utils_Tuple0)); + }); +}); + + +var _Platform_sendToSelf = F2(function(router, msg) +{ + return A2(_Scheduler_send, router.h, { + $: 0, + a: msg + }); +}); + + + +// BAGS + + +function _Platform_leaf(home) +{ + return function(value) + { + return { + $: 1, + k: home, + l: value + }; + }; +} + + +function _Platform_batch(list) +{ + return { + $: 2, + m: list + }; +} + + +var _Platform_map = F2(function(tagger, bag) +{ + return { + $: 3, + n: tagger, + o: bag + } +}); + + + +// PIPE BAGS INTO EFFECT MANAGERS + + +function _Platform_dispatchEffects(managers, cmdBag, subBag) +{ + var effectsDict = {}; + _Platform_gatherEffects(true, cmdBag, effectsDict, null); + _Platform_gatherEffects(false, subBag, effectsDict, null); + + for (var home in managers) + { + _Scheduler_rawSend(managers[home], { + $: 'fx', + a: effectsDict[home] || { i: _List_Nil, j: _List_Nil } + }); + } +} + + +function _Platform_gatherEffects(isCmd, bag, effectsDict, taggers) +{ + switch (bag.$) + { + case 1: + var home = bag.k; + var effect = _Platform_toEffect(isCmd, home, taggers, bag.l); + effectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]); + return; + + case 2: + for (var list = bag.m; list.b; list = list.b) // WHILE_CONS + { + _Platform_gatherEffects(isCmd, list.a, effectsDict, taggers); + } + return; + + case 3: + _Platform_gatherEffects(isCmd, bag.o, effectsDict, { + p: bag.n, + q: taggers + }); + return; + } +} + + +function _Platform_toEffect(isCmd, home, taggers, value) +{ + function applyTaggers(x) + { + for (var temp = taggers; temp; temp = temp.q) + { + x = temp.p(x); + } + return x; + } + + var map = isCmd + ? _Platform_effectManagers[home].e + : _Platform_effectManagers[home].f; + + return A2(map, applyTaggers, value) +} + + +function _Platform_insert(isCmd, newEffect, effects) +{ + effects = effects || { i: _List_Nil, j: _List_Nil }; + + isCmd + ? (effects.i = _List_Cons(newEffect, effects.i)) + : (effects.j = _List_Cons(newEffect, effects.j)); + + return effects; +} + + + +// PORTS + + +function _Platform_checkPortName(name) +{ + if (_Platform_effectManagers[name]) + { + _Debug_crash(3, name) + } +} + + + +// OUTGOING PORTS + + +function _Platform_outgoingPort(name, converter) +{ + _Platform_checkPortName(name); + _Platform_effectManagers[name] = { + e: _Platform_outgoingPortMap, + r: converter, + a: _Platform_setupOutgoingPort + }; + return _Platform_leaf(name); +} + + +var _Platform_outgoingPortMap = F2(function(tagger, value) { return value; }); + + +function _Platform_setupOutgoingPort(name) +{ + var subs = []; + var converter = _Platform_effectManagers[name].r; + + // CREATE MANAGER + + var init = _Process_sleep(0); + + _Platform_effectManagers[name].b = init; + _Platform_effectManagers[name].c = F3(function(router, cmdList, state) + { + for ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS + { + // grab a separate reference to subs in case unsubscribe is called + var currentSubs = subs; + var value = _Json_unwrap(converter(cmdList.a)); + for (var i = 0; i < currentSubs.length; i++) + { + currentSubs[i](value); + } + } + return init; + }); + + // PUBLIC API + + function subscribe(callback) + { + subs.push(callback); + } + + function unsubscribe(callback) + { + // copy subs into a new array in case unsubscribe is called within a + // subscribed callback + subs = subs.slice(); + var index = subs.indexOf(callback); + if (index >= 0) + { + subs.splice(index, 1); + } + } + + return { + subscribe: subscribe, + unsubscribe: unsubscribe + }; +} + + + +// INCOMING PORTS + + +function _Platform_incomingPort(name, converter) +{ + _Platform_checkPortName(name); + _Platform_effectManagers[name] = { + f: _Platform_incomingPortMap, + r: converter, + a: _Platform_setupIncomingPort + }; + return _Platform_leaf(name); +} + + +var _Platform_incomingPortMap = F2(function(tagger, finalTagger) +{ + return function(value) + { + return tagger(finalTagger(value)); + }; +}); + + +function _Platform_setupIncomingPort(name, sendToApp) +{ + var subs = _List_Nil; + var converter = _Platform_effectManagers[name].r; + + // CREATE MANAGER + + var init = _Scheduler_succeed(null); + + _Platform_effectManagers[name].b = init; + _Platform_effectManagers[name].c = F3(function(router, subList, state) + { + subs = subList; + return init; + }); + + // PUBLIC API + + function send(incomingValue) + { + var result = A2(_Json_run, converter, _Json_wrap(incomingValue)); + + elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a); + + var value = result.a; + for (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS + { + sendToApp(temp.a(value)); + } + } + + return { send: send }; +} + + + +// EXPORT ELM MODULES +// +// Have DEBUG and PROD versions so that we can (1) give nicer errors in +// debug mode and (2) not pay for the bits needed for that in prod mode. +// + + +function _Platform_export_UNUSED(exports) +{ + scope['Elm'] + ? _Platform_mergeExportsProd(scope['Elm'], exports) + : scope['Elm'] = exports; +} + + +function _Platform_mergeExportsProd(obj, exports) +{ + for (var name in exports) + { + (name in obj) + ? (name == 'init') + ? _Debug_crash(6) + : _Platform_mergeExportsProd(obj[name], exports[name]) + : (obj[name] = exports[name]); + } +} + + +function _Platform_export(exports) +{ + scope['Elm'] + ? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports) + : scope['Elm'] = exports; +} + + +function _Platform_mergeExportsDebug(moduleName, obj, exports) +{ + for (var name in exports) + { + (name in obj) + ? (name == 'init') + ? _Debug_crash(6, moduleName) + : _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name]) + : (obj[name] = exports[name]); + } +} + + + +var _Bitwise_and = F2(function(a, b) +{ + return a & b; +}); + +var _Bitwise_or = F2(function(a, b) +{ + return a | b; +}); + +var _Bitwise_xor = F2(function(a, b) +{ + return a ^ b; +}); + +function _Bitwise_complement(a) +{ + return ~a; +}; + +var _Bitwise_shiftLeftBy = F2(function(offset, a) +{ + return a << offset; +}); + +var _Bitwise_shiftRightBy = F2(function(offset, a) +{ + return a >> offset; +}); + +var _Bitwise_shiftRightZfBy = F2(function(offset, a) +{ + return a >>> offset; +}); + + + +function _Time_now(millisToPosix) +{ + return _Scheduler_binding(function(callback) + { + callback(_Scheduler_succeed(millisToPosix(Date.now()))); + }); +} + +var _Time_setInterval = F2(function(interval, task) +{ + return _Scheduler_binding(function(callback) + { + var id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval); + return function() { clearInterval(id); }; + }); +}); + +function _Time_here() +{ + return _Scheduler_binding(function(callback) + { + callback(_Scheduler_succeed( + A2(elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil) + )); + }); +} + + +function _Time_getZoneName() +{ + return _Scheduler_binding(function(callback) + { + try + { + var name = elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone); + } + catch (e) + { + var name = elm$time$Time$Offset(new Date().getTimezoneOffset()); + } + callback(_Scheduler_succeed(name)); + }); +} + + + + +// HELPERS + + +var _VirtualDom_divertHrefToApp; + +var _VirtualDom_doc = typeof document !== 'undefined' ? document : {}; + + +function _VirtualDom_appendChild(parent, child) +{ + parent.appendChild(child); +} + +var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args) +{ + // NOTE: this function needs _Platform_export available to work + + /**_UNUSED/ + var node = args['node']; + //*/ + /**/ + var node = args && args['node'] ? args['node'] : _Debug_crash(0); + //*/ + + node.parentNode.replaceChild( + _VirtualDom_render(virtualNode, function() {}), + node + ); + + return {}; +}); + + + +// TEXT + + +function _VirtualDom_text(string) +{ + return { + $: 0, + a: string + }; +} + + + +// NODE + + +var _VirtualDom_nodeNS = F2(function(namespace, tag) +{ + return F2(function(factList, kidList) + { + for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS + { + var kid = kidList.a; + descendantsCount += (kid.b || 0); + kids.push(kid); + } + descendantsCount += kids.length; + + return { + $: 1, + c: tag, + d: _VirtualDom_organizeFacts(factList), + e: kids, + f: namespace, + b: descendantsCount + }; + }); +}); + + +var _VirtualDom_node = _VirtualDom_nodeNS(undefined); + + + +// KEYED NODE + + +var _VirtualDom_keyedNodeNS = F2(function(namespace, tag) +{ + return F2(function(factList, kidList) + { + for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS + { + var kid = kidList.a; + descendantsCount += (kid.b.b || 0); + kids.push(kid); + } + descendantsCount += kids.length; + + return { + $: 2, + c: tag, + d: _VirtualDom_organizeFacts(factList), + e: kids, + f: namespace, + b: descendantsCount + }; + }); +}); + + +var _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined); + + + +// CUSTOM + + +function _VirtualDom_custom(factList, model, render, diff) +{ + return { + $: 3, + d: _VirtualDom_organizeFacts(factList), + g: model, + h: render, + i: diff + }; +} + + + +// MAP + + +var _VirtualDom_map = F2(function(tagger, node) +{ + return { + $: 4, + j: tagger, + k: node, + b: 1 + (node.b || 0) + }; +}); + + + +// LAZY + + +function _VirtualDom_thunk(refs, thunk) +{ + return { + $: 5, + l: refs, + m: thunk, + k: undefined + }; +} + +var _VirtualDom_lazy = F2(function(func, a) +{ + return _VirtualDom_thunk([func, a], function() { + return func(a); + }); +}); + +var _VirtualDom_lazy2 = F3(function(func, a, b) +{ + return _VirtualDom_thunk([func, a, b], function() { + return A2(func, a, b); + }); +}); + +var _VirtualDom_lazy3 = F4(function(func, a, b, c) +{ + return _VirtualDom_thunk([func, a, b, c], function() { + return A3(func, a, b, c); + }); +}); + +var _VirtualDom_lazy4 = F5(function(func, a, b, c, d) +{ + return _VirtualDom_thunk([func, a, b, c, d], function() { + return A4(func, a, b, c, d); + }); +}); + +var _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e) +{ + return _VirtualDom_thunk([func, a, b, c, d, e], function() { + return A5(func, a, b, c, d, e); + }); +}); + +var _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f) +{ + return _VirtualDom_thunk([func, a, b, c, d, e, f], function() { + return A6(func, a, b, c, d, e, f); + }); +}); + +var _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g) +{ + return _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() { + return A7(func, a, b, c, d, e, f, g); + }); +}); + +var _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h) +{ + return _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() { + return A8(func, a, b, c, d, e, f, g, h); + }); +}); + + + +// FACTS + + +var _VirtualDom_on = F2(function(key, handler) +{ + return { + $: 'a0', + n: key, + o: handler + }; +}); +var _VirtualDom_style = F2(function(key, value) +{ + return { + $: 'a1', + n: key, + o: value + }; +}); +var _VirtualDom_property = F2(function(key, value) +{ + return { + $: 'a2', + n: key, + o: value + }; +}); +var _VirtualDom_attribute = F2(function(key, value) +{ + return { + $: 'a3', + n: key, + o: value + }; +}); +var _VirtualDom_attributeNS = F3(function(namespace, key, value) +{ + return { + $: 'a4', + n: key, + o: { f: namespace, o: value } + }; +}); + + + +// XSS ATTACK VECTOR CHECKS + + +function _VirtualDom_noScript(tag) +{ + return tag == 'script' ? 'p' : tag; +} + +function _VirtualDom_noOnOrFormAction(key) +{ + return /^(on|formAction$)/i.test(key) ? 'data-' + key : key; +} + +function _VirtualDom_noInnerHtmlOrFormAction(key) +{ + return key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key; +} + +function _VirtualDom_noJavaScriptUri_UNUSED(value) +{ + return /^javascript:/i.test(value.replace(/\s/g,'')) ? '' : value; +} + +function _VirtualDom_noJavaScriptUri(value) +{ + return /^javascript:/i.test(value.replace(/\s/g,'')) + ? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")' + : value; +} + +function _VirtualDom_noJavaScriptOrHtmlUri_UNUSED(value) +{ + return /^\s*(javascript:|data:text\/html)/i.test(value) ? '' : value; +} + +function _VirtualDom_noJavaScriptOrHtmlUri(value) +{ + return /^\s*(javascript:|data:text\/html)/i.test(value) + ? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")' + : value; +} + + + +// MAP FACTS + + +var _VirtualDom_mapAttribute = F2(function(func, attr) +{ + return (attr.$ === 'a0') + ? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o)) + : attr; +}); + +function _VirtualDom_mapHandler(func, handler) +{ + var tag = elm$virtual_dom$VirtualDom$toHandlerInt(handler); + + // 0 = Normal + // 1 = MayStopPropagation + // 2 = MayPreventDefault + // 3 = Custom + + return { + $: handler.$, + a: + !tag + ? A2(elm$json$Json$Decode$map, func, handler.a) + : + A3(elm$json$Json$Decode$map2, + tag < 3 + ? _VirtualDom_mapEventTuple + : _VirtualDom_mapEventRecord, + elm$json$Json$Decode$succeed(func), + handler.a + ) + }; +} + +var _VirtualDom_mapEventTuple = F2(function(func, tuple) +{ + return _Utils_Tuple2(func(tuple.a), tuple.b); +}); + +var _VirtualDom_mapEventRecord = F2(function(func, record) +{ + return { + message: func(record.message), + stopPropagation: record.stopPropagation, + preventDefault: record.preventDefault + } +}); + + + +// ORGANIZE FACTS + + +function _VirtualDom_organizeFacts(factList) +{ + for (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS + { + var entry = factList.a; + + var tag = entry.$; + var key = entry.n; + var value = entry.o; + + if (tag === 'a2') + { + (key === 'className') + ? _VirtualDom_addClass(facts, key, _Json_unwrap(value)) + : facts[key] = _Json_unwrap(value); + + continue; + } + + var subFacts = facts[tag] || (facts[tag] = {}); + (tag === 'a3' && key === 'class') + ? _VirtualDom_addClass(subFacts, key, value) + : subFacts[key] = value; + } + + return facts; +} + +function _VirtualDom_addClass(object, key, newClass) +{ + var classes = object[key]; + object[key] = classes ? classes + ' ' + newClass : newClass; +} + + + +// RENDER + + +function _VirtualDom_render(vNode, eventNode) +{ + var tag = vNode.$; + + if (tag === 5) + { + return _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode); + } + + if (tag === 0) + { + return _VirtualDom_doc.createTextNode(vNode.a); + } + + if (tag === 4) + { + var subNode = vNode.k; + var tagger = vNode.j; + + while (subNode.$ === 4) + { + typeof tagger !== 'object' + ? tagger = [tagger, subNode.j] + : tagger.push(subNode.j); + + subNode = subNode.k; + } + + var subEventRoot = { j: tagger, p: eventNode }; + var domNode = _VirtualDom_render(subNode, subEventRoot); + domNode.elm_event_node_ref = subEventRoot; + return domNode; + } + + if (tag === 3) + { + var domNode = vNode.h(vNode.g); + _VirtualDom_applyFacts(domNode, eventNode, vNode.d); + return domNode; + } + + // at this point `tag` must be 1 or 2 + + var domNode = vNode.f + ? _VirtualDom_doc.createElementNS(vNode.f, vNode.c) + : _VirtualDom_doc.createElement(vNode.c); + + if (_VirtualDom_divertHrefToApp && vNode.c == 'a') + { + domNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode)); + } + + _VirtualDom_applyFacts(domNode, eventNode, vNode.d); + + for (var kids = vNode.e, i = 0; i < kids.length; i++) + { + _VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode)); + } + + return domNode; +} + + + +// APPLY FACTS + + +function _VirtualDom_applyFacts(domNode, eventNode, facts) +{ + for (var key in facts) + { + var value = facts[key]; + + key === 'a1' + ? _VirtualDom_applyStyles(domNode, value) + : + key === 'a0' + ? _VirtualDom_applyEvents(domNode, eventNode, value) + : + key === 'a3' + ? _VirtualDom_applyAttrs(domNode, value) + : + key === 'a4' + ? _VirtualDom_applyAttrsNS(domNode, value) + : + ((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value); + } +} + + + +// APPLY STYLES + + +function _VirtualDom_applyStyles(domNode, styles) +{ + var domNodeStyle = domNode.style; + + for (var key in styles) + { + domNodeStyle[key] = styles[key]; + } +} + + + +// APPLY ATTRS + + +function _VirtualDom_applyAttrs(domNode, attrs) +{ + for (var key in attrs) + { + var value = attrs[key]; + typeof value !== 'undefined' + ? domNode.setAttribute(key, value) + : domNode.removeAttribute(key); + } +} + + + +// APPLY NAMESPACED ATTRS + + +function _VirtualDom_applyAttrsNS(domNode, nsAttrs) +{ + for (var key in nsAttrs) + { + var pair = nsAttrs[key]; + var namespace = pair.f; + var value = pair.o; + + typeof value !== 'undefined' + ? domNode.setAttributeNS(namespace, key, value) + : domNode.removeAttributeNS(namespace, key); + } +} + + + +// APPLY EVENTS + + +function _VirtualDom_applyEvents(domNode, eventNode, events) +{ + var allCallbacks = domNode.elmFs || (domNode.elmFs = {}); + + for (var key in events) + { + var newHandler = events[key]; + var oldCallback = allCallbacks[key]; + + if (!newHandler) + { + domNode.removeEventListener(key, oldCallback); + allCallbacks[key] = undefined; + continue; + } + + if (oldCallback) + { + var oldHandler = oldCallback.q; + if (oldHandler.$ === newHandler.$) + { + oldCallback.q = newHandler; + continue; + } + domNode.removeEventListener(key, oldCallback); + } + + oldCallback = _VirtualDom_makeCallback(eventNode, newHandler); + domNode.addEventListener(key, oldCallback, + _VirtualDom_passiveSupported + && { passive: elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 } + ); + allCallbacks[key] = oldCallback; + } +} + + + +// PASSIVE EVENTS + + +var _VirtualDom_passiveSupported; + +try +{ + window.addEventListener('t', null, Object.defineProperty({}, 'passive', { + get: function() { _VirtualDom_passiveSupported = true; } + })); +} +catch(e) {} + + + +// EVENT HANDLERS + + +function _VirtualDom_makeCallback(eventNode, initialHandler) +{ + function callback(event) + { + var handler = callback.q; + var result = _Json_runHelp(handler.a, event); + + if (!elm$core$Result$isOk(result)) + { + return; + } + + var tag = elm$virtual_dom$VirtualDom$toHandlerInt(handler); + + // 0 = Normal + // 1 = MayStopPropagation + // 2 = MayPreventDefault + // 3 = Custom + + var value = result.a; + var message = !tag ? value : tag < 3 ? value.a : value.message; + var stopPropagation = tag == 1 ? value.b : tag == 3 && value.stopPropagation; + var currentEventNode = ( + stopPropagation && event.stopPropagation(), + (tag == 2 ? value.b : tag == 3 && value.preventDefault) && event.preventDefault(), + eventNode + ); + var tagger; + var i; + while (tagger = currentEventNode.j) + { + if (typeof tagger == 'function') + { + message = tagger(message); + } + else + { + for (var i = tagger.length; i--; ) + { + message = tagger[i](message); + } + } + currentEventNode = currentEventNode.p; + } + currentEventNode(message, stopPropagation); // stopPropagation implies isSync + } + + callback.q = initialHandler; + + return callback; +} + +function _VirtualDom_equalEvents(x, y) +{ + return x.$ == y.$ && _Json_equality(x.a, y.a); +} + + + +// DIFF + + +// TODO: Should we do patches like in iOS? +// +// type Patch +// = At Int Patch +// | Batch (List Patch) +// | Change ... +// +// How could it not be better? +// +function _VirtualDom_diff(x, y) +{ + var patches = []; + _VirtualDom_diffHelp(x, y, patches, 0); + return patches; +} + + +function _VirtualDom_pushPatch(patches, type, index, data) +{ + var patch = { + $: type, + r: index, + s: data, + t: undefined, + u: undefined + }; + patches.push(patch); + return patch; +} + + +function _VirtualDom_diffHelp(x, y, patches, index) +{ + if (x === y) + { + return; + } + + var xType = x.$; + var yType = y.$; + + // Bail if you run into different types of nodes. Implies that the + // structure has changed significantly and it's not worth a diff. + if (xType !== yType) + { + if (xType === 1 && yType === 2) + { + y = _VirtualDom_dekey(y); + yType = 1; + } + else + { + _VirtualDom_pushPatch(patches, 0, index, y); + return; + } + } + + // Now we know that both nodes are the same $. + switch (yType) + { + case 5: + var xRefs = x.l; + var yRefs = y.l; + var i = xRefs.length; + var same = i === yRefs.length; + while (same && i--) + { + same = xRefs[i] === yRefs[i]; + } + if (same) + { + y.k = x.k; + return; + } + y.k = y.m(); + var subPatches = []; + _VirtualDom_diffHelp(x.k, y.k, subPatches, 0); + subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches); + return; + + case 4: + // gather nested taggers + var xTaggers = x.j; + var yTaggers = y.j; + var nesting = false; + + var xSubNode = x.k; + while (xSubNode.$ === 4) + { + nesting = true; + + typeof xTaggers !== 'object' + ? xTaggers = [xTaggers, xSubNode.j] + : xTaggers.push(xSubNode.j); + + xSubNode = xSubNode.k; + } + + var ySubNode = y.k; + while (ySubNode.$ === 4) + { + nesting = true; + + typeof yTaggers !== 'object' + ? yTaggers = [yTaggers, ySubNode.j] + : yTaggers.push(ySubNode.j); + + ySubNode = ySubNode.k; + } + + // Just bail if different numbers of taggers. This implies the + // structure of the virtual DOM has changed. + if (nesting && xTaggers.length !== yTaggers.length) + { + _VirtualDom_pushPatch(patches, 0, index, y); + return; + } + + // check if taggers are "the same" + if (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers) + { + _VirtualDom_pushPatch(patches, 2, index, yTaggers); + } + + // diff everything below the taggers + _VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1); + return; + + case 0: + if (x.a !== y.a) + { + _VirtualDom_pushPatch(patches, 3, index, y.a); + } + return; + + case 1: + _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids); + return; + + case 2: + _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids); + return; + + case 3: + if (x.h !== y.h) + { + _VirtualDom_pushPatch(patches, 0, index, y); + return; + } + + var factsDiff = _VirtualDom_diffFacts(x.d, y.d); + factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff); + + var patch = y.i(x.g, y.g); + patch && _VirtualDom_pushPatch(patches, 5, index, patch); + + return; + } +} + +// assumes the incoming arrays are the same length +function _VirtualDom_pairwiseRefEqual(as, bs) +{ + for (var i = 0; i < as.length; i++) + { + if (as[i] !== bs[i]) + { + return false; + } + } + + return true; +} + +function _VirtualDom_diffNodes(x, y, patches, index, diffKids) +{ + // Bail if obvious indicators have changed. Implies more serious + // structural changes such that it's not worth it to diff. + if (x.c !== y.c || x.f !== y.f) + { + _VirtualDom_pushPatch(patches, 0, index, y); + return; + } + + var factsDiff = _VirtualDom_diffFacts(x.d, y.d); + factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff); + + diffKids(x, y, patches, index); +} + + + +// DIFF FACTS + + +// TODO Instead of creating a new diff object, it's possible to just test if +// there *is* a diff. During the actual patch, do the diff again and make the +// modifications directly. This way, there's no new allocations. Worth it? +function _VirtualDom_diffFacts(x, y, category) +{ + var diff; + + // look for changes and removals + for (var xKey in x) + { + if (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4') + { + var subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey); + if (subDiff) + { + diff = diff || {}; + diff[xKey] = subDiff; + } + continue; + } + + // remove if not in the new facts + if (!(xKey in y)) + { + diff = diff || {}; + diff[xKey] = + !category + ? (typeof x[xKey] === 'string' ? '' : null) + : + (category === 'a1') + ? '' + : + (category === 'a0' || category === 'a3') + ? undefined + : + { f: x[xKey].f, o: undefined }; + + continue; + } + + var xValue = x[xKey]; + var yValue = y[xKey]; + + // reference equal, so don't worry about it + if (xValue === yValue && xKey !== 'value' && xKey !== 'checked' + || category === 'a0' && _VirtualDom_equalEvents(xValue, yValue)) + { + continue; + } + + diff = diff || {}; + diff[xKey] = yValue; + } + + // add new stuff + for (var yKey in y) + { + if (!(yKey in x)) + { + diff = diff || {}; + diff[yKey] = y[yKey]; + } + } + + return diff; +} + + + +// DIFF KIDS + + +function _VirtualDom_diffKids(xParent, yParent, patches, index) +{ + var xKids = xParent.e; + var yKids = yParent.e; + + var xLen = xKids.length; + var yLen = yKids.length; + + // FIGURE OUT IF THERE ARE INSERTS OR REMOVALS + + if (xLen > yLen) + { + _VirtualDom_pushPatch(patches, 6, index, { + v: yLen, + i: xLen - yLen + }); + } + else if (xLen < yLen) + { + _VirtualDom_pushPatch(patches, 7, index, { + v: xLen, + e: yKids + }); + } + + // PAIRWISE DIFF EVERYTHING ELSE + + for (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++) + { + var xKid = xKids[i]; + _VirtualDom_diffHelp(xKid, yKids[i], patches, ++index); + index += xKid.b || 0; + } +} + + + +// KEYED DIFF + + +function _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex) +{ + var localPatches = []; + + var changes = {}; // Dict String Entry + var inserts = []; // Array { index : Int, entry : Entry } + // type Entry = { tag : String, vnode : VNode, index : Int, data : _ } + + var xKids = xParent.e; + var yKids = yParent.e; + var xLen = xKids.length; + var yLen = yKids.length; + var xIndex = 0; + var yIndex = 0; + + var index = rootIndex; + + while (xIndex < xLen && yIndex < yLen) + { + var x = xKids[xIndex]; + var y = yKids[yIndex]; + + var xKey = x.a; + var yKey = y.a; + var xNode = x.b; + var yNode = y.b; + + var newMatch = undefined; + var oldMatch = undefined; + + // check if keys match + + if (xKey === yKey) + { + index++; + _VirtualDom_diffHelp(xNode, yNode, localPatches, index); + index += xNode.b || 0; + + xIndex++; + yIndex++; + continue; + } + + // look ahead 1 to detect insertions and removals. + + var xNext = xKids[xIndex + 1]; + var yNext = yKids[yIndex + 1]; + + if (xNext) + { + var xNextKey = xNext.a; + var xNextNode = xNext.b; + oldMatch = yKey === xNextKey; + } + + if (yNext) + { + var yNextKey = yNext.a; + var yNextNode = yNext.b; + newMatch = xKey === yNextKey; + } + + + // swap x and y + if (newMatch && oldMatch) + { + index++; + _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index); + _VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts); + index += xNode.b || 0; + + index++; + _VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index); + index += xNextNode.b || 0; + + xIndex += 2; + yIndex += 2; + continue; + } + + // insert y + if (newMatch) + { + index++; + _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts); + _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index); + index += xNode.b || 0; + + xIndex += 1; + yIndex += 2; + continue; + } + + // remove x + if (oldMatch) + { + index++; + _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index); + index += xNode.b || 0; + + index++; + _VirtualDom_diffHelp(xNextNode, yNode, localPatches, index); + index += xNextNode.b || 0; + + xIndex += 2; + yIndex += 1; + continue; + } + + // remove x, insert y + if (xNext && xNextKey === yNextKey) + { + index++; + _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index); + _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts); + index += xNode.b || 0; + + index++; + _VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index); + index += xNextNode.b || 0; + + xIndex += 2; + yIndex += 2; + continue; + } + + break; + } + + // eat up any remaining nodes with removeNode and insertNode + + while (xIndex < xLen) + { + index++; + var x = xKids[xIndex]; + var xNode = x.b; + _VirtualDom_removeNode(changes, localPatches, x.a, xNode, index); + index += xNode.b || 0; + xIndex++; + } + + while (yIndex < yLen) + { + var endInserts = endInserts || []; + var y = yKids[yIndex]; + _VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts); + yIndex++; + } + + if (localPatches.length > 0 || inserts.length > 0 || endInserts) + { + _VirtualDom_pushPatch(patches, 8, rootIndex, { + w: localPatches, + x: inserts, + y: endInserts + }); + } +} + + + +// CHANGES FROM KEYED DIFF + + +var _VirtualDom_POSTFIX = '_elmW6BL'; + + +function _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts) +{ + var entry = changes[key]; + + // never seen this key before + if (!entry) + { + entry = { + c: 0, + z: vnode, + r: yIndex, + s: undefined + }; + + inserts.push({ r: yIndex, A: entry }); + changes[key] = entry; + + return; + } + + // this key was removed earlier, a match! + if (entry.c === 1) + { + inserts.push({ r: yIndex, A: entry }); + + entry.c = 2; + var subPatches = []; + _VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r); + entry.r = yIndex; + entry.s.s = { + w: subPatches, + A: entry + }; + + return; + } + + // this key has already been inserted or moved, a duplicate! + _VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts); +} + + +function _VirtualDom_removeNode(changes, localPatches, key, vnode, index) +{ + var entry = changes[key]; + + // never seen this key before + if (!entry) + { + var patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined); + + changes[key] = { + c: 1, + z: vnode, + r: index, + s: patch + }; + + return; + } + + // this key was inserted earlier, a match! + if (entry.c === 0) + { + entry.c = 2; + var subPatches = []; + _VirtualDom_diffHelp(vnode, entry.z, subPatches, index); + + _VirtualDom_pushPatch(localPatches, 9, index, { + w: subPatches, + A: entry + }); + + return; + } + + // this key has already been removed or moved, a duplicate! + _VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index); +} + + + +// ADD DOM NODES +// +// Each DOM node has an "index" assigned in order of traversal. It is important +// to minimize our crawl over the actual DOM, so these indexes (along with the +// descendantsCount of virtual nodes) let us skip touching entire subtrees of +// the DOM if we know there are no patches there. + + +function _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode) +{ + _VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode); +} + + +// assumes `patches` is non-empty and indexes increase monotonically. +function _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode) +{ + var patch = patches[i]; + var index = patch.r; + + while (index === low) + { + var patchType = patch.$; + + if (patchType === 1) + { + _VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode); + } + else if (patchType === 8) + { + patch.t = domNode; + patch.u = eventNode; + + var subPatches = patch.s.w; + if (subPatches.length > 0) + { + _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); + } + } + else if (patchType === 9) + { + patch.t = domNode; + patch.u = eventNode; + + var data = patch.s; + if (data) + { + data.A.s = domNode; + var subPatches = data.w; + if (subPatches.length > 0) + { + _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); + } + } + } + else + { + patch.t = domNode; + patch.u = eventNode; + } + + i++; + + if (!(patch = patches[i]) || (index = patch.r) > high) + { + return i; + } + } + + var tag = vNode.$; + + if (tag === 4) + { + var subNode = vNode.k; + + while (subNode.$ === 4) + { + subNode = subNode.k; + } + + return _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref); + } + + // tag must be 1 or 2 at this point + + var vKids = vNode.e; + var childNodes = domNode.childNodes; + for (var j = 0; j < vKids.length; j++) + { + low++; + var vKid = tag === 1 ? vKids[j] : vKids[j].b; + var nextLow = low + (vKid.b || 0); + if (low <= index && index <= nextLow) + { + i = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode); + if (!(patch = patches[i]) || (index = patch.r) > high) + { + return i; + } + } + low = nextLow; + } + return i; +} + + + +// APPLY PATCHES + + +function _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode) +{ + if (patches.length === 0) + { + return rootDomNode; + } + + _VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode); + return _VirtualDom_applyPatchesHelp(rootDomNode, patches); +} + +function _VirtualDom_applyPatchesHelp(rootDomNode, patches) +{ + for (var i = 0; i < patches.length; i++) + { + var patch = patches[i]; + var localDomNode = patch.t + var newNode = _VirtualDom_applyPatch(localDomNode, patch); + if (localDomNode === rootDomNode) + { + rootDomNode = newNode; + } + } + return rootDomNode; +} + +function _VirtualDom_applyPatch(domNode, patch) +{ + switch (patch.$) + { + case 0: + return _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u); + + case 4: + _VirtualDom_applyFacts(domNode, patch.u, patch.s); + return domNode; + + case 3: + domNode.replaceData(0, domNode.length, patch.s); + return domNode; + + case 1: + return _VirtualDom_applyPatchesHelp(domNode, patch.s); + + case 2: + if (domNode.elm_event_node_ref) + { + domNode.elm_event_node_ref.j = patch.s; + } + else + { + domNode.elm_event_node_ref = { j: patch.s, p: patch.u }; + } + return domNode; + + case 6: + var data = patch.s; + for (var i = 0; i < data.i; i++) + { + domNode.removeChild(domNode.childNodes[data.v]); + } + return domNode; + + case 7: + var data = patch.s; + var kids = data.e; + var i = data.v; + var theEnd = domNode.childNodes[i]; + for (; i < kids.length; i++) + { + domNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd); + } + return domNode; + + case 9: + var data = patch.s; + if (!data) + { + domNode.parentNode.removeChild(domNode); + return domNode; + } + var entry = data.A; + if (typeof entry.r !== 'undefined') + { + domNode.parentNode.removeChild(domNode); + } + entry.s = _VirtualDom_applyPatchesHelp(domNode, data.w); + return domNode; + + case 8: + return _VirtualDom_applyPatchReorder(domNode, patch); + + case 5: + return patch.s(domNode); + + default: + _Debug_crash(10); // 'Ran into an unknown patch!' + } +} + + +function _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode) +{ + var parentNode = domNode.parentNode; + var newNode = _VirtualDom_render(vNode, eventNode); + + if (!newNode.elm_event_node_ref) + { + newNode.elm_event_node_ref = domNode.elm_event_node_ref; + } + + if (parentNode && newNode !== domNode) + { + parentNode.replaceChild(newNode, domNode); + } + return newNode; +} + + +function _VirtualDom_applyPatchReorder(domNode, patch) +{ + var data = patch.s; + + // remove end inserts + var frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch); + + // removals + domNode = _VirtualDom_applyPatchesHelp(domNode, data.w); + + // inserts + var inserts = data.x; + for (var i = 0; i < inserts.length; i++) + { + var insert = inserts[i]; + var entry = insert.A; + var node = entry.c === 2 + ? entry.s + : _VirtualDom_render(entry.z, patch.u); + domNode.insertBefore(node, domNode.childNodes[insert.r]); + } + + // add end inserts + if (frag) + { + _VirtualDom_appendChild(domNode, frag); + } + + return domNode; +} + + +function _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch) +{ + if (!endInserts) + { + return; + } + + var frag = _VirtualDom_doc.createDocumentFragment(); + for (var i = 0; i < endInserts.length; i++) + { + var insert = endInserts[i]; + var entry = insert.A; + _VirtualDom_appendChild(frag, entry.c === 2 + ? entry.s + : _VirtualDom_render(entry.z, patch.u) + ); + } + return frag; +} + + +function _VirtualDom_virtualize(node) +{ + // TEXT NODES + + if (node.nodeType === 3) + { + return _VirtualDom_text(node.textContent); + } + + + // WEIRD NODES + + if (node.nodeType !== 1) + { + return _VirtualDom_text(''); + } + + + // ELEMENT NODES + + var attrList = _List_Nil; + var attrs = node.attributes; + for (var i = attrs.length; i--; ) + { + var attr = attrs[i]; + var name = attr.name; + var value = attr.value; + attrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList ); + } + + var tag = node.tagName.toLowerCase(); + var kidList = _List_Nil; + var kids = node.childNodes; + + for (var i = kids.length; i--; ) + { + kidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList); + } + return A3(_VirtualDom_node, tag, attrList, kidList); +} + +function _VirtualDom_dekey(keyedNode) +{ + var keyedKids = keyedNode.e; + var len = keyedKids.length; + var kids = new Array(len); + for (var i = 0; i < len; i++) + { + kids[i] = keyedKids[i].b; + } + + return { + $: 1, + c: keyedNode.c, + d: keyedNode.d, + e: kids, + f: keyedNode.f, + b: keyedNode.b + }; +} + + + + +// ELEMENT + + +var _Debugger_element; + +var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args) +{ + return _Platform_initialize( + flagDecoder, + args, + impl.init, + impl.update, + impl.subscriptions, + function(sendToApp, initialModel) { + var view = impl.view; + /**_UNUSED/ + var domNode = args['node']; + //*/ + /**/ + var domNode = args && args['node'] ? args['node'] : _Debug_crash(0); + //*/ + var currNode = _VirtualDom_virtualize(domNode); + + return _Browser_makeAnimator(initialModel, function(model) + { + var nextNode = view(model); + var patches = _VirtualDom_diff(currNode, nextNode); + domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp); + currNode = nextNode; + }); + } + ); +}); + + + +// DOCUMENT + + +var _Debugger_document; + +var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args) +{ + return _Platform_initialize( + flagDecoder, + args, + impl.init, + impl.update, + impl.subscriptions, + function(sendToApp, initialModel) { + var divertHrefToApp = impl.setup && impl.setup(sendToApp) + var view = impl.view; + var title = _VirtualDom_doc.title; + var bodyNode = _VirtualDom_doc.body; + var currNode = _VirtualDom_virtualize(bodyNode); + return _Browser_makeAnimator(initialModel, function(model) + { + _VirtualDom_divertHrefToApp = divertHrefToApp; + var doc = view(model); + var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.body); + var patches = _VirtualDom_diff(currNode, nextNode); + bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp); + currNode = nextNode; + _VirtualDom_divertHrefToApp = 0; + (title !== doc.title) && (_VirtualDom_doc.title = title = doc.title); + }); + } + ); +}); + + + +// ANIMATION + + +var _Browser_requestAnimationFrame = + typeof requestAnimationFrame !== 'undefined' + ? requestAnimationFrame + : function(callback) { setTimeout(callback, 1000 / 60); }; + + +function _Browser_makeAnimator(model, draw) +{ + draw(model); + + var state = 0; + + function updateIfNeeded() + { + state = state === 1 + ? 0 + : ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 ); + } + + return function(nextModel, isSync) + { + model = nextModel; + + isSync + ? ( draw(model), + state === 2 && (state = 1) + ) + : ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded), + state = 2 + ); + }; +} + + + +// APPLICATION + + +function _Browser_application(impl) +{ + var onUrlChange = impl.onUrlChange; + var onUrlRequest = impl.onUrlRequest; + var key = function() { key.a(onUrlChange(_Browser_getUrl())); }; + + return _Browser_document({ + setup: function(sendToApp) + { + key.a = sendToApp; + _Browser_window.addEventListener('popstate', key); + _Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key); + + return F2(function(domNode, event) + { + if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.download) + { + event.preventDefault(); + var href = domNode.href; + var curr = _Browser_getUrl(); + var next = elm$url$Url$fromString(href).a; + sendToApp(onUrlRequest( + (next + && curr.protocol === next.protocol + && curr.host === next.host + && curr.port_.a === next.port_.a + ) + ? elm$browser$Browser$Internal(next) + : elm$browser$Browser$External(href) + )); + } + }); + }, + init: function(flags) + { + return A3(impl.init, flags, _Browser_getUrl(), key); + }, + view: impl.view, + update: impl.update, + subscriptions: impl.subscriptions + }); +} + +function _Browser_getUrl() +{ + return elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1); +} + +var _Browser_go = F2(function(key, n) +{ + return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { + n && history.go(n); + key(); + })); +}); + +var _Browser_pushUrl = F2(function(key, url) +{ + return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { + history.pushState({}, '', url); + key(); + })); +}); + +var _Browser_replaceUrl = F2(function(key, url) +{ + return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { + history.replaceState({}, '', url); + key(); + })); +}); + + + +// GLOBAL EVENTS + + +var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} }; +var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode; +var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode; + +var _Browser_on = F3(function(node, eventName, sendToSelf) +{ + return _Scheduler_spawn(_Scheduler_binding(function(callback) + { + function handler(event) { _Scheduler_rawSpawn(sendToSelf(event)); } + node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true }); + return function() { node.removeEventListener(eventName, handler); }; + })); +}); + +var _Browser_decodeEvent = F2(function(decoder, event) +{ + var result = _Json_runHelp(decoder, event); + return elm$core$Result$isOk(result) ? elm$core$Maybe$Just(result.a) : elm$core$Maybe$Nothing; +}); + + + +// PAGE VISIBILITY + + +function _Browser_visibilityInfo() +{ + return (typeof _VirtualDom_doc.hidden !== 'undefined') + ? { hidden: 'hidden', change: 'visibilitychange' } + : + (typeof _VirtualDom_doc.mozHidden !== 'undefined') + ? { hidden: 'mozHidden', change: 'mozvisibilitychange' } + : + (typeof _VirtualDom_doc.msHidden !== 'undefined') + ? { hidden: 'msHidden', change: 'msvisibilitychange' } + : + (typeof _VirtualDom_doc.webkitHidden !== 'undefined') + ? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' } + : { hidden: 'hidden', change: 'visibilitychange' }; +} + + + +// ANIMATION FRAMES + + +function _Browser_rAF() +{ + return _Scheduler_binding(function(callback) + { + var id = requestAnimationFrame(function() { + callback(_Scheduler_succeed(Date.now())); + }); + + return function() { + cancelAnimationFrame(id); + }; + }); +} + + +function _Browser_now() +{ + return _Scheduler_binding(function(callback) + { + callback(_Scheduler_succeed(Date.now())); + }); +} + + + +// DOM STUFF + + +function _Browser_withNode(id, doStuff) +{ + return _Scheduler_binding(function(callback) + { + _Browser_requestAnimationFrame(function() { + var node = document.getElementById(id); + callback(node + ? _Scheduler_succeed(doStuff(node)) + : _Scheduler_fail(elm$browser$Browser$Dom$NotFound(id)) + ); + }); + }); +} + + +function _Browser_withWindow(doStuff) +{ + return _Scheduler_binding(function(callback) + { + _Browser_requestAnimationFrame(function() { + callback(_Scheduler_succeed(doStuff())); + }); + }); +} + + +// FOCUS and BLUR + + +var _Browser_call = F2(function(functionName, id) +{ + return _Browser_withNode(id, function(node) { + node[functionName](); + return _Utils_Tuple0; + }); +}); + + + +// WINDOW VIEWPORT + + +function _Browser_getViewport() +{ + return { + scene: _Browser_getScene(), + viewport: { + x: _Browser_window.pageXOffset, + y: _Browser_window.pageYOffset, + width: _Browser_doc.documentElement.clientWidth, + height: _Browser_doc.documentElement.clientHeight + } + }; +} + +function _Browser_getScene() +{ + var body = _Browser_doc.body; + var elem = _Browser_doc.documentElement; + return { + width: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth), + height: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight) + }; +} + +var _Browser_setViewport = F2(function(x, y) +{ + return _Browser_withWindow(function() + { + _Browser_window.scroll(x, y); + return _Utils_Tuple0; + }); +}); + + + +// ELEMENT VIEWPORT + + +function _Browser_getViewportOf(id) +{ + return _Browser_withNode(id, function(node) + { + return { + scene: { + width: node.scrollWidth, + height: node.scrollHeight + }, + viewport: { + x: node.scrollLeft, + y: node.scrollTop, + width: node.clientWidth, + height: node.clientHeight + } + }; + }); +} + + +var _Browser_setViewportOf = F3(function(id, x, y) +{ + return _Browser_withNode(id, function(node) + { + node.scrollLeft = x; + node.scrollTop = y; + return _Utils_Tuple0; + }); +}); + + + +// ELEMENT + + +function _Browser_getElement(id) +{ + return _Browser_withNode(id, function(node) + { + var rect = node.getBoundingClientRect(); + var x = _Browser_window.pageXOffset; + var y = _Browser_window.pageYOffset; + return { + scene: _Browser_getScene(), + viewport: { + x: x, + y: y, + width: _Browser_doc.documentElement.clientWidth, + height: _Browser_doc.documentElement.clientHeight + }, + element: { + x: x + rect.left, + y: y + rect.top, + width: rect.width, + height: rect.height + } + }; + }); +} + + + +// LOAD and RELOAD + + +function _Browser_reload(skipCache) +{ + return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function(callback) + { + _VirtualDom_doc.location.reload(skipCache); + })); +} + +function _Browser_load(url) +{ + return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function(callback) + { + try + { + _Browser_window.location = url; + } + catch(err) + { + // Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here. + // Other browsers reload the page, so let's be consistent about that. + _VirtualDom_doc.location.reload(false); + } + })); +} +var elm$core$Maybe$Nothing = {$: 'Nothing'}; +var author$project$Lexicon$initialModel = {currentWord: elm$core$Maybe$Nothing, errorMessage: elm$core$Maybe$Nothing, wordList: elm$core$Maybe$Nothing}; +var author$project$Main$SearchView = {$: 'SearchView'}; +var author$project$Main$initialModel = {currentPage: author$project$Main$SearchView, errorMessage: elm$core$Maybe$Nothing, lexiconModel: author$project$Lexicon$initialModel, query: '', savedWords: elm$core$Maybe$Nothing, searchInput: elm$core$Maybe$Nothing}; +var elm$core$Array$branchFactor = 32; +var elm$core$Array$Array_elm_builtin = F4( + function (a, b, c, d) { + return {$: 'Array_elm_builtin', a: a, b: b, c: c, d: d}; + }); +var elm$core$Basics$EQ = {$: 'EQ'}; +var elm$core$Basics$GT = {$: 'GT'}; +var elm$core$Basics$LT = {$: 'LT'}; +var elm$core$Dict$foldr = F3( + function (func, acc, t) { + foldr: + while (true) { + if (t.$ === 'RBEmpty_elm_builtin') { + return acc; + } else { + var key = t.b; + var value = t.c; + var left = t.d; + var right = t.e; + var $temp$func = func, + $temp$acc = A3( + func, + key, + value, + A3(elm$core$Dict$foldr, func, acc, right)), + $temp$t = left; + func = $temp$func; + acc = $temp$acc; + t = $temp$t; + continue foldr; + } + } + }); +var elm$core$List$cons = _List_cons; +var elm$core$Dict$toList = function (dict) { + return A3( + elm$core$Dict$foldr, + F3( + function (key, value, list) { + return A2( + elm$core$List$cons, + _Utils_Tuple2(key, value), + list); + }), + _List_Nil, + dict); +}; +var elm$core$Dict$keys = function (dict) { + return A3( + elm$core$Dict$foldr, + F3( + function (key, value, keyList) { + return A2(elm$core$List$cons, key, keyList); + }), + _List_Nil, + dict); +}; +var elm$core$Set$toList = function (_n0) { + var dict = _n0.a; + return elm$core$Dict$keys(dict); +}; +var elm$core$Elm$JsArray$foldr = _JsArray_foldr; +var elm$core$Array$foldr = F3( + function (func, baseCase, _n0) { + var tree = _n0.c; + var tail = _n0.d; + var helper = F2( + function (node, acc) { + if (node.$ === 'SubTree') { + var subTree = node.a; + return A3(elm$core$Elm$JsArray$foldr, helper, acc, subTree); + } else { + var values = node.a; + return A3(elm$core$Elm$JsArray$foldr, func, acc, values); + } + }); + return A3( + elm$core$Elm$JsArray$foldr, + helper, + A3(elm$core$Elm$JsArray$foldr, func, baseCase, tail), + tree); + }); +var elm$core$Array$toList = function (array) { + return A3(elm$core$Array$foldr, elm$core$List$cons, _List_Nil, array); +}; +var elm$core$Basics$ceiling = _Basics_ceiling; +var elm$core$Basics$fdiv = _Basics_fdiv; +var elm$core$Basics$logBase = F2( + function (base, number) { + return _Basics_log(number) / _Basics_log(base); + }); +var elm$core$Basics$toFloat = _Basics_toFloat; +var elm$core$Array$shiftStep = elm$core$Basics$ceiling( + A2(elm$core$Basics$logBase, 2, elm$core$Array$branchFactor)); +var elm$core$Elm$JsArray$empty = _JsArray_empty; +var elm$core$Array$empty = A4(elm$core$Array$Array_elm_builtin, 0, elm$core$Array$shiftStep, elm$core$Elm$JsArray$empty, elm$core$Elm$JsArray$empty); +var elm$core$Array$Leaf = function (a) { + return {$: 'Leaf', a: a}; +}; +var elm$core$Array$SubTree = function (a) { + return {$: 'SubTree', a: a}; +}; +var elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList; +var elm$core$List$foldl = F3( + function (func, acc, list) { + foldl: + while (true) { + if (!list.b) { + return acc; + } else { + var x = list.a; + var xs = list.b; + var $temp$func = func, + $temp$acc = A2(func, x, acc), + $temp$list = xs; + func = $temp$func; + acc = $temp$acc; + list = $temp$list; + continue foldl; + } + } + }); +var elm$core$List$reverse = function (list) { + return A3(elm$core$List$foldl, elm$core$List$cons, _List_Nil, list); +}; +var elm$core$Array$compressNodes = F2( + function (nodes, acc) { + compressNodes: + while (true) { + var _n0 = A2(elm$core$Elm$JsArray$initializeFromList, elm$core$Array$branchFactor, nodes); + var node = _n0.a; + var remainingNodes = _n0.b; + var newAcc = A2( + elm$core$List$cons, + elm$core$Array$SubTree(node), + acc); + if (!remainingNodes.b) { + return elm$core$List$reverse(newAcc); + } else { + var $temp$nodes = remainingNodes, + $temp$acc = newAcc; + nodes = $temp$nodes; + acc = $temp$acc; + continue compressNodes; + } + } + }); +var elm$core$Basics$apR = F2( + function (x, f) { + return f(x); + }); +var elm$core$Basics$eq = _Utils_equal; +var elm$core$Tuple$first = function (_n0) { + var x = _n0.a; + return x; +}; +var elm$core$Array$treeFromBuilder = F2( + function (nodeList, nodeListSize) { + treeFromBuilder: + while (true) { + var newNodeSize = elm$core$Basics$ceiling(nodeListSize / elm$core$Array$branchFactor); + if (newNodeSize === 1) { + return A2(elm$core$Elm$JsArray$initializeFromList, elm$core$Array$branchFactor, nodeList).a; + } else { + var $temp$nodeList = A2(elm$core$Array$compressNodes, nodeList, _List_Nil), + $temp$nodeListSize = newNodeSize; + nodeList = $temp$nodeList; + nodeListSize = $temp$nodeListSize; + continue treeFromBuilder; + } + } + }); +var elm$core$Basics$add = _Basics_add; +var elm$core$Basics$apL = F2( + function (f, x) { + return f(x); + }); +var elm$core$Basics$floor = _Basics_floor; +var elm$core$Basics$gt = _Utils_gt; +var elm$core$Basics$max = F2( + function (x, y) { + return (_Utils_cmp(x, y) > 0) ? x : y; + }); +var elm$core$Basics$mul = _Basics_mul; +var elm$core$Basics$sub = _Basics_sub; +var elm$core$Elm$JsArray$length = _JsArray_length; +var elm$core$Array$builderToArray = F2( + function (reverseNodeList, builder) { + if (!builder.nodeListSize) { + return A4( + elm$core$Array$Array_elm_builtin, + elm$core$Elm$JsArray$length(builder.tail), + elm$core$Array$shiftStep, + elm$core$Elm$JsArray$empty, + builder.tail); + } else { + var treeLen = builder.nodeListSize * elm$core$Array$branchFactor; + var depth = elm$core$Basics$floor( + A2(elm$core$Basics$logBase, elm$core$Array$branchFactor, treeLen - 1)); + var correctNodeList = reverseNodeList ? elm$core$List$reverse(builder.nodeList) : builder.nodeList; + var tree = A2(elm$core$Array$treeFromBuilder, correctNodeList, builder.nodeListSize); + return A4( + elm$core$Array$Array_elm_builtin, + elm$core$Elm$JsArray$length(builder.tail) + treeLen, + A2(elm$core$Basics$max, 5, depth * elm$core$Array$shiftStep), + tree, + builder.tail); + } + }); +var elm$core$Basics$False = {$: 'False'}; +var elm$core$Basics$idiv = _Basics_idiv; +var elm$core$Basics$lt = _Utils_lt; +var elm$core$Elm$JsArray$initialize = _JsArray_initialize; +var elm$core$Array$initializeHelp = F5( + function (fn, fromIndex, len, nodeList, tail) { + initializeHelp: + while (true) { + if (fromIndex < 0) { + return A2( + elm$core$Array$builderToArray, + false, + {nodeList: nodeList, nodeListSize: (len / elm$core$Array$branchFactor) | 0, tail: tail}); + } else { + var leaf = elm$core$Array$Leaf( + A3(elm$core$Elm$JsArray$initialize, elm$core$Array$branchFactor, fromIndex, fn)); + var $temp$fn = fn, + $temp$fromIndex = fromIndex - elm$core$Array$branchFactor, + $temp$len = len, + $temp$nodeList = A2(elm$core$List$cons, leaf, nodeList), + $temp$tail = tail; + fn = $temp$fn; + fromIndex = $temp$fromIndex; + len = $temp$len; + nodeList = $temp$nodeList; + tail = $temp$tail; + continue initializeHelp; + } + } + }); +var elm$core$Basics$le = _Utils_le; +var elm$core$Basics$remainderBy = _Basics_remainderBy; +var elm$core$Array$initialize = F2( + function (len, fn) { + if (len <= 0) { + return elm$core$Array$empty; + } else { + var tailLen = len % elm$core$Array$branchFactor; + var tail = A3(elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn); + var initialFromIndex = (len - tailLen) - elm$core$Array$branchFactor; + return A5(elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail); + } + }); +var elm$core$Maybe$Just = function (a) { + return {$: 'Just', a: a}; +}; +var elm$core$Result$Err = function (a) { + return {$: 'Err', a: a}; +}; +var elm$core$Result$Ok = function (a) { + return {$: 'Ok', a: a}; +}; +var elm$core$Basics$True = {$: 'True'}; +var elm$core$Result$isOk = function (result) { + if (result.$ === 'Ok') { + return true; + } else { + return false; + } +}; +var elm$json$Json$Decode$Failure = F2( + function (a, b) { + return {$: 'Failure', a: a, b: b}; + }); +var elm$json$Json$Decode$Field = F2( + function (a, b) { + return {$: 'Field', a: a, b: b}; + }); +var elm$json$Json$Decode$Index = F2( + function (a, b) { + return {$: 'Index', a: a, b: b}; + }); +var elm$json$Json$Decode$OneOf = function (a) { + return {$: 'OneOf', a: a}; +}; +var elm$core$Basics$and = _Basics_and; +var elm$core$Basics$append = _Utils_append; +var elm$core$Basics$or = _Basics_or; +var elm$core$Char$toCode = _Char_toCode; +var elm$core$Char$isLower = function (_char) { + var code = elm$core$Char$toCode(_char); + return (97 <= code) && (code <= 122); +}; +var elm$core$Char$isUpper = function (_char) { + var code = elm$core$Char$toCode(_char); + return (code <= 90) && (65 <= code); +}; +var elm$core$Char$isAlpha = function (_char) { + return elm$core$Char$isLower(_char) || elm$core$Char$isUpper(_char); +}; +var elm$core$Char$isDigit = function (_char) { + var code = elm$core$Char$toCode(_char); + return (code <= 57) && (48 <= code); +}; +var elm$core$Char$isAlphaNum = function (_char) { + return elm$core$Char$isLower(_char) || (elm$core$Char$isUpper(_char) || elm$core$Char$isDigit(_char)); +}; +var elm$core$List$length = function (xs) { + return A3( + elm$core$List$foldl, + F2( + function (_n0, i) { + return i + 1; + }), + 0, + xs); +}; +var elm$core$List$map2 = _List_map2; +var elm$core$List$rangeHelp = F3( + function (lo, hi, list) { + rangeHelp: + while (true) { + if (_Utils_cmp(lo, hi) < 1) { + var $temp$lo = lo, + $temp$hi = hi - 1, + $temp$list = A2(elm$core$List$cons, hi, list); + lo = $temp$lo; + hi = $temp$hi; + list = $temp$list; + continue rangeHelp; + } else { + return list; + } + } + }); +var elm$core$List$range = F2( + function (lo, hi) { + return A3(elm$core$List$rangeHelp, lo, hi, _List_Nil); + }); +var elm$core$List$indexedMap = F2( + function (f, xs) { + return A3( + elm$core$List$map2, + f, + A2( + elm$core$List$range, + 0, + elm$core$List$length(xs) - 1), + xs); + }); +var elm$core$String$all = _String_all; +var elm$core$String$fromInt = _String_fromNumber; +var elm$core$String$join = F2( + function (sep, chunks) { + return A2( + _String_join, + sep, + _List_toArray(chunks)); + }); +var elm$core$String$uncons = _String_uncons; +var elm$core$String$split = F2( + function (sep, string) { + return _List_fromArray( + A2(_String_split, sep, string)); + }); +var elm$json$Json$Decode$indent = function (str) { + return A2( + elm$core$String$join, + '\n ', + A2(elm$core$String$split, '\n', str)); +}; +var elm$json$Json$Encode$encode = _Json_encode; +var elm$json$Json$Decode$errorOneOf = F2( + function (i, error) { + return '\n\n(' + (elm$core$String$fromInt(i + 1) + (') ' + elm$json$Json$Decode$indent( + elm$json$Json$Decode$errorToString(error)))); + }); +var elm$json$Json$Decode$errorToString = function (error) { + return A2(elm$json$Json$Decode$errorToStringHelp, error, _List_Nil); +}; +var elm$json$Json$Decode$errorToStringHelp = F2( + function (error, context) { + errorToStringHelp: + while (true) { + switch (error.$) { + case 'Field': + var f = error.a; + var err = error.b; + var isSimple = function () { + var _n1 = elm$core$String$uncons(f); + if (_n1.$ === 'Nothing') { + return false; + } else { + var _n2 = _n1.a; + var _char = _n2.a; + var rest = _n2.b; + return elm$core$Char$isAlpha(_char) && A2(elm$core$String$all, elm$core$Char$isAlphaNum, rest); + } + }(); + var fieldName = isSimple ? ('.' + f) : ('[\'' + (f + '\']')); + var $temp$error = err, + $temp$context = A2(elm$core$List$cons, fieldName, context); + error = $temp$error; + context = $temp$context; + continue errorToStringHelp; + case 'Index': + var i = error.a; + var err = error.b; + var indexName = '[' + (elm$core$String$fromInt(i) + ']'); + var $temp$error = err, + $temp$context = A2(elm$core$List$cons, indexName, context); + error = $temp$error; + context = $temp$context; + continue errorToStringHelp; + case 'OneOf': + var errors = error.a; + if (!errors.b) { + return 'Ran into a Json.Decode.oneOf with no possibilities' + function () { + if (!context.b) { + return '!'; + } else { + return ' at json' + A2( + elm$core$String$join, + '', + elm$core$List$reverse(context)); + } + }(); + } else { + if (!errors.b.b) { + var err = errors.a; + var $temp$error = err, + $temp$context = context; + error = $temp$error; + context = $temp$context; + continue errorToStringHelp; + } else { + var starter = function () { + if (!context.b) { + return 'Json.Decode.oneOf'; + } else { + return 'The Json.Decode.oneOf at json' + A2( + elm$core$String$join, + '', + elm$core$List$reverse(context)); + } + }(); + var introduction = starter + (' failed in the following ' + (elm$core$String$fromInt( + elm$core$List$length(errors)) + ' ways:')); + return A2( + elm$core$String$join, + '\n\n', + A2( + elm$core$List$cons, + introduction, + A2(elm$core$List$indexedMap, elm$json$Json$Decode$errorOneOf, errors))); + } + } + default: + var msg = error.a; + var json = error.b; + var introduction = function () { + if (!context.b) { + return 'Problem with the given value:\n\n'; + } else { + return 'Problem with the value at json' + (A2( + elm$core$String$join, + '', + elm$core$List$reverse(context)) + ':\n\n '); + } + }(); + return introduction + (elm$json$Json$Decode$indent( + A2(elm$json$Json$Encode$encode, 4, json)) + ('\n\n' + msg)); + } + } + }); +var elm$json$Json$Encode$null = _Json_encodeNull; +var author$project$Lexicon$getWordList = _Platform_outgoingPort( + 'getWordList', + function ($) { + return elm$json$Json$Encode$null; + }); +var author$project$Lexicon$loadWordList = author$project$Lexicon$getWordList(_Utils_Tuple0); +var author$project$Main$LexiconMsg = function (a) { + return {$: 'LexiconMsg', a: a}; +}; +var elm$core$Platform$Cmd$map = _Platform_map; +var author$project$Main$startApplication = A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, author$project$Lexicon$loadWordList); +var elm$core$List$isEmpty = function (xs) { + if (!xs.b) { + return true; + } else { + return false; + } +}; +var author$project$Main$init = function (wl) { + return elm$core$List$isEmpty(wl) ? _Utils_Tuple2(author$project$Main$initialModel, author$project$Main$startApplication) : _Utils_Tuple2( + _Utils_update( + author$project$Main$initialModel, + { + savedWords: elm$core$Maybe$Just(wl) + }), + author$project$Main$startApplication); +}; +var author$project$Lexicon$WordDefinitionReceived = function (a) { + return {$: 'WordDefinitionReceived', a: a}; +}; +var author$project$Lexicon$WordListReceived = function (a) { + return {$: 'WordListReceived', a: a}; +}; +var elm$json$Json$Decode$andThen = _Json_andThen; +var elm$json$Json$Decode$field = _Json_decodeField; +var elm$json$Json$Decode$list = _Json_decodeList; +var elm$json$Json$Decode$string = _Json_decodeString; +var elm$json$Json$Decode$succeed = _Json_succeed; +var author$project$Lexicon$wordDefinitionReceived = _Platform_incomingPort( + 'wordDefinitionReceived', + A2( + elm$json$Json$Decode$andThen, + function (word) { + return A2( + elm$json$Json$Decode$andThen, + function (seeAlso) { + return A2( + elm$json$Json$Decode$andThen, + function (id) { + return A2( + elm$json$Json$Decode$andThen, + function (definition) { + return elm$json$Json$Decode$succeed( + {definition: definition, id: id, seeAlso: seeAlso, word: word}); + }, + A2(elm$json$Json$Decode$field, 'definition', elm$json$Json$Decode$string)); + }, + A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); + }, + A2( + elm$json$Json$Decode$field, + 'seeAlso', + elm$json$Json$Decode$list(elm$json$Json$Decode$string))); + }, + A2(elm$json$Json$Decode$field, 'word', elm$json$Json$Decode$string))); +var author$project$Lexicon$wordListReceived = _Platform_incomingPort( + 'wordListReceived', + elm$json$Json$Decode$list( + A2( + elm$json$Json$Decode$andThen, + function (word) { + return A2( + elm$json$Json$Decode$andThen, + function (id) { + return elm$json$Json$Decode$succeed( + {id: id, word: word}); + }, + A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); + }, + A2(elm$json$Json$Decode$field, 'word', elm$json$Json$Decode$string)))); +var elm$core$Platform$Sub$batch = _Platform_batch; +var author$project$Lexicon$subscriptions = elm$core$Platform$Sub$batch( + _List_fromArray( + [ + author$project$Lexicon$wordListReceived( + function (wl) { + return author$project$Lexicon$WordListReceived(wl); + }), + author$project$Lexicon$wordDefinitionReceived( + function (w) { + return author$project$Lexicon$WordDefinitionReceived(w); + }) + ])); +var author$project$Main$SavedWordListChanged = function (a) { + return {$: 'SavedWordListChanged', a: a}; +}; +var elm$json$Json$Encode$string = _Json_wrap; +var author$project$Main$lcDebug = _Platform_outgoingPort('lcDebug', elm$json$Json$Encode$string); +var author$project$Main$savedWordListChanged = _Platform_incomingPort( + 'savedWordListChanged', + elm$json$Json$Decode$list( + A2( + elm$json$Json$Decode$andThen, + function (word) { + return A2( + elm$json$Json$Decode$andThen, + function (id) { + return elm$json$Json$Decode$succeed( + {id: id, word: word}); + }, + A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); + }, + A2(elm$json$Json$Decode$field, 'word', elm$json$Json$Decode$string)))); +var elm$core$Platform$Sub$map = _Platform_map; +var author$project$Main$subscriptions = function (model) { + var d = author$project$Main$lcDebug('subscription arrived'); + return elm$core$Platform$Sub$batch( + _List_fromArray( + [ + author$project$Main$savedWordListChanged( + function (wl) { + return author$project$Main$SavedWordListChanged(wl); + }), + A2(elm$core$Platform$Sub$map, author$project$Main$LexiconMsg, author$project$Lexicon$subscriptions) + ])); +}; +var author$project$Lexicon$getWordDefinition = _Platform_outgoingPort('getWordDefinition', elm$json$Json$Encode$string); +var author$project$Lexicon$loadWordDefinition = function (id) { + return author$project$Lexicon$getWordDefinition(id); +}; +var elm$core$List$foldrHelper = F4( + function (fn, acc, ctr, ls) { + if (!ls.b) { + return acc; + } else { + var a = ls.a; + var r1 = ls.b; + if (!r1.b) { + return A2(fn, a, acc); + } else { + var b = r1.a; + var r2 = r1.b; + if (!r2.b) { + return A2( + fn, + a, + A2(fn, b, acc)); + } else { + var c = r2.a; + var r3 = r2.b; + if (!r3.b) { + return A2( + fn, + a, + A2( + fn, + b, + A2(fn, c, acc))); + } else { + var d = r3.a; + var r4 = r3.b; + var res = (ctr > 500) ? A3( + elm$core$List$foldl, + fn, + acc, + elm$core$List$reverse(r4)) : A4(elm$core$List$foldrHelper, fn, acc, ctr + 1, r4); + return A2( + fn, + a, + A2( + fn, + b, + A2( + fn, + c, + A2(fn, d, res)))); + } + } + } + } + }); +var elm$core$List$foldr = F3( + function (fn, acc, ls) { + return A4(elm$core$List$foldrHelper, fn, acc, 0, ls); + }); +var elm$core$List$filter = F2( + function (isGood, list) { + return A3( + elm$core$List$foldr, + F2( + function (x, xs) { + return isGood(x) ? A2(elm$core$List$cons, x, xs) : xs; + }), + _List_Nil, + list); + }); +var elm$core$List$head = function (list) { + if (list.b) { + var x = list.a; + var xs = list.b; + return elm$core$Maybe$Just(x); + } else { + return elm$core$Maybe$Nothing; + } +}; +var elm$core$Platform$Cmd$batch = _Platform_batch; +var elm$core$Platform$Cmd$none = elm$core$Platform$Cmd$batch(_List_Nil); +var author$project$Lexicon$loadWordDefinitionByWord = F2( + function (word, wordList) { + var list = function () { + if (wordList.$ === 'Just') { + var l = wordList.a; + return l; + } else { + return _List_Nil; + } + }(); + var found = elm$core$List$head( + A2( + elm$core$List$filter, + function (i) { + return _Utils_eq(i.word, word); + }, + list)); + if (found.$ === 'Just') { + var f = found.a; + return author$project$Lexicon$loadWordDefinition(f.id); + } else { + return elm$core$Platform$Cmd$none; + } + }); +var elm$core$Debug$log = _Debug_log; +var author$project$Lexicon$update = F2( + function (msg, model) { + switch (msg.$) { + case 'WordListReceived': + var wl = msg.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + wordList: elm$core$Maybe$Just(wl) + }), + elm$core$Platform$Cmd$none); + case 'WordDefinitionReceived': + var w = msg.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + currentWord: elm$core$Maybe$Just(w) + }), + elm$core$Platform$Cmd$none); + case 'HandleWordListResponse': + var result = msg.a; + if (result.$ === 'Ok') { + var results = result.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + wordList: elm$core$Maybe$Just( + A2(elm$core$Debug$log, 'wordlist:', results)) + }), + elm$core$Platform$Cmd$none); + } else { + var error = result.a; + if (error.$ === 'BadPayload') { + var errMsg = error.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + errorMessage: elm$core$Maybe$Just(errMsg) + }), + elm$core$Platform$Cmd$none); + } else { + return _Utils_Tuple2( + _Utils_update( + model, + { + errorMessage: elm$core$Maybe$Just('something happened') + }), + elm$core$Platform$Cmd$none); + } + } + default: + var result = msg.a; + if (result.$ === 'Ok') { + var results = result.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + currentWord: elm$core$Maybe$Just( + A2(elm$core$Debug$log, 'currentWord:', results)) + }), + elm$core$Platform$Cmd$none); + } else { + var error = result.a; + if (error.$ === 'BadPayload') { + var errMsg = error.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + errorMessage: elm$core$Maybe$Just(errMsg) + }), + elm$core$Platform$Cmd$none); + } else { + return _Utils_Tuple2( + _Utils_update( + model, + { + errorMessage: elm$core$Maybe$Just('something happened') + }), + elm$core$Platform$Cmd$none); + } + } + } + }); +var elm$json$Json$Encode$list = F2( + function (func, entries) { + return _Json_wrap( + A3( + elm$core$List$foldl, + _Json_addEntry(func), + _Json_emptyArray(_Utils_Tuple0), + entries)); + }); +var elm$json$Json$Encode$object = function (pairs) { + return _Json_wrap( + A3( + elm$core$List$foldl, + F2( + function (_n0, obj) { + var k = _n0.a; + var v = _n0.b; + return A3(_Json_addField, k, v, obj); + }), + _Json_emptyObject(_Utils_Tuple0), + pairs)); +}; +var author$project$Lexicon$wordEncoder = function (word) { + return elm$json$Json$Encode$object( + _List_fromArray( + [ + _Utils_Tuple2( + 'id', + elm$json$Json$Encode$string(word.id)), + _Utils_Tuple2( + 'word', + elm$json$Json$Encode$string(word.word)), + _Utils_Tuple2( + 'definition', + elm$json$Json$Encode$string(word.definition)), + _Utils_Tuple2( + 'seeAlso', + A2(elm$json$Json$Encode$list, elm$json$Json$Encode$string, word.seeAlso)) + ])); +}; +var author$project$Main$DefinitionView = {$: 'DefinitionView'}; +var author$project$Main$LoadDefinitionByInt = function (a) { + return {$: 'LoadDefinitionByInt', a: a}; +}; +var author$project$Main$appGoHome = _Platform_outgoingPort( + 'appGoHome', + function ($) { + return elm$json$Json$Encode$null; + }); +var author$project$Main$appGoSettings = _Platform_outgoingPort( + 'appGoSettings', + function ($) { + return elm$json$Json$Encode$null; + }); +var elm$core$Basics$identity = function (x) { + return x; +}; +var author$project$Main$removeSavedWord = _Platform_outgoingPort('removeSavedWord', elm$core$Basics$identity); +var author$project$Main$saveWord = _Platform_outgoingPort('saveWord', elm$core$Basics$identity); +var author$project$Main$scrollTop = _Platform_outgoingPort( + 'scrollTop', + function ($) { + return elm$json$Json$Encode$null; + }); +var elm$random$Random$Generate = function (a) { + return {$: 'Generate', a: a}; +}; +var elm$core$Task$andThen = _Scheduler_andThen; +var elm$core$Task$succeed = _Scheduler_succeed; +var elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy; +var elm$random$Random$Seed = F2( + function (a, b) { + return {$: 'Seed', a: a, b: b}; + }); +var elm$random$Random$next = function (_n0) { + var state0 = _n0.a; + var incr = _n0.b; + return A2(elm$random$Random$Seed, ((state0 * 1664525) + incr) >>> 0, incr); +}; +var elm$random$Random$initialSeed = function (x) { + var _n0 = elm$random$Random$next( + A2(elm$random$Random$Seed, 0, 1013904223)); + var state1 = _n0.a; + var incr = _n0.b; + var state2 = (state1 + x) >>> 0; + return elm$random$Random$next( + A2(elm$random$Random$Seed, state2, incr)); +}; +var elm$time$Time$Name = function (a) { + return {$: 'Name', a: a}; +}; +var elm$time$Time$Offset = function (a) { + return {$: 'Offset', a: a}; +}; +var elm$time$Time$Zone = F2( + function (a, b) { + return {$: 'Zone', a: a, b: b}; + }); +var elm$time$Time$customZone = elm$time$Time$Zone; +var elm$time$Time$Posix = function (a) { + return {$: 'Posix', a: a}; +}; +var elm$time$Time$millisToPosix = elm$time$Time$Posix; +var elm$time$Time$now = _Time_now(elm$time$Time$millisToPosix); +var elm$time$Time$posixToMillis = function (_n0) { + var millis = _n0.a; + return millis; +}; +var elm$random$Random$init = A2( + elm$core$Task$andThen, + function (time) { + return elm$core$Task$succeed( + elm$random$Random$initialSeed( + elm$time$Time$posixToMillis(time))); + }, + elm$time$Time$now); +var elm$core$Platform$sendToApp = _Platform_sendToApp; +var elm$random$Random$step = F2( + function (_n0, seed) { + var generator = _n0.a; + return generator(seed); + }); +var elm$random$Random$onEffects = F3( + function (router, commands, seed) { + if (!commands.b) { + return elm$core$Task$succeed(seed); + } else { + var generator = commands.a.a; + var rest = commands.b; + var _n1 = A2(elm$random$Random$step, generator, seed); + var value = _n1.a; + var newSeed = _n1.b; + return A2( + elm$core$Task$andThen, + function (_n2) { + return A3(elm$random$Random$onEffects, router, rest, newSeed); + }, + A2(elm$core$Platform$sendToApp, router, value)); + } + }); +var elm$random$Random$onSelfMsg = F3( + function (_n0, _n1, seed) { + return elm$core$Task$succeed(seed); + }); +var elm$random$Random$Generator = function (a) { + return {$: 'Generator', a: a}; +}; +var elm$random$Random$map = F2( + function (func, _n0) { + var genA = _n0.a; + return elm$random$Random$Generator( + function (seed0) { + var _n1 = genA(seed0); + var a = _n1.a; + var seed1 = _n1.b; + return _Utils_Tuple2( + func(a), + seed1); + }); + }); +var elm$random$Random$cmdMap = F2( + function (func, _n0) { + var generator = _n0.a; + return elm$random$Random$Generate( + A2(elm$random$Random$map, func, generator)); + }); +_Platform_effectManagers['Random'] = _Platform_createManager(elm$random$Random$init, elm$random$Random$onEffects, elm$random$Random$onSelfMsg, elm$random$Random$cmdMap); +var elm$random$Random$command = _Platform_leaf('Random'); +var elm$random$Random$generate = F2( + function (tagger, generator) { + return elm$random$Random$command( + elm$random$Random$Generate( + A2(elm$random$Random$map, tagger, generator))); + }); +var elm$core$Basics$negate = function (n) { + return -n; +}; +var elm$core$Bitwise$and = _Bitwise_and; +var elm$core$Bitwise$xor = _Bitwise_xor; +var elm$random$Random$peel = function (_n0) { + var state = _n0.a; + var word = (state ^ (state >>> ((state >>> 28) + 4))) * 277803737; + return ((word >>> 22) ^ word) >>> 0; +}; +var elm$random$Random$int = F2( + function (a, b) { + return elm$random$Random$Generator( + function (seed0) { + var _n0 = (_Utils_cmp(a, b) < 0) ? _Utils_Tuple2(a, b) : _Utils_Tuple2(b, a); + var lo = _n0.a; + var hi = _n0.b; + var range = (hi - lo) + 1; + if (!((range - 1) & range)) { + return _Utils_Tuple2( + (((range - 1) & elm$random$Random$peel(seed0)) >>> 0) + lo, + elm$random$Random$next(seed0)); + } else { + var threshhold = (((-range) >>> 0) % range) >>> 0; + var accountForBias = function (seed) { + accountForBias: + while (true) { + var x = elm$random$Random$peel(seed); + var seedN = elm$random$Random$next(seed); + if (_Utils_cmp(x, threshhold) < 0) { + var $temp$seed = seedN; + seed = $temp$seed; + continue accountForBias; + } else { + return _Utils_Tuple2((x % range) + lo, seedN); + } + } + }; + return accountForBias(seed0); + } + }); + }); +var author$project$Main$update = F2( + function (msg, model) { + switch (msg.$) { + case 'GoHome': + return _Utils_Tuple2( + model, + author$project$Main$appGoHome(_Utils_Tuple0)); + case 'GoSettings': + return _Utils_Tuple2( + model, + author$project$Main$appGoSettings(_Utils_Tuple0)); + case 'LexiconMsg': + var subMsg = msg.a; + var _n1 = A2(author$project$Lexicon$update, subMsg, model.lexiconModel); + var updateLexiconModel = _n1.a; + var lexiconCmd = _n1.b; + switch (subMsg.$) { + case 'WordListReceived': + return _Utils_Tuple2( + _Utils_update( + model, + {currentPage: author$project$Main$SearchView, lexiconModel: updateLexiconModel}), + A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, lexiconCmd)); + case 'WordDefinitionReceived': + return _Utils_Tuple2( + _Utils_update( + model, + {currentPage: author$project$Main$DefinitionView, lexiconModel: updateLexiconModel}), + elm$core$Platform$Cmd$batch( + _List_fromArray( + [ + A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, lexiconCmd), + author$project$Main$scrollTop(_Utils_Tuple0) + ]))); + default: + return _Utils_Tuple2( + _Utils_update( + model, + {lexiconModel: updateLexiconModel}), + A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, lexiconCmd)); + } + case 'Navigate': + var page = msg.a; + return _Utils_Tuple2( + _Utils_update( + model, + {currentPage: page}), + elm$core$Platform$Cmd$none); + case 'LoadRandomDefinition': + var _n3 = model.lexiconModel.wordList; + if (_n3.$ === 'Just') { + var wordList = _n3.a; + var lastItem = elm$core$List$length(wordList) - 1; + var gen = A2(elm$random$Random$int, 1, lastItem); + return _Utils_Tuple2( + model, + A2(elm$random$Random$generate, author$project$Main$LoadDefinitionByInt, gen)); + } else { + return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); + } + case 'LoadDefinition': + var id = msg.a; + return _Utils_Tuple2( + model, + A2( + elm$core$Platform$Cmd$map, + author$project$Main$LexiconMsg, + author$project$Lexicon$loadWordDefinition(id))); + case 'LoadDefinitionByWord': + var word = msg.a; + return _Utils_Tuple2( + model, + A2( + elm$core$Platform$Cmd$map, + author$project$Main$LexiconMsg, + A2(author$project$Lexicon$loadWordDefinitionByWord, word, model.lexiconModel.wordList))); + case 'LoadDefinitionByInt': + var id = msg.a; + return _Utils_Tuple2( + model, + A2( + elm$core$Platform$Cmd$map, + author$project$Main$LexiconMsg, + author$project$Lexicon$loadWordDefinition( + elm$core$String$fromInt(id)))); + case 'FilterWordList': + var wordOrPart = msg.a; + return _Utils_Tuple2( + _Utils_update( + model, + {query: wordOrPart}), + elm$core$Platform$Cmd$none); + case 'SaveWord': + var word = msg.a; + return _Utils_Tuple2( + model, + author$project$Main$saveWord( + author$project$Lexicon$wordEncoder(word))); + case 'RemoveSavedWord': + var word = msg.a; + return _Utils_Tuple2( + model, + author$project$Main$removeSavedWord( + author$project$Lexicon$wordEncoder(word))); + case 'SavedWordListChanged': + var swl = msg.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + savedWords: elm$core$Maybe$Just(swl) + }), + elm$core$Platform$Cmd$none); + default: + return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); + } + }); +var author$project$Main$LoadDefinitionByWord = function (a) { + return {$: 'LoadDefinitionByWord', a: a}; +}; +var author$project$Main$GoHome = {$: 'GoHome'}; +var author$project$Main$GoSettings = {$: 'GoSettings'}; +var elm$core$String$length = _String_length; +var elm$core$String$slice = _String_slice; +var elm$core$String$dropLeft = F2( + function (n, string) { + return (n < 1) ? string : A3( + elm$core$String$slice, + n, + elm$core$String$length(string), + string); + }); +var elm$core$String$startsWith = _String_startsWith; +var elm$core$String$foldr = _String_foldr; +var elm$core$String$toList = function (string) { + return A3(elm$core$String$foldr, elm$core$List$cons, _List_Nil, string); +}; +var elm$core$String$cons = _String_cons; +var rtfeldman$elm_css$Css$withPrecedingHash = function (str) { + return A2(elm$core$String$startsWith, '#', str) ? str : A2( + elm$core$String$cons, + _Utils_chr('#'), + str); +}; +var rtfeldman$elm_css$Css$Structure$Compatible = {$: 'Compatible'}; +var rtfeldman$elm_css$Css$erroneousHex = function (str) { + return { + alpha: 1, + blue: 0, + color: rtfeldman$elm_css$Css$Structure$Compatible, + green: 0, + red: 0, + value: rtfeldman$elm_css$Css$withPrecedingHash(str) + }; +}; +var elm$core$Basics$composeR = F3( + function (f, g, x) { + return g( + f(x)); + }); +var elm$core$String$fromList = _String_fromList; +var elm$core$String$toLower = _String_toLower; +var elm$core$List$tail = function (list) { + if (list.b) { + var x = list.a; + var xs = list.b; + return elm$core$Maybe$Just(xs); + } else { + return elm$core$Maybe$Nothing; + } +}; +var elm$core$Maybe$withDefault = F2( + function (_default, maybe) { + if (maybe.$ === 'Just') { + var value = maybe.a; + return value; + } else { + return _default; + } + }); +var elm$core$Result$map = F2( + function (func, ra) { + if (ra.$ === 'Ok') { + var a = ra.a; + return elm$core$Result$Ok( + func(a)); + } else { + var e = ra.a; + return elm$core$Result$Err(e); + } + }); +var elm$core$Result$mapError = F2( + function (f, result) { + if (result.$ === 'Ok') { + var v = result.a; + return elm$core$Result$Ok(v); + } else { + var e = result.a; + return elm$core$Result$Err( + f(e)); + } + }); +var elm$core$String$isEmpty = function (string) { + return string === ''; +}; +var elm$core$Basics$pow = _Basics_pow; +var elm$core$String$fromChar = function (_char) { + return A2(elm$core$String$cons, _char, ''); +}; +var rtfeldman$elm_hex$Hex$fromStringHelp = F3( + function (position, chars, accumulated) { + fromStringHelp: + while (true) { + if (!chars.b) { + return elm$core$Result$Ok(accumulated); + } else { + var _char = chars.a; + var rest = chars.b; + switch (_char.valueOf()) { + case '0': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated; + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '1': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + A2(elm$core$Basics$pow, 16, position); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '2': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (2 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '3': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (3 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '4': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (4 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '5': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (5 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '6': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (6 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '7': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (7 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '8': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (8 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '9': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (9 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case 'a': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (10 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case 'b': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (11 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case 'c': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (12 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case 'd': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (13 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case 'e': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (14 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case 'f': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (15 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + default: + var nonHex = _char; + return elm$core$Result$Err( + elm$core$String$fromChar(nonHex) + ' is not a valid hexadecimal character.'); + } + } + } + }); +var rtfeldman$elm_hex$Hex$fromString = function (str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Result$Err('Empty strings are not valid hexadecimal strings.'); + } else { + var result = function () { + if (A2(elm$core$String$startsWith, '-', str)) { + var list = A2( + elm$core$Maybe$withDefault, + _List_Nil, + elm$core$List$tail( + elm$core$String$toList(str))); + return A2( + elm$core$Result$map, + elm$core$Basics$negate, + A3( + rtfeldman$elm_hex$Hex$fromStringHelp, + elm$core$List$length(list) - 1, + list, + 0)); + } else { + return A3( + rtfeldman$elm_hex$Hex$fromStringHelp, + elm$core$String$length(str) - 1, + elm$core$String$toList(str), + 0); + } + }(); + var formatError = function (err) { + return A2( + elm$core$String$join, + ' ', + _List_fromArray( + ['\"' + (str + '\"'), 'is not a valid hexadecimal string because', err])); + }; + return A2(elm$core$Result$mapError, formatError, result); + } +}; +var rtfeldman$elm_css$Css$validHex = F5( + function (str, _n0, _n1, _n2, _n3) { + var r1 = _n0.a; + var r2 = _n0.b; + var g1 = _n1.a; + var g2 = _n1.b; + var b1 = _n2.a; + var b2 = _n2.b; + var a1 = _n3.a; + var a2 = _n3.b; + var toResult = A2( + elm$core$Basics$composeR, + elm$core$String$fromList, + A2(elm$core$Basics$composeR, elm$core$String$toLower, rtfeldman$elm_hex$Hex$fromString)); + var results = _Utils_Tuple2( + _Utils_Tuple2( + toResult( + _List_fromArray( + [r1, r2])), + toResult( + _List_fromArray( + [g1, g2]))), + _Utils_Tuple2( + toResult( + _List_fromArray( + [b1, b2])), + toResult( + _List_fromArray( + [a1, a2])))); + if ((((results.a.a.$ === 'Ok') && (results.a.b.$ === 'Ok')) && (results.b.a.$ === 'Ok')) && (results.b.b.$ === 'Ok')) { + var _n5 = results.a; + var red = _n5.a.a; + var green = _n5.b.a; + var _n6 = results.b; + var blue = _n6.a.a; + var alpha = _n6.b.a; + return { + alpha: alpha / 255, + blue: blue, + color: rtfeldman$elm_css$Css$Structure$Compatible, + green: green, + red: red, + value: rtfeldman$elm_css$Css$withPrecedingHash(str) + }; + } else { + return rtfeldman$elm_css$Css$erroneousHex(str); + } + }); +var rtfeldman$elm_css$Css$hex = function (str) { + var withoutHash = A2(elm$core$String$startsWith, '#', str) ? A2(elm$core$String$dropLeft, 1, str) : str; + var _n0 = elm$core$String$toList(withoutHash); + _n0$4: + while (true) { + if ((_n0.b && _n0.b.b) && _n0.b.b.b) { + if (!_n0.b.b.b.b) { + var r = _n0.a; + var _n1 = _n0.b; + var g = _n1.a; + var _n2 = _n1.b; + var b = _n2.a; + return A5( + rtfeldman$elm_css$Css$validHex, + str, + _Utils_Tuple2(r, r), + _Utils_Tuple2(g, g), + _Utils_Tuple2(b, b), + _Utils_Tuple2( + _Utils_chr('f'), + _Utils_chr('f'))); + } else { + if (!_n0.b.b.b.b.b) { + var r = _n0.a; + var _n3 = _n0.b; + var g = _n3.a; + var _n4 = _n3.b; + var b = _n4.a; + var _n5 = _n4.b; + var a = _n5.a; + return A5( + rtfeldman$elm_css$Css$validHex, + str, + _Utils_Tuple2(r, r), + _Utils_Tuple2(g, g), + _Utils_Tuple2(b, b), + _Utils_Tuple2(a, a)); + } else { + if (_n0.b.b.b.b.b.b) { + if (!_n0.b.b.b.b.b.b.b) { + var r1 = _n0.a; + var _n6 = _n0.b; + var r2 = _n6.a; + var _n7 = _n6.b; + var g1 = _n7.a; + var _n8 = _n7.b; + var g2 = _n8.a; + var _n9 = _n8.b; + var b1 = _n9.a; + var _n10 = _n9.b; + var b2 = _n10.a; + return A5( + rtfeldman$elm_css$Css$validHex, + str, + _Utils_Tuple2(r1, r2), + _Utils_Tuple2(g1, g2), + _Utils_Tuple2(b1, b2), + _Utils_Tuple2( + _Utils_chr('f'), + _Utils_chr('f'))); + } else { + if (_n0.b.b.b.b.b.b.b.b && (!_n0.b.b.b.b.b.b.b.b.b)) { + var r1 = _n0.a; + var _n11 = _n0.b; + var r2 = _n11.a; + var _n12 = _n11.b; + var g1 = _n12.a; + var _n13 = _n12.b; + var g2 = _n13.a; + var _n14 = _n13.b; + var b1 = _n14.a; + var _n15 = _n14.b; + var b2 = _n15.a; + var _n16 = _n15.b; + var a1 = _n16.a; + var _n17 = _n16.b; + var a2 = _n17.a; + return A5( + rtfeldman$elm_css$Css$validHex, + str, + _Utils_Tuple2(r1, r2), + _Utils_Tuple2(g1, g2), + _Utils_Tuple2(b1, b2), + _Utils_Tuple2(a1, a2)); + } else { + break _n0$4; + } + } + } else { + break _n0$4; + } + } + } + } else { + break _n0$4; + } + } + return rtfeldman$elm_css$Css$erroneousHex(str); +}; +var elm$core$List$map = F2( + function (f, xs) { + return A3( + elm$core$List$foldr, + F2( + function (x, acc) { + return A2( + elm$core$List$cons, + f(x), + acc); + }), + _List_Nil, + xs); + }); +var rtfeldman$elm_css$Css$cssFunction = F2( + function (funcName, args) { + return funcName + ('(' + (A2(elm$core$String$join, ', ', args) + ')')); + }); +var rtfeldman$elm_css$Css$rgb = F3( + function (r, g, b) { + return { + alpha: 1, + blue: b, + color: rtfeldman$elm_css$Css$Structure$Compatible, + green: g, + red: r, + value: A2( + rtfeldman$elm_css$Css$cssFunction, + 'rgb', + A2( + elm$core$List$map, + elm$core$String$fromInt, + _List_fromArray( + [r, g, b]))) + }; + }); +var author$project$Theme$Colors$theme = { + button: { + active: A3(rtfeldman$elm_css$Css$rgb, 57, 101, 0), + background: A3(rtfeldman$elm_css$Css$rgb, 77, 136, 0), + text: A3(rtfeldman$elm_css$Css$rgb, 237, 237, 237) + }, + palette: { + blue: A3(rtfeldman$elm_css$Css$rgb, 46, 153, 174), + cream: A3(rtfeldman$elm_css$Css$rgb, 254, 248, 222), + darkBlue: A3(rtfeldman$elm_css$Css$rgb, 10, 70, 80), + darkGreen: rtfeldman$elm_css$Css$hex('#03697d'), + green: A3(rtfeldman$elm_css$Css$rgb, 122, 153, 27), + lightBlue: A3(rtfeldman$elm_css$Css$rgb, 140, 230, 250), + lightGreen: A3(rtfeldman$elm_css$Css$rgb, 171, 208, 57), + white: A3(rtfeldman$elm_css$Css$rgb, 255, 255, 255) + } +}; +var rtfeldman$elm_css$VirtualDom$Styled$Node = F3( + function (a, b, c) { + return {$: 'Node', a: a, b: b, c: c}; + }); +var rtfeldman$elm_css$VirtualDom$Styled$node = rtfeldman$elm_css$VirtualDom$Styled$Node; +var rtfeldman$elm_css$Html$Styled$node = rtfeldman$elm_css$VirtualDom$Styled$node; +var rtfeldman$elm_css$Html$Styled$i = rtfeldman$elm_css$Html$Styled$node('i'); +var elm$core$Tuple$second = function (_n0) { + var y = _n0.b; + return y; +}; +var elm$json$Json$Decode$map = _Json_map1; +var elm$json$Json$Decode$map2 = _Json_map2; +var elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) { + switch (handler.$) { + case 'Normal': + return 0; + case 'MayStopPropagation': + return 1; + case 'MayPreventDefault': + return 2; + default: + return 3; + } +}; +var elm$virtual_dom$VirtualDom$property = F2( + function (key, value) { + return A2( + _VirtualDom_property, + _VirtualDom_noInnerHtmlOrFormAction(key), + _VirtualDom_noJavaScriptOrHtmlUri(value)); + }); +var rtfeldman$elm_css$VirtualDom$Styled$Attribute = F3( + function (a, b, c) { + return {$: 'Attribute', a: a, b: b, c: c}; + }); +var rtfeldman$elm_css$VirtualDom$Styled$property = F2( + function (key, value) { + return A3( + rtfeldman$elm_css$VirtualDom$Styled$Attribute, + A2(elm$virtual_dom$VirtualDom$property, key, value), + _List_Nil, + ''); + }); +var rtfeldman$elm_css$Html$Styled$Attributes$stringProperty = F2( + function (key, string) { + return A2( + rtfeldman$elm_css$VirtualDom$Styled$property, + key, + elm$json$Json$Encode$string(string)); + }); +var rtfeldman$elm_css$Html$Styled$Attributes$class = rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('className'); +var rtfeldman$elm_css$Html$Styled$Attributes$classList = function (classes) { + return rtfeldman$elm_css$Html$Styled$Attributes$class( + A2( + elm$core$String$join, + ' ', + A2( + elm$core$List$map, + elm$core$Tuple$first, + A2(elm$core$List$filter, elm$core$Tuple$second, classes)))); +}; +var author$project$Theme$Elements$fontAwesomeIcon = F2( + function (name, size) { + return A2( + rtfeldman$elm_css$Html$Styled$i, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$classList( + _List_fromArray( + [ + _Utils_Tuple2('fa-' + name, true), + _Utils_Tuple2('fa', true), + _Utils_Tuple2('fa-' + size, true) + ])) + ]), + _List_Nil); + }); +var rtfeldman$elm_css$Css$Preprocess$AppendProperty = function (a) { + return {$: 'AppendProperty', a: a}; +}; +var rtfeldman$elm_css$Css$property = F2( + function (key, value) { + return rtfeldman$elm_css$Css$Preprocess$AppendProperty(key + (':' + value)); + }); +var rtfeldman$elm_css$Css$color = function (c) { + return A2(rtfeldman$elm_css$Css$property, 'color', c.value); +}; +var rtfeldman$elm_css$Css$prop1 = F2( + function (key, arg) { + return A2(rtfeldman$elm_css$Css$property, key, arg.value); + }); +var rtfeldman$elm_css$Css$padding = rtfeldman$elm_css$Css$prop1('padding'); +var rtfeldman$elm_css$Css$PxUnits = {$: 'PxUnits'}; +var elm$core$String$fromFloat = _String_fromNumber; +var rtfeldman$elm_css$Css$Internal$lengthConverter = F3( + function (units, unitLabel, numericValue) { + return { + absoluteLength: rtfeldman$elm_css$Css$Structure$Compatible, + calc: rtfeldman$elm_css$Css$Structure$Compatible, + flexBasis: rtfeldman$elm_css$Css$Structure$Compatible, + fontSize: rtfeldman$elm_css$Css$Structure$Compatible, + length: rtfeldman$elm_css$Css$Structure$Compatible, + lengthOrAuto: rtfeldman$elm_css$Css$Structure$Compatible, + lengthOrAutoOrCoverOrContain: rtfeldman$elm_css$Css$Structure$Compatible, + lengthOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, + lengthOrNone: rtfeldman$elm_css$Css$Structure$Compatible, + lengthOrNoneOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, + lengthOrNumber: rtfeldman$elm_css$Css$Structure$Compatible, + lengthOrNumberOrAutoOrNoneOrContent: rtfeldman$elm_css$Css$Structure$Compatible, + numericValue: numericValue, + textIndent: rtfeldman$elm_css$Css$Structure$Compatible, + unitLabel: unitLabel, + units: units, + value: _Utils_ap( + elm$core$String$fromFloat(numericValue), + unitLabel) + }; + }); +var rtfeldman$elm_css$Css$px = A2(rtfeldman$elm_css$Css$Internal$lengthConverter, rtfeldman$elm_css$Css$PxUnits, 'px'); +var rtfeldman$elm_css$Html$Styled$div = rtfeldman$elm_css$Html$Styled$node('div'); +var Skinney$murmur3$Murmur3$HashData = F4( + function (shift, seed, hash, charsProcessed) { + return {charsProcessed: charsProcessed, hash: hash, seed: seed, shift: shift}; + }); +var elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy; +var Skinney$murmur3$Murmur3$mur = F2( + function (c, h) { + return 4294967295 & (((h & 65535) * c) + ((65535 & ((h >>> 16) * c)) << 16)); + }); +var elm$core$Bitwise$or = _Bitwise_or; +var Skinney$murmur3$Murmur3$mix = F2( + function (h1, h2) { + var k1 = A2(Skinney$murmur3$Murmur3$mur, 3432918353, h2); + return h1 ^ A2(Skinney$murmur3$Murmur3$mur, 461845907, (k1 >>> 17) | (k1 << 15)); + }); +var elm$core$Basics$neq = _Utils_notEqual; +var Skinney$murmur3$Murmur3$finalize = function (data) { + var acc = data.hash ? A2(Skinney$murmur3$Murmur3$mix, data.seed, data.hash) : data.seed; + var h1 = acc ^ data.charsProcessed; + var h2 = A2(Skinney$murmur3$Murmur3$mur, 2246822507, h1 ^ (h1 >>> 16)); + var h3 = A2(Skinney$murmur3$Murmur3$mur, 3266489909, h2 ^ (h2 >>> 13)); + return (h3 ^ (h3 >>> 16)) >>> 0; +}; +var Skinney$murmur3$Murmur3$step = function (acc) { + var h1 = A2(Skinney$murmur3$Murmur3$mur, 5, (acc >>> 19) | (acc << 13)); + return ((h1 & 65535) + 27492) + ((65535 & ((h1 >>> 16) + 58964)) << 16); +}; +var Skinney$murmur3$Murmur3$hashFold = F2( + function (c, data) { + var res = data.hash | (c << data.shift); + var _n0 = data.shift; + if (_n0 === 24) { + var newHash = Skinney$murmur3$Murmur3$step( + A2(Skinney$murmur3$Murmur3$mix, data.seed, res)); + return {charsProcessed: data.charsProcessed + 1, hash: 0, seed: newHash, shift: 0}; + } else { + return {charsProcessed: data.charsProcessed + 1, hash: res, seed: data.seed, shift: data.shift + 8}; + } + }); +var elm$core$Basics$ge = _Utils_ge; +var Skinney$murmur3$UTF8$accumulate = F3( + function (add, _char, _n0) { + var acc = _n0.a; + var combine = _n0.b; + if (combine.$ === 'Nothing') { + return (_char < 128) ? _Utils_Tuple2( + A2(add, _char, acc), + elm$core$Maybe$Nothing) : ((_char < 2048) ? _Utils_Tuple2( + A2( + add, + 128 | (63 & _char), + A2(add, 192 | (_char >>> 6), acc)), + elm$core$Maybe$Nothing) : (((_char < 55296) || (_char >= 57344)) ? _Utils_Tuple2( + A2( + add, + 128 | (63 & _char), + A2( + add, + 128 | (63 & (_char >>> 6)), + A2(add, 224 | (_char >>> 12), acc))), + elm$core$Maybe$Nothing) : _Utils_Tuple2( + acc, + elm$core$Maybe$Just(_char)))); + } else { + var prev = combine.a; + var combined = ((1023 & _char) | ((1023 & prev) << 10)) + 65536; + return _Utils_Tuple2( + A2( + add, + 128 | (63 & combined), + A2( + add, + 128 | (63 & (combined >>> 6)), + A2( + add, + 128 | (63 & (combined >>> 12)), + A2(add, 240 | (combined >>> 18), acc)))), + elm$core$Maybe$Nothing); + } + }); +var elm$core$String$foldl = _String_foldl; +var Skinney$murmur3$UTF8$foldl = F3( + function (op, acc, input) { + var helper = F2( + function (_char, res) { + return A3( + Skinney$murmur3$UTF8$accumulate, + op, + elm$core$Char$toCode(_char), + res); + }); + return A3( + elm$core$String$foldl, + helper, + _Utils_Tuple2(acc, elm$core$Maybe$Nothing), + input).a; + }); +var Skinney$murmur3$Murmur3$hashString = F2( + function (seed, str) { + return Skinney$murmur3$Murmur3$finalize( + A3( + Skinney$murmur3$UTF8$foldl, + Skinney$murmur3$Murmur3$hashFold, + A4(Skinney$murmur3$Murmur3$HashData, 0, seed, 0, 0), + str)); + }); +var elm$core$List$singleton = function (value) { + return _List_fromArray( + [value]); +}; +var rtfeldman$elm_css$Css$Preprocess$stylesheet = function (snippets) { + return {charset: elm$core$Maybe$Nothing, imports: _List_Nil, namespaces: _List_Nil, snippets: snippets}; +}; +var elm$core$List$append = F2( + function (xs, ys) { + if (!ys.b) { + return xs; + } else { + return A3(elm$core$List$foldr, elm$core$List$cons, ys, xs); + } + }); +var elm$core$List$concat = function (lists) { + return A3(elm$core$List$foldr, elm$core$List$append, _List_Nil, lists); +}; +var elm$core$List$concatMap = F2( + function (f, list) { + return elm$core$List$concat( + A2(elm$core$List$map, f, list)); + }); +var rtfeldman$elm_css$Css$Preprocess$unwrapSnippet = function (_n0) { + var declarations = _n0.a; + return declarations; +}; +var elm$core$List$takeReverse = F3( + function (n, list, kept) { + takeReverse: + while (true) { + if (n <= 0) { + return kept; + } else { + if (!list.b) { + return kept; + } else { + var x = list.a; + var xs = list.b; + var $temp$n = n - 1, + $temp$list = xs, + $temp$kept = A2(elm$core$List$cons, x, kept); + n = $temp$n; + list = $temp$list; + kept = $temp$kept; + continue takeReverse; + } + } + } + }); +var elm$core$List$takeTailRec = F2( + function (n, list) { + return elm$core$List$reverse( + A3(elm$core$List$takeReverse, n, list, _List_Nil)); + }); +var elm$core$List$takeFast = F3( + function (ctr, n, list) { + if (n <= 0) { + return _List_Nil; + } else { + var _n0 = _Utils_Tuple2(n, list); + _n0$1: + while (true) { + _n0$5: + while (true) { + if (!_n0.b.b) { + return list; + } else { + if (_n0.b.b.b) { + switch (_n0.a) { + case 1: + break _n0$1; + case 2: + var _n2 = _n0.b; + var x = _n2.a; + var _n3 = _n2.b; + var y = _n3.a; + return _List_fromArray( + [x, y]); + case 3: + if (_n0.b.b.b.b) { + var _n4 = _n0.b; + var x = _n4.a; + var _n5 = _n4.b; + var y = _n5.a; + var _n6 = _n5.b; + var z = _n6.a; + return _List_fromArray( + [x, y, z]); + } else { + break _n0$5; + } + default: + if (_n0.b.b.b.b && _n0.b.b.b.b.b) { + var _n7 = _n0.b; + var x = _n7.a; + var _n8 = _n7.b; + var y = _n8.a; + var _n9 = _n8.b; + var z = _n9.a; + var _n10 = _n9.b; + var w = _n10.a; + var tl = _n10.b; + return (ctr > 1000) ? A2( + elm$core$List$cons, + x, + A2( + elm$core$List$cons, + y, + A2( + elm$core$List$cons, + z, + A2( + elm$core$List$cons, + w, + A2(elm$core$List$takeTailRec, n - 4, tl))))) : A2( + elm$core$List$cons, + x, + A2( + elm$core$List$cons, + y, + A2( + elm$core$List$cons, + z, + A2( + elm$core$List$cons, + w, + A3(elm$core$List$takeFast, ctr + 1, n - 4, tl))))); + } else { + break _n0$5; + } + } + } else { + if (_n0.a === 1) { + break _n0$1; + } else { + break _n0$5; + } + } + } + } + return list; + } + var _n1 = _n0.b; + var x = _n1.a; + return _List_fromArray( + [x]); + } + }); +var elm$core$List$take = F2( + function (n, list) { + return A3(elm$core$List$takeFast, 0, n, list); + }); +var elm$core$Maybe$map = F2( + function (f, maybe) { + if (maybe.$ === 'Just') { + var value = maybe.a; + return elm$core$Maybe$Just( + f(value)); + } else { + return elm$core$Maybe$Nothing; + } + }); +var rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors = function (declarations) { + collectSelectors: + while (true) { + if (!declarations.b) { + return _List_Nil; + } else { + if (declarations.a.$ === 'StyleBlockDeclaration') { + var _n1 = declarations.a.a; + var firstSelector = _n1.a; + var otherSelectors = _n1.b; + var rest = declarations.b; + return _Utils_ap( + A2(elm$core$List$cons, firstSelector, otherSelectors), + rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(rest)); + } else { + var rest = declarations.b; + var $temp$declarations = rest; + declarations = $temp$declarations; + continue collectSelectors; + } + } + } +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$last = function (list) { + last: + while (true) { + if (!list.b) { + return elm$core$Maybe$Nothing; + } else { + if (!list.b.b) { + var singleton = list.a; + return elm$core$Maybe$Just(singleton); + } else { + var rest = list.b; + var $temp$list = rest; + list = $temp$list; + continue last; + } + } + } +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration = function (declarations) { + lastDeclaration: + while (true) { + if (!declarations.b) { + return elm$core$Maybe$Nothing; + } else { + if (!declarations.b.b) { + var x = declarations.a; + return elm$core$Maybe$Just( + _List_fromArray( + [x])); + } else { + var xs = declarations.b; + var $temp$declarations = xs; + declarations = $temp$declarations; + continue lastDeclaration; + } + } + } +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$oneOf = function (maybes) { + oneOf: + while (true) { + if (!maybes.b) { + return elm$core$Maybe$Nothing; + } else { + var maybe = maybes.a; + var rest = maybes.b; + if (maybe.$ === 'Nothing') { + var $temp$maybes = rest; + maybes = $temp$maybes; + continue oneOf; + } else { + return maybe; + } + } + } +}; +var rtfeldman$elm_css$Css$Structure$FontFeatureValues = function (a) { + return {$: 'FontFeatureValues', a: a}; +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues = function (tuples) { + var expandTuples = function (tuplesToExpand) { + if (!tuplesToExpand.b) { + return _List_Nil; + } else { + var properties = tuplesToExpand.a; + var rest = tuplesToExpand.b; + return A2( + elm$core$List$cons, + properties, + expandTuples(rest)); + } + }; + var newTuples = expandTuples(tuples); + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$FontFeatureValues(newTuples) + ]); +}; +var rtfeldman$elm_css$Css$Structure$DocumentRule = F5( + function (a, b, c, d, e) { + return {$: 'DocumentRule', a: a, b: b, c: c, d: d, e: e}; + }); +var rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule = F5( + function (str1, str2, str3, str4, declaration) { + if (declaration.$ === 'StyleBlockDeclaration') { + var structureStyleBlock = declaration.a; + return A5(rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4, structureStyleBlock); + } else { + return declaration; + } + }); +var rtfeldman$elm_css$Css$Structure$MediaRule = F2( + function (a, b) { + return {$: 'MediaRule', a: a, b: b}; + }); +var rtfeldman$elm_css$Css$Structure$SupportsRule = F2( + function (a, b) { + return {$: 'SupportsRule', a: a, b: b}; + }); +var rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule = F2( + function (mediaQueries, declaration) { + switch (declaration.$) { + case 'StyleBlockDeclaration': + var structureStyleBlock = declaration.a; + return A2( + rtfeldman$elm_css$Css$Structure$MediaRule, + mediaQueries, + _List_fromArray( + [structureStyleBlock])); + case 'MediaRule': + var newMediaQueries = declaration.a; + var structureStyleBlocks = declaration.b; + return A2( + rtfeldman$elm_css$Css$Structure$MediaRule, + _Utils_ap(mediaQueries, newMediaQueries), + structureStyleBlocks); + case 'SupportsRule': + var str = declaration.a; + var declarations = declaration.b; + return A2( + rtfeldman$elm_css$Css$Structure$SupportsRule, + str, + A2( + elm$core$List$map, + rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule(mediaQueries), + declarations)); + case 'DocumentRule': + var str1 = declaration.a; + var str2 = declaration.b; + var str3 = declaration.c; + var str4 = declaration.d; + var structureStyleBlock = declaration.e; + return A5(rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4, structureStyleBlock); + case 'PageRule': + return declaration; + case 'FontFace': + return declaration; + case 'Keyframes': + return declaration; + case 'Viewport': + return declaration; + case 'CounterStyle': + return declaration; + default: + return declaration; + } + }); +var rtfeldman$elm_css$Css$Structure$CounterStyle = function (a) { + return {$: 'CounterStyle', a: a}; +}; +var rtfeldman$elm_css$Css$Structure$FontFace = function (a) { + return {$: 'FontFace', a: a}; +}; +var rtfeldman$elm_css$Css$Structure$Keyframes = function (a) { + return {$: 'Keyframes', a: a}; +}; +var rtfeldman$elm_css$Css$Structure$PageRule = F2( + function (a, b) { + return {$: 'PageRule', a: a, b: b}; + }); +var rtfeldman$elm_css$Css$Structure$Selector = F3( + function (a, b, c) { + return {$: 'Selector', a: a, b: b, c: c}; + }); +var rtfeldman$elm_css$Css$Structure$StyleBlock = F3( + function (a, b, c) { + return {$: 'StyleBlock', a: a, b: b, c: c}; + }); +var rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration = function (a) { + return {$: 'StyleBlockDeclaration', a: a}; +}; +var rtfeldman$elm_css$Css$Structure$Viewport = function (a) { + return {$: 'Viewport', a: a}; +}; +var rtfeldman$elm_css$Css$Structure$mapLast = F2( + function (update, list) { + if (!list.b) { + return list; + } else { + if (!list.b.b) { + var only = list.a; + return _List_fromArray( + [ + update(only) + ]); + } else { + var first = list.a; + var rest = list.b; + return A2( + elm$core$List$cons, + first, + A2(rtfeldman$elm_css$Css$Structure$mapLast, update, rest)); + } + } + }); +var rtfeldman$elm_css$Css$Structure$withPropertyAppended = F2( + function (property, _n0) { + var firstSelector = _n0.a; + var otherSelectors = _n0.b; + var properties = _n0.c; + return A3( + rtfeldman$elm_css$Css$Structure$StyleBlock, + firstSelector, + otherSelectors, + _Utils_ap( + properties, + _List_fromArray( + [property]))); + }); +var rtfeldman$elm_css$Css$Structure$appendProperty = F2( + function (property, declarations) { + if (!declarations.b) { + return declarations; + } else { + if (!declarations.b.b) { + switch (declarations.a.$) { + case 'StyleBlockDeclaration': + var styleBlock = declarations.a.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( + A2(rtfeldman$elm_css$Css$Structure$withPropertyAppended, property, styleBlock)) + ]); + case 'MediaRule': + var _n1 = declarations.a; + var mediaQueries = _n1.a; + var styleBlocks = _n1.b; + return _List_fromArray( + [ + A2( + rtfeldman$elm_css$Css$Structure$MediaRule, + mediaQueries, + A2( + rtfeldman$elm_css$Css$Structure$mapLast, + rtfeldman$elm_css$Css$Structure$withPropertyAppended(property), + styleBlocks)) + ]); + default: + return declarations; + } + } else { + var first = declarations.a; + var rest = declarations.b; + return A2( + elm$core$List$cons, + first, + A2(rtfeldman$elm_css$Css$Structure$appendProperty, property, rest)); + } + } + }); +var rtfeldman$elm_css$Css$Structure$appendToLastSelector = F2( + function (f, styleBlock) { + if (!styleBlock.b.b) { + var only = styleBlock.a; + var properties = styleBlock.c; + return _List_fromArray( + [ + A3(rtfeldman$elm_css$Css$Structure$StyleBlock, only, _List_Nil, properties), + A3( + rtfeldman$elm_css$Css$Structure$StyleBlock, + f(only), + _List_Nil, + _List_Nil) + ]); + } else { + var first = styleBlock.a; + var rest = styleBlock.b; + var properties = styleBlock.c; + var newRest = A2(elm$core$List$map, f, rest); + var newFirst = f(first); + return _List_fromArray( + [ + A3(rtfeldman$elm_css$Css$Structure$StyleBlock, first, rest, properties), + A3(rtfeldman$elm_css$Css$Structure$StyleBlock, newFirst, newRest, _List_Nil) + ]); + } + }); +var rtfeldman$elm_css$Css$Structure$applyPseudoElement = F2( + function (pseudo, _n0) { + var sequence = _n0.a; + var selectors = _n0.b; + return A3( + rtfeldman$elm_css$Css$Structure$Selector, + sequence, + selectors, + elm$core$Maybe$Just(pseudo)); + }); +var rtfeldman$elm_css$Css$Structure$appendPseudoElementToLastSelector = F2( + function (pseudo, styleBlock) { + return A2( + rtfeldman$elm_css$Css$Structure$appendToLastSelector, + rtfeldman$elm_css$Css$Structure$applyPseudoElement(pseudo), + styleBlock); + }); +var rtfeldman$elm_css$Css$Structure$CustomSelector = F2( + function (a, b) { + return {$: 'CustomSelector', a: a, b: b}; + }); +var rtfeldman$elm_css$Css$Structure$TypeSelectorSequence = F2( + function (a, b) { + return {$: 'TypeSelectorSequence', a: a, b: b}; + }); +var rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence = function (a) { + return {$: 'UniversalSelectorSequence', a: a}; +}; +var rtfeldman$elm_css$Css$Structure$appendRepeatable = F2( + function (selector, sequence) { + switch (sequence.$) { + case 'TypeSelectorSequence': + var typeSelector = sequence.a; + var list = sequence.b; + return A2( + rtfeldman$elm_css$Css$Structure$TypeSelectorSequence, + typeSelector, + _Utils_ap( + list, + _List_fromArray( + [selector]))); + case 'UniversalSelectorSequence': + var list = sequence.a; + return rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence( + _Utils_ap( + list, + _List_fromArray( + [selector]))); + default: + var str = sequence.a; + var list = sequence.b; + return A2( + rtfeldman$elm_css$Css$Structure$CustomSelector, + str, + _Utils_ap( + list, + _List_fromArray( + [selector]))); + } + }); +var rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator = F2( + function (selector, list) { + if (!list.b) { + return _List_Nil; + } else { + if (!list.b.b) { + var _n1 = list.a; + var combinator = _n1.a; + var sequence = _n1.b; + return _List_fromArray( + [ + _Utils_Tuple2( + combinator, + A2(rtfeldman$elm_css$Css$Structure$appendRepeatable, selector, sequence)) + ]); + } else { + var first = list.a; + var rest = list.b; + return A2( + elm$core$List$cons, + first, + A2(rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator, selector, rest)); + } + } + }); +var rtfeldman$elm_css$Css$Structure$appendRepeatableSelector = F2( + function (repeatableSimpleSelector, selector) { + if (!selector.b.b) { + var sequence = selector.a; + var pseudoElement = selector.c; + return A3( + rtfeldman$elm_css$Css$Structure$Selector, + A2(rtfeldman$elm_css$Css$Structure$appendRepeatable, repeatableSimpleSelector, sequence), + _List_Nil, + pseudoElement); + } else { + var firstSelector = selector.a; + var tuples = selector.b; + var pseudoElement = selector.c; + return A3( + rtfeldman$elm_css$Css$Structure$Selector, + firstSelector, + A2(rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator, repeatableSimpleSelector, tuples), + pseudoElement); + } + }); +var rtfeldman$elm_css$Css$Structure$appendRepeatableToLastSelector = F2( + function (selector, styleBlock) { + return A2( + rtfeldman$elm_css$Css$Structure$appendToLastSelector, + rtfeldman$elm_css$Css$Structure$appendRepeatableSelector(selector), + styleBlock); + }); +var rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock = F2( + function (update, declarations) { + _n0$12: + while (true) { + if (!declarations.b) { + return declarations; + } else { + if (!declarations.b.b) { + switch (declarations.a.$) { + case 'StyleBlockDeclaration': + var styleBlock = declarations.a.a; + return A2( + elm$core$List$map, + rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration, + update(styleBlock)); + case 'MediaRule': + if (declarations.a.b.b) { + if (!declarations.a.b.b.b) { + var _n1 = declarations.a; + var mediaQueries = _n1.a; + var _n2 = _n1.b; + var styleBlock = _n2.a; + return _List_fromArray( + [ + A2( + rtfeldman$elm_css$Css$Structure$MediaRule, + mediaQueries, + update(styleBlock)) + ]); + } else { + var _n3 = declarations.a; + var mediaQueries = _n3.a; + var _n4 = _n3.b; + var first = _n4.a; + var rest = _n4.b; + var _n5 = A2( + rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, + update, + _List_fromArray( + [ + A2(rtfeldman$elm_css$Css$Structure$MediaRule, mediaQueries, rest) + ])); + if ((_n5.b && (_n5.a.$ === 'MediaRule')) && (!_n5.b.b)) { + var _n6 = _n5.a; + var newMediaQueries = _n6.a; + var newStyleBlocks = _n6.b; + return _List_fromArray( + [ + A2( + rtfeldman$elm_css$Css$Structure$MediaRule, + newMediaQueries, + A2(elm$core$List$cons, first, newStyleBlocks)) + ]); + } else { + var newDeclarations = _n5; + return newDeclarations; + } + } + } else { + break _n0$12; + } + case 'SupportsRule': + var _n7 = declarations.a; + var str = _n7.a; + var nestedDeclarations = _n7.b; + return _List_fromArray( + [ + A2( + rtfeldman$elm_css$Css$Structure$SupportsRule, + str, + A2(rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, update, nestedDeclarations)) + ]); + case 'DocumentRule': + var _n8 = declarations.a; + var str1 = _n8.a; + var str2 = _n8.b; + var str3 = _n8.c; + var str4 = _n8.d; + var styleBlock = _n8.e; + return A2( + elm$core$List$map, + A4(rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4), + update(styleBlock)); + case 'PageRule': + var _n9 = declarations.a; + return declarations; + case 'FontFace': + return declarations; + case 'Keyframes': + return declarations; + case 'Viewport': + return declarations; + case 'CounterStyle': + return declarations; + default: + return declarations; + } + } else { + break _n0$12; + } + } + } + var first = declarations.a; + var rest = declarations.b; + return A2( + elm$core$List$cons, + first, + A2(rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, update, rest)); + }); +var rtfeldman$elm_css$Css$Structure$styleBlockToMediaRule = F2( + function (mediaQueries, declaration) { + if (declaration.$ === 'StyleBlockDeclaration') { + var styleBlock = declaration.a; + return A2( + rtfeldman$elm_css$Css$Structure$MediaRule, + mediaQueries, + _List_fromArray( + [styleBlock])); + } else { + return declaration; + } + }); +var rtfeldman$elm_css$Hash$murmurSeed = 15739; +var elm$core$Basics$modBy = _Basics_modBy; +var rtfeldman$elm_hex$Hex$unsafeToDigit = function (num) { + unsafeToDigit: + while (true) { + switch (num) { + case 0: + return _Utils_chr('0'); + case 1: + return _Utils_chr('1'); + case 2: + return _Utils_chr('2'); + case 3: + return _Utils_chr('3'); + case 4: + return _Utils_chr('4'); + case 5: + return _Utils_chr('5'); + case 6: + return _Utils_chr('6'); + case 7: + return _Utils_chr('7'); + case 8: + return _Utils_chr('8'); + case 9: + return _Utils_chr('9'); + case 10: + return _Utils_chr('a'); + case 11: + return _Utils_chr('b'); + case 12: + return _Utils_chr('c'); + case 13: + return _Utils_chr('d'); + case 14: + return _Utils_chr('e'); + case 15: + return _Utils_chr('f'); + default: + var $temp$num = num; + num = $temp$num; + continue unsafeToDigit; + } + } +}; +var rtfeldman$elm_hex$Hex$unsafePositiveToDigits = F2( + function (digits, num) { + unsafePositiveToDigits: + while (true) { + if (num < 16) { + return A2( + elm$core$List$cons, + rtfeldman$elm_hex$Hex$unsafeToDigit(num), + digits); + } else { + var $temp$digits = A2( + elm$core$List$cons, + rtfeldman$elm_hex$Hex$unsafeToDigit( + A2(elm$core$Basics$modBy, 16, num)), + digits), + $temp$num = (num / 16) | 0; + digits = $temp$digits; + num = $temp$num; + continue unsafePositiveToDigits; + } + } + }); +var rtfeldman$elm_hex$Hex$toString = function (num) { + return elm$core$String$fromList( + (num < 0) ? A2( + elm$core$List$cons, + _Utils_chr('-'), + A2(rtfeldman$elm_hex$Hex$unsafePositiveToDigits, _List_Nil, -num)) : A2(rtfeldman$elm_hex$Hex$unsafePositiveToDigits, _List_Nil, num)); +}; +var rtfeldman$elm_css$Hash$fromString = function (str) { + return A2( + elm$core$String$cons, + _Utils_chr('_'), + rtfeldman$elm_hex$Hex$toString( + A2(Skinney$murmur3$Murmur3$hashString, rtfeldman$elm_css$Hash$murmurSeed, str))); +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast = F4( + function (nestedStyles, rest, f, declarations) { + var withoutParent = function (decls) { + return A2( + elm$core$Maybe$withDefault, + _List_Nil, + elm$core$List$tail(decls)); + }; + var nextResult = A2( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, + rest, + A2( + elm$core$Maybe$withDefault, + _List_Nil, + rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration(declarations))); + var newDeclarations = function () { + var _n14 = _Utils_Tuple2( + elm$core$List$head(nextResult), + rtfeldman$elm_css$Css$Preprocess$Resolve$last(declarations)); + if ((_n14.a.$ === 'Just') && (_n14.b.$ === 'Just')) { + var nextResultParent = _n14.a.a; + var originalParent = _n14.b.a; + return _Utils_ap( + A2( + elm$core$List$take, + elm$core$List$length(declarations) - 1, + declarations), + _List_fromArray( + [ + (!_Utils_eq(originalParent, nextResultParent)) ? nextResultParent : originalParent + ])); + } else { + return declarations; + } + }(); + var insertStylesToNestedDecl = function (lastDecl) { + return elm$core$List$concat( + A2( + rtfeldman$elm_css$Css$Structure$mapLast, + rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles(nestedStyles), + A2( + elm$core$List$map, + elm$core$List$singleton, + A2(rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, f, lastDecl)))); + }; + var initialResult = A2( + elm$core$Maybe$withDefault, + _List_Nil, + A2( + elm$core$Maybe$map, + insertStylesToNestedDecl, + rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration(declarations))); + return _Utils_ap( + newDeclarations, + _Utils_ap( + withoutParent(initialResult), + withoutParent(nextResult))); + }); +var rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles = F2( + function (styles, declarations) { + if (!styles.b) { + return declarations; + } else { + switch (styles.a.$) { + case 'AppendProperty': + var property = styles.a.a; + var rest = styles.b; + return A2( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, + rest, + A2(rtfeldman$elm_css$Css$Structure$appendProperty, property, declarations)); + case 'ExtendSelector': + var _n4 = styles.a; + var selector = _n4.a; + var nestedStyles = _n4.b; + var rest = styles.b; + return A4( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast, + nestedStyles, + rest, + rtfeldman$elm_css$Css$Structure$appendRepeatableToLastSelector(selector), + declarations); + case 'NestSnippet': + var _n5 = styles.a; + var selectorCombinator = _n5.a; + var snippets = _n5.b; + var rest = styles.b; + var chain = F2( + function (_n9, _n10) { + var originalSequence = _n9.a; + var originalTuples = _n9.b; + var originalPseudoElement = _n9.c; + var newSequence = _n10.a; + var newTuples = _n10.b; + var newPseudoElement = _n10.c; + return A3( + rtfeldman$elm_css$Css$Structure$Selector, + originalSequence, + _Utils_ap( + originalTuples, + A2( + elm$core$List$cons, + _Utils_Tuple2(selectorCombinator, newSequence), + newTuples)), + rtfeldman$elm_css$Css$Preprocess$Resolve$oneOf( + _List_fromArray( + [newPseudoElement, originalPseudoElement]))); + }); + var expandDeclaration = function (declaration) { + switch (declaration.$) { + case 'StyleBlockDeclaration': + var _n7 = declaration.a; + var firstSelector = _n7.a; + var otherSelectors = _n7.b; + var nestedStyles = _n7.c; + var newSelectors = A2( + elm$core$List$concatMap, + function (originalSelector) { + return A2( + elm$core$List$map, + chain(originalSelector), + A2(elm$core$List$cons, firstSelector, otherSelectors)); + }, + rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(declarations)); + var newDeclarations = function () { + if (!newSelectors.b) { + return _List_Nil; + } else { + var first = newSelectors.a; + var remainder = newSelectors.b; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( + A3(rtfeldman$elm_css$Css$Structure$StyleBlock, first, remainder, _List_Nil)) + ]); + } + }(); + return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, nestedStyles, newDeclarations); + case 'MediaRule': + var mediaQueries = declaration.a; + var styleBlocks = declaration.b; + return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule, mediaQueries, styleBlocks); + case 'SupportsRule': + var str = declaration.a; + var otherSnippets = declaration.b; + return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule, str, otherSnippets); + case 'DocumentRule': + var str1 = declaration.a; + var str2 = declaration.b; + var str3 = declaration.c; + var str4 = declaration.d; + var styleBlock = declaration.e; + return A2( + elm$core$List$map, + A4(rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule, str1, str2, str3, str4), + rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock)); + case 'PageRule': + var str = declaration.a; + var properties = declaration.b; + return _List_fromArray( + [ + A2(rtfeldman$elm_css$Css$Structure$PageRule, str, properties) + ]); + case 'FontFace': + var properties = declaration.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$FontFace(properties) + ]); + case 'Viewport': + var properties = declaration.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$Viewport(properties) + ]); + case 'CounterStyle': + var properties = declaration.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$CounterStyle(properties) + ]); + default: + var tuples = declaration.a; + return rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues(tuples); + } + }; + return elm$core$List$concat( + _Utils_ap( + _List_fromArray( + [ + A2(rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, rest, declarations) + ]), + A2( + elm$core$List$map, + expandDeclaration, + A2(elm$core$List$concatMap, rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)))); + case 'WithPseudoElement': + var _n11 = styles.a; + var pseudoElement = _n11.a; + var nestedStyles = _n11.b; + var rest = styles.b; + return A4( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast, + nestedStyles, + rest, + rtfeldman$elm_css$Css$Structure$appendPseudoElementToLastSelector(pseudoElement), + declarations); + case 'WithKeyframes': + var str = styles.a.a; + var rest = styles.b; + var name = rtfeldman$elm_css$Hash$fromString(str); + var newProperty = 'animation-name:' + name; + var newDeclarations = A2( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, + rest, + A2(rtfeldman$elm_css$Css$Structure$appendProperty, newProperty, declarations)); + return A2( + elm$core$List$append, + newDeclarations, + _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$Keyframes( + {declaration: str, name: name}) + ])); + case 'WithMedia': + var _n12 = styles.a; + var mediaQueries = _n12.a; + var nestedStyles = _n12.b; + var rest = styles.b; + var extraDeclarations = function () { + var _n13 = rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(declarations); + if (!_n13.b) { + return _List_Nil; + } else { + var firstSelector = _n13.a; + var otherSelectors = _n13.b; + return A2( + elm$core$List$map, + rtfeldman$elm_css$Css$Structure$styleBlockToMediaRule(mediaQueries), + A2( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, + nestedStyles, + elm$core$List$singleton( + rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( + A3(rtfeldman$elm_css$Css$Structure$StyleBlock, firstSelector, otherSelectors, _List_Nil))))); + } + }(); + return _Utils_ap( + A2(rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, rest, declarations), + extraDeclarations); + default: + var otherStyles = styles.a.a; + var rest = styles.b; + return A2( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, + _Utils_ap(otherStyles, rest), + declarations); + } + } + }); +var rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock = function (_n2) { + var firstSelector = _n2.a; + var otherSelectors = _n2.b; + var styles = _n2.c; + return A2( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, + styles, + _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( + A3(rtfeldman$elm_css$Css$Structure$StyleBlock, firstSelector, otherSelectors, _List_Nil)) + ])); +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$extract = function (snippetDeclarations) { + if (!snippetDeclarations.b) { + return _List_Nil; + } else { + var first = snippetDeclarations.a; + var rest = snippetDeclarations.b; + return _Utils_ap( + rtfeldman$elm_css$Css$Preprocess$Resolve$toDeclarations(first), + rtfeldman$elm_css$Css$Preprocess$Resolve$extract(rest)); + } +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule = F2( + function (mediaQueries, styleBlocks) { + var handleStyleBlock = function (styleBlock) { + return A2( + elm$core$List$map, + rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule(mediaQueries), + rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock)); + }; + return A2(elm$core$List$concatMap, handleStyleBlock, styleBlocks); + }); +var rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule = F2( + function (str, snippets) { + var declarations = rtfeldman$elm_css$Css$Preprocess$Resolve$extract( + A2(elm$core$List$concatMap, rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)); + return _List_fromArray( + [ + A2(rtfeldman$elm_css$Css$Structure$SupportsRule, str, declarations) + ]); + }); +var rtfeldman$elm_css$Css$Preprocess$Resolve$toDeclarations = function (snippetDeclaration) { + switch (snippetDeclaration.$) { + case 'StyleBlockDeclaration': + var styleBlock = snippetDeclaration.a; + return rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock); + case 'MediaRule': + var mediaQueries = snippetDeclaration.a; + var styleBlocks = snippetDeclaration.b; + return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule, mediaQueries, styleBlocks); + case 'SupportsRule': + var str = snippetDeclaration.a; + var snippets = snippetDeclaration.b; + return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule, str, snippets); + case 'DocumentRule': + var str1 = snippetDeclaration.a; + var str2 = snippetDeclaration.b; + var str3 = snippetDeclaration.c; + var str4 = snippetDeclaration.d; + var styleBlock = snippetDeclaration.e; + return A2( + elm$core$List$map, + A4(rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule, str1, str2, str3, str4), + rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock)); + case 'PageRule': + var str = snippetDeclaration.a; + var properties = snippetDeclaration.b; + return _List_fromArray( + [ + A2(rtfeldman$elm_css$Css$Structure$PageRule, str, properties) + ]); + case 'FontFace': + var properties = snippetDeclaration.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$FontFace(properties) + ]); + case 'Viewport': + var properties = snippetDeclaration.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$Viewport(properties) + ]); + case 'CounterStyle': + var properties = snippetDeclaration.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$CounterStyle(properties) + ]); + default: + var tuples = snippetDeclaration.a; + return rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues(tuples); + } +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$toStructure = function (_n0) { + var charset = _n0.charset; + var imports = _n0.imports; + var namespaces = _n0.namespaces; + var snippets = _n0.snippets; + var declarations = rtfeldman$elm_css$Css$Preprocess$Resolve$extract( + A2(elm$core$List$concatMap, rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)); + return {charset: charset, declarations: declarations, imports: imports, namespaces: namespaces}; +}; +var elm$core$Dict$RBEmpty_elm_builtin = {$: 'RBEmpty_elm_builtin'}; +var elm$core$Dict$empty = elm$core$Dict$RBEmpty_elm_builtin; +var elm$core$Dict$Black = {$: 'Black'}; +var elm$core$Dict$RBNode_elm_builtin = F5( + function (a, b, c, d, e) { + return {$: 'RBNode_elm_builtin', a: a, b: b, c: c, d: d, e: e}; + }); +var elm$core$Basics$compare = _Utils_compare; +var elm$core$Dict$Red = {$: 'Red'}; +var elm$core$Dict$balance = F5( + function (color, key, value, left, right) { + if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Red')) { + var _n1 = right.a; + var rK = right.b; + var rV = right.c; + var rLeft = right.d; + var rRight = right.e; + if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) { + var _n3 = left.a; + var lK = left.b; + var lV = left.c; + var lLeft = left.d; + var lRight = left.e; + return A5( + elm$core$Dict$RBNode_elm_builtin, + elm$core$Dict$Red, + key, + value, + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, lK, lV, lLeft, lRight), + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, rK, rV, rLeft, rRight)); + } else { + return A5( + elm$core$Dict$RBNode_elm_builtin, + color, + rK, + rV, + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, key, value, left, rLeft), + rRight); + } + } else { + if ((((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) && (left.d.$ === 'RBNode_elm_builtin')) && (left.d.a.$ === 'Red')) { + var _n5 = left.a; + var lK = left.b; + var lV = left.c; + var _n6 = left.d; + var _n7 = _n6.a; + var llK = _n6.b; + var llV = _n6.c; + var llLeft = _n6.d; + var llRight = _n6.e; + var lRight = left.e; + return A5( + elm$core$Dict$RBNode_elm_builtin, + elm$core$Dict$Red, + lK, + lV, + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, llK, llV, llLeft, llRight), + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, key, value, lRight, right)); + } else { + return A5(elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right); + } + } + }); +var elm$core$Dict$insertHelp = F3( + function (key, value, dict) { + if (dict.$ === 'RBEmpty_elm_builtin') { + return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, key, value, elm$core$Dict$RBEmpty_elm_builtin, elm$core$Dict$RBEmpty_elm_builtin); + } else { + var nColor = dict.a; + var nKey = dict.b; + var nValue = dict.c; + var nLeft = dict.d; + var nRight = dict.e; + var _n1 = A2(elm$core$Basics$compare, key, nKey); + switch (_n1.$) { + case 'LT': + return A5( + elm$core$Dict$balance, + nColor, + nKey, + nValue, + A3(elm$core$Dict$insertHelp, key, value, nLeft), + nRight); + case 'EQ': + return A5(elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight); + default: + return A5( + elm$core$Dict$balance, + nColor, + nKey, + nValue, + nLeft, + A3(elm$core$Dict$insertHelp, key, value, nRight)); + } + } + }); +var elm$core$Dict$insert = F3( + function (key, value, dict) { + var _n0 = A3(elm$core$Dict$insertHelp, key, value, dict); + if ((_n0.$ === 'RBNode_elm_builtin') && (_n0.a.$ === 'Red')) { + var _n1 = _n0.a; + var k = _n0.b; + var v = _n0.c; + var l = _n0.d; + var r = _n0.e; + return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, k, v, l, r); + } else { + var x = _n0; + return x; + } + }); +var elm$core$Basics$composeL = F3( + function (g, f, x) { + return g( + f(x)); + }); +var elm$core$Basics$not = _Basics_not; +var elm$core$List$any = F2( + function (isOkay, list) { + any: + while (true) { + if (!list.b) { + return false; + } else { + var x = list.a; + var xs = list.b; + if (isOkay(x)) { + return true; + } else { + var $temp$isOkay = isOkay, + $temp$list = xs; + isOkay = $temp$isOkay; + list = $temp$list; + continue any; + } + } + } + }); +var elm$core$List$all = F2( + function (isOkay, list) { + return !A2( + elm$core$List$any, + A2(elm$core$Basics$composeL, elm$core$Basics$not, isOkay), + list); + }); +var rtfeldman$elm_css$Css$Structure$compactHelp = F2( + function (declaration, _n0) { + var keyframesByName = _n0.a; + var declarations = _n0.b; + switch (declaration.$) { + case 'StyleBlockDeclaration': + var _n2 = declaration.a; + var properties = _n2.c; + return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + case 'MediaRule': + var styleBlocks = declaration.b; + return A2( + elm$core$List$all, + function (_n3) { + var properties = _n3.c; + return elm$core$List$isEmpty(properties); + }, + styleBlocks) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + case 'SupportsRule': + var otherDeclarations = declaration.b; + return elm$core$List$isEmpty(otherDeclarations) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + case 'DocumentRule': + return _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + case 'PageRule': + var properties = declaration.b; + return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + case 'FontFace': + var properties = declaration.a; + return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + case 'Keyframes': + var record = declaration.a; + return elm$core$String$isEmpty(record.declaration) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + A3(elm$core$Dict$insert, record.name, record.declaration, keyframesByName), + declarations); + case 'Viewport': + var properties = declaration.a; + return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + case 'CounterStyle': + var properties = declaration.a; + return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + default: + var tuples = declaration.a; + return A2( + elm$core$List$all, + function (_n4) { + var properties = _n4.b; + return elm$core$List$isEmpty(properties); + }, + tuples) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + } + }); +var rtfeldman$elm_css$Css$Structure$withKeyframeDeclarations = F2( + function (keyframesByName, compactedDeclarations) { + return A2( + elm$core$List$append, + A2( + elm$core$List$map, + function (_n0) { + var name = _n0.a; + var decl = _n0.b; + return rtfeldman$elm_css$Css$Structure$Keyframes( + {declaration: decl, name: name}); + }, + elm$core$Dict$toList(keyframesByName)), + compactedDeclarations); + }); +var rtfeldman$elm_css$Css$Structure$compactStylesheet = function (_n0) { + var charset = _n0.charset; + var imports = _n0.imports; + var namespaces = _n0.namespaces; + var declarations = _n0.declarations; + var _n1 = A3( + elm$core$List$foldr, + rtfeldman$elm_css$Css$Structure$compactHelp, + _Utils_Tuple2(elm$core$Dict$empty, _List_Nil), + declarations); + var keyframesByName = _n1.a; + var compactedDeclarations = _n1.b; + var finalDeclarations = A2(rtfeldman$elm_css$Css$Structure$withKeyframeDeclarations, keyframesByName, compactedDeclarations); + return {charset: charset, declarations: finalDeclarations, imports: imports, namespaces: namespaces}; +}; +var rtfeldman$elm_css$Css$Structure$Output$charsetToString = function (charset) { + return A2( + elm$core$Maybe$withDefault, + '', + A2( + elm$core$Maybe$map, + function (str) { + return '@charset \"' + (str + '\"'); + }, + charset)); +}; +var rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString = function (expression) { + return '(' + (expression.feature + (A2( + elm$core$Maybe$withDefault, + '', + A2( + elm$core$Maybe$map, + elm$core$Basics$append(': '), + expression.value)) + ')')); +}; +var rtfeldman$elm_css$Css$Structure$Output$mediaTypeToString = function (mediaType) { + switch (mediaType.$) { + case 'Print': + return 'print'; + case 'Screen': + return 'screen'; + default: + return 'speech'; + } +}; +var rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString = function (mediaQuery) { + var prefixWith = F3( + function (str, mediaType, expressions) { + return str + (' ' + A2( + elm$core$String$join, + ' and ', + A2( + elm$core$List$cons, + rtfeldman$elm_css$Css$Structure$Output$mediaTypeToString(mediaType), + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString, expressions)))); + }); + switch (mediaQuery.$) { + case 'AllQuery': + var expressions = mediaQuery.a; + return A2( + elm$core$String$join, + ' and ', + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString, expressions)); + case 'OnlyQuery': + var mediaType = mediaQuery.a; + var expressions = mediaQuery.b; + return A3(prefixWith, 'only', mediaType, expressions); + case 'NotQuery': + var mediaType = mediaQuery.a; + var expressions = mediaQuery.b; + return A3(prefixWith, 'not', mediaType, expressions); + default: + var str = mediaQuery.a; + return str; + } +}; +var rtfeldman$elm_css$Css$Structure$Output$importMediaQueryToString = F2( + function (name, mediaQuery) { + return '@import \"' + (name + (rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString(mediaQuery) + '\"')); + }); +var rtfeldman$elm_css$Css$Structure$Output$importToString = function (_n0) { + var name = _n0.a; + var mediaQueries = _n0.b; + return A2( + elm$core$String$join, + '\n', + A2( + elm$core$List$map, + rtfeldman$elm_css$Css$Structure$Output$importMediaQueryToString(name), + mediaQueries)); +}; +var rtfeldman$elm_css$Css$Structure$Output$namespaceToString = function (_n0) { + var prefix = _n0.a; + var str = _n0.b; + return '@namespace ' + (prefix + ('\"' + (str + '\"'))); +}; +var rtfeldman$elm_css$Css$Structure$Output$spaceIndent = ' '; +var rtfeldman$elm_css$Css$Structure$Output$indent = function (str) { + return _Utils_ap(rtfeldman$elm_css$Css$Structure$Output$spaceIndent, str); +}; +var rtfeldman$elm_css$Css$Structure$Output$noIndent = ''; +var rtfeldman$elm_css$Css$Structure$Output$emitProperty = function (str) { + return str + ';'; +}; +var rtfeldman$elm_css$Css$Structure$Output$emitProperties = function (properties) { + return A2( + elm$core$String$join, + '\n', + A2( + elm$core$List$map, + A2(elm$core$Basics$composeL, rtfeldman$elm_css$Css$Structure$Output$indent, rtfeldman$elm_css$Css$Structure$Output$emitProperty), + properties)); +}; +var elm$core$String$append = _String_append; +var rtfeldman$elm_css$Css$Structure$Output$pseudoElementToString = function (_n0) { + var str = _n0.a; + return '::' + str; +}; +var rtfeldman$elm_css$Css$Structure$Output$combinatorToString = function (combinator) { + switch (combinator.$) { + case 'AdjacentSibling': + return '+'; + case 'GeneralSibling': + return '~'; + case 'Child': + return '>'; + default: + return ''; + } +}; +var rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString = function (repeatableSimpleSelector) { + switch (repeatableSimpleSelector.$) { + case 'ClassSelector': + var str = repeatableSimpleSelector.a; + return '.' + str; + case 'IdSelector': + var str = repeatableSimpleSelector.a; + return '#' + str; + case 'PseudoClassSelector': + var str = repeatableSimpleSelector.a; + return ':' + str; + default: + var str = repeatableSimpleSelector.a; + return '[' + (str + ']'); + } +}; +var rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString = function (simpleSelectorSequence) { + switch (simpleSelectorSequence.$) { + case 'TypeSelectorSequence': + var str = simpleSelectorSequence.a.a; + var repeatableSimpleSelectors = simpleSelectorSequence.b; + return A2( + elm$core$String$join, + '', + A2( + elm$core$List$cons, + str, + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors))); + case 'UniversalSelectorSequence': + var repeatableSimpleSelectors = simpleSelectorSequence.a; + return elm$core$List$isEmpty(repeatableSimpleSelectors) ? '*' : A2( + elm$core$String$join, + '', + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors)); + default: + var str = simpleSelectorSequence.a; + var repeatableSimpleSelectors = simpleSelectorSequence.b; + return A2( + elm$core$String$join, + '', + A2( + elm$core$List$cons, + str, + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors))); + } +}; +var rtfeldman$elm_css$Css$Structure$Output$selectorChainToString = function (_n0) { + var combinator = _n0.a; + var sequence = _n0.b; + return A2( + elm$core$String$join, + ' ', + _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$Output$combinatorToString(combinator), + rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString(sequence) + ])); +}; +var rtfeldman$elm_css$Css$Structure$Output$selectorToString = function (_n0) { + var simpleSelectorSequence = _n0.a; + var chain = _n0.b; + var pseudoElement = _n0.c; + var segments = A2( + elm$core$List$cons, + rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString(simpleSelectorSequence), + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$selectorChainToString, chain)); + var pseudoElementsString = A2( + elm$core$String$join, + '', + _List_fromArray( + [ + A2( + elm$core$Maybe$withDefault, + '', + A2(elm$core$Maybe$map, rtfeldman$elm_css$Css$Structure$Output$pseudoElementToString, pseudoElement)) + ])); + return A2( + elm$core$String$append, + A2( + elm$core$String$join, + ' ', + A2( + elm$core$List$filter, + A2(elm$core$Basics$composeL, elm$core$Basics$not, elm$core$String$isEmpty), + segments)), + pseudoElementsString); +}; +var rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock = F2( + function (indentLevel, _n0) { + var firstSelector = _n0.a; + var otherSelectors = _n0.b; + var properties = _n0.c; + var selectorStr = A2( + elm$core$String$join, + ', ', + A2( + elm$core$List$map, + rtfeldman$elm_css$Css$Structure$Output$selectorToString, + A2(elm$core$List$cons, firstSelector, otherSelectors))); + return A2( + elm$core$String$join, + '', + _List_fromArray( + [ + selectorStr, + ' {\n', + indentLevel, + rtfeldman$elm_css$Css$Structure$Output$emitProperties(properties), + '\n', + indentLevel, + '}' + ])); + }); +var rtfeldman$elm_css$Css$Structure$Output$prettyPrintDeclaration = function (decl) { + switch (decl.$) { + case 'StyleBlockDeclaration': + var styleBlock = decl.a; + return A2(rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock, rtfeldman$elm_css$Css$Structure$Output$noIndent, styleBlock); + case 'MediaRule': + var mediaQueries = decl.a; + var styleBlocks = decl.b; + var query = A2( + elm$core$String$join, + ',\n', + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString, mediaQueries)); + var blocks = A2( + elm$core$String$join, + '\n\n', + A2( + elm$core$List$map, + A2( + elm$core$Basics$composeL, + rtfeldman$elm_css$Css$Structure$Output$indent, + rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock(rtfeldman$elm_css$Css$Structure$Output$spaceIndent)), + styleBlocks)); + return '@media ' + (query + (' {\n' + (blocks + '\n}'))); + case 'SupportsRule': + return 'TODO'; + case 'DocumentRule': + return 'TODO'; + case 'PageRule': + return 'TODO'; + case 'FontFace': + return 'TODO'; + case 'Keyframes': + var name = decl.a.name; + var declaration = decl.a.declaration; + return '@keyframes ' + (name + (' {\n' + (declaration + '\n}'))); + case 'Viewport': + return 'TODO'; + case 'CounterStyle': + return 'TODO'; + default: + return 'TODO'; + } +}; +var rtfeldman$elm_css$Css$Structure$Output$prettyPrint = function (_n0) { + var charset = _n0.charset; + var imports = _n0.imports; + var namespaces = _n0.namespaces; + var declarations = _n0.declarations; + return A2( + elm$core$String$join, + '\n\n', + A2( + elm$core$List$filter, + A2(elm$core$Basics$composeL, elm$core$Basics$not, elm$core$String$isEmpty), + _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$Output$charsetToString(charset), + A2( + elm$core$String$join, + '\n', + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$importToString, imports)), + A2( + elm$core$String$join, + '\n', + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$namespaceToString, namespaces)), + A2( + elm$core$String$join, + '\n\n', + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$prettyPrintDeclaration, declarations)) + ]))); +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$compileHelp = function (sheet) { + return rtfeldman$elm_css$Css$Structure$Output$prettyPrint( + rtfeldman$elm_css$Css$Structure$compactStylesheet( + rtfeldman$elm_css$Css$Preprocess$Resolve$toStructure(sheet))); +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$compile = function (styles) { + return A2( + elm$core$String$join, + '\n\n', + A2(elm$core$List$map, rtfeldman$elm_css$Css$Preprocess$Resolve$compileHelp, styles)); +}; +var rtfeldman$elm_css$Css$Preprocess$Snippet = function (a) { + return {$: 'Snippet', a: a}; +}; +var rtfeldman$elm_css$Css$Preprocess$StyleBlock = F3( + function (a, b, c) { + return {$: 'StyleBlock', a: a, b: b, c: c}; + }); +var rtfeldman$elm_css$Css$Preprocess$StyleBlockDeclaration = function (a) { + return {$: 'StyleBlockDeclaration', a: a}; +}; +var rtfeldman$elm_css$VirtualDom$Styled$makeSnippet = F2( + function (styles, sequence) { + var selector = A3(rtfeldman$elm_css$Css$Structure$Selector, sequence, _List_Nil, elm$core$Maybe$Nothing); + return rtfeldman$elm_css$Css$Preprocess$Snippet( + _List_fromArray( + [ + rtfeldman$elm_css$Css$Preprocess$StyleBlockDeclaration( + A3(rtfeldman$elm_css$Css$Preprocess$StyleBlock, selector, _List_Nil, styles)) + ])); + }); +var rtfeldman$elm_css$VirtualDom$Styled$murmurSeed = 15739; +var rtfeldman$elm_css$VirtualDom$Styled$getClassname = function (styles) { + return elm$core$List$isEmpty(styles) ? 'unstyled' : A2( + elm$core$String$cons, + _Utils_chr('_'), + rtfeldman$elm_hex$Hex$toString( + A2( + Skinney$murmur3$Murmur3$hashString, + rtfeldman$elm_css$VirtualDom$Styled$murmurSeed, + rtfeldman$elm_css$Css$Preprocess$Resolve$compile( + elm$core$List$singleton( + rtfeldman$elm_css$Css$Preprocess$stylesheet( + elm$core$List$singleton( + A2( + rtfeldman$elm_css$VirtualDom$Styled$makeSnippet, + styles, + rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence(_List_Nil))))))))); +}; +var rtfeldman$elm_css$Html$Styled$Internal$css = function (styles) { + var classname = rtfeldman$elm_css$VirtualDom$Styled$getClassname(styles); + var classProperty = A2( + elm$virtual_dom$VirtualDom$property, + 'className', + elm$json$Json$Encode$string(classname)); + return A3(rtfeldman$elm_css$VirtualDom$Styled$Attribute, classProperty, styles, classname); +}; +var rtfeldman$elm_css$Html$Styled$Attributes$css = rtfeldman$elm_css$Html$Styled$Internal$css; +var elm$virtual_dom$VirtualDom$Normal = function (a) { + return {$: 'Normal', a: a}; +}; +var elm$virtual_dom$VirtualDom$on = _VirtualDom_on; +var rtfeldman$elm_css$VirtualDom$Styled$on = F2( + function (eventName, handler) { + return A3( + rtfeldman$elm_css$VirtualDom$Styled$Attribute, + A2(elm$virtual_dom$VirtualDom$on, eventName, handler), + _List_Nil, + ''); + }); +var rtfeldman$elm_css$Html$Styled$Events$on = F2( + function (event, decoder) { + return A2( + rtfeldman$elm_css$VirtualDom$Styled$on, + event, + elm$virtual_dom$VirtualDom$Normal(decoder)); + }); +var rtfeldman$elm_css$Html$Styled$Events$onClick = function (msg) { + return A2( + rtfeldman$elm_css$Html$Styled$Events$on, + 'click', + elm$json$Json$Decode$succeed(msg)); +}; +var author$project$Theme$Elements$icon = F2( + function (name, click) { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$padding( + rtfeldman$elm_css$Css$px(5)) + ])), + rtfeldman$elm_css$Html$Styled$Events$onClick(click) + ]), + _List_fromArray( + [ + A2(author$project$Theme$Elements$fontAwesomeIcon, name, '2x') + ])); + }); +var rtfeldman$elm_css$Css$Internal$property = F2( + function (key, value) { + return rtfeldman$elm_css$Css$Preprocess$AppendProperty(key + (':' + value)); + }); +var rtfeldman$elm_css$Css$Preprocess$ApplyStyles = function (a) { + return {$: 'ApplyStyles', a: a}; +}; +var rtfeldman$elm_css$Css$Internal$getOverloadedProperty = F3( + function (functionName, desiredKey, style) { + getOverloadedProperty: + while (true) { + switch (style.$) { + case 'AppendProperty': + var str = style.a; + var key = A2( + elm$core$Maybe$withDefault, + '', + elm$core$List$head( + A2(elm$core$String$split, ':', str))); + return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, key); + case 'ExtendSelector': + var selector = style.a; + return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-selector')); + case 'NestSnippet': + var combinator = style.a; + return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-combinator')); + case 'WithPseudoElement': + var pseudoElement = style.a; + return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-pseudo-element setter')); + case 'WithMedia': + return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-media-query')); + case 'WithKeyframes': + return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-keyframes')); + default: + if (!style.a.b) { + return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-empty-Style')); + } else { + if (!style.a.b.b) { + var _n1 = style.a; + var only = _n1.a; + var $temp$functionName = functionName, + $temp$desiredKey = desiredKey, + $temp$style = only; + functionName = $temp$functionName; + desiredKey = $temp$desiredKey; + style = $temp$style; + continue getOverloadedProperty; + } else { + var _n2 = style.a; + var first = _n2.a; + var rest = _n2.b; + var $temp$functionName = functionName, + $temp$desiredKey = desiredKey, + $temp$style = rtfeldman$elm_css$Css$Preprocess$ApplyStyles(rest); + functionName = $temp$functionName; + desiredKey = $temp$desiredKey; + style = $temp$style; + continue getOverloadedProperty; + } + } + } + } + }); +var rtfeldman$elm_css$Css$Internal$IncompatibleUnits = {$: 'IncompatibleUnits'}; +var rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty = A3(rtfeldman$elm_css$Css$Internal$lengthConverter, rtfeldman$elm_css$Css$Internal$IncompatibleUnits, '', 0); +var rtfeldman$elm_css$Css$alignItems = function (fn) { + return A3( + rtfeldman$elm_css$Css$Internal$getOverloadedProperty, + 'alignItems', + 'align-items', + fn(rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty)); +}; +var rtfeldman$elm_css$Css$backgroundColor = function (c) { + return A2(rtfeldman$elm_css$Css$property, 'background-color', c.value); +}; +var rtfeldman$elm_css$Css$bottom = rtfeldman$elm_css$Css$prop1('bottom'); +var rtfeldman$elm_css$Css$prop4 = F5( + function (key, argA, argB, argC, argD) { + return A2( + rtfeldman$elm_css$Css$property, + key, + A2( + elm$core$String$join, + ' ', + _List_fromArray( + [argA.value, argB.value, argC.value, argD.value]))); + }); +var rtfeldman$elm_css$Css$boxShadow4 = rtfeldman$elm_css$Css$prop4('box-shadow'); +var rtfeldman$elm_css$Css$center = rtfeldman$elm_css$Css$prop1('center'); +var rtfeldman$elm_css$Css$displayFlex = A2(rtfeldman$elm_css$Css$property, 'display', 'flex'); +var rtfeldman$elm_css$Css$fixed = {backgroundAttachment: rtfeldman$elm_css$Css$Structure$Compatible, position: rtfeldman$elm_css$Css$Structure$Compatible, tableLayout: rtfeldman$elm_css$Css$Structure$Compatible, value: 'fixed'}; +var rtfeldman$elm_css$Css$flexDirection = rtfeldman$elm_css$Css$prop1('flex-direction'); +var rtfeldman$elm_css$Css$height = rtfeldman$elm_css$Css$prop1('height'); +var rtfeldman$elm_css$Css$justifyContent = function (fn) { + return A3( + rtfeldman$elm_css$Css$Internal$getOverloadedProperty, + 'justifyContent', + 'justify-content', + fn(rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty)); +}; +var rtfeldman$elm_css$Css$PercentageUnits = {$: 'PercentageUnits'}; +var rtfeldman$elm_css$Css$pct = A2(rtfeldman$elm_css$Css$Internal$lengthConverter, rtfeldman$elm_css$Css$PercentageUnits, '%'); +var rtfeldman$elm_css$Css$position = rtfeldman$elm_css$Css$prop1('position'); +var rtfeldman$elm_css$Css$row = {flexDirection: rtfeldman$elm_css$Css$Structure$Compatible, flexDirectionOrWrap: rtfeldman$elm_css$Css$Structure$Compatible, value: 'row'}; +var rtfeldman$elm_css$Css$spaceBetween = rtfeldman$elm_css$Css$prop1('space-between'); +var rtfeldman$elm_css$Css$width = rtfeldman$elm_css$Css$prop1('width'); +var rtfeldman$elm_css$Css$UnitlessInteger = {$: 'UnitlessInteger'}; +var rtfeldman$elm_css$Css$zero = {length: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrAuto: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrAutoOrCoverOrContain: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNone: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNoneOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNumber: rtfeldman$elm_css$Css$Structure$Compatible, number: rtfeldman$elm_css$Css$Structure$Compatible, numericValue: 0, outline: rtfeldman$elm_css$Css$Structure$Compatible, unitLabel: '', units: rtfeldman$elm_css$Css$UnitlessInteger, value: '0'}; +var rtfeldman$elm_css$Html$Styled$nav = rtfeldman$elm_css$Html$Styled$node('nav'); +var author$project$Main$appNavigation = A2( + rtfeldman$elm_css$Html$Styled$nav, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$displayFlex, + rtfeldman$elm_css$Css$flexDirection(rtfeldman$elm_css$Css$row), + rtfeldman$elm_css$Css$justifyContent(rtfeldman$elm_css$Css$spaceBetween), + rtfeldman$elm_css$Css$alignItems(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$position(rtfeldman$elm_css$Css$fixed), + rtfeldman$elm_css$Css$bottom(rtfeldman$elm_css$Css$zero), + rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.palette.darkBlue), + rtfeldman$elm_css$Css$height( + rtfeldman$elm_css$Css$px(48)), + rtfeldman$elm_css$Css$width( + rtfeldman$elm_css$Css$pct(100)), + A4( + rtfeldman$elm_css$Css$boxShadow4, + rtfeldman$elm_css$Css$zero, + rtfeldman$elm_css$Css$zero, + rtfeldman$elm_css$Css$px(5), + A3(rtfeldman$elm_css$Css$rgb, 0, 0, 0)) + ])) + ]), + _List_fromArray( + [ + A2(author$project$Theme$Elements$icon, 'home', author$project$Main$GoHome), + A2(author$project$Theme$Elements$icon, 'cog', author$project$Main$GoSettings) + ])); +var author$project$Main$RemoveSavedWord = function (a) { + return {$: 'RemoveSavedWord', a: a}; +}; +var author$project$Main$SaveWord = function (a) { + return {$: 'SaveWord', a: a}; +}; +var author$project$Main$isWordSaved = F2( + function (word, wordList) { + var list = A2( + elm$core$List$filter, + function (item) { + return _Utils_eq(item.word, word); + }, + wordList); + return elm$core$List$isEmpty(list); + }); +var author$project$Theme$Elements$wordDefinitionIcon = F2( + function (click, name) { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.lightGreen), + rtfeldman$elm_css$Css$padding( + rtfeldman$elm_css$Css$px(5)) + ])), + rtfeldman$elm_css$Html$Styled$Events$onClick(click) + ]), + _List_fromArray( + [ + A2(author$project$Theme$Elements$fontAwesomeIcon, name, 'lg') + ])); + }); +var author$project$Main$bookmarkIconView = F2( + function (definition, wordlist) { + var list = function () { + if (wordlist.$ === 'Just') { + var l = wordlist.a; + return l; + } else { + return _List_Nil; + } + }(); + var isSaved = A2(author$project$Main$isWordSaved, definition.word, list); + return isSaved ? A2( + author$project$Theme$Elements$wordDefinitionIcon, + author$project$Main$SaveWord(definition), + 'bookmark-o') : A2( + author$project$Theme$Elements$wordDefinitionIcon, + author$project$Main$RemoveSavedWord(definition), + 'bookmark'); + }); +var author$project$Main$isSeeAlsoEmpty = function (list) { + if (list.b) { + var f = list.a; + var r = list.b; + return !elm$core$String$length(f); + } else { + return true; + } +}; +var rtfeldman$elm_css$Css$borderRadius = rtfeldman$elm_css$Css$prop1('border-radius'); +var rtfeldman$elm_css$Css$borderStyle = rtfeldman$elm_css$Css$prop1('border-style'); +var rtfeldman$elm_css$Css$fontSize = rtfeldman$elm_css$Css$prop1('font-size'); +var rtfeldman$elm_css$Css$margin = rtfeldman$elm_css$Css$prop1('margin'); +var rtfeldman$elm_css$Css$none = {backgroundImage: rtfeldman$elm_css$Css$Structure$Compatible, blockAxisOverflow: rtfeldman$elm_css$Css$Structure$Compatible, borderStyle: rtfeldman$elm_css$Css$Structure$Compatible, cursor: rtfeldman$elm_css$Css$Structure$Compatible, display: rtfeldman$elm_css$Css$Structure$Compatible, hoverCapability: rtfeldman$elm_css$Css$Structure$Compatible, inlineAxisOverflow: rtfeldman$elm_css$Css$Structure$Compatible, keyframes: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNone: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNoneOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNumberOrAutoOrNoneOrContent: rtfeldman$elm_css$Css$Structure$Compatible, listStyleType: rtfeldman$elm_css$Css$Structure$Compatible, listStyleTypeOrPositionOrImage: rtfeldman$elm_css$Css$Structure$Compatible, none: rtfeldman$elm_css$Css$Structure$Compatible, outline: rtfeldman$elm_css$Css$Structure$Compatible, pointerDevice: rtfeldman$elm_css$Css$Structure$Compatible, pointerEvents: rtfeldman$elm_css$Css$Structure$Compatible, resize: rtfeldman$elm_css$Css$Structure$Compatible, scriptingSupport: rtfeldman$elm_css$Css$Structure$Compatible, textDecorationLine: rtfeldman$elm_css$Css$Structure$Compatible, textTransform: rtfeldman$elm_css$Css$Structure$Compatible, touchAction: rtfeldman$elm_css$Css$Structure$Compatible, transform: rtfeldman$elm_css$Css$Structure$Compatible, updateFrequency: rtfeldman$elm_css$Css$Structure$Compatible, value: 'none'}; +var rtfeldman$elm_css$Html$Styled$button = rtfeldman$elm_css$Html$Styled$node('button'); +var rtfeldman$elm_css$Html$Styled$span = rtfeldman$elm_css$Html$Styled$node('span'); +var elm$virtual_dom$VirtualDom$text = _VirtualDom_text; +var rtfeldman$elm_css$VirtualDom$Styled$Unstyled = function (a) { + return {$: 'Unstyled', a: a}; +}; +var rtfeldman$elm_css$VirtualDom$Styled$text = function (str) { + return rtfeldman$elm_css$VirtualDom$Styled$Unstyled( + elm$virtual_dom$VirtualDom$text(str)); +}; +var rtfeldman$elm_css$Html$Styled$text = rtfeldman$elm_css$VirtualDom$Styled$text; +var author$project$Theme$Elements$seeAlso = F2( + function (click, word) { + return (!elm$core$String$length(word)) ? A2(rtfeldman$elm_css$Html$Styled$span, _List_Nil, _List_Nil) : A2( + rtfeldman$elm_css$Html$Styled$button, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.button.background), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$borderRadius( + rtfeldman$elm_css$Css$px(8)), + rtfeldman$elm_css$Css$padding( + rtfeldman$elm_css$Css$px(10)), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(20)), + rtfeldman$elm_css$Css$margin( + rtfeldman$elm_css$Css$px(10)), + rtfeldman$elm_css$Css$borderStyle(rtfeldman$elm_css$Css$none) + ])), + rtfeldman$elm_css$Html$Styled$Events$onClick(click) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text(word) + ])); + }); +var rtfeldman$elm_css$Css$block = {display: rtfeldman$elm_css$Css$Structure$Compatible, value: 'block'}; +var rtfeldman$elm_css$Css$display = rtfeldman$elm_css$Css$prop1('display'); +var rtfeldman$elm_css$Css$marginTop = rtfeldman$elm_css$Css$prop1('margin-top'); +var rtfeldman$elm_css$Css$textAlign = function (fn) { + return A3( + rtfeldman$elm_css$Css$Internal$getOverloadedProperty, + 'textAlign', + 'text-align', + fn(rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty)); +}; +var author$project$Theme$Elements$takeFurther = A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(18)), + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(20)) + ])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$span, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.lightBlue), + rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Go for a word adventure:') + ])) + ])); +var rtfeldman$elm_css$Css$capitalize = {textTransform: rtfeldman$elm_css$Css$Structure$Compatible, value: 'capitalize'}; +var rtfeldman$elm_css$Css$left = rtfeldman$elm_css$Css$prop1('left'); +var rtfeldman$elm_css$Css$PtUnits = {$: 'PtUnits'}; +var rtfeldman$elm_css$Css$pt = A2(rtfeldman$elm_css$Css$Internal$lengthConverter, rtfeldman$elm_css$Css$PtUnits, 'pt'); +var rtfeldman$elm_css$Css$textTransform = rtfeldman$elm_css$Css$prop1('text-transform'); +var rtfeldman$elm_css$Html$Styled$h1 = rtfeldman$elm_css$Html$Styled$node('h1'); +var rtfeldman$elm_css$Html$Styled$p = rtfeldman$elm_css$Html$Styled$node('p'); +var author$project$Main$definitionView = function (model) { + var _n0 = model.lexiconModel.currentWord; + if (_n0.$ === 'Just') { + var word = _n0.a; + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_Nil, + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$capitalize), + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(125)) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text(word.word) + ])), + A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$displayFlex, + rtfeldman$elm_css$Css$flexDirection(rtfeldman$elm_css$Css$row), + rtfeldman$elm_css$Css$alignItems(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$justifyContent(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.green) + ])) + ]), + _List_fromArray( + [ + A2(author$project$Main$bookmarkIconView, word, model.savedWords) + ])), + A2( + rtfeldman$elm_css$Html$Styled$p, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$pt(16)), + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$left), + rtfeldman$elm_css$Css$padding( + rtfeldman$elm_css$Css$px(20)) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text(word.definition) + ])), + author$project$Main$isSeeAlsoEmpty(word.seeAlso) ? A2(rtfeldman$elm_css$Html$Styled$div, _List_Nil, _List_Nil) : A2( + rtfeldman$elm_css$Html$Styled$div, + _List_Nil, + _List_fromArray( + [ + author$project$Theme$Elements$takeFurther, + A2( + rtfeldman$elm_css$Html$Styled$div, + _List_Nil, + A2( + elm$core$List$map, + function (i) { + return A2( + author$project$Theme$Elements$seeAlso, + author$project$Main$LoadDefinitionByWord(i), + i); + }, + word.seeAlso)) + ])), + A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$height( + rtfeldman$elm_css$Css$px(60)) + ])) + ]), + _List_Nil) + ])); + } else { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_Nil, + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_Nil, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('wait...') + ])) + ])); + } +}; +var rtfeldman$elm_css$Css$justify = rtfeldman$elm_css$Css$prop1('justify'); +var rtfeldman$elm_css$Html$Styled$br = rtfeldman$elm_css$Html$Styled$node('br'); +var author$project$Main$helpView = function (karma) { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_Nil, + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$capitalize), + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(125)) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Help') + ])), + A2( + rtfeldman$elm_css$Html$Styled$p, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$justify), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(20)), + rtfeldman$elm_css$Css$padding( + rtfeldman$elm_css$Css$px(15)) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Welcome the Hindu Lexicon! Type the characters that you know are in a word. All the possible choices will appear. Use less characters if you do not know to the spelling of a word. Use more if want to limit the choices.'), + rtfeldman$elm_css$Html$Styled$text(' Gurudeva recommended study of one word and associated words. Take:'), + A2(rtfeldman$elm_css$Html$Styled$br, _List_Nil, _List_Nil), + A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center) + ])) + ]), + _List_fromArray( + [ + A2(author$project$Theme$Elements$seeAlso, karma, 'karma') + ])), + A2(rtfeldman$elm_css$Html$Styled$br, _List_Nil, _List_Nil), + rtfeldman$elm_css$Html$Styled$text(' and go a word adventure clicking the other that pop up. You can a word to my word, but click the bookmark. When you are in My Word, clicking the bookmark will delete word. ') + ])) + ])); +}; +var author$project$Main$loadingView = A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$capitalize), + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(125)) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Loading') + ])); +var author$project$Main$FilterWordList = function (a) { + return {$: 'FilterWordList', a: a}; +}; +var author$project$Main$HelpView = {$: 'HelpView'}; +var author$project$Main$Navigate = function (a) { + return {$: 'Navigate', a: a}; +}; +var author$project$Main$LoadDefinition = function (a) { + return {$: 'LoadDefinition', a: a}; +}; +var rtfeldman$elm_css$Html$Styled$li = rtfeldman$elm_css$Html$Styled$node('li'); +var author$project$Main$addWordItem = function (word) { + return A2( + rtfeldman$elm_css$Html$Styled$li, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Events$onClick( + author$project$Main$LoadDefinition(word.id)) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text(word.word) + ])); +}; +var elm$core$String$contains = _String_contains; +var author$project$Main$filterWordList = F2( + function (word, list) { + return elm$core$String$isEmpty(word) ? list : A2( + elm$core$List$filter, + function (item) { + return A2( + elm$core$String$contains, + elm$core$String$toLower(word), + elm$core$String$toLower(item.word)); + }, + list); + }); +var rtfeldman$elm_css$Css$border = rtfeldman$elm_css$Css$prop1('border'); +var rtfeldman$elm_css$Css$prop3 = F4( + function (key, argA, argB, argC) { + return A2( + rtfeldman$elm_css$Css$property, + key, + A2( + elm$core$String$join, + ' ', + _List_fromArray( + [argA.value, argB.value, argC.value]))); + }); +var rtfeldman$elm_css$Css$borderTop3 = rtfeldman$elm_css$Css$prop3('border-top'); +var rtfeldman$elm_css$Css$solid = {borderStyle: rtfeldman$elm_css$Css$Structure$Compatible, textDecorationStyle: rtfeldman$elm_css$Css$Structure$Compatible, value: 'solid'}; +var rtfeldman$elm_css$Html$Styled$hr = rtfeldman$elm_css$Html$Styled$node('hr'); +var author$project$Theme$Elements$listHeader = A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(18)), + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(20)) + ])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$span, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.lightBlue), + rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Scroll the results and choose a word!') + ])), + A2( + rtfeldman$elm_css$Html$Styled$hr, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block), + rtfeldman$elm_css$Css$height(rtfeldman$elm_css$Css$zero), + rtfeldman$elm_css$Css$border(rtfeldman$elm_css$Css$zero), + A3( + rtfeldman$elm_css$Css$borderTop3, + rtfeldman$elm_css$Css$px(2), + rtfeldman$elm_css$Css$solid, + author$project$Theme$Colors$theme.palette.lightBlue), + rtfeldman$elm_css$Css$width( + rtfeldman$elm_css$Css$pct(10)) + ])) + ]), + _List_Nil) + ])); +var rtfeldman$elm_css$Css$transparent = {color: rtfeldman$elm_css$Css$Structure$Compatible, value: 'transparent'}; +var rtfeldman$elm_css$Html$Styled$input = rtfeldman$elm_css$Html$Styled$node('input'); +var rtfeldman$elm_css$Html$Styled$Attributes$value = rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('value'); +var rtfeldman$elm_css$Html$Styled$Events$alwaysStop = function (x) { + return _Utils_Tuple2(x, true); +}; +var elm$virtual_dom$VirtualDom$MayStopPropagation = function (a) { + return {$: 'MayStopPropagation', a: a}; +}; +var rtfeldman$elm_css$Html$Styled$Events$stopPropagationOn = F2( + function (event, decoder) { + return A2( + rtfeldman$elm_css$VirtualDom$Styled$on, + event, + elm$virtual_dom$VirtualDom$MayStopPropagation(decoder)); + }); +var elm$json$Json$Decode$at = F2( + function (fields, decoder) { + return A3(elm$core$List$foldr, elm$json$Json$Decode$field, decoder, fields); + }); +var rtfeldman$elm_css$Html$Styled$Events$targetValue = A2( + elm$json$Json$Decode$at, + _List_fromArray( + ['target', 'value']), + elm$json$Json$Decode$string); +var rtfeldman$elm_css$Html$Styled$Events$onInput = function (tagger) { + return A2( + rtfeldman$elm_css$Html$Styled$Events$stopPropagationOn, + 'input', + A2( + elm$json$Json$Decode$map, + rtfeldman$elm_css$Html$Styled$Events$alwaysStop, + A2(elm$json$Json$Decode$map, tagger, rtfeldman$elm_css$Html$Styled$Events$targetValue))); +}; +var author$project$Theme$Elements$searchBox = F2( + function (changed, query) { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(10)) + ])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$input, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(30)), + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$borderStyle(rtfeldman$elm_css$Css$none), + rtfeldman$elm_css$Css$backgroundColor(rtfeldman$elm_css$Css$transparent), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white) + ])), + rtfeldman$elm_css$Html$Styled$Events$onInput(changed), + rtfeldman$elm_css$Html$Styled$Attributes$value(query) + ]), + _List_Nil), + A2( + rtfeldman$elm_css$Html$Styled$hr, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block), + rtfeldman$elm_css$Css$height(rtfeldman$elm_css$Css$zero), + rtfeldman$elm_css$Css$border(rtfeldman$elm_css$Css$zero), + A3( + rtfeldman$elm_css$Css$borderTop3, + rtfeldman$elm_css$Css$px(1), + rtfeldman$elm_css$Css$solid, + author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$width( + rtfeldman$elm_css$Css$pct(80)) + ])) + ]), + _List_Nil) + ])); + }); +var author$project$Theme$Elements$searchHeader = function (click) { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(18)) + ])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$span, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.lightBlue), + rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Enter a single word or part of a word') + ])), + A2( + rtfeldman$elm_css$Html$Styled$span, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.lightGreen), + rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) + ])), + rtfeldman$elm_css$Html$Styled$Events$onClick(click) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Need help?') + ])) + ])); +}; +var rtfeldman$elm_css$Css$listStyle = rtfeldman$elm_css$Css$prop1('list-style'); +var rtfeldman$elm_css$Css$overflowY = rtfeldman$elm_css$Css$prop1('overflow-y'); +var rtfeldman$elm_css$Css$scroll = {backgroundAttachment: rtfeldman$elm_css$Css$Structure$Compatible, blockAxisOverflow: rtfeldman$elm_css$Css$Structure$Compatible, inlineAxisOverflow: rtfeldman$elm_css$Css$Structure$Compatible, overflow: rtfeldman$elm_css$Css$Structure$Compatible, scroll: rtfeldman$elm_css$Css$Structure$Compatible, value: 'scroll'}; +var rtfeldman$elm_css$Html$Styled$ul = rtfeldman$elm_css$Html$Styled$node('ul'); +var author$project$Main$myWordsView = function (model) { + var _n0 = model.savedWords; + if (_n0.$ === 'Just') { + var wordList = _n0.a; + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(125)) + ])) + ]), + _List_fromArray( + [ + author$project$Theme$Elements$searchHeader( + author$project$Main$Navigate(author$project$Main$HelpView)), + A2(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, model.query), + author$project$Theme$Elements$listHeader, + A2( + rtfeldman$elm_css$Html$Styled$ul, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$pt(18)), + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$listStyle(rtfeldman$elm_css$Css$none), + rtfeldman$elm_css$Css$padding( + rtfeldman$elm_css$Css$px(20)), + rtfeldman$elm_css$Css$overflowY(rtfeldman$elm_css$Css$scroll), + rtfeldman$elm_css$Css$height( + rtfeldman$elm_css$Css$px(300)) + ])) + ]), + A2( + elm$core$List$map, + author$project$Main$addWordItem, + A2(author$project$Main$filterWordList, model.query, wordList))) + ])); + } else { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(125)) + ])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('You can click on the bookmark icon on word definitions to save them!') + ])) + ])); + } +}; +var author$project$Main$LoadRandomDefinition = {$: 'LoadRandomDefinition'}; +var author$project$Main$MyWordsView = {$: 'MyWordsView'}; +var rtfeldman$elm_css$Css$flex = rtfeldman$elm_css$Css$prop1('flex'); +var rtfeldman$elm_css$Css$Preprocess$ExtendSelector = F2( + function (a, b) { + return {$: 'ExtendSelector', a: a, b: b}; + }); +var rtfeldman$elm_css$Css$Structure$PseudoClassSelector = function (a) { + return {$: 'PseudoClassSelector', a: a}; +}; +var rtfeldman$elm_css$Css$pseudoClass = function (_class) { + return rtfeldman$elm_css$Css$Preprocess$ExtendSelector( + rtfeldman$elm_css$Css$Structure$PseudoClassSelector(_class)); +}; +var rtfeldman$elm_css$Css$hover = rtfeldman$elm_css$Css$pseudoClass('hover'); +var rtfeldman$elm_css$Css$int = function (val) { + return { + fontWeight: rtfeldman$elm_css$Css$Structure$Compatible, + intOrAuto: rtfeldman$elm_css$Css$Structure$Compatible, + lengthOrNumber: rtfeldman$elm_css$Css$Structure$Compatible, + lengthOrNumberOrAutoOrNoneOrContent: rtfeldman$elm_css$Css$Structure$Compatible, + number: rtfeldman$elm_css$Css$Structure$Compatible, + numericValue: val, + unitLabel: '', + units: rtfeldman$elm_css$Css$UnitlessInteger, + value: elm$core$String$fromInt(val) + }; +}; +var rtfeldman$elm_css$Html$Styled$styled = F4( + function (fn, styles, attrs, children) { + return A2( + fn, + A2( + elm$core$List$cons, + rtfeldman$elm_css$Html$Styled$Internal$css(styles), + attrs), + children); + }); +var author$project$Theme$Elements$navButton = function (isCurrentPage) { + var bgColor = isCurrentPage ? author$project$Theme$Colors$theme.button.active : author$project$Theme$Colors$theme.button.background; + return A2( + rtfeldman$elm_css$Html$Styled$styled, + rtfeldman$elm_css$Html$Styled$button, + _List_fromArray( + [ + rtfeldman$elm_css$Css$flex( + rtfeldman$elm_css$Css$int(1)), + rtfeldman$elm_css$Css$margin( + rtfeldman$elm_css$Css$px(2)), + rtfeldman$elm_css$Css$height( + rtfeldman$elm_css$Css$px(57)), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(18)), + rtfeldman$elm_css$Css$backgroundColor(bgColor), + rtfeldman$elm_css$Css$borderStyle(rtfeldman$elm_css$Css$none), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.button.text), + rtfeldman$elm_css$Css$hover( + _List_fromArray( + [ + rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.button.active) + ])) + ])); +}; +var author$project$Main$pageNavigation = function (currentPage) { + var activePage = function () { + switch (currentPage.$) { + case 'SearchView': + return 'search'; + case 'MyWordsView': + return 'mywords'; + default: + return 'other'; + } + }(); + return A2( + rtfeldman$elm_css$Html$Styled$nav, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$displayFlex, + rtfeldman$elm_css$Css$flexDirection(rtfeldman$elm_css$Css$row), + rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.palette.darkGreen) + ])) + ]), + _List_fromArray( + [ + A3( + author$project$Theme$Elements$navButton, + activePage === 'search', + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Events$onClick( + author$project$Main$Navigate(author$project$Main$SearchView)) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Search') + ])), + A3( + author$project$Theme$Elements$navButton, + false, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Events$onClick(author$project$Main$LoadRandomDefinition) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Surprise!') + ])), + A3( + author$project$Theme$Elements$navButton, + activePage === 'mywords', + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Events$onClick( + author$project$Main$Navigate(author$project$Main$MyWordsView)) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('My Words') + ])) + ])); +}; +var author$project$Main$searchView = function (model) { + var _n0 = model.lexiconModel.wordList; + if (_n0.$ === 'Just') { + var wordList = _n0.a; + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(125)) + ])) + ]), + _List_fromArray( + [ + author$project$Theme$Elements$searchHeader( + author$project$Main$Navigate(author$project$Main$HelpView)), + A2(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, model.query), + author$project$Theme$Elements$listHeader, + A2( + rtfeldman$elm_css$Html$Styled$ul, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$pt(18)), + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$listStyle(rtfeldman$elm_css$Css$none), + rtfeldman$elm_css$Css$padding( + rtfeldman$elm_css$Css$px(20)), + rtfeldman$elm_css$Css$overflowY(rtfeldman$elm_css$Css$scroll), + rtfeldman$elm_css$Css$height( + rtfeldman$elm_css$Css$px(250)) + ])) + ]), + A2( + elm$core$List$map, + author$project$Main$addWordItem, + A2(author$project$Main$filterWordList, model.query, wordList))) + ])); + } else { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(125)) + ])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Loading ...') + ])) + ])); + } +}; +var rtfeldman$elm_css$Css$batch = rtfeldman$elm_css$Css$Preprocess$ApplyStyles; +var rtfeldman$elm_css$Css$minHeight = rtfeldman$elm_css$Css$prop1('min-height'); +var author$project$Theme$Elements$bodyStyle = rtfeldman$elm_css$Css$batch( + _List_fromArray( + [ + rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.palette.darkGreen), + rtfeldman$elm_css$Css$height( + rtfeldman$elm_css$Css$pct(100)), + rtfeldman$elm_css$Css$minHeight( + rtfeldman$elm_css$Css$pct(100)) + ])); +var rtfeldman$elm_css$Css$top = rtfeldman$elm_css$Css$prop1('top'); +var author$project$Theme$Elements$headerStyle = rtfeldman$elm_css$Css$batch( + _List_fromArray( + [ + rtfeldman$elm_css$Css$position(rtfeldman$elm_css$Css$fixed), + rtfeldman$elm_css$Css$top(rtfeldman$elm_css$Css$zero), + rtfeldman$elm_css$Css$width( + rtfeldman$elm_css$Css$pct(100)) + ])); +var rtfeldman$elm_css$Css$bold = {fontWeight: rtfeldman$elm_css$Css$Structure$Compatible, value: 'bold'}; +var rtfeldman$elm_css$Css$fontWeight = function (_n0) { + var value = _n0.value; + return A2(rtfeldman$elm_css$Css$property, 'font-weight', value); +}; +var rtfeldman$elm_css$Css$uppercase = {textTransform: rtfeldman$elm_css$Css$Structure$Compatible, value: 'uppercase'}; +var author$project$Theme$Elements$headerTitle = A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$backgroundColor( + rtfeldman$elm_css$Css$hex('#0a4650')), + rtfeldman$elm_css$Css$height( + rtfeldman$elm_css$Css$px(43)), + rtfeldman$elm_css$Css$displayFlex, + rtfeldman$elm_css$Css$flexDirection(rtfeldman$elm_css$Css$row), + rtfeldman$elm_css$Css$alignItems(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$justifyContent(rtfeldman$elm_css$Css$center) + ])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(18)), + rtfeldman$elm_css$Css$fontWeight(rtfeldman$elm_css$Css$bold), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$uppercase), + rtfeldman$elm_css$Css$margin(rtfeldman$elm_css$Css$zero) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('A Hindu Lexicon') + ])) + ])); +var author$project$Main$view = function (model) { + var activeView = function () { + var _n0 = model.currentPage; + switch (_n0.$) { + case 'DefinitionView': + return author$project$Main$definitionView(model); + case 'LoadingView': + return author$project$Main$loadingView; + case 'SearchView': + return author$project$Main$searchView(model); + case 'MyWordsView': + return author$project$Main$myWordsView(model); + case 'HelpView': + return author$project$Main$helpView( + author$project$Main$LoadDefinitionByWord('karma')); + default: + return A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_Nil, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('not implemented') + ])); + } + }(); + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [author$project$Theme$Elements$bodyStyle])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [author$project$Theme$Elements$headerStyle])) + ]), + _List_fromArray( + [ + author$project$Theme$Elements$headerTitle, + author$project$Main$pageNavigation(model.currentPage) + ])), + activeView, + author$project$Main$appNavigation + ])); +}; +var elm$browser$Browser$External = function (a) { + return {$: 'External', a: a}; +}; +var elm$browser$Browser$Internal = function (a) { + return {$: 'Internal', a: a}; +}; +var elm$browser$Browser$Dom$NotFound = function (a) { + return {$: 'NotFound', a: a}; +}; +var elm$core$Basics$never = function (_n0) { + never: + while (true) { + var nvr = _n0.a; + var $temp$_n0 = nvr; + _n0 = $temp$_n0; + continue never; + } +}; +var elm$core$Task$Perform = function (a) { + return {$: 'Perform', a: a}; +}; +var elm$core$Task$init = elm$core$Task$succeed(_Utils_Tuple0); +var elm$core$Task$map = F2( + function (func, taskA) { + return A2( + elm$core$Task$andThen, + function (a) { + return elm$core$Task$succeed( + func(a)); + }, + taskA); + }); +var elm$core$Task$map2 = F3( + function (func, taskA, taskB) { + return A2( + elm$core$Task$andThen, + function (a) { + return A2( + elm$core$Task$andThen, + function (b) { + return elm$core$Task$succeed( + A2(func, a, b)); + }, + taskB); + }, + taskA); + }); +var elm$core$Task$sequence = function (tasks) { + return A3( + elm$core$List$foldr, + elm$core$Task$map2(elm$core$List$cons), + elm$core$Task$succeed(_List_Nil), + tasks); +}; +var elm$core$Task$spawnCmd = F2( + function (router, _n0) { + var task = _n0.a; + return _Scheduler_spawn( + A2( + elm$core$Task$andThen, + elm$core$Platform$sendToApp(router), + task)); + }); +var elm$core$Task$onEffects = F3( + function (router, commands, state) { + return A2( + elm$core$Task$map, + function (_n0) { + return _Utils_Tuple0; + }, + elm$core$Task$sequence( + A2( + elm$core$List$map, + elm$core$Task$spawnCmd(router), + commands))); + }); +var elm$core$Task$onSelfMsg = F3( + function (_n0, _n1, _n2) { + return elm$core$Task$succeed(_Utils_Tuple0); + }); +var elm$core$Task$cmdMap = F2( + function (tagger, _n0) { + var task = _n0.a; + return elm$core$Task$Perform( + A2(elm$core$Task$map, tagger, task)); + }); +_Platform_effectManagers['Task'] = _Platform_createManager(elm$core$Task$init, elm$core$Task$onEffects, elm$core$Task$onSelfMsg, elm$core$Task$cmdMap); +var elm$core$Task$command = _Platform_leaf('Task'); +var elm$core$Task$perform = F2( + function (toMessage, task) { + return elm$core$Task$command( + elm$core$Task$Perform( + A2(elm$core$Task$map, toMessage, task))); + }); +var elm$url$Url$Http = {$: 'Http'}; +var elm$url$Url$Https = {$: 'Https'}; +var elm$core$String$indexes = _String_indexes; +var elm$core$String$left = F2( + function (n, string) { + return (n < 1) ? '' : A3(elm$core$String$slice, 0, n, string); + }); +var elm$core$String$toInt = _String_toInt; +var elm$url$Url$Url = F6( + function (protocol, host, port_, path, query, fragment) { + return {fragment: fragment, host: host, path: path, port_: port_, protocol: protocol, query: query}; + }); +var elm$url$Url$chompBeforePath = F5( + function (protocol, path, params, frag, str) { + if (elm$core$String$isEmpty(str) || A2(elm$core$String$contains, '@', str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, ':', str); + if (!_n0.b) { + return elm$core$Maybe$Just( + A6(elm$url$Url$Url, protocol, str, elm$core$Maybe$Nothing, path, params, frag)); + } else { + if (!_n0.b.b) { + var i = _n0.a; + var _n1 = elm$core$String$toInt( + A2(elm$core$String$dropLeft, i + 1, str)); + if (_n1.$ === 'Nothing') { + return elm$core$Maybe$Nothing; + } else { + var port_ = _n1; + return elm$core$Maybe$Just( + A6( + elm$url$Url$Url, + protocol, + A2(elm$core$String$left, i, str), + port_, + path, + params, + frag)); + } + } else { + return elm$core$Maybe$Nothing; + } + } + } + }); +var elm$url$Url$chompBeforeQuery = F4( + function (protocol, params, frag, str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, '/', str); + if (!_n0.b) { + return A5(elm$url$Url$chompBeforePath, protocol, '/', params, frag, str); + } else { + var i = _n0.a; + return A5( + elm$url$Url$chompBeforePath, + protocol, + A2(elm$core$String$dropLeft, i, str), + params, + frag, + A2(elm$core$String$left, i, str)); + } + } + }); +var elm$url$Url$chompBeforeFragment = F3( + function (protocol, frag, str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, '?', str); + if (!_n0.b) { + return A4(elm$url$Url$chompBeforeQuery, protocol, elm$core$Maybe$Nothing, frag, str); + } else { + var i = _n0.a; + return A4( + elm$url$Url$chompBeforeQuery, + protocol, + elm$core$Maybe$Just( + A2(elm$core$String$dropLeft, i + 1, str)), + frag, + A2(elm$core$String$left, i, str)); + } + } + }); +var elm$url$Url$chompAfterProtocol = F2( + function (protocol, str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, '#', str); + if (!_n0.b) { + return A3(elm$url$Url$chompBeforeFragment, protocol, elm$core$Maybe$Nothing, str); + } else { + var i = _n0.a; + return A3( + elm$url$Url$chompBeforeFragment, + protocol, + elm$core$Maybe$Just( + A2(elm$core$String$dropLeft, i + 1, str)), + A2(elm$core$String$left, i, str)); + } + } + }); +var elm$url$Url$fromString = function (str) { + return A2(elm$core$String$startsWith, 'http://', str) ? A2( + elm$url$Url$chompAfterProtocol, + elm$url$Url$Http, + A2(elm$core$String$dropLeft, 7, str)) : (A2(elm$core$String$startsWith, 'https://', str) ? A2( + elm$url$Url$chompAfterProtocol, + elm$url$Url$Https, + A2(elm$core$String$dropLeft, 8, str)) : elm$core$Maybe$Nothing); +}; +var elm$browser$Browser$element = _Browser_element; +var elm$virtual_dom$VirtualDom$node = function (tag) { + return _VirtualDom_node( + _VirtualDom_noScript(tag)); +}; +var elm$virtual_dom$VirtualDom$keyedNode = function (tag) { + return _VirtualDom_keyedNode( + _VirtualDom_noScript(tag)); +}; +var elm$virtual_dom$VirtualDom$keyedNodeNS = F2( + function (namespace, tag) { + return A2( + _VirtualDom_keyedNodeNS, + namespace, + _VirtualDom_noScript(tag)); + }); +var elm$virtual_dom$VirtualDom$nodeNS = function (tag) { + return _VirtualDom_nodeNS( + _VirtualDom_noScript(tag)); +}; +var rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles = F2( + function (_n0, styles) { + var newStyles = _n0.b; + var classname = _n0.c; + return elm$core$List$isEmpty(newStyles) ? styles : A3(elm$core$Dict$insert, classname, newStyles, styles); + }); +var rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute = function (_n0) { + var val = _n0.a; + return val; +}; +var rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml = F2( + function (_n6, _n7) { + var key = _n6.a; + var html = _n6.b; + var pairs = _n7.a; + var styles = _n7.b; + switch (html.$) { + case 'Unstyled': + var vdom = html.a; + return _Utils_Tuple2( + A2( + elm$core$List$cons, + _Utils_Tuple2(key, vdom), + pairs), + styles); + case 'Node': + var elemType = html.a; + var properties = html.b; + var children = html.c; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n9 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n9.a; + var finalStyles = _n9.b; + var vdom = A3( + elm$virtual_dom$VirtualDom$node, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2( + elm$core$List$cons, + _Utils_Tuple2(key, vdom), + pairs), + finalStyles); + case 'NodeNS': + var ns = html.a; + var elemType = html.b; + var properties = html.c; + var children = html.d; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n10 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n10.a; + var finalStyles = _n10.b; + var vdom = A4( + elm$virtual_dom$VirtualDom$nodeNS, + ns, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2( + elm$core$List$cons, + _Utils_Tuple2(key, vdom), + pairs), + finalStyles); + case 'KeyedNode': + var elemType = html.a; + var properties = html.b; + var children = html.c; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n11 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n11.a; + var finalStyles = _n11.b; + var vdom = A3( + elm$virtual_dom$VirtualDom$keyedNode, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2( + elm$core$List$cons, + _Utils_Tuple2(key, vdom), + pairs), + finalStyles); + default: + var ns = html.a; + var elemType = html.b; + var properties = html.c; + var children = html.d; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n12 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n12.a; + var finalStyles = _n12.b; + var vdom = A4( + elm$virtual_dom$VirtualDom$keyedNodeNS, + ns, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2( + elm$core$List$cons, + _Utils_Tuple2(key, vdom), + pairs), + finalStyles); + } + }); +var rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml = F2( + function (html, _n0) { + var nodes = _n0.a; + var styles = _n0.b; + switch (html.$) { + case 'Unstyled': + var vdomNode = html.a; + return _Utils_Tuple2( + A2(elm$core$List$cons, vdomNode, nodes), + styles); + case 'Node': + var elemType = html.a; + var properties = html.b; + var children = html.c; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n2 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n2.a; + var finalStyles = _n2.b; + var vdomNode = A3( + elm$virtual_dom$VirtualDom$node, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2(elm$core$List$cons, vdomNode, nodes), + finalStyles); + case 'NodeNS': + var ns = html.a; + var elemType = html.b; + var properties = html.c; + var children = html.d; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n3 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n3.a; + var finalStyles = _n3.b; + var vdomNode = A4( + elm$virtual_dom$VirtualDom$nodeNS, + ns, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2(elm$core$List$cons, vdomNode, nodes), + finalStyles); + case 'KeyedNode': + var elemType = html.a; + var properties = html.b; + var children = html.c; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n4 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n4.a; + var finalStyles = _n4.b; + var vdomNode = A3( + elm$virtual_dom$VirtualDom$keyedNode, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2(elm$core$List$cons, vdomNode, nodes), + finalStyles); + default: + var ns = html.a; + var elemType = html.b; + var properties = html.c; + var children = html.d; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n5 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n5.a; + var finalStyles = _n5.b; + var vdomNode = A4( + elm$virtual_dom$VirtualDom$keyedNodeNS, + ns, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2(elm$core$List$cons, vdomNode, nodes), + finalStyles); + } + }); +var elm$core$Dict$singleton = F2( + function (key, value) { + return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, key, value, elm$core$Dict$RBEmpty_elm_builtin, elm$core$Dict$RBEmpty_elm_builtin); + }); +var rtfeldman$elm_css$VirtualDom$Styled$stylesFromPropertiesHelp = F2( + function (candidate, properties) { + stylesFromPropertiesHelp: + while (true) { + if (!properties.b) { + return candidate; + } else { + var _n1 = properties.a; + var styles = _n1.b; + var classname = _n1.c; + var rest = properties.b; + if (elm$core$String$isEmpty(classname)) { + var $temp$candidate = candidate, + $temp$properties = rest; + candidate = $temp$candidate; + properties = $temp$properties; + continue stylesFromPropertiesHelp; + } else { + var $temp$candidate = elm$core$Maybe$Just( + _Utils_Tuple2(classname, styles)), + $temp$properties = rest; + candidate = $temp$candidate; + properties = $temp$properties; + continue stylesFromPropertiesHelp; + } + } + } + }); +var rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties = function (properties) { + var _n0 = A2(rtfeldman$elm_css$VirtualDom$Styled$stylesFromPropertiesHelp, elm$core$Maybe$Nothing, properties); + if (_n0.$ === 'Nothing') { + return elm$core$Dict$empty; + } else { + var _n1 = _n0.a; + var classname = _n1.a; + var styles = _n1.b; + return A2(elm$core$Dict$singleton, classname, styles); + } +}; +var rtfeldman$elm_css$Css$Structure$ClassSelector = function (a) { + return {$: 'ClassSelector', a: a}; +}; +var rtfeldman$elm_css$VirtualDom$Styled$snippetFromPair = function (_n0) { + var classname = _n0.a; + var styles = _n0.b; + return A2( + rtfeldman$elm_css$VirtualDom$Styled$makeSnippet, + styles, + rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence( + _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$ClassSelector(classname) + ]))); +}; +var rtfeldman$elm_css$VirtualDom$Styled$toDeclaration = function (dict) { + return rtfeldman$elm_css$Css$Preprocess$Resolve$compile( + elm$core$List$singleton( + rtfeldman$elm_css$Css$Preprocess$stylesheet( + A2( + elm$core$List$map, + rtfeldman$elm_css$VirtualDom$Styled$snippetFromPair, + elm$core$Dict$toList(dict))))); +}; +var rtfeldman$elm_css$VirtualDom$Styled$toStyleNode = function (styles) { + return A3( + elm$virtual_dom$VirtualDom$node, + 'style', + _List_Nil, + elm$core$List$singleton( + elm$virtual_dom$VirtualDom$text( + rtfeldman$elm_css$VirtualDom$Styled$toDeclaration(styles)))); +}; +var rtfeldman$elm_css$VirtualDom$Styled$unstyle = F3( + function (elemType, properties, children) { + var unstyledProperties = A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); + var initialStyles = rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); + var _n0 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, + _Utils_Tuple2(_List_Nil, initialStyles), + children); + var childNodes = _n0.a; + var styles = _n0.b; + var styleNode = rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(styles); + return A3( + elm$virtual_dom$VirtualDom$node, + elemType, + unstyledProperties, + A2( + elm$core$List$cons, + styleNode, + elm$core$List$reverse(childNodes))); + }); +var rtfeldman$elm_css$VirtualDom$Styled$containsKey = F2( + function (key, pairs) { + containsKey: + while (true) { + if (!pairs.b) { + return false; + } else { + var _n1 = pairs.a; + var str = _n1.a; + var rest = pairs.b; + if (_Utils_eq(key, str)) { + return true; + } else { + var $temp$key = key, + $temp$pairs = rest; + key = $temp$key; + pairs = $temp$pairs; + continue containsKey; + } + } + } + }); +var rtfeldman$elm_css$VirtualDom$Styled$getUnusedKey = F2( + function (_default, pairs) { + getUnusedKey: + while (true) { + if (!pairs.b) { + return _default; + } else { + var _n1 = pairs.a; + var firstKey = _n1.a; + var rest = pairs.b; + var newKey = '_' + firstKey; + if (A2(rtfeldman$elm_css$VirtualDom$Styled$containsKey, newKey, rest)) { + var $temp$default = newKey, + $temp$pairs = rest; + _default = $temp$default; + pairs = $temp$pairs; + continue getUnusedKey; + } else { + return newKey; + } + } + } + }); +var rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode = F2( + function (allStyles, keyedChildNodes) { + var styleNodeKey = A2(rtfeldman$elm_css$VirtualDom$Styled$getUnusedKey, '_', keyedChildNodes); + var finalNode = rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(allStyles); + return _Utils_Tuple2(styleNodeKey, finalNode); + }); +var rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyed = F3( + function (elemType, properties, keyedChildren) { + var unstyledProperties = A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); + var initialStyles = rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); + var _n0 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, + _Utils_Tuple2(_List_Nil, initialStyles), + keyedChildren); + var keyedChildNodes = _n0.a; + var styles = _n0.b; + var keyedStyleNode = A2(rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode, styles, keyedChildNodes); + return A3( + elm$virtual_dom$VirtualDom$keyedNode, + elemType, + unstyledProperties, + A2( + elm$core$List$cons, + keyedStyleNode, + elm$core$List$reverse(keyedChildNodes))); + }); +var rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyedNS = F4( + function (ns, elemType, properties, keyedChildren) { + var unstyledProperties = A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); + var initialStyles = rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); + var _n0 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, + _Utils_Tuple2(_List_Nil, initialStyles), + keyedChildren); + var keyedChildNodes = _n0.a; + var styles = _n0.b; + var keyedStyleNode = A2(rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode, styles, keyedChildNodes); + return A4( + elm$virtual_dom$VirtualDom$keyedNodeNS, + ns, + elemType, + unstyledProperties, + A2( + elm$core$List$cons, + keyedStyleNode, + elm$core$List$reverse(keyedChildNodes))); + }); +var rtfeldman$elm_css$VirtualDom$Styled$unstyleNS = F4( + function (ns, elemType, properties, children) { + var unstyledProperties = A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); + var initialStyles = rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); + var _n0 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, + _Utils_Tuple2(_List_Nil, initialStyles), + children); + var childNodes = _n0.a; + var styles = _n0.b; + var styleNode = rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(styles); + return A4( + elm$virtual_dom$VirtualDom$nodeNS, + ns, + elemType, + unstyledProperties, + A2( + elm$core$List$cons, + styleNode, + elm$core$List$reverse(childNodes))); + }); +var rtfeldman$elm_css$VirtualDom$Styled$toUnstyled = function (vdom) { + switch (vdom.$) { + case 'Unstyled': + var plainNode = vdom.a; + return plainNode; + case 'Node': + var elemType = vdom.a; + var properties = vdom.b; + var children = vdom.c; + return A3(rtfeldman$elm_css$VirtualDom$Styled$unstyle, elemType, properties, children); + case 'NodeNS': + var ns = vdom.a; + var elemType = vdom.b; + var properties = vdom.c; + var children = vdom.d; + return A4(rtfeldman$elm_css$VirtualDom$Styled$unstyleNS, ns, elemType, properties, children); + case 'KeyedNode': + var elemType = vdom.a; + var properties = vdom.b; + var children = vdom.c; + return A3(rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyed, elemType, properties, children); + default: + var ns = vdom.a; + var elemType = vdom.b; + var properties = vdom.c; + var children = vdom.d; + return A4(rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyedNS, ns, elemType, properties, children); + } +}; +var rtfeldman$elm_css$Html$Styled$toUnstyled = rtfeldman$elm_css$VirtualDom$Styled$toUnstyled; +var author$project$Main$main = elm$browser$Browser$element( + { + init: author$project$Main$init, + subscriptions: author$project$Main$subscriptions, + update: author$project$Main$update, + view: A2(elm$core$Basics$composeR, author$project$Main$view, rtfeldman$elm_css$Html$Styled$toUnstyled) + }); +_Platform_export({'Main':{'init':author$project$Main$main( + elm$json$Json$Decode$list( + A2( + elm$json$Json$Decode$andThen, + function (word) { + return A2( + elm$json$Json$Decode$andThen, + function (id) { + return elm$json$Json$Decode$succeed( + {id: id, word: word}); + }, + A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); + }, + A2(elm$json$Json$Decode$field, 'word', elm$json$Json$Decode$string))))(0)}});}(this)); \ No newline at end of file diff --git a/web-modules/lexicon/build/elm-package.json b/web-modules/lexicon/build/elm-package.json new file mode 100644 index 00000000..f5ba1c5a --- /dev/null +++ b/web-modules/lexicon/build/elm-package.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "summary": "helpful summary of your project, less than 80 characters", + "repository": "https://github.com/user/project.git", + "license": "BSD3", + "source-directories": [ + "." + ], + "exposed-modules": [], + "dependencies": { + "elm-lang/core": "5.1.1 <= v < 6.0.0", + "elm-lang/html": "2.0.0 <= v < 3.0.0" + }, + "elm-version": "0.18.0 <= v < 0.19.0" +} diff --git a/web-modules/lexicon/build/index.html b/web-modules/lexicon/build/index.html new file mode 100644 index 00000000..f171b63c --- /dev/null +++ b/web-modules/lexicon/build/index.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + Lexicon + + + + + + +
+ + + + \ No newline at end of file diff --git a/web-modules/lexicon/build/index.js b/web-modules/lexicon/build/index.js new file mode 100644 index 00000000..83f4ae9b --- /dev/null +++ b/web-modules/lexicon/build/index.js @@ -0,0 +1,77 @@ +function boot() { + + let list = JSON.parse(localStorage.getItem("saved_words")) || [] + + // proxy for web api + if (typeof liveCode === "undefined") { + liveCode = { + debug: (d) => console.log(d), + getWordDefinition: (d) => fetch("https://dev.himalayanacademy.com/api/index.php/lexicon/word/" + d) + .then(response => response.json()) + .then(data => { + data.id = data.lexicon_id + data.seeAlso = data.see_also + window.app.ports.wordDefinitionReceived.send(data) + }) + } + } + + window.app = Elm.Main.init({ + node: document.getElementById('root'), + flags: list + }) + + // Ports related code below + + window.app.ports.saveWord.subscribe(function (definition) { + liveCode.debug("saving word", definition) + list.push({ word: definition.word, id: definition.id }) + localStorage.setItem("saved_words", JSON.stringify(list)) + window.app.ports.savedWordListChanged.send(list) + }); + + + window.app.ports.removeSavedWord.subscribe(function (definition) { + liveCode.debug("removing word", definition.word) + list = list.filter((item) => item.word !== definition.word) + localStorage.setItem("saved_words", JSON.stringify(list)) + window.app.ports.savedWordListChanged.send(list) + }); + + window.app.ports.appGoHome.subscribe(function () { + liveCode.goHome() + }) + + + window.app.ports.appGoSettings.subscribe(function () { + liveCode.goSettings() + }) + + window.app.ports.getWordList.subscribe(function () { + liveCode.debug("getting word list") + if (wordlist) { + liveCode.debug("using saved one") + window.app.ports.wordListReceived.send(wordlist) + } else { + liveCode.getWordList() + } + }) + + window.app.ports.scrollTop.subscribe(function () { + window.scrollTo(0, 0) + }) + + + window.app.ports.getWordDefinition.subscribe(function (d) { + liveCode.debug("getting word definition for " + d) + + liveCode.getWordDefinition(d) + + }) + + window.app.ports.lcDebug.subscribe(function (data) { + liveCode.debug("[ELM] " + data) + }) +} + +setTimeout(boot, 200) diff --git a/web-modules/lexicon/build/main.css b/web-modules/lexicon/build/main.css new file mode 100644 index 00000000..8567602f --- /dev/null +++ b/web-modules/lexicon/build/main.css @@ -0,0 +1,15 @@ +body { + font-family: 'Noto Sans', sans-serif; + margin: 0; + text-align: center; + color: #293c4b; +} + +h1 { + font-size: 30px; +} + +img { + margin: 20px 0; + max-width: 200px; +} diff --git a/web-modules/lexicon/build/normalize.css b/web-modules/lexicon/build/normalize.css new file mode 100644 index 00000000..47b010e4 --- /dev/null +++ b/web-modules/lexicon/build/normalize.css @@ -0,0 +1,341 @@ +/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} diff --git a/web-modules/lexicon/build/test.html b/web-modules/lexicon/build/test.html new file mode 100644 index 00000000..bbe32faf --- /dev/null +++ b/web-modules/lexicon/build/test.html @@ -0,0 +1,30 @@ + + + + + + + + +

Demo Chromium bug

+ + + + + + \ No newline at end of file diff --git a/web-modules/lexicon/build/wordlist.js b/web-modules/lexicon/build/wordlist.js new file mode 100644 index 00000000..2e317a09 --- /dev/null +++ b/web-modules/lexicon/build/wordlist.js @@ -0,0 +1,2 @@ +var wordlist = [ + { id: "1", word: " gada" }, { id: "2", word: "aadheenakarthar" }, { id: "3", word: "aadheenam" }, { id: "4", word: "abhasa" }, { id: "5", word: "abhaya" }, { id: "6", word: "abhaya mudra" }, { id: "7", word: "abhimana" }, { id: "8", word: "Abhinavagupta" }, { id: "9", word: "abhisheka" }, { id: "10", word: "abhor (abhorrence)" }, { id: "11", word: "abhyasa" }, { id: "12", word: "abide" }, { id: "13", word: "abjuration" }, { id: "14", word: "abjure" }, { id: "15", word: "ablution" }, { id: "16", word: "abode" }, { id: "17", word: "abortion" }, { id: "18", word: "Abrahamic religions" }, { id: "19", word: "Absolute" }, { id: "20", word: "absolution (to absolve)" }, { id: "21", word: "absorption" }, { id: "22", word: "abstain" }, { id: "23", word: "abstinence" }, { id: "24", word: "abyss" }, { id: "25", word: "accelerate" }, { id: "26", word: "accordant" }, { id: "27", word: "accrue" }, { id: "28", word: "achara" }, { id: "29", word: "acharya" }, { id: "30", word: "acosmic pantheism" }, { id: "31", word: "actinic" }, { id: "32", word: "actinic force" }, { id: "33", word: "actinic prana" }, { id: "34", word: "actinodic" }, { id: "35", word: "acumen" }, { id: "36", word: "acupuncture" }, { id: "37", word: "adage" }, { id: "38", word: "adept" }, { id: "39", word: "adharma" }, { id: "40", word: "adhere" }, { id: "41", word: "adhyatma" }, { id: "42", word: "adhyatma prasara" }, { id: "43", word: "adhyatma vikasha" }, { id: "44", word: "adhyaya" }, { id: "45", word: "Adi Granth" }, { id: "46", word: "Adinatha" }, { id: "47", word: "Adinatha Sampradaya" }, { id: "48", word: "Adishaiva" }, { id: "49", word: "admonition" }, { id: "50", word: "adopt" }, { id: "51", word: "adore" }, { id: "52", word: "adorn" }, { id: "53", word: "adrenaline" }, { id: "54", word: "adrishta" }, { id: "55", word: "adulate" }, { id: "56", word: "adultery" }, { id: "57", word: "advaita" }, { id: "58", word: "Advaita Ishvaravada" }, { id: "59", word: "Advaita Ishvaravadin" }, { id: "60", word: "Advaita Siddhanta" }, { id: "61", word: "Advaita Vedanta" }, { id: "62", word: "advaitin" }, { id: "63", word: "adversity" }, { id: "64", word: "advocate" }, { id: "65", word: "aegis" }, { id: "66", word: "affectionate detachment" }, { id: "67", word: "affirmation" }, { id: "68", word: "affirmation of faith" }, { id: "69", word: "affliction" }, { id: "70", word: "affluence" }, { id: "71", word: "afterlife" }, { id: "72", word: "aftermath" }, { id: "73", word: "Agama" }, { id: "74", word: "agarbhatti" }, { id: "75", word: "Agastya" }, { id: "76", word: "Aghora" }, { id: "77", word: "Aghorasiva" }, { id: "78", word: "Aghori" }, { id: "79", word: "agni" }, { id: "80", word: "agnihotra" }, { id: "81", word: "agnikaraka" }, { id: "82", word: "Aham Brahmasmi" }, { id: "83", word: "ahamkara" }, { id: "84", word: "ahimsa" }, { id: "85", word: "AIDS" }, { id: "86", word: "aikya" }, { id: "87", word: "Aitareya Brahmana" }, { id: "88", word: "Aitareya Upanishad" }, { id: "89", word: "ajapa" }, { id: "90", word: "Ajita Agama" }, { id: "91", word: "ajna chakra" }, { id: "92", word: "akasha" }, { id: "93", word: "akshata" }, { id: "94", word: "alankara" }, { id: "95", word: "all-pervasive" }, { id: "96", word: "Allama Prabhu" }, { id: "97", word: "allegiance" }, { id: "98", word: "allegory" }, { id: "99", word: "aloha" }, { id: "100", word: "aloof" }, { id: "101", word: "altruism" }, { id: "102", word: "altruistic" }, { id: "103", word: "Alvar" }, { id: "104", word: "amalgamate" }, { id: "105", word: "Amardaka Order" }, { id: "106", word: "Amardaka Tirthanatha" }, { id: "107", word: "Amarnath" }, { id: "108", word: "amass" }, { id: "109", word: "Ambika" }, { id: "110", word: "ambrosia" }, { id: "111", word: "amenable" }, { id: "112", word: "amends" }, { id: "113", word: "amma" }, { id: "114", word: "Amman" }, { id: "115", word: "amorphous" }, { id: "116", word: "amra" }, { id: "117", word: "amrita" }, { id: "118", word: "amritakumbha" }, { id: "119", word: "amritatman" }, { id: "120", word: "anabhidroha" }, { id: "121", word: "anahata chakra" }, { id: "122", word: "analogy" }, { id: "123", word: "analytical" }, { id: "124", word: "ananasa" }, { id: "125", word: "ananda" }, { id: "126", word: "ananda tandava" }, { id: "127", word: "anandamaya kosha" }, { id: "128", word: "Anandamayi Ma" }, { id: "129", word: "ananta" }, { id: "130", word: "anashrita" }, { id: "131", word: "anatha" }, { id: "132", word: "anava" }, { id: "133", word: "anava mala" }, { id: "134", word: "anava marga" }, { id: "135", word: "anavopaya" }, { id: "136", word: "Anbe Sivamayam Satyame Parasivam" }, { id: "137", word: "anchorite" }, { id: "138", word: "ancillary" }, { id: "139", word: "Andal" }, { id: "140", word: "Andhra Pradesh (Pradesha) " }, { id: "141", word: "anekavada" }, { id: "142", word: "anekavadin" }, { id: "143", word: "anga" }, { id: "144", word: "aniconic" }, { id: "145", word: "animate-inanimate" }, { id: "146", word: "animism" }, { id: "147", word: "anjali mudra" }, { id: "148", word: "ankusha" }, { id: "149", word: "anma" }, { id: "150", word: "anna dana" }, { id: "151", word: "annamaya kosha" }, { id: "152", word: "annan" }, { id: "153", word: "annaprashana" }, { id: "154", word: "annihilate" }, { id: "155", word: "antagonism" }, { id: "156", word: "antahkarana" }, { id: "157", word: "Antarloka" }, { id: "158", word: "antaryamin" }, { id: "159", word: "anthology" }, { id: "160", word: "anthropomorphic" }, { id: "161", word: "Antoinette, Marie" }, { id: "162", word: "antyavachanam" }, { id: "163", word: "antyeshti" }, { id: "164", word: "anu" }, { id: "165", word: "anubhava" }, { id: "166", word: "anugraha shakti" }, { id: "167", word: "anukarana chitta" }, { id: "168", word: "anukramanika" }, { id: "169", word: "anupaya" }, { id: "170", word: "anxiety" }, { id: "171", word: "apana" }, { id: "172", word: "aparigraha" }, { id: "173", word: "Apasmarapurusha" }, { id: "174", word: "apatya" }, { id: "175", word: "apex" }, { id: "176", word: "apex of creation" }, { id: "177", word: "aphorism" }, { id: "178", word: "apologue" }, { id: "179", word: "apostate" }, { id: "180", word: "appa" }, { id: "181", word: "Appar" }, { id: "182", word: "apparent" }, { id: "183", word: "apparition" }, { id: "184", word: "Appaya Dikshita (Dikshita)" }, { id: "185", word: "appellative" }, { id: "186", word: "apprehend" }, { id: "187", word: "apsara" }, { id: "188", word: "arahat" }, { id: "189", word: "Aranyaka" }, { id: "190", word: "arati" }, { id: "191", word: "arbitrate" }, { id: "192", word: "archana" }, { id: "193", word: "archana basket" }, { id: "194", word: "archangel" }, { id: "195", word: "ardent" }, { id: "196", word: "ardha-Hindu" }, { id: "197", word: "Ardhanari Nateshvara Stotram" }, { id: "198", word: "Ardhanarishvara" }, { id: "199", word: "Ardra Darshanam" }, { id: "200", word: "arduous" }, { id: "201", word: "arena" }, { id: "202", word: "Aristotle" }, { id: "203", word: "arjava" }, { id: "204", word: "Arjuna" }, { id: "205", word: "Arputat Tiru Vantati" }, { id: "206", word: "artha" }, { id: "207", word: "Arthaveda" }, { id: "208", word: "artificial perpetuation of life" }, { id: "209", word: "aruhu grass" }, { id: "210", word: "arul" }, { id: "211", word: "Arunagirinathar" }, { id: "212", word: "Aruneya Upanishad" }, { id: "213", word: "Arya" }, { id: "214", word: "Arya Samaj" }, { id: "215", word: "Aryaman" }, { id: "216", word: "asan" }, { id: "217", word: "asana" }, { id: "218", word: "ascendency" }, { id: "219", word: "ascent" }, { id: "220", word: "ascertain" }, { id: "221", word: "ascetic" }, { id: "222", word: "asceticism" }, { id: "223", word: "ascribe" }, { id: "224", word: "ash" }, { id: "225", word: "ashoka tree" }, { id: "226", word: "ashram (ashrama)" }, { id: "227", word: "ashrama" }, { id: "228", word: "ashrama" }, { id: "229", word: "ashrama dharma" }, { id: "230", word: "ashrama dharma" }, { id: "231", word: "ashtanga pranama" }, { id: "232", word: "ashtanga yoga" }, { id: "233", word: "ashtavaranam" }, { id: "234", word: "ashtavibhuti" }, { id: "235", word: "Ashtavinayaka" }, { id: "236", word: "ashubha" }, { id: "237", word: "ashuddha maya" }, { id: "238", word: "Ashvin" }, { id: "239", word: "Asoka (Ashoka)" }, { id: "240", word: "aspirant" }, { id: "241", word: "aspiration" }, { id: "242", word: "Assam" }, { id: "243", word: "assertion" }, { id: "244", word: "assimilation" }, { id: "245", word: "assuage" }, { id: "246", word: "asteya" }, { id: "247", word: "astikya" }, { id: "248", word: "astral" }, { id: "249", word: "astral body" }, { id: "250", word: "astral entity" }, { id: "251", word: "astral plane" }, { id: "252", word: "astral projection" }, { id: "253", word: "astral school" }, { id: "254", word: "astral shell" }, { id: "255", word: "astrology" }, { id: "256", word: "asura" }, { id: "257", word: "asura loka" }, { id: "258", word: "asuric" }, { id: "259", word: "Asvaghosha (Ashvaghosha)" }, { id: "260", word: "asylum" }, { id: "261", word: "atala chakra" }, { id: "262", word: "atala chakra" }, { id: "263", word: "atattva" }, { id: "264", word: "atavism (atavistic)" }, { id: "265", word: "atha" }, { id: "266", word: "Atharva Veda" }, { id: "267", word: "Atharvashikha Upanishad" }, { id: "268", word: "atheism" }, { id: "269", word: "atman" }, { id: "270", word: "atmartha puja" }, { id: "271", word: "atmasvarupa" }, { id: "272", word: "atmosphere" }, { id: "273", word: "atone" }, { id: "274", word: "attachments" }, { id: "275", word: "attainment" }, { id: "276", word: "attention" }, { id: "277", word: "attire" }, { id: "278", word: "attitude" }, { id: "279", word: "atura sannyasa" }, { id: "280", word: "augural" }, { id: "281", word: "Augustine" }, { id: "282", word: "Aum" }, { id: "283", word: "aura" }, { id: "284", word: "auric circle" }, { id: "285", word: "Aurobindo Ghosh" }, { id: "286", word: "auspicious" }, { id: "287", word: "austerities" }, { id: "288", word: "austerity" }, { id: "289", word: "authenticity" }, { id: "290", word: "authority" }, { id: "291", word: "autonomous" }, { id: "292", word: "autopsy" }, { id: "293", word: "Auvaiyar" }, { id: "294", word: "avail" }, { id: "295", word: "Avantivarman" }, { id: "296", word: "avarice" }, { id: "297", word: "avastha" }, { id: "298", word: "avatara" }, { id: "299", word: "avidya" }, { id: "300", word: "awareness" }, { id: "301", word: "axiom" }, { id: "302", word: "axis" }, { id: "303", word: "ayanamsha" }, { id: "304", word: "ayurveda" }, { id: "305", word: "ayurveda vaidya" }, { id: "306", word: "Ayyappan" }, { id: "307", word: "backbiting" }, { id: "308", word: "Badarayana (Badarayana)" }, { id: "309", word: "Bala Ganapati" }, { id: "310", word: "balasthapana" }, { id: "311", word: "balipitha" }, { id: "312", word: "balk" }, { id: "313", word: "Ballaleshvara" }, { id: "314", word: "ballast" }, { id: "315", word: "bane" }, { id: "316", word: "Banyan tree" }, { id: "317", word: "Baptist" }, { id: "318", word: "bard" }, { id: "319", word: "bardo" }, { id: "320", word: "Basavanna" }, { id: "321", word: "bask" }, { id: "322", word: "Batara" }, { id: "323", word: "Baudhayana Dharma Shastra" }, { id: "324", word: "bce" }, { id: "325", word: "beatitude" }, { id: "326", word: "beclouding" }, { id: "327", word: "bedrock" }, { id: "328", word: "begrudgingly" }, { id: "329", word: "behoove" }, { id: "330", word: "Being" }, { id: "331", word: "benediction" }, { id: "332", word: "benevolence" }, { id: "333", word: "benign" }, { id: "334", word: "bereft" }, { id: "335", word: "beseech (besought)" }, { id: "336", word: "bestow" }, { id: "337", word: "beta testing" }, { id: "338", word: "betoken" }, { id: "339", word: "betrothal" }, { id: "340", word: "bewilder" }, { id: "341", word: "Bhaga" }, { id: "342", word: "Bhagavad Gita" }, { id: "343", word: "Bhagavata" }, { id: "344", word: "Bhagavata Purana" }, { id: "345", word: "Bhagnadanta" }, { id: "346", word: "Bhairava" }, { id: "347", word: "bhajana" }, { id: "348", word: "bhakta" }, { id: "349", word: "bhakti" }, { id: "350", word: "Bhakti Ganapati" }, { id: "351", word: "bhakti yoga" }, { id: "352", word: "bhangima" }, { id: "353", word: "Bharata" }, { id: "354", word: "Bharata (Bharata)" }, { id: "355", word: "Bharatanatyam" }, { id: "357", word: "Bharatkhand" }, { id: "358", word: "bhashya" }, { id: "359", word: "Bhaskara" }, { id: "360", word: "bhava" }, { id: "361", word: "Bhavalinga" }, { id: "362", word: "bhedabheda" }, { id: "363", word: "bhikku" }, { id: "364", word: "Bhogabhumi" }, { id: "365", word: "Bhogar Rishi" }, { id: "366", word: "Bhojadeva Paramara (Paramara)" }, { id: "367", word: "Bhojana Mantra" }, { id: "368", word: "bhrityachara" }, { id: "369", word: "bhukti" }, { id: "370", word: "Bhuloka" }, { id: "371", word: "bhumika" }, { id: "372", word: "Bhuvarloka" }, { id: "373", word: "bi-sexual" }, { id: "374", word: "Big Bang" }, { id: "375", word: "bija mantra" }, { id: "376", word: "Bijjala" }, { id: "377", word: "bilva" }, { id: "378", word: "bindu" }, { id: "379", word: "biophysics" }, { id: "380", word: "birth chart" }, { id: "381", word: "birthstar" }, { id: "382", word: "blackmail" }, { id: "383", word: "blessing" }, { id: "384", word: "boddhisattva" }, { id: "385", word: "bodhaka" }, { id: "386", word: "bodhi tantra" }, { id: "387", word: "Bodhinatha Veylanswami" }, { id: "388", word: "bodies" }, { id: "389", word: "bodily humor" }, { id: "390", word: "bond (bondage)" }, { id: "391", word: "bone-gathering" }, { id: "392", word: "boon" }, { id: "393", word: "bounteous" }, { id: "394", word: "bountiful" }, { id: "395", word: "Brahma" }, { id: "396", word: "brahma muhurta" }, { id: "397", word: "Brahma Sutra Bhashya" }, { id: "398", word: "Brahma Sutra(s)" }, { id: "399", word: "Brahma Sutra, Shankara Bhashya" }, { id: "400", word: "brahmachari" }, { id: "401", word: "brahmacharini" }, { id: "402", word: "brahmacharini" }, { id: "403", word: "brahmachariya" }, { id: "404", word: "brahmacharya" }, { id: "405", word: "brahmacharya ashrama" }, { id: "406", word: "brahmacharya vrata" }, { id: "407", word: "Brahmadhvara" }, { id: "408", word: "Brahmaloka" }, { id: "409", word: "Brahman" }, { id: "410", word: "Brahmana" }, { id: "411", word: "Brahmanaspati" }, { id: "412", word: "Brahmanda" }, { id: "413", word: "Brahmarandhra" }, { id: "414", word: "Brahmavidya" }, { id: "415", word: "brahmin (brahmana)" }, { id: "416", word: "brahminical tradition" }, { id: "417", word: "Brahmotsava" }, { id: "418", word: "brethren" }, { id: "419", word: "Brihadaranyaka Upanishad" }, { id: "420", word: "Brihaspati" }, { id: "421", word: "brihatkutumba" }, { id: "422", word: "Buddha" }, { id: "423", word: "buddhi" }, { id: "424", word: "Buddhi and Siddhi" }, { id: "425", word: "buddhi chitta" }, { id: "426", word: "Buddhism" }, { id: "427", word: "Buddhist" }, { id: "428", word: "buoyant, buoyed" }, { id: "429", word: "ca" }, { id: "430", word: "cajan" }, { id: "431", word: "caliber" }, { id: "432", word: "callous" }, { id: "433", word: "camphor" }, { id: "434", word: "canalize" }, { id: "435", word: "cancer" }, { id: "436", word: "canon" }, { id: "437", word: "cardiac" }, { id: "438", word: "cardinal" }, { id: "439", word: "Carnatic (vocal) music" }, { id: "440", word: "caste" }, { id: "441", word: "catalyst" }, { id: "442", word: "Catholicism" }, { id: "443", word: "causal body" }, { id: "444", word: "causal mind" }, { id: "445", word: "causal plane" }, { id: "446", word: "cause" }, { id: "447", word: "cauterize" }, { id: "448", word: "cavernous plexus" }, { id: "449", word: "ce" }, { id: "450", word: "celebrant" }, { id: "451", word: "celestial" }, { id: "452", word: "celibacy" }, { id: "453", word: "cenobite" }, { id: "454", word: "cenobitic" }, { id: "455", word: "centillion" }, { id: "456", word: "cerebral" }, { id: "457", word: "ceremony" }, { id: "458", word: "cf" }, { id: "459", word: "chaitanya" }, { id: "460", word: "Chaitanya, Sri" }, { id: "461", word: "chakra" }, { id: "462", word: "chakravala" }, { id: "463", word: "chalice" }, { id: "464", word: "Chalukya" }, { id: "465", word: "chamara" }, { id: "466", word: "chandana" }, { id: "467", word: "chandra" }, { id: "468", word: "channeling" }, { id: "469", word: "chaos" }, { id: "470", word: "Charvaka" }, { id: "471", word: "charya" }, { id: "472", word: "charya marga" }, { id: "473", word: "charya pada" }, { id: "474", word: "chat room" }, { id: "475", word: "chaturdharma" }, { id: "476", word: "chela" }, { id: "477", word: "Chellappan" }, { id: "478", word: "Chellappaswami" }, { id: "479", word: "Chennabasavanna" }, { id: "480", word: "Chettiar" }, { id: "481", word: "Chhandas Vedanga" }, { id: "482", word: "Chhandogya Upanishad" }, { id: "483", word: "chhuri" }, { id: "484", word: "Chidambaram" }, { id: "485", word: "Chinna Bomman" }, { id: "486", word: "Chintamani" }, { id: "487", word: "chiropractic" }, { id: "488", word: "chit" }, { id: "489", word: "chitsabha" }, { id: "490", word: "chitta" }, { id: "491", word: "chlorofluorocarbons" }, { id: "492", word: "choga" }, { id: "493", word: "Christ" }, { id: "494", word: "Christian" }, { id: "495", word: "Christian-Judaic" }, { id: "496", word: "chronicle" }, { id: "497", word: "chudakarana" }, { id: "498", word: "chyle" }, { id: "499", word: "chyme" }, { id: "500", word: "circadian rhythm" }, { id: "501", word: "circumambulation" }, { id: "502", word: "citadel" }, { id: "503", word: "citrine" }, { id: "504", word: "clairaudience" }, { id: "505", word: "clairvoyance" }, { id: "506", word: "clear white light" }, { id: "507", word: "clemency" }, { id: "508", word: "cliche" }, { id: "509", word: "cloistered" }, { id: "510", word: "coarse" }, { id: "511", word: "coexistent" }, { id: "512", word: "cognition" }, { id: "513", word: "cognitive body" }, { id: "514", word: "cognizant" }, { id: "515", word: "cognizantability" }, { id: "516", word: "cognize" }, { id: "517", word: "cohesive" }, { id: "518", word: "coined" }, { id: "519", word: "commemorative" }, { id: "520", word: "commencement" }, { id: "521", word: "commission" }, { id: "522", word: "commitment" }, { id: "523", word: "commune" }, { id: "524", word: "communism" }, { id: "525", word: "compatible" }, { id: "526", word: "compensate" }, { id: "527", word: "complacent" }, { id: "528", word: "component" }, { id: "529", word: "comprehend" }, { id: "530", word: "comprehensive" }, { id: "531", word: "comprise" }, { id: "532", word: "compromise" }, { id: "533", word: "concealing grace" }, { id: "534", word: "conceit" }, { id: "535", word: "conceive" }, { id: "536", word: "concentration" }, { id: "537", word: "concept" }, { id: "538", word: "conception" }, { id: "539", word: "conclave" }, { id: "540", word: "concomitant" }, { id: "541", word: "concord" }, { id: "542", word: "condemnation" }, { id: "543", word: "condone" }, { id: "544", word: "confer" }, { id: "545", word: "confession" }, { id: "546", word: "confidentiality" }, { id: "547", word: "confine(s)" }, { id: "548", word: "conflagration" }, { id: "549", word: "conform" }, { id: "550", word: "conformity" }, { id: "551", word: "Confucius" }, { id: "552", word: "congeal" }, { id: "553", word: "congested" }, { id: "554", word: "conglomerate" }, { id: "555", word: "congregational worship" }, { id: "556", word: "conjure" }, { id: "557", word: "connotation" }, { id: "558", word: "conquest" }, { id: "559", word: "conscience" }, { id: "560", word: "conscious" }, { id: "561", word: "conscious mind" }, { id: "562", word: "consciousness" }, { id: "563", word: "consciousness" }, { id: "564", word: "consecrate" }, { id: "565", word: "consecrated temple" }, { id: "566", word: "consensualocracy" }, { id: "567", word: "consent" }, { id: "568", word: "console" }, { id: "569", word: "consolidate" }, { id: "570", word: "consort" }, { id: "571", word: "constituent" }, { id: "572", word: "construe" }, { id: "573", word: "consummate" }, { id: "574", word: "contemplation" }, { id: "575", word: "contemplative" }, { id: "576", word: "contempt" }, { id: "577", word: "contend" }, { id: "578", word: "contention" }, { id: "579", word: "contentious" }, { id: "580", word: "continence (continent)" }, { id: "581", word: "continuum" }, { id: "582", word: "contradiction" }, { id: "583", word: "conundrum" }, { id: "584", word: "conversely" }, { id: "585", word: "conversion to Hinduism" }, { id: "586", word: "convert" }, { id: "587", word: "conveyance" }, { id: "588", word: "Cook, Captain James" }, { id: "589", word: "cope" }, { id: "590", word: "corollary" }, { id: "591", word: "cosmic" }, { id: "592", word: "cosmic cycle" }, { id: "593", word: "Cosmic Dance" }, { id: "594", word: "Cosmic Soul" }, { id: "595", word: "cosmology" }, { id: "596", word: "cosmos" }, { id: "597", word: "covenant" }, { id: "598", word: "covet" }, { id: "599", word: "cranial chakras" }, { id: "600", word: "cranium" }, { id: "601", word: "cranny" }, { id: "602", word: "creation" }, { id: "603", word: "creator" }, { id: "604", word: "creed" }, { id: "605", word: "cremation" }, { id: "606", word: "creole" }, { id: "607", word: "crescendo" }, { id: "608", word: "crevice" }, { id: "609", word: "crimson" }, { id: "610", word: "cringe" }, { id: "611", word: "crown chakra" }, { id: "612", word: "crucial" }, { id: "613", word: "crude" }, { id: "614", word: "crux" }, { id: "615", word: "crypt" }, { id: "616", word: "crystal" }, { id: "617", word: "crystal-gazing" }, { id: "618", word: "crystallize" }, { id: "619", word: "culminate" }, { id: "620", word: "culture" }, { id: "621", word: "cumbersome" }, { id: "622", word: "Curie, Madame" }, { id: "623", word: "cybernetics" }, { id: "624", word: "cyberspace" }, { id: "625", word: "cynical" }, { id: "626", word: "dadima" }, { id: "627", word: "dakshina" }, { id: "628", word: "Dakshinamurti" }, { id: "629", word: "dakshinayana" }, { id: "630", word: "Dalai Lama" }, { id: "631", word: "damaru" }, { id: "632", word: "dampati" }, { id: "633", word: "dana" }, { id: "634", word: "dance" }, { id: "635", word: "Dancing with Siva" }, { id: "636", word: "danda" }, { id: "637", word: "darshan (darshana)" }, { id: "638", word: "Darwin's theory" }, { id: "639", word: "dasa marga" }, { id: "640", word: "Dasakariyam" }, { id: "641", word: "dashama bhaga vrata" }, { id: "642", word: "dashamamsha" }, { id: "643", word: "Dashanami" }, { id: "644", word: "dauntless" }, { id: "645", word: "daurmanasya" }, { id: "646", word: "day of Brahma" }, { id: "647", word: "daya" }, { id: "648", word: "daya" }, { id: "649", word: "death" }, { id: "650", word: "decadence" }, { id: "651", word: "deceit (deception)" }, { id: "652", word: "decentralized" }, { id: "653", word: "decipher" }, { id: "654", word: "decked" }, { id: "655", word: "decorum" }, { id: "656", word: "deduction" }, { id: "657", word: "defabricate" }, { id: "658", word: "defiled" }, { id: "659", word: "deformity" }, { id: "660", word: "deha" }, { id: "661", word: "Deism" }, { id: "662", word: "Deity" }, { id: "663", word: "delineate" }, { id: "664", word: "delinquent" }, { id: "665", word: "delude" }, { id: "666", word: "delusion" }, { id: "667", word: "demean" }, { id: "668", word: "demon" }, { id: "669", word: "demureness" }, { id: "670", word: "denial" }, { id: "671", word: "denomination" }, { id: "672", word: "denote" }, { id: "673", word: "deplore" }, { id: "674", word: "deploy" }, { id: "675", word: "depolarize" }, { id: "676", word: "deportment" }, { id: "677", word: "depraved" }, { id: "678", word: "deprivations" }, { id: "679", word: "derogate" }, { id: "680", word: "desirous" }, { id: "681", word: "despair" }, { id: "682", word: "despise" }, { id: "683", word: "destiny" }, { id: "684", word: "Destroyer" }, { id: "685", word: "deter" }, { id: "686", word: "deterrent" }, { id: "687", word: "detractor" }, { id: "688", word: "deva" }, { id: "689", word: "Devaloka" }, { id: "690", word: "devamandira" }, { id: "691", word: "Devanagari" }, { id: "692", word: "Devaram" }, { id: "693", word: "Devi" }, { id: "694", word: "Devi Bhagavata Purana" }, { id: "695", word: "Devi Gita" }, { id: "696", word: "Devi Upanishad" }, { id: "697", word: "Devikalottara Agama" }, { id: "698", word: "devoid" }, { id: "699", word: "devonic" }, { id: "700", word: "devotee" }, { id: "701", word: "devout" }, { id: "702", word: "Dhammapada" }, { id: "703", word: "Dhanurveda" }, { id: "704", word: "dhanush" }, { id: "705", word: "dharana" }, { id: "706", word: "dharma" }, { id: "707", word: "Dharma Shastra" }, { id: "708", word: "Dharmapura Aadheenam" }, { id: "709", word: "dharmasabha" }, { id: "710", word: "dharmashala" }, { id: "711", word: "dhoti" }, { id: "712", word: "dhriti" }, { id: "713", word: "Dhumravarna" }, { id: "714", word: "Dhundhi Ganapati" }, { id: "715", word: "dhvaja" }, { id: "716", word: "dhvajastambha" }, { id: "717", word: "dhyana" }, { id: "718", word: "diabolical" }, { id: "719", word: "diametrically" }, { id: "720", word: "diaphragm" }, { id: "721", word: "diaphragmatic breathing" }, { id: "722", word: "diaspora" }, { id: "723", word: "dichotomy" }, { id: "724", word: "Dieu Siva est amour omnipresent et Realite transcendante" }, { id: "725", word: "differentiation" }, { id: "726", word: "difi" }, { id: "727", word: "diksha" }, { id: "728", word: "dikshitar" }, { id: "729", word: "diligent" }, { id: "730", word: "dilute" }, { id: "731", word: "dipastambha" }, { id: "732", word: "Dipavali" }, { id: "733", word: "diplomacy" }, { id: "734", word: "dipolar" }, { id: "735", word: "discern" }, { id: "736", word: "discordant" }, { id: "737", word: "discrimination" }, { id: "738", word: "disdain" }, { id: "739", word: "disheveled" }, { id: "740", word: "disincarnate" }, { id: "741", word: "dismay" }, { id: "742", word: "dispassionate" }, { id: "743", word: "dispatch" }, { id: "744", word: "dispel" }, { id: "745", word: "dissertation" }, { id: "746", word: "dissidence" }, { id: "747", word: "dissipate" }, { id: "748", word: "dissolution" }, { id: "749", word: "distort" }, { id: "750", word: "Divali" }, { id: "751", word: "divergent" }, { id: "752", word: "divest" }, { id: "753", word: "Divine" }, { id: "754", word: "Divine Mother" }, { id: "755", word: "Divinity" }, { id: "756", word: "divisive" }, { id: "757", word: "DNA" }, { id: "758", word: "docile" }, { id: "759", word: "dogma" }, { id: "760", word: "dominion" }, { id: "761", word: "don" }, { id: "762", word: "door of Brahman" }, { id: "763", word: "doordarshan (durdarshana)" }, { id: "764", word: "dormant" }, { id: "765", word: "dosai" }, { id: "766", word: "dosha" }, { id: "767", word: "dossier" }, { id: "768", word: "dowry" }, { id: "769", word: "doxology" }, { id: "770", word: "Dravidian" }, { id: "771", word: "dreamologist" }, { id: "772", word: "dross" }, { id: "773", word: "drudgery" }, { id: "774", word: "Druid" }, { id: "775", word: "Druidism" }, { id: "776", word: "dual" }, { id: "777", word: "dualism" }, { id: "778", word: "duality" }, { id: "779", word: "ductless glands" }, { id: "780", word: "duly" }, { id: "781", word: "Durga" }, { id: "782", word: "Durga Ganapati" }, { id: "783", word: "durva" }, { id: "784", word: "Durvasas" }, { id: "785", word: "Dvaita Siddhanta" }, { id: "786", word: "dvaita-advaita" }, { id: "787", word: "Dvija Ganapati" }, { id: "788", word: "Dvimukha Ganapati" }, { id: "789", word: "dysfunctional" }, { id: "790", word: "earrings" }, { id: "791", word: "ebb" }, { id: "792", word: "eccentric" }, { id: "793", word: "ecclesiastical" }, { id: "794", word: "Eckhart, Meister Johannes" }, { id: "795", word: "ecology" }, { id: "796", word: "ecstasy (ecstatic)" }, { id: "797", word: "ecumenical" }, { id: "798", word: "ecumenism" }, { id: "799", word: "edampuri" }, { id: "800", word: "edict" }, { id: "801", word: "efficacious" }, { id: "802", word: "efficient cause" }, { id: "803", word: "effigy" }, { id: "804", word: "effulgent" }, { id: "805", word: "egalitarian" }, { id: "806", word: "ego" }, { id: "807", word: "egocentric" }, { id: "808", word: "egoism" }, { id: "809", word: "egoity" }, { id: "810", word: "egotist" }, { id: "811", word: "egregious" }, { id: "812", word: "Ekadanta Ganapati" }, { id: "813", word: "Ekakshara Ganapati" }, { id: "814", word: "elastic" }, { id: "815", word: "elation" }, { id: "816", word: "elemental temples" }, { id: "817", word: "eligible" }, { id: "818", word: "eliminate" }, { id: "819", word: "elixir" }, { id: "820", word: "elliptical" }, { id: "821", word: "eloquent" }, { id: "822", word: "elucidate" }, { id: "823", word: "elucidation" }, { id: "824", word: "elusive" }, { id: "825", word: "emanation" }, { id: "826", word: "emancipator" }, { id: "827", word: "embalming" }, { id: "828", word: "embellishment" }, { id: "829", word: "embryo" }, { id: "830", word: "Emerson, Ralph Waldo" }, { id: "831", word: "eminent" }, { id: "832", word: "emit" }, { id: "833", word: "emkaef" }, { id: "834", word: "emote" }, { id: "835", word: "emotional body" }, { id: "836", word: "emulate" }, { id: "837", word: "en masse" }, { id: "838", word: "encase" }, { id: "839", word: "encasement" }, { id: "840", word: "enchantment" }, { id: "841", word: "encompass" }, { id: "842", word: "encumber" }, { id: "843", word: "encumbrance" }, { id: "844", word: "endearment" }, { id: "845", word: "endocrine" }, { id: "846", word: "endow" }, { id: "847", word: "enlightened" }, { id: "848", word: "enlightenment" }, { id: "849", word: "enmesh" }, { id: "850", word: "enmity" }, { id: "851", word: "enshrine" }, { id: "852", word: "enstasy" }, { id: "853", word: "ensuing" }, { id: "854", word: "entanglements" }, { id: "855", word: "enthrall" }, { id: "856", word: "entourage" }, { id: "857", word: "entreat" }, { id: "858", word: "eon" }, { id: "859", word: "ephemeral" }, { id: "860", word: "epic history" }, { id: "861", word: "epigastric" }, { id: "862", word: "epistle" }, { id: "863", word: "epithet" }, { id: "864", word: "equanimity" }, { id: "865", word: "equilibrium" }, { id: "866", word: "equivalent" }, { id: "867", word: "equivocal" }, { id: "868", word: "eradicate" }, { id: "869", word: "erotic" }, { id: "870", word: "err" }, { id: "871", word: "errant" }, { id: "872", word: "erroneous" }, { id: "873", word: "erroneously" }, { id: "874", word: "erudite" }, { id: "875", word: "erukku" }, { id: "876", word: "escalate" }, { id: "877", word: "eschew" }, { id: "878", word: "esoteric" }, { id: "879", word: "ESP" }, { id: "880", word: "essence (essential)" }, { id: "881", word: "esteem" }, { id: "882", word: "estranged" }, { id: "883", word: "eternity" }, { id: "884", word: "ether" }, { id: "885", word: "ethereal" }, { id: "886", word: "etheric" }, { id: "887", word: "ethical observances" }, { id: "888", word: "ethical restraints" }, { id: "889", word: "ethics" }, { id: "890", word: "ethnic" }, { id: "891", word: "etymology" }, { id: "892", word: "evanescent" }, { id: "893", word: "eve" }, { id: "894", word: "evil" }, { id: "895", word: "evoke" }, { id: "896", word: "evolution of the soul" }, { id: "897", word: "ewe" }, { id: "898", word: "exalt" }, { id: "899", word: "excel" }, { id: "900", word: "exclusive" }, { id: "901", word: "excruciating" }, { id: "902", word: "exemplar" }, { id: "903", word: "exemplify" }, { id: "904", word: "exhalation" }, { id: "905", word: "exhaustive" }, { id: "906", word: "exhilaration" }, { id: "907", word: "exiled" }, { id: "908", word: "existence" }, { id: "909", word: "existentialism" }, { id: "910", word: "existentialist" }, { id: "911", word: "experience" }, { id: "912", word: "explicitly" }, { id: "913", word: "expound" }, { id: "914", word: "exquisite" }, { id: "915", word: "extant" }, { id: "916", word: "extended family" }, { id: "917", word: "extol" }, { id: "918", word: "extraneous" }, { id: "919", word: "extrasensory" }, { id: "920", word: "extroverted" }, { id: "921", word: "exuberant" }, { id: "922", word: "exultant" }, { id: "923", word: "fable" }, { id: "924", word: "facade" }, { id: "925", word: "facet" }, { id: "926", word: "facial" }, { id: "927", word: "fad" }, { id: "928", word: "faith" }, { id: "929", word: "fallacious" }, { id: "930", word: "fallacy" }, { id: "931", word: "falter" }, { id: "932", word: "family life" }, { id: "933", word: "family practices" }, { id: "934", word: "fanatical" }, { id: "935", word: "far-seeing" }, { id: "936", word: "fast" }, { id: "937", word: "fate" }, { id: "938", word: "fathom" }, { id: "939", word: "fellowship" }, { id: "940", word: "ferret" }, { id: "941", word: "fervent" }, { id: "942", word: "fervor" }, { id: "943", word: "festival" }, { id: "944", word: "fetch" }, { id: "945", word: "fetter" }, { id: "946", word: "fetus" }, { id: "947", word: "feud" }, { id: "948", word: "finicky" }, { id: "949", word: "finite" }, { id: "950", word: "firewalking" }, { id: "951", word: "First World" }, { id: "952", word: "five acts of Siva" }, { id: "953", word: "five classical duties" }, { id: "954", word: "five family practices" }, { id: "955", word: "Five Letters (syllables)" }, { id: "956", word: "five states of mind" }, { id: "957", word: "fizzle" }, { id: "958", word: "flamboyant" }, { id: "959", word: "fluctuate" }, { id: "960", word: "fluent" }, { id: "961", word: "flux" }, { id: "962", word: "foible" }, { id: "963", word: "folk narratives" }, { id: "964", word: "folk-shamanic" }, { id: "965", word: "forbearance" }, { id: "966", word: "force field" }, { id: "967", word: "foreboding" }, { id: "968", word: "forehead marks" }, { id: "969", word: "forestall" }, { id: "970", word: "forfeiting" }, { id: "971", word: "forged" }, { id: "972", word: "formless" }, { id: "973", word: "forsake" }, { id: "974", word: "forsooth" }, { id: "975", word: "fountainhead" }, { id: "976", word: "four traditional goals" }, { id: "977", word: "frank" }, { id: "978", word: "fretful" }, { id: "979", word: "fringe" }, { id: "980", word: "fruition" }, { id: "981", word: "fundamentalism" }, { id: "982", word: "fundamentalist" }, { id: "983", word: "funeral rites" }, { id: "984", word: "gait" }, { id: "985", word: "gaja" }, { id: "986", word: "Gajanana" }, { id: "987", word: "galactic" }, { id: "988", word: "Gam Mantra" }, { id: "989", word: "gamut" }, { id: "990", word: "gana(s)" }, { id: "991", word: "ganachara" }, { id: "992", word: "Ganachara" }, { id: "993", word: "Gananathas" }, { id: "994", word: "Ganapati" }, { id: "995", word: "Ganapati Upanishad" }, { id: "996", word: "gandha" }, { id: "997", word: "gandharvas" }, { id: "998", word: "Gandharvaveda" }, { id: "999", word: "Gandhi" }, { id: "1000", word: "Ganesha" }, { id: "1001", word: "Ganesha Chaturthi" }, { id: "1002", word: "Ganesha Visarjana" }, { id: "1003", word: "Ganga Sadhana" }, { id: "1004", word: "Ganga Sadhana" }, { id: "1005", word: "Ganges (Ganga)" }, { id: "1006", word: "Gangetic" }, { id: "1007", word: "Gangetic abodes of Siva" }, { id: "1008", word: "Gangetic Plain" }, { id: "1009", word: "ganglia" }, { id: "1010", word: "ganglionic" }, { id: "1011", word: "garbha" }, { id: "1012", word: "garbhadhana" }, { id: "1013", word: "garbhagriha" }, { id: "1014", word: "Gargya" }, { id: "1015", word: "Garitra" }, { id: "1016", word: "Garuda" }, { id: "1017", word: "gauche" }, { id: "1018", word: "gauntlet" }, { id: "1019", word: "Gautama" }, { id: "1020", word: "Gautama, Siddhartha" }, { id: "1021", word: "gay" }, { id: "1022", word: "gayatri" }, { id: "1023", word: "Gayatri Mantra" }, { id: "1024", word: "genial" }, { id: "1025", word: "germinate" }, { id: "1026", word: "gestation" }, { id: "1027", word: "ghanta" }, { id: "1028", word: "ghee" }, { id: "1029", word: "Gheranda Samhita" }, { id: "1030", word: "Gibran, Kahlil" }, { id: "1031", word: "Girijatmaja" }, { id: "1032", word: "girt" }, { id: "1033", word: "gist" }, { id: "1034", word: "Gita" }, { id: "1035", word: "gloom" }, { id: "1036", word: "glorify" }, { id: "1037", word: "gluttony" }, { id: "1038", word: "go" }, { id: "1039", word: "God" }, { id: "1040", word: "God Realization" }, { id: "1041", word: "God's power" }, { id: "1042", word: "Goddess" }, { id: "1043", word: "Godhead" }, { id: "1044", word: "Gods" }, { id: "1045", word: "gopura" }, { id: "1046", word: "Gorakhnath Saivism (Gorakshanatha Saivism)" }, { id: "1047", word: "Gorakshanatha" }, { id: "1048", word: "Gorakshapantha" }, { id: "1049", word: "Gorakshashataka" }, { id: "1050", word: "gorgeous" }, { id: "1051", word: "goshta" }, { id: "1052", word: "gotra" }, { id: "1053", word: "grace" }, { id: "1054", word: "grandeur" }, { id: "1055", word: "grantha" }, { id: "1056", word: "granthavidya" }, { id: "1057", word: "gratification" }, { id: "1058", word: "grating" }, { id: "1059", word: "graven image" }, { id: "1060", word: "Great Oath" }, { id: "1061", word: "grihastha" }, { id: "1062", word: "grihastha ashrama" }, { id: "1063", word: "grihastha dharma" }, { id: "1064", word: "griheshvara and grihini" }, { id: "1065", word: "Grihya Sutras" }, { id: "1066", word: "Grim Reaper" }, { id: "1067", word: "gross" }, { id: "1068", word: "gross plane" }, { id: "1069", word: "guarantor" }, { id: "1070", word: "Guha" }, { id: "1071", word: "Guhavasi" }, { id: "1072", word: "Guhavasi Siddha (Guhavasi)" }, { id: "1073", word: "Guheshvara" }, { id: "1074", word: "guile" }, { id: "1075", word: "Gujarat" }, { id: "1076", word: "gulika kala" }, { id: "1077", word: "guna" }, { id: "1078", word: "gunas" }, { id: "1079", word: "Gurkha" }, { id: "1080", word: "guru" }, { id: "1081", word: "guru bhakti" }, { id: "1082", word: "Guru Gita" }, { id: "1083", word: "Guru Jayanti" }, { id: "1084", word: "guru lineage" }, { id: "1085", word: "Guru Mahasannidhanam" }, { id: "1086", word: "Guru Nanak (Nanak)" }, { id: "1087", word: "guru parampara" }, { id: "1088", word: "guru parampara" }, { id: "1089", word: "Guru Purnima" }, { id: "1090", word: "guru-disciple" }, { id: "1091", word: "guru-shishya system" }, { id: "1092", word: "gurubhakti" }, { id: "1093", word: "Gurudeva" }, { id: "1094", word: "gurukula" }, { id: "1095", word: "guruthondu" }, { id: "1096", word: "gush" }, { id: "1097", word: "gust" }, { id: "1098", word: "hallowed" }, { id: "1099", word: "halo" }, { id: "1100", word: "hamper" }, { id: "1101", word: "hamsa" }, { id: "1102", word: "Hanuman" }, { id: "1103", word: "haphazard" }, { id: "1104", word: "Happy Hunting Grounds" }, { id: "1105", word: "Hari" }, { id: "1106", word: "Hari-Hara" }, { id: "1107", word: "Haridra Ganapati" }, { id: "1108", word: "harijan" }, { id: "1109", word: "harken" }, { id: "1110", word: "harmonize" }, { id: "1111", word: "hasten" }, { id: "1112", word: "hasty" }, { id: "1113", word: "hatha yoga" }, { id: "1114", word: "hatha yoga" }, { id: "1115", word: "Hatha Yoga Pradipika" }, { id: "1116", word: "havana" }, { id: "1117", word: "havana kunda" }, { id: "1118", word: "haven" }, { id: "1119", word: "havoc" }, { id: "1120", word: "hazy" }, { id: "1121", word: "heart chakra" }, { id: "1122", word: "heaven" }, { id: "1123", word: "hedonist" }, { id: "1124", word: "heed" }, { id: "1125", word: "heinous" }, { id: "1126", word: "hell" }, { id: "1127", word: "hence" }, { id: "1128", word: "herald" }, { id: "1129", word: "Heramba Ganapati" }, { id: "1130", word: "heresy" }, { id: "1131", word: "heritage" }, { id: "1132", word: "hermit" }, { id: "1133", word: "heroic measures" }, { id: "1134", word: "heterodox" }, { id: "1135", word: "heterosexual" }, { id: "1136", word: "hierarchy" }, { id: "1137", word: "higher nature, lower nature" }, { id: "1138", word: "Himalayan abodes of Siva" }, { id: "1139", word: "Himalayan Academy" }, { id: "1140", word: "Himalayas" }, { id: "1141", word: "himsa" }, { id: "1142", word: "Hindu" }, { id: "1143", word: "Hindu astrology" }, { id: "1144", word: "Hindu cosmology" }, { id: "1145", word: "Hindu Heritage Endowment" }, { id: "1146", word: "Hindu solidarity" }, { id: "1147", word: "Hinduism" }, { id: "1148", word: "Hinduism (Hindu Dharma)" }, { id: "1149", word: "HINDUISM TODAY" }, { id: "1150", word: "Hispanic" }, { id: "1151", word: "hitherto" }, { id: "1152", word: "hoary" }, { id: "1153", word: "holy ash" }, { id: "1154", word: "holy feet" }, { id: "1155", word: "Holy Kural" }, { id: "1156", word: "holy orders" }, { id: "1157", word: "homa" }, { id: "1158", word: "homa" }, { id: "1159", word: "Homo sapiens" }, { id: "1160", word: "homosexual" }, { id: "1161", word: "hopper" }, { id: "1162", word: "horrendous" }, { id: "1163", word: "horrific" }, { id: "1164", word: "hospice" }, { id: "1165", word: "hosting guests" }, { id: "1166", word: "hover" }, { id: "1167", word: "hri" }, { id: "1168", word: "Hsuen Tsang (Xuan-zang)" }, { id: "1169", word: "hub" }, { id: "1170", word: "hued" }, { id: "1171", word: "human dharma" }, { id: "1172", word: "humanitarian" }, { id: "1173", word: "humiliate" }, { id: "1174", word: "humility" }, { id: "1175", word: "hummingbird" }, { id: "1176", word: "humorously" }, { id: "1177", word: "humors (or bodily humors)" }, { id: "1178", word: "hunch" }, { id: "1179", word: "hundi" }, { id: "1180", word: "hybrid" }, { id: "1181", word: "hymns" }, { id: "1182", word: "hypnosis" }, { id: "1183", word: "hypocrisy" }, { id: "1184", word: "hypogastric" }, { id: "1185", word: "hypothalamus" }, { id: "1186", word: "hypothesis" }, { id: "1187", word: "hysteria" }, { id: "1188", word: "I-ness" }, { id: "1189", word: "icchha shakti" }, { id: "1190", word: "ice" }, { id: "1191", word: "icon" }, { id: "1192", word: "iconoclastic" }, { id: "1193", word: "ida" }, { id: "1194", word: "ida nadi" }, { id: "1195", word: "identifications" }, { id: "1196", word: "ideology" }, { id: "1197", word: "ikshukanda" }, { id: "1198", word: "ikshukarmuka" }, { id: "1199", word: "illimitable" }, { id: "1200", word: "illusion (illusory)" }, { id: "1201", word: "illustrious" }, { id: "1202", word: "imkaif" }, { id: "1203", word: "immaculate" }, { id: "1204", word: "immanent" }, { id: "1205", word: "immature" }, { id: "1206", word: "immemorial (from time immemorial)" }, { id: "1207", word: "imminent" }, { id: "1208", word: "immolate" }, { id: "1209", word: "immutable" }, { id: "1210", word: "impasse" }, { id: "1211", word: "impede" }, { id: "1212", word: "impediment" }, { id: "1213", word: "impending" }, { id: "1214", word: "imperishable" }, { id: "1215", word: "impermanence" }, { id: "1216", word: "impersonal" }, { id: "1217", word: "impersonal being" }, { id: "1218", word: "impersonal God" }, { id: "1219", word: "impervious" }, { id: "1220", word: "impetus" }, { id: "1221", word: "implant" }, { id: "1222", word: "implore" }, { id: "1223", word: "imposing" }, { id: "1224", word: "impoverished" }, { id: "1225", word: "impregnate" }, { id: "1226", word: "impulse" }, { id: "1227", word: "impurity" }, { id: "1228", word: "inadequate" }, { id: "1229", word: "inanimate" }, { id: "1230", word: "inaugurated" }, { id: "1231", word: "inauspicious" }, { id: "1232", word: "inbred" }, { id: "1233", word: "incandescent" }, { id: "1234", word: "incantate" }, { id: "1235", word: "incantation" }, { id: "1236", word: "incarcerate" }, { id: "1237", word: "incarnation" }, { id: "1238", word: "incense" }, { id: "1239", word: "incessant" }, { id: "1240", word: "incisive" }, { id: "1241", word: "incognito" }, { id: "1242", word: "incomprehensible" }, { id: "1243", word: "inconspicuous" }, { id: "1244", word: "increment" }, { id: "1245", word: "indelible" }, { id: "1246", word: "indigenous" }, { id: "1247", word: "indigent" }, { id: "1248", word: "indigo" }, { id: "1249", word: "indistinct" }, { id: "1250", word: "individual soul" }, { id: "1251", word: "individuality" }, { id: "1252", word: "indoctrinate" }, { id: "1253", word: "indomitable" }, { id: "1254", word: "Indra" }, { id: "1255", word: "indriya" }, { id: "1256", word: "induce" }, { id: "1257", word: "induction" }, { id: "1258", word: "indulgence" }, { id: "1259", word: "Indus Valley" }, { id: "1260", word: "indwell" }, { id: "1261", word: "ineffable" }, { id: "1262", word: "inevitable" }, { id: "1263", word: "inexhaustible" }, { id: "1264", word: "inexplicable" }, { id: "1265", word: "inextricable" }, { id: "1266", word: "infatuation" }, { id: "1267", word: "inference" }, { id: "1268", word: "inferiority complex" }, { id: "1269", word: "infidel" }, { id: "1270", word: "infiltrate" }, { id: "1271", word: "infinitesimal" }, { id: "1272", word: "inflict" }, { id: "1273", word: "influx" }, { id: "1274", word: "infuse" }, { id: "1275", word: "ingest" }, { id: "1276", word: "inherent (to inhere in)" }, { id: "1277", word: "inherit" }, { id: "1278", word: "inhibit" }, { id: "1279", word: "initiation (to initiate)" }, { id: "1280", word: "injunction" }, { id: "1281", word: "inkling" }, { id: "1282", word: "inmost" }, { id: "1283", word: "innate" }, { id: "1284", word: "inner (innermost)" }, { id: "1285", word: "inner advancement (or unfoldment)" }, { id: "1286", word: "inner bodies" }, { id: "1287", word: "inner light" }, { id: "1288", word: "inner mind" }, { id: "1289", word: "inner planes" }, { id: "1290", word: "inner sky" }, { id: "1291", word: "inner universes (or worlds)" }, { id: "1292", word: "innerversity" }, { id: "1293", word: "innumerable" }, { id: "1294", word: "inordinate" }, { id: "1295", word: "inroad" }, { id: "1296", word: "inrush" }, { id: "1297", word: "inscrutable" }, { id: "1298", word: "insignia" }, { id: "1299", word: "instinctive" }, { id: "1300", word: "instinctive mind" }, { id: "1301", word: "instinctive-intellectual mind" }, { id: "1302", word: "instrumental cause" }, { id: "1303", word: "insure" }, { id: "1304", word: "intact" }, { id: "1305", word: "intangible" }, { id: "1306", word: "intellect" }, { id: "1307", word: "intellectual mind" }, { id: "1308", word: "interface" }, { id: "1309", word: "interim" }, { id: "1310", word: "interlaced" }, { id: "1311", word: "interlude" }, { id: "1312", word: "intermingle" }, { id: "1313", word: "internalize" }, { id: "1314", word: "internalized worship" }, { id: "1315", word: "interplay" }, { id: "1316", word: "interrogation" }, { id: "1317", word: "intervene" }, { id: "1318", word: "interweave (interwoven)" }, { id: "1319", word: "intimacy" }, { id: "1320", word: "intone" }, { id: "1321", word: "intransigently" }, { id: "1322", word: "intrigue" }, { id: "1323", word: "intrinsic" }, { id: "1324", word: "introspection" }, { id: "1325", word: "introversion" }, { id: "1326", word: "intrusion" }, { id: "1327", word: "intuit" }, { id: "1328", word: "intuition (to intuit)" }, { id: "1329", word: "invariably" }, { id: "1330", word: "invigorate" }, { id: "1331", word: "invincible" }, { id: "1332", word: "invocation (to invoke)" }, { id: "1333", word: "ipso facto" }, { id: "1334", word: "Iraivan" }, { id: "1335", word: "Iraivan Temple" }, { id: "1336", word: "irresistible" }, { id: "1337", word: "irreverent" }, { id: "1338", word: "irrevocably" }, { id: "1339", word: "irul" }, { id: "1340", word: "iruvinai oppu" }, { id: "1341", word: "iruvinaioppu" }, { id: "1342", word: "Isanya Guru (Ishanya Guru)" }, { id: "1343", word: "Isha" }, { id: "1344", word: "Isha Upanishad" }, { id: "1345", word: "Ishta Devata" }, { id: "1346", word: "Ishta Marga Samskara" }, { id: "1347", word: "Ishtalinga" }, { id: "1348", word: "Ishvara" }, { id: "1349", word: "Ishvarapujana" }, { id: "1350", word: "Islam" }, { id: "1351", word: "island abode of Siva" }, { id: "1352", word: "issue forth" }, { id: "1353", word: "Isvarapranidhana" }, { id: "1354", word: "Isvarapujana" }, { id: "1355", word: "Itihasa" }, { id: "1356", word: "itinerant" }, { id: "1357", word: "Iyengar" }, { id: "1358", word: "Iyer" }, { id: "1359", word: "Jabala Upanishad" }, { id: "1360", word: "Jagadacharya" }, { id: "1361", word: "jaggery" }, { id: "1362", word: "jagrat" }, { id: "1363", word: "jagrat chitta" }, { id: "1364", word: "Jaimini" }, { id: "1365", word: "Jaiminiya Brahmana Upanishad" }, { id: "1366", word: "Jainism (Jaina)" }, { id: "1367", word: "jambira" }, { id: "1368", word: "jambu" }, { id: "1369", word: "Janaloka" }, { id: "1370", word: "jangama" }, { id: "1371", word: "japa" }, { id: "1372", word: "japa mala" }, { id: "1373", word: "jarred" }, { id: "1374", word: "jatakarma" }, { id: "1375", word: "jatamukuta" }, { id: "1376", word: "jati" }, { id: "1377", word: "jaya (jai)" }, { id: "1378", word: "jayanti" }, { id: "1379", word: "Jehovah" }, { id: "1380", word: "Jesus Christ" }, { id: "1381", word: "Jew" }, { id: "1382", word: "jina" }, { id: "1383", word: "jiva" }, { id: "1384", word: "jivanmukta" }, { id: "1385", word: "jivanmukti" }, { id: "1386", word: "jivayajna" }, { id: "1387", word: "jnana" }, { id: "1388", word: "jnana dana" }, { id: "1389", word: "jnana marga" }, { id: "1390", word: "jnana pada" }, { id: "1391", word: "jnana shakti" }, { id: "1392", word: "jnana yoga" }, { id: "1393", word: "Jnanadeva" }, { id: "1394", word: "Jnanamrita" }, { id: "1395", word: "jnanendriya" }, { id: "1396", word: "Jnaneshvari" }, { id: "1397", word: "Jnanesvar (Jnaneshvara)" }, { id: "1398", word: "jnani" }, { id: "1399", word: "joint family" }, { id: "1400", word: "jot" }, { id: "1401", word: "Judaic-Christian" }, { id: "1402", word: "Judaism" }, { id: "1403", word: "judicious" }, { id: "1404", word: "juncture" }, { id: "1405", word: "jurisdiction" }, { id: "1406", word: "jyoti" }, { id: "1407", word: "jyotisha" }, { id: "1408", word: "jyotisha shastri" }, { id: "1409", word: "Jyotisha Vedanga" }, { id: "1410", word: "jyotishi" }, { id: "1411", word: "Kabala" }, { id: "1412", word: "Kabir" }, { id: "1413", word: "Kadaitswami" }, { id: "1414", word: "kadaliphala" }, { id: "1415", word: "Kadavul" }, { id: "1416", word: "khadi kavi" }, { id: "1417", word: "kahuna" }, { id: "1418", word: "kaif" }, { id: "1419", word: "Kailasa" }, { id: "1420", word: "Kailasa Parampara" }, { id: "1421", word: "kaivalya" }, { id: "1422", word: "Kaivalya Upanishad" }, { id: "1423", word: "kala (time)" }, { id: "1424", word: "kala -- 64 arts (chatuh shashti kala)" }, { id: "1425", word: "Kalamukha" }, { id: "1426", word: "Kalanga (Kalanga)" }, { id: "1427", word: "kalasha" }, { id: "1428", word: "kaleidoscope" }, { id: "1429", word: "Kali" }, { id: "1430", word: "Kali Yuga" }, { id: "1431", word: "Kallata (Kallata)" }, { id: "1432", word: "kalpa" }, { id: "1433", word: "Kalpa Vedanga" }, { id: "1434", word: "kalpavriksha" }, { id: "1435", word: "Kalyan (Kalyana)" }, { id: "1436", word: "kama" }, { id: "1437", word: "Kama Sutra(s)" }, { id: "1438", word: "kamandalu" }, { id: "1439", word: "Kamika Agama" }, { id: "1440", word: "Kanada" }, { id: "1441", word: "Kandar Anubhuti" }, { id: "1442", word: "Kane" }, { id: "1443", word: "Kanjamalayam" }, { id: "1444", word: "Kannada" }, { id: "1445", word: "Kanphati" }, { id: "1446", word: "Kant, Immanuel" }, { id: "1447", word: "Kapalika" }, { id: "1448", word: "kapha" }, { id: "1449", word: "Kapila" }, { id: "1450", word: "kapittha" }, { id: "1451", word: "Karaikkal Ammaiyar" }, { id: "1452", word: "Karaikkalammaiyar" }, { id: "1453", word: "Karana Agama" }, { id: "1454", word: "karana chitta" }, { id: "1455", word: "Karana Hasuge" }, { id: "1456", word: "karana sharira" }, { id: "1457", word: "karanaloka" }, { id: "1458", word: "karanda mukuta" }, { id: "1459", word: "Karavana Mahatmya" }, { id: "1460", word: "karma" }, { id: "1461", word: "karma marga" }, { id: "1462", word: "karma yoga" }, { id: "1463", word: "karmasamya" }, { id: "1464", word: "karmashaya" }, { id: "1465", word: "karmendriya" }, { id: "1466", word: "karmic" }, { id: "1467", word: "Karnataka (Karnataka)" }, { id: "1468", word: "karnavedha" }, { id: "1469", word: "karpura" }, { id: "1470", word: "Karttikeya" }, { id: "1471", word: "Karttikeya Stotram" }, { id: "1472", word: "karuna" }, { id: "1473", word: "Karuna Agama" }, { id: "1474", word: "Karunakara Kadavul" }, { id: "1475", word: "karunya" }, { id: "1476", word: "kashaya" }, { id: "1477", word: "Kashi" }, { id: "1478", word: "Kashmir (Kashmira)" }, { id: "1479", word: "Kashmir Saivism" }, { id: "1480", word: "katha" }, { id: "1481", word: "Katha Upanishad" }, { id: "1482", word: "Kathirgama Purana" }, { id: "1483", word: "Kauai" }, { id: "1484", word: "Kauai Aadheenam" }, { id: "1485", word: "kaula" }, { id: "1486", word: "Kaundinya" }, { id: "1487", word: "Kaurusha" }, { id: "1488", word: "Kaushitaki Upanishad" }, { id: "1489", word: "Kautiliya" }, { id: "1490", word: "kavacha" }, { id: "1491", word: "kavadi" }, { id: "1492", word: "kavi" }, { id: "1493", word: "kaya siddhi" }, { id: "1494", word: "Kayavarohana" }, { id: "1495", word: "Kedaresvara Temple" }, { id: "1496", word: "Kena Upanishad" }, { id: "1497", word: "Kerala" }, { id: "1498", word: "keshanta" }, { id: "1499", word: "kevala avastha" }, { id: "1500", word: "khadga" }, { id: "1501", word: "khetaka" }, { id: "1502", word: "kindred" }, { id: "1503", word: "kirtana" }, { id: "1504", word: "knack" }, { id: "1505", word: "knower" }, { id: "1506", word: "kolam" }, { id: "1507", word: "konrai" }, { id: "1508", word: "Koran" }, { id: "1509", word: "kosha" }, { id: "1510", word: "kraal" }, { id: "1511", word: "Krishna" }, { id: "1512", word: "krishnadana" }, { id: "1513", word: "Krittika Dipa" }, { id: "1514", word: "Krittika Dipam" }, { id: "1515", word: "kriya" }, { id: "1516", word: "kriya marga" }, { id: "1517", word: "kriya pada" }, { id: "1518", word: "kriya shakti" }, { id: "1519", word: "kriya yoga" }, { id: "1520", word: "Kriyakramadyotika" }, { id: "1521", word: "kriyamana karma" }, { id: "1522", word: "krodha" }, { id: "1523", word: "kshama" }, { id: "1524", word: "kshatriya" }, { id: "1525", word: "kshetra" }, { id: "1526", word: "Kshipra Ganapati" }, { id: "1527", word: "Kshipra Prasada Ganapati" }, { id: "1528", word: "Ku" }, { id: "1529", word: "Kudalasangama" }, { id: "1530", word: "kukarma" }, { id: "1531", word: "kula" }, { id: "1532", word: "kula guru" }, { id: "1533", word: "kulachara" }, { id: "1534", word: "kulaguru" }, { id: "1535", word: "kulapati" }, { id: "1536", word: "Kularnava Tantra" }, { id: "1537", word: "Kumara" }, { id: "1538", word: "kumari" }, { id: "1539", word: "kumbha" }, { id: "1540", word: "kumbhabhisheka" }, { id: "1541", word: "Kumbhalavalai" }, { id: "1542", word: "kundalini" }, { id: "1543", word: "kundalini shakti" }, { id: "1544", word: "kundalini yoga" }, { id: "1545", word: "kunkuma" }, { id: "1546", word: "Kural" }, { id: "1547", word: "Kurma Purana" }, { id: "1548", word: "kurta shirt" }, { id: "1549", word: "Kurukshetra" }, { id: "1550", word: "Kusika (Kushika)" }, { id: "1551", word: "kuttuvilakku" }, { id: "1552", word: "kutumba" }, { id: "1553", word: "laddu" }, { id: "1554", word: "Lahiri Ayanamsha" }, { id: "1555", word: "Lakshmi" }, { id: "1556", word: "Lakshmi Ganapati" }, { id: "1557", word: "Lakulisa (Lakulisha)" }, { id: "1558", word: "Lalla" }, { id: "1559", word: "Lambodara" }, { id: "1560", word: "lament" }, { id: "1561", word: "lance" }, { id: "1562", word: "Lao Tzu" }, { id: "1563", word: "lapse" }, { id: "1564", word: "larceny" }, { id: "1565", word: "larder" }, { id: "1566", word: "latent" }, { id: "1567", word: "laud" }, { id: "1568", word: "lavish" }, { id: "1569", word: "layman" }, { id: "1570", word: "ledger" }, { id: "1571", word: "left-handed" }, { id: "1572", word: "legend" }, { id: "1573", word: "legislate" }, { id: "1574", word: "legitimate" }, { id: "1575", word: "lekhaprartha havana" }, { id: "1576", word: "Lemurian Scrolls" }, { id: "1577", word: "lest" }, { id: "1578", word: "lethargy" }, { id: "1579", word: "levitation" }, { id: "1580", word: "liberal" }, { id: "1581", word: "liberal Hinduism" }, { id: "1582", word: "liberation" }, { id: "1583", word: "licentious" }, { id: "1584", word: "light" }, { id: "1585", word: "lila" }, { id: "1586", word: "limber" }, { id: "1587", word: "linchpin" }, { id: "1588", word: "lineage" }, { id: "1589", word: "Linga" }, { id: "1590", word: "Linga Diksha" }, { id: "1591", word: "Linga Purana" }, { id: "1592", word: "Lingachara" }, { id: "1593", word: "Lingashtakam" }, { id: "1594", word: "Lingavanta" }, { id: "1595", word: "linger" }, { id: "1596", word: "liturgy" }, { id: "1597", word: "lobha" }, { id: "1598", word: "loka" }, { id: "1599", word: "Lono" }, { id: "1600", word: "lore" }, { id: "1601", word: "lotus asana" }, { id: "1602", word: "lotus flower" }, { id: "1603", word: "lotus pose" }, { id: "1604", word: "lucid" }, { id: "1605", word: "lucid dreaming" }, { id: "1606", word: "luminary" }, { id: "1607", word: "luminous" }, { id: "1608", word: "lunar calendar" }, { id: "1609", word: "lurk" }, { id: "1610", word: "lust" }, { id: "1611", word: "lustration" }, { id: "1612", word: "lute" }, { id: "1613", word: "lymph" }, { id: "1614", word: "macrocosm" }, { id: "1615", word: "madhukumbha" }, { id: "1616", word: "Madhumateya" }, { id: "1617", word: "Madhva (Madhva)" }, { id: "1618", word: "madhyama vak" }, { id: "1619", word: "Madurai" }, { id: "1620", word: "Madurai Aadheenam" }, { id: "1621", word: "Madurai Meenakshi citadel" }, { id: "1622", word: "maestro" }, { id: "1623", word: "magnanimous" }, { id: "1624", word: "magnetized" }, { id: "1625", word: "maha" }, { id: "1626", word: "Maha Ganapati" }, { id: "1627", word: "maha vasana daha tantra" }, { id: "1628", word: "Mahabharata" }, { id: "1629", word: "Mahadeva" }, { id: "1630", word: "Mahadeva Mountain" }, { id: "1631", word: "Mahakala" }, { id: "1632", word: "mahakarana" }, { id: "1633", word: "mahakutumba" }, { id: "1634", word: "mahamandapa" }, { id: "1635", word: "Mahanarayana Upanishad" }, { id: "1636", word: "Mahanirvana Tantra" }, { id: "1637", word: "mahaparashu" }, { id: "1638", word: "mahapralaya" }, { id: "1639", word: "mahaprasthana" }, { id: "1640", word: "maharaja" }, { id: "1641", word: "Maharashtra" }, { id: "1642", word: "maharishi" }, { id: "1643", word: "Maharloka" }, { id: "1644", word: "Maharshi" }, { id: "1645", word: "mahasakara-pinda" }, { id: "1646", word: "mahasamadhi" }, { id: "1647", word: "Mahashivaratri" }, { id: "1648", word: "mahatala" }, { id: "1649", word: "mahatma" }, { id: "1650", word: "mahavakya" }, { id: "1651", word: "Mahavira" }, { id: "1652", word: "mahesha" }, { id: "1653", word: "Maheshvara" }, { id: "1654", word: "Mahodara" }, { id: "1655", word: "mahout" }, { id: "1656", word: "Maitreya" }, { id: "1657", word: "Maitri Upanishad" }, { id: "1658", word: "makimai" }, { id: "1659", word: "mala" }, { id: "1660", word: "Malangam (Malangam)" }, { id: "1661", word: "malaparipakam" }, { id: "1662", word: "Malati-Madhava" }, { id: "1663", word: "malevolent" }, { id: "1664", word: "malice" }, { id: "1665", word: "Maligaideva" }, { id: "1666", word: "malign" }, { id: "1667", word: "malleable" }, { id: "1668", word: "mamata" }, { id: "1669", word: "mana" }, { id: "1670", word: "manana" }, { id: "1671", word: "manas" }, { id: "1672", word: "manas chakra" }, { id: "1673", word: "manas chitta" }, { id: "1674", word: "mandala" }, { id: "1675", word: "mandapa" }, { id: "1676", word: "mandira" }, { id: "1677", word: "Mandukya Upanishad" }, { id: "1678", word: "mangala kriya" }, { id: "1679", word: "Mangalavede" }, { id: "1680", word: "manifest" }, { id: "1681", word: "manifold" }, { id: "1682", word: "Manikkavasagar" }, { id: "1683", word: "manipulate" }, { id: "1684", word: "manipura chakra" }, { id: "1685", word: "mankolam" }, { id: "1686", word: "mannequin" }, { id: "1687", word: "manomaya kosha" }, { id: "1688", word: "mansahara" }, { id: "1689", word: "mansahari" }, { id: "1690", word: "mantra" }, { id: "1691", word: "mantra diksha" }, { id: "1692", word: "Mantra Gopya" }, { id: "1693", word: "Manu Dharma Shastra" }, { id: "1694", word: "Manu Samhita" }, { id: "1695", word: "marga" }, { id: "1696", word: "margi" }, { id: "1697", word: "marital" }, { id: "1698", word: "Mariyamman" }, { id: "1699", word: "Markali Pillaiyar" }, { id: "1700", word: "Markanduswami" }, { id: "1701", word: "marriage" }, { id: "1702", word: "marriage (or wedding) pendant" }, { id: "1703", word: "marriage covenant" }, { id: "1704", word: "martyrdom" }, { id: "1705", word: "marul" }, { id: "1706", word: "Masonic Lodge" }, { id: "1707", word: "Master Course, The" }, { id: "1708", word: "masturbation" }, { id: "1709", word: "Matanga Parameshvara Agama" }, { id: "1710", word: "material cause" }, { id: "1711", word: "materialism (materialistic)" }, { id: "1712", word: "materialist" }, { id: "1713", word: "matha" }, { id: "1714", word: "mathavasi" }, { id: "1715", word: "mati" }, { id: "1716", word: "mati" }, { id: "1717", word: "matrikakshara" }, { id: "1718", word: "matrimonial" }, { id: "1719", word: "matsarya" }, { id: "1720", word: "Matsyendranatha" }, { id: "1721", word: "Mattamayura Order" }, { id: "1722", word: "matter" }, { id: "1723", word: "mature" }, { id: "1724", word: "mauna" }, { id: "1725", word: "maya" }, { id: "1726", word: "maya marga" }, { id: "1727", word: "Mayan" }, { id: "1728", word: "mayil" }, { id: "1729", word: "mayura" }, { id: "1730", word: "Mayureshvara" }, { id: "1731", word: "mean" }, { id: "1732", word: "meander" }, { id: "1733", word: "meandering" }, { id: "1734", word: "meat-eater" }, { id: "1735", word: "mediatrix" }, { id: "1736", word: "meditate" }, { id: "1737", word: "meditation" }, { id: "1738", word: "medium" }, { id: "1739", word: "mediumship" }, { id: "1740", word: "medley" }, { id: "1741", word: "mendicant" }, { id: "1742", word: "menopause" }, { id: "1743", word: "menopause, male" }, { id: "1744", word: "menses" }, { id: "1745", word: "mental body (sheath)" }, { id: "1746", word: "mental plane" }, { id: "1747", word: "mentor" }, { id: "1748", word: "merge" }, { id: "1749", word: "merger of the soul" }, { id: "1750", word: "Merging with Siva" }, { id: "1751", word: "meridian" }, { id: "1752", word: "meritorious" }, { id: "1753", word: "Meru" }, { id: "1754", word: "mesh" }, { id: "1755", word: "mesmerizing" }, { id: "1756", word: "metabolism" }, { id: "1757", word: "metamorphosis" }, { id: "1758", word: "metaphysics" }, { id: "1759", word: "methamphetamine" }, { id: "1760", word: "methodical" }, { id: "1761", word: "methodology" }, { id: "1762", word: "Meykandar" }, { id: "1763", word: "Meykandar Shastras" }, { id: "1764", word: "microcosm-macrocosm" }, { id: "1765", word: "milestone" }, { id: "1766", word: "milieu" }, { id: "1767", word: "militate" }, { id: "1768", word: "millennia" }, { id: "1769", word: "millennium" }, { id: "1770", word: "Mimamsa" }, { id: "1771", word: "mind (five states)" }, { id: "1772", word: "mind (individual)" }, { id: "1773", word: "mind (three phases)" }, { id: "1774", word: "mind (universal)" }, { id: "1775", word: "minister" }, { id: "1776", word: "minutiae" }, { id: "1777", word: "Mirabai" }, { id: "1778", word: "Miranda reading" }, { id: "1779", word: "mirific" }, { id: "1780", word: "mirth" }, { id: "1781", word: "misapprehension" }, { id: "1782", word: "misconception" }, { id: "1783", word: "miserliness" }, { id: "1784", word: "misfit" }, { id: "1785", word: "mishmash" }, { id: "1786", word: "mitahara" }, { id: "1787", word: "mleccha" }, { id: "1788", word: "moda" }, { id: "1789", word: "modaka" }, { id: "1790", word: "modakapatra" }, { id: "1791", word: "moha" }, { id: "1792", word: "Mohammed" }, { id: "1793", word: "moksha" }, { id: "1794", word: "molten" }, { id: "1795", word: "monastery" }, { id: "1796", word: "monastic" }, { id: "1797", word: "monism" }, { id: "1798", word: "monistic" }, { id: "1799", word: "monistic theism" }, { id: "1800", word: "monk" }, { id: "1801", word: "monotheism" }, { id: "1802", word: "montage" }, { id: "1803", word: "morass" }, { id: "1804", word: "moringa" }, { id: "1805", word: "mors voluntaria religiosa" }, { id: "1806", word: "mortal" }, { id: "1807", word: "mortal sin" }, { id: "1808", word: "mortician" }, { id: "1809", word: "mortification" }, { id: "1810", word: "Mount Kailas" }, { id: "1811", word: "Mount Tamalpais" }, { id: "1812", word: "mridanga" }, { id: "1813", word: "Mrigendra Agama" }, { id: "1814", word: "mrigimudra" }, { id: "1815", word: "mudgara" }, { id: "1816", word: "mudra" }, { id: "1817", word: "muhurta" }, { id: "1818", word: "mukhya" }, { id: "1819", word: "Muktananda, Swami" }, { id: "1820", word: "mukti" }, { id: "1821", word: "Mukti Upanishad" }, { id: "1822", word: "mula" }, { id: "1823", word: "mula mantra" }, { id: "1824", word: "muladhara chakra" }, { id: "1825", word: "mulaka" }, { id: "1826", word: "mulif" }, { id: "1827", word: "mull over" }, { id: "1828", word: "multiplicity" }, { id: "1829", word: "multitude" }, { id: "1830", word: "mumia" }, { id: "1831", word: "mummify" }, { id: "1832", word: "Mundaka Upanishad" }, { id: "1833", word: "mundane" }, { id: "1834", word: "muni" }, { id: "1835", word: "murky" }, { id: "1836", word: "murti" }, { id: "1837", word: "Murugan" }, { id: "1838", word: "Murugan's South Indian abodes" }, { id: "1839", word: "muse" }, { id: "1840", word: "Mushika" }, { id: "1841", word: "Muslim" }, { id: "1842", word: "mutual" }, { id: "1843", word: "myriad" }, { id: "1844", word: "mystic" }, { id: "1845", word: "mysticism" }, { id: "1846", word: "myth" }, { id: "1847", word: "mythology" }, { id: "1848", word: "nada" }, { id: "1849", word: "nada-nadi shakti" }, { id: "1850", word: "Nadantar " }, { id: "1851", word: "nadi" }, { id: "1852", word: "naga" }, { id: "1853", word: "nagapasha" }, { id: "1854", word: "nagasvara" }, { id: "1855", word: "naive" }, { id: "1856", word: "naivedya" }, { id: "1857", word: "nakshatra" }, { id: "1858", word: "Nalvar" }, { id: "1859", word: "namadiksha" }, { id: "1860", word: "namah" }, { id: "1861", word: "Namah Sivaya" }, { id: "1862", word: "namakarana" }, { id: "1863", word: "Namasivaya" }, { id: "1864", word: "namaskara" }, { id: "1865", word: "namaste" }, { id: "1866", word: "Namo Myoho Renge Kyo" }, { id: "1867", word: "Namo Narayanaya" }, { id: "1868", word: "Nandi" }, { id: "1869", word: "Nandi" }, { id: "1870", word: "Nandikeshvara" }, { id: "1871", word: "Nandikeshvara Kashika" }, { id: "1872", word: "Nandinatha " }, { id: "1873", word: "Nandinatha Sampradaya" }, { id: "1874", word: "Nandinatha, Maharishi" }, { id: "1875", word: "Narada Parivrajaka" }, { id: "1876", word: "Narada Sutra(s)" }, { id: "1877", word: "Naraka" }, { id: "1878", word: "Narasinha Purvatapaniya" }, { id: "1879", word: "Narayana" }, { id: "1880", word: "Narayanakantha" }, { id: "1881", word: "narikela" }, { id: "1882", word: "nastika" }, { id: "1883", word: "Nataraja" }, { id: "1884", word: "Natchintanai" }, { id: "1885", word: "Natha" }, { id: "1886", word: "Natha Matha" }, { id: "1887", word: "Natha Sampradaya" }, { id: "1888", word: "Nayanar" }, { id: "1889", word: "near-death" }, { id: "1890", word: "negative attachment" }, { id: "1891", word: "Nehru, Jawaharlal" }, { id: "1892", word: "Nehru, Pandit Motilal" }, { id: "1893", word: "neo" }, { id: "1894", word: "neo-Indian religion" }, { id: "1895", word: "Neo-Vaishnavas" }, { id: "1896", word: "Nepal" }, { id: "1897", word: "neri" }, { id: "1898", word: "nerves" }, { id: "1899", word: "nervine" }, { id: "1900", word: "nervous system" }, { id: "1901", word: "neti neti" }, { id: "1902", word: "neuroses" }, { id: "1903", word: "neuter" }, { id: "1904", word: "neutralize" }, { id: "1905", word: "neutron star" }, { id: "1906", word: "New Age" }, { id: "1907", word: "New Year" }, { id: "1908", word: "nightingale" }, { id: "1909", word: "Nightingale, Florence" }, { id: "1910", word: "nightmare" }, { id: "1911", word: "nikashum" }, { id: "1912", word: "nilapadma" }, { id: "1913", word: "Nimbarka" }, { id: "1914", word: "nimbus" }, { id: "1915", word: "Nirguna Brahman" }, { id: "1916", word: "Nirukta Vedanga" }, { id: "1917", word: "nirvahana" }, { id: "1918", word: "nirvana" }, { id: "1919", word: "nirvana sadhaka" }, { id: "1920", word: "nirvani and upadeshi" }, { id: "1921", word: "nirvikalpa samadhi" }, { id: "1922", word: "nirvikalpa samadhi" }, { id: "1923", word: "nishchitartha" }, { id: "1924", word: "Nityananda, Swami" }, { id: "1925", word: "nityavak" }, { id: "1926", word: "nivedana" }, { id: "1927", word: "niyama" }, { id: "1928", word: "niyati" }, { id: "1929", word: "nondual (nondualism)" }, { id: "1930", word: "nondualism" }, { id: "1931", word: "nonhuman birth" }, { id: "1932", word: "noninjurious" }, { id: "1933", word: "nonperseverance" }, { id: "1934", word: "nonsectarian" }, { id: "1935", word: "nonviolence" }, { id: "1936", word: "nook" }, { id: "1937", word: "Northern Saivism" }, { id: "1938", word: "nostalgia" }, { id: "1939", word: "notable" }, { id: "1940", word: "novelty" }, { id: "1941", word: "novitiate" }, { id: "1942", word: "Nritya Ganapati" }, { id: "1943", word: "nuances" }, { id: "1944", word: "nucleus" }, { id: "1945", word: "nucleus of the soul" }, { id: "1946", word: "nullify" }, { id: "1947", word: "numerology" }, { id: "1948", word: "nun" }, { id: "1949", word: "nurture" }, { id: "1950", word: "nurturing (nurturance)" }, { id: "1951", word: "Nyaya" }, { id: "1952", word: "objective" }, { id: "1953", word: "oblation" }, { id: "1954", word: "oblige" }, { id: "1955", word: "obliteration" }, { id: "1956", word: "obscuration" }, { id: "1957", word: "obscure" }, { id: "1958", word: "obscuring grace" }, { id: "1959", word: "observation" }, { id: "1960", word: "obstacle" }, { id: "1961", word: "obstinate (obstinacy)" }, { id: "1962", word: "obstruction" }, { id: "1963", word: "occult" }, { id: "1964", word: "occultism" }, { id: "1965", word: "odic" }, { id: "1966", word: "odic force" }, { id: "1967", word: "odic prana" }, { id: "1968", word: "offering basket" }, { id: "1969", word: "officiate" }, { id: "1970", word: "offset" }, { id: "1971", word: "offshoot" }, { id: "1972", word: "offspring" }, { id: "1973", word: "oils, degraded" }, { id: "1974", word: "ojas" }, { id: "1975", word: "olai" }, { id: "1976", word: "old soul" }, { id: "1977", word: "Om" }, { id: "1978", word: "omen" }, { id: "1979", word: "ominous" }, { id: "1980", word: "Omkara" }, { id: "1981", word: "omnipotent" }, { id: "1982", word: "omnipresent" }, { id: "1983", word: "omniscient" }, { id: "1984", word: "oneness" }, { id: "1985", word: "onerous" }, { id: "1986", word: "ontology" }, { id: "1987", word: "opalescent (opaline)" }, { id: "1988", word: "opinionated knowledge" }, { id: "1989", word: "orbit" }, { id: "1990", word: "ordain (ordination)" }, { id: "1991", word: "orifice of Brahman" }, { id: "1992", word: "original sin" }, { id: "1993", word: "orthodox" }, { id: "1994", word: "outgrow (outgrown)" }, { id: "1995", word: "overshadow" }, { id: "1996", word: "overt" }, { id: "1997", word: "overwhelm" }, { id: "1998", word: "pada" }, { id: "1999", word: "pada puja" }, { id: "2000", word: "padartha" }, { id: "2001", word: "paddhati" }, { id: "2002", word: "padma" }, { id: "2003", word: "Padma Purana" }, { id: "2004", word: "padmasana" }, { id: "2005", word: "paduka" }, { id: "2006", word: "pagan" }, { id: "2007", word: "pageantry" }, { id: "2008", word: "Paingala Upanishad" }, { id: "2009", word: "pale" }, { id: "2010", word: "Pali" }, { id: "2011", word: "palmist" }, { id: "2012", word: "panacea" }, { id: "2013", word: "panasa phala" }, { id: "2014", word: "Pancha Ganapati" }, { id: "2015", word: "Pancha Ganapati Utsava" }, { id: "2016", word: "pancha mahayajnas" }, { id: "2017", word: "pancha nitya karmas" }, { id: "2018", word: "pancha shraddha" }, { id: "2019", word: "Pancha Silanyasa" }, { id: "2020", word: "panchabhuta" }, { id: "2021", word: "panchachara" }, { id: "2022", word: "panchakriya(s)" }, { id: "2023", word: "Panchakshara Mantra" }, { id: "2024", word: "Panchamukha Ganapati" }, { id: "2025", word: "panchanga" }, { id: "2026", word: "Pancharatra" }, { id: "2027", word: "Pancharatra Agama(s)" }, { id: "2028", word: "Panchartha Bhashya" }, { id: "2029", word: "Panchatantra" }, { id: "2030", word: "panchayatana puja" }, { id: "2031", word: "pandara" }, { id: "2032", word: "pandit (pandita)" }, { id: "2033", word: "panentheism" }, { id: "2034", word: "Panini (Panini)" }, { id: "2035", word: "panorama" }, { id: "2036", word: "pantheism" }, { id: "2037", word: "pantheon" }, { id: "2038", word: "papa" }, { id: "2039", word: "papa-duhkha" }, { id: "2040", word: "paper dragon" }, { id: "2041", word: "papman" }, { id: "2042", word: "para" }, { id: "2043", word: "parable" }, { id: "2044", word: "Parabrahman" }, { id: "2045", word: "paradox" }, { id: "2046", word: "Parakhya Agama" }, { id: "2047", word: "Param" }, { id: "2048", word: "parama" }, { id: "2049", word: "paramaguru" }, { id: "2050", word: "paramahamsa" }, { id: "2051", word: "Paramananda" }, { id: "2052", word: "Paramatman" }, { id: "2053", word: "Parameshvara" }, { id: "2054", word: "paramount" }, { id: "2055", word: "parampara" }, { id: "2056", word: "paranada" }, { id: "2057", word: "paranoiac" }, { id: "2058", word: "Paraparam" }, { id: "2059", word: "parartha puja" }, { id: "2060", word: "Parasamvid" }, { id: "2061", word: "Parashakti" }, { id: "2062", word: "Parashiva" }, { id: "2063", word: "parashu" }, { id: "2064", word: "parashvadha" }, { id: "2065", word: "Parasiva" }, { id: "2066", word: "Parasivam" }, { id: "2067", word: "Paravak" }, { id: "2068", word: "pareschatology" }, { id: "2069", word: "Parvati" }, { id: "2070", word: "pasha" }, { id: "2071", word: "pasha" }, { id: "2072", word: "pasha-jnanam" }, { id: "2073", word: "Pashanadarana" }, { id: "2074", word: "pashu" }, { id: "2075", word: "pashu-jnana" }, { id: "2076", word: "pashu-jnanam" }, { id: "2077", word: "pashupalaka" }, { id: "2078", word: "Pashupata Saivism" }, { id: "2079", word: "Pashupata Sutra(s)" }, { id: "2080", word: "Pashupati" }, { id: "2081", word: "pashyanti vak" }, { id: "2082", word: "passion" }, { id: "2083", word: "passive" }, { id: "2084", word: "Pasupatinatha mandira" }, { id: "2085", word: "patala" }, { id: "2086", word: "patala chakra" }, { id: "2087", word: "Patanjali" }, { id: "2088", word: "path" }, { id: "2089", word: "patha" }, { id: "2090", word: "pathaka" }, { id: "2091", word: "pathashala" }, { id: "2092", word: "Pati" }, { id: "2093", word: "Pati-jnana" }, { id: "2094", word: "Pati-jnanam" }, { id: "2095", word: "Pati-pashu-pasha" }, { id: "2096", word: "patra" }, { id: "2097", word: "patronymic" }, { id: "2098", word: "Paushkara Agama" }, { id: "2099", word: "payasa" }, { id: "2100", word: "payasam" }, { id: "2101", word: "pelvic" }, { id: "2102", word: "penance" }, { id: "2103", word: "pendant" }, { id: "2104", word: "pendulum" }, { id: "2105", word: "penicillin" }, { id: "2106", word: "penthouse" }, { id: "2107", word: "perennial" }, { id: "2108", word: "perfectionist" }, { id: "2109", word: "perfections" }, { id: "2110", word: "periannan" }, { id: "2111", word: "Periyapuranam" }, { id: "2112", word: "permeate" }, { id: "2113", word: "perpetuate" }, { id: "2114", word: "perplex" }, { id: "2115", word: "perplexity" }, { id: "2116", word: "perseverance" }, { id: "2117", word: "persona" }, { id: "2118", word: "personal dharma" }, { id: "2119", word: "Personal God" }, { id: "2120", word: "personality" }, { id: "2121", word: "personification" }, { id: "2122", word: "perspective" }, { id: "2123", word: "pervade" }, { id: "2124", word: "pessimism" }, { id: "2125", word: "phala" }, { id: "2126", word: "Pharaoh" }, { id: "2127", word: "pharyngeal" }, { id: "2128", word: "phenomenon" }, { id: "2129", word: "phonograph" }, { id: "2130", word: "phosphorescent" }, { id: "2131", word: "physique" }, { id: "2132", word: "pictorial" }, { id: "2133", word: "pilgrimage" }, { id: "2134", word: "pinda" }, { id: "2135", word: "pineal gland" }, { id: "2136", word: "pingala" }, { id: "2137", word: "pingala" }, { id: "2138", word: "pingala nadi" }, { id: "2139", word: "pinnacle" }, { id: "2140", word: "pir" }, { id: "2141", word: "pitha" }, { id: "2142", word: "pitri-tarpana" }, { id: "2143", word: "Pitriloka" }, { id: "2144", word: "pitritarpana" }, { id: "2145", word: "pitta" }, { id: "2146", word: "pituitary gland" }, { id: "2147", word: "placenta" }, { id: "2148", word: "plague" }, { id: "2149", word: "plane" }, { id: "2150", word: "plasma" }, { id: "2151", word: "plateau" }, { id: "2152", word: "plausible" }, { id: "2153", word: "Pleiades" }, { id: "2154", word: "plexus" }, { id: "2155", word: "pliant" }, { id: "2156", word: "Plotinus" }, { id: "2157", word: "plummet" }, { id: "2158", word: "pluralism (pluralistic)" }, { id: "2159", word: "pluralistic realism" }, { id: "2160", word: "point blank" }, { id: "2161", word: "polarize" }, { id: "2162", word: "polygamy" }, { id: "2163", word: "Polynesian" }, { id: "2164", word: "polytheism" }, { id: "2165", word: "pomp" }, { id: "2166", word: "pontiff" }, { id: "2167", word: "pontifical" }, { id: "2168", word: "pornography" }, { id: "2169", word: "positive discipline" }, { id: "2170", word: "postulate" }, { id: "2171", word: "potent" }, { id: "2172", word: "potentialities" }, { id: "2173", word: "potluck" }, { id: "2174", word: "pottu" }, { id: "2175", word: "prabhamandala" }, { id: "2176", word: "prabhavali" }, { id: "2177", word: "practitioner" }, { id: "2178", word: "pradakshina" }, { id: "2179", word: "pradosha" }, { id: "2180", word: "pragmatic" }, { id: "2181", word: "prakriti" }, { id: "2182", word: "pralaya" }, { id: "2183", word: "pramukha" }, { id: "2184", word: "prana" }, { id: "2185", word: "prana chakravala" }, { id: "2186", word: "prana-aura" }, { id: "2187", word: "Pranagnihotra Upanishad" }, { id: "2188", word: "Pranalinga" }, { id: "2189", word: "pranama" }, { id: "2190", word: "pranamaya kosha" }, { id: "2191", word: "pranatyaga" }, { id: "2192", word: "Pranava" }, { id: "2193", word: "pranayama" }, { id: "2194", word: "pranic" }, { id: "2195", word: "pranic body" }, { id: "2196", word: "pranic sheath" }, { id: "2197", word: "pranipata" }, { id: "2198", word: "prapatti" }, { id: "2199", word: "prarabdha karma" }, { id: "2200", word: "prasada" }, { id: "2201", word: "Prashna Upanishad" }, { id: "2202", word: "prashnottara" }, { id: "2203", word: "prashnottaram" }, { id: "2204", word: "prate (prattle)" }, { id: "2205", word: "pratyabhijna" }, { id: "2206", word: "Pratyabhijna Darshana" }, { id: "2207", word: "Pratyabhijna Sutra(s)" }, { id: "2208", word: "pratyahara" }, { id: "2209", word: "prayashchitta" }, { id: "2210", word: "prayojaka" }, { id: "2211", word: "prayopavesha" }, { id: "2212", word: "precarious" }, { id: "2213", word: "precede" }, { id: "2214", word: "precept" }, { id: "2215", word: "preceptor" }, { id: "2216", word: "precinct" }, { id: "2217", word: "precinct(s)" }, { id: "2218", word: "precipice" }, { id: "2219", word: "precognition" }, { id: "2220", word: "precursor" }, { id: "2221", word: "prejudice" }, { id: "2222", word: "Premaiva Sivamaya, Satyam eva Parashivah" }, { id: "2223", word: "premonition" }, { id: "2224", word: "prenatal" }, { id: "2225", word: "preservation" }, { id: "2226", word: "preside" }, { id: "2227", word: "Pretaloka" }, { id: "2228", word: "prevail" }, { id: "2229", word: "priest" }, { id: "2230", word: "Primal Soul" }, { id: "2231", word: "Primal Sound" }, { id: "2232", word: "Primal Substance" }, { id: "2233", word: "principle" }, { id: "2234", word: "pristine" }, { id: "2235", word: "prithivi tattva" }, { id: "2236", word: "priya" }, { id: "2237", word: "processed sugar" }, { id: "2238", word: "procrastination" }, { id: "2239", word: "procreation" }, { id: "2240", word: "procurer" }, { id: "2241", word: "progeny" }, { id: "2242", word: "prohibit" }, { id: "2243", word: "prominent" }, { id: "2244", word: "promiscuity" }, { id: "2245", word: "promulgate" }, { id: "2246", word: "prone" }, { id: "2247", word: "pronged" }, { id: "2248", word: "propel" }, { id: "2249", word: "prophecy" }, { id: "2250", word: "prophetic" }, { id: "2251", word: "propound" }, { id: "2252", word: "proselytize" }, { id: "2253", word: "prostatic" }, { id: "2254", word: "prostitute" }, { id: "2255", word: "prostrate" }, { id: "2256", word: "prostration" }, { id: "2257", word: "protest" }, { id: "2258", word: "protocol (cultural)" }, { id: "2259", word: "protrude" }, { id: "2260", word: "province" }, { id: "2261", word: "prow" }, { id: "2262", word: "prudent" }, { id: "2263", word: "pry" }, { id: "2264", word: "psalm" }, { id: "2265", word: "pseudo" }, { id: "2266", word: "psyche" }, { id: "2267", word: "psychiatrist" }, { id: "2268", word: "psychic" }, { id: "2269", word: "psychic entanglements" }, { id: "2270", word: "psychic tubes" }, { id: "2271", word: "psychism" }, { id: "2272", word: "psychoanalyze" }, { id: "2273", word: "psychological moment" }, { id: "2274", word: "psychologist" }, { id: "2275", word: "psychology" }, { id: "2276", word: "psychometry" }, { id: "2277", word: "puberty" }, { id: "2278", word: "puissant" }, { id: "2279", word: "puja" }, { id: "2280", word: "pujari" }, { id: "2281", word: "pulsate" }, { id: "2282", word: "punarjanma" }, { id: "2283", word: "pundit (pandita)" }, { id: "2284", word: "pungent" }, { id: "2285", word: "Punjab" }, { id: "2286", word: "punjabi" }, { id: "2287", word: "punsavana" }, { id: "2288", word: "punya" }, { id: "2289", word: "Purana" }, { id: "2290", word: "Puranic" }, { id: "2291", word: "Pure Consciousness" }, { id: "2292", word: "purgatory" }, { id: "2293", word: "puritan" }, { id: "2294", word: "purity-impurity" }, { id: "2295", word: "purnima" }, { id: "2296", word: "purohita" }, { id: "2297", word: "purport" }, { id: "2298", word: "pursue (pursuit)" }, { id: "2299", word: "purusha" }, { id: "2300", word: "purusha dharma" }, { id: "2301", word: "purushartha" }, { id: "2302", word: "pushpashara" }, { id: "2303", word: "qualified nondualism" }, { id: "2304", word: "quantum" }, { id: "2305", word: "quatrain" }, { id: "2306", word: "quell" }, { id: "2307", word: "quiescence" }, { id: "2308", word: "quiescent" }, { id: "2309", word: "race" }, { id: "2310", word: "Radha Rani" }, { id: "2311", word: "Radhakrishnan, Dr. S." }, { id: "2312", word: "raga" }, { id: "2313", word: "rage" }, { id: "2314", word: "Rahu" }, { id: "2315", word: "raja yoga" }, { id: "2316", word: "rajanya" }, { id: "2317", word: "Rajarajeshvari" }, { id: "2318", word: "rajarishi" }, { id: "2319", word: "rajas" }, { id: "2320", word: "rajasic" }, { id: "2321", word: "Rama" }, { id: "2322", word: "Rama Tirtha" }, { id: "2323", word: "Ramakantha I" }, { id: "2324", word: "Ramakrishna" }, { id: "2325", word: "Ramana Maharshi" }, { id: "2326", word: "Ramanuja" }, { id: "2327", word: "Ramaraja " }, { id: "2328", word: "Ramayana" }, { id: "2329", word: "ramifications" }, { id: "2330", word: "ramify" }, { id: "2331", word: "rampant" }, { id: "2332", word: "Ramprasad" }, { id: "2333", word: "rangoli" }, { id: "2334", word: "rapport" }, { id: "2335", word: "rapturous" }, { id: "2336", word: "rarefied " }, { id: "2337", word: "rasatala" }, { id: "2338", word: "rasatala chakra" }, { id: "2339", word: "ratification" }, { id: "2340", word: "rationales" }, { id: "2341", word: "rationalize" }, { id: "2342", word: "ratnakumbha" }, { id: "2343", word: "Raurava Agama" }, { id: "2344", word: "Ravana" }, { id: "2345", word: "re-enact" }, { id: "2346", word: "reabsorption (reabsorb)" }, { id: "2347", word: "reaction" }, { id: "2348", word: "reaffirmation" }, { id: "2349", word: "reality" }, { id: "2350", word: "realm" }, { id: "2351", word: "ream" }, { id: "2352", word: "reap" }, { id: "2353", word: "rebellious" }, { id: "2354", word: "recluse" }, { id: "2355", word: "reconcile (reconciliation)" }, { id: "2356", word: "reconciliation" }, { id: "2357", word: "recuperate" }, { id: "2358", word: "redeem" }, { id: "2359", word: "redolent" }, { id: "2360", word: "reembody" }, { id: "2361", word: "regimen" }, { id: "2362", word: "regress" }, { id: "2363", word: "Reiki" }, { id: "2364", word: "reincarnate" }, { id: "2365", word: "reincarnation" }, { id: "2366", word: "relative" }, { id: "2367", word: "relative reality" }, { id: "2368", word: "relegate" }, { id: "2369", word: "religion" }, { id: "2370", word: "religionist" }, { id: "2371", word: "relinquish" }, { id: "2372", word: "remnant" }, { id: "2373", word: "remorse" }, { id: "2374", word: "remote" }, { id: "2375", word: "renaissance" }, { id: "2376", word: "render" }, { id: "2377", word: "renowned" }, { id: "2378", word: "Renukacharya" }, { id: "2379", word: "renunciate" }, { id: "2380", word: "renunciation" }, { id: "2381", word: "repercussion" }, { id: "2382", word: "replenish" }, { id: "2383", word: "repose" }, { id: "2384", word: "repository" }, { id: "2385", word: "repressions" }, { id: "2386", word: "reprieve" }, { id: "2387", word: "repudiation" }, { id: "2388", word: "repulse" }, { id: "2389", word: "rescind" }, { id: "2390", word: "resemble" }, { id: "2391", word: "resent (resentment)" }, { id: "2392", word: "residue" }, { id: "2393", word: "resplendence" }, { id: "2394", word: "restive" }, { id: "2395", word: "restraints" }, { id: "2396", word: "retaliate" }, { id: "2397", word: "retaliation" }, { id: "2398", word: "retard" }, { id: "2399", word: "retroactive" }, { id: "2400", word: "retrofit" }, { id: "2401", word: "retrospect" }, { id: "2402", word: "retrospection" }, { id: "2403", word: "revealing grace" }, { id: "2404", word: "reverberation" }, { id: "2405", word: "revere" }, { id: "2406", word: "reverie" }, { id: "2407", word: "Rig Veda" }, { id: "2408", word: "Righama" }, { id: "2409", word: "righteous indignation" }, { id: "2410", word: "rigorous" }, { id: "2411", word: "Rinamochana Ganapati" }, { id: "2412", word: "rishi" }, { id: "2413", word: "rishi" }, { id: "2414", word: "Rishi from the Himalayas" }, { id: "2415", word: "rita" }, { id: "2416", word: "rite (or ritual)" }, { id: "2417", word: "rites of passage" }, { id: "2418", word: "ritu kala" }, { id: "2419", word: "ritual" }, { id: "2420", word: "rival" }, { id: "2421", word: "roam" }, { id: "2422", word: "rote" }, { id: "2423", word: "rotundity" }, { id: "2424", word: "Rudra" }, { id: "2425", word: "rudraksha" }, { id: "2426", word: "rudraksha mala" }, { id: "2427", word: "Rudrasambhu (Rudrashambhu)" }, { id: "2428", word: "Rudrayamala Tantra" }, { id: "2429", word: "Sabbath" }, { id: "2430", word: "sabda kosha" }, { id: "2431", word: "sacral" }, { id: "2432", word: "sacrament" }, { id: "2433", word: "sacred thread" }, { id: "2434", word: "sacrifice" }, { id: "2435", word: "sacrosanct" }, { id: "2436", word: "sadachara" }, { id: "2437", word: "Sadashiva" }, { id: "2438", word: "Sadasiva" }, { id: "2439", word: "sadhaka" }, { id: "2440", word: "sadhana" }, { id: "2441", word: "sadhana marga" }, { id: "2442", word: "sadhana marga" }, { id: "2443", word: "sadhu" }, { id: "2444", word: "sadhvi" }, { id: "2445", word: "Sadyojyoti" }, { id: "2446", word: "saffron" }, { id: "2447", word: "sagacious" }, { id: "2448", word: "sage" }, { id: "2449", word: "Saguna Brahman" }, { id: "2450", word: "sahasra lekhana sadhana" }, { id: "2451", word: "sahasradala padma" }, { id: "2452", word: "sahasrara chakra" }, { id: "2453", word: "saint" }, { id: "2454", word: "Saiva" }, { id: "2455", word: "Saiva Agamas" }, { id: "2456", word: "Saiva Atmartha Puja" }, { id: "2457", word: "Saiva Dharma" }, { id: "2458", word: "Saiva Dharma Shastras" }, { id: "2459", word: "Saiva Neri" }, { id: "2460", word: "Saiva Samayam" }, { id: "2461", word: "Saiva Siddhanta" }, { id: "2462", word: "Saiva Siddhanta Church" }, { id: "2463", word: "Saiva Siddhanta Church (Saiva Siddhanta Dharmasabha)" }, { id: "2464", word: "Saiva Siddhanta Yoga Order" }, { id: "2465", word: "Saiva Vishishtadvaita" }, { id: "2466", word: "Saivism (Saiva)" }, { id: "2467", word: "Saivism (six schools)" }, { id: "2468", word: "Saivite" }, { id: "2469", word: "Saivite (Saiva)" }, { id: "2470", word: "Saivite saints" }, { id: "2471", word: "sakala avastha" }, { id: "2472", word: "sakha marga" }, { id: "2473", word: "sakshin" }, { id: "2474", word: "Sakti" }, { id: "2475", word: "saktinipata" }, { id: "2476", word: "saktipata" }, { id: "2477", word: "salokya" }, { id: "2478", word: "salutations to the sun" }, { id: "2479", word: "Sama Veda" }, { id: "2480", word: "samadhi" }, { id: "2481", word: "samana" }, { id: "2482", word: "samapatti" }, { id: "2483", word: "samarasa" }, { id: "2484", word: "samavartana" }, { id: "2485", word: "Samayacharya" }, { id: "2486", word: "samayam" }, { id: "2487", word: "Sambandar" }, { id: "2488", word: "samhara" }, { id: "2489", word: "samhita" }, { id: "2490", word: "samipya" }, { id: "2491", word: "sampradaya" }, { id: "2492", word: "sampradaya" }, { id: "2493", word: "samsara" }, { id: "2494", word: "samsari" }, { id: "2495", word: "samskara" }, { id: "2496", word: "samskara chitta" }, { id: "2497", word: "samskaras of adulthood" }, { id: "2498", word: "samskaras of birth" }, { id: "2499", word: "samskaras of childhood" }, { id: "2500", word: "samskaras of later life" }, { id: "2501", word: "samyama" }, { id: "2502", word: "San Marga" }, { id: "2503", word: "San Marga Sanctuary" }, { id: "2504", word: "San Marga Sanctuary" }, { id: "2505", word: "Sanatana Dharma" }, { id: "2506", word: "Sanatani" }, { id: "2507", word: "Sanatkumara" }, { id: "2508", word: "sanchita karma" }, { id: "2509", word: "sanctified waters" }, { id: "2510", word: "sanctify" }, { id: "2511", word: "sanction" }, { id: "2512", word: "sanctum sanctorum" }, { id: "2513", word: "sandalwood" }, { id: "2514", word: "sandhya upasana" }, { id: "2515", word: "sanga" }, { id: "2516", word: "sangama" }, { id: "2517", word: "sanitarium" }, { id: "2518", word: "sankalpa" }, { id: "2519", word: "Sankara (Shankara)" }, { id: "2520", word: "Sankara (Shankara), Adi" }, { id: "2521", word: "Sankatahara Ganapati" }, { id: "2522", word: "Sankhya" }, { id: "2523", word: "sannidhana" }, { id: "2524", word: "sannidhya" }, { id: "2525", word: "sannidhya" }, { id: "2526", word: "sannyasa" }, { id: "2527", word: "sannyasa ashrama" }, { id: "2528", word: "sannyasa dharma" }, { id: "2529", word: "sannyasa dharma" }, { id: "2530", word: "sannyasa diksha" }, { id: "2531", word: "sannyasa diksha" }, { id: "2532", word: "Sannyasa Upanishad" }, { id: "2533", word: "sannyasin" }, { id: "2534", word: "Sanskrit" }, { id: "2535", word: "Sanskrit (Samskrita)" }, { id: "2536", word: "sant" }, { id: "2537", word: "santosha" }, { id: "2538", word: "sapphire" }, { id: "2539", word: "sapta rishis" }, { id: "2540", word: "sapta rishis" }, { id: "2541", word: "Sarasvati" }, { id: "2542", word: "Saravanabhava" }, { id: "2543", word: "sari" }, { id: "2544", word: "sarira" }, { id: "2545", word: "sarupya" }, { id: "2546", word: "sarvabhadra" }, { id: "2547", word: "sarvabhuta" }, { id: "2548", word: "sarvada" }, { id: "2549", word: "Sarvajnanottara Agama" }, { id: "2550", word: "Sarvam Sivamayam" }, { id: "2551", word: "Sat" }, { id: "2552", word: "sat" }, { id: "2553", word: "Sat Guru" }, { id: "2554", word: "Sat Yuga (Satya Yuga)" }, { id: "2555", word: "Satan" }, { id: "2556", word: "Satchidananda (satchitananda)" }, { id: "2557", word: "satguru (sadguru)" }, { id: "2558", word: "Satguru Purnima" }, { id: "2559", word: "satgurunatha" }, { id: "2560", word: "satsanga" }, { id: "2561", word: "sattva guna" }, { id: "2562", word: "sattvaguna" }, { id: "2563", word: "sattvic" }, { id: "2564", word: "satya" }, { id: "2565", word: "Satya Mantra" }, { id: "2566", word: "Satyaloka" }, { id: "2567", word: "saucha" }, { id: "2568", word: "saumanasya" }, { id: "2569", word: "savant" }, { id: "2570", word: "savikalpa samadhi" }, { id: "2571", word: "savior" }, { id: "2572", word: "sayujya" }, { id: "2573", word: "scarlet" }, { id: "2574", word: "scepter" }, { id: "2575", word: "schism" }, { id: "2576", word: "scintillating" }, { id: "2577", word: "scribe" }, { id: "2578", word: "scripture (scriptural)" }, { id: "2579", word: "scrutinize" }, { id: "2580", word: "scrutiny" }, { id: "2581", word: "secluded (seclusion)" }, { id: "2582", word: "Second World" }, { id: "2583", word: "secretion" }, { id: "2584", word: "sect" }, { id: "2585", word: "sectarian" }, { id: "2586", word: "secular" }, { id: "2587", word: "secular humanism" }, { id: "2588", word: "seed karma" }, { id: "2589", word: "seed experience" }, { id: "2590", word: "seed karma" }, { id: "2591", word: "seer" }, { id: "2592", word: "Self" }, { id: "2593", word: "Self Realization" }, { id: "2594", word: "self-aggrandizement" }, { id: "2595", word: "self-assertive" }, { id: "2596", word: "self-conceit" }, { id: "2597", word: "self-declared sannyasin" }, { id: "2598", word: "self-effacement" }, { id: "2599", word: "self-effulgent" }, { id: "2600", word: "self-erasement" }, { id: "2601", word: "self-gratification" }, { id: "2602", word: "self-hypnosis" }, { id: "2603", word: "self-indulgent" }, { id: "2604", word: "self-luminous" }, { id: "2605", word: "self-mastery" }, { id: "2606", word: "self-reflection" }, { id: "2607", word: "semblance" }, { id: "2608", word: "Semitic" }, { id: "2609", word: "Semitic religions" }, { id: "2610", word: "sensuous" }, { id: "2611", word: "sentamarai" }, { id: "2612", word: "sentries" }, { id: "2613", word: "servitude" }, { id: "2614", word: "seva" }, { id: "2615", word: "seval" }, { id: "2616", word: "severance" }, { id: "2617", word: "sexuality" }, { id: "2618", word: "shabda kosha" }, { id: "2619", word: "shad darshana" }, { id: "2620", word: "shakahara" }, { id: "2621", word: "Shakta" }, { id: "2622", word: "Shakta Tantrism" }, { id: "2623", word: "Shakti" }, { id: "2624", word: "Shakti Ganapati" }, { id: "2625", word: "Shakti Vishishtadvaita" }, { id: "2626", word: "shaktinipata" }, { id: "2627", word: "shaktipata" }, { id: "2628", word: "Shaktis" }, { id: "2629", word: "Shaktism (Shakta)" }, { id: "2630", word: "shaktopaya" }, { id: "2631", word: "Shakya" }, { id: "2632", word: "shalipallava" }, { id: "2633", word: "shaman" }, { id: "2634", word: "Shamanism" }, { id: "2635", word: "shamanism (shamanic)" }, { id: "2636", word: "Shambhavopaya" }, { id: "2637", word: "Shandilya Upanishad" }, { id: "2638", word: "Shankara" }, { id: "2639", word: "Shankaracharya pitha" }, { id: "2640", word: "shankha" }, { id: "2641", word: "shanmata sthapanacharya" }, { id: "2642", word: "Shanmukha" }, { id: "2643", word: "Shanmukha Gayatri" }, { id: "2644", word: "shanti" }, { id: "2645", word: "Shanti Mantra" }, { id: "2646", word: "shara" }, { id: "2647", word: "sharana" }, { id: "2648", word: "Sharavana" }, { id: "2649", word: "sharira" }, { id: "2650", word: "Sharma" }, { id: "2651", word: "shashikala" }, { id: "2652", word: "shashtyabda purti" }, { id: "2653", word: "shastra" }, { id: "2654", word: "shastri" }, { id: "2655", word: "Shatapatha Brahmana" }, { id: "2656", word: "shatkona" }, { id: "2657", word: "shatsthala" }, { id: "2658", word: "shatter" }, { id: "2659", word: "shaucha" }, { id: "2660", word: "sheath" }, { id: "2661", word: "shiftiness" }, { id: "2662", word: "shikhara" }, { id: "2663", word: "Shiksha Vedanga" }, { id: "2664", word: "Shilpa Shastra" }, { id: "2665", word: "shilpi" }, { id: "2666", word: "Shinto" }, { id: "2667", word: "Shintoism" }, { id: "2668", word: "shishya" }, { id: "2669", word: "Shivena saha Nartanam" }, { id: "2670", word: "Shivohamic" }, { id: "2671", word: "shloka" }, { id: "2672", word: "shraddha" }, { id: "2673", word: "shraddha dharana" }, { id: "2674", word: "shraddha shuddhi" }, { id: "2675", word: "shrauta" }, { id: "2676", word: "Shrauta Shastra" }, { id: "2677", word: "shri" }, { id: "2678", word: "Shri Chakra" }, { id: "2679", word: "shri paduka" }, { id: "2680", word: "Shri Rudram" }, { id: "2681", word: "Shrila" }, { id: "2682", word: "shrouded" }, { id: "2683", word: "shruti" }, { id: "2684", word: "shubha" }, { id: "2685", word: "shubha muhurta" }, { id: "2686", word: "shuddha" }, { id: "2687", word: "shuddha avastha" }, { id: "2688", word: "Shuddha Saiva Siddhanta" }, { id: "2689", word: "shuddhavidya" }, { id: "2690", word: "shuddhi" }, { id: "2691", word: "shudra" }, { id: "2692", word: "shuka" }, { id: "2693", word: "Shukla Yajur Veda" }, { id: "2694", word: "shukladana" }, { id: "2695", word: "Shulba Shastra(s)" }, { id: "2696", word: "Shum" }, { id: "2697", word: "Shum perspectives" }, { id: "2698", word: "Shum-Tyeif" }, { id: "2699", word: "shumif" }, { id: "2700", word: "shun" }, { id: "2701", word: "shunda" }, { id: "2702", word: "shunya" }, { id: "2703", word: "Shunya Sampadane" }, { id: "2704", word: "shuttle" }, { id: "2705", word: "Shvetashvatara Upanishad" }, { id: "2706", word: "siddha" }, { id: "2707", word: "Siddha Marga" }, { id: "2708", word: "Siddha Siddhanta" }, { id: "2709", word: "Siddha Siddhanta Paddhati" }, { id: "2710", word: "siddha yoga" }, { id: "2711", word: "siddha yogi" }, { id: "2712", word: "Siddha Yogi Sampradaya" }, { id: "2713", word: "siddhanta" }, { id: "2714", word: "Siddhantasravana" }, { id: "2715", word: "siddhi" }, { id: "2716", word: "Siddhi and Buddhi" }, { id: "2717", word: "Siddhi Ganapati" }, { id: "2718", word: "Siddhidata" }, { id: "2719", word: "Sikh" }, { id: "2720", word: "Sikhism" }, { id: "2721", word: "silver cord" }, { id: "2722", word: "simantonnayana" }, { id: "2723", word: "simile" }, { id: "2724", word: "simnif" }, { id: "2725", word: "simshumbisi" }, { id: "2726", word: "sin" }, { id: "2727", word: "sindura" }, { id: "2728", word: "Sinha Ganapati" }, { id: "2729", word: "sishiya" }, { id: "2730", word: "sitar" }, { id: "2731", word: "Siva" }, { id: "2732", word: "Siva Advaita" }, { id: "2733", word: "Siva consciousness" }, { id: "2734", word: "Siva Drishti" }, { id: "2735", word: "Siva Purana" }, { id: "2736", word: "Siva Rakshamani Dipika" }, { id: "2737", word: "Siva Samhita" }, { id: "2738", word: "Siva Sutra(s)" }, { id: "2739", word: "Siva's five faces" }, { id: "2740", word: "Siva-Shakti" }, { id: "2741", word: "Sivachaitanya" }, { id: "2742", word: "Sivachara" }, { id: "2743", word: "Sivacharya" }, { id: "2744", word: "Sivajnanabodham" }, { id: "2745", word: "Sivakarnamrita" }, { id: "2746", word: "Sivalaya" }, { id: "2747", word: "Sivalinga" }, { id: "2748", word: "Sivaloka" }, { id: "2749", word: "Sivam" }, { id: "2750", word: "Sivamaya" }, { id: "2751", word: "Sivamayakosha" }, { id: "2752", word: "Sivanadiyar" }, { id: "2753", word: "Sivananda" }, { id: "2754", word: "Sivananda, Swami" }, { id: "2755", word: "Sivaness" }, { id: "2756", word: "Sivanubhava Mandapa" }, { id: "2757", word: "Sivaperuman" }, { id: "2758", word: "Sivaratri" }, { id: "2759", word: "Sivasambandha" }, { id: "2760", word: "Sivasayujya" }, { id: "2761", word: "Sivasharana" }, { id: "2762", word: "Sivathondan" }, { id: "2763", word: "Sivathondar" }, { id: "2764", word: "Sivathondu" }, { id: "2765", word: "Sivaya" }, { id: "2766", word: "Sivaya Namah" }, { id: "2767", word: "Sivayave" }, { id: "2768", word: "Sivayogamuni" }, { id: "2769", word: "Skanda" }, { id: "2770", word: "Skanda Shashthi" }, { id: "2771", word: "skepticism" }, { id: "2772", word: "slothful" }, { id: "2773", word: "slough" }, { id: "2774", word: "sluggish" }, { id: "2775", word: "Smarta" }, { id: "2776", word: "Smarta Sampradaya" }, { id: "2777", word: "Smartism" }, { id: "2778", word: "smidgen" }, { id: "2779", word: "smog" }, { id: "2780", word: "smolder" }, { id: "2781", word: "smriti" }, { id: "2782", word: "snana" }, { id: "2783", word: "snare" }, { id: "2784", word: "social dharma" }, { id: "2785", word: "socialism" }, { id: "2786", word: "Socrates" }, { id: "2787", word: "sojourn" }, { id: "2788", word: "solace" }, { id: "2789", word: "solar plexus" }, { id: "2790", word: "solemn" }, { id: "2791", word: "soliloquy" }, { id: "2792", word: "solitary (solitaire)" }, { id: "2793", word: "Somananda" }, { id: "2794", word: "Somanath Temple" }, { id: "2795", word: "somatic" }, { id: "2796", word: "soothsaying" }, { id: "2797", word: "sophisticated" }, { id: "2798", word: "soul" }, { id: "2799", word: "soul" }, { id: "2800", word: "soul body" }, { id: "2801", word: "sound" }, { id: "2802", word: "Soundless Sound" }, { id: "2803", word: "sovereign" }, { id: "2804", word: "sow" }, { id: "2805", word: "span" }, { id: "2806", word: "Spanda Karika" }, { id: "2807", word: "spark" }, { id: "2808", word: "spasmodic" }, { id: "2809", word: "specious" }, { id: "2810", word: "spectrum" }, { id: "2811", word: "speculate (speculation)" }, { id: "2812", word: "sphatika" }, { id: "2813", word: "sphatika Sivalinga" }, { id: "2814", word: "sphere" }, { id: "2815", word: "spinal" }, { id: "2816", word: "Spinoza, Baruch" }, { id: "2817", word: "spinster" }, { id: "2818", word: "spiritual evolution" }, { id: "2819", word: "spiritual unfoldment" }, { id: "2820", word: "spleen" }, { id: "2821", word: "splendor (splendid)" }, { id: "2822", word: "sporadic" }, { id: "2823", word: "spouse" }, { id: "2824", word: "spurious" }, { id: "2825", word: "Sri Chakra" }, { id: "2826", word: "Sri Lanka (Shri Lanka)" }, { id: "2827", word: "Sri Rudram" }, { id: "2828", word: "Srikantha (Shrikantha)" }, { id: "2829", word: "Srikumara (Shrikumara)" }, { id: "2830", word: "Srikumara (Shrikumara)" }, { id: "2831", word: "Srinagar (Shrinagara)" }, { id: "2832", word: "Srinatha (Shrinatha)" }, { id: "2833", word: "srishti" }, { id: "2834", word: "Srishti Ganapati" }, { id: "2835", word: "stagnant" }, { id: "2836", word: "stamina" }, { id: "2837", word: "stampede" }, { id: "2838", word: "stave off" }, { id: "2839", word: "steadfast" }, { id: "2840", word: "stereotype" }, { id: "2841", word: "sthapati" }, { id: "2842", word: "Sthapatyaveda" }, { id: "2843", word: "sthiti" }, { id: "2844", word: "sthree dharma" }, { id: "2845", word: "sthula" }, { id: "2846", word: "sthula sharira" }, { id: "2847", word: "stimulants" }, { id: "2848", word: "stimulus" }, { id: "2849", word: "stingy (stinginess)" }, { id: "2850", word: "Stoics" }, { id: "2851", word: "straits" }, { id: "2852", word: "stranglehold" }, { id: "2853", word: "stratification" }, { id: "2854", word: "stratum" }, { id: "2855", word: "stri dharma" }, { id: "2856", word: "sub-subconscious" }, { id: "2857", word: "Subala Upanishad" }, { id: "2858", word: "subatomic" }, { id: "2859", word: "subconscious mind" }, { id: "2860", word: "subjective" }, { id: "2861", word: "sublimate" }, { id: "2862", word: "sublime" }, { id: "2863", word: "subliminal" }, { id: "2864", word: "submission" }, { id: "2865", word: "Subramanya" }, { id: "2866", word: "Subramuniyaswami" }, { id: "2867", word: "subside" }, { id: "2868", word: "substance" }, { id: "2869", word: "substratum" }, { id: "2870", word: "subsuperconscious mind" }, { id: "2871", word: "subtle" }, { id: "2872", word: "subtle body" }, { id: "2873", word: "subtle plane" }, { id: "2874", word: "successor" }, { id: "2875", word: "succumb" }, { id: "2876", word: "suchi" }, { id: "2877", word: "suffuse" }, { id: "2878", word: "Sufism" }, { id: "2879", word: "sugar, processed" }, { id: "2880", word: "suicide" }, { id: "2881", word: "sukarma" }, { id: "2882", word: "sukhasana" }, { id: "2883", word: "sukshma" }, { id: "2884", word: "sukshma sharira" }, { id: "2885", word: "sulk" }, { id: "2886", word: "sully (sullied)" }, { id: "2887", word: "summation" }, { id: "2888", word: "Sundaranatha" }, { id: "2889", word: "Sundarar" }, { id: "2890", word: "superconscious mind" }, { id: "2891", word: "superficial" }, { id: "2892", word: "supernatural" }, { id: "2893", word: "supernova" }, { id: "2894", word: "supersede" }, { id: "2895", word: "superstition" }, { id: "2896", word: "supplicate (supplication)" }, { id: "2897", word: "suppressed" }, { id: "2898", word: "suppression" }, { id: "2899", word: "Suprabheda Agama" }, { id: "2900", word: "supreme" }, { id: "2901", word: "Supreme God" }, { id: "2902", word: "Surdas" }, { id: "2903", word: "surpass" }, { id: "2904", word: "surrender" }, { id: "2905", word: "Surya" }, { id: "2906", word: "sushumna nadi" }, { id: "2907", word: "sushupti" }, { id: "2908", word: "sustainable" }, { id: "2909", word: "sustenance (to sustain)" }, { id: "2910", word: "Suta Samhita" }, { id: "2911", word: "sutala" }, { id: "2912", word: "sutra" }, { id: "2913", word: "svadharma" }, { id: "2914", word: "svadhishthana" }, { id: "2915", word: "svadhyaya" }, { id: "2916", word: "svapna" }, { id: "2917", word: "svarga" }, { id: "2918", word: "Svarloka" }, { id: "2919", word: "svarnasharira" }, { id: "2920", word: "svarnasharira vishvagrasa" }, { id: "2921", word: "Svatmarama" }, { id: "2922", word: "svayambhu Linga " }, { id: "2923", word: "svayambhu murti" }, { id: "2924", word: "Svayambhuva Agama" }, { id: "2925", word: "Svayambhuva Sutra(s)" }, { id: "2926", word: "swami (svami)" }, { id: "2927", word: "swamini" }, { id: "2928", word: "swastika" }, { id: "2929", word: "swirl" }, { id: "2930", word: "symbolism" }, { id: "2931", word: "sympathetic nervous system" }, { id: "2932", word: "symptomatic" }, { id: "2933", word: "syncretism" }, { id: "2934", word: "syndrome" }, { id: "2935", word: "synonymous" }, { id: "2936", word: "synopsis" }, { id: "2937", word: "synthesis" }, { id: "2938", word: "syphon" }, { id: "2939", word: "tact" }, { id: "2940", word: "Tagore, Rabindranath" }, { id: "2941", word: "tai chi chuan" }, { id: "2942", word: "Tai Pongal" }, { id: "2943", word: "Tai Pusam" }, { id: "2944", word: "taijasa" }, { id: "2945", word: "tainted" }, { id: "2946", word: "Taittiriya Aranyaka" }, { id: "2947", word: "Taittiriya Samhita" }, { id: "2948", word: "Taittiriya Upanishad" }, { id: "2949", word: "tala" }, { id: "2950", word: "talatala chakra" }, { id: "2951", word: "tamasic" }, { id: "2952", word: "tambura" }, { id: "2953", word: "Tamil" }, { id: "2954", word: "Tamil Nadu" }, { id: "2955", word: "tandava" }, { id: "2956", word: "tangent" }, { id: "2957", word: "tangible" }, { id: "2958", word: "tangled" }, { id: "2959", word: "tanmatra" }, { id: "2960", word: "tantra" }, { id: "2961", word: "Tantraloka" }, { id: "2962", word: "tantric (tantrika)" }, { id: "2963", word: "tantrism" }, { id: "2964", word: "Tao" }, { id: "2965", word: "Taoism" }, { id: "2966", word: "tapaha" }, { id: "2967", word: "tapas" }, { id: "2968", word: "tapasvin" }, { id: "2969", word: "Tapoloka" }, { id: "2970", word: "tarnished" }, { id: "2971", word: "tarry" }, { id: "2972", word: "Taruna Ganapati" }, { id: "2973", word: "Tat" }, { id: "2974", word: "Tat Sat" }, { id: "2975", word: "Tatha astu" }, { id: "2976", word: "Tatparyadipika" }, { id: "2977", word: "tattva" }, { id: "2978", word: "Tattva Prakasha" }, { id: "2979", word: "tattvatrayi" }, { id: "2980", word: "taut" }, { id: "2981", word: "Tayumanavar" }, { id: "2982", word: "tejas" }, { id: "2983", word: "temper" }, { id: "2984", word: "temple" }, { id: "2985", word: "temporal" }, { id: "2986", word: "temptation" }, { id: "2987", word: "temptress" }, { id: "2988", word: "tenacious" }, { id: "2989", word: "tenet" }, { id: "2990", word: "tenuous" }, { id: "2991", word: "tenure" }, { id: "2992", word: "teradi" }, { id: "2993", word: "terminable" }, { id: "2994", word: "terminal" }, { id: "2995", word: "terminal illness" }, { id: "2996", word: "thalamic" }, { id: "2997", word: "That" }, { id: "2998", word: "theism" }, { id: "2999", word: "theistic" }, { id: "3000", word: "theistic dualism" }, { id: "3001", word: "theology" }, { id: "3002", word: "Theosophy" }, { id: "3003", word: "third eye" }, { id: "3004", word: "Third World" }, { id: "3005", word: "thither" }, { id: "3006", word: "thou/thy" }, { id: "3007", word: "thought forms" }, { id: "3008", word: "three pillars of Saivism" }, { id: "3009", word: "three worlds" }, { id: "3010", word: "thwart" }, { id: "3011", word: "thy" }, { id: "3012", word: "thyroid" }, { id: "3013", word: "tila gola" }, { id: "3014", word: "tilaka" }, { id: "3015", word: "time-out" }, { id: "3016", word: "timeless" }, { id: "3017", word: "tinge" }, { id: "3018", word: "tirobhava" }, { id: "3019", word: "tirodhana shakti" }, { id: "3020", word: "tirtha" }, { id: "3021", word: "tirthayatra" }, { id: "3022", word: "tiru" }, { id: "3023", word: "Tirukural" }, { id: "3024", word: "Tirukural" }, { id: "3025", word: "Tirumantiram" }, { id: "3026", word: "Tirumular" }, { id: "3027", word: "Tirumurai" }, { id: "3028", word: "Tirunavukarasu" }, { id: "3029", word: "tiruvadi" }, { id: "3030", word: "Tiruvalluvar" }, { id: "3031", word: "Tiruvasagam" }, { id: "3032", word: "tithe (tithing)" }, { id: "3033", word: "tithi" }, { id: "3034", word: "tithing vow" }, { id: "3035", word: "touchstone" }, { id: "3036", word: "trait" }, { id: "3037", word: "trance" }, { id: "3038", word: "trance mediumship" }, { id: "3039", word: "tranquil" }, { id: "3040", word: "transcend" }, { id: "3041", word: "transcendent" }, { id: "3042", word: "transcribe" }, { id: "3043", word: "transference" }, { id: "3044", word: "transfix" }, { id: "3045", word: "transgress" }, { id: "3046", word: "transient" }, { id: "3047", word: "transition" }, { id: "3048", word: "transliteration" }, { id: "3049", word: "translucent" }, { id: "3050", word: "transmigration" }, { id: "3051", word: "transmutation" }, { id: "3052", word: "traumatic" }, { id: "3053", word: "traverse" }, { id: "3054", word: "treacherous" }, { id: "3055", word: "tread" }, { id: "3056", word: "treasure-trove" }, { id: "3057", word: "treatise" }, { id: "3058", word: "trepidation" }, { id: "3059", word: "tribal" }, { id: "3060", word: "tribhanga" }, { id: "3061", word: "trickery" }, { id: "3062", word: "trident" }, { id: "3063", word: "Trikashasana" }, { id: "3064", word: "trikona" }, { id: "3065", word: "triloka" }, { id: "3066", word: "Trimukha Ganapati" }, { id: "3067", word: "Trimurti" }, { id: "3068", word: "trina" }, { id: "3069", word: "triple bondage" }, { id: "3070", word: "tripundra" }, { id: "3071", word: "trishula" }, { id: "3072", word: "Tritiyakshi" }, { id: "3073", word: "Truth" }, { id: "3074", word: "Tryakshara Ganapati" }, { id: "3075", word: "Tryambaka" }, { id: "3076", word: "Tukaram" }, { id: "3077", word: "Tulsidas (Tulasidasa)" }, { id: "3078", word: "tumult" }, { id: "3079", word: "turbulent" }, { id: "3080", word: "turiya" }, { id: "3081", word: "turiyatita" }, { id: "3082", word: "turmeric" }, { id: "3083", word: "turmoil" }, { id: "3084", word: "twitch" }, { id: "3085", word: "tyaga" }, { id: "3086", word: "Tyeif" }, { id: "3087", word: "ubiquitous" }, { id: "3088", word: "uccharana vyakhya" }, { id: "3089", word: "ucchhishta" }, { id: "3090", word: "Ucchhishta Ganapati" }, { id: "3091", word: "uchhishta" }, { id: "3092", word: "udana" }, { id: "3093", word: "udarabandha" }, { id: "3094", word: "Uddanda Ganapati" }, { id: "3095", word: "Ugrajyoti" }, { id: "3096", word: "Ujjain" }, { id: "3097", word: "ultimate" }, { id: "3098", word: "Uma" }, { id: "3099", word: "Umaganesh (Umaganesha)" }, { id: "3100", word: "Umasundari" }, { id: "3101", word: "umbilical cord" }, { id: "3102", word: "unambiguous" }, { id: "3103", word: "unbearable" }, { id: "3104", word: "unbidden" }, { id: "3105", word: "uncanny" }, { id: "3106", word: "uncomely" }, { id: "3107", word: "unconnectedness" }, { id: "3108", word: "unconscious" }, { id: "3109", word: "unconventional" }, { id: "3110", word: "uncreated" }, { id: "3111", word: "undecaying" }, { id: "3112", word: "undertaker" }, { id: "3113", word: "undifferentiated" }, { id: "3114", word: "unencumbered" }, { id: "3115", word: "unequivocal" }, { id: "3116", word: "unerring" }, { id: "3117", word: "unevolutionary perfection" }, { id: "3118", word: "unfathomable" }, { id: "3119", word: "unfettered" }, { id: "3120", word: "unfold" }, { id: "3121", word: "unfoldment" }, { id: "3122", word: "unharness" }, { id: "3123", word: "unhindered" }, { id: "3124", word: "unholy" }, { id: "3125", word: "United Nations" }, { id: "3126", word: "universal dharma" }, { id: "3127", word: "universal dissolution" }, { id: "3128", word: "universalist" }, { id: "3129", word: "unleash" }, { id: "3130", word: "unmana" }, { id: "3131", word: "unmanifest" }, { id: "3132", word: "unoriginated" }, { id: "3133", word: "unpretentiousness" }, { id: "3134", word: "unravel" }, { id: "3135", word: "unrepressed" }, { id: "3136", word: "unshrouded" }, { id: "3137", word: "unwind" }, { id: "3138", word: "upa" }, { id: "3139", word: "upadesha" }, { id: "3140", word: "upadeshi" }, { id: "3141", word: "Upagama" }, { id: "3142", word: "upagrantha" }, { id: "3143", word: "upanayana" }, { id: "3144", word: "Upanishad" }, { id: "3145", word: "upasana" }, { id: "3146", word: "upasarga" }, { id: "3147", word: "Upaveda" }, { id: "3148", word: "upaya" }, { id: "3149", word: "Urdhva Ganapati" }, { id: "3150", word: "utkutakasana" }, { id: "3151", word: "Utpaladeva" }, { id: "3152", word: "utsava" }, { id: "3153", word: "utsavaka" }, { id: "3154", word: "uttarayana" }, { id: "3155", word: "Vachana" }, { id: "3156", word: "vacillation" }, { id: "3157", word: "vacuum" }, { id: "3158", word: "vagdana" }, { id: "3159", word: "vahana" }, { id: "3160", word: "Vaidika Dharma" }, { id: "3161", word: "vaidya" }, { id: "3162", word: "vaidyuta" }, { id: "3163", word: "Vaikasi Vishakham" }, { id: "3164", word: "vaikhari vak" }, { id: "3165", word: "Vaikuntha" }, { id: "3166", word: "vairagi" }, { id: "3167", word: "vairagya" }, { id: "3168", word: "Vaisheshika" }, { id: "3169", word: "Vaishnava" }, { id: "3170", word: "Vaishnavism (Vaishnava)" }, { id: "3171", word: "Vaishnavite" }, { id: "3172", word: "vaishvanara" }, { id: "3173", word: "vaishya" }, { id: "3174", word: "vajra" }, { id: "3175", word: "vak" }, { id: "3176", word: "Vakratunda" }, { id: "3177", word: "valampuri" }, { id: "3178", word: "valipadu" }, { id: "3179", word: "Vallabhacharya" }, { id: "3180", word: "valor" }, { id: "3181", word: "vama" }, { id: "3182", word: "vanakkam" }, { id: "3183", word: "vanaprastha ashrama" }, { id: "3184", word: "vanquish" }, { id: "3185", word: "Varada Ganapati" }, { id: "3186", word: "varada mudra" }, { id: "3187", word: "Varada Vinayaka" }, { id: "3188", word: "Varaha Upanishad" }, { id: "3189", word: "Varanasi" }, { id: "3190", word: "varna" }, { id: "3191", word: "varna dharma" }, { id: "3192", word: "varnashrama dharma" }, { id: "3193", word: "vasana" }, { id: "3194", word: "vasana daha tantra" }, { id: "3195", word: "vasanachitta" }, { id: "3196", word: "Vasishtha" }, { id: "3197", word: "Vastu Shastras" }, { id: "3198", word: "Vasugupta" }, { id: "3199", word: "vata" }, { id: "3200", word: "vault" }, { id: "3201", word: "Veda" }, { id: "3202", word: "Vedanga" }, { id: "3203", word: "Vedanta" }, { id: "3204", word: "Vedantin" }, { id: "3205", word: "Vedas" }, { id: "3206", word: "Vedic astrology" }, { id: "3207", word: "Vedic-Agamic" }, { id: "3208", word: "vegetarian" }, { id: "3209", word: "vegetarianism" }, { id: "3210", word: "veggie" }, { id: "3211", word: "vehemently" }, { id: "3212", word: "veil" }, { id: "3213", word: "veiling grace" }, { id: "3214", word: "vel" }, { id: "3215", word: "Vellore" }, { id: "3216", word: "venerable" }, { id: "3217", word: "venerate" }, { id: "3218", word: "veneration" }, { id: "3219", word: "vengeful" }, { id: "3220", word: "venture" }, { id: "3221", word: "Venus" }, { id: "3222", word: "veracity" }, { id: "3223", word: "vermillion" }, { id: "3224", word: "vernacular" }, { id: "3225", word: "veshti" }, { id: "3226", word: "vestments" }, { id: "3227", word: "viable" }, { id: "3228", word: "vibhuti" }, { id: "3229", word: "vibration" }, { id: "3230", word: "vicarious" }, { id: "3231", word: "vice" }, { id: "3232", word: "victors and vanquished" }, { id: "3233", word: "vid" }, { id: "3234", word: "videhamukti" }, { id: "3235", word: "vidya" }, { id: "3236", word: "vidyarambha" }, { id: "3237", word: "Vighnaraja Ganapati" }, { id: "3238", word: "Vighneshvara" }, { id: "3239", word: "vigil" }, { id: "3240", word: "Vijaya Ganapati" }, { id: "3241", word: "Vijayanagara" }, { id: "3242", word: "vijnanamaya kosha" }, { id: "3243", word: "Vikata" }, { id: "3244", word: "vim" }, { id: "3245", word: "vina" }, { id: "3246", word: "Vinayaka" }, { id: "3247", word: "Vinayaka Ahaval" }, { id: "3248", word: "Vinayaka Vratam" }, { id: "3249", word: "Vira Ganapati" }, { id: "3250", word: "Vira Saivism (Saiva)" }, { id: "3251", word: "virginal" }, { id: "3252", word: "virility" }, { id: "3253", word: "visarjana" }, { id: "3254", word: "Vishishtadvaita" }, { id: "3255", word: "Vishnu" }, { id: "3256", word: "vishuddha chakra" }, { id: "3257", word: "vishvagrasa" }, { id: "3258", word: "Vishvaguru" }, { id: "3259", word: "visionary" }, { id: "3260", word: "vista" }, { id: "3261", word: "visualize (visualization)" }, { id: "3262", word: "vital" }, { id: "3263", word: "vital forces" }, { id: "3264", word: "vitala" }, { id: "3265", word: "vivaha" }, { id: "3266", word: "Viveka Chudamani" }, { id: "3267", word: "Viveka Martanda" }, { id: "3268", word: "Vivekananda, Swami" }, { id: "3269", word: "vivid" }, { id: "3270", word: "vivify" }, { id: "3271", word: "viz." }, { id: "3272", word: "void" }, { id: "3273", word: "voila" }, { id: "3274", word: "volition" }, { id: "3275", word: "vortex" }, { id: "3276", word: "votary" }, { id: "3277", word: "vow" }, { id: "3278", word: "vrata" }, { id: "3279", word: "vratyastoma" }, { id: "3280", word: "vriksha" }, { id: "3281", word: "vritti" }, { id: "3282", word: "Vyaghrapada" }, { id: "3283", word: "Vyakarana Vedanga" }, { id: "3284", word: "vyana" }, { id: "3285", word: "vyapini" }, { id: "3286", word: "vyomanga" }, { id: "3287", word: "waft" }, { id: "3288", word: "wallow" }, { id: "3289", word: "wane" }, { id: "3290", word: "ward off" }, { id: "3291", word: "warp and woof" }, { id: "3292", word: "waver" }, { id: "3293", word: "wealth" }, { id: "3294", word: "Weaver's Widsom" }, { id: "3295", word: "Web browsing" }, { id: "3296", word: "wedding pendant" }, { id: "3297", word: "wellspring" }, { id: "3298", word: "wet dream" }, { id: "3299", word: "whence" }, { id: "3300", word: "whirling" }, { id: "3301", word: "wield" }, { id: "3302", word: "will-o'-the-wisp" }, { id: "3303", word: "willful" }, { id: "3304", word: "willpower" }, { id: "3305", word: "winds of the body" }, { id: "3306", word: "wisdom" }, { id: "3307", word: "withholding" }, { id: "3308", word: "woeful" }, { id: "3309", word: "wondrous" }, { id: "3310", word: "wood apple" }, { id: "3311", word: "woodwind" }, { id: "3312", word: "woof" }, { id: "3313", word: "Words of Our Master" }, { id: "3314", word: "world" }, { id: "3315", word: "worldly" }, { id: "3316", word: "wrath" }, { id: "3317", word: "wrench" }, { id: "3318", word: "written prayers" }, { id: "3319", word: "wrought" }, { id: "3320", word: "yajna" }, { id: "3321", word: "Yajnavalkya" }, { id: "3322", word: "Yajnavalkya Smriti" }, { id: "3323", word: "Yajnavalkya Upanishad" }, { id: "3324", word: "yajnopavita" }, { id: "3325", word: "Yajur Veda" }, { id: "3326", word: "Yama" }, { id: "3327", word: "yama" }, { id: "3328", word: "yama-niyama" }, { id: "3329", word: "yantra" }, { id: "3330", word: "yatra" }, { id: "3331", word: "yea" }, { id: "3332", word: "yield" }, { id: "3333", word: "yin-yang" }, { id: "3334", word: "yo-yo" }, { id: "3335", word: "yoga" }, { id: "3336", word: "yoga break" }, { id: "3337", word: "Yoga Ganapati" }, { id: "3338", word: "yoga marga" }, { id: "3339", word: "yoga pada" }, { id: "3340", word: "yoga pada" }, { id: "3341", word: "Yoga Sampradaya" }, { id: "3342", word: "Yoga Sutras" }, { id: "3343", word: "yoga tapas" }, { id: "3344", word: "Yoga Vasishtha" }, { id: "3345", word: "yogadanda" }, { id: "3346", word: "Yoganathan" }, { id: "3347", word: "Yogaswami" }, { id: "3348", word: "Yogatattva Upanishad" }, { id: "3349", word: "yogi" }, { id: "3350", word: "yogini" }, { id: "3351", word: "yoke" }, { id: "3352", word: "yoking" }, { id: "3353", word: "yon" }, { id: "3354", word: "yoni" }, { id: "3355", word: "yore" }, { id: "3356", word: "young soul" }, { id: "3357", word: "yuga" }, { id: "3358", word: "Zen" }, { id: "3359", word: "zenith" }, { id: "3360", word: "Zoroastrian" }, { id: "3361", word: "Natyam" }] \ No newline at end of file diff --git a/web-modules/lexicon/elm-package.json b/web-modules/lexicon/elm-package.json deleted file mode 100755 index 7ce4ad75..00000000 --- a/web-modules/lexicon/elm-package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "version": "1.0.0", - "summary": "helpful summary of your project, less than 80 characters", - "repository": "https://github.com/user/project.git", - "license": "BSD3", - "source-directories": [ - "src" - ], - "exposed-modules": [], - "dependencies": { - "NoRedInk/elm-decode-pipeline": "3.0.0 <= v < 4.0.0", - "elm-community/json-extra": "2.7.0 <= v < 3.0.0", - "elm-community/random-extra": "2.0.0 <= v < 3.0.0", - "elm-lang/core": "5.0.0 <= v < 6.0.0", - "elm-lang/dom": "1.1.1 <= v < 2.0.0", - "elm-lang/html": "2.0.0 <= v < 3.0.0", - "elm-lang/http": "1.0.0 <= v < 2.0.0", - "elm-lang/svg": "2.0.0 <= v < 3.0.0", - "elm-lang/window": "1.0.1 <= v < 2.0.0", - "rtfeldman/elm-css": "13.1.1 <= v < 14.0.0", - "rtfeldman/elm-css-helpers": "2.1.0 <= v < 3.0.0" - }, - "elm-version": "0.18.0 <= v < 0.19.0" -} diff --git a/web-modules/lexicon/elm-package.old.json b/web-modules/lexicon/elm-package.old.json new file mode 100644 index 00000000..f5ba1c5a --- /dev/null +++ b/web-modules/lexicon/elm-package.old.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "summary": "helpful summary of your project, less than 80 characters", + "repository": "https://github.com/user/project.git", + "license": "BSD3", + "source-directories": [ + "." + ], + "exposed-modules": [], + "dependencies": { + "elm-lang/core": "5.1.1 <= v < 6.0.0", + "elm-lang/html": "2.0.0 <= v < 3.0.0" + }, + "elm-version": "0.18.0 <= v < 0.19.0" +} diff --git a/web-modules/lexicon/elm.json b/web-modules/lexicon/elm.json new file mode 100644 index 00000000..0f502a73 --- /dev/null +++ b/web-modules/lexicon/elm.json @@ -0,0 +1,35 @@ +{ + "type": "application", + "source-directories": [ + "src" + ], + "elm-version": "0.19.0", + "dependencies": { + "direct": { + "NoRedInk/elm-json-decode-pipeline": "1.0.0", + "elm/browser": "1.0.0", + "elm/core": "1.0.0", + "elm/html": "1.0.0", + "elm/http": "1.0.0", + "elm/json": "1.0.0", + "elm/random": "1.0.0", + "elm/svg": "1.0.1", + "elm-community/json-extra": "4.0.0", + "elm-community/random-extra": "3.0.0", + "rtfeldman/elm-css": "15.1.0" + }, + "indirect": { + "Skinney/murmur3": "2.0.7", + "elm/parser": "1.1.0", + "elm/time": "1.0.0", + "elm/url": "1.0.0", + "elm/virtual-dom": "1.0.2", + "rtfeldman/elm-hex": "1.0.0", + "rtfeldman/elm-iso8601-date-strings": "1.1.2" + } + }, + "test-dependencies": { + "direct": {}, + "indirect": {} + } +} \ No newline at end of file diff --git a/web-modules/lexicon/index.html b/web-modules/lexicon/index.html new file mode 100644 index 00000000..24243daf --- /dev/null +++ b/web-modules/lexicon/index.html @@ -0,0 +1,9858 @@ + + + + + Main + + + +
+ + + \ No newline at end of file diff --git a/web-modules/lexicon/src/Lexicon.elm b/web-modules/lexicon/src/Lexicon.elm index 1dae6bb2..28391dd5 100755 --- a/web-modules/lexicon/src/Lexicon.elm +++ b/web-modules/lexicon/src/Lexicon.elm @@ -1,212 +1,212 @@ -port module Lexicon exposing (..) - -import Html exposing (..) -import Http -import Json.Decode exposing (Decoder) -import Json.Decode.Pipeline exposing (..) -import Json.Encode as JE - - -port wordListReceived : (WordList -> msg) -> Sub msg - - -port wordDefinitionReceived : (WordDefinition -> msg) -> Sub msg - - -port getWordDefinition : String -> Cmd msg - - -port getWordList : () -> Cmd msg - - -type alias WordDefinition = - { id : String - , word : String - , definition : String - , seeAlso : List String - } - - -type alias Word = - { id : String - , word : String - } - - -type alias WordList = - List Word - - -type alias Model = - { wordList : Maybe WordList - , currentWord : Maybe WordDefinition - , errorMessage : Maybe String - } - - -initialModel : Model -initialModel = - { wordList = Nothing - , currentWord = Nothing - , errorMessage = Nothing - } - - -loadWordList : Cmd Msg -loadWordList = - -- let - -- url = - -- "https://dev.himalayanacademy.com/api/index.php/lexicon/words" - -- request = - -- Http.get url responseDecoder - -- in - -- Http.send HandleWordListResponse request - getWordList () - - -responseDecoder : Decoder WordList -responseDecoder = - Json.Decode.list wordDecoder - - -wordDecoder : Decoder Word -wordDecoder = - decode Word - |> required "lexicon_id" Json.Decode.string - |> required "word" Json.Decode.string - - -wordToJson : WordDefinition -> String -wordToJson word = - JE.encode 4 (wordEncoder word) - - -wordEncoder : WordDefinition -> JE.Value -wordEncoder word = - JE.object - [ ( "id", JE.string word.id ) - , ( "word", JE.string word.word ) - , ( "definition", JE.string word.definition ) - , ( "seeAlso", JE.list (List.map JE.string word.seeAlso) ) - ] - - - ---- ! WORD DEFINITION -- - - -loadWordDefinitionByWord : String -> Maybe WordList -> Cmd Msg -loadWordDefinitionByWord word wordList = - let - list = - case wordList of - Just l -> - l - - Nothing -> - [] - - found = - List.head <| List.filter (\i -> i.word == word) list - in - case found of - Just f -> - loadWordDefinition f.id - - Nothing -> - Cmd.none - - -loadWordDefinition : String -> Cmd Msg -loadWordDefinition id = - -- let - -- url = - -- "https://dev.himalayanacademy.com/api/index.php/lexicon/word/" ++ id - -- request = - -- Http.get url responseDecoderForWordDefinition - -- in - -- Http.send HandleWordDefinitionResponse request - getWordDefinition id - - -responseDecoderForWordDefinition : Decoder WordDefinition -responseDecoderForWordDefinition = - decode WordDefinition - |> required "lexicon_id" Json.Decode.string - |> required "word" Json.Decode.string - |> required "definition" Json.Decode.string - |> optional "see_also" (Json.Decode.list Json.Decode.string) [] - - -type Msg - = HandleWordListResponse (Result Http.Error WordList) - | HandleWordDefinitionResponse (Result Http.Error WordDefinition) - | WordListReceived WordList - | WordDefinitionReceived WordDefinition - - -update : Msg -> Model -> ( Model, Cmd Msg ) -update msg model = - case msg of - WordListReceived wl -> - ( { model | wordList = Just wl }, Cmd.none ) - - WordDefinitionReceived w -> - ( { model | currentWord = Just w }, Cmd.none ) - - HandleWordListResponse result -> - case result of - Ok results -> - ( { model | wordList = Just (Debug.log "wordlist:" results) }, Cmd.none ) - - Err error -> - case error of - Http.BadPayload errMsg _ -> - ( { model | errorMessage = Just errMsg }, Cmd.none ) - - _ -> - ( { model | errorMessage = Just "something happened" }, Cmd.none ) - - HandleWordDefinitionResponse result -> - case result of - Ok results -> - ( { model | currentWord = Just (Debug.log "currentWord:" results) }, Cmd.none ) - - Err error -> - case error of - Http.BadPayload errMsg _ -> - ( { model | errorMessage = Just errMsg }, Cmd.none ) - - _ -> - ( { model | errorMessage = Just "something happened" }, Cmd.none ) - - -wordListStatusView : Model -> Html Msg -wordListStatusView model = - case model.wordList of - Nothing -> - text "no data" - - Just data -> - text "received" - - -wordDefinitionView : Model -> Html Msg -wordDefinitionView model = - case model.currentWord of - Nothing -> - text "no data" - - Just entry -> - ul [] - [ li [] [ text entry.word ] - , li [] [ text entry.definition ] - ] - - -subscriptions : Sub Msg -subscriptions = - Sub.batch - [ wordListReceived (\wl -> WordListReceived wl) - , wordDefinitionReceived (\w -> WordDefinitionReceived w) - ] +port module Lexicon exposing (Model, Msg(..), Word, WordDefinition, WordList, getWordDefinition, getWordList, initialModel, loadWordDefinition, loadWordDefinitionByWord, loadWordList, responseDecoder, responseDecoderForWordDefinition, subscriptions, update, wordDecoder, wordDefinitionReceived, wordDefinitionView, wordEncoder, wordListReceived, wordListStatusView, wordToJson) + +import Html exposing (..) +import Http +import Json.Decode as Decode exposing (Decoder) +import Json.Decode.Pipeline exposing (..) +import Json.Encode as Encode + + +port wordListReceived : (WordList -> msg) -> Sub msg + + +port wordDefinitionReceived : (WordDefinition -> msg) -> Sub msg + + +port getWordDefinition : String -> Cmd msg + + +port getWordList : () -> Cmd msg + + +type alias WordDefinition = + { id : String + , word : String + , definition : String + , seeAlso : List String + } + + +type alias Word = + { id : String + , word : String + } + + +type alias WordList = + List Word + + +type alias Model = + { wordList : Maybe WordList + , currentWord : Maybe WordDefinition + , errorMessage : Maybe String + } + + +initialModel : Model +initialModel = + { wordList = Nothing + , currentWord = Nothing + , errorMessage = Nothing + } + + +loadWordList : Cmd Msg +loadWordList = + -- let + -- url = + -- "https://dev.himalayanacademy.com/api/index.php/lexicon/words" + -- request = + -- Http.get url responseDecoder + -- in + -- Http.send HandleWordListResponse request + getWordList () + + +responseDecoder : Decoder WordList +responseDecoder = + Decode.list wordDecoder + + +wordDecoder : Decoder Word +wordDecoder = + Decode.succeed Word + |> required "lexicon_id" Decode.string + |> required "word" Decode.string + + +wordToJson : WordDefinition -> String +wordToJson word = + Encode.encode 4 (wordEncoder word) + + +wordEncoder : WordDefinition -> Encode.Value +wordEncoder word = + Encode.object + [ ( "id", Encode.string word.id ) + , ( "word", Encode.string word.word ) + , ( "definition", Encode.string word.definition ) + , ( "seeAlso", Encode.list Encode.string word.seeAlso ) + ] + + + +--- ! WORD DEFINITION -- + + +loadWordDefinitionByWord : String -> Maybe WordList -> Cmd Msg +loadWordDefinitionByWord word wordList = + let + list = + case wordList of + Just l -> + l + + Nothing -> + [] + + found = + List.head <| List.filter (\i -> i.word == word) list + in + case found of + Just f -> + loadWordDefinition f.id + + Nothing -> + Cmd.none + + +loadWordDefinition : String -> Cmd Msg +loadWordDefinition id = + -- let + -- url = + -- "https://dev.himalayanacademy.com/api/index.php/lexicon/word/" ++ id + -- request = + -- Http.get url responseDecoderForWordDefinition + -- in + -- Http.send HandleWordDefinitionResponse request + getWordDefinition id + + +responseDecoderForWordDefinition : Decoder WordDefinition +responseDecoderForWordDefinition = + Decode.succeed WordDefinition + |> required "lexicon_id" Decode.string + |> required "word" Decode.string + |> required "definition" Decode.string + |> optional "see_also" (Decode.list Decode.string) [] + + +type Msg + = HandleWordListResponse (Result Http.Error WordList) + | HandleWordDefinitionResponse (Result Http.Error WordDefinition) + | WordListReceived WordList + | WordDefinitionReceived WordDefinition + + +update : Msg -> Model -> ( Model, Cmd Msg ) +update msg model = + case msg of + WordListReceived wl -> + ( { model | wordList = Just wl }, Cmd.none ) + + WordDefinitionReceived w -> + ( { model | currentWord = Just w }, Cmd.none ) + + HandleWordListResponse result -> + case result of + Ok results -> + ( { model | wordList = Just (Debug.log "wordlist:" results) }, Cmd.none ) + + Err error -> + case error of + Http.BadPayload errMsg _ -> + ( { model | errorMessage = Just errMsg }, Cmd.none ) + + _ -> + ( { model | errorMessage = Just "something happened" }, Cmd.none ) + + HandleWordDefinitionResponse result -> + case result of + Ok results -> + ( { model | currentWord = Just (Debug.log "currentWord:" results) }, Cmd.none ) + + Err error -> + case error of + Http.BadPayload errMsg _ -> + ( { model | errorMessage = Just errMsg }, Cmd.none ) + + _ -> + ( { model | errorMessage = Just "something happened" }, Cmd.none ) + + +wordListStatusView : Model -> Html Msg +wordListStatusView model = + case model.wordList of + Nothing -> + text "no data" + + Just data -> + text "received" + + +wordDefinitionView : Model -> Html Msg +wordDefinitionView model = + case model.currentWord of + Nothing -> + text "no data" + + Just entry -> + ul [] + [ li [] [ text entry.word ] + , li [] [ text entry.definition ] + ] + + +subscriptions : Sub Msg +subscriptions = + Sub.batch + [ wordListReceived (\wl -> WordListReceived wl) + , wordDefinitionReceived (\w -> WordDefinitionReceived w) + ] diff --git a/web-modules/lexicon/src/Main.elm b/web-modules/lexicon/src/Main.elm index e74aaea8..1d22dd4c 100755 --- a/web-modules/lexicon/src/Main.elm +++ b/web-modules/lexicon/src/Main.elm @@ -1,7 +1,37 @@ -port module Main exposing (..) +port module Main exposing + ( Model + , Msg(..) + , PageId(..) + , addWordItem + , appGoHome + , appGoSettings + , appNavigation + , bookmarkIconView + , definitionView + , filterWordList + , helpView + , init + , initialModel + , isSeeAlsoEmpty + , isWordSaved + , lcDebug + , loadingView + , main + , myWordsView + , pageNavigation + , removeSavedWord + , saveWord + , savedWordListChanged + , scrollTop + , searchView + , startApplication + , subscriptions + , update + , view + ) import Css exposing (..) -import Dom.Scroll as Scroll +-- import Dom.Scroll as Scroll import Html import Html.Styled exposing (..) import Html.Styled.Attributes exposing (css, href, id, src) @@ -12,6 +42,8 @@ import Random import Task import Theme.Colors exposing (..) import Theme.Elements exposing (..) +import Browser + --- PORTS --- @@ -92,6 +124,7 @@ init : WordList -> ( Model, Cmd Msg ) init wl = if List.isEmpty wl then ( initialModel, startApplication ) + else ( { initialModel | savedWords = Just wl }, startApplication ) @@ -134,6 +167,7 @@ filterWordList : String -> WordList -> WordList filterWordList word list = if String.isEmpty word then list + else List.filter (\item -> String.contains (String.toLower word) (String.toLower item.word)) list @@ -202,7 +236,7 @@ update msg model = ( model, Cmd.map LexiconMsg (Lexicon.loadWordDefinitionByWord word model.lexiconModel.wordList) ) LoadDefinitionByInt id -> - ( model, Cmd.map LexiconMsg (Lexicon.loadWordDefinition (toString id)) ) + ( model, Cmd.map LexiconMsg (Lexicon.loadWordDefinition (String.fromInt id)) ) FilterWordList wordOrPart -> ( { model | query = wordOrPart }, Cmd.none ) @@ -327,6 +361,7 @@ bookmarkIconView definition wordlist = in if isSaved then wordDefinitionIcon (SaveWord definition) "bookmark-o" + else wordDefinitionIcon (RemoveSavedWord definition) "bookmark" @@ -369,6 +404,7 @@ definitionView model = [ text word.definition ] , if isSeeAlsoEmpty word.seeAlso then div [] [] + else div [] [ takeFurther @@ -503,7 +539,7 @@ myWordsView model = main : Program WordList Model Msg main = - Html.programWithFlags + Browser.element { view = view >> toUnstyled , init = init , update = update diff --git a/web-modules/lexicon/src/Theme/Colors.elm b/web-modules/lexicon/src/Theme/Colors.elm index 9ca9ca71..3ae82568 100755 --- a/web-modules/lexicon/src/Theme/Colors.elm +++ b/web-modules/lexicon/src/Theme/Colors.elm @@ -1,48 +1,48 @@ -module Theme.Colors exposing (..) - -import Css exposing (..) - - -type alias Palette = - { white : Color - , green : Color - , lightGreen : Color - , darkGreen : Color - , blue : Color - , darkBlue : Color - , cream : Color - , lightBlue : Color - } - - -type alias ButtonTheme = - { background : Color - , active : Color - , text : Color - } - - -type alias Theme = - { palette : Palette - , button : ButtonTheme - } - - -theme : Theme -theme = - { palette = - { white = rgb 255 255 255 - , green = rgb 122 153 27 - , lightGreen = rgb 171 208 57 - , darkGreen = hex "#03697d" - , blue = rgb 46 153 174 - , darkBlue = rgb 10 70 80 - , cream = rgb 254 248 222 - , lightBlue = rgb 140 230 250 - } - , button = - { background = rgb 77 136 0 --90 158 0 - , active = rgb 57 101 0 - , text = rgb 237 237 237 - } - } +module Theme.Colors exposing (ButtonTheme, Palette, Theme, theme) + +import Css exposing (..) + + +type alias Palette = + { white : Color + , green : Color + , lightGreen : Color + , darkGreen : Color + , blue : Color + , darkBlue : Color + , cream : Color + , lightBlue : Color + } + + +type alias ButtonTheme = + { background : Color + , active : Color + , text : Color + } + + +type alias Theme = + { palette : Palette + , button : ButtonTheme + } + + +theme : Theme +theme = + { palette = + { white = rgb 255 255 255 + , green = rgb 122 153 27 + , lightGreen = rgb 171 208 57 + , darkGreen = hex "#03697d" + , blue = rgb 46 153 174 + , darkBlue = rgb 10 70 80 + , cream = rgb 254 248 222 + , lightBlue = rgb 140 230 250 + } + , button = + { background = rgb 77 136 0 --90 158 0 + , active = rgb 57 101 0 + , text = rgb 237 237 237 + } + } diff --git a/web-modules/lexicon/src/Theme/Elements.elm b/web-modules/lexicon/src/Theme/Elements.elm index 228d081a..c0d031a6 100755 --- a/web-modules/lexicon/src/Theme/Elements.elm +++ b/web-modules/lexicon/src/Theme/Elements.elm @@ -1,242 +1,244 @@ -module Theme.Elements exposing (..) - -import Css exposing (..) -import Html.Styled exposing (..) -import Html.Styled.Attributes exposing (classList, css, value) -import Html.Styled.Events exposing (..) -import Theme.Colors exposing (..) - - -navButton : Bool -> List (Attribute msg) -> List (Html msg) -> Html msg -navButton isCurrentPage = - let - bgColor = - if isCurrentPage then - theme.button.active - else - theme.button.background - in - styled button - [ flex (int 1) - , margin (px 2) - , height (px 57) - , fontSize (px 18) - , backgroundColor bgColor - , borderStyle none - , color theme.button.text - , hover - [ backgroundColor theme.button.active - ] - ] - - -toolbarButton : List (Attribute msg) -> List (Html msg) -> Html msg -toolbarButton = - styled button - [ color theme.palette.white - ] - - -bodyStyle : Style -bodyStyle = - Css.batch - [ backgroundColor theme.palette.darkGreen - , height (pct 100) - , minHeight (pct 100) - ] - - -headerStyle : Style -headerStyle = - Css.batch - [ position fixed - , top zero - , width (pct 100) - ] - - -headerTitle : Html msg -headerTitle = - div - [ css - [ textAlign center - , backgroundColor (hex "#0a4650") - , height (px 43) - , displayFlex - , flexDirection row - , alignItems center - , justifyContent center - ] - ] - [ h1 - [ css - [ fontSize (px 18) - , fontWeight bold - , color theme.palette.white - , textTransform uppercase - , margin zero - ] - ] - [ text "A Hindu Lexicon" ] - ] - - -searchHeader : msg -> Html msg -searchHeader click = - div - [ css - [ textAlign center - , fontSize (px 18) - ] - ] - [ span - [ css - [ color theme.palette.lightBlue - , display block - ] - ] - [ text "Enter a single word or part of a word" ] - , span - [ css - [ color theme.palette.lightGreen - , display block - ] - , onClick click - ] - [ text "Need help?" ] - ] - - -searchBox : (String -> msg) -> String -> Html msg -searchBox changed query = - div - [ css - [ marginTop (px 10) ] - ] - [ input - [ css - [ fontSize (px 30) - , textAlign center - , borderStyle none - , backgroundColor transparent - , color theme.palette.white - ] - , onInput changed - , value query - ] - [] - , hr - [ css - [ display block - , height zero - , border zero - , borderTop3 (px 1) solid theme.palette.white - , width (pct 80) - ] - ] - [] - ] - - -listHeader : Html msg -listHeader = - div - [ css - [ textAlign center - , fontSize (px 18) - , marginTop (px 20) - ] - ] - [ span - [ css - [ color theme.palette.lightBlue - , display block - ] - ] - [ text "Scroll the results and choose a word!" ] - , hr - [ css - [ display block - , height zero - , border zero - , borderTop3 (px 2) solid theme.palette.lightBlue - , width (pct 10) - ] - ] - [] - ] - - -fontAwesomeIcon : String -> String -> Html msg -fontAwesomeIcon name size = - i - [ classList - [ ( "fa-" ++ name, True ) - , ( "fa", True ) - , ( "fa-" ++ size, True ) - ] - ] - [] - - -icon : String -> msg -> Html msg -icon name click = - div - [ css - [ color theme.palette.white - , padding (px 5) - ] - , onClick click - ] - [ fontAwesomeIcon name "2x" ] - - -wordDefinitionIcon : msg -> String -> Html msg -wordDefinitionIcon click name = - div - [ css - [ color theme.palette.lightGreen - , padding (px 5) - ] - , onClick click - ] - [ fontAwesomeIcon name "lg" ] - - -seeAlso : msg -> String -> Html msg -seeAlso click word = - if String.length word == 0 then - span [] [] - else - button - [ css - [ backgroundColor theme.button.background - , color theme.palette.white - , borderRadius (px 8) - , padding (px 10) - , fontSize (px 20) - , margin (px 10) - , borderStyle none - ] - , onClick click - ] - [ text word ] - - -takeFurther : Html msg -takeFurther = - div - [ css - [ textAlign center - , fontSize (px 18) - , marginTop (px 20) - ] - ] - [ span - [ css - [ color theme.palette.lightBlue - , display block - ] - ] - [ text "Go for a word adventure:" ] - ] +module Theme.Elements exposing (bodyStyle, fontAwesomeIcon, headerStyle, headerTitle, icon, listHeader, navButton, searchBox, searchHeader, seeAlso, takeFurther, toolbarButton, wordDefinitionIcon) + +import Css exposing (..) +import Html.Styled exposing (..) +import Html.Styled.Attributes exposing (classList, css, value) +import Html.Styled.Events exposing (..) +import Theme.Colors exposing (..) + + +navButton : Bool -> List (Attribute msg) -> List (Html msg) -> Html msg +navButton isCurrentPage = + let + bgColor = + if isCurrentPage then + theme.button.active + + else + theme.button.background + in + styled button + [ flex (int 1) + , margin (px 2) + , height (px 57) + , fontSize (px 18) + , backgroundColor bgColor + , borderStyle none + , color theme.button.text + , hover + [ backgroundColor theme.button.active + ] + ] + + +toolbarButton : List (Attribute msg) -> List (Html msg) -> Html msg +toolbarButton = + styled button + [ color theme.palette.white + ] + + +bodyStyle : Style +bodyStyle = + Css.batch + [ backgroundColor theme.palette.darkGreen + , height (pct 100) + , minHeight (pct 100) + ] + + +headerStyle : Style +headerStyle = + Css.batch + [ position fixed + , top zero + , width (pct 100) + ] + + +headerTitle : Html msg +headerTitle = + div + [ css + [ textAlign center + , backgroundColor (hex "#0a4650") + , height (px 43) + , displayFlex + , flexDirection row + , alignItems center + , justifyContent center + ] + ] + [ h1 + [ css + [ fontSize (px 18) + , fontWeight bold + , color theme.palette.white + , textTransform uppercase + , margin zero + ] + ] + [ text "A Hindu Lexicon" ] + ] + + +searchHeader : msg -> Html msg +searchHeader click = + div + [ css + [ textAlign center + , fontSize (px 18) + ] + ] + [ span + [ css + [ color theme.palette.lightBlue + , display block + ] + ] + [ text "Enter a single word or part of a word" ] + , span + [ css + [ color theme.palette.lightGreen + , display block + ] + , onClick click + ] + [ text "Need help?" ] + ] + + +searchBox : (String -> msg) -> String -> Html msg +searchBox changed query = + div + [ css + [ marginTop (px 10) ] + ] + [ input + [ css + [ fontSize (px 30) + , textAlign center + , borderStyle none + , backgroundColor transparent + , color theme.palette.white + ] + , onInput changed + , value query + ] + [] + , hr + [ css + [ display block + , height zero + , border zero + , borderTop3 (px 1) solid theme.palette.white + , width (pct 80) + ] + ] + [] + ] + + +listHeader : Html msg +listHeader = + div + [ css + [ textAlign center + , fontSize (px 18) + , marginTop (px 20) + ] + ] + [ span + [ css + [ color theme.palette.lightBlue + , display block + ] + ] + [ text "Scroll the results and choose a word!" ] + , hr + [ css + [ display block + , height zero + , border zero + , borderTop3 (px 2) solid theme.palette.lightBlue + , width (pct 10) + ] + ] + [] + ] + + +fontAwesomeIcon : String -> String -> Html msg +fontAwesomeIcon name size = + i + [ classList + [ ( "fa-" ++ name, True ) + , ( "fa", True ) + , ( "fa-" ++ size, True ) + ] + ] + [] + + +icon : String -> msg -> Html msg +icon name click = + div + [ css + [ color theme.palette.white + , padding (px 5) + ] + , onClick click + ] + [ fontAwesomeIcon name "2x" ] + + +wordDefinitionIcon : msg -> String -> Html msg +wordDefinitionIcon click name = + div + [ css + [ color theme.palette.lightGreen + , padding (px 5) + ] + , onClick click + ] + [ fontAwesomeIcon name "lg" ] + + +seeAlso : msg -> String -> Html msg +seeAlso click word = + if String.length word == 0 then + span [] [] + + else + button + [ css + [ backgroundColor theme.button.background + , color theme.palette.white + , borderRadius (px 8) + , padding (px 10) + , fontSize (px 20) + , margin (px 10) + , borderStyle none + ] + , onClick click + ] + [ text word ] + + +takeFurther : Html msg +takeFurther = + div + [ css + [ textAlign center + , fontSize (px 18) + , marginTop (px 20) + ] + ] + [ span + [ css + [ color theme.palette.lightBlue + , display block + ] + ] + [ text "Go for a word adventure:" ] + ] From c1dac31aa085a07f0a4840e8208fe896ef4de80d Mon Sep 17 00:00:00 2001 From: andre alves garzia Date: Wed, 19 Sep 2018 00:30:53 +0100 Subject: [PATCH 2/4] building new version --- modules/lexicon/web/bundle.js | 27596 +++++++++---------------- modules/lexicon/web/elm-package.json | 15 + modules/lexicon/web/index.js | 5 +- web-modules/lexicon/build/bundle.js | 1349 +- web-modules/lexicon/deploy.bat | 4 + web-modules/lexicon/make.bat | 3 + web-modules/lexicon/src/Lexicon.elm | 4 +- 7 files changed, 10498 insertions(+), 18478 deletions(-) create mode 100644 modules/lexicon/web/elm-package.json create mode 100644 web-modules/lexicon/deploy.bat create mode 100644 web-modules/lexicon/make.bat diff --git a/modules/lexicon/web/bundle.js b/modules/lexicon/web/bundle.js index 546de2cc..914de8b1 100755 --- a/modules/lexicon/web/bundle.js +++ b/modules/lexicon/web/bundle.js @@ -1,17786 +1,9810 @@ - -(function() { -'use strict'; - -function F2(fun) -{ - function wrapper(a) { return function(b) { return fun(a,b); }; } - wrapper.arity = 2; - wrapper.func = fun; - return wrapper; -} - -function F3(fun) -{ - function wrapper(a) { - return function(b) { return function(c) { return fun(a, b, c); }; }; - } - wrapper.arity = 3; - wrapper.func = fun; - return wrapper; -} - -function F4(fun) -{ - function wrapper(a) { return function(b) { return function(c) { - return function(d) { return fun(a, b, c, d); }; }; }; - } - wrapper.arity = 4; - wrapper.func = fun; - return wrapper; -} - -function F5(fun) -{ - function wrapper(a) { return function(b) { return function(c) { - return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; }; - } - wrapper.arity = 5; - wrapper.func = fun; - return wrapper; -} - -function F6(fun) -{ - function wrapper(a) { return function(b) { return function(c) { - return function(d) { return function(e) { return function(f) { - return fun(a, b, c, d, e, f); }; }; }; }; }; - } - wrapper.arity = 6; - wrapper.func = fun; - return wrapper; -} - -function F7(fun) -{ - function wrapper(a) { return function(b) { return function(c) { - return function(d) { return function(e) { return function(f) { - return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; }; - } - wrapper.arity = 7; - wrapper.func = fun; - return wrapper; -} - -function F8(fun) -{ - function wrapper(a) { return function(b) { return function(c) { - return function(d) { return function(e) { return function(f) { - return function(g) { return function(h) { - return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; }; - } - wrapper.arity = 8; - wrapper.func = fun; - return wrapper; -} - -function F9(fun) -{ - function wrapper(a) { return function(b) { return function(c) { - return function(d) { return function(e) { return function(f) { - return function(g) { return function(h) { return function(i) { - return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; }; - } - wrapper.arity = 9; - wrapper.func = fun; - return wrapper; -} - -function A2(fun, a, b) -{ - return fun.arity === 2 - ? fun.func(a, b) - : fun(a)(b); -} -function A3(fun, a, b, c) -{ - return fun.arity === 3 - ? fun.func(a, b, c) - : fun(a)(b)(c); -} -function A4(fun, a, b, c, d) -{ - return fun.arity === 4 - ? fun.func(a, b, c, d) - : fun(a)(b)(c)(d); -} -function A5(fun, a, b, c, d, e) -{ - return fun.arity === 5 - ? fun.func(a, b, c, d, e) - : fun(a)(b)(c)(d)(e); -} -function A6(fun, a, b, c, d, e, f) -{ - return fun.arity === 6 - ? fun.func(a, b, c, d, e, f) - : fun(a)(b)(c)(d)(e)(f); -} -function A7(fun, a, b, c, d, e, f, g) -{ - return fun.arity === 7 - ? fun.func(a, b, c, d, e, f, g) - : fun(a)(b)(c)(d)(e)(f)(g); -} -function A8(fun, a, b, c, d, e, f, g, h) -{ - return fun.arity === 8 - ? fun.func(a, b, c, d, e, f, g, h) - : fun(a)(b)(c)(d)(e)(f)(g)(h); -} -function A9(fun, a, b, c, d, e, f, g, h, i) -{ - return fun.arity === 9 - ? fun.func(a, b, c, d, e, f, g, h, i) - : fun(a)(b)(c)(d)(e)(f)(g)(h)(i); -} - -//import Native.List // - -var _elm_lang$core$Native_Array = function() { - -// A RRB-Tree has two distinct data types. -// Leaf -> "height" is always 0 -// "table" is an array of elements -// Node -> "height" is always greater than 0 -// "table" is an array of child nodes -// "lengths" is an array of accumulated lengths of the child nodes - -// M is the maximal table size. 32 seems fast. E is the allowed increase -// of search steps when concatting to find an index. Lower values will -// decrease balancing, but will increase search steps. -var M = 32; -var E = 2; - -// An empty array. -var empty = { - ctor: '_Array', - height: 0, - table: [] -}; - - -function get(i, array) -{ - if (i < 0 || i >= length(array)) - { - throw new Error( - 'Index ' + i + ' is out of range. Check the length of ' + - 'your array first or use getMaybe or getWithDefault.'); - } - return unsafeGet(i, array); -} - - -function unsafeGet(i, array) -{ - for (var x = array.height; x > 0; x--) - { - var slot = i >> (x * 5); - while (array.lengths[slot] <= i) - { - slot++; - } - if (slot > 0) - { - i -= array.lengths[slot - 1]; - } - array = array.table[slot]; - } - return array.table[i]; -} - - -// Sets the value at the index i. Only the nodes leading to i will get -// copied and updated. -function set(i, item, array) -{ - if (i < 0 || length(array) <= i) - { - return array; - } - return unsafeSet(i, item, array); -} - - -function unsafeSet(i, item, array) -{ - array = nodeCopy(array); - - if (array.height === 0) - { - array.table[i] = item; - } - else - { - var slot = getSlot(i, array); - if (slot > 0) - { - i -= array.lengths[slot - 1]; - } - array.table[slot] = unsafeSet(i, item, array.table[slot]); - } - return array; -} - - -function initialize(len, f) -{ - if (len <= 0) - { - return empty; - } - var h = Math.floor( Math.log(len) / Math.log(M) ); - return initialize_(f, h, 0, len); -} - -function initialize_(f, h, from, to) -{ - if (h === 0) - { - var table = new Array((to - from) % (M + 1)); - for (var i = 0; i < table.length; i++) - { - table[i] = f(from + i); - } - return { - ctor: '_Array', - height: 0, - table: table - }; - } - - var step = Math.pow(M, h); - var table = new Array(Math.ceil((to - from) / step)); - var lengths = new Array(table.length); - for (var i = 0; i < table.length; i++) - { - table[i] = initialize_(f, h - 1, from + (i * step), Math.min(from + ((i + 1) * step), to)); - lengths[i] = length(table[i]) + (i > 0 ? lengths[i-1] : 0); - } - return { - ctor: '_Array', - height: h, - table: table, - lengths: lengths - }; -} - -function fromList(list) -{ - if (list.ctor === '[]') - { - return empty; - } - - // Allocate M sized blocks (table) and write list elements to it. - var table = new Array(M); - var nodes = []; - var i = 0; - - while (list.ctor !== '[]') - { - table[i] = list._0; - list = list._1; - i++; - - // table is full, so we can push a leaf containing it into the - // next node. - if (i === M) - { - var leaf = { - ctor: '_Array', - height: 0, - table: table - }; - fromListPush(leaf, nodes); - table = new Array(M); - i = 0; - } - } - - // Maybe there is something left on the table. - if (i > 0) - { - var leaf = { - ctor: '_Array', - height: 0, - table: table.splice(0, i) - }; - fromListPush(leaf, nodes); - } - - // Go through all of the nodes and eventually push them into higher nodes. - for (var h = 0; h < nodes.length - 1; h++) - { - if (nodes[h].table.length > 0) - { - fromListPush(nodes[h], nodes); - } - } - - var head = nodes[nodes.length - 1]; - if (head.height > 0 && head.table.length === 1) - { - return head.table[0]; - } - else - { - return head; - } -} - -// Push a node into a higher node as a child. -function fromListPush(toPush, nodes) -{ - var h = toPush.height; - - // Maybe the node on this height does not exist. - if (nodes.length === h) - { - var node = { - ctor: '_Array', - height: h + 1, - table: [], - lengths: [] - }; - nodes.push(node); - } - - nodes[h].table.push(toPush); - var len = length(toPush); - if (nodes[h].lengths.length > 0) - { - len += nodes[h].lengths[nodes[h].lengths.length - 1]; - } - nodes[h].lengths.push(len); - - if (nodes[h].table.length === M) - { - fromListPush(nodes[h], nodes); - nodes[h] = { - ctor: '_Array', - height: h + 1, - table: [], - lengths: [] - }; - } -} - -// Pushes an item via push_ to the bottom right of a tree. -function push(item, a) -{ - var pushed = push_(item, a); - if (pushed !== null) - { - return pushed; - } - - var newTree = create(item, a.height); - return siblise(a, newTree); -} - -// Recursively tries to push an item to the bottom-right most -// tree possible. If there is no space left for the item, -// null will be returned. -function push_(item, a) -{ - // Handle resursion stop at leaf level. - if (a.height === 0) - { - if (a.table.length < M) - { - var newA = { - ctor: '_Array', - height: 0, - table: a.table.slice() - }; - newA.table.push(item); - return newA; - } - else - { - return null; - } - } - - // Recursively push - var pushed = push_(item, botRight(a)); - - // There was space in the bottom right tree, so the slot will - // be updated. - if (pushed !== null) - { - var newA = nodeCopy(a); - newA.table[newA.table.length - 1] = pushed; - newA.lengths[newA.lengths.length - 1]++; - return newA; - } - - // When there was no space left, check if there is space left - // for a new slot with a tree which contains only the item - // at the bottom. - if (a.table.length < M) - { - var newSlot = create(item, a.height - 1); - var newA = nodeCopy(a); - newA.table.push(newSlot); - newA.lengths.push(newA.lengths[newA.lengths.length - 1] + length(newSlot)); - return newA; - } - else - { - return null; - } -} - -// Converts an array into a list of elements. -function toList(a) -{ - return toList_(_elm_lang$core$Native_List.Nil, a); -} - -function toList_(list, a) -{ - for (var i = a.table.length - 1; i >= 0; i--) - { - list = - a.height === 0 - ? _elm_lang$core$Native_List.Cons(a.table[i], list) - : toList_(list, a.table[i]); - } - return list; -} - -// Maps a function over the elements of an array. -function map(f, a) -{ - var newA = { - ctor: '_Array', - height: a.height, - table: new Array(a.table.length) - }; - if (a.height > 0) - { - newA.lengths = a.lengths; - } - for (var i = 0; i < a.table.length; i++) - { - newA.table[i] = - a.height === 0 - ? f(a.table[i]) - : map(f, a.table[i]); - } - return newA; -} - -// Maps a function over the elements with their index as first argument. -function indexedMap(f, a) -{ - return indexedMap_(f, a, 0); -} - -function indexedMap_(f, a, from) -{ - var newA = { - ctor: '_Array', - height: a.height, - table: new Array(a.table.length) - }; - if (a.height > 0) - { - newA.lengths = a.lengths; - } - for (var i = 0; i < a.table.length; i++) - { - newA.table[i] = - a.height === 0 - ? A2(f, from + i, a.table[i]) - : indexedMap_(f, a.table[i], i == 0 ? from : from + a.lengths[i - 1]); - } - return newA; -} - -function foldl(f, b, a) -{ - if (a.height === 0) - { - for (var i = 0; i < a.table.length; i++) - { - b = A2(f, a.table[i], b); - } - } - else - { - for (var i = 0; i < a.table.length; i++) - { - b = foldl(f, b, a.table[i]); - } - } - return b; -} - -function foldr(f, b, a) -{ - if (a.height === 0) - { - for (var i = a.table.length; i--; ) - { - b = A2(f, a.table[i], b); - } - } - else - { - for (var i = a.table.length; i--; ) - { - b = foldr(f, b, a.table[i]); - } - } - return b; -} - -// TODO: currently, it slices the right, then the left. This can be -// optimized. -function slice(from, to, a) -{ - if (from < 0) - { - from += length(a); - } - if (to < 0) - { - to += length(a); - } - return sliceLeft(from, sliceRight(to, a)); -} - -function sliceRight(to, a) -{ - if (to === length(a)) - { - return a; - } - - // Handle leaf level. - if (a.height === 0) - { - var newA = { ctor:'_Array', height:0 }; - newA.table = a.table.slice(0, to); - return newA; - } - - // Slice the right recursively. - var right = getSlot(to, a); - var sliced = sliceRight(to - (right > 0 ? a.lengths[right - 1] : 0), a.table[right]); - - // Maybe the a node is not even needed, as sliced contains the whole slice. - if (right === 0) - { - return sliced; - } - - // Create new node. - var newA = { - ctor: '_Array', - height: a.height, - table: a.table.slice(0, right), - lengths: a.lengths.slice(0, right) - }; - if (sliced.table.length > 0) - { - newA.table[right] = sliced; - newA.lengths[right] = length(sliced) + (right > 0 ? newA.lengths[right - 1] : 0); - } - return newA; -} - -function sliceLeft(from, a) -{ - if (from === 0) - { - return a; - } - - // Handle leaf level. - if (a.height === 0) - { - var newA = { ctor:'_Array', height:0 }; - newA.table = a.table.slice(from, a.table.length + 1); - return newA; - } - - // Slice the left recursively. - var left = getSlot(from, a); - var sliced = sliceLeft(from - (left > 0 ? a.lengths[left - 1] : 0), a.table[left]); - - // Maybe the a node is not even needed, as sliced contains the whole slice. - if (left === a.table.length - 1) - { - return sliced; - } - - // Create new node. - var newA = { - ctor: '_Array', - height: a.height, - table: a.table.slice(left, a.table.length + 1), - lengths: new Array(a.table.length - left) - }; - newA.table[0] = sliced; - var len = 0; - for (var i = 0; i < newA.table.length; i++) - { - len += length(newA.table[i]); - newA.lengths[i] = len; - } - - return newA; -} - -// Appends two trees. -function append(a,b) -{ - if (a.table.length === 0) - { - return b; - } - if (b.table.length === 0) - { - return a; - } - - var c = append_(a, b); - - // Check if both nodes can be crunshed together. - if (c[0].table.length + c[1].table.length <= M) - { - if (c[0].table.length === 0) - { - return c[1]; - } - if (c[1].table.length === 0) - { - return c[0]; - } - - // Adjust .table and .lengths - c[0].table = c[0].table.concat(c[1].table); - if (c[0].height > 0) - { - var len = length(c[0]); - for (var i = 0; i < c[1].lengths.length; i++) - { - c[1].lengths[i] += len; - } - c[0].lengths = c[0].lengths.concat(c[1].lengths); - } - - return c[0]; - } - - if (c[0].height > 0) - { - var toRemove = calcToRemove(a, b); - if (toRemove > E) - { - c = shuffle(c[0], c[1], toRemove); - } - } - - return siblise(c[0], c[1]); -} - -// Returns an array of two nodes; right and left. One node _may_ be empty. -function append_(a, b) -{ - if (a.height === 0 && b.height === 0) - { - return [a, b]; - } - - if (a.height !== 1 || b.height !== 1) - { - if (a.height === b.height) - { - a = nodeCopy(a); - b = nodeCopy(b); - var appended = append_(botRight(a), botLeft(b)); - - insertRight(a, appended[1]); - insertLeft(b, appended[0]); - } - else if (a.height > b.height) - { - a = nodeCopy(a); - var appended = append_(botRight(a), b); - - insertRight(a, appended[0]); - b = parentise(appended[1], appended[1].height + 1); - } - else - { - b = nodeCopy(b); - var appended = append_(a, botLeft(b)); - - var left = appended[0].table.length === 0 ? 0 : 1; - var right = left === 0 ? 1 : 0; - insertLeft(b, appended[left]); - a = parentise(appended[right], appended[right].height + 1); - } - } - - // Check if balancing is needed and return based on that. - if (a.table.length === 0 || b.table.length === 0) - { - return [a, b]; - } - - var toRemove = calcToRemove(a, b); - if (toRemove <= E) - { - return [a, b]; - } - return shuffle(a, b, toRemove); -} - -// Helperfunctions for append_. Replaces a child node at the side of the parent. -function insertRight(parent, node) -{ - var index = parent.table.length - 1; - parent.table[index] = node; - parent.lengths[index] = length(node); - parent.lengths[index] += index > 0 ? parent.lengths[index - 1] : 0; -} - -function insertLeft(parent, node) -{ - if (node.table.length > 0) - { - parent.table[0] = node; - parent.lengths[0] = length(node); - - var len = length(parent.table[0]); - for (var i = 1; i < parent.lengths.length; i++) - { - len += length(parent.table[i]); - parent.lengths[i] = len; - } - } - else - { - parent.table.shift(); - for (var i = 1; i < parent.lengths.length; i++) - { - parent.lengths[i] = parent.lengths[i] - parent.lengths[0]; - } - parent.lengths.shift(); - } -} - -// Returns the extra search steps for E. Refer to the paper. -function calcToRemove(a, b) -{ - var subLengths = 0; - for (var i = 0; i < a.table.length; i++) - { - subLengths += a.table[i].table.length; - } - for (var i = 0; i < b.table.length; i++) - { - subLengths += b.table[i].table.length; - } - - var toRemove = a.table.length + b.table.length; - return toRemove - (Math.floor((subLengths - 1) / M) + 1); -} - -// get2, set2 and saveSlot are helpers for accessing elements over two arrays. -function get2(a, b, index) -{ - return index < a.length - ? a[index] - : b[index - a.length]; -} - -function set2(a, b, index, value) -{ - if (index < a.length) - { - a[index] = value; - } - else - { - b[index - a.length] = value; - } -} - -function saveSlot(a, b, index, slot) -{ - set2(a.table, b.table, index, slot); - - var l = (index === 0 || index === a.lengths.length) - ? 0 - : get2(a.lengths, a.lengths, index - 1); - - set2(a.lengths, b.lengths, index, l + length(slot)); -} - -// Creates a node or leaf with a given length at their arrays for perfomance. -// Is only used by shuffle. -function createNode(h, length) -{ - if (length < 0) - { - length = 0; - } - var a = { - ctor: '_Array', - height: h, - table: new Array(length) - }; - if (h > 0) - { - a.lengths = new Array(length); - } - return a; -} - -// Returns an array of two balanced nodes. -function shuffle(a, b, toRemove) -{ - var newA = createNode(a.height, Math.min(M, a.table.length + b.table.length - toRemove)); - var newB = createNode(a.height, newA.table.length - (a.table.length + b.table.length - toRemove)); - - // Skip the slots with size M. More precise: copy the slot references - // to the new node - var read = 0; - while (get2(a.table, b.table, read).table.length % M === 0) - { - set2(newA.table, newB.table, read, get2(a.table, b.table, read)); - set2(newA.lengths, newB.lengths, read, get2(a.lengths, b.lengths, read)); - read++; - } - - // Pulling items from left to right, caching in a slot before writing - // it into the new nodes. - var write = read; - var slot = new createNode(a.height - 1, 0); - var from = 0; - - // If the current slot is still containing data, then there will be at - // least one more write, so we do not break this loop yet. - while (read - write - (slot.table.length > 0 ? 1 : 0) < toRemove) - { - // Find out the max possible items for copying. - var source = get2(a.table, b.table, read); - var to = Math.min(M - slot.table.length, source.table.length); - - // Copy and adjust size table. - slot.table = slot.table.concat(source.table.slice(from, to)); - if (slot.height > 0) - { - var len = slot.lengths.length; - for (var i = len; i < len + to - from; i++) - { - slot.lengths[i] = length(slot.table[i]); - slot.lengths[i] += (i > 0 ? slot.lengths[i - 1] : 0); - } - } - - from += to; - - // Only proceed to next slots[i] if the current one was - // fully copied. - if (source.table.length <= to) - { - read++; from = 0; - } - - // Only create a new slot if the current one is filled up. - if (slot.table.length === M) - { - saveSlot(newA, newB, write, slot); - slot = createNode(a.height - 1, 0); - write++; - } - } - - // Cleanup after the loop. Copy the last slot into the new nodes. - if (slot.table.length > 0) - { - saveSlot(newA, newB, write, slot); - write++; - } - - // Shift the untouched slots to the left - while (read < a.table.length + b.table.length ) - { - saveSlot(newA, newB, write, get2(a.table, b.table, read)); - read++; - write++; - } - - return [newA, newB]; -} - -// Navigation functions -function botRight(a) -{ - return a.table[a.table.length - 1]; -} -function botLeft(a) -{ - return a.table[0]; -} - -// Copies a node for updating. Note that you should not use this if -// only updating only one of "table" or "lengths" for performance reasons. -function nodeCopy(a) -{ - var newA = { - ctor: '_Array', - height: a.height, - table: a.table.slice() - }; - if (a.height > 0) - { - newA.lengths = a.lengths.slice(); - } - return newA; -} - -// Returns how many items are in the tree. -function length(array) -{ - if (array.height === 0) - { - return array.table.length; - } - else - { - return array.lengths[array.lengths.length - 1]; - } -} - -// Calculates in which slot of "table" the item probably is, then -// find the exact slot via forward searching in "lengths". Returns the index. -function getSlot(i, a) -{ - var slot = i >> (5 * a.height); - while (a.lengths[slot] <= i) - { - slot++; - } - return slot; -} - -// Recursively creates a tree with a given height containing -// only the given item. -function create(item, h) -{ - if (h === 0) - { - return { - ctor: '_Array', - height: 0, - table: [item] - }; - } - return { - ctor: '_Array', - height: h, - table: [create(item, h - 1)], - lengths: [1] - }; -} - -// Recursively creates a tree that contains the given tree. -function parentise(tree, h) -{ - if (h === tree.height) - { - return tree; - } - - return { - ctor: '_Array', - height: h, - table: [parentise(tree, h - 1)], - lengths: [length(tree)] - }; -} - -// Emphasizes blood brotherhood beneath two trees. -function siblise(a, b) -{ - return { - ctor: '_Array', - height: a.height + 1, - table: [a, b], - lengths: [length(a), length(a) + length(b)] - }; -} - -function toJSArray(a) -{ - var jsArray = new Array(length(a)); - toJSArray_(jsArray, 0, a); - return jsArray; -} - -function toJSArray_(jsArray, i, a) -{ - for (var t = 0; t < a.table.length; t++) - { - if (a.height === 0) - { - jsArray[i + t] = a.table[t]; - } - else - { - var inc = t === 0 ? 0 : a.lengths[t - 1]; - toJSArray_(jsArray, i + inc, a.table[t]); - } - } -} - -function fromJSArray(jsArray) -{ - if (jsArray.length === 0) - { - return empty; - } - var h = Math.floor(Math.log(jsArray.length) / Math.log(M)); - return fromJSArray_(jsArray, h, 0, jsArray.length); -} - -function fromJSArray_(jsArray, h, from, to) -{ - if (h === 0) - { - return { - ctor: '_Array', - height: 0, - table: jsArray.slice(from, to) - }; - } - - var step = Math.pow(M, h); - var table = new Array(Math.ceil((to - from) / step)); - var lengths = new Array(table.length); - for (var i = 0; i < table.length; i++) - { - table[i] = fromJSArray_(jsArray, h - 1, from + (i * step), Math.min(from + ((i + 1) * step), to)); - lengths[i] = length(table[i]) + (i > 0 ? lengths[i - 1] : 0); - } - return { - ctor: '_Array', - height: h, - table: table, - lengths: lengths - }; -} - -return { - empty: empty, - fromList: fromList, - toList: toList, - initialize: F2(initialize), - append: F2(append), - push: F2(push), - slice: F3(slice), - get: F2(get), - set: F3(set), - map: F2(map), - indexedMap: F2(indexedMap), - foldl: F3(foldl), - foldr: F3(foldr), - length: length, - - toJSArray: toJSArray, - fromJSArray: fromJSArray -}; - -}(); -//import Native.Utils // - -var _elm_lang$core$Native_Basics = function() { - -function div(a, b) -{ - return (a / b) | 0; -} -function rem(a, b) -{ - return a % b; -} -function mod(a, b) -{ - if (b === 0) - { - throw new Error('Cannot perform mod 0. Division by zero error.'); - } - var r = a % b; - var m = a === 0 ? 0 : (b > 0 ? (a >= 0 ? r : r + b) : -mod(-a, -b)); - - return m === b ? 0 : m; -} -function logBase(base, n) -{ - return Math.log(n) / Math.log(base); -} -function negate(n) -{ - return -n; -} -function abs(n) -{ - return n < 0 ? -n : n; -} - -function min(a, b) -{ - return _elm_lang$core$Native_Utils.cmp(a, b) < 0 ? a : b; -} -function max(a, b) -{ - return _elm_lang$core$Native_Utils.cmp(a, b) > 0 ? a : b; -} -function clamp(lo, hi, n) -{ - return _elm_lang$core$Native_Utils.cmp(n, lo) < 0 - ? lo - : _elm_lang$core$Native_Utils.cmp(n, hi) > 0 - ? hi - : n; -} - -var ord = ['LT', 'EQ', 'GT']; - -function compare(x, y) -{ - return { ctor: ord[_elm_lang$core$Native_Utils.cmp(x, y) + 1] }; -} - -function xor(a, b) -{ - return a !== b; -} -function not(b) -{ - return !b; -} -function isInfinite(n) -{ - return n === Infinity || n === -Infinity; -} - -function truncate(n) -{ - return n | 0; -} - -function degrees(d) -{ - return d * Math.PI / 180; -} -function turns(t) -{ - return 2 * Math.PI * t; -} -function fromPolar(point) -{ - var r = point._0; - var t = point._1; - return _elm_lang$core$Native_Utils.Tuple2(r * Math.cos(t), r * Math.sin(t)); -} -function toPolar(point) -{ - var x = point._0; - var y = point._1; - return _elm_lang$core$Native_Utils.Tuple2(Math.sqrt(x * x + y * y), Math.atan2(y, x)); -} - -return { - div: F2(div), - rem: F2(rem), - mod: F2(mod), - - pi: Math.PI, - e: Math.E, - cos: Math.cos, - sin: Math.sin, - tan: Math.tan, - acos: Math.acos, - asin: Math.asin, - atan: Math.atan, - atan2: F2(Math.atan2), - - degrees: degrees, - turns: turns, - fromPolar: fromPolar, - toPolar: toPolar, - - sqrt: Math.sqrt, - logBase: F2(logBase), - negate: negate, - abs: abs, - min: F2(min), - max: F2(max), - clamp: F3(clamp), - compare: F2(compare), - - xor: F2(xor), - not: not, - - truncate: truncate, - ceiling: Math.ceil, - floor: Math.floor, - round: Math.round, - toFloat: function(x) { return x; }, - isNaN: isNaN, - isInfinite: isInfinite -}; - -}(); -//import // - -var _elm_lang$core$Native_Utils = function() { - -// COMPARISONS - -function eq(x, y) -{ - var stack = []; - var isEqual = eqHelp(x, y, 0, stack); - var pair; - while (isEqual && (pair = stack.pop())) - { - isEqual = eqHelp(pair.x, pair.y, 0, stack); - } - return isEqual; -} - - -function eqHelp(x, y, depth, stack) -{ - if (depth > 100) - { - stack.push({ x: x, y: y }); - return true; - } - - if (x === y) - { - return true; - } - - if (typeof x !== 'object') - { - if (typeof x === 'function') - { - throw new Error( - 'Trying to use `(==)` on functions. There is no way to know if functions are "the same" in the Elm sense.' - + ' Read more about this at http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#==' - + ' which describes why it is this way and what the better version will look like.' - ); - } - return false; - } - - if (x === null || y === null) - { - return false - } - - if (x instanceof Date) - { - return x.getTime() === y.getTime(); - } - - if (!('ctor' in x)) - { - for (var key in x) - { - if (!eqHelp(x[key], y[key], depth + 1, stack)) - { - return false; - } - } - return true; - } - - // convert Dicts and Sets to lists - if (x.ctor === 'RBNode_elm_builtin' || x.ctor === 'RBEmpty_elm_builtin') - { - x = _elm_lang$core$Dict$toList(x); - y = _elm_lang$core$Dict$toList(y); - } - if (x.ctor === 'Set_elm_builtin') - { - x = _elm_lang$core$Set$toList(x); - y = _elm_lang$core$Set$toList(y); - } - - // check if lists are equal without recursion - if (x.ctor === '::') - { - var a = x; - var b = y; - while (a.ctor === '::' && b.ctor === '::') - { - if (!eqHelp(a._0, b._0, depth + 1, stack)) - { - return false; - } - a = a._1; - b = b._1; - } - return a.ctor === b.ctor; - } - - // check if Arrays are equal - if (x.ctor === '_Array') - { - var xs = _elm_lang$core$Native_Array.toJSArray(x); - var ys = _elm_lang$core$Native_Array.toJSArray(y); - if (xs.length !== ys.length) - { - return false; - } - for (var i = 0; i < xs.length; i++) - { - if (!eqHelp(xs[i], ys[i], depth + 1, stack)) - { - return false; - } - } - return true; - } - - if (!eqHelp(x.ctor, y.ctor, depth + 1, stack)) - { - return false; - } - - for (var key in x) - { - if (!eqHelp(x[key], y[key], depth + 1, stack)) - { - return false; - } - } - return true; -} - -// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on -// the particular integer values assigned to LT, EQ, and GT. - -var LT = -1, EQ = 0, GT = 1; - -function cmp(x, y) -{ - if (typeof x !== 'object') - { - return x === y ? EQ : x < y ? LT : GT; - } - - if (x instanceof String) - { - var a = x.valueOf(); - var b = y.valueOf(); - return a === b ? EQ : a < b ? LT : GT; - } - - if (x.ctor === '::' || x.ctor === '[]') - { - while (x.ctor === '::' && y.ctor === '::') - { - var ord = cmp(x._0, y._0); - if (ord !== EQ) - { - return ord; - } - x = x._1; - y = y._1; - } - return x.ctor === y.ctor ? EQ : x.ctor === '[]' ? LT : GT; - } - - if (x.ctor.slice(0, 6) === '_Tuple') - { - var ord; - var n = x.ctor.slice(6) - 0; - var err = 'cannot compare tuples with more than 6 elements.'; - if (n === 0) return EQ; - if (n >= 1) { ord = cmp(x._0, y._0); if (ord !== EQ) return ord; - if (n >= 2) { ord = cmp(x._1, y._1); if (ord !== EQ) return ord; - if (n >= 3) { ord = cmp(x._2, y._2); if (ord !== EQ) return ord; - if (n >= 4) { ord = cmp(x._3, y._3); if (ord !== EQ) return ord; - if (n >= 5) { ord = cmp(x._4, y._4); if (ord !== EQ) return ord; - if (n >= 6) { ord = cmp(x._5, y._5); if (ord !== EQ) return ord; - if (n >= 7) throw new Error('Comparison error: ' + err); } } } } } } - return EQ; - } - - throw new Error( - 'Comparison error: comparison is only defined on ints, ' - + 'floats, times, chars, strings, lists of comparable values, ' - + 'and tuples of comparable values.' - ); -} - - -// COMMON VALUES - -var Tuple0 = { - ctor: '_Tuple0' -}; - -function Tuple2(x, y) -{ - return { - ctor: '_Tuple2', - _0: x, - _1: y - }; -} - -function chr(c) -{ - return new String(c); -} - - -// GUID - -var count = 0; -function guid(_) -{ - return count++; -} - - -// RECORDS - -function update(oldRecord, updatedFields) -{ - var newRecord = {}; - - for (var key in oldRecord) - { - newRecord[key] = oldRecord[key]; - } - - for (var key in updatedFields) - { - newRecord[key] = updatedFields[key]; - } - - return newRecord; -} - - -//// LIST STUFF //// - -var Nil = { ctor: '[]' }; - -function Cons(hd, tl) -{ - return { - ctor: '::', - _0: hd, - _1: tl - }; -} - -function append(xs, ys) -{ - // append Strings - if (typeof xs === 'string') - { - return xs + ys; - } - - // append Lists - if (xs.ctor === '[]') - { - return ys; - } - var root = Cons(xs._0, Nil); - var curr = root; - xs = xs._1; - while (xs.ctor !== '[]') - { - curr._1 = Cons(xs._0, Nil); - xs = xs._1; - curr = curr._1; - } - curr._1 = ys; - return root; -} - - -// CRASHES - -function crash(moduleName, region) -{ - return function(message) { - throw new Error( - 'Ran into a `Debug.crash` in module `' + moduleName + '` ' + regionToString(region) + '\n' - + 'The message provided by the code author is:\n\n ' - + message - ); - }; -} - -function crashCase(moduleName, region, value) -{ - return function(message) { - throw new Error( - 'Ran into a `Debug.crash` in module `' + moduleName + '`\n\n' - + 'This was caused by the `case` expression ' + regionToString(region) + '.\n' - + 'One of the branches ended with a crash and the following value got through:\n\n ' + toString(value) + '\n\n' - + 'The message provided by the code author is:\n\n ' - + message - ); - }; -} - -function regionToString(region) -{ - if (region.start.line == region.end.line) - { - return 'on line ' + region.start.line; - } - return 'between lines ' + region.start.line + ' and ' + region.end.line; -} - - -// TO STRING - -function toString(v) -{ - var type = typeof v; - if (type === 'function') - { - return ''; - } - - if (type === 'boolean') - { - return v ? 'True' : 'False'; - } - - if (type === 'number') - { - return v + ''; - } - - if (v instanceof String) - { - return '\'' + addSlashes(v, true) + '\''; - } - - if (type === 'string') - { - return '"' + addSlashes(v, false) + '"'; - } - - if (v === null) - { - return 'null'; - } - - if (type === 'object' && 'ctor' in v) - { - var ctorStarter = v.ctor.substring(0, 5); - - if (ctorStarter === '_Tupl') - { - var output = []; - for (var k in v) - { - if (k === 'ctor') continue; - output.push(toString(v[k])); - } - return '(' + output.join(',') + ')'; - } - - if (ctorStarter === '_Task') - { - return '' - } - - if (v.ctor === '_Array') - { - var list = _elm_lang$core$Array$toList(v); - return 'Array.fromList ' + toString(list); - } - - if (v.ctor === '') - { - return ''; - } - - if (v.ctor === '_Process') - { - return ''; - } - - if (v.ctor === '::') - { - var output = '[' + toString(v._0); - v = v._1; - while (v.ctor === '::') - { - output += ',' + toString(v._0); - v = v._1; - } - return output + ']'; - } - - if (v.ctor === '[]') - { - return '[]'; - } - - if (v.ctor === 'Set_elm_builtin') - { - return 'Set.fromList ' + toString(_elm_lang$core$Set$toList(v)); - } - - if (v.ctor === 'RBNode_elm_builtin' || v.ctor === 'RBEmpty_elm_builtin') - { - return 'Dict.fromList ' + toString(_elm_lang$core$Dict$toList(v)); - } - - var output = ''; - for (var i in v) - { - if (i === 'ctor') continue; - var str = toString(v[i]); - var c0 = str[0]; - var parenless = c0 === '{' || c0 === '(' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0; - output += ' ' + (parenless ? str : '(' + str + ')'); - } - return v.ctor + output; - } - - if (type === 'object') - { - if (v instanceof Date) - { - return '<' + v.toString() + '>'; - } - - if (v.elm_web_socket) - { - return ''; - } - - var output = []; - for (var k in v) - { - output.push(k + ' = ' + toString(v[k])); - } - if (output.length === 0) - { - return '{}'; - } - return '{ ' + output.join(', ') + ' }'; - } - - return ''; -} - -function addSlashes(str, isChar) -{ - var s = str.replace(/\\/g, '\\\\') - .replace(/\n/g, '\\n') - .replace(/\t/g, '\\t') - .replace(/\r/g, '\\r') - .replace(/\v/g, '\\v') - .replace(/\0/g, '\\0'); - if (isChar) - { - return s.replace(/\'/g, '\\\''); - } - else - { - return s.replace(/\"/g, '\\"'); - } -} - - -return { - eq: eq, - cmp: cmp, - Tuple0: Tuple0, - Tuple2: Tuple2, - chr: chr, - update: update, - guid: guid, - - append: F2(append), - - crash: crash, - crashCase: crashCase, - - toString: toString -}; - -}(); -var _elm_lang$core$Basics$never = function (_p0) { - never: - while (true) { - var _p1 = _p0; - var _v1 = _p1._0; - _p0 = _v1; - continue never; - } -}; -var _elm_lang$core$Basics$uncurry = F2( - function (f, _p2) { - var _p3 = _p2; - return A2(f, _p3._0, _p3._1); - }); -var _elm_lang$core$Basics$curry = F3( - function (f, a, b) { - return f( - {ctor: '_Tuple2', _0: a, _1: b}); - }); -var _elm_lang$core$Basics$flip = F3( - function (f, b, a) { - return A2(f, a, b); - }); -var _elm_lang$core$Basics$always = F2( - function (a, _p4) { - return a; - }); -var _elm_lang$core$Basics$identity = function (x) { - return x; -}; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['<|'] = F2( - function (f, x) { - return f(x); - }); -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['|>'] = F2( - function (x, f) { - return f(x); - }); -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['>>'] = F3( - function (f, g, x) { - return g( - f(x)); - }); -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['<<'] = F3( - function (g, f, x) { - return g( - f(x)); - }); -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['++'] = _elm_lang$core$Native_Utils.append; -var _elm_lang$core$Basics$toString = _elm_lang$core$Native_Utils.toString; -var _elm_lang$core$Basics$isInfinite = _elm_lang$core$Native_Basics.isInfinite; -var _elm_lang$core$Basics$isNaN = _elm_lang$core$Native_Basics.isNaN; -var _elm_lang$core$Basics$toFloat = _elm_lang$core$Native_Basics.toFloat; -var _elm_lang$core$Basics$ceiling = _elm_lang$core$Native_Basics.ceiling; -var _elm_lang$core$Basics$floor = _elm_lang$core$Native_Basics.floor; -var _elm_lang$core$Basics$truncate = _elm_lang$core$Native_Basics.truncate; -var _elm_lang$core$Basics$round = _elm_lang$core$Native_Basics.round; -var _elm_lang$core$Basics$not = _elm_lang$core$Native_Basics.not; -var _elm_lang$core$Basics$xor = _elm_lang$core$Native_Basics.xor; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['||'] = _elm_lang$core$Native_Basics.or; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['&&'] = _elm_lang$core$Native_Basics.and; -var _elm_lang$core$Basics$max = _elm_lang$core$Native_Basics.max; -var _elm_lang$core$Basics$min = _elm_lang$core$Native_Basics.min; -var _elm_lang$core$Basics$compare = _elm_lang$core$Native_Basics.compare; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['>='] = _elm_lang$core$Native_Basics.ge; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['<='] = _elm_lang$core$Native_Basics.le; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['>'] = _elm_lang$core$Native_Basics.gt; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['<'] = _elm_lang$core$Native_Basics.lt; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['/='] = _elm_lang$core$Native_Basics.neq; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['=='] = _elm_lang$core$Native_Basics.eq; -var _elm_lang$core$Basics$e = _elm_lang$core$Native_Basics.e; -var _elm_lang$core$Basics$pi = _elm_lang$core$Native_Basics.pi; -var _elm_lang$core$Basics$clamp = _elm_lang$core$Native_Basics.clamp; -var _elm_lang$core$Basics$logBase = _elm_lang$core$Native_Basics.logBase; -var _elm_lang$core$Basics$abs = _elm_lang$core$Native_Basics.abs; -var _elm_lang$core$Basics$negate = _elm_lang$core$Native_Basics.negate; -var _elm_lang$core$Basics$sqrt = _elm_lang$core$Native_Basics.sqrt; -var _elm_lang$core$Basics$atan2 = _elm_lang$core$Native_Basics.atan2; -var _elm_lang$core$Basics$atan = _elm_lang$core$Native_Basics.atan; -var _elm_lang$core$Basics$asin = _elm_lang$core$Native_Basics.asin; -var _elm_lang$core$Basics$acos = _elm_lang$core$Native_Basics.acos; -var _elm_lang$core$Basics$tan = _elm_lang$core$Native_Basics.tan; -var _elm_lang$core$Basics$sin = _elm_lang$core$Native_Basics.sin; -var _elm_lang$core$Basics$cos = _elm_lang$core$Native_Basics.cos; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['^'] = _elm_lang$core$Native_Basics.exp; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['%'] = _elm_lang$core$Native_Basics.mod; -var _elm_lang$core$Basics$rem = _elm_lang$core$Native_Basics.rem; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['//'] = _elm_lang$core$Native_Basics.div; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['/'] = _elm_lang$core$Native_Basics.floatDiv; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['*'] = _elm_lang$core$Native_Basics.mul; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['-'] = _elm_lang$core$Native_Basics.sub; -var _elm_lang$core$Basics_ops = _elm_lang$core$Basics_ops || {}; -_elm_lang$core$Basics_ops['+'] = _elm_lang$core$Native_Basics.add; -var _elm_lang$core$Basics$toPolar = _elm_lang$core$Native_Basics.toPolar; -var _elm_lang$core$Basics$fromPolar = _elm_lang$core$Native_Basics.fromPolar; -var _elm_lang$core$Basics$turns = _elm_lang$core$Native_Basics.turns; -var _elm_lang$core$Basics$degrees = _elm_lang$core$Native_Basics.degrees; -var _elm_lang$core$Basics$radians = function (t) { - return t; -}; -var _elm_lang$core$Basics$GT = {ctor: 'GT'}; -var _elm_lang$core$Basics$EQ = {ctor: 'EQ'}; -var _elm_lang$core$Basics$LT = {ctor: 'LT'}; -var _elm_lang$core$Basics$JustOneMore = function (a) { - return {ctor: 'JustOneMore', _0: a}; -}; - -var _elm_lang$core$Maybe$withDefault = F2( - function ($default, maybe) { - var _p0 = maybe; - if (_p0.ctor === 'Just') { - return _p0._0; - } else { - return $default; - } - }); -var _elm_lang$core$Maybe$Nothing = {ctor: 'Nothing'}; -var _elm_lang$core$Maybe$andThen = F2( - function (callback, maybeValue) { - var _p1 = maybeValue; - if (_p1.ctor === 'Just') { - return callback(_p1._0); - } else { - return _elm_lang$core$Maybe$Nothing; - } - }); -var _elm_lang$core$Maybe$Just = function (a) { - return {ctor: 'Just', _0: a}; -}; -var _elm_lang$core$Maybe$map = F2( - function (f, maybe) { - var _p2 = maybe; - if (_p2.ctor === 'Just') { - return _elm_lang$core$Maybe$Just( - f(_p2._0)); - } else { - return _elm_lang$core$Maybe$Nothing; - } - }); -var _elm_lang$core$Maybe$map2 = F3( - function (func, ma, mb) { - var _p3 = {ctor: '_Tuple2', _0: ma, _1: mb}; - if (((_p3.ctor === '_Tuple2') && (_p3._0.ctor === 'Just')) && (_p3._1.ctor === 'Just')) { - return _elm_lang$core$Maybe$Just( - A2(func, _p3._0._0, _p3._1._0)); - } else { - return _elm_lang$core$Maybe$Nothing; - } - }); -var _elm_lang$core$Maybe$map3 = F4( - function (func, ma, mb, mc) { - var _p4 = {ctor: '_Tuple3', _0: ma, _1: mb, _2: mc}; - if ((((_p4.ctor === '_Tuple3') && (_p4._0.ctor === 'Just')) && (_p4._1.ctor === 'Just')) && (_p4._2.ctor === 'Just')) { - return _elm_lang$core$Maybe$Just( - A3(func, _p4._0._0, _p4._1._0, _p4._2._0)); - } else { - return _elm_lang$core$Maybe$Nothing; - } - }); -var _elm_lang$core$Maybe$map4 = F5( - function (func, ma, mb, mc, md) { - var _p5 = {ctor: '_Tuple4', _0: ma, _1: mb, _2: mc, _3: md}; - if (((((_p5.ctor === '_Tuple4') && (_p5._0.ctor === 'Just')) && (_p5._1.ctor === 'Just')) && (_p5._2.ctor === 'Just')) && (_p5._3.ctor === 'Just')) { - return _elm_lang$core$Maybe$Just( - A4(func, _p5._0._0, _p5._1._0, _p5._2._0, _p5._3._0)); - } else { - return _elm_lang$core$Maybe$Nothing; - } - }); -var _elm_lang$core$Maybe$map5 = F6( - function (func, ma, mb, mc, md, me) { - var _p6 = {ctor: '_Tuple5', _0: ma, _1: mb, _2: mc, _3: md, _4: me}; - if ((((((_p6.ctor === '_Tuple5') && (_p6._0.ctor === 'Just')) && (_p6._1.ctor === 'Just')) && (_p6._2.ctor === 'Just')) && (_p6._3.ctor === 'Just')) && (_p6._4.ctor === 'Just')) { - return _elm_lang$core$Maybe$Just( - A5(func, _p6._0._0, _p6._1._0, _p6._2._0, _p6._3._0, _p6._4._0)); - } else { - return _elm_lang$core$Maybe$Nothing; - } - }); - -//import Native.Utils // - -var _elm_lang$core$Native_List = function() { - -var Nil = { ctor: '[]' }; - -function Cons(hd, tl) -{ - return { ctor: '::', _0: hd, _1: tl }; -} - -function fromArray(arr) -{ - var out = Nil; - for (var i = arr.length; i--; ) - { - out = Cons(arr[i], out); - } - return out; -} - -function toArray(xs) -{ - var out = []; - while (xs.ctor !== '[]') - { - out.push(xs._0); - xs = xs._1; - } - return out; -} - -function foldr(f, b, xs) -{ - var arr = toArray(xs); - var acc = b; - for (var i = arr.length; i--; ) - { - acc = A2(f, arr[i], acc); - } - return acc; -} - -function map2(f, xs, ys) -{ - var arr = []; - while (xs.ctor !== '[]' && ys.ctor !== '[]') - { - arr.push(A2(f, xs._0, ys._0)); - xs = xs._1; - ys = ys._1; - } - return fromArray(arr); -} - -function map3(f, xs, ys, zs) -{ - var arr = []; - while (xs.ctor !== '[]' && ys.ctor !== '[]' && zs.ctor !== '[]') - { - arr.push(A3(f, xs._0, ys._0, zs._0)); - xs = xs._1; - ys = ys._1; - zs = zs._1; - } - return fromArray(arr); -} - -function map4(f, ws, xs, ys, zs) -{ - var arr = []; - while ( ws.ctor !== '[]' - && xs.ctor !== '[]' - && ys.ctor !== '[]' - && zs.ctor !== '[]') - { - arr.push(A4(f, ws._0, xs._0, ys._0, zs._0)); - ws = ws._1; - xs = xs._1; - ys = ys._1; - zs = zs._1; - } - return fromArray(arr); -} - -function map5(f, vs, ws, xs, ys, zs) -{ - var arr = []; - while ( vs.ctor !== '[]' - && ws.ctor !== '[]' - && xs.ctor !== '[]' - && ys.ctor !== '[]' - && zs.ctor !== '[]') - { - arr.push(A5(f, vs._0, ws._0, xs._0, ys._0, zs._0)); - vs = vs._1; - ws = ws._1; - xs = xs._1; - ys = ys._1; - zs = zs._1; - } - return fromArray(arr); -} - -function sortBy(f, xs) -{ - return fromArray(toArray(xs).sort(function(a, b) { - return _elm_lang$core$Native_Utils.cmp(f(a), f(b)); - })); -} - -function sortWith(f, xs) -{ - return fromArray(toArray(xs).sort(function(a, b) { - var ord = f(a)(b).ctor; - return ord === 'EQ' ? 0 : ord === 'LT' ? -1 : 1; - })); -} - -return { - Nil: Nil, - Cons: Cons, - cons: F2(Cons), - toArray: toArray, - fromArray: fromArray, - - foldr: F3(foldr), - - map2: F3(map2), - map3: F4(map3), - map4: F5(map4), - map5: F6(map5), - sortBy: F2(sortBy), - sortWith: F2(sortWith) -}; - -}(); -var _elm_lang$core$List$sortWith = _elm_lang$core$Native_List.sortWith; -var _elm_lang$core$List$sortBy = _elm_lang$core$Native_List.sortBy; -var _elm_lang$core$List$sort = function (xs) { - return A2(_elm_lang$core$List$sortBy, _elm_lang$core$Basics$identity, xs); -}; -var _elm_lang$core$List$singleton = function (value) { - return { - ctor: '::', - _0: value, - _1: {ctor: '[]'} - }; -}; -var _elm_lang$core$List$drop = F2( - function (n, list) { - drop: - while (true) { - if (_elm_lang$core$Native_Utils.cmp(n, 0) < 1) { - return list; - } else { - var _p0 = list; - if (_p0.ctor === '[]') { - return list; - } else { - var _v1 = n - 1, - _v2 = _p0._1; - n = _v1; - list = _v2; - continue drop; - } - } - } - }); -var _elm_lang$core$List$map5 = _elm_lang$core$Native_List.map5; -var _elm_lang$core$List$map4 = _elm_lang$core$Native_List.map4; -var _elm_lang$core$List$map3 = _elm_lang$core$Native_List.map3; -var _elm_lang$core$List$map2 = _elm_lang$core$Native_List.map2; -var _elm_lang$core$List$any = F2( - function (isOkay, list) { - any: - while (true) { - var _p1 = list; - if (_p1.ctor === '[]') { - return false; - } else { - if (isOkay(_p1._0)) { - return true; - } else { - var _v4 = isOkay, - _v5 = _p1._1; - isOkay = _v4; - list = _v5; - continue any; - } - } - } - }); -var _elm_lang$core$List$all = F2( - function (isOkay, list) { - return !A2( - _elm_lang$core$List$any, - function (_p2) { - return !isOkay(_p2); - }, - list); - }); -var _elm_lang$core$List$foldr = _elm_lang$core$Native_List.foldr; -var _elm_lang$core$List$foldl = F3( - function (func, acc, list) { - foldl: - while (true) { - var _p3 = list; - if (_p3.ctor === '[]') { - return acc; - } else { - var _v7 = func, - _v8 = A2(func, _p3._0, acc), - _v9 = _p3._1; - func = _v7; - acc = _v8; - list = _v9; - continue foldl; - } - } - }); -var _elm_lang$core$List$length = function (xs) { - return A3( - _elm_lang$core$List$foldl, - F2( - function (_p4, i) { - return i + 1; - }), - 0, - xs); -}; -var _elm_lang$core$List$sum = function (numbers) { - return A3( - _elm_lang$core$List$foldl, - F2( - function (x, y) { - return x + y; - }), - 0, - numbers); -}; -var _elm_lang$core$List$product = function (numbers) { - return A3( - _elm_lang$core$List$foldl, - F2( - function (x, y) { - return x * y; - }), - 1, - numbers); -}; -var _elm_lang$core$List$maximum = function (list) { - var _p5 = list; - if (_p5.ctor === '::') { - return _elm_lang$core$Maybe$Just( - A3(_elm_lang$core$List$foldl, _elm_lang$core$Basics$max, _p5._0, _p5._1)); - } else { - return _elm_lang$core$Maybe$Nothing; - } -}; -var _elm_lang$core$List$minimum = function (list) { - var _p6 = list; - if (_p6.ctor === '::') { - return _elm_lang$core$Maybe$Just( - A3(_elm_lang$core$List$foldl, _elm_lang$core$Basics$min, _p6._0, _p6._1)); - } else { - return _elm_lang$core$Maybe$Nothing; - } -}; -var _elm_lang$core$List$member = F2( - function (x, xs) { - return A2( - _elm_lang$core$List$any, - function (a) { - return _elm_lang$core$Native_Utils.eq(a, x); - }, - xs); - }); -var _elm_lang$core$List$isEmpty = function (xs) { - var _p7 = xs; - if (_p7.ctor === '[]') { - return true; - } else { - return false; - } -}; -var _elm_lang$core$List$tail = function (list) { - var _p8 = list; - if (_p8.ctor === '::') { - return _elm_lang$core$Maybe$Just(_p8._1); - } else { - return _elm_lang$core$Maybe$Nothing; - } -}; -var _elm_lang$core$List$head = function (list) { - var _p9 = list; - if (_p9.ctor === '::') { - return _elm_lang$core$Maybe$Just(_p9._0); - } else { - return _elm_lang$core$Maybe$Nothing; - } -}; -var _elm_lang$core$List_ops = _elm_lang$core$List_ops || {}; -_elm_lang$core$List_ops['::'] = _elm_lang$core$Native_List.cons; -var _elm_lang$core$List$map = F2( - function (f, xs) { - return A3( - _elm_lang$core$List$foldr, - F2( - function (x, acc) { - return { - ctor: '::', - _0: f(x), - _1: acc - }; - }), - {ctor: '[]'}, - xs); - }); -var _elm_lang$core$List$filter = F2( - function (pred, xs) { - var conditionalCons = F2( - function (front, back) { - return pred(front) ? {ctor: '::', _0: front, _1: back} : back; - }); - return A3( - _elm_lang$core$List$foldr, - conditionalCons, - {ctor: '[]'}, - xs); - }); -var _elm_lang$core$List$maybeCons = F3( - function (f, mx, xs) { - var _p10 = f(mx); - if (_p10.ctor === 'Just') { - return {ctor: '::', _0: _p10._0, _1: xs}; - } else { - return xs; - } - }); -var _elm_lang$core$List$filterMap = F2( - function (f, xs) { - return A3( - _elm_lang$core$List$foldr, - _elm_lang$core$List$maybeCons(f), - {ctor: '[]'}, - xs); - }); -var _elm_lang$core$List$reverse = function (list) { - return A3( - _elm_lang$core$List$foldl, - F2( - function (x, y) { - return {ctor: '::', _0: x, _1: y}; - }), - {ctor: '[]'}, - list); -}; -var _elm_lang$core$List$scanl = F3( - function (f, b, xs) { - var scan1 = F2( - function (x, accAcc) { - var _p11 = accAcc; - if (_p11.ctor === '::') { - return { - ctor: '::', - _0: A2(f, x, _p11._0), - _1: accAcc - }; - } else { - return {ctor: '[]'}; - } - }); - return _elm_lang$core$List$reverse( - A3( - _elm_lang$core$List$foldl, - scan1, - { - ctor: '::', - _0: b, - _1: {ctor: '[]'} - }, - xs)); - }); -var _elm_lang$core$List$append = F2( - function (xs, ys) { - var _p12 = ys; - if (_p12.ctor === '[]') { - return xs; - } else { - return A3( - _elm_lang$core$List$foldr, - F2( - function (x, y) { - return {ctor: '::', _0: x, _1: y}; - }), - ys, - xs); - } - }); -var _elm_lang$core$List$concat = function (lists) { - return A3( - _elm_lang$core$List$foldr, - _elm_lang$core$List$append, - {ctor: '[]'}, - lists); -}; -var _elm_lang$core$List$concatMap = F2( - function (f, list) { - return _elm_lang$core$List$concat( - A2(_elm_lang$core$List$map, f, list)); - }); -var _elm_lang$core$List$partition = F2( - function (pred, list) { - var step = F2( - function (x, _p13) { - var _p14 = _p13; - var _p16 = _p14._0; - var _p15 = _p14._1; - return pred(x) ? { - ctor: '_Tuple2', - _0: {ctor: '::', _0: x, _1: _p16}, - _1: _p15 - } : { - ctor: '_Tuple2', - _0: _p16, - _1: {ctor: '::', _0: x, _1: _p15} - }; - }); - return A3( - _elm_lang$core$List$foldr, - step, - { - ctor: '_Tuple2', - _0: {ctor: '[]'}, - _1: {ctor: '[]'} - }, - list); - }); -var _elm_lang$core$List$unzip = function (pairs) { - var step = F2( - function (_p18, _p17) { - var _p19 = _p18; - var _p20 = _p17; - return { - ctor: '_Tuple2', - _0: {ctor: '::', _0: _p19._0, _1: _p20._0}, - _1: {ctor: '::', _0: _p19._1, _1: _p20._1} - }; - }); - return A3( - _elm_lang$core$List$foldr, - step, - { - ctor: '_Tuple2', - _0: {ctor: '[]'}, - _1: {ctor: '[]'} - }, - pairs); -}; -var _elm_lang$core$List$intersperse = F2( - function (sep, xs) { - var _p21 = xs; - if (_p21.ctor === '[]') { - return {ctor: '[]'}; - } else { - var step = F2( - function (x, rest) { - return { - ctor: '::', - _0: sep, - _1: {ctor: '::', _0: x, _1: rest} - }; - }); - var spersed = A3( - _elm_lang$core$List$foldr, - step, - {ctor: '[]'}, - _p21._1); - return {ctor: '::', _0: _p21._0, _1: spersed}; - } - }); -var _elm_lang$core$List$takeReverse = F3( - function (n, list, taken) { - takeReverse: - while (true) { - if (_elm_lang$core$Native_Utils.cmp(n, 0) < 1) { - return taken; - } else { - var _p22 = list; - if (_p22.ctor === '[]') { - return taken; - } else { - var _v23 = n - 1, - _v24 = _p22._1, - _v25 = {ctor: '::', _0: _p22._0, _1: taken}; - n = _v23; - list = _v24; - taken = _v25; - continue takeReverse; - } - } - } - }); -var _elm_lang$core$List$takeTailRec = F2( - function (n, list) { - return _elm_lang$core$List$reverse( - A3( - _elm_lang$core$List$takeReverse, - n, - list, - {ctor: '[]'})); - }); -var _elm_lang$core$List$takeFast = F3( - function (ctr, n, list) { - if (_elm_lang$core$Native_Utils.cmp(n, 0) < 1) { - return {ctor: '[]'}; - } else { - var _p23 = {ctor: '_Tuple2', _0: n, _1: list}; - _v26_5: - do { - _v26_1: - do { - if (_p23.ctor === '_Tuple2') { - if (_p23._1.ctor === '[]') { - return list; - } else { - if (_p23._1._1.ctor === '::') { - switch (_p23._0) { - case 1: - break _v26_1; - case 2: - return { - ctor: '::', - _0: _p23._1._0, - _1: { - ctor: '::', - _0: _p23._1._1._0, - _1: {ctor: '[]'} - } - }; - case 3: - if (_p23._1._1._1.ctor === '::') { - return { - ctor: '::', - _0: _p23._1._0, - _1: { - ctor: '::', - _0: _p23._1._1._0, - _1: { - ctor: '::', - _0: _p23._1._1._1._0, - _1: {ctor: '[]'} - } - } - }; - } else { - break _v26_5; - } - default: - if ((_p23._1._1._1.ctor === '::') && (_p23._1._1._1._1.ctor === '::')) { - var _p28 = _p23._1._1._1._0; - var _p27 = _p23._1._1._0; - var _p26 = _p23._1._0; - var _p25 = _p23._1._1._1._1._0; - var _p24 = _p23._1._1._1._1._1; - return (_elm_lang$core$Native_Utils.cmp(ctr, 1000) > 0) ? { - ctor: '::', - _0: _p26, - _1: { - ctor: '::', - _0: _p27, - _1: { - ctor: '::', - _0: _p28, - _1: { - ctor: '::', - _0: _p25, - _1: A2(_elm_lang$core$List$takeTailRec, n - 4, _p24) - } - } - } - } : { - ctor: '::', - _0: _p26, - _1: { - ctor: '::', - _0: _p27, - _1: { - ctor: '::', - _0: _p28, - _1: { - ctor: '::', - _0: _p25, - _1: A3(_elm_lang$core$List$takeFast, ctr + 1, n - 4, _p24) - } - } - } - }; - } else { - break _v26_5; - } - } - } else { - if (_p23._0 === 1) { - break _v26_1; - } else { - break _v26_5; - } - } - } - } else { - break _v26_5; - } - } while(false); - return { - ctor: '::', - _0: _p23._1._0, - _1: {ctor: '[]'} - }; - } while(false); - return list; - } - }); -var _elm_lang$core$List$take = F2( - function (n, list) { - return A3(_elm_lang$core$List$takeFast, 0, n, list); - }); -var _elm_lang$core$List$repeatHelp = F3( - function (result, n, value) { - repeatHelp: - while (true) { - if (_elm_lang$core$Native_Utils.cmp(n, 0) < 1) { - return result; - } else { - var _v27 = {ctor: '::', _0: value, _1: result}, - _v28 = n - 1, - _v29 = value; - result = _v27; - n = _v28; - value = _v29; - continue repeatHelp; - } - } - }); -var _elm_lang$core$List$repeat = F2( - function (n, value) { - return A3( - _elm_lang$core$List$repeatHelp, - {ctor: '[]'}, - n, - value); - }); -var _elm_lang$core$List$rangeHelp = F3( - function (lo, hi, list) { - rangeHelp: - while (true) { - if (_elm_lang$core$Native_Utils.cmp(lo, hi) < 1) { - var _v30 = lo, - _v31 = hi - 1, - _v32 = {ctor: '::', _0: hi, _1: list}; - lo = _v30; - hi = _v31; - list = _v32; - continue rangeHelp; - } else { - return list; - } - } - }); -var _elm_lang$core$List$range = F2( - function (lo, hi) { - return A3( - _elm_lang$core$List$rangeHelp, - lo, - hi, - {ctor: '[]'}); - }); -var _elm_lang$core$List$indexedMap = F2( - function (f, xs) { - return A3( - _elm_lang$core$List$map2, - f, - A2( - _elm_lang$core$List$range, - 0, - _elm_lang$core$List$length(xs) - 1), - xs); - }); - -var _elm_lang$core$Array$append = _elm_lang$core$Native_Array.append; -var _elm_lang$core$Array$length = _elm_lang$core$Native_Array.length; -var _elm_lang$core$Array$isEmpty = function (array) { - return _elm_lang$core$Native_Utils.eq( - _elm_lang$core$Array$length(array), - 0); -}; -var _elm_lang$core$Array$slice = _elm_lang$core$Native_Array.slice; -var _elm_lang$core$Array$set = _elm_lang$core$Native_Array.set; -var _elm_lang$core$Array$get = F2( - function (i, array) { - return ((_elm_lang$core$Native_Utils.cmp(0, i) < 1) && (_elm_lang$core$Native_Utils.cmp( - i, - _elm_lang$core$Native_Array.length(array)) < 0)) ? _elm_lang$core$Maybe$Just( - A2(_elm_lang$core$Native_Array.get, i, array)) : _elm_lang$core$Maybe$Nothing; - }); -var _elm_lang$core$Array$push = _elm_lang$core$Native_Array.push; -var _elm_lang$core$Array$empty = _elm_lang$core$Native_Array.empty; -var _elm_lang$core$Array$filter = F2( - function (isOkay, arr) { - var update = F2( - function (x, xs) { - return isOkay(x) ? A2(_elm_lang$core$Native_Array.push, x, xs) : xs; - }); - return A3(_elm_lang$core$Native_Array.foldl, update, _elm_lang$core$Native_Array.empty, arr); - }); -var _elm_lang$core$Array$foldr = _elm_lang$core$Native_Array.foldr; -var _elm_lang$core$Array$foldl = _elm_lang$core$Native_Array.foldl; -var _elm_lang$core$Array$indexedMap = _elm_lang$core$Native_Array.indexedMap; -var _elm_lang$core$Array$map = _elm_lang$core$Native_Array.map; -var _elm_lang$core$Array$toIndexedList = function (array) { - return A3( - _elm_lang$core$List$map2, - F2( - function (v0, v1) { - return {ctor: '_Tuple2', _0: v0, _1: v1}; - }), - A2( - _elm_lang$core$List$range, - 0, - _elm_lang$core$Native_Array.length(array) - 1), - _elm_lang$core$Native_Array.toList(array)); -}; -var _elm_lang$core$Array$toList = _elm_lang$core$Native_Array.toList; -var _elm_lang$core$Array$fromList = _elm_lang$core$Native_Array.fromList; -var _elm_lang$core$Array$initialize = _elm_lang$core$Native_Array.initialize; -var _elm_lang$core$Array$repeat = F2( - function (n, e) { - return A2( - _elm_lang$core$Array$initialize, - n, - _elm_lang$core$Basics$always(e)); - }); -var _elm_lang$core$Array$Array = {ctor: 'Array'}; - -//import Native.Utils // - -var _elm_lang$core$Native_Debug = function() { - -function log(tag, value) -{ - var msg = tag + ': ' + _elm_lang$core$Native_Utils.toString(value); - var process = process || {}; - if (process.stdout) - { - process.stdout.write(msg); - } - else - { - console.log(msg); - } - return value; -} - -function crash(message) -{ - throw new Error(message); -} - -return { - crash: crash, - log: F2(log) -}; - -}(); -//import Maybe, Native.List, Native.Utils, Result // - -var _elm_lang$core$Native_String = function() { - -function isEmpty(str) -{ - return str.length === 0; -} -function cons(chr, str) -{ - return chr + str; -} -function uncons(str) -{ - var hd = str[0]; - if (hd) - { - return _elm_lang$core$Maybe$Just(_elm_lang$core$Native_Utils.Tuple2(_elm_lang$core$Native_Utils.chr(hd), str.slice(1))); - } - return _elm_lang$core$Maybe$Nothing; -} -function append(a, b) -{ - return a + b; -} -function concat(strs) -{ - return _elm_lang$core$Native_List.toArray(strs).join(''); -} -function length(str) -{ - return str.length; -} -function map(f, str) -{ - var out = str.split(''); - for (var i = out.length; i--; ) - { - out[i] = f(_elm_lang$core$Native_Utils.chr(out[i])); - } - return out.join(''); -} -function filter(pred, str) -{ - return str.split('').map(_elm_lang$core$Native_Utils.chr).filter(pred).join(''); -} -function reverse(str) -{ - return str.split('').reverse().join(''); -} -function foldl(f, b, str) -{ - var len = str.length; - for (var i = 0; i < len; ++i) - { - b = A2(f, _elm_lang$core$Native_Utils.chr(str[i]), b); - } - return b; -} -function foldr(f, b, str) -{ - for (var i = str.length; i--; ) - { - b = A2(f, _elm_lang$core$Native_Utils.chr(str[i]), b); - } - return b; -} -function split(sep, str) -{ - return _elm_lang$core$Native_List.fromArray(str.split(sep)); -} -function join(sep, strs) -{ - return _elm_lang$core$Native_List.toArray(strs).join(sep); -} -function repeat(n, str) -{ - var result = ''; - while (n > 0) - { - if (n & 1) - { - result += str; - } - n >>= 1, str += str; - } - return result; -} -function slice(start, end, str) -{ - return str.slice(start, end); -} -function left(n, str) -{ - return n < 1 ? '' : str.slice(0, n); -} -function right(n, str) -{ - return n < 1 ? '' : str.slice(-n); -} -function dropLeft(n, str) -{ - return n < 1 ? str : str.slice(n); -} -function dropRight(n, str) -{ - return n < 1 ? str : str.slice(0, -n); -} -function pad(n, chr, str) -{ - var half = (n - str.length) / 2; - return repeat(Math.ceil(half), chr) + str + repeat(half | 0, chr); -} -function padRight(n, chr, str) -{ - return str + repeat(n - str.length, chr); -} -function padLeft(n, chr, str) -{ - return repeat(n - str.length, chr) + str; -} - -function trim(str) -{ - return str.trim(); -} -function trimLeft(str) -{ - return str.replace(/^\s+/, ''); -} -function trimRight(str) -{ - return str.replace(/\s+$/, ''); -} - -function words(str) -{ - return _elm_lang$core$Native_List.fromArray(str.trim().split(/\s+/g)); -} -function lines(str) -{ - return _elm_lang$core$Native_List.fromArray(str.split(/\r\n|\r|\n/g)); -} - -function toUpper(str) -{ - return str.toUpperCase(); -} -function toLower(str) -{ - return str.toLowerCase(); -} - -function any(pred, str) -{ - for (var i = str.length; i--; ) - { - if (pred(_elm_lang$core$Native_Utils.chr(str[i]))) - { - return true; - } - } - return false; -} -function all(pred, str) -{ - for (var i = str.length; i--; ) - { - if (!pred(_elm_lang$core$Native_Utils.chr(str[i]))) - { - return false; - } - } - return true; -} - -function contains(sub, str) -{ - return str.indexOf(sub) > -1; -} -function startsWith(sub, str) -{ - return str.indexOf(sub) === 0; -} -function endsWith(sub, str) -{ - return str.length >= sub.length && - str.lastIndexOf(sub) === str.length - sub.length; -} -function indexes(sub, str) -{ - var subLen = sub.length; - - if (subLen < 1) - { - return _elm_lang$core$Native_List.Nil; - } - - var i = 0; - var is = []; - - while ((i = str.indexOf(sub, i)) > -1) - { - is.push(i); - i = i + subLen; - } - - return _elm_lang$core$Native_List.fromArray(is); -} - - -function toInt(s) -{ - var len = s.length; - - // if empty - if (len === 0) - { - return intErr(s); - } - - // if hex - var c = s[0]; - if (c === '0' && s[1] === 'x') - { - for (var i = 2; i < len; ++i) - { - var c = s[i]; - if (('0' <= c && c <= '9') || ('A' <= c && c <= 'F') || ('a' <= c && c <= 'f')) - { - continue; - } - return intErr(s); - } - return _elm_lang$core$Result$Ok(parseInt(s, 16)); - } - - // is decimal - if (c > '9' || (c < '0' && c !== '-' && c !== '+')) - { - return intErr(s); - } - for (var i = 1; i < len; ++i) - { - var c = s[i]; - if (c < '0' || '9' < c) - { - return intErr(s); - } - } - - return _elm_lang$core$Result$Ok(parseInt(s, 10)); -} - -function intErr(s) -{ - return _elm_lang$core$Result$Err("could not convert string '" + s + "' to an Int"); -} - - -function toFloat(s) -{ - // check if it is a hex, octal, or binary number - if (s.length === 0 || /[\sxbo]/.test(s)) - { - return floatErr(s); - } - var n = +s; - // faster isNaN check - return n === n ? _elm_lang$core$Result$Ok(n) : floatErr(s); -} - -function floatErr(s) -{ - return _elm_lang$core$Result$Err("could not convert string '" + s + "' to a Float"); -} - - -function toList(str) -{ - return _elm_lang$core$Native_List.fromArray(str.split('').map(_elm_lang$core$Native_Utils.chr)); -} -function fromList(chars) -{ - return _elm_lang$core$Native_List.toArray(chars).join(''); -} - -return { - isEmpty: isEmpty, - cons: F2(cons), - uncons: uncons, - append: F2(append), - concat: concat, - length: length, - map: F2(map), - filter: F2(filter), - reverse: reverse, - foldl: F3(foldl), - foldr: F3(foldr), - - split: F2(split), - join: F2(join), - repeat: F2(repeat), - - slice: F3(slice), - left: F2(left), - right: F2(right), - dropLeft: F2(dropLeft), - dropRight: F2(dropRight), - - pad: F3(pad), - padLeft: F3(padLeft), - padRight: F3(padRight), - - trim: trim, - trimLeft: trimLeft, - trimRight: trimRight, - - words: words, - lines: lines, - - toUpper: toUpper, - toLower: toLower, - - any: F2(any), - all: F2(all), - - contains: F2(contains), - startsWith: F2(startsWith), - endsWith: F2(endsWith), - indexes: F2(indexes), - - toInt: toInt, - toFloat: toFloat, - toList: toList, - fromList: fromList -}; - -}(); - -//import Native.Utils // - -var _elm_lang$core$Native_Char = function() { - -return { - fromCode: function(c) { return _elm_lang$core$Native_Utils.chr(String.fromCharCode(c)); }, - toCode: function(c) { return c.charCodeAt(0); }, - toUpper: function(c) { return _elm_lang$core$Native_Utils.chr(c.toUpperCase()); }, - toLower: function(c) { return _elm_lang$core$Native_Utils.chr(c.toLowerCase()); }, - toLocaleUpper: function(c) { return _elm_lang$core$Native_Utils.chr(c.toLocaleUpperCase()); }, - toLocaleLower: function(c) { return _elm_lang$core$Native_Utils.chr(c.toLocaleLowerCase()); } -}; - -}(); -var _elm_lang$core$Char$fromCode = _elm_lang$core$Native_Char.fromCode; -var _elm_lang$core$Char$toCode = _elm_lang$core$Native_Char.toCode; -var _elm_lang$core$Char$toLocaleLower = _elm_lang$core$Native_Char.toLocaleLower; -var _elm_lang$core$Char$toLocaleUpper = _elm_lang$core$Native_Char.toLocaleUpper; -var _elm_lang$core$Char$toLower = _elm_lang$core$Native_Char.toLower; -var _elm_lang$core$Char$toUpper = _elm_lang$core$Native_Char.toUpper; -var _elm_lang$core$Char$isBetween = F3( - function (low, high, $char) { - var code = _elm_lang$core$Char$toCode($char); - return (_elm_lang$core$Native_Utils.cmp( - code, - _elm_lang$core$Char$toCode(low)) > -1) && (_elm_lang$core$Native_Utils.cmp( - code, - _elm_lang$core$Char$toCode(high)) < 1); - }); -var _elm_lang$core$Char$isUpper = A2( - _elm_lang$core$Char$isBetween, - _elm_lang$core$Native_Utils.chr('A'), - _elm_lang$core$Native_Utils.chr('Z')); -var _elm_lang$core$Char$isLower = A2( - _elm_lang$core$Char$isBetween, - _elm_lang$core$Native_Utils.chr('a'), - _elm_lang$core$Native_Utils.chr('z')); -var _elm_lang$core$Char$isDigit = A2( - _elm_lang$core$Char$isBetween, - _elm_lang$core$Native_Utils.chr('0'), - _elm_lang$core$Native_Utils.chr('9')); -var _elm_lang$core$Char$isOctDigit = A2( - _elm_lang$core$Char$isBetween, - _elm_lang$core$Native_Utils.chr('0'), - _elm_lang$core$Native_Utils.chr('7')); -var _elm_lang$core$Char$isHexDigit = function ($char) { - return _elm_lang$core$Char$isDigit($char) || (A3( - _elm_lang$core$Char$isBetween, - _elm_lang$core$Native_Utils.chr('a'), - _elm_lang$core$Native_Utils.chr('f'), - $char) || A3( - _elm_lang$core$Char$isBetween, - _elm_lang$core$Native_Utils.chr('A'), - _elm_lang$core$Native_Utils.chr('F'), - $char)); -}; - -var _elm_lang$core$Result$toMaybe = function (result) { - var _p0 = result; - if (_p0.ctor === 'Ok') { - return _elm_lang$core$Maybe$Just(_p0._0); - } else { - return _elm_lang$core$Maybe$Nothing; - } -}; -var _elm_lang$core$Result$withDefault = F2( - function (def, result) { - var _p1 = result; - if (_p1.ctor === 'Ok') { - return _p1._0; - } else { - return def; - } - }); -var _elm_lang$core$Result$Err = function (a) { - return {ctor: 'Err', _0: a}; -}; -var _elm_lang$core$Result$andThen = F2( - function (callback, result) { - var _p2 = result; - if (_p2.ctor === 'Ok') { - return callback(_p2._0); - } else { - return _elm_lang$core$Result$Err(_p2._0); - } - }); -var _elm_lang$core$Result$Ok = function (a) { - return {ctor: 'Ok', _0: a}; -}; -var _elm_lang$core$Result$map = F2( - function (func, ra) { - var _p3 = ra; - if (_p3.ctor === 'Ok') { - return _elm_lang$core$Result$Ok( - func(_p3._0)); - } else { - return _elm_lang$core$Result$Err(_p3._0); - } - }); -var _elm_lang$core$Result$map2 = F3( - function (func, ra, rb) { - var _p4 = {ctor: '_Tuple2', _0: ra, _1: rb}; - if (_p4._0.ctor === 'Ok') { - if (_p4._1.ctor === 'Ok') { - return _elm_lang$core$Result$Ok( - A2(func, _p4._0._0, _p4._1._0)); - } else { - return _elm_lang$core$Result$Err(_p4._1._0); - } - } else { - return _elm_lang$core$Result$Err(_p4._0._0); - } - }); -var _elm_lang$core$Result$map3 = F4( - function (func, ra, rb, rc) { - var _p5 = {ctor: '_Tuple3', _0: ra, _1: rb, _2: rc}; - if (_p5._0.ctor === 'Ok') { - if (_p5._1.ctor === 'Ok') { - if (_p5._2.ctor === 'Ok') { - return _elm_lang$core$Result$Ok( - A3(func, _p5._0._0, _p5._1._0, _p5._2._0)); - } else { - return _elm_lang$core$Result$Err(_p5._2._0); - } - } else { - return _elm_lang$core$Result$Err(_p5._1._0); - } - } else { - return _elm_lang$core$Result$Err(_p5._0._0); - } - }); -var _elm_lang$core$Result$map4 = F5( - function (func, ra, rb, rc, rd) { - var _p6 = {ctor: '_Tuple4', _0: ra, _1: rb, _2: rc, _3: rd}; - if (_p6._0.ctor === 'Ok') { - if (_p6._1.ctor === 'Ok') { - if (_p6._2.ctor === 'Ok') { - if (_p6._3.ctor === 'Ok') { - return _elm_lang$core$Result$Ok( - A4(func, _p6._0._0, _p6._1._0, _p6._2._0, _p6._3._0)); - } else { - return _elm_lang$core$Result$Err(_p6._3._0); - } - } else { - return _elm_lang$core$Result$Err(_p6._2._0); - } - } else { - return _elm_lang$core$Result$Err(_p6._1._0); - } - } else { - return _elm_lang$core$Result$Err(_p6._0._0); - } - }); -var _elm_lang$core$Result$map5 = F6( - function (func, ra, rb, rc, rd, re) { - var _p7 = {ctor: '_Tuple5', _0: ra, _1: rb, _2: rc, _3: rd, _4: re}; - if (_p7._0.ctor === 'Ok') { - if (_p7._1.ctor === 'Ok') { - if (_p7._2.ctor === 'Ok') { - if (_p7._3.ctor === 'Ok') { - if (_p7._4.ctor === 'Ok') { - return _elm_lang$core$Result$Ok( - A5(func, _p7._0._0, _p7._1._0, _p7._2._0, _p7._3._0, _p7._4._0)); - } else { - return _elm_lang$core$Result$Err(_p7._4._0); - } - } else { - return _elm_lang$core$Result$Err(_p7._3._0); - } - } else { - return _elm_lang$core$Result$Err(_p7._2._0); - } - } else { - return _elm_lang$core$Result$Err(_p7._1._0); - } - } else { - return _elm_lang$core$Result$Err(_p7._0._0); - } - }); -var _elm_lang$core$Result$mapError = F2( - function (f, result) { - var _p8 = result; - if (_p8.ctor === 'Ok') { - return _elm_lang$core$Result$Ok(_p8._0); - } else { - return _elm_lang$core$Result$Err( - f(_p8._0)); - } - }); -var _elm_lang$core$Result$fromMaybe = F2( - function (err, maybe) { - var _p9 = maybe; - if (_p9.ctor === 'Just') { - return _elm_lang$core$Result$Ok(_p9._0); - } else { - return _elm_lang$core$Result$Err(err); - } - }); - -var _elm_lang$core$String$fromList = _elm_lang$core$Native_String.fromList; -var _elm_lang$core$String$toList = _elm_lang$core$Native_String.toList; -var _elm_lang$core$String$toFloat = _elm_lang$core$Native_String.toFloat; -var _elm_lang$core$String$toInt = _elm_lang$core$Native_String.toInt; -var _elm_lang$core$String$indices = _elm_lang$core$Native_String.indexes; -var _elm_lang$core$String$indexes = _elm_lang$core$Native_String.indexes; -var _elm_lang$core$String$endsWith = _elm_lang$core$Native_String.endsWith; -var _elm_lang$core$String$startsWith = _elm_lang$core$Native_String.startsWith; -var _elm_lang$core$String$contains = _elm_lang$core$Native_String.contains; -var _elm_lang$core$String$all = _elm_lang$core$Native_String.all; -var _elm_lang$core$String$any = _elm_lang$core$Native_String.any; -var _elm_lang$core$String$toLower = _elm_lang$core$Native_String.toLower; -var _elm_lang$core$String$toUpper = _elm_lang$core$Native_String.toUpper; -var _elm_lang$core$String$lines = _elm_lang$core$Native_String.lines; -var _elm_lang$core$String$words = _elm_lang$core$Native_String.words; -var _elm_lang$core$String$trimRight = _elm_lang$core$Native_String.trimRight; -var _elm_lang$core$String$trimLeft = _elm_lang$core$Native_String.trimLeft; -var _elm_lang$core$String$trim = _elm_lang$core$Native_String.trim; -var _elm_lang$core$String$padRight = _elm_lang$core$Native_String.padRight; -var _elm_lang$core$String$padLeft = _elm_lang$core$Native_String.padLeft; -var _elm_lang$core$String$pad = _elm_lang$core$Native_String.pad; -var _elm_lang$core$String$dropRight = _elm_lang$core$Native_String.dropRight; -var _elm_lang$core$String$dropLeft = _elm_lang$core$Native_String.dropLeft; -var _elm_lang$core$String$right = _elm_lang$core$Native_String.right; -var _elm_lang$core$String$left = _elm_lang$core$Native_String.left; -var _elm_lang$core$String$slice = _elm_lang$core$Native_String.slice; -var _elm_lang$core$String$repeat = _elm_lang$core$Native_String.repeat; -var _elm_lang$core$String$join = _elm_lang$core$Native_String.join; -var _elm_lang$core$String$split = _elm_lang$core$Native_String.split; -var _elm_lang$core$String$foldr = _elm_lang$core$Native_String.foldr; -var _elm_lang$core$String$foldl = _elm_lang$core$Native_String.foldl; -var _elm_lang$core$String$reverse = _elm_lang$core$Native_String.reverse; -var _elm_lang$core$String$filter = _elm_lang$core$Native_String.filter; -var _elm_lang$core$String$map = _elm_lang$core$Native_String.map; -var _elm_lang$core$String$length = _elm_lang$core$Native_String.length; -var _elm_lang$core$String$concat = _elm_lang$core$Native_String.concat; -var _elm_lang$core$String$append = _elm_lang$core$Native_String.append; -var _elm_lang$core$String$uncons = _elm_lang$core$Native_String.uncons; -var _elm_lang$core$String$cons = _elm_lang$core$Native_String.cons; -var _elm_lang$core$String$fromChar = function ($char) { - return A2(_elm_lang$core$String$cons, $char, ''); -}; -var _elm_lang$core$String$isEmpty = _elm_lang$core$Native_String.isEmpty; - -var _elm_lang$core$Dict$foldr = F3( - function (f, acc, t) { - foldr: - while (true) { - var _p0 = t; - if (_p0.ctor === 'RBEmpty_elm_builtin') { - return acc; - } else { - var _v1 = f, - _v2 = A3( - f, - _p0._1, - _p0._2, - A3(_elm_lang$core$Dict$foldr, f, acc, _p0._4)), - _v3 = _p0._3; - f = _v1; - acc = _v2; - t = _v3; - continue foldr; - } - } - }); -var _elm_lang$core$Dict$keys = function (dict) { - return A3( - _elm_lang$core$Dict$foldr, - F3( - function (key, value, keyList) { - return {ctor: '::', _0: key, _1: keyList}; - }), - {ctor: '[]'}, - dict); -}; -var _elm_lang$core$Dict$values = function (dict) { - return A3( - _elm_lang$core$Dict$foldr, - F3( - function (key, value, valueList) { - return {ctor: '::', _0: value, _1: valueList}; - }), - {ctor: '[]'}, - dict); -}; -var _elm_lang$core$Dict$toList = function (dict) { - return A3( - _elm_lang$core$Dict$foldr, - F3( - function (key, value, list) { - return { - ctor: '::', - _0: {ctor: '_Tuple2', _0: key, _1: value}, - _1: list - }; - }), - {ctor: '[]'}, - dict); -}; -var _elm_lang$core$Dict$foldl = F3( - function (f, acc, dict) { - foldl: - while (true) { - var _p1 = dict; - if (_p1.ctor === 'RBEmpty_elm_builtin') { - return acc; - } else { - var _v5 = f, - _v6 = A3( - f, - _p1._1, - _p1._2, - A3(_elm_lang$core$Dict$foldl, f, acc, _p1._3)), - _v7 = _p1._4; - f = _v5; - acc = _v6; - dict = _v7; - continue foldl; - } - } - }); -var _elm_lang$core$Dict$merge = F6( - function (leftStep, bothStep, rightStep, leftDict, rightDict, initialResult) { - var stepState = F3( - function (rKey, rValue, _p2) { - stepState: - while (true) { - var _p3 = _p2; - var _p9 = _p3._1; - var _p8 = _p3._0; - var _p4 = _p8; - if (_p4.ctor === '[]') { - return { - ctor: '_Tuple2', - _0: _p8, - _1: A3(rightStep, rKey, rValue, _p9) - }; - } else { - var _p7 = _p4._1; - var _p6 = _p4._0._1; - var _p5 = _p4._0._0; - if (_elm_lang$core$Native_Utils.cmp(_p5, rKey) < 0) { - var _v10 = rKey, - _v11 = rValue, - _v12 = { - ctor: '_Tuple2', - _0: _p7, - _1: A3(leftStep, _p5, _p6, _p9) - }; - rKey = _v10; - rValue = _v11; - _p2 = _v12; - continue stepState; - } else { - if (_elm_lang$core$Native_Utils.cmp(_p5, rKey) > 0) { - return { - ctor: '_Tuple2', - _0: _p8, - _1: A3(rightStep, rKey, rValue, _p9) - }; - } else { - return { - ctor: '_Tuple2', - _0: _p7, - _1: A4(bothStep, _p5, _p6, rValue, _p9) - }; - } - } - } - } - }); - var _p10 = A3( - _elm_lang$core$Dict$foldl, - stepState, - { - ctor: '_Tuple2', - _0: _elm_lang$core$Dict$toList(leftDict), - _1: initialResult - }, - rightDict); - var leftovers = _p10._0; - var intermediateResult = _p10._1; - return A3( - _elm_lang$core$List$foldl, - F2( - function (_p11, result) { - var _p12 = _p11; - return A3(leftStep, _p12._0, _p12._1, result); - }), - intermediateResult, - leftovers); - }); -var _elm_lang$core$Dict$reportRemBug = F4( - function (msg, c, lgot, rgot) { - return _elm_lang$core$Native_Debug.crash( - _elm_lang$core$String$concat( - { - ctor: '::', - _0: 'Internal red-black tree invariant violated, expected ', - _1: { - ctor: '::', - _0: msg, - _1: { - ctor: '::', - _0: ' and got ', - _1: { - ctor: '::', - _0: _elm_lang$core$Basics$toString(c), - _1: { - ctor: '::', - _0: '/', - _1: { - ctor: '::', - _0: lgot, - _1: { - ctor: '::', - _0: '/', - _1: { - ctor: '::', - _0: rgot, - _1: { - ctor: '::', - _0: '\nPlease report this bug to ', - _1: {ctor: '[]'} - } - } - } - } - } - } - } - } - })); - }); -var _elm_lang$core$Dict$isBBlack = function (dict) { - var _p13 = dict; - _v14_2: - do { - if (_p13.ctor === 'RBNode_elm_builtin') { - if (_p13._0.ctor === 'BBlack') { - return true; - } else { - break _v14_2; - } - } else { - if (_p13._0.ctor === 'LBBlack') { - return true; - } else { - break _v14_2; - } - } - } while(false); - return false; -}; -var _elm_lang$core$Dict$sizeHelp = F2( - function (n, dict) { - sizeHelp: - while (true) { - var _p14 = dict; - if (_p14.ctor === 'RBEmpty_elm_builtin') { - return n; - } else { - var _v16 = A2(_elm_lang$core$Dict$sizeHelp, n + 1, _p14._4), - _v17 = _p14._3; - n = _v16; - dict = _v17; - continue sizeHelp; - } - } - }); -var _elm_lang$core$Dict$size = function (dict) { - return A2(_elm_lang$core$Dict$sizeHelp, 0, dict); -}; -var _elm_lang$core$Dict$get = F2( - function (targetKey, dict) { - get: - while (true) { - var _p15 = dict; - if (_p15.ctor === 'RBEmpty_elm_builtin') { - return _elm_lang$core$Maybe$Nothing; - } else { - var _p16 = A2(_elm_lang$core$Basics$compare, targetKey, _p15._1); - switch (_p16.ctor) { - case 'LT': - var _v20 = targetKey, - _v21 = _p15._3; - targetKey = _v20; - dict = _v21; - continue get; - case 'EQ': - return _elm_lang$core$Maybe$Just(_p15._2); - default: - var _v22 = targetKey, - _v23 = _p15._4; - targetKey = _v22; - dict = _v23; - continue get; - } - } - } - }); -var _elm_lang$core$Dict$member = F2( - function (key, dict) { - var _p17 = A2(_elm_lang$core$Dict$get, key, dict); - if (_p17.ctor === 'Just') { - return true; - } else { - return false; - } - }); -var _elm_lang$core$Dict$maxWithDefault = F3( - function (k, v, r) { - maxWithDefault: - while (true) { - var _p18 = r; - if (_p18.ctor === 'RBEmpty_elm_builtin') { - return {ctor: '_Tuple2', _0: k, _1: v}; - } else { - var _v26 = _p18._1, - _v27 = _p18._2, - _v28 = _p18._4; - k = _v26; - v = _v27; - r = _v28; - continue maxWithDefault; - } - } - }); -var _elm_lang$core$Dict$NBlack = {ctor: 'NBlack'}; -var _elm_lang$core$Dict$BBlack = {ctor: 'BBlack'}; -var _elm_lang$core$Dict$Black = {ctor: 'Black'}; -var _elm_lang$core$Dict$blackish = function (t) { - var _p19 = t; - if (_p19.ctor === 'RBNode_elm_builtin') { - var _p20 = _p19._0; - return _elm_lang$core$Native_Utils.eq(_p20, _elm_lang$core$Dict$Black) || _elm_lang$core$Native_Utils.eq(_p20, _elm_lang$core$Dict$BBlack); - } else { - return true; - } -}; -var _elm_lang$core$Dict$Red = {ctor: 'Red'}; -var _elm_lang$core$Dict$moreBlack = function (color) { - var _p21 = color; - switch (_p21.ctor) { - case 'Black': - return _elm_lang$core$Dict$BBlack; - case 'Red': - return _elm_lang$core$Dict$Black; - case 'NBlack': - return _elm_lang$core$Dict$Red; - default: - return _elm_lang$core$Native_Debug.crash('Can\'t make a double black node more black!'); - } -}; -var _elm_lang$core$Dict$lessBlack = function (color) { - var _p22 = color; - switch (_p22.ctor) { - case 'BBlack': - return _elm_lang$core$Dict$Black; - case 'Black': - return _elm_lang$core$Dict$Red; - case 'Red': - return _elm_lang$core$Dict$NBlack; - default: - return _elm_lang$core$Native_Debug.crash('Can\'t make a negative black node less black!'); - } -}; -var _elm_lang$core$Dict$LBBlack = {ctor: 'LBBlack'}; -var _elm_lang$core$Dict$LBlack = {ctor: 'LBlack'}; -var _elm_lang$core$Dict$RBEmpty_elm_builtin = function (a) { - return {ctor: 'RBEmpty_elm_builtin', _0: a}; -}; -var _elm_lang$core$Dict$empty = _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBlack); -var _elm_lang$core$Dict$isEmpty = function (dict) { - return _elm_lang$core$Native_Utils.eq(dict, _elm_lang$core$Dict$empty); -}; -var _elm_lang$core$Dict$RBNode_elm_builtin = F5( - function (a, b, c, d, e) { - return {ctor: 'RBNode_elm_builtin', _0: a, _1: b, _2: c, _3: d, _4: e}; - }); -var _elm_lang$core$Dict$ensureBlackRoot = function (dict) { - var _p23 = dict; - if ((_p23.ctor === 'RBNode_elm_builtin') && (_p23._0.ctor === 'Red')) { - return A5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Black, _p23._1, _p23._2, _p23._3, _p23._4); - } else { - return dict; - } -}; -var _elm_lang$core$Dict$lessBlackTree = function (dict) { - var _p24 = dict; - if (_p24.ctor === 'RBNode_elm_builtin') { - return A5( - _elm_lang$core$Dict$RBNode_elm_builtin, - _elm_lang$core$Dict$lessBlack(_p24._0), - _p24._1, - _p24._2, - _p24._3, - _p24._4); - } else { - return _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBlack); - } -}; -var _elm_lang$core$Dict$balancedTree = function (col) { - return function (xk) { - return function (xv) { - return function (yk) { - return function (yv) { - return function (zk) { - return function (zv) { - return function (a) { - return function (b) { - return function (c) { - return function (d) { - return A5( - _elm_lang$core$Dict$RBNode_elm_builtin, - _elm_lang$core$Dict$lessBlack(col), - yk, - yv, - A5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Black, xk, xv, a, b), - A5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Black, zk, zv, c, d)); - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; -}; -var _elm_lang$core$Dict$blacken = function (t) { - var _p25 = t; - if (_p25.ctor === 'RBEmpty_elm_builtin') { - return _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBlack); - } else { - return A5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Black, _p25._1, _p25._2, _p25._3, _p25._4); - } -}; -var _elm_lang$core$Dict$redden = function (t) { - var _p26 = t; - if (_p26.ctor === 'RBEmpty_elm_builtin') { - return _elm_lang$core$Native_Debug.crash('can\'t make a Leaf red'); - } else { - return A5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Red, _p26._1, _p26._2, _p26._3, _p26._4); - } -}; -var _elm_lang$core$Dict$balanceHelp = function (tree) { - var _p27 = tree; - _v36_6: - do { - _v36_5: - do { - _v36_4: - do { - _v36_3: - do { - _v36_2: - do { - _v36_1: - do { - _v36_0: - do { - if (_p27.ctor === 'RBNode_elm_builtin') { - if (_p27._3.ctor === 'RBNode_elm_builtin') { - if (_p27._4.ctor === 'RBNode_elm_builtin') { - switch (_p27._3._0.ctor) { - case 'Red': - switch (_p27._4._0.ctor) { - case 'Red': - if ((_p27._3._3.ctor === 'RBNode_elm_builtin') && (_p27._3._3._0.ctor === 'Red')) { - break _v36_0; - } else { - if ((_p27._3._4.ctor === 'RBNode_elm_builtin') && (_p27._3._4._0.ctor === 'Red')) { - break _v36_1; - } else { - if ((_p27._4._3.ctor === 'RBNode_elm_builtin') && (_p27._4._3._0.ctor === 'Red')) { - break _v36_2; - } else { - if ((_p27._4._4.ctor === 'RBNode_elm_builtin') && (_p27._4._4._0.ctor === 'Red')) { - break _v36_3; - } else { - break _v36_6; - } - } - } - } - case 'NBlack': - if ((_p27._3._3.ctor === 'RBNode_elm_builtin') && (_p27._3._3._0.ctor === 'Red')) { - break _v36_0; - } else { - if ((_p27._3._4.ctor === 'RBNode_elm_builtin') && (_p27._3._4._0.ctor === 'Red')) { - break _v36_1; - } else { - if (((((_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')) { - break _v36_4; - } else { - break _v36_6; - } - } - } - default: - if ((_p27._3._3.ctor === 'RBNode_elm_builtin') && (_p27._3._3._0.ctor === 'Red')) { - break _v36_0; - } else { - if ((_p27._3._4.ctor === 'RBNode_elm_builtin') && (_p27._3._4._0.ctor === 'Red')) { - break _v36_1; - } else { - break _v36_6; - } - } - } - case 'NBlack': - switch (_p27._4._0.ctor) { - case 'Red': - if ((_p27._4._3.ctor === 'RBNode_elm_builtin') && (_p27._4._3._0.ctor === 'Red')) { - break _v36_2; - } else { - if ((_p27._4._4.ctor === 'RBNode_elm_builtin') && (_p27._4._4._0.ctor === 'Red')) { - break _v36_3; - } else { - if (((((_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')) { - break _v36_5; - } else { - break _v36_6; - } - } - } - case 'NBlack': - if (_p27._0.ctor === 'BBlack') { - if ((((_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')) { - break _v36_4; - } else { - if ((((_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')) { - break _v36_5; - } else { - break _v36_6; - } - } - } else { - break _v36_6; - } - default: - if (((((_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')) { - break _v36_5; - } else { - break _v36_6; - } - } - default: - switch (_p27._4._0.ctor) { - case 'Red': - if ((_p27._4._3.ctor === 'RBNode_elm_builtin') && (_p27._4._3._0.ctor === 'Red')) { - break _v36_2; - } else { - if ((_p27._4._4.ctor === 'RBNode_elm_builtin') && (_p27._4._4._0.ctor === 'Red')) { - break _v36_3; - } else { - break _v36_6; - } - } - case 'NBlack': - if (((((_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')) { - break _v36_4; - } else { - break _v36_6; - } - default: - break _v36_6; - } - } - } else { - switch (_p27._3._0.ctor) { - case 'Red': - if ((_p27._3._3.ctor === 'RBNode_elm_builtin') && (_p27._3._3._0.ctor === 'Red')) { - break _v36_0; - } else { - if ((_p27._3._4.ctor === 'RBNode_elm_builtin') && (_p27._3._4._0.ctor === 'Red')) { - break _v36_1; - } else { - break _v36_6; - } - } - case 'NBlack': - if (((((_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')) { - break _v36_5; - } else { - break _v36_6; - } - default: - break _v36_6; - } - } - } else { - if (_p27._4.ctor === 'RBNode_elm_builtin') { - switch (_p27._4._0.ctor) { - case 'Red': - if ((_p27._4._3.ctor === 'RBNode_elm_builtin') && (_p27._4._3._0.ctor === 'Red')) { - break _v36_2; - } else { - if ((_p27._4._4.ctor === 'RBNode_elm_builtin') && (_p27._4._4._0.ctor === 'Red')) { - break _v36_3; - } else { - break _v36_6; - } - } - case 'NBlack': - if (((((_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')) { - break _v36_4; - } else { - break _v36_6; - } - default: - break _v36_6; - } - } else { - break _v36_6; - } - } - } else { - break _v36_6; - } - } while(false); - return _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); - } while(false); - return _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); - } while(false); - return _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); - } while(false); - return _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); - } while(false); - return A5( - _elm_lang$core$Dict$RBNode_elm_builtin, - _elm_lang$core$Dict$Black, - _p27._4._3._1, - _p27._4._3._2, - A5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Black, _p27._1, _p27._2, _p27._3, _p27._4._3._3), - A5( - _elm_lang$core$Dict$balance, - _elm_lang$core$Dict$Black, - _p27._4._1, - _p27._4._2, - _p27._4._3._4, - _elm_lang$core$Dict$redden(_p27._4._4))); - } while(false); - return A5( - _elm_lang$core$Dict$RBNode_elm_builtin, - _elm_lang$core$Dict$Black, - _p27._3._4._1, - _p27._3._4._2, - A5( - _elm_lang$core$Dict$balance, - _elm_lang$core$Dict$Black, - _p27._3._1, - _p27._3._2, - _elm_lang$core$Dict$redden(_p27._3._3), - _p27._3._4._3), - A5(_elm_lang$core$Dict$RBNode_elm_builtin, _elm_lang$core$Dict$Black, _p27._1, _p27._2, _p27._3._4._4, _p27._4)); - } while(false); - return tree; -}; -var _elm_lang$core$Dict$balance = F5( - function (c, k, v, l, r) { - var tree = A5(_elm_lang$core$Dict$RBNode_elm_builtin, c, k, v, l, r); - return _elm_lang$core$Dict$blackish(tree) ? _elm_lang$core$Dict$balanceHelp(tree) : tree; - }); -var _elm_lang$core$Dict$bubble = F5( - function (c, k, v, l, r) { - return (_elm_lang$core$Dict$isBBlack(l) || _elm_lang$core$Dict$isBBlack(r)) ? A5( - _elm_lang$core$Dict$balance, - _elm_lang$core$Dict$moreBlack(c), - k, - v, - _elm_lang$core$Dict$lessBlackTree(l), - _elm_lang$core$Dict$lessBlackTree(r)) : A5(_elm_lang$core$Dict$RBNode_elm_builtin, c, k, v, l, r); - }); -var _elm_lang$core$Dict$removeMax = F5( - function (c, k, v, l, r) { - var _p28 = r; - if (_p28.ctor === 'RBEmpty_elm_builtin') { - return A3(_elm_lang$core$Dict$rem, c, l, r); - } else { - return A5( - _elm_lang$core$Dict$bubble, - c, - k, - v, - l, - A5(_elm_lang$core$Dict$removeMax, _p28._0, _p28._1, _p28._2, _p28._3, _p28._4)); - } - }); -var _elm_lang$core$Dict$rem = F3( - function (color, left, right) { - var _p29 = {ctor: '_Tuple2', _0: left, _1: right}; - if (_p29._0.ctor === 'RBEmpty_elm_builtin') { - if (_p29._1.ctor === 'RBEmpty_elm_builtin') { - var _p30 = color; - switch (_p30.ctor) { - case 'Red': - return _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBlack); - case 'Black': - return _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBBlack); - default: - return _elm_lang$core$Native_Debug.crash('cannot have bblack or nblack nodes at this point'); - } - } else { - var _p33 = _p29._1._0; - var _p32 = _p29._0._0; - var _p31 = {ctor: '_Tuple3', _0: color, _1: _p32, _2: _p33}; - if ((((_p31.ctor === '_Tuple3') && (_p31._0.ctor === 'Black')) && (_p31._1.ctor === 'LBlack')) && (_p31._2.ctor === 'Red')) { - return 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); - } else { - return A4( - _elm_lang$core$Dict$reportRemBug, - 'Black/LBlack/Red', - color, - _elm_lang$core$Basics$toString(_p32), - _elm_lang$core$Basics$toString(_p33)); - } - } - } else { - if (_p29._1.ctor === 'RBEmpty_elm_builtin') { - var _p36 = _p29._1._0; - var _p35 = _p29._0._0; - var _p34 = {ctor: '_Tuple3', _0: color, _1: _p35, _2: _p36}; - if ((((_p34.ctor === '_Tuple3') && (_p34._0.ctor === 'Black')) && (_p34._1.ctor === 'Red')) && (_p34._2.ctor === 'LBlack')) { - return 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); - } else { - return A4( - _elm_lang$core$Dict$reportRemBug, - 'Black/Red/LBlack', - color, - _elm_lang$core$Basics$toString(_p35), - _elm_lang$core$Basics$toString(_p36)); - } - } else { - var _p40 = _p29._0._2; - var _p39 = _p29._0._4; - var _p38 = _p29._0._1; - var newLeft = A5(_elm_lang$core$Dict$removeMax, _p29._0._0, _p38, _p40, _p29._0._3, _p39); - var _p37 = A3(_elm_lang$core$Dict$maxWithDefault, _p38, _p40, _p39); - var k = _p37._0; - var v = _p37._1; - return A5(_elm_lang$core$Dict$bubble, color, k, v, newLeft, right); - } - } - }); -var _elm_lang$core$Dict$map = F2( - function (f, dict) { - var _p41 = dict; - if (_p41.ctor === 'RBEmpty_elm_builtin') { - return _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBlack); - } else { - var _p42 = _p41._1; - return A5( - _elm_lang$core$Dict$RBNode_elm_builtin, - _p41._0, - _p42, - A2(f, _p42, _p41._2), - A2(_elm_lang$core$Dict$map, f, _p41._3), - A2(_elm_lang$core$Dict$map, f, _p41._4)); - } - }); -var _elm_lang$core$Dict$Same = {ctor: 'Same'}; -var _elm_lang$core$Dict$Remove = {ctor: 'Remove'}; -var _elm_lang$core$Dict$Insert = {ctor: 'Insert'}; -var _elm_lang$core$Dict$update = F3( - function (k, alter, dict) { - var up = function (dict) { - var _p43 = dict; - if (_p43.ctor === 'RBEmpty_elm_builtin') { - var _p44 = alter(_elm_lang$core$Maybe$Nothing); - if (_p44.ctor === 'Nothing') { - return {ctor: '_Tuple2', _0: _elm_lang$core$Dict$Same, _1: _elm_lang$core$Dict$empty}; - } else { - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Dict$Insert, - _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) - }; - } - } else { - var _p55 = _p43._2; - var _p54 = _p43._4; - var _p53 = _p43._3; - var _p52 = _p43._1; - var _p51 = _p43._0; - var _p45 = A2(_elm_lang$core$Basics$compare, k, _p52); - switch (_p45.ctor) { - case 'EQ': - var _p46 = alter( - _elm_lang$core$Maybe$Just(_p55)); - if (_p46.ctor === 'Nothing') { - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Dict$Remove, - _1: A3(_elm_lang$core$Dict$rem, _p51, _p53, _p54) - }; - } else { - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Dict$Same, - _1: A5(_elm_lang$core$Dict$RBNode_elm_builtin, _p51, _p52, _p46._0, _p53, _p54) - }; - } - case 'LT': - var _p47 = up(_p53); - var flag = _p47._0; - var newLeft = _p47._1; - var _p48 = flag; - switch (_p48.ctor) { - case 'Same': - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Dict$Same, - _1: A5(_elm_lang$core$Dict$RBNode_elm_builtin, _p51, _p52, _p55, newLeft, _p54) - }; - case 'Insert': - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Dict$Insert, - _1: A5(_elm_lang$core$Dict$balance, _p51, _p52, _p55, newLeft, _p54) - }; - default: - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Dict$Remove, - _1: A5(_elm_lang$core$Dict$bubble, _p51, _p52, _p55, newLeft, _p54) - }; - } - default: - var _p49 = up(_p54); - var flag = _p49._0; - var newRight = _p49._1; - var _p50 = flag; - switch (_p50.ctor) { - case 'Same': - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Dict$Same, - _1: A5(_elm_lang$core$Dict$RBNode_elm_builtin, _p51, _p52, _p55, _p53, newRight) - }; - case 'Insert': - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Dict$Insert, - _1: A5(_elm_lang$core$Dict$balance, _p51, _p52, _p55, _p53, newRight) - }; - default: - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Dict$Remove, - _1: A5(_elm_lang$core$Dict$bubble, _p51, _p52, _p55, _p53, newRight) - }; - } - } - } - }; - var _p56 = up(dict); - var flag = _p56._0; - var updatedDict = _p56._1; - var _p57 = flag; - switch (_p57.ctor) { - case 'Same': - return updatedDict; - case 'Insert': - return _elm_lang$core$Dict$ensureBlackRoot(updatedDict); - default: - return _elm_lang$core$Dict$blacken(updatedDict); - } - }); -var _elm_lang$core$Dict$insert = F3( - function (key, value, dict) { - return A3( - _elm_lang$core$Dict$update, - key, - _elm_lang$core$Basics$always( - _elm_lang$core$Maybe$Just(value)), - dict); - }); -var _elm_lang$core$Dict$singleton = F2( - function (key, value) { - return A3(_elm_lang$core$Dict$insert, key, value, _elm_lang$core$Dict$empty); - }); -var _elm_lang$core$Dict$union = F2( - function (t1, t2) { - return A3(_elm_lang$core$Dict$foldl, _elm_lang$core$Dict$insert, t2, t1); - }); -var _elm_lang$core$Dict$filter = F2( - function (predicate, dictionary) { - var add = F3( - function (key, value, dict) { - return A2(predicate, key, value) ? A3(_elm_lang$core$Dict$insert, key, value, dict) : dict; - }); - return A3(_elm_lang$core$Dict$foldl, add, _elm_lang$core$Dict$empty, dictionary); - }); -var _elm_lang$core$Dict$intersect = F2( - function (t1, t2) { - return A2( - _elm_lang$core$Dict$filter, - F2( - function (k, _p58) { - return A2(_elm_lang$core$Dict$member, k, t2); - }), - t1); - }); -var _elm_lang$core$Dict$partition = F2( - function (predicate, dict) { - var add = F3( - function (key, value, _p59) { - var _p60 = _p59; - var _p62 = _p60._1; - var _p61 = _p60._0; - return A2(predicate, key, value) ? { - ctor: '_Tuple2', - _0: A3(_elm_lang$core$Dict$insert, key, value, _p61), - _1: _p62 - } : { - ctor: '_Tuple2', - _0: _p61, - _1: A3(_elm_lang$core$Dict$insert, key, value, _p62) - }; - }); - return A3( - _elm_lang$core$Dict$foldl, - add, - {ctor: '_Tuple2', _0: _elm_lang$core$Dict$empty, _1: _elm_lang$core$Dict$empty}, - dict); - }); -var _elm_lang$core$Dict$fromList = function (assocs) { - return A3( - _elm_lang$core$List$foldl, - F2( - function (_p63, dict) { - var _p64 = _p63; - return A3(_elm_lang$core$Dict$insert, _p64._0, _p64._1, dict); - }), - _elm_lang$core$Dict$empty, - assocs); -}; -var _elm_lang$core$Dict$remove = F2( - function (key, dict) { - return A3( - _elm_lang$core$Dict$update, - key, - _elm_lang$core$Basics$always(_elm_lang$core$Maybe$Nothing), - dict); - }); -var _elm_lang$core$Dict$diff = F2( - function (t1, t2) { - return A3( - _elm_lang$core$Dict$foldl, - F3( - function (k, v, t) { - return A2(_elm_lang$core$Dict$remove, k, t); - }), - t1, - t2); - }); - -//import Maybe, Native.Array, Native.List, Native.Utils, Result // - -var _elm_lang$core$Native_Json = function() { - - -// CORE DECODERS - -function succeed(msg) -{ - return { - ctor: '', - tag: 'succeed', - msg: msg - }; -} - -function fail(msg) -{ - return { - ctor: '', - tag: 'fail', - msg: msg - }; -} - -function decodePrimitive(tag) -{ - return { - ctor: '', - tag: tag - }; -} - -function decodeContainer(tag, decoder) -{ - return { - ctor: '', - tag: tag, - decoder: decoder - }; -} - -function decodeNull(value) -{ - return { - ctor: '', - tag: 'null', - value: value - }; -} - -function decodeField(field, decoder) -{ - return { - ctor: '', - tag: 'field', - field: field, - decoder: decoder - }; -} - -function decodeIndex(index, decoder) -{ - return { - ctor: '', - tag: 'index', - index: index, - decoder: decoder - }; -} - -function decodeKeyValuePairs(decoder) -{ - return { - ctor: '', - tag: 'key-value', - decoder: decoder - }; -} - -function mapMany(f, decoders) -{ - return { - ctor: '', - tag: 'map-many', - func: f, - decoders: decoders - }; -} - -function andThen(callback, decoder) -{ - return { - ctor: '', - tag: 'andThen', - decoder: decoder, - callback: callback - }; -} - -function oneOf(decoders) -{ - return { - ctor: '', - tag: 'oneOf', - decoders: decoders - }; -} - - -// DECODING OBJECTS - -function map1(f, d1) -{ - return mapMany(f, [d1]); -} - -function map2(f, d1, d2) -{ - return mapMany(f, [d1, d2]); -} - -function map3(f, d1, d2, d3) -{ - return mapMany(f, [d1, d2, d3]); -} - -function map4(f, d1, d2, d3, d4) -{ - return mapMany(f, [d1, d2, d3, d4]); -} - -function map5(f, d1, d2, d3, d4, d5) -{ - return mapMany(f, [d1, d2, d3, d4, d5]); -} - -function map6(f, d1, d2, d3, d4, d5, d6) -{ - return mapMany(f, [d1, d2, d3, d4, d5, d6]); -} - -function map7(f, d1, d2, d3, d4, d5, d6, d7) -{ - return mapMany(f, [d1, d2, d3, d4, d5, d6, d7]); -} - -function map8(f, d1, d2, d3, d4, d5, d6, d7, d8) -{ - return mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]); -} - - -// DECODE HELPERS - -function ok(value) -{ - return { tag: 'ok', value: value }; -} - -function badPrimitive(type, value) -{ - return { tag: 'primitive', type: type, value: value }; -} - -function badIndex(index, nestedProblems) -{ - return { tag: 'index', index: index, rest: nestedProblems }; -} - -function badField(field, nestedProblems) -{ - return { tag: 'field', field: field, rest: nestedProblems }; -} - -function badIndex(index, nestedProblems) -{ - return { tag: 'index', index: index, rest: nestedProblems }; -} - -function badOneOf(problems) -{ - return { tag: 'oneOf', problems: problems }; -} - -function bad(msg) -{ - return { tag: 'fail', msg: msg }; -} - -function badToString(problem) -{ - var context = '_'; - while (problem) - { - switch (problem.tag) - { - case 'primitive': - return 'Expecting ' + problem.type - + (context === '_' ? '' : ' at ' + context) - + ' but instead got: ' + jsToString(problem.value); - - case 'index': - context += '[' + problem.index + ']'; - problem = problem.rest; - break; - - case 'field': - context += '.' + problem.field; - problem = problem.rest; - break; - - case 'oneOf': - var problems = problem.problems; - for (var i = 0; i < problems.length; i++) - { - problems[i] = badToString(problems[i]); - } - return 'I ran into the following problems' - + (context === '_' ? '' : ' at ' + context) - + ':\n\n' + problems.join('\n'); - - case 'fail': - return 'I ran into a `fail` decoder' - + (context === '_' ? '' : ' at ' + context) - + ': ' + problem.msg; - } - } -} - -function jsToString(value) -{ - return value === undefined - ? 'undefined' - : JSON.stringify(value); -} - - -// DECODE - -function runOnString(decoder, string) -{ - var json; - try - { - json = JSON.parse(string); - } - catch (e) - { - return _elm_lang$core$Result$Err('Given an invalid JSON: ' + e.message); - } - return run(decoder, json); -} - -function run(decoder, value) -{ - var result = runHelp(decoder, value); - return (result.tag === 'ok') - ? _elm_lang$core$Result$Ok(result.value) - : _elm_lang$core$Result$Err(badToString(result)); -} - -function runHelp(decoder, value) -{ - switch (decoder.tag) - { - case 'bool': - return (typeof value === 'boolean') - ? ok(value) - : badPrimitive('a Bool', value); - - case 'int': - if (typeof value !== 'number') { - return badPrimitive('an Int', value); - } - - if (-2147483647 < value && value < 2147483647 && (value | 0) === value) { - return ok(value); - } - - if (isFinite(value) && !(value % 1)) { - return ok(value); - } - - return badPrimitive('an Int', value); - - case 'float': - return (typeof value === 'number') - ? ok(value) - : badPrimitive('a Float', value); - - case 'string': - return (typeof value === 'string') - ? ok(value) - : (value instanceof String) - ? ok(value + '') - : badPrimitive('a String', value); - - case 'null': - return (value === null) - ? ok(decoder.value) - : badPrimitive('null', value); - - case 'value': - return ok(value); - - case 'list': - if (!(value instanceof Array)) - { - return badPrimitive('a List', value); - } - - var list = _elm_lang$core$Native_List.Nil; - for (var i = value.length; i--; ) - { - var result = runHelp(decoder.decoder, value[i]); - if (result.tag !== 'ok') - { - return badIndex(i, result) - } - list = _elm_lang$core$Native_List.Cons(result.value, list); - } - return ok(list); - - case 'array': - if (!(value instanceof Array)) - { - return badPrimitive('an Array', value); - } - - var len = value.length; - var array = new Array(len); - for (var i = len; i--; ) - { - var result = runHelp(decoder.decoder, value[i]); - if (result.tag !== 'ok') - { - return badIndex(i, result); - } - array[i] = result.value; - } - return ok(_elm_lang$core$Native_Array.fromJSArray(array)); - - case 'maybe': - var result = runHelp(decoder.decoder, value); - return (result.tag === 'ok') - ? ok(_elm_lang$core$Maybe$Just(result.value)) - : ok(_elm_lang$core$Maybe$Nothing); - - case 'field': - var field = decoder.field; - if (typeof value !== 'object' || value === null || !(field in value)) - { - return badPrimitive('an object with a field named `' + field + '`', value); - } - - var result = runHelp(decoder.decoder, value[field]); - return (result.tag === 'ok') ? result : badField(field, result); - - case 'index': - var index = decoder.index; - if (!(value instanceof Array)) - { - return badPrimitive('an array', value); - } - if (index >= value.length) - { - return badPrimitive('a longer array. Need index ' + index + ' but there are only ' + value.length + ' entries', value); - } - - var result = runHelp(decoder.decoder, value[index]); - return (result.tag === 'ok') ? result : badIndex(index, result); - - case 'key-value': - if (typeof value !== 'object' || value === null || value instanceof Array) - { - return badPrimitive('an object', value); - } - - var keyValuePairs = _elm_lang$core$Native_List.Nil; - for (var key in value) - { - var result = runHelp(decoder.decoder, value[key]); - if (result.tag !== 'ok') - { - return badField(key, result); - } - var pair = _elm_lang$core$Native_Utils.Tuple2(key, result.value); - keyValuePairs = _elm_lang$core$Native_List.Cons(pair, keyValuePairs); - } - return ok(keyValuePairs); - - case 'map-many': - var answer = decoder.func; - var decoders = decoder.decoders; - for (var i = 0; i < decoders.length; i++) - { - var result = runHelp(decoders[i], value); - if (result.tag !== 'ok') - { - return result; - } - answer = answer(result.value); - } - return ok(answer); - - case 'andThen': - var result = runHelp(decoder.decoder, value); - return (result.tag !== 'ok') - ? result - : runHelp(decoder.callback(result.value), value); - - case 'oneOf': - var errors = []; - var temp = decoder.decoders; - while (temp.ctor !== '[]') - { - var result = runHelp(temp._0, value); - - if (result.tag === 'ok') - { - return result; - } - - errors.push(result); - - temp = temp._1; - } - return badOneOf(errors); - - case 'fail': - return bad(decoder.msg); - - case 'succeed': - return ok(decoder.msg); - } -} - - -// EQUALITY - -function equality(a, b) -{ - if (a === b) - { - return true; - } - - if (a.tag !== b.tag) - { - return false; - } - - switch (a.tag) - { - case 'succeed': - case 'fail': - return a.msg === b.msg; - - case 'bool': - case 'int': - case 'float': - case 'string': - case 'value': - return true; - - case 'null': - return a.value === b.value; - - case 'list': - case 'array': - case 'maybe': - case 'key-value': - return equality(a.decoder, b.decoder); - - case 'field': - return a.field === b.field && equality(a.decoder, b.decoder); - - case 'index': - return a.index === b.index && equality(a.decoder, b.decoder); - - case 'map-many': - if (a.func !== b.func) - { - return false; - } - return listEquality(a.decoders, b.decoders); - - case 'andThen': - return a.callback === b.callback && equality(a.decoder, b.decoder); - - case 'oneOf': - return listEquality(a.decoders, b.decoders); - } -} - -function listEquality(aDecoders, bDecoders) -{ - var len = aDecoders.length; - if (len !== bDecoders.length) - { - return false; - } - for (var i = 0; i < len; i++) - { - if (!equality(aDecoders[i], bDecoders[i])) - { - return false; - } - } - return true; -} - - -// ENCODE - -function encode(indentLevel, value) -{ - return JSON.stringify(value, null, indentLevel); -} - -function identity(value) -{ - return value; -} - -function encodeObject(keyValuePairs) -{ - var obj = {}; - while (keyValuePairs.ctor !== '[]') - { - var pair = keyValuePairs._0; - obj[pair._0] = pair._1; - keyValuePairs = keyValuePairs._1; - } - return obj; -} - -return { - encode: F2(encode), - runOnString: F2(runOnString), - run: F2(run), - - decodeNull: decodeNull, - decodePrimitive: decodePrimitive, - decodeContainer: F2(decodeContainer), - - decodeField: F2(decodeField), - decodeIndex: F2(decodeIndex), - - map1: F2(map1), - map2: F3(map2), - map3: F4(map3), - map4: F5(map4), - map5: F6(map5), - map6: F7(map6), - map7: F8(map7), - map8: F9(map8), - decodeKeyValuePairs: decodeKeyValuePairs, - - andThen: F2(andThen), - fail: fail, - succeed: succeed, - oneOf: oneOf, - - identity: identity, - encodeNull: null, - encodeArray: _elm_lang$core$Native_Array.toJSArray, - encodeList: _elm_lang$core$Native_List.toArray, - encodeObject: encodeObject, - - equality: equality -}; - -}(); - -var _elm_lang$core$Json_Encode$list = _elm_lang$core$Native_Json.encodeList; -var _elm_lang$core$Json_Encode$array = _elm_lang$core$Native_Json.encodeArray; -var _elm_lang$core$Json_Encode$object = _elm_lang$core$Native_Json.encodeObject; -var _elm_lang$core$Json_Encode$null = _elm_lang$core$Native_Json.encodeNull; -var _elm_lang$core$Json_Encode$bool = _elm_lang$core$Native_Json.identity; -var _elm_lang$core$Json_Encode$float = _elm_lang$core$Native_Json.identity; -var _elm_lang$core$Json_Encode$int = _elm_lang$core$Native_Json.identity; -var _elm_lang$core$Json_Encode$string = _elm_lang$core$Native_Json.identity; -var _elm_lang$core$Json_Encode$encode = _elm_lang$core$Native_Json.encode; -var _elm_lang$core$Json_Encode$Value = {ctor: 'Value'}; - -var _elm_lang$core$Json_Decode$null = _elm_lang$core$Native_Json.decodeNull; -var _elm_lang$core$Json_Decode$value = _elm_lang$core$Native_Json.decodePrimitive('value'); -var _elm_lang$core$Json_Decode$andThen = _elm_lang$core$Native_Json.andThen; -var _elm_lang$core$Json_Decode$fail = _elm_lang$core$Native_Json.fail; -var _elm_lang$core$Json_Decode$succeed = _elm_lang$core$Native_Json.succeed; -var _elm_lang$core$Json_Decode$lazy = function (thunk) { - return A2( - _elm_lang$core$Json_Decode$andThen, - thunk, - _elm_lang$core$Json_Decode$succeed( - {ctor: '_Tuple0'})); -}; -var _elm_lang$core$Json_Decode$decodeValue = _elm_lang$core$Native_Json.run; -var _elm_lang$core$Json_Decode$decodeString = _elm_lang$core$Native_Json.runOnString; -var _elm_lang$core$Json_Decode$map8 = _elm_lang$core$Native_Json.map8; -var _elm_lang$core$Json_Decode$map7 = _elm_lang$core$Native_Json.map7; -var _elm_lang$core$Json_Decode$map6 = _elm_lang$core$Native_Json.map6; -var _elm_lang$core$Json_Decode$map5 = _elm_lang$core$Native_Json.map5; -var _elm_lang$core$Json_Decode$map4 = _elm_lang$core$Native_Json.map4; -var _elm_lang$core$Json_Decode$map3 = _elm_lang$core$Native_Json.map3; -var _elm_lang$core$Json_Decode$map2 = _elm_lang$core$Native_Json.map2; -var _elm_lang$core$Json_Decode$map = _elm_lang$core$Native_Json.map1; -var _elm_lang$core$Json_Decode$oneOf = _elm_lang$core$Native_Json.oneOf; -var _elm_lang$core$Json_Decode$maybe = function (decoder) { - return A2(_elm_lang$core$Native_Json.decodeContainer, 'maybe', decoder); -}; -var _elm_lang$core$Json_Decode$index = _elm_lang$core$Native_Json.decodeIndex; -var _elm_lang$core$Json_Decode$field = _elm_lang$core$Native_Json.decodeField; -var _elm_lang$core$Json_Decode$at = F2( - function (fields, decoder) { - return A3(_elm_lang$core$List$foldr, _elm_lang$core$Json_Decode$field, decoder, fields); - }); -var _elm_lang$core$Json_Decode$keyValuePairs = _elm_lang$core$Native_Json.decodeKeyValuePairs; -var _elm_lang$core$Json_Decode$dict = function (decoder) { - return A2( - _elm_lang$core$Json_Decode$map, - _elm_lang$core$Dict$fromList, - _elm_lang$core$Json_Decode$keyValuePairs(decoder)); -}; -var _elm_lang$core$Json_Decode$array = function (decoder) { - return A2(_elm_lang$core$Native_Json.decodeContainer, 'array', decoder); -}; -var _elm_lang$core$Json_Decode$list = function (decoder) { - return A2(_elm_lang$core$Native_Json.decodeContainer, 'list', decoder); -}; -var _elm_lang$core$Json_Decode$nullable = function (decoder) { - return _elm_lang$core$Json_Decode$oneOf( - { - ctor: '::', - _0: _elm_lang$core$Json_Decode$null(_elm_lang$core$Maybe$Nothing), - _1: { - ctor: '::', - _0: A2(_elm_lang$core$Json_Decode$map, _elm_lang$core$Maybe$Just, decoder), - _1: {ctor: '[]'} - } - }); -}; -var _elm_lang$core$Json_Decode$float = _elm_lang$core$Native_Json.decodePrimitive('float'); -var _elm_lang$core$Json_Decode$int = _elm_lang$core$Native_Json.decodePrimitive('int'); -var _elm_lang$core$Json_Decode$bool = _elm_lang$core$Native_Json.decodePrimitive('bool'); -var _elm_lang$core$Json_Decode$string = _elm_lang$core$Native_Json.decodePrimitive('string'); -var _elm_lang$core$Json_Decode$Decoder = {ctor: 'Decoder'}; - -var _elm_lang$core$Debug$crash = _elm_lang$core$Native_Debug.crash; -var _elm_lang$core$Debug$log = _elm_lang$core$Native_Debug.log; - -var _elm_lang$core$Tuple$mapSecond = F2( - function (func, _p0) { - var _p1 = _p0; - return { - ctor: '_Tuple2', - _0: _p1._0, - _1: func(_p1._1) - }; - }); -var _elm_lang$core$Tuple$mapFirst = F2( - function (func, _p2) { - var _p3 = _p2; - return { - ctor: '_Tuple2', - _0: func(_p3._0), - _1: _p3._1 - }; - }); -var _elm_lang$core$Tuple$second = function (_p4) { - var _p5 = _p4; - return _p5._1; -}; -var _elm_lang$core$Tuple$first = function (_p6) { - var _p7 = _p6; - return _p7._0; -}; - -//import // - -var _elm_lang$core$Native_Platform = function() { - - -// PROGRAMS - -function program(impl) -{ - return function(flagDecoder) - { - return function(object, moduleName) - { - object['worker'] = function worker(flags) - { - if (typeof flags !== 'undefined') - { - throw new Error( - 'The `' + moduleName + '` module does not need flags.\n' - + 'Call ' + moduleName + '.worker() with no arguments and you should be all set!' - ); - } - - return initialize( - impl.init, - impl.update, - impl.subscriptions, - renderer - ); - }; - }; - }; -} - -function programWithFlags(impl) -{ - return function(flagDecoder) - { - return function(object, moduleName) - { - object['worker'] = function worker(flags) - { - if (typeof flagDecoder === 'undefined') - { - throw new Error( - 'Are you trying to sneak a Never value into Elm? Trickster!\n' - + 'It looks like ' + moduleName + '.main is defined with `programWithFlags` but has type `Program Never`.\n' - + 'Use `program` instead if you do not want flags.' - ); - } - - var result = A2(_elm_lang$core$Native_Json.run, flagDecoder, flags); - if (result.ctor === 'Err') - { - throw new Error( - moduleName + '.worker(...) was called with an unexpected argument.\n' - + 'I tried to convert it to an Elm value, but ran into this problem:\n\n' - + result._0 - ); - } - - return initialize( - impl.init(result._0), - impl.update, - impl.subscriptions, - renderer - ); - }; - }; - }; -} - -function renderer(enqueue, _) -{ - return function(_) {}; -} - - -// HTML TO PROGRAM - -function htmlToProgram(vnode) -{ - var emptyBag = batch(_elm_lang$core$Native_List.Nil); - var noChange = _elm_lang$core$Native_Utils.Tuple2( - _elm_lang$core$Native_Utils.Tuple0, - emptyBag - ); - - return _elm_lang$virtual_dom$VirtualDom$program({ - init: noChange, - view: function(model) { return main; }, - update: F2(function(msg, model) { return noChange; }), - subscriptions: function (model) { return emptyBag; } - }); -} - - -// INITIALIZE A PROGRAM - -function initialize(init, update, subscriptions, renderer) -{ - // ambient state - var managers = {}; - var updateView; - - // init and update state in main process - var initApp = _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) { - var model = init._0; - updateView = renderer(enqueue, model); - var cmds = init._1; - var subs = subscriptions(model); - dispatchEffects(managers, cmds, subs); - callback(_elm_lang$core$Native_Scheduler.succeed(model)); - }); - - function onMessage(msg, model) - { - return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) { - var results = A2(update, msg, model); - model = results._0; - updateView(model); - var cmds = results._1; - var subs = subscriptions(model); - dispatchEffects(managers, cmds, subs); - callback(_elm_lang$core$Native_Scheduler.succeed(model)); - }); - } - - var mainProcess = spawnLoop(initApp, onMessage); - - function enqueue(msg) - { - _elm_lang$core$Native_Scheduler.rawSend(mainProcess, msg); - } - - var ports = setupEffects(managers, enqueue); - - return ports ? { ports: ports } : {}; -} - - -// EFFECT MANAGERS - -var effectManagers = {}; - -function setupEffects(managers, callback) -{ - var ports; - - // setup all necessary effect managers - for (var key in effectManagers) - { - var manager = effectManagers[key]; - - if (manager.isForeign) - { - ports = ports || {}; - ports[key] = manager.tag === 'cmd' - ? setupOutgoingPort(key) - : setupIncomingPort(key, callback); - } - - managers[key] = makeManager(manager, callback); - } - - return ports; -} - -function makeManager(info, callback) -{ - var router = { - main: callback, - self: undefined - }; - - var tag = info.tag; - var onEffects = info.onEffects; - var onSelfMsg = info.onSelfMsg; - - function onMessage(msg, state) - { - if (msg.ctor === 'self') - { - return A3(onSelfMsg, router, msg._0, state); - } - - var fx = msg._0; - switch (tag) - { - case 'cmd': - return A3(onEffects, router, fx.cmds, state); - - case 'sub': - return A3(onEffects, router, fx.subs, state); - - case 'fx': - return A4(onEffects, router, fx.cmds, fx.subs, state); - } - } - - var process = spawnLoop(info.init, onMessage); - router.self = process; - return process; -} - -function sendToApp(router, msg) -{ - return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) - { - router.main(msg); - callback(_elm_lang$core$Native_Scheduler.succeed(_elm_lang$core$Native_Utils.Tuple0)); - }); -} - -function sendToSelf(router, msg) -{ - return A2(_elm_lang$core$Native_Scheduler.send, router.self, { - ctor: 'self', - _0: msg - }); -} - - -// HELPER for STATEFUL LOOPS - -function spawnLoop(init, onMessage) -{ - var andThen = _elm_lang$core$Native_Scheduler.andThen; - - function loop(state) - { - var handleMsg = _elm_lang$core$Native_Scheduler.receive(function(msg) { - return onMessage(msg, state); - }); - return A2(andThen, loop, handleMsg); - } - - var task = A2(andThen, loop, init); - - return _elm_lang$core$Native_Scheduler.rawSpawn(task); -} - - -// BAGS - -function leaf(home) -{ - return function(value) - { - return { - type: 'leaf', - home: home, - value: value - }; - }; -} - -function batch(list) -{ - return { - type: 'node', - branches: list - }; -} - -function map(tagger, bag) -{ - return { - type: 'map', - tagger: tagger, - tree: bag - } -} - - -// PIPE BAGS INTO EFFECT MANAGERS - -function dispatchEffects(managers, cmdBag, subBag) -{ - var effectsDict = {}; - gatherEffects(true, cmdBag, effectsDict, null); - gatherEffects(false, subBag, effectsDict, null); - - for (var home in managers) - { - var fx = home in effectsDict - ? effectsDict[home] - : { - cmds: _elm_lang$core$Native_List.Nil, - subs: _elm_lang$core$Native_List.Nil - }; - - _elm_lang$core$Native_Scheduler.rawSend(managers[home], { ctor: 'fx', _0: fx }); - } -} - -function gatherEffects(isCmd, bag, effectsDict, taggers) -{ - switch (bag.type) - { - case 'leaf': - var home = bag.home; - var effect = toEffect(isCmd, home, taggers, bag.value); - effectsDict[home] = insert(isCmd, effect, effectsDict[home]); - return; - - case 'node': - var list = bag.branches; - while (list.ctor !== '[]') - { - gatherEffects(isCmd, list._0, effectsDict, taggers); - list = list._1; - } - return; - - case 'map': - gatherEffects(isCmd, bag.tree, effectsDict, { - tagger: bag.tagger, - rest: taggers - }); - return; - } -} - -function toEffect(isCmd, home, taggers, value) -{ - function applyTaggers(x) - { - var temp = taggers; - while (temp) - { - x = temp.tagger(x); - temp = temp.rest; - } - return x; - } - - var map = isCmd - ? effectManagers[home].cmdMap - : effectManagers[home].subMap; - - return A2(map, applyTaggers, value) -} - -function insert(isCmd, newEffect, effects) -{ - effects = effects || { - cmds: _elm_lang$core$Native_List.Nil, - subs: _elm_lang$core$Native_List.Nil - }; - if (isCmd) - { - effects.cmds = _elm_lang$core$Native_List.Cons(newEffect, effects.cmds); - return effects; - } - effects.subs = _elm_lang$core$Native_List.Cons(newEffect, effects.subs); - return effects; -} - - -// PORTS - -function checkPortName(name) -{ - if (name in effectManagers) - { - throw new Error('There can only be one port named `' + name + '`, but your program has multiple.'); - } -} - - -// OUTGOING PORTS - -function outgoingPort(name, converter) -{ - checkPortName(name); - effectManagers[name] = { - tag: 'cmd', - cmdMap: outgoingPortMap, - converter: converter, - isForeign: true - }; - return leaf(name); -} - -var outgoingPortMap = F2(function cmdMap(tagger, value) { - return value; -}); - -function setupOutgoingPort(name) -{ - var subs = []; - var converter = effectManagers[name].converter; - - // CREATE MANAGER - - var init = _elm_lang$core$Native_Scheduler.succeed(null); - - function onEffects(router, cmdList, state) - { - while (cmdList.ctor !== '[]') - { - // grab a separate reference to subs in case unsubscribe is called - var currentSubs = subs; - var value = converter(cmdList._0); - for (var i = 0; i < currentSubs.length; i++) - { - currentSubs[i](value); - } - cmdList = cmdList._1; - } - return init; - } - - effectManagers[name].init = init; - effectManagers[name].onEffects = F3(onEffects); - - // PUBLIC API - - function subscribe(callback) - { - subs.push(callback); - } - - function unsubscribe(callback) - { - // copy subs into a new array in case unsubscribe is called within a - // subscribed callback - subs = subs.slice(); - var index = subs.indexOf(callback); - if (index >= 0) - { - subs.splice(index, 1); - } - } - - return { - subscribe: subscribe, - unsubscribe: unsubscribe - }; -} - - -// INCOMING PORTS - -function incomingPort(name, converter) -{ - checkPortName(name); - effectManagers[name] = { - tag: 'sub', - subMap: incomingPortMap, - converter: converter, - isForeign: true - }; - return leaf(name); -} - -var incomingPortMap = F2(function subMap(tagger, finalTagger) -{ - return function(value) - { - return tagger(finalTagger(value)); - }; -}); - -function setupIncomingPort(name, callback) -{ - var sentBeforeInit = []; - var subs = _elm_lang$core$Native_List.Nil; - var converter = effectManagers[name].converter; - var currentOnEffects = preInitOnEffects; - var currentSend = preInitSend; - - // CREATE MANAGER - - var init = _elm_lang$core$Native_Scheduler.succeed(null); - - function preInitOnEffects(router, subList, state) - { - var postInitResult = postInitOnEffects(router, subList, state); - - for(var i = 0; i < sentBeforeInit.length; i++) - { - postInitSend(sentBeforeInit[i]); - } - - sentBeforeInit = null; // to release objects held in queue - currentSend = postInitSend; - currentOnEffects = postInitOnEffects; - return postInitResult; - } - - function postInitOnEffects(router, subList, state) - { - subs = subList; - return init; - } - - function onEffects(router, subList, state) - { - return currentOnEffects(router, subList, state); - } - - effectManagers[name].init = init; - effectManagers[name].onEffects = F3(onEffects); - - // PUBLIC API - - function preInitSend(value) - { - sentBeforeInit.push(value); - } - - function postInitSend(value) - { - var temp = subs; - while (temp.ctor !== '[]') - { - callback(temp._0(value)); - temp = temp._1; - } - } - - function send(incomingValue) - { - var result = A2(_elm_lang$core$Json_Decode$decodeValue, converter, incomingValue); - if (result.ctor === 'Err') - { - throw new Error('Trying to send an unexpected type of value through port `' + name + '`:\n' + result._0); - } - - currentSend(result._0); - } - - return { send: send }; -} - -return { - // routers - sendToApp: F2(sendToApp), - sendToSelf: F2(sendToSelf), - - // global setup - effectManagers: effectManagers, - outgoingPort: outgoingPort, - incomingPort: incomingPort, - - htmlToProgram: htmlToProgram, - program: program, - programWithFlags: programWithFlags, - initialize: initialize, - - // effect bags - leaf: leaf, - batch: batch, - map: F2(map) -}; - -}(); - -//import Native.Utils // - -var _elm_lang$core$Native_Scheduler = function() { - -var MAX_STEPS = 10000; - - -// TASKS - -function succeed(value) -{ - return { - ctor: '_Task_succeed', - value: value - }; -} - -function fail(error) -{ - return { - ctor: '_Task_fail', - value: error - }; -} - -function nativeBinding(callback) -{ - return { - ctor: '_Task_nativeBinding', - callback: callback, - cancel: null - }; -} - -function andThen(callback, task) -{ - return { - ctor: '_Task_andThen', - callback: callback, - task: task - }; -} - -function onError(callback, task) -{ - return { - ctor: '_Task_onError', - callback: callback, - task: task - }; -} - -function receive(callback) -{ - return { - ctor: '_Task_receive', - callback: callback - }; -} - - -// PROCESSES - -function rawSpawn(task) -{ - var process = { - ctor: '_Process', - id: _elm_lang$core$Native_Utils.guid(), - root: task, - stack: null, - mailbox: [] - }; - - enqueue(process); - - return process; -} - -function spawn(task) -{ - return nativeBinding(function(callback) { - var process = rawSpawn(task); - callback(succeed(process)); - }); -} - -function rawSend(process, msg) -{ - process.mailbox.push(msg); - enqueue(process); -} - -function send(process, msg) -{ - return nativeBinding(function(callback) { - rawSend(process, msg); - callback(succeed(_elm_lang$core$Native_Utils.Tuple0)); - }); -} - -function kill(process) -{ - return nativeBinding(function(callback) { - var root = process.root; - if (root.ctor === '_Task_nativeBinding' && root.cancel) - { - root.cancel(); - } - - process.root = null; - - callback(succeed(_elm_lang$core$Native_Utils.Tuple0)); - }); -} - -function sleep(time) -{ - return nativeBinding(function(callback) { - var id = setTimeout(function() { - callback(succeed(_elm_lang$core$Native_Utils.Tuple0)); - }, time); - - return function() { clearTimeout(id); }; - }); -} - - -// STEP PROCESSES - -function step(numSteps, process) -{ - while (numSteps < MAX_STEPS) - { - var ctor = process.root.ctor; - - if (ctor === '_Task_succeed') - { - while (process.stack && process.stack.ctor === '_Task_onError') - { - process.stack = process.stack.rest; - } - if (process.stack === null) - { - break; - } - process.root = process.stack.callback(process.root.value); - process.stack = process.stack.rest; - ++numSteps; - continue; - } - - if (ctor === '_Task_fail') - { - while (process.stack && process.stack.ctor === '_Task_andThen') - { - process.stack = process.stack.rest; - } - if (process.stack === null) - { - break; - } - process.root = process.stack.callback(process.root.value); - process.stack = process.stack.rest; - ++numSteps; - continue; - } - - if (ctor === '_Task_andThen') - { - process.stack = { - ctor: '_Task_andThen', - callback: process.root.callback, - rest: process.stack - }; - process.root = process.root.task; - ++numSteps; - continue; - } - - if (ctor === '_Task_onError') - { - process.stack = { - ctor: '_Task_onError', - callback: process.root.callback, - rest: process.stack - }; - process.root = process.root.task; - ++numSteps; - continue; - } - - if (ctor === '_Task_nativeBinding') - { - process.root.cancel = process.root.callback(function(newRoot) { - process.root = newRoot; - enqueue(process); - }); - - break; - } - - if (ctor === '_Task_receive') - { - var mailbox = process.mailbox; - if (mailbox.length === 0) - { - break; - } - - process.root = process.root.callback(mailbox.shift()); - ++numSteps; - continue; - } - - throw new Error(ctor); - } - - if (numSteps < MAX_STEPS) - { - return numSteps + 1; - } - enqueue(process); - - return numSteps; -} - - -// WORK QUEUE - -var working = false; -var workQueue = []; - -function enqueue(process) -{ - workQueue.push(process); - - if (!working) - { - setTimeout(work, 0); - working = true; - } -} - -function work() -{ - var numSteps = 0; - var process; - while (numSteps < MAX_STEPS && (process = workQueue.shift())) - { - if (process.root) - { - numSteps = step(numSteps, process); - } - } - if (!process) - { - working = false; - return; - } - setTimeout(work, 0); -} - - -return { - succeed: succeed, - fail: fail, - nativeBinding: nativeBinding, - andThen: F2(andThen), - onError: F2(onError), - receive: receive, - - spawn: spawn, - kill: kill, - sleep: sleep, - send: F2(send), - - rawSpawn: rawSpawn, - rawSend: rawSend -}; - -}(); -var _elm_lang$core$Platform_Cmd$batch = _elm_lang$core$Native_Platform.batch; -var _elm_lang$core$Platform_Cmd$none = _elm_lang$core$Platform_Cmd$batch( - {ctor: '[]'}); -var _elm_lang$core$Platform_Cmd_ops = _elm_lang$core$Platform_Cmd_ops || {}; -_elm_lang$core$Platform_Cmd_ops['!'] = F2( - function (model, commands) { - return { - ctor: '_Tuple2', - _0: model, - _1: _elm_lang$core$Platform_Cmd$batch(commands) - }; - }); -var _elm_lang$core$Platform_Cmd$map = _elm_lang$core$Native_Platform.map; -var _elm_lang$core$Platform_Cmd$Cmd = {ctor: 'Cmd'}; - -var _elm_lang$core$Platform_Sub$batch = _elm_lang$core$Native_Platform.batch; -var _elm_lang$core$Platform_Sub$none = _elm_lang$core$Platform_Sub$batch( - {ctor: '[]'}); -var _elm_lang$core$Platform_Sub$map = _elm_lang$core$Native_Platform.map; -var _elm_lang$core$Platform_Sub$Sub = {ctor: 'Sub'}; - -var _elm_lang$core$Platform$hack = _elm_lang$core$Native_Scheduler.succeed; -var _elm_lang$core$Platform$sendToSelf = _elm_lang$core$Native_Platform.sendToSelf; -var _elm_lang$core$Platform$sendToApp = _elm_lang$core$Native_Platform.sendToApp; -var _elm_lang$core$Platform$programWithFlags = _elm_lang$core$Native_Platform.programWithFlags; -var _elm_lang$core$Platform$program = _elm_lang$core$Native_Platform.program; -var _elm_lang$core$Platform$Program = {ctor: 'Program'}; -var _elm_lang$core$Platform$Task = {ctor: 'Task'}; -var _elm_lang$core$Platform$ProcessId = {ctor: 'ProcessId'}; -var _elm_lang$core$Platform$Router = {ctor: 'Router'}; - -var _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$decode = _elm_lang$core$Json_Decode$succeed; -var _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$resolve = _elm_lang$core$Json_Decode$andThen(_elm_lang$core$Basics$identity); -var _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$custom = _elm_lang$core$Json_Decode$map2( - F2( - function (x, y) { - return y(x); - })); -var _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$hardcoded = function (_p0) { - return _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$custom( - _elm_lang$core$Json_Decode$succeed(_p0)); -}; -var _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$optionalDecoder = F3( - function (pathDecoder, valDecoder, fallback) { - var nullOr = function (decoder) { - return _elm_lang$core$Json_Decode$oneOf( - { - ctor: '::', - _0: decoder, - _1: { - ctor: '::', - _0: _elm_lang$core$Json_Decode$null(fallback), - _1: {ctor: '[]'} - } - }); - }; - var handleResult = function (input) { - var _p1 = A2(_elm_lang$core$Json_Decode$decodeValue, pathDecoder, input); - if (_p1.ctor === 'Ok') { - var _p2 = A2( - _elm_lang$core$Json_Decode$decodeValue, - nullOr(valDecoder), - _p1._0); - if (_p2.ctor === 'Ok') { - return _elm_lang$core$Json_Decode$succeed(_p2._0); - } else { - return _elm_lang$core$Json_Decode$fail(_p2._0); - } - } else { - return _elm_lang$core$Json_Decode$succeed(fallback); - } - }; - return A2(_elm_lang$core$Json_Decode$andThen, handleResult, _elm_lang$core$Json_Decode$value); - }); -var _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$optionalAt = F4( - function (path, valDecoder, fallback, decoder) { - return A2( - _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$custom, - A3( - _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$optionalDecoder, - A2(_elm_lang$core$Json_Decode$at, path, _elm_lang$core$Json_Decode$value), - valDecoder, - fallback), - decoder); - }); -var _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$optional = F4( - function (key, valDecoder, fallback, decoder) { - return A2( - _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$custom, - A3( - _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$optionalDecoder, - A2(_elm_lang$core$Json_Decode$field, key, _elm_lang$core$Json_Decode$value), - valDecoder, - fallback), - decoder); - }); -var _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$requiredAt = F3( - function (path, valDecoder, decoder) { - return A2( - _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$custom, - A2(_elm_lang$core$Json_Decode$at, path, valDecoder), - decoder); - }); -var _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required = F3( - function (key, valDecoder, decoder) { - return A2( - _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$custom, - A2(_elm_lang$core$Json_Decode$field, key, valDecoder), - decoder); - }); - -var _elm_lang$core$Native_Bitwise = function() { - -return { - and: F2(function and(a, b) { return a & b; }), - or: F2(function or(a, b) { return a | b; }), - xor: F2(function xor(a, b) { return a ^ b; }), - complement: function complement(a) { return ~a; }, - shiftLeftBy: F2(function(offset, a) { return a << offset; }), - shiftRightBy: F2(function(offset, a) { return a >> offset; }), - shiftRightZfBy: F2(function(offset, a) { return a >>> offset; }) -}; - -}(); - -var _elm_lang$core$Bitwise$shiftRightZfBy = _elm_lang$core$Native_Bitwise.shiftRightZfBy; -var _elm_lang$core$Bitwise$shiftRightBy = _elm_lang$core$Native_Bitwise.shiftRightBy; -var _elm_lang$core$Bitwise$shiftLeftBy = _elm_lang$core$Native_Bitwise.shiftLeftBy; -var _elm_lang$core$Bitwise$complement = _elm_lang$core$Native_Bitwise.complement; -var _elm_lang$core$Bitwise$xor = _elm_lang$core$Native_Bitwise.xor; -var _elm_lang$core$Bitwise$or = _elm_lang$core$Native_Bitwise.or; -var _elm_lang$core$Bitwise$and = _elm_lang$core$Native_Bitwise.and; - -var _Skinney$murmur3$UTF8$accumulate = F3( - function (add, $char, _p0) { - var _p1 = _p0; - var _p3 = _p1._0; - var _p2 = _p1._1; - if (_p2.ctor === 'Nothing') { - return (_elm_lang$core$Native_Utils.cmp($char, 128) < 0) ? { - ctor: '_Tuple2', - _0: A2(add, $char, _p3), - _1: _elm_lang$core$Maybe$Nothing - } : ((_elm_lang$core$Native_Utils.cmp($char, 2048) < 0) ? { - ctor: '_Tuple2', - _0: A2( - add, - 128 | (63 & $char), - A2(add, 192 | ($char >>> 6), _p3)), - _1: _elm_lang$core$Maybe$Nothing - } : (((_elm_lang$core$Native_Utils.cmp($char, 55296) < 0) || (_elm_lang$core$Native_Utils.cmp($char, 57344) > -1)) ? { - ctor: '_Tuple2', - _0: A2( - add, - 128 | (63 & $char), - A2( - add, - 128 | (63 & ($char >>> 6)), - A2(add, 224 | ($char >>> 12), _p3))), - _1: _elm_lang$core$Maybe$Nothing - } : { - ctor: '_Tuple2', - _0: _p3, - _1: _elm_lang$core$Maybe$Just($char) - })); - } else { - var combined = ((1023 & $char) | ((1023 & _p2._0) << 10)) + 65536; - return { - ctor: '_Tuple2', - _0: A2( - add, - 128 | (63 & combined), - A2( - add, - 128 | (63 & (combined >>> 6)), - A2( - add, - 128 | (63 & (combined >>> 12)), - A2(add, 240 | (combined >>> 18), _p3)))), - _1: _elm_lang$core$Maybe$Nothing - }; - } - }); -var _Skinney$murmur3$UTF8$foldl = F3( - function (op, acc, input) { - var helper = F2( - function ($char, acc) { - return A3( - _Skinney$murmur3$UTF8$accumulate, - op, - _elm_lang$core$Char$toCode($char), - acc); - }); - return _elm_lang$core$Tuple$first( - A3( - _elm_lang$core$String$foldl, - helper, - {ctor: '_Tuple2', _0: acc, _1: _elm_lang$core$Maybe$Nothing}, - input)); - }); - -var _Skinney$murmur3$Murmur3$mur = F2( - function (c, h) { - return -1 & (((h & 65535) * c) + ((65535 & ((h >>> 16) * c)) << 16)); - }); -var _Skinney$murmur3$Murmur3$step = function (acc) { - var h1 = A2(_Skinney$murmur3$Murmur3$mur, 5, (acc >>> 19) | (acc << 13)); - return ((h1 & 65535) + 27492) + ((65535 & ((h1 >>> 16) + 58964)) << 16); -}; -var _Skinney$murmur3$Murmur3$mix = F2( - function (h1, h2) { - var k1 = A2(_Skinney$murmur3$Murmur3$mur, -862048943, h2); - return h1 ^ A2(_Skinney$murmur3$Murmur3$mur, 461845907, (k1 >>> 17) | (k1 << 15)); - }); -var _Skinney$murmur3$Murmur3$finalize = function (data) { - var acc = (!_elm_lang$core$Native_Utils.eq(data.hash, 0)) ? A2(_Skinney$murmur3$Murmur3$mix, data.seed, data.hash) : data.seed; - var h1 = acc ^ data.charsProcessed; - var h2 = A2(_Skinney$murmur3$Murmur3$mur, -2048144789, h1 ^ (h1 >>> 16)); - var h3 = A2(_Skinney$murmur3$Murmur3$mur, -1028477387, h2 ^ (h2 >>> 13)); - return (h3 ^ (h3 >>> 16)) >>> 0; -}; -var _Skinney$murmur3$Murmur3$hashFold = F2( - function (c, data) { - var res = data.hash | (c << data.shift); - var _p0 = data.shift; - if (_p0 === 24) { - var newHash = _Skinney$murmur3$Murmur3$step( - A2(_Skinney$murmur3$Murmur3$mix, data.seed, res)); - return {shift: 0, seed: newHash, hash: 0, charsProcessed: data.charsProcessed + 1}; - } else { - return {shift: data.shift + 8, seed: data.seed, hash: res, charsProcessed: data.charsProcessed + 1}; - } - }); -var _Skinney$murmur3$Murmur3$HashData = F4( - function (a, b, c, d) { - return {shift: a, seed: b, hash: c, charsProcessed: d}; - }); -var _Skinney$murmur3$Murmur3$hashString = F2( - function (seed, str) { - return _Skinney$murmur3$Murmur3$finalize( - A3( - _Skinney$murmur3$UTF8$foldl, - _Skinney$murmur3$Murmur3$hashFold, - A4(_Skinney$murmur3$Murmur3$HashData, 0, seed, 0, 0), - str)); - }); - -var _elm_lang$core$Task$onError = _elm_lang$core$Native_Scheduler.onError; -var _elm_lang$core$Task$andThen = _elm_lang$core$Native_Scheduler.andThen; -var _elm_lang$core$Task$spawnCmd = F2( - function (router, _p0) { - var _p1 = _p0; - return _elm_lang$core$Native_Scheduler.spawn( - A2( - _elm_lang$core$Task$andThen, - _elm_lang$core$Platform$sendToApp(router), - _p1._0)); - }); -var _elm_lang$core$Task$fail = _elm_lang$core$Native_Scheduler.fail; -var _elm_lang$core$Task$mapError = F2( - function (convert, task) { - return A2( - _elm_lang$core$Task$onError, - function (_p2) { - return _elm_lang$core$Task$fail( - convert(_p2)); - }, - task); - }); -var _elm_lang$core$Task$succeed = _elm_lang$core$Native_Scheduler.succeed; -var _elm_lang$core$Task$map = F2( - function (func, taskA) { - return A2( - _elm_lang$core$Task$andThen, - function (a) { - return _elm_lang$core$Task$succeed( - func(a)); - }, - taskA); - }); -var _elm_lang$core$Task$map2 = F3( - function (func, taskA, taskB) { - return A2( - _elm_lang$core$Task$andThen, - function (a) { - return A2( - _elm_lang$core$Task$andThen, - function (b) { - return _elm_lang$core$Task$succeed( - A2(func, a, b)); - }, - taskB); - }, - taskA); - }); -var _elm_lang$core$Task$map3 = F4( - function (func, taskA, taskB, taskC) { - return A2( - _elm_lang$core$Task$andThen, - function (a) { - return A2( - _elm_lang$core$Task$andThen, - function (b) { - return A2( - _elm_lang$core$Task$andThen, - function (c) { - return _elm_lang$core$Task$succeed( - A3(func, a, b, c)); - }, - taskC); - }, - taskB); - }, - taskA); - }); -var _elm_lang$core$Task$map4 = F5( - function (func, taskA, taskB, taskC, taskD) { - return A2( - _elm_lang$core$Task$andThen, - function (a) { - return A2( - _elm_lang$core$Task$andThen, - function (b) { - return A2( - _elm_lang$core$Task$andThen, - function (c) { - return A2( - _elm_lang$core$Task$andThen, - function (d) { - return _elm_lang$core$Task$succeed( - A4(func, a, b, c, d)); - }, - taskD); - }, - taskC); - }, - taskB); - }, - taskA); - }); -var _elm_lang$core$Task$map5 = F6( - function (func, taskA, taskB, taskC, taskD, taskE) { - return A2( - _elm_lang$core$Task$andThen, - function (a) { - return A2( - _elm_lang$core$Task$andThen, - function (b) { - return A2( - _elm_lang$core$Task$andThen, - function (c) { - return A2( - _elm_lang$core$Task$andThen, - function (d) { - return A2( - _elm_lang$core$Task$andThen, - function (e) { - return _elm_lang$core$Task$succeed( - A5(func, a, b, c, d, e)); - }, - taskE); - }, - taskD); - }, - taskC); - }, - taskB); - }, - taskA); - }); -var _elm_lang$core$Task$sequence = function (tasks) { - var _p3 = tasks; - if (_p3.ctor === '[]') { - return _elm_lang$core$Task$succeed( - {ctor: '[]'}); - } else { - return A3( - _elm_lang$core$Task$map2, - F2( - function (x, y) { - return {ctor: '::', _0: x, _1: y}; - }), - _p3._0, - _elm_lang$core$Task$sequence(_p3._1)); - } -}; -var _elm_lang$core$Task$onEffects = F3( - function (router, commands, state) { - return A2( - _elm_lang$core$Task$map, - function (_p4) { - return {ctor: '_Tuple0'}; - }, - _elm_lang$core$Task$sequence( - A2( - _elm_lang$core$List$map, - _elm_lang$core$Task$spawnCmd(router), - commands))); - }); -var _elm_lang$core$Task$init = _elm_lang$core$Task$succeed( - {ctor: '_Tuple0'}); -var _elm_lang$core$Task$onSelfMsg = F3( - function (_p7, _p6, _p5) { - return _elm_lang$core$Task$succeed( - {ctor: '_Tuple0'}); - }); -var _elm_lang$core$Task$command = _elm_lang$core$Native_Platform.leaf('Task'); -var _elm_lang$core$Task$Perform = function (a) { - return {ctor: 'Perform', _0: a}; -}; -var _elm_lang$core$Task$perform = F2( - function (toMessage, task) { - return _elm_lang$core$Task$command( - _elm_lang$core$Task$Perform( - A2(_elm_lang$core$Task$map, toMessage, task))); - }); -var _elm_lang$core$Task$attempt = F2( - function (resultToMessage, task) { - return _elm_lang$core$Task$command( - _elm_lang$core$Task$Perform( - A2( - _elm_lang$core$Task$onError, - function (_p8) { - return _elm_lang$core$Task$succeed( - resultToMessage( - _elm_lang$core$Result$Err(_p8))); - }, - A2( - _elm_lang$core$Task$andThen, - function (_p9) { - return _elm_lang$core$Task$succeed( - resultToMessage( - _elm_lang$core$Result$Ok(_p9))); - }, - task)))); - }); -var _elm_lang$core$Task$cmdMap = F2( - function (tagger, _p10) { - var _p11 = _p10; - return _elm_lang$core$Task$Perform( - A2(_elm_lang$core$Task$map, tagger, _p11._0)); - }); -_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}; - -//import Native.Scheduler // - -var _elm_lang$core$Native_Time = function() { - -var now = _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) -{ - callback(_elm_lang$core$Native_Scheduler.succeed(Date.now())); -}); - -function setInterval_(interval, task) -{ - return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) - { - var id = setInterval(function() { - _elm_lang$core$Native_Scheduler.rawSpawn(task); - }, interval); - - return function() { clearInterval(id); }; - }); -} - -return { - now: now, - setInterval_: F2(setInterval_) -}; - -}(); -var _elm_lang$core$Time$setInterval = _elm_lang$core$Native_Time.setInterval_; -var _elm_lang$core$Time$spawnHelp = F3( - function (router, intervals, processes) { - var _p0 = intervals; - if (_p0.ctor === '[]') { - return _elm_lang$core$Task$succeed(processes); - } else { - var _p1 = _p0._0; - var spawnRest = function (id) { - return A3( - _elm_lang$core$Time$spawnHelp, - router, - _p0._1, - A3(_elm_lang$core$Dict$insert, _p1, id, processes)); - }; - var spawnTimer = _elm_lang$core$Native_Scheduler.spawn( - A2( - _elm_lang$core$Time$setInterval, - _p1, - A2(_elm_lang$core$Platform$sendToSelf, router, _p1))); - return A2(_elm_lang$core$Task$andThen, spawnRest, spawnTimer); - } - }); -var _elm_lang$core$Time$addMySub = F2( - function (_p2, state) { - var _p3 = _p2; - var _p6 = _p3._1; - var _p5 = _p3._0; - var _p4 = A2(_elm_lang$core$Dict$get, _p5, state); - if (_p4.ctor === 'Nothing') { - return A3( - _elm_lang$core$Dict$insert, - _p5, - { - ctor: '::', - _0: _p6, - _1: {ctor: '[]'} - }, - state); - } else { - return A3( - _elm_lang$core$Dict$insert, - _p5, - {ctor: '::', _0: _p6, _1: _p4._0}, - state); - } - }); -var _elm_lang$core$Time$inMilliseconds = function (t) { - return t; -}; -var _elm_lang$core$Time$millisecond = 1; -var _elm_lang$core$Time$second = 1000 * _elm_lang$core$Time$millisecond; -var _elm_lang$core$Time$minute = 60 * _elm_lang$core$Time$second; -var _elm_lang$core$Time$hour = 60 * _elm_lang$core$Time$minute; -var _elm_lang$core$Time$inHours = function (t) { - return t / _elm_lang$core$Time$hour; -}; -var _elm_lang$core$Time$inMinutes = function (t) { - return t / _elm_lang$core$Time$minute; -}; -var _elm_lang$core$Time$inSeconds = function (t) { - return t / _elm_lang$core$Time$second; -}; -var _elm_lang$core$Time$now = _elm_lang$core$Native_Time.now; -var _elm_lang$core$Time$onSelfMsg = F3( - function (router, interval, state) { - var _p7 = A2(_elm_lang$core$Dict$get, interval, state.taggers); - if (_p7.ctor === 'Nothing') { - return _elm_lang$core$Task$succeed(state); - } else { - var tellTaggers = function (time) { - return _elm_lang$core$Task$sequence( - A2( - _elm_lang$core$List$map, - function (tagger) { - return A2( - _elm_lang$core$Platform$sendToApp, - router, - tagger(time)); - }, - _p7._0)); - }; - return A2( - _elm_lang$core$Task$andThen, - function (_p8) { - return _elm_lang$core$Task$succeed(state); - }, - A2(_elm_lang$core$Task$andThen, tellTaggers, _elm_lang$core$Time$now)); - } - }); -var _elm_lang$core$Time$subscription = _elm_lang$core$Native_Platform.leaf('Time'); -var _elm_lang$core$Time$State = F2( - function (a, b) { - return {taggers: a, processes: b}; - }); -var _elm_lang$core$Time$init = _elm_lang$core$Task$succeed( - A2(_elm_lang$core$Time$State, _elm_lang$core$Dict$empty, _elm_lang$core$Dict$empty)); -var _elm_lang$core$Time$onEffects = F3( - function (router, subs, _p9) { - var _p10 = _p9; - var rightStep = F3( - function (_p12, id, _p11) { - var _p13 = _p11; - return { - ctor: '_Tuple3', - _0: _p13._0, - _1: _p13._1, - _2: A2( - _elm_lang$core$Task$andThen, - function (_p14) { - return _p13._2; - }, - _elm_lang$core$Native_Scheduler.kill(id)) - }; - }); - var bothStep = F4( - function (interval, taggers, id, _p15) { - var _p16 = _p15; - return { - ctor: '_Tuple3', - _0: _p16._0, - _1: A3(_elm_lang$core$Dict$insert, interval, id, _p16._1), - _2: _p16._2 - }; - }); - var leftStep = F3( - function (interval, taggers, _p17) { - var _p18 = _p17; - return { - ctor: '_Tuple3', - _0: {ctor: '::', _0: interval, _1: _p18._0}, - _1: _p18._1, - _2: _p18._2 - }; - }); - var newTaggers = A3(_elm_lang$core$List$foldl, _elm_lang$core$Time$addMySub, _elm_lang$core$Dict$empty, subs); - var _p19 = A6( - _elm_lang$core$Dict$merge, - leftStep, - bothStep, - rightStep, - newTaggers, - _p10.processes, - { - ctor: '_Tuple3', - _0: {ctor: '[]'}, - _1: _elm_lang$core$Dict$empty, - _2: _elm_lang$core$Task$succeed( - {ctor: '_Tuple0'}) - }); - var spawnList = _p19._0; - var existingDict = _p19._1; - var killTask = _p19._2; - return A2( - _elm_lang$core$Task$andThen, - function (newProcesses) { - return _elm_lang$core$Task$succeed( - A2(_elm_lang$core$Time$State, newTaggers, newProcesses)); - }, - A2( - _elm_lang$core$Task$andThen, - function (_p20) { - return A3(_elm_lang$core$Time$spawnHelp, router, spawnList, existingDict); - }, - killTask)); - }); -var _elm_lang$core$Time$Every = F2( - function (a, b) { - return {ctor: 'Every', _0: a, _1: b}; - }); -var _elm_lang$core$Time$every = F2( - function (interval, tagger) { - return _elm_lang$core$Time$subscription( - A2(_elm_lang$core$Time$Every, interval, tagger)); - }); -var _elm_lang$core$Time$subMap = F2( - function (f, _p21) { - var _p22 = _p21; - return A2( - _elm_lang$core$Time$Every, - _p22._0, - function (_p23) { - return f( - _p22._1(_p23)); - }); - }); -_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}; - -var _elm_lang$core$Random$onSelfMsg = F3( - function (_p1, _p0, seed) { - return _elm_lang$core$Task$succeed(seed); - }); -var _elm_lang$core$Random$magicNum8 = 2147483562; -var _elm_lang$core$Random$range = function (_p2) { - return {ctor: '_Tuple2', _0: 0, _1: _elm_lang$core$Random$magicNum8}; -}; -var _elm_lang$core$Random$magicNum7 = 2147483399; -var _elm_lang$core$Random$magicNum6 = 2147483563; -var _elm_lang$core$Random$magicNum5 = 3791; -var _elm_lang$core$Random$magicNum4 = 40692; -var _elm_lang$core$Random$magicNum3 = 52774; -var _elm_lang$core$Random$magicNum2 = 12211; -var _elm_lang$core$Random$magicNum1 = 53668; -var _elm_lang$core$Random$magicNum0 = 40014; -var _elm_lang$core$Random$step = F2( - function (_p3, seed) { - var _p4 = _p3; - return _p4._0(seed); - }); -var _elm_lang$core$Random$onEffects = F3( - function (router, commands, seed) { - var _p5 = commands; - if (_p5.ctor === '[]') { - return _elm_lang$core$Task$succeed(seed); - } else { - var _p6 = A2(_elm_lang$core$Random$step, _p5._0._0, seed); - var value = _p6._0; - var newSeed = _p6._1; - return A2( - _elm_lang$core$Task$andThen, - function (_p7) { - return A3(_elm_lang$core$Random$onEffects, router, _p5._1, newSeed); - }, - A2(_elm_lang$core$Platform$sendToApp, router, value)); - } - }); -var _elm_lang$core$Random$listHelp = F4( - function (list, n, generate, seed) { - listHelp: - while (true) { - if (_elm_lang$core$Native_Utils.cmp(n, 1) < 0) { - return { - ctor: '_Tuple2', - _0: _elm_lang$core$List$reverse(list), - _1: seed - }; - } else { - var _p8 = generate(seed); - var value = _p8._0; - var newSeed = _p8._1; - var _v2 = {ctor: '::', _0: value, _1: list}, - _v3 = n - 1, - _v4 = generate, - _v5 = newSeed; - list = _v2; - n = _v3; - generate = _v4; - seed = _v5; - continue listHelp; - } - } - }); -var _elm_lang$core$Random$minInt = -2147483648; -var _elm_lang$core$Random$maxInt = 2147483647; -var _elm_lang$core$Random$iLogBase = F2( - function (b, i) { - return (_elm_lang$core$Native_Utils.cmp(i, b) < 0) ? 1 : (1 + A2(_elm_lang$core$Random$iLogBase, b, (i / b) | 0)); - }); -var _elm_lang$core$Random$command = _elm_lang$core$Native_Platform.leaf('Random'); -var _elm_lang$core$Random$Generator = function (a) { - return {ctor: 'Generator', _0: a}; -}; -var _elm_lang$core$Random$list = F2( - function (n, _p9) { - var _p10 = _p9; - return _elm_lang$core$Random$Generator( - function (seed) { - return A4( - _elm_lang$core$Random$listHelp, - {ctor: '[]'}, - n, - _p10._0, - seed); - }); - }); -var _elm_lang$core$Random$map = F2( - function (func, _p11) { - var _p12 = _p11; - return _elm_lang$core$Random$Generator( - function (seed0) { - var _p13 = _p12._0(seed0); - var a = _p13._0; - var seed1 = _p13._1; - return { - ctor: '_Tuple2', - _0: func(a), - _1: seed1 - }; - }); - }); -var _elm_lang$core$Random$map2 = F3( - function (func, _p15, _p14) { - var _p16 = _p15; - var _p17 = _p14; - return _elm_lang$core$Random$Generator( - function (seed0) { - var _p18 = _p16._0(seed0); - var a = _p18._0; - var seed1 = _p18._1; - var _p19 = _p17._0(seed1); - var b = _p19._0; - var seed2 = _p19._1; - return { - ctor: '_Tuple2', - _0: A2(func, a, b), - _1: seed2 - }; - }); - }); -var _elm_lang$core$Random$pair = F2( - function (genA, genB) { - return A3( - _elm_lang$core$Random$map2, - F2( - function (v0, v1) { - return {ctor: '_Tuple2', _0: v0, _1: v1}; - }), - genA, - genB); - }); -var _elm_lang$core$Random$map3 = F4( - function (func, _p22, _p21, _p20) { - var _p23 = _p22; - var _p24 = _p21; - var _p25 = _p20; - return _elm_lang$core$Random$Generator( - function (seed0) { - var _p26 = _p23._0(seed0); - var a = _p26._0; - var seed1 = _p26._1; - var _p27 = _p24._0(seed1); - var b = _p27._0; - var seed2 = _p27._1; - var _p28 = _p25._0(seed2); - var c = _p28._0; - var seed3 = _p28._1; - return { - ctor: '_Tuple2', - _0: A3(func, a, b, c), - _1: seed3 - }; - }); - }); -var _elm_lang$core$Random$map4 = F5( - function (func, _p32, _p31, _p30, _p29) { - var _p33 = _p32; - var _p34 = _p31; - var _p35 = _p30; - var _p36 = _p29; - return _elm_lang$core$Random$Generator( - function (seed0) { - var _p37 = _p33._0(seed0); - var a = _p37._0; - var seed1 = _p37._1; - var _p38 = _p34._0(seed1); - var b = _p38._0; - var seed2 = _p38._1; - var _p39 = _p35._0(seed2); - var c = _p39._0; - var seed3 = _p39._1; - var _p40 = _p36._0(seed3); - var d = _p40._0; - var seed4 = _p40._1; - return { - ctor: '_Tuple2', - _0: A4(func, a, b, c, d), - _1: seed4 - }; - }); - }); -var _elm_lang$core$Random$map5 = F6( - function (func, _p45, _p44, _p43, _p42, _p41) { - var _p46 = _p45; - var _p47 = _p44; - var _p48 = _p43; - var _p49 = _p42; - var _p50 = _p41; - return _elm_lang$core$Random$Generator( - function (seed0) { - var _p51 = _p46._0(seed0); - var a = _p51._0; - var seed1 = _p51._1; - var _p52 = _p47._0(seed1); - var b = _p52._0; - var seed2 = _p52._1; - var _p53 = _p48._0(seed2); - var c = _p53._0; - var seed3 = _p53._1; - var _p54 = _p49._0(seed3); - var d = _p54._0; - var seed4 = _p54._1; - var _p55 = _p50._0(seed4); - var e = _p55._0; - var seed5 = _p55._1; - return { - ctor: '_Tuple2', - _0: A5(func, a, b, c, d, e), - _1: seed5 - }; - }); - }); -var _elm_lang$core$Random$andThen = F2( - function (callback, _p56) { - var _p57 = _p56; - return _elm_lang$core$Random$Generator( - function (seed) { - var _p58 = _p57._0(seed); - var result = _p58._0; - var newSeed = _p58._1; - var _p59 = callback(result); - var genB = _p59._0; - return genB(newSeed); - }); - }); -var _elm_lang$core$Random$State = F2( - function (a, b) { - return {ctor: 'State', _0: a, _1: b}; - }); -var _elm_lang$core$Random$initState = function (seed) { - var s = A2(_elm_lang$core$Basics$max, seed, 0 - seed); - var q = (s / (_elm_lang$core$Random$magicNum6 - 1)) | 0; - var s2 = A2(_elm_lang$core$Basics_ops['%'], q, _elm_lang$core$Random$magicNum7 - 1); - var s1 = A2(_elm_lang$core$Basics_ops['%'], s, _elm_lang$core$Random$magicNum6 - 1); - return A2(_elm_lang$core$Random$State, s1 + 1, s2 + 1); -}; -var _elm_lang$core$Random$next = function (_p60) { - var _p61 = _p60; - var _p63 = _p61._1; - var _p62 = _p61._0; - var k2 = (_p63 / _elm_lang$core$Random$magicNum3) | 0; - var rawState2 = (_elm_lang$core$Random$magicNum4 * (_p63 - (k2 * _elm_lang$core$Random$magicNum3))) - (k2 * _elm_lang$core$Random$magicNum5); - var newState2 = (_elm_lang$core$Native_Utils.cmp(rawState2, 0) < 0) ? (rawState2 + _elm_lang$core$Random$magicNum7) : rawState2; - var k1 = (_p62 / _elm_lang$core$Random$magicNum1) | 0; - var rawState1 = (_elm_lang$core$Random$magicNum0 * (_p62 - (k1 * _elm_lang$core$Random$magicNum1))) - (k1 * _elm_lang$core$Random$magicNum2); - var newState1 = (_elm_lang$core$Native_Utils.cmp(rawState1, 0) < 0) ? (rawState1 + _elm_lang$core$Random$magicNum6) : rawState1; - var z = newState1 - newState2; - var newZ = (_elm_lang$core$Native_Utils.cmp(z, 1) < 0) ? (z + _elm_lang$core$Random$magicNum8) : z; - return { - ctor: '_Tuple2', - _0: newZ, - _1: A2(_elm_lang$core$Random$State, newState1, newState2) - }; -}; -var _elm_lang$core$Random$split = function (_p64) { - var _p65 = _p64; - var _p68 = _p65._1; - var _p67 = _p65._0; - var _p66 = _elm_lang$core$Tuple$second( - _elm_lang$core$Random$next(_p65)); - var t1 = _p66._0; - var t2 = _p66._1; - var new_s2 = _elm_lang$core$Native_Utils.eq(_p68, 1) ? (_elm_lang$core$Random$magicNum7 - 1) : (_p68 - 1); - var new_s1 = _elm_lang$core$Native_Utils.eq(_p67, _elm_lang$core$Random$magicNum6 - 1) ? 1 : (_p67 + 1); - return { - ctor: '_Tuple2', - _0: A2(_elm_lang$core$Random$State, new_s1, t2), - _1: A2(_elm_lang$core$Random$State, t1, new_s2) - }; -}; -var _elm_lang$core$Random$Seed = function (a) { - return {ctor: 'Seed', _0: a}; -}; -var _elm_lang$core$Random$int = F2( - function (a, b) { - return _elm_lang$core$Random$Generator( - function (_p69) { - var _p70 = _p69; - var _p75 = _p70._0; - var base = 2147483561; - var f = F3( - function (n, acc, state) { - f: - while (true) { - var _p71 = n; - if (_p71 === 0) { - return {ctor: '_Tuple2', _0: acc, _1: state}; - } else { - var _p72 = _p75.next(state); - var x = _p72._0; - var nextState = _p72._1; - var _v27 = n - 1, - _v28 = x + (acc * base), - _v29 = nextState; - n = _v27; - acc = _v28; - state = _v29; - continue f; - } - } - }); - var _p73 = (_elm_lang$core$Native_Utils.cmp(a, b) < 0) ? {ctor: '_Tuple2', _0: a, _1: b} : {ctor: '_Tuple2', _0: b, _1: a}; - var lo = _p73._0; - var hi = _p73._1; - var k = (hi - lo) + 1; - var n = A2(_elm_lang$core$Random$iLogBase, base, k); - var _p74 = A3(f, n, 1, _p75.state); - var v = _p74._0; - var nextState = _p74._1; - return { - ctor: '_Tuple2', - _0: lo + A2(_elm_lang$core$Basics_ops['%'], v, k), - _1: _elm_lang$core$Random$Seed( - _elm_lang$core$Native_Utils.update( - _p75, - {state: nextState})) - }; - }); - }); -var _elm_lang$core$Random$bool = A2( - _elm_lang$core$Random$map, - F2( - function (x, y) { - return _elm_lang$core$Native_Utils.eq(x, y); - })(1), - A2(_elm_lang$core$Random$int, 0, 1)); -var _elm_lang$core$Random$float = F2( - function (a, b) { - return _elm_lang$core$Random$Generator( - function (seed) { - var _p76 = A2( - _elm_lang$core$Random$step, - A2(_elm_lang$core$Random$int, _elm_lang$core$Random$minInt, _elm_lang$core$Random$maxInt), - seed); - var number = _p76._0; - var newSeed = _p76._1; - var negativeOneToOne = _elm_lang$core$Basics$toFloat(number) / _elm_lang$core$Basics$toFloat(_elm_lang$core$Random$maxInt - _elm_lang$core$Random$minInt); - var _p77 = (_elm_lang$core$Native_Utils.cmp(a, b) < 0) ? {ctor: '_Tuple2', _0: a, _1: b} : {ctor: '_Tuple2', _0: b, _1: a}; - var lo = _p77._0; - var hi = _p77._1; - var scaled = ((lo + hi) / 2) + ((hi - lo) * negativeOneToOne); - return {ctor: '_Tuple2', _0: scaled, _1: newSeed}; - }); - }); -var _elm_lang$core$Random$initialSeed = function (n) { - return _elm_lang$core$Random$Seed( - { - state: _elm_lang$core$Random$initState(n), - next: _elm_lang$core$Random$next, - split: _elm_lang$core$Random$split, - range: _elm_lang$core$Random$range - }); -}; -var _elm_lang$core$Random$init = A2( - _elm_lang$core$Task$andThen, - function (t) { - return _elm_lang$core$Task$succeed( - _elm_lang$core$Random$initialSeed( - _elm_lang$core$Basics$round(t))); - }, - _elm_lang$core$Time$now); -var _elm_lang$core$Random$Generate = function (a) { - return {ctor: 'Generate', _0: a}; -}; -var _elm_lang$core$Random$generate = F2( - function (tagger, generator) { - return _elm_lang$core$Random$command( - _elm_lang$core$Random$Generate( - A2(_elm_lang$core$Random$map, tagger, generator))); - }); -var _elm_lang$core$Random$cmdMap = F2( - function (func, _p78) { - var _p79 = _p78; - return _elm_lang$core$Random$Generate( - A2(_elm_lang$core$Random$map, func, _p79._0)); - }); -_elm_lang$core$Native_Platform.effectManagers['Random'] = {pkg: 'elm-lang/core', init: _elm_lang$core$Random$init, onEffects: _elm_lang$core$Random$onEffects, onSelfMsg: _elm_lang$core$Random$onSelfMsg, tag: 'cmd', cmdMap: _elm_lang$core$Random$cmdMap}; - -var _elm_lang$core$Color$fmod = F2( - function (f, n) { - var integer = _elm_lang$core$Basics$floor(f); - return (_elm_lang$core$Basics$toFloat( - A2(_elm_lang$core$Basics_ops['%'], integer, n)) + f) - _elm_lang$core$Basics$toFloat(integer); - }); -var _elm_lang$core$Color$rgbToHsl = F3( - function (red, green, blue) { - var b = _elm_lang$core$Basics$toFloat(blue) / 255; - var g = _elm_lang$core$Basics$toFloat(green) / 255; - var r = _elm_lang$core$Basics$toFloat(red) / 255; - var cMax = A2( - _elm_lang$core$Basics$max, - A2(_elm_lang$core$Basics$max, r, g), - b); - var cMin = A2( - _elm_lang$core$Basics$min, - A2(_elm_lang$core$Basics$min, r, g), - b); - var c = cMax - cMin; - var lightness = (cMax + cMin) / 2; - var saturation = _elm_lang$core$Native_Utils.eq(lightness, 0) ? 0 : (c / (1 - _elm_lang$core$Basics$abs((2 * lightness) - 1))); - var hue = _elm_lang$core$Basics$degrees(60) * (_elm_lang$core$Native_Utils.eq(cMax, r) ? A2(_elm_lang$core$Color$fmod, (g - b) / c, 6) : (_elm_lang$core$Native_Utils.eq(cMax, g) ? (((b - r) / c) + 2) : (((r - g) / c) + 4))); - return {ctor: '_Tuple3', _0: hue, _1: saturation, _2: lightness}; - }); -var _elm_lang$core$Color$hslToRgb = F3( - function (hue, saturation, lightness) { - var normHue = hue / _elm_lang$core$Basics$degrees(60); - var chroma = (1 - _elm_lang$core$Basics$abs((2 * lightness) - 1)) * saturation; - var x = chroma * (1 - _elm_lang$core$Basics$abs( - A2(_elm_lang$core$Color$fmod, normHue, 2) - 1)); - var _p0 = (_elm_lang$core$Native_Utils.cmp(normHue, 0) < 0) ? {ctor: '_Tuple3', _0: 0, _1: 0, _2: 0} : ((_elm_lang$core$Native_Utils.cmp(normHue, 1) < 0) ? {ctor: '_Tuple3', _0: chroma, _1: x, _2: 0} : ((_elm_lang$core$Native_Utils.cmp(normHue, 2) < 0) ? {ctor: '_Tuple3', _0: x, _1: chroma, _2: 0} : ((_elm_lang$core$Native_Utils.cmp(normHue, 3) < 0) ? {ctor: '_Tuple3', _0: 0, _1: chroma, _2: x} : ((_elm_lang$core$Native_Utils.cmp(normHue, 4) < 0) ? {ctor: '_Tuple3', _0: 0, _1: x, _2: chroma} : ((_elm_lang$core$Native_Utils.cmp(normHue, 5) < 0) ? {ctor: '_Tuple3', _0: x, _1: 0, _2: chroma} : ((_elm_lang$core$Native_Utils.cmp(normHue, 6) < 0) ? {ctor: '_Tuple3', _0: chroma, _1: 0, _2: x} : {ctor: '_Tuple3', _0: 0, _1: 0, _2: 0})))))); - var r = _p0._0; - var g = _p0._1; - var b = _p0._2; - var m = lightness - (chroma / 2); - return {ctor: '_Tuple3', _0: r + m, _1: g + m, _2: b + m}; - }); -var _elm_lang$core$Color$toRgb = function (color) { - var _p1 = color; - if (_p1.ctor === 'RGBA') { - return {red: _p1._0, green: _p1._1, blue: _p1._2, alpha: _p1._3}; - } else { - var _p2 = A3(_elm_lang$core$Color$hslToRgb, _p1._0, _p1._1, _p1._2); - var r = _p2._0; - var g = _p2._1; - var b = _p2._2; - return { - red: _elm_lang$core$Basics$round(255 * r), - green: _elm_lang$core$Basics$round(255 * g), - blue: _elm_lang$core$Basics$round(255 * b), - alpha: _p1._3 - }; - } -}; -var _elm_lang$core$Color$toHsl = function (color) { - var _p3 = color; - if (_p3.ctor === 'HSLA') { - return {hue: _p3._0, saturation: _p3._1, lightness: _p3._2, alpha: _p3._3}; - } else { - var _p4 = A3(_elm_lang$core$Color$rgbToHsl, _p3._0, _p3._1, _p3._2); - var h = _p4._0; - var s = _p4._1; - var l = _p4._2; - return {hue: h, saturation: s, lightness: l, alpha: _p3._3}; - } -}; -var _elm_lang$core$Color$HSLA = F4( - function (a, b, c, d) { - return {ctor: 'HSLA', _0: a, _1: b, _2: c, _3: d}; - }); -var _elm_lang$core$Color$hsla = F4( - function (hue, saturation, lightness, alpha) { - return A4( - _elm_lang$core$Color$HSLA, - hue - _elm_lang$core$Basics$turns( - _elm_lang$core$Basics$toFloat( - _elm_lang$core$Basics$floor(hue / (2 * _elm_lang$core$Basics$pi)))), - saturation, - lightness, - alpha); - }); -var _elm_lang$core$Color$hsl = F3( - function (hue, saturation, lightness) { - return A4(_elm_lang$core$Color$hsla, hue, saturation, lightness, 1); - }); -var _elm_lang$core$Color$complement = function (color) { - var _p5 = color; - if (_p5.ctor === 'HSLA') { - return A4( - _elm_lang$core$Color$hsla, - _p5._0 + _elm_lang$core$Basics$degrees(180), - _p5._1, - _p5._2, - _p5._3); - } else { - var _p6 = A3(_elm_lang$core$Color$rgbToHsl, _p5._0, _p5._1, _p5._2); - var h = _p6._0; - var s = _p6._1; - var l = _p6._2; - return A4( - _elm_lang$core$Color$hsla, - h + _elm_lang$core$Basics$degrees(180), - s, - l, - _p5._3); - } -}; -var _elm_lang$core$Color$grayscale = function (p) { - return A4(_elm_lang$core$Color$HSLA, 0, 0, 1 - p, 1); -}; -var _elm_lang$core$Color$greyscale = function (p) { - return A4(_elm_lang$core$Color$HSLA, 0, 0, 1 - p, 1); -}; -var _elm_lang$core$Color$RGBA = F4( - function (a, b, c, d) { - return {ctor: 'RGBA', _0: a, _1: b, _2: c, _3: d}; - }); -var _elm_lang$core$Color$rgba = _elm_lang$core$Color$RGBA; -var _elm_lang$core$Color$rgb = F3( - function (r, g, b) { - return A4(_elm_lang$core$Color$RGBA, r, g, b, 1); - }); -var _elm_lang$core$Color$lightRed = A4(_elm_lang$core$Color$RGBA, 239, 41, 41, 1); -var _elm_lang$core$Color$red = A4(_elm_lang$core$Color$RGBA, 204, 0, 0, 1); -var _elm_lang$core$Color$darkRed = A4(_elm_lang$core$Color$RGBA, 164, 0, 0, 1); -var _elm_lang$core$Color$lightOrange = A4(_elm_lang$core$Color$RGBA, 252, 175, 62, 1); -var _elm_lang$core$Color$orange = A4(_elm_lang$core$Color$RGBA, 245, 121, 0, 1); -var _elm_lang$core$Color$darkOrange = A4(_elm_lang$core$Color$RGBA, 206, 92, 0, 1); -var _elm_lang$core$Color$lightYellow = A4(_elm_lang$core$Color$RGBA, 255, 233, 79, 1); -var _elm_lang$core$Color$yellow = A4(_elm_lang$core$Color$RGBA, 237, 212, 0, 1); -var _elm_lang$core$Color$darkYellow = A4(_elm_lang$core$Color$RGBA, 196, 160, 0, 1); -var _elm_lang$core$Color$lightGreen = A4(_elm_lang$core$Color$RGBA, 138, 226, 52, 1); -var _elm_lang$core$Color$green = A4(_elm_lang$core$Color$RGBA, 115, 210, 22, 1); -var _elm_lang$core$Color$darkGreen = A4(_elm_lang$core$Color$RGBA, 78, 154, 6, 1); -var _elm_lang$core$Color$lightBlue = A4(_elm_lang$core$Color$RGBA, 114, 159, 207, 1); -var _elm_lang$core$Color$blue = A4(_elm_lang$core$Color$RGBA, 52, 101, 164, 1); -var _elm_lang$core$Color$darkBlue = A4(_elm_lang$core$Color$RGBA, 32, 74, 135, 1); -var _elm_lang$core$Color$lightPurple = A4(_elm_lang$core$Color$RGBA, 173, 127, 168, 1); -var _elm_lang$core$Color$purple = A4(_elm_lang$core$Color$RGBA, 117, 80, 123, 1); -var _elm_lang$core$Color$darkPurple = A4(_elm_lang$core$Color$RGBA, 92, 53, 102, 1); -var _elm_lang$core$Color$lightBrown = A4(_elm_lang$core$Color$RGBA, 233, 185, 110, 1); -var _elm_lang$core$Color$brown = A4(_elm_lang$core$Color$RGBA, 193, 125, 17, 1); -var _elm_lang$core$Color$darkBrown = A4(_elm_lang$core$Color$RGBA, 143, 89, 2, 1); -var _elm_lang$core$Color$black = A4(_elm_lang$core$Color$RGBA, 0, 0, 0, 1); -var _elm_lang$core$Color$white = A4(_elm_lang$core$Color$RGBA, 255, 255, 255, 1); -var _elm_lang$core$Color$lightGrey = A4(_elm_lang$core$Color$RGBA, 238, 238, 236, 1); -var _elm_lang$core$Color$grey = A4(_elm_lang$core$Color$RGBA, 211, 215, 207, 1); -var _elm_lang$core$Color$darkGrey = A4(_elm_lang$core$Color$RGBA, 186, 189, 182, 1); -var _elm_lang$core$Color$lightGray = A4(_elm_lang$core$Color$RGBA, 238, 238, 236, 1); -var _elm_lang$core$Color$gray = A4(_elm_lang$core$Color$RGBA, 211, 215, 207, 1); -var _elm_lang$core$Color$darkGray = A4(_elm_lang$core$Color$RGBA, 186, 189, 182, 1); -var _elm_lang$core$Color$lightCharcoal = A4(_elm_lang$core$Color$RGBA, 136, 138, 133, 1); -var _elm_lang$core$Color$charcoal = A4(_elm_lang$core$Color$RGBA, 85, 87, 83, 1); -var _elm_lang$core$Color$darkCharcoal = A4(_elm_lang$core$Color$RGBA, 46, 52, 54, 1); -var _elm_lang$core$Color$Radial = F5( - function (a, b, c, d, e) { - return {ctor: 'Radial', _0: a, _1: b, _2: c, _3: d, _4: e}; - }); -var _elm_lang$core$Color$radial = _elm_lang$core$Color$Radial; -var _elm_lang$core$Color$Linear = F3( - function (a, b, c) { - return {ctor: 'Linear', _0: a, _1: b, _2: c}; - }); -var _elm_lang$core$Color$linear = _elm_lang$core$Color$Linear; - -//import Maybe, Native.List // - -var _elm_lang$core$Native_Regex = function() { - -function escape(str) -{ - return str.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); -} -function caseInsensitive(re) -{ - return new RegExp(re.source, 'gi'); -} -function regex(raw) -{ - return new RegExp(raw, 'g'); -} - -function contains(re, string) -{ - return string.match(re) !== null; -} - -function find(n, re, str) -{ - n = n.ctor === 'All' ? Infinity : n._0; - var out = []; - var number = 0; - var string = str; - var lastIndex = re.lastIndex; - var prevLastIndex = -1; - var result; - while (number++ < n && (result = re.exec(string))) - { - if (prevLastIndex === re.lastIndex) break; - var i = result.length - 1; - var subs = new Array(i); - while (i > 0) - { - var submatch = result[i]; - subs[--i] = submatch === undefined - ? _elm_lang$core$Maybe$Nothing - : _elm_lang$core$Maybe$Just(submatch); - } - out.push({ - match: result[0], - submatches: _elm_lang$core$Native_List.fromArray(subs), - index: result.index, - number: number - }); - prevLastIndex = re.lastIndex; - } - re.lastIndex = lastIndex; - return _elm_lang$core$Native_List.fromArray(out); -} - -function replace(n, re, replacer, string) -{ - n = n.ctor === 'All' ? Infinity : n._0; - var count = 0; - function jsReplacer(match) - { - if (count++ >= n) - { - return match; - } - var i = arguments.length - 3; - var submatches = new Array(i); - while (i > 0) - { - var submatch = arguments[i]; - submatches[--i] = submatch === undefined - ? _elm_lang$core$Maybe$Nothing - : _elm_lang$core$Maybe$Just(submatch); - } - return replacer({ - match: match, - submatches: _elm_lang$core$Native_List.fromArray(submatches), - index: arguments[arguments.length - 2], - number: count - }); - } - return string.replace(re, jsReplacer); -} - -function split(n, re, str) -{ - n = n.ctor === 'All' ? Infinity : n._0; - if (n === Infinity) - { - return _elm_lang$core$Native_List.fromArray(str.split(re)); - } - var string = str; - var result; - var out = []; - var start = re.lastIndex; - var restoreLastIndex = re.lastIndex; - while (n--) - { - if (!(result = re.exec(string))) break; - out.push(string.slice(start, result.index)); - start = re.lastIndex; - } - out.push(string.slice(start)); - re.lastIndex = restoreLastIndex; - return _elm_lang$core$Native_List.fromArray(out); -} - -return { - regex: regex, - caseInsensitive: caseInsensitive, - escape: escape, - - contains: F2(contains), - find: F3(find), - replace: F4(replace), - split: F3(split) -}; - -}(); - -var _elm_lang$core$Regex$split = _elm_lang$core$Native_Regex.split; -var _elm_lang$core$Regex$replace = _elm_lang$core$Native_Regex.replace; -var _elm_lang$core$Regex$find = _elm_lang$core$Native_Regex.find; -var _elm_lang$core$Regex$contains = _elm_lang$core$Native_Regex.contains; -var _elm_lang$core$Regex$caseInsensitive = _elm_lang$core$Native_Regex.caseInsensitive; -var _elm_lang$core$Regex$regex = _elm_lang$core$Native_Regex.regex; -var _elm_lang$core$Regex$escape = _elm_lang$core$Native_Regex.escape; -var _elm_lang$core$Regex$Match = F4( - function (a, b, c, d) { - return {match: a, submatches: b, index: c, number: d}; - }); -var _elm_lang$core$Regex$Regex = {ctor: 'Regex'}; -var _elm_lang$core$Regex$AtMost = function (a) { - return {ctor: 'AtMost', _0: a}; -}; -var _elm_lang$core$Regex$All = {ctor: 'All'}; - -var _elm_lang$dom$Native_Dom = function() { - -var fakeNode = { - addEventListener: function() {}, - removeEventListener: function() {} -}; - -var onDocument = on(typeof document !== 'undefined' ? document : fakeNode); -var onWindow = on(typeof window !== 'undefined' ? window : fakeNode); - -function on(node) -{ - return function(eventName, decoder, toTask) - { - return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) { - - function performTask(event) - { - var result = A2(_elm_lang$core$Json_Decode$decodeValue, decoder, event); - if (result.ctor === 'Ok') - { - _elm_lang$core$Native_Scheduler.rawSpawn(toTask(result._0)); - } - } - - node.addEventListener(eventName, performTask); - - return function() - { - node.removeEventListener(eventName, performTask); - }; - }); - }; -} - -var rAF = typeof requestAnimationFrame !== 'undefined' - ? requestAnimationFrame - : function(callback) { callback(); }; - -function withNode(id, doStuff) -{ - return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) - { - rAF(function() - { - var node = document.getElementById(id); - if (node === null) - { - callback(_elm_lang$core$Native_Scheduler.fail({ ctor: 'NotFound', _0: id })); - return; - } - callback(_elm_lang$core$Native_Scheduler.succeed(doStuff(node))); - }); - }); -} - - -// FOCUS - -function focus(id) -{ - return withNode(id, function(node) { - node.focus(); - return _elm_lang$core$Native_Utils.Tuple0; - }); -} - -function blur(id) -{ - return withNode(id, function(node) { - node.blur(); - return _elm_lang$core$Native_Utils.Tuple0; - }); -} - - -// SCROLLING - -function getScrollTop(id) -{ - return withNode(id, function(node) { - return node.scrollTop; - }); -} - -function setScrollTop(id, desiredScrollTop) -{ - return withNode(id, function(node) { - node.scrollTop = desiredScrollTop; - return _elm_lang$core$Native_Utils.Tuple0; - }); -} - -function toBottom(id) -{ - return withNode(id, function(node) { - node.scrollTop = node.scrollHeight; - return _elm_lang$core$Native_Utils.Tuple0; - }); -} - -function getScrollLeft(id) -{ - return withNode(id, function(node) { - return node.scrollLeft; - }); -} - -function setScrollLeft(id, desiredScrollLeft) -{ - return withNode(id, function(node) { - node.scrollLeft = desiredScrollLeft; - return _elm_lang$core$Native_Utils.Tuple0; - }); -} - -function toRight(id) -{ - return withNode(id, function(node) { - node.scrollLeft = node.scrollWidth; - return _elm_lang$core$Native_Utils.Tuple0; - }); -} - - -// SIZE - -function width(options, id) -{ - return withNode(id, function(node) { - switch (options.ctor) - { - case 'Content': - return node.scrollWidth; - case 'VisibleContent': - return node.clientWidth; - case 'VisibleContentWithBorders': - return node.offsetWidth; - case 'VisibleContentWithBordersAndMargins': - var rect = node.getBoundingClientRect(); - return rect.right - rect.left; - } - }); -} - -function height(options, id) -{ - return withNode(id, function(node) { - switch (options.ctor) - { - case 'Content': - return node.scrollHeight; - case 'VisibleContent': - return node.clientHeight; - case 'VisibleContentWithBorders': - return node.offsetHeight; - case 'VisibleContentWithBordersAndMargins': - var rect = node.getBoundingClientRect(); - return rect.bottom - rect.top; - } - }); -} - -return { - onDocument: F3(onDocument), - onWindow: F3(onWindow), - - focus: focus, - blur: blur, - - getScrollTop: getScrollTop, - setScrollTop: F2(setScrollTop), - getScrollLeft: getScrollLeft, - setScrollLeft: F2(setScrollLeft), - toBottom: toBottom, - toRight: toRight, - - height: F2(height), - width: F2(width) -}; - -}(); - -var _elm_lang$dom$Dom$blur = _elm_lang$dom$Native_Dom.blur; -var _elm_lang$dom$Dom$focus = _elm_lang$dom$Native_Dom.focus; -var _elm_lang$dom$Dom$NotFound = function (a) { - return {ctor: 'NotFound', _0: a}; -}; - -var _elm_lang$dom$Dom_Size$width = _elm_lang$dom$Native_Dom.width; -var _elm_lang$dom$Dom_Size$height = _elm_lang$dom$Native_Dom.height; -var _elm_lang$dom$Dom_Size$VisibleContentWithBordersAndMargins = {ctor: 'VisibleContentWithBordersAndMargins'}; -var _elm_lang$dom$Dom_Size$VisibleContentWithBorders = {ctor: 'VisibleContentWithBorders'}; -var _elm_lang$dom$Dom_Size$VisibleContent = {ctor: 'VisibleContent'}; -var _elm_lang$dom$Dom_Size$Content = {ctor: 'Content'}; - -var _elm_lang$dom$Dom_Scroll$toX = _elm_lang$dom$Native_Dom.setScrollLeft; -var _elm_lang$dom$Dom_Scroll$x = _elm_lang$dom$Native_Dom.getScrollLeft; -var _elm_lang$dom$Dom_Scroll$toRight = _elm_lang$dom$Native_Dom.toRight; -var _elm_lang$dom$Dom_Scroll$toLeft = function (id) { - return A2(_elm_lang$dom$Dom_Scroll$toX, id, 0); -}; -var _elm_lang$dom$Dom_Scroll$toY = _elm_lang$dom$Native_Dom.setScrollTop; -var _elm_lang$dom$Dom_Scroll$y = _elm_lang$dom$Native_Dom.getScrollTop; -var _elm_lang$dom$Dom_Scroll$toBottom = _elm_lang$dom$Native_Dom.toBottom; -var _elm_lang$dom$Dom_Scroll$toTop = function (id) { - return A2(_elm_lang$dom$Dom_Scroll$toY, id, 0); -}; - -var _elm_lang$virtual_dom$VirtualDom_Debug$wrap; -var _elm_lang$virtual_dom$VirtualDom_Debug$wrapWithFlags; - -var _elm_lang$virtual_dom$Native_VirtualDom = function() { - -var STYLE_KEY = 'STYLE'; -var EVENT_KEY = 'EVENT'; -var ATTR_KEY = 'ATTR'; -var ATTR_NS_KEY = 'ATTR_NS'; - -var localDoc = typeof document !== 'undefined' ? document : {}; - - -//////////// VIRTUAL DOM NODES //////////// - - -function text(string) -{ - return { - type: 'text', - text: string - }; -} - - -function node(tag) -{ - return F2(function(factList, kidList) { - return nodeHelp(tag, factList, kidList); - }); -} - - -function nodeHelp(tag, factList, kidList) -{ - var organized = organizeFacts(factList); - var namespace = organized.namespace; - var facts = organized.facts; - - var children = []; - var descendantsCount = 0; - while (kidList.ctor !== '[]') - { - var kid = kidList._0; - descendantsCount += (kid.descendantsCount || 0); - children.push(kid); - kidList = kidList._1; - } - descendantsCount += children.length; - - return { - type: 'node', - tag: tag, - facts: facts, - children: children, - namespace: namespace, - descendantsCount: descendantsCount - }; -} - - -function keyedNode(tag, factList, kidList) -{ - var organized = organizeFacts(factList); - var namespace = organized.namespace; - var facts = organized.facts; - - var children = []; - var descendantsCount = 0; - while (kidList.ctor !== '[]') - { - var kid = kidList._0; - descendantsCount += (kid._1.descendantsCount || 0); - children.push(kid); - kidList = kidList._1; - } - descendantsCount += children.length; - - return { - type: 'keyed-node', - tag: tag, - facts: facts, - children: children, - namespace: namespace, - descendantsCount: descendantsCount - }; -} - - -function custom(factList, model, impl) -{ - var facts = organizeFacts(factList).facts; - - return { - type: 'custom', - facts: facts, - model: model, - impl: impl - }; -} - - -function map(tagger, node) -{ - return { - type: 'tagger', - tagger: tagger, - node: node, - descendantsCount: 1 + (node.descendantsCount || 0) - }; -} - - -function thunk(func, args, thunk) -{ - return { - type: 'thunk', - func: func, - args: args, - thunk: thunk, - node: undefined - }; -} - -function lazy(fn, a) -{ - return thunk(fn, [a], function() { - return fn(a); - }); -} - -function lazy2(fn, a, b) -{ - return thunk(fn, [a,b], function() { - return A2(fn, a, b); - }); -} - -function lazy3(fn, a, b, c) -{ - return thunk(fn, [a,b,c], function() { - return A3(fn, a, b, c); - }); -} - - - -// FACTS - - -function organizeFacts(factList) -{ - var namespace, facts = {}; - - while (factList.ctor !== '[]') - { - var entry = factList._0; - var key = entry.key; - - if (key === ATTR_KEY || key === ATTR_NS_KEY || key === EVENT_KEY) - { - var subFacts = facts[key] || {}; - subFacts[entry.realKey] = entry.value; - facts[key] = subFacts; - } - else if (key === STYLE_KEY) - { - var styles = facts[key] || {}; - var styleList = entry.value; - while (styleList.ctor !== '[]') - { - var style = styleList._0; - styles[style._0] = style._1; - styleList = styleList._1; - } - facts[key] = styles; - } - else if (key === 'namespace') - { - namespace = entry.value; - } - else if (key === 'className') - { - var classes = facts[key]; - facts[key] = typeof classes === 'undefined' - ? entry.value - : classes + ' ' + entry.value; - } - else - { - facts[key] = entry.value; - } - factList = factList._1; - } - - return { - facts: facts, - namespace: namespace - }; -} - - - -//////////// PROPERTIES AND ATTRIBUTES //////////// - - -function style(value) -{ - return { - key: STYLE_KEY, - value: value - }; -} - - -function property(key, value) -{ - return { - key: key, - value: value - }; -} - - -function attribute(key, value) -{ - return { - key: ATTR_KEY, - realKey: key, - value: value - }; -} - - -function attributeNS(namespace, key, value) -{ - return { - key: ATTR_NS_KEY, - realKey: key, - value: { - value: value, - namespace: namespace - } - }; -} - - -function on(name, options, decoder) -{ - return { - key: EVENT_KEY, - realKey: name, - value: { - options: options, - decoder: decoder - } - }; -} - - -function equalEvents(a, b) -{ - if (a.options !== b.options) - { - if (a.options.stopPropagation !== b.options.stopPropagation || a.options.preventDefault !== b.options.preventDefault) - { - return false; - } - } - return _elm_lang$core$Native_Json.equality(a.decoder, b.decoder); -} - - -function mapProperty(func, property) -{ - if (property.key !== EVENT_KEY) - { - return property; - } - return on( - property.realKey, - property.value.options, - A2(_elm_lang$core$Json_Decode$map, func, property.value.decoder) - ); -} - - -//////////// RENDER //////////// - - -function render(vNode, eventNode) -{ - switch (vNode.type) - { - case 'thunk': - if (!vNode.node) - { - vNode.node = vNode.thunk(); - } - return render(vNode.node, eventNode); - - case 'tagger': - var subNode = vNode.node; - var tagger = vNode.tagger; - - while (subNode.type === 'tagger') - { - typeof tagger !== 'object' - ? tagger = [tagger, subNode.tagger] - : tagger.push(subNode.tagger); - - subNode = subNode.node; - } - - var subEventRoot = { tagger: tagger, parent: eventNode }; - var domNode = render(subNode, subEventRoot); - domNode.elm_event_node_ref = subEventRoot; - return domNode; - - case 'text': - return localDoc.createTextNode(vNode.text); - - case 'node': - var domNode = vNode.namespace - ? localDoc.createElementNS(vNode.namespace, vNode.tag) - : localDoc.createElement(vNode.tag); - - applyFacts(domNode, eventNode, vNode.facts); - - var children = vNode.children; - - for (var i = 0; i < children.length; i++) - { - domNode.appendChild(render(children[i], eventNode)); - } - - return domNode; - - case 'keyed-node': - var domNode = vNode.namespace - ? localDoc.createElementNS(vNode.namespace, vNode.tag) - : localDoc.createElement(vNode.tag); - - applyFacts(domNode, eventNode, vNode.facts); - - var children = vNode.children; - - for (var i = 0; i < children.length; i++) - { - domNode.appendChild(render(children[i]._1, eventNode)); - } - - return domNode; - - case 'custom': - var domNode = vNode.impl.render(vNode.model); - applyFacts(domNode, eventNode, vNode.facts); - return domNode; - } -} - - - -//////////// APPLY FACTS //////////// - - -function applyFacts(domNode, eventNode, facts) -{ - for (var key in facts) - { - var value = facts[key]; - - switch (key) - { - case STYLE_KEY: - applyStyles(domNode, value); - break; - - case EVENT_KEY: - applyEvents(domNode, eventNode, value); - break; - - case ATTR_KEY: - applyAttrs(domNode, value); - break; - - case ATTR_NS_KEY: - applyAttrsNS(domNode, value); - break; - - case 'value': - if (domNode[key] !== value) - { - domNode[key] = value; - } - break; - - default: - domNode[key] = value; - break; - } - } -} - -function applyStyles(domNode, styles) -{ - var domNodeStyle = domNode.style; - - for (var key in styles) - { - domNodeStyle[key] = styles[key]; - } -} - -function applyEvents(domNode, eventNode, events) -{ - var allHandlers = domNode.elm_handlers || {}; - - for (var key in events) - { - var handler = allHandlers[key]; - var value = events[key]; - - if (typeof value === 'undefined') - { - domNode.removeEventListener(key, handler); - allHandlers[key] = undefined; - } - else if (typeof handler === 'undefined') - { - var handler = makeEventHandler(eventNode, value); - domNode.addEventListener(key, handler); - allHandlers[key] = handler; - } - else - { - handler.info = value; - } - } - - domNode.elm_handlers = allHandlers; -} - -function makeEventHandler(eventNode, info) -{ - function eventHandler(event) - { - var info = eventHandler.info; - - var value = A2(_elm_lang$core$Native_Json.run, info.decoder, event); - - if (value.ctor === 'Ok') - { - var options = info.options; - if (options.stopPropagation) - { - event.stopPropagation(); - } - if (options.preventDefault) - { - event.preventDefault(); - } - - var message = value._0; - - var currentEventNode = eventNode; - while (currentEventNode) - { - var tagger = currentEventNode.tagger; - if (typeof tagger === 'function') - { - message = tagger(message); - } - else - { - for (var i = tagger.length; i--; ) - { - message = tagger[i](message); - } - } - currentEventNode = currentEventNode.parent; - } - } - }; - - eventHandler.info = info; - - return eventHandler; -} - -function applyAttrs(domNode, attrs) -{ - for (var key in attrs) - { - var value = attrs[key]; - if (typeof value === 'undefined') - { - domNode.removeAttribute(key); - } - else - { - domNode.setAttribute(key, value); - } - } -} - -function applyAttrsNS(domNode, nsAttrs) -{ - for (var key in nsAttrs) - { - var pair = nsAttrs[key]; - var namespace = pair.namespace; - var value = pair.value; - - if (typeof value === 'undefined') - { - domNode.removeAttributeNS(namespace, key); - } - else - { - domNode.setAttributeNS(namespace, key, value); - } - } -} - - - -//////////// DIFF //////////// - - -function diff(a, b) -{ - var patches = []; - diffHelp(a, b, patches, 0); - return patches; -} - - -function makePatch(type, index, data) -{ - return { - index: index, - type: type, - data: data, - domNode: undefined, - eventNode: undefined - }; -} - - -function diffHelp(a, b, patches, index) -{ - if (a === b) - { - return; - } - - var aType = a.type; - var bType = b.type; - - // Bail if you run into different types of nodes. Implies that the - // structure has changed significantly and it's not worth a diff. - if (aType !== bType) - { - patches.push(makePatch('p-redraw', index, b)); - return; - } - - // Now we know that both nodes are the same type. - switch (bType) - { - case 'thunk': - var aArgs = a.args; - var bArgs = b.args; - var i = aArgs.length; - var same = a.func === b.func && i === bArgs.length; - while (same && i--) - { - same = aArgs[i] === bArgs[i]; - } - if (same) - { - b.node = a.node; - return; - } - b.node = b.thunk(); - var subPatches = []; - diffHelp(a.node, b.node, subPatches, 0); - if (subPatches.length > 0) - { - patches.push(makePatch('p-thunk', index, subPatches)); - } - return; - - case 'tagger': - // gather nested taggers - var aTaggers = a.tagger; - var bTaggers = b.tagger; - var nesting = false; - - var aSubNode = a.node; - while (aSubNode.type === 'tagger') - { - nesting = true; - - typeof aTaggers !== 'object' - ? aTaggers = [aTaggers, aSubNode.tagger] - : aTaggers.push(aSubNode.tagger); - - aSubNode = aSubNode.node; - } - - var bSubNode = b.node; - while (bSubNode.type === 'tagger') - { - nesting = true; - - typeof bTaggers !== 'object' - ? bTaggers = [bTaggers, bSubNode.tagger] - : bTaggers.push(bSubNode.tagger); - - bSubNode = bSubNode.node; - } - - // Just bail if different numbers of taggers. This implies the - // structure of the virtual DOM has changed. - if (nesting && aTaggers.length !== bTaggers.length) - { - patches.push(makePatch('p-redraw', index, b)); - return; - } - - // check if taggers are "the same" - if (nesting ? !pairwiseRefEqual(aTaggers, bTaggers) : aTaggers !== bTaggers) - { - patches.push(makePatch('p-tagger', index, bTaggers)); - } - - // diff everything below the taggers - diffHelp(aSubNode, bSubNode, patches, index + 1); - return; - - case 'text': - if (a.text !== b.text) - { - patches.push(makePatch('p-text', index, b.text)); - return; - } - - return; - - case 'node': - // Bail if obvious indicators have changed. Implies more serious - // structural changes such that it's not worth it to diff. - if (a.tag !== b.tag || a.namespace !== b.namespace) - { - patches.push(makePatch('p-redraw', index, b)); - return; - } - - var factsDiff = diffFacts(a.facts, b.facts); - - if (typeof factsDiff !== 'undefined') - { - patches.push(makePatch('p-facts', index, factsDiff)); - } - - diffChildren(a, b, patches, index); - return; - - case 'keyed-node': - // Bail if obvious indicators have changed. Implies more serious - // structural changes such that it's not worth it to diff. - if (a.tag !== b.tag || a.namespace !== b.namespace) - { - patches.push(makePatch('p-redraw', index, b)); - return; - } - - var factsDiff = diffFacts(a.facts, b.facts); - - if (typeof factsDiff !== 'undefined') - { - patches.push(makePatch('p-facts', index, factsDiff)); - } - - diffKeyedChildren(a, b, patches, index); - return; - - case 'custom': - if (a.impl !== b.impl) - { - patches.push(makePatch('p-redraw', index, b)); - return; - } - - var factsDiff = diffFacts(a.facts, b.facts); - if (typeof factsDiff !== 'undefined') - { - patches.push(makePatch('p-facts', index, factsDiff)); - } - - var patch = b.impl.diff(a,b); - if (patch) - { - patches.push(makePatch('p-custom', index, patch)); - return; - } - - return; - } -} - - -// assumes the incoming arrays are the same length -function pairwiseRefEqual(as, bs) -{ - for (var i = 0; i < as.length; i++) - { - if (as[i] !== bs[i]) - { - return false; - } - } - - return true; -} - - -// TODO Instead of creating a new diff object, it's possible to just test if -// there *is* a diff. During the actual patch, do the diff again and make the -// modifications directly. This way, there's no new allocations. Worth it? -function diffFacts(a, b, category) -{ - var diff; - - // look for changes and removals - for (var aKey in a) - { - if (aKey === STYLE_KEY || aKey === EVENT_KEY || aKey === ATTR_KEY || aKey === ATTR_NS_KEY) - { - var subDiff = diffFacts(a[aKey], b[aKey] || {}, aKey); - if (subDiff) - { - diff = diff || {}; - diff[aKey] = subDiff; - } - continue; - } - - // remove if not in the new facts - if (!(aKey in b)) - { - diff = diff || {}; - diff[aKey] = - (typeof category === 'undefined') - ? (typeof a[aKey] === 'string' ? '' : null) - : - (category === STYLE_KEY) - ? '' - : - (category === EVENT_KEY || category === ATTR_KEY) - ? undefined - : - { namespace: a[aKey].namespace, value: undefined }; - - continue; - } - - var aValue = a[aKey]; - var bValue = b[aKey]; - - // reference equal, so don't worry about it - if (aValue === bValue && aKey !== 'value' - || category === EVENT_KEY && equalEvents(aValue, bValue)) - { - continue; - } - - diff = diff || {}; - diff[aKey] = bValue; - } - - // add new stuff - for (var bKey in b) - { - if (!(bKey in a)) - { - diff = diff || {}; - diff[bKey] = b[bKey]; - } - } - - return diff; -} - - -function diffChildren(aParent, bParent, patches, rootIndex) -{ - var aChildren = aParent.children; - var bChildren = bParent.children; - - var aLen = aChildren.length; - var bLen = bChildren.length; - - // FIGURE OUT IF THERE ARE INSERTS OR REMOVALS - - if (aLen > bLen) - { - patches.push(makePatch('p-remove-last', rootIndex, aLen - bLen)); - } - else if (aLen < bLen) - { - patches.push(makePatch('p-append', rootIndex, bChildren.slice(aLen))); - } - - // PAIRWISE DIFF EVERYTHING ELSE - - var index = rootIndex; - var minLen = aLen < bLen ? aLen : bLen; - for (var i = 0; i < minLen; i++) - { - index++; - var aChild = aChildren[i]; - diffHelp(aChild, bChildren[i], patches, index); - index += aChild.descendantsCount || 0; - } -} - - - -//////////// KEYED DIFF //////////// - - -function diffKeyedChildren(aParent, bParent, patches, rootIndex) -{ - var localPatches = []; - - var changes = {}; // Dict String Entry - var inserts = []; // Array { index : Int, entry : Entry } - // type Entry = { tag : String, vnode : VNode, index : Int, data : _ } - - var aChildren = aParent.children; - var bChildren = bParent.children; - var aLen = aChildren.length; - var bLen = bChildren.length; - var aIndex = 0; - var bIndex = 0; - - var index = rootIndex; - - while (aIndex < aLen && bIndex < bLen) - { - var a = aChildren[aIndex]; - var b = bChildren[bIndex]; - - var aKey = a._0; - var bKey = b._0; - var aNode = a._1; - var bNode = b._1; - - // check if keys match - - if (aKey === bKey) - { - index++; - diffHelp(aNode, bNode, localPatches, index); - index += aNode.descendantsCount || 0; - - aIndex++; - bIndex++; - continue; - } - - // look ahead 1 to detect insertions and removals. - - var aLookAhead = aIndex + 1 < aLen; - var bLookAhead = bIndex + 1 < bLen; - - if (aLookAhead) - { - var aNext = aChildren[aIndex + 1]; - var aNextKey = aNext._0; - var aNextNode = aNext._1; - var oldMatch = bKey === aNextKey; - } - - if (bLookAhead) - { - var bNext = bChildren[bIndex + 1]; - var bNextKey = bNext._0; - var bNextNode = bNext._1; - var newMatch = aKey === bNextKey; - } - - - // swap a and b - if (aLookAhead && bLookAhead && newMatch && oldMatch) - { - index++; - diffHelp(aNode, bNextNode, localPatches, index); - insertNode(changes, localPatches, aKey, bNode, bIndex, inserts); - index += aNode.descendantsCount || 0; - - index++; - removeNode(changes, localPatches, aKey, aNextNode, index); - index += aNextNode.descendantsCount || 0; - - aIndex += 2; - bIndex += 2; - continue; - } - - // insert b - if (bLookAhead && newMatch) - { - index++; - insertNode(changes, localPatches, bKey, bNode, bIndex, inserts); - diffHelp(aNode, bNextNode, localPatches, index); - index += aNode.descendantsCount || 0; - - aIndex += 1; - bIndex += 2; - continue; - } - - // remove a - if (aLookAhead && oldMatch) - { - index++; - removeNode(changes, localPatches, aKey, aNode, index); - index += aNode.descendantsCount || 0; - - index++; - diffHelp(aNextNode, bNode, localPatches, index); - index += aNextNode.descendantsCount || 0; - - aIndex += 2; - bIndex += 1; - continue; - } - - // remove a, insert b - if (aLookAhead && bLookAhead && aNextKey === bNextKey) - { - index++; - removeNode(changes, localPatches, aKey, aNode, index); - insertNode(changes, localPatches, bKey, bNode, bIndex, inserts); - index += aNode.descendantsCount || 0; - - index++; - diffHelp(aNextNode, bNextNode, localPatches, index); - index += aNextNode.descendantsCount || 0; - - aIndex += 2; - bIndex += 2; - continue; - } - - break; - } - - // eat up any remaining nodes with removeNode and insertNode - - while (aIndex < aLen) - { - index++; - var a = aChildren[aIndex]; - var aNode = a._1; - removeNode(changes, localPatches, a._0, aNode, index); - index += aNode.descendantsCount || 0; - aIndex++; - } - - var endInserts; - while (bIndex < bLen) - { - endInserts = endInserts || []; - var b = bChildren[bIndex]; - insertNode(changes, localPatches, b._0, b._1, undefined, endInserts); - bIndex++; - } - - if (localPatches.length > 0 || inserts.length > 0 || typeof endInserts !== 'undefined') - { - patches.push(makePatch('p-reorder', rootIndex, { - patches: localPatches, - inserts: inserts, - endInserts: endInserts - })); - } -} - - - -//////////// CHANGES FROM KEYED DIFF //////////// - - -var POSTFIX = '_elmW6BL'; - - -function insertNode(changes, localPatches, key, vnode, bIndex, inserts) -{ - var entry = changes[key]; - - // never seen this key before - if (typeof entry === 'undefined') - { - entry = { - tag: 'insert', - vnode: vnode, - index: bIndex, - data: undefined - }; - - inserts.push({ index: bIndex, entry: entry }); - changes[key] = entry; - - return; - } - - // this key was removed earlier, a match! - if (entry.tag === 'remove') - { - inserts.push({ index: bIndex, entry: entry }); - - entry.tag = 'move'; - var subPatches = []; - diffHelp(entry.vnode, vnode, subPatches, entry.index); - entry.index = bIndex; - entry.data.data = { - patches: subPatches, - entry: entry - }; - - return; - } - - // this key has already been inserted or moved, a duplicate! - insertNode(changes, localPatches, key + POSTFIX, vnode, bIndex, inserts); -} - - -function removeNode(changes, localPatches, key, vnode, index) -{ - var entry = changes[key]; - - // never seen this key before - if (typeof entry === 'undefined') - { - var patch = makePatch('p-remove', index, undefined); - localPatches.push(patch); - - changes[key] = { - tag: 'remove', - vnode: vnode, - index: index, - data: patch - }; - - return; - } - - // this key was inserted earlier, a match! - if (entry.tag === 'insert') - { - entry.tag = 'move'; - var subPatches = []; - diffHelp(vnode, entry.vnode, subPatches, index); - - var patch = makePatch('p-remove', index, { - patches: subPatches, - entry: entry - }); - localPatches.push(patch); - - return; - } - - // this key has already been removed or moved, a duplicate! - removeNode(changes, localPatches, key + POSTFIX, vnode, index); -} - - - -//////////// ADD DOM NODES //////////// -// -// Each DOM node has an "index" assigned in order of traversal. It is important -// to minimize our crawl over the actual DOM, so these indexes (along with the -// descendantsCount of virtual nodes) let us skip touching entire subtrees of -// the DOM if we know there are no patches there. - - -function addDomNodes(domNode, vNode, patches, eventNode) -{ - addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.descendantsCount, eventNode); -} - - -// assumes `patches` is non-empty and indexes increase monotonically. -function addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode) -{ - var patch = patches[i]; - var index = patch.index; - - while (index === low) - { - var patchType = patch.type; - - if (patchType === 'p-thunk') - { - addDomNodes(domNode, vNode.node, patch.data, eventNode); - } - else if (patchType === 'p-reorder') - { - patch.domNode = domNode; - patch.eventNode = eventNode; - - var subPatches = patch.data.patches; - if (subPatches.length > 0) - { - addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); - } - } - else if (patchType === 'p-remove') - { - patch.domNode = domNode; - patch.eventNode = eventNode; - - var data = patch.data; - if (typeof data !== 'undefined') - { - data.entry.data = domNode; - var subPatches = data.patches; - if (subPatches.length > 0) - { - addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); - } - } - } - else - { - patch.domNode = domNode; - patch.eventNode = eventNode; - } - - i++; - - if (!(patch = patches[i]) || (index = patch.index) > high) - { - return i; - } - } - - switch (vNode.type) - { - case 'tagger': - var subNode = vNode.node; - - while (subNode.type === "tagger") - { - subNode = subNode.node; - } - - return addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref); - - case 'node': - var vChildren = vNode.children; - var childNodes = domNode.childNodes; - for (var j = 0; j < vChildren.length; j++) - { - low++; - var vChild = vChildren[j]; - var nextLow = low + (vChild.descendantsCount || 0); - if (low <= index && index <= nextLow) - { - i = addDomNodesHelp(childNodes[j], vChild, patches, i, low, nextLow, eventNode); - if (!(patch = patches[i]) || (index = patch.index) > high) - { - return i; - } - } - low = nextLow; - } - return i; - - case 'keyed-node': - var vChildren = vNode.children; - var childNodes = domNode.childNodes; - for (var j = 0; j < vChildren.length; j++) - { - low++; - var vChild = vChildren[j]._1; - var nextLow = low + (vChild.descendantsCount || 0); - if (low <= index && index <= nextLow) - { - i = addDomNodesHelp(childNodes[j], vChild, patches, i, low, nextLow, eventNode); - if (!(patch = patches[i]) || (index = patch.index) > high) - { - return i; - } - } - low = nextLow; - } - return i; - - case 'text': - case 'thunk': - throw new Error('should never traverse `text` or `thunk` nodes like this'); - } -} - - - -//////////// APPLY PATCHES //////////// - - -function applyPatches(rootDomNode, oldVirtualNode, patches, eventNode) -{ - if (patches.length === 0) - { - return rootDomNode; - } - - addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode); - return applyPatchesHelp(rootDomNode, patches); -} - -function applyPatchesHelp(rootDomNode, patches) -{ - for (var i = 0; i < patches.length; i++) - { - var patch = patches[i]; - var localDomNode = patch.domNode - var newNode = applyPatch(localDomNode, patch); - if (localDomNode === rootDomNode) - { - rootDomNode = newNode; - } - } - return rootDomNode; -} - -function applyPatch(domNode, patch) -{ - switch (patch.type) - { - case 'p-redraw': - return applyPatchRedraw(domNode, patch.data, patch.eventNode); - - case 'p-facts': - applyFacts(domNode, patch.eventNode, patch.data); - return domNode; - - case 'p-text': - domNode.replaceData(0, domNode.length, patch.data); - return domNode; - - case 'p-thunk': - return applyPatchesHelp(domNode, patch.data); - - case 'p-tagger': - if (typeof domNode.elm_event_node_ref !== 'undefined') - { - domNode.elm_event_node_ref.tagger = patch.data; - } - else - { - domNode.elm_event_node_ref = { tagger: patch.data, parent: patch.eventNode }; - } - return domNode; - - case 'p-remove-last': - var i = patch.data; - while (i--) - { - domNode.removeChild(domNode.lastChild); - } - return domNode; - - case 'p-append': - var newNodes = patch.data; - for (var i = 0; i < newNodes.length; i++) - { - domNode.appendChild(render(newNodes[i], patch.eventNode)); - } - return domNode; - - case 'p-remove': - var data = patch.data; - if (typeof data === 'undefined') - { - domNode.parentNode.removeChild(domNode); - return domNode; - } - var entry = data.entry; - if (typeof entry.index !== 'undefined') - { - domNode.parentNode.removeChild(domNode); - } - entry.data = applyPatchesHelp(domNode, data.patches); - return domNode; - - case 'p-reorder': - return applyPatchReorder(domNode, patch); - - case 'p-custom': - var impl = patch.data; - return impl.applyPatch(domNode, impl.data); - - default: - throw new Error('Ran into an unknown patch!'); - } -} - - -function applyPatchRedraw(domNode, vNode, eventNode) -{ - var parentNode = domNode.parentNode; - var newNode = render(vNode, eventNode); - - if (typeof newNode.elm_event_node_ref === 'undefined') - { - newNode.elm_event_node_ref = domNode.elm_event_node_ref; - } - - if (parentNode && newNode !== domNode) - { - parentNode.replaceChild(newNode, domNode); - } - return newNode; -} - - -function applyPatchReorder(domNode, patch) -{ - var data = patch.data; - - // remove end inserts - var frag = applyPatchReorderEndInsertsHelp(data.endInserts, patch); - - // removals - domNode = applyPatchesHelp(domNode, data.patches); - - // inserts - var inserts = data.inserts; - for (var i = 0; i < inserts.length; i++) - { - var insert = inserts[i]; - var entry = insert.entry; - var node = entry.tag === 'move' - ? entry.data - : render(entry.vnode, patch.eventNode); - domNode.insertBefore(node, domNode.childNodes[insert.index]); - } - - // add end inserts - if (typeof frag !== 'undefined') - { - domNode.appendChild(frag); - } - - return domNode; -} - - -function applyPatchReorderEndInsertsHelp(endInserts, patch) -{ - if (typeof endInserts === 'undefined') - { - return; - } - - var frag = localDoc.createDocumentFragment(); - for (var i = 0; i < endInserts.length; i++) - { - var insert = endInserts[i]; - var entry = insert.entry; - frag.appendChild(entry.tag === 'move' - ? entry.data - : render(entry.vnode, patch.eventNode) - ); - } - return frag; -} - - -// PROGRAMS - -var program = makeProgram(checkNoFlags); -var programWithFlags = makeProgram(checkYesFlags); - -function makeProgram(flagChecker) -{ - return F2(function(debugWrap, impl) - { - return function(flagDecoder) - { - return function(object, moduleName, debugMetadata) - { - var checker = flagChecker(flagDecoder, moduleName); - if (typeof debugMetadata === 'undefined') - { - normalSetup(impl, object, moduleName, checker); - } - else - { - debugSetup(A2(debugWrap, debugMetadata, impl), object, moduleName, checker); - } - }; - }; - }); -} - -function staticProgram(vNode) -{ - var nothing = _elm_lang$core$Native_Utils.Tuple2( - _elm_lang$core$Native_Utils.Tuple0, - _elm_lang$core$Platform_Cmd$none - ); - return A2(program, _elm_lang$virtual_dom$VirtualDom_Debug$wrap, { - init: nothing, - view: function() { return vNode; }, - update: F2(function() { return nothing; }), - subscriptions: function() { return _elm_lang$core$Platform_Sub$none; } - })(); -} - - -// FLAG CHECKERS - -function checkNoFlags(flagDecoder, moduleName) -{ - return function(init, flags, domNode) - { - if (typeof flags === 'undefined') - { - return init; - } - - var errorMessage = - 'The `' + moduleName + '` module does not need flags.\n' - + 'Initialize it with no arguments and you should be all set!'; - - crash(errorMessage, domNode); - }; -} - -function checkYesFlags(flagDecoder, moduleName) -{ - return function(init, flags, domNode) - { - if (typeof flagDecoder === 'undefined') - { - var errorMessage = - 'Are you trying to sneak a Never value into Elm? Trickster!\n' - + 'It looks like ' + moduleName + '.main is defined with `programWithFlags` but has type `Program Never`.\n' - + 'Use `program` instead if you do not want flags.' - - crash(errorMessage, domNode); - } - - var result = A2(_elm_lang$core$Native_Json.run, flagDecoder, flags); - if (result.ctor === 'Ok') - { - return init(result._0); - } - - var errorMessage = - 'Trying to initialize the `' + moduleName + '` module with an unexpected flag.\n' - + 'I tried to convert it to an Elm value, but ran into this problem:\n\n' - + result._0; - - crash(errorMessage, domNode); - }; -} - -function crash(errorMessage, domNode) -{ - if (domNode) - { - domNode.innerHTML = - '
' - + '

Oops! Something went wrong when starting your Elm program.

' - + '
' + errorMessage + '
' - + '
'; - } - - throw new Error(errorMessage); -} - - -// NORMAL SETUP - -function normalSetup(impl, object, moduleName, flagChecker) -{ - object['embed'] = function embed(node, flags) - { - while (node.lastChild) - { - node.removeChild(node.lastChild); - } - - return _elm_lang$core$Native_Platform.initialize( - flagChecker(impl.init, flags, node), - impl.update, - impl.subscriptions, - normalRenderer(node, impl.view) - ); - }; - - object['fullscreen'] = function fullscreen(flags) - { - return _elm_lang$core$Native_Platform.initialize( - flagChecker(impl.init, flags, document.body), - impl.update, - impl.subscriptions, - normalRenderer(document.body, impl.view) - ); - }; -} - -function normalRenderer(parentNode, view) -{ - return function(tagger, initialModel) - { - var eventNode = { tagger: tagger, parent: undefined }; - var initialVirtualNode = view(initialModel); - var domNode = render(initialVirtualNode, eventNode); - parentNode.appendChild(domNode); - return makeStepper(domNode, view, initialVirtualNode, eventNode); - }; -} - - -// STEPPER - -var rAF = - typeof requestAnimationFrame !== 'undefined' - ? requestAnimationFrame - : function(callback) { setTimeout(callback, 1000 / 60); }; - -function makeStepper(domNode, view, initialVirtualNode, eventNode) -{ - var state = 'NO_REQUEST'; - var currNode = initialVirtualNode; - var nextModel; - - function updateIfNeeded() - { - switch (state) - { - case 'NO_REQUEST': - throw new Error( - 'Unexpected draw callback.\n' + - 'Please report this to .' - ); - - case 'PENDING_REQUEST': - rAF(updateIfNeeded); - state = 'EXTRA_REQUEST'; - - var nextNode = view(nextModel); - var patches = diff(currNode, nextNode); - domNode = applyPatches(domNode, currNode, patches, eventNode); - currNode = nextNode; - - return; - - case 'EXTRA_REQUEST': - state = 'NO_REQUEST'; - return; - } - } - - return function stepper(model) - { - if (state === 'NO_REQUEST') - { - rAF(updateIfNeeded); - } - state = 'PENDING_REQUEST'; - nextModel = model; - }; -} - - -// DEBUG SETUP - -function debugSetup(impl, object, moduleName, flagChecker) -{ - object['fullscreen'] = function fullscreen(flags) - { - var popoutRef = { doc: undefined }; - return _elm_lang$core$Native_Platform.initialize( - flagChecker(impl.init, flags, document.body), - impl.update(scrollTask(popoutRef)), - impl.subscriptions, - debugRenderer(moduleName, document.body, popoutRef, impl.view, impl.viewIn, impl.viewOut) - ); - }; - - object['embed'] = function fullscreen(node, flags) - { - var popoutRef = { doc: undefined }; - return _elm_lang$core$Native_Platform.initialize( - flagChecker(impl.init, flags, node), - impl.update(scrollTask(popoutRef)), - impl.subscriptions, - debugRenderer(moduleName, node, popoutRef, impl.view, impl.viewIn, impl.viewOut) - ); - }; -} - -function scrollTask(popoutRef) -{ - return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) - { - var doc = popoutRef.doc; - if (doc) - { - var msgs = doc.getElementsByClassName('debugger-sidebar-messages')[0]; - if (msgs) - { - msgs.scrollTop = msgs.scrollHeight; - } - } - callback(_elm_lang$core$Native_Scheduler.succeed(_elm_lang$core$Native_Utils.Tuple0)); - }); -} - - -function debugRenderer(moduleName, parentNode, popoutRef, view, viewIn, viewOut) -{ - return function(tagger, initialModel) - { - var appEventNode = { tagger: tagger, parent: undefined }; - var eventNode = { tagger: tagger, parent: undefined }; - - // make normal stepper - var appVirtualNode = view(initialModel); - var appNode = render(appVirtualNode, appEventNode); - parentNode.appendChild(appNode); - var appStepper = makeStepper(appNode, view, appVirtualNode, appEventNode); - - // make overlay stepper - var overVirtualNode = viewIn(initialModel)._1; - var overNode = render(overVirtualNode, eventNode); - parentNode.appendChild(overNode); - var wrappedViewIn = wrapViewIn(appEventNode, overNode, viewIn); - var overStepper = makeStepper(overNode, wrappedViewIn, overVirtualNode, eventNode); - - // make debugger stepper - var debugStepper = makeDebugStepper(initialModel, viewOut, eventNode, parentNode, moduleName, popoutRef); - - return function stepper(model) - { - appStepper(model); - overStepper(model); - debugStepper(model); - } - }; -} - -function makeDebugStepper(initialModel, view, eventNode, parentNode, moduleName, popoutRef) -{ - var curr; - var domNode; - - return function stepper(model) - { - if (!model.isDebuggerOpen) - { - return; - } - - if (!popoutRef.doc) - { - curr = view(model); - domNode = openDebugWindow(moduleName, popoutRef, curr, eventNode); - return; - } - - // switch to document of popout - localDoc = popoutRef.doc; - - var next = view(model); - var patches = diff(curr, next); - domNode = applyPatches(domNode, curr, patches, eventNode); - curr = next; - - // switch back to normal document - localDoc = document; - }; -} - -function openDebugWindow(moduleName, popoutRef, virtualNode, eventNode) -{ - var w = 900; - var h = 360; - var x = screen.width - w; - var y = screen.height - h; - var debugWindow = window.open('', '', 'width=' + w + ',height=' + h + ',left=' + x + ',top=' + y); - - // switch to window document - localDoc = debugWindow.document; - - popoutRef.doc = localDoc; - localDoc.title = 'Debugger - ' + moduleName; - localDoc.body.style.margin = '0'; - localDoc.body.style.padding = '0'; - var domNode = render(virtualNode, eventNode); - localDoc.body.appendChild(domNode); - - localDoc.addEventListener('keydown', function(event) { - if (event.metaKey && event.which === 82) - { - window.location.reload(); - } - if (event.which === 38) - { - eventNode.tagger({ ctor: 'Up' }); - event.preventDefault(); - } - if (event.which === 40) - { - eventNode.tagger({ ctor: 'Down' }); - event.preventDefault(); - } - }); - - function close() - { - popoutRef.doc = undefined; - debugWindow.close(); - } - window.addEventListener('unload', close); - debugWindow.addEventListener('unload', function() { - popoutRef.doc = undefined; - window.removeEventListener('unload', close); - eventNode.tagger({ ctor: 'Close' }); - }); - - // switch back to the normal document - localDoc = document; - - return domNode; -} - - -// BLOCK EVENTS - -function wrapViewIn(appEventNode, overlayNode, viewIn) -{ - var ignorer = makeIgnorer(overlayNode); - var blocking = 'Normal'; - var overflow; - - var normalTagger = appEventNode.tagger; - var blockTagger = function() {}; - - return function(model) - { - var tuple = viewIn(model); - var newBlocking = tuple._0.ctor; - appEventNode.tagger = newBlocking === 'Normal' ? normalTagger : blockTagger; - if (blocking !== newBlocking) - { - traverse('removeEventListener', ignorer, blocking); - traverse('addEventListener', ignorer, newBlocking); - - if (blocking === 'Normal') - { - overflow = document.body.style.overflow; - document.body.style.overflow = 'hidden'; - } - - if (newBlocking === 'Normal') - { - document.body.style.overflow = overflow; - } - - blocking = newBlocking; - } - return tuple._1; - } -} - -function traverse(verbEventListener, ignorer, blocking) -{ - switch(blocking) - { - case 'Normal': - return; - - case 'Pause': - return traverseHelp(verbEventListener, ignorer, mostEvents); - - case 'Message': - return traverseHelp(verbEventListener, ignorer, allEvents); - } -} - -function traverseHelp(verbEventListener, handler, eventNames) -{ - for (var i = 0; i < eventNames.length; i++) - { - document.body[verbEventListener](eventNames[i], handler, true); - } -} - -function makeIgnorer(overlayNode) -{ - return function(event) - { - if (event.type === 'keydown' && event.metaKey && event.which === 82) - { - return; - } - - var isScroll = event.type === 'scroll' || event.type === 'wheel'; - - var node = event.target; - while (node !== null) - { - if (node.className === 'elm-overlay-message-details' && isScroll) - { - return; - } - - if (node === overlayNode && !isScroll) - { - return; - } - node = node.parentNode; - } - - event.stopPropagation(); - event.preventDefault(); - } -} - -var mostEvents = [ - 'click', 'dblclick', 'mousemove', - 'mouseup', 'mousedown', 'mouseenter', 'mouseleave', - 'touchstart', 'touchend', 'touchcancel', 'touchmove', - 'pointerdown', 'pointerup', 'pointerover', 'pointerout', - 'pointerenter', 'pointerleave', 'pointermove', 'pointercancel', - 'dragstart', 'drag', 'dragend', 'dragenter', 'dragover', 'dragleave', 'drop', - 'keyup', 'keydown', 'keypress', - 'input', 'change', - 'focus', 'blur' -]; - -var allEvents = mostEvents.concat('wheel', 'scroll'); - - -return { - node: node, - text: text, - custom: custom, - map: F2(map), - - on: F3(on), - style: style, - property: F2(property), - attribute: F2(attribute), - attributeNS: F3(attributeNS), - mapProperty: F2(mapProperty), - - lazy: F2(lazy), - lazy2: F3(lazy2), - lazy3: F4(lazy3), - keyedNode: F3(keyedNode), - - program: program, - programWithFlags: programWithFlags, - staticProgram: staticProgram -}; - -}(); - -var _elm_lang$virtual_dom$VirtualDom$programWithFlags = function (impl) { - return A2(_elm_lang$virtual_dom$Native_VirtualDom.programWithFlags, _elm_lang$virtual_dom$VirtualDom_Debug$wrapWithFlags, impl); -}; -var _elm_lang$virtual_dom$VirtualDom$program = function (impl) { - return A2(_elm_lang$virtual_dom$Native_VirtualDom.program, _elm_lang$virtual_dom$VirtualDom_Debug$wrap, impl); -}; -var _elm_lang$virtual_dom$VirtualDom$keyedNode = _elm_lang$virtual_dom$Native_VirtualDom.keyedNode; -var _elm_lang$virtual_dom$VirtualDom$lazy3 = _elm_lang$virtual_dom$Native_VirtualDom.lazy3; -var _elm_lang$virtual_dom$VirtualDom$lazy2 = _elm_lang$virtual_dom$Native_VirtualDom.lazy2; -var _elm_lang$virtual_dom$VirtualDom$lazy = _elm_lang$virtual_dom$Native_VirtualDom.lazy; -var _elm_lang$virtual_dom$VirtualDom$defaultOptions = {stopPropagation: false, preventDefault: false}; -var _elm_lang$virtual_dom$VirtualDom$onWithOptions = _elm_lang$virtual_dom$Native_VirtualDom.on; -var _elm_lang$virtual_dom$VirtualDom$on = F2( - function (eventName, decoder) { - return A3(_elm_lang$virtual_dom$VirtualDom$onWithOptions, eventName, _elm_lang$virtual_dom$VirtualDom$defaultOptions, decoder); - }); -var _elm_lang$virtual_dom$VirtualDom$style = _elm_lang$virtual_dom$Native_VirtualDom.style; -var _elm_lang$virtual_dom$VirtualDom$mapProperty = _elm_lang$virtual_dom$Native_VirtualDom.mapProperty; -var _elm_lang$virtual_dom$VirtualDom$attributeNS = _elm_lang$virtual_dom$Native_VirtualDom.attributeNS; -var _elm_lang$virtual_dom$VirtualDom$attribute = _elm_lang$virtual_dom$Native_VirtualDom.attribute; -var _elm_lang$virtual_dom$VirtualDom$property = _elm_lang$virtual_dom$Native_VirtualDom.property; -var _elm_lang$virtual_dom$VirtualDom$map = _elm_lang$virtual_dom$Native_VirtualDom.map; -var _elm_lang$virtual_dom$VirtualDom$text = _elm_lang$virtual_dom$Native_VirtualDom.text; -var _elm_lang$virtual_dom$VirtualDom$node = _elm_lang$virtual_dom$Native_VirtualDom.node; -var _elm_lang$virtual_dom$VirtualDom$Options = F2( - function (a, b) { - return {stopPropagation: a, preventDefault: b}; - }); -var _elm_lang$virtual_dom$VirtualDom$Node = {ctor: 'Node'}; -var _elm_lang$virtual_dom$VirtualDom$Property = {ctor: 'Property'}; - -var _elm_lang$html$Html$programWithFlags = _elm_lang$virtual_dom$VirtualDom$programWithFlags; -var _elm_lang$html$Html$program = _elm_lang$virtual_dom$VirtualDom$program; -var _elm_lang$html$Html$beginnerProgram = function (_p0) { - var _p1 = _p0; - return _elm_lang$html$Html$program( - { - init: A2( - _elm_lang$core$Platform_Cmd_ops['!'], - _p1.model, - {ctor: '[]'}), - update: F2( - function (msg, model) { - return A2( - _elm_lang$core$Platform_Cmd_ops['!'], - A2(_p1.update, msg, model), - {ctor: '[]'}); - }), - view: _p1.view, - subscriptions: function (_p2) { - return _elm_lang$core$Platform_Sub$none; - } - }); -}; -var _elm_lang$html$Html$map = _elm_lang$virtual_dom$VirtualDom$map; -var _elm_lang$html$Html$text = _elm_lang$virtual_dom$VirtualDom$text; -var _elm_lang$html$Html$node = _elm_lang$virtual_dom$VirtualDom$node; -var _elm_lang$html$Html$body = _elm_lang$html$Html$node('body'); -var _elm_lang$html$Html$section = _elm_lang$html$Html$node('section'); -var _elm_lang$html$Html$nav = _elm_lang$html$Html$node('nav'); -var _elm_lang$html$Html$article = _elm_lang$html$Html$node('article'); -var _elm_lang$html$Html$aside = _elm_lang$html$Html$node('aside'); -var _elm_lang$html$Html$h1 = _elm_lang$html$Html$node('h1'); -var _elm_lang$html$Html$h2 = _elm_lang$html$Html$node('h2'); -var _elm_lang$html$Html$h3 = _elm_lang$html$Html$node('h3'); -var _elm_lang$html$Html$h4 = _elm_lang$html$Html$node('h4'); -var _elm_lang$html$Html$h5 = _elm_lang$html$Html$node('h5'); -var _elm_lang$html$Html$h6 = _elm_lang$html$Html$node('h6'); -var _elm_lang$html$Html$header = _elm_lang$html$Html$node('header'); -var _elm_lang$html$Html$footer = _elm_lang$html$Html$node('footer'); -var _elm_lang$html$Html$address = _elm_lang$html$Html$node('address'); -var _elm_lang$html$Html$main_ = _elm_lang$html$Html$node('main'); -var _elm_lang$html$Html$p = _elm_lang$html$Html$node('p'); -var _elm_lang$html$Html$hr = _elm_lang$html$Html$node('hr'); -var _elm_lang$html$Html$pre = _elm_lang$html$Html$node('pre'); -var _elm_lang$html$Html$blockquote = _elm_lang$html$Html$node('blockquote'); -var _elm_lang$html$Html$ol = _elm_lang$html$Html$node('ol'); -var _elm_lang$html$Html$ul = _elm_lang$html$Html$node('ul'); -var _elm_lang$html$Html$li = _elm_lang$html$Html$node('li'); -var _elm_lang$html$Html$dl = _elm_lang$html$Html$node('dl'); -var _elm_lang$html$Html$dt = _elm_lang$html$Html$node('dt'); -var _elm_lang$html$Html$dd = _elm_lang$html$Html$node('dd'); -var _elm_lang$html$Html$figure = _elm_lang$html$Html$node('figure'); -var _elm_lang$html$Html$figcaption = _elm_lang$html$Html$node('figcaption'); -var _elm_lang$html$Html$div = _elm_lang$html$Html$node('div'); -var _elm_lang$html$Html$a = _elm_lang$html$Html$node('a'); -var _elm_lang$html$Html$em = _elm_lang$html$Html$node('em'); -var _elm_lang$html$Html$strong = _elm_lang$html$Html$node('strong'); -var _elm_lang$html$Html$small = _elm_lang$html$Html$node('small'); -var _elm_lang$html$Html$s = _elm_lang$html$Html$node('s'); -var _elm_lang$html$Html$cite = _elm_lang$html$Html$node('cite'); -var _elm_lang$html$Html$q = _elm_lang$html$Html$node('q'); -var _elm_lang$html$Html$dfn = _elm_lang$html$Html$node('dfn'); -var _elm_lang$html$Html$abbr = _elm_lang$html$Html$node('abbr'); -var _elm_lang$html$Html$time = _elm_lang$html$Html$node('time'); -var _elm_lang$html$Html$code = _elm_lang$html$Html$node('code'); -var _elm_lang$html$Html$var = _elm_lang$html$Html$node('var'); -var _elm_lang$html$Html$samp = _elm_lang$html$Html$node('samp'); -var _elm_lang$html$Html$kbd = _elm_lang$html$Html$node('kbd'); -var _elm_lang$html$Html$sub = _elm_lang$html$Html$node('sub'); -var _elm_lang$html$Html$sup = _elm_lang$html$Html$node('sup'); -var _elm_lang$html$Html$i = _elm_lang$html$Html$node('i'); -var _elm_lang$html$Html$b = _elm_lang$html$Html$node('b'); -var _elm_lang$html$Html$u = _elm_lang$html$Html$node('u'); -var _elm_lang$html$Html$mark = _elm_lang$html$Html$node('mark'); -var _elm_lang$html$Html$ruby = _elm_lang$html$Html$node('ruby'); -var _elm_lang$html$Html$rt = _elm_lang$html$Html$node('rt'); -var _elm_lang$html$Html$rp = _elm_lang$html$Html$node('rp'); -var _elm_lang$html$Html$bdi = _elm_lang$html$Html$node('bdi'); -var _elm_lang$html$Html$bdo = _elm_lang$html$Html$node('bdo'); -var _elm_lang$html$Html$span = _elm_lang$html$Html$node('span'); -var _elm_lang$html$Html$br = _elm_lang$html$Html$node('br'); -var _elm_lang$html$Html$wbr = _elm_lang$html$Html$node('wbr'); -var _elm_lang$html$Html$ins = _elm_lang$html$Html$node('ins'); -var _elm_lang$html$Html$del = _elm_lang$html$Html$node('del'); -var _elm_lang$html$Html$img = _elm_lang$html$Html$node('img'); -var _elm_lang$html$Html$iframe = _elm_lang$html$Html$node('iframe'); -var _elm_lang$html$Html$embed = _elm_lang$html$Html$node('embed'); -var _elm_lang$html$Html$object = _elm_lang$html$Html$node('object'); -var _elm_lang$html$Html$param = _elm_lang$html$Html$node('param'); -var _elm_lang$html$Html$video = _elm_lang$html$Html$node('video'); -var _elm_lang$html$Html$audio = _elm_lang$html$Html$node('audio'); -var _elm_lang$html$Html$source = _elm_lang$html$Html$node('source'); -var _elm_lang$html$Html$track = _elm_lang$html$Html$node('track'); -var _elm_lang$html$Html$canvas = _elm_lang$html$Html$node('canvas'); -var _elm_lang$html$Html$math = _elm_lang$html$Html$node('math'); -var _elm_lang$html$Html$table = _elm_lang$html$Html$node('table'); -var _elm_lang$html$Html$caption = _elm_lang$html$Html$node('caption'); -var _elm_lang$html$Html$colgroup = _elm_lang$html$Html$node('colgroup'); -var _elm_lang$html$Html$col = _elm_lang$html$Html$node('col'); -var _elm_lang$html$Html$tbody = _elm_lang$html$Html$node('tbody'); -var _elm_lang$html$Html$thead = _elm_lang$html$Html$node('thead'); -var _elm_lang$html$Html$tfoot = _elm_lang$html$Html$node('tfoot'); -var _elm_lang$html$Html$tr = _elm_lang$html$Html$node('tr'); -var _elm_lang$html$Html$td = _elm_lang$html$Html$node('td'); -var _elm_lang$html$Html$th = _elm_lang$html$Html$node('th'); -var _elm_lang$html$Html$form = _elm_lang$html$Html$node('form'); -var _elm_lang$html$Html$fieldset = _elm_lang$html$Html$node('fieldset'); -var _elm_lang$html$Html$legend = _elm_lang$html$Html$node('legend'); -var _elm_lang$html$Html$label = _elm_lang$html$Html$node('label'); -var _elm_lang$html$Html$input = _elm_lang$html$Html$node('input'); -var _elm_lang$html$Html$button = _elm_lang$html$Html$node('button'); -var _elm_lang$html$Html$select = _elm_lang$html$Html$node('select'); -var _elm_lang$html$Html$datalist = _elm_lang$html$Html$node('datalist'); -var _elm_lang$html$Html$optgroup = _elm_lang$html$Html$node('optgroup'); -var _elm_lang$html$Html$option = _elm_lang$html$Html$node('option'); -var _elm_lang$html$Html$textarea = _elm_lang$html$Html$node('textarea'); -var _elm_lang$html$Html$keygen = _elm_lang$html$Html$node('keygen'); -var _elm_lang$html$Html$output = _elm_lang$html$Html$node('output'); -var _elm_lang$html$Html$progress = _elm_lang$html$Html$node('progress'); -var _elm_lang$html$Html$meter = _elm_lang$html$Html$node('meter'); -var _elm_lang$html$Html$details = _elm_lang$html$Html$node('details'); -var _elm_lang$html$Html$summary = _elm_lang$html$Html$node('summary'); -var _elm_lang$html$Html$menuitem = _elm_lang$html$Html$node('menuitem'); -var _elm_lang$html$Html$menu = _elm_lang$html$Html$node('menu'); - -var _elm_lang$http$Native_Http = function() { - - -// ENCODING AND DECODING - -function encodeUri(string) -{ - return encodeURIComponent(string); -} - -function decodeUri(string) -{ - try - { - return _elm_lang$core$Maybe$Just(decodeURIComponent(string)); - } - catch(e) - { - return _elm_lang$core$Maybe$Nothing; - } -} - - -// SEND REQUEST - -function toTask(request, maybeProgress) -{ - return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) - { - var xhr = new XMLHttpRequest(); - - configureProgress(xhr, maybeProgress); - - xhr.addEventListener('error', function() { - callback(_elm_lang$core$Native_Scheduler.fail({ ctor: 'NetworkError' })); - }); - xhr.addEventListener('timeout', function() { - callback(_elm_lang$core$Native_Scheduler.fail({ ctor: 'Timeout' })); - }); - xhr.addEventListener('load', function() { - callback(handleResponse(xhr, request.expect.responseToResult)); - }); - - try - { - xhr.open(request.method, request.url, true); - } - catch (e) - { - return callback(_elm_lang$core$Native_Scheduler.fail({ ctor: 'BadUrl', _0: request.url })); - } - - configureRequest(xhr, request); - send(xhr, request.body); - - return function() { xhr.abort(); }; - }); -} - -function configureProgress(xhr, maybeProgress) -{ - if (maybeProgress.ctor === 'Nothing') - { - return; - } - - xhr.addEventListener('progress', function(event) { - if (!event.lengthComputable) - { - return; - } - _elm_lang$core$Native_Scheduler.rawSpawn(maybeProgress._0({ - bytes: event.loaded, - bytesExpected: event.total - })); - }); -} - -function configureRequest(xhr, request) -{ - function setHeader(pair) - { - xhr.setRequestHeader(pair._0, pair._1); - } - - A2(_elm_lang$core$List$map, setHeader, request.headers); - xhr.responseType = request.expect.responseType; - xhr.withCredentials = request.withCredentials; - - if (request.timeout.ctor === 'Just') - { - xhr.timeout = request.timeout._0; - } -} - -function send(xhr, body) -{ - switch (body.ctor) - { - case 'EmptyBody': - xhr.send(); - return; - - case 'StringBody': - xhr.setRequestHeader('Content-Type', body._0); - xhr.send(body._1); - return; - - case 'FormDataBody': - xhr.send(body._0); - return; - } -} - - -// RESPONSES - -function handleResponse(xhr, responseToResult) -{ - var response = toResponse(xhr); - - if (xhr.status < 200 || 300 <= xhr.status) - { - response.body = xhr.responseText; - return _elm_lang$core$Native_Scheduler.fail({ - ctor: 'BadStatus', - _0: response - }); - } - - var result = responseToResult(response); - - if (result.ctor === 'Ok') - { - return _elm_lang$core$Native_Scheduler.succeed(result._0); - } - else - { - response.body = xhr.responseText; - return _elm_lang$core$Native_Scheduler.fail({ - ctor: 'BadPayload', - _0: result._0, - _1: response - }); - } -} - -function toResponse(xhr) -{ - return { - status: { code: xhr.status, message: xhr.statusText }, - headers: parseHeaders(xhr.getAllResponseHeaders()), - url: xhr.responseURL, - body: xhr.response - }; -} - -function parseHeaders(rawHeaders) -{ - var headers = _elm_lang$core$Dict$empty; - - if (!rawHeaders) - { - return headers; - } - - var headerPairs = rawHeaders.split('\u000d\u000a'); - for (var i = headerPairs.length; i--; ) - { - var headerPair = headerPairs[i]; - var index = headerPair.indexOf('\u003a\u0020'); - if (index > 0) - { - var key = headerPair.substring(0, index); - var value = headerPair.substring(index + 2); - - headers = A3(_elm_lang$core$Dict$update, key, function(oldValue) { - if (oldValue.ctor === 'Just') - { - return _elm_lang$core$Maybe$Just(value + ', ' + oldValue._0); - } - return _elm_lang$core$Maybe$Just(value); - }, headers); - } - } - - return headers; -} - - -// EXPECTORS - -function expectStringResponse(responseToResult) -{ - return { - responseType: 'text', - responseToResult: responseToResult - }; -} - -function mapExpect(func, expect) -{ - return { - responseType: expect.responseType, - responseToResult: function(response) { - var convertedResponse = expect.responseToResult(response); - return A2(_elm_lang$core$Result$map, func, convertedResponse); - } - }; -} - - -// BODY - -function multipart(parts) -{ - var formData = new FormData(); - - while (parts.ctor !== '[]') - { - var part = parts._0; - formData.append(part._0, part._1); - parts = parts._1; - } - - return { ctor: 'FormDataBody', _0: formData }; -} - -return { - toTask: F2(toTask), - expectStringResponse: expectStringResponse, - mapExpect: F2(mapExpect), - multipart: multipart, - encodeUri: encodeUri, - decodeUri: decodeUri -}; - -}(); - -var _elm_lang$http$Http_Internal$map = F2( - function (func, request) { - return _elm_lang$core$Native_Utils.update( - request, - { - expect: A2(_elm_lang$http$Native_Http.mapExpect, func, request.expect) - }); - }); -var _elm_lang$http$Http_Internal$RawRequest = F7( - function (a, b, c, d, e, f, g) { - return {method: a, headers: b, url: c, body: d, expect: e, timeout: f, withCredentials: g}; - }); -var _elm_lang$http$Http_Internal$Request = function (a) { - return {ctor: 'Request', _0: a}; -}; -var _elm_lang$http$Http_Internal$Expect = {ctor: 'Expect'}; -var _elm_lang$http$Http_Internal$FormDataBody = {ctor: 'FormDataBody'}; -var _elm_lang$http$Http_Internal$StringBody = F2( - function (a, b) { - return {ctor: 'StringBody', _0: a, _1: b}; - }); -var _elm_lang$http$Http_Internal$EmptyBody = {ctor: 'EmptyBody'}; -var _elm_lang$http$Http_Internal$Header = F2( - function (a, b) { - return {ctor: 'Header', _0: a, _1: b}; - }); - -var _elm_lang$http$Http$decodeUri = _elm_lang$http$Native_Http.decodeUri; -var _elm_lang$http$Http$encodeUri = _elm_lang$http$Native_Http.encodeUri; -var _elm_lang$http$Http$expectStringResponse = _elm_lang$http$Native_Http.expectStringResponse; -var _elm_lang$http$Http$expectJson = function (decoder) { - return _elm_lang$http$Http$expectStringResponse( - function (response) { - return A2(_elm_lang$core$Json_Decode$decodeString, decoder, response.body); - }); -}; -var _elm_lang$http$Http$expectString = _elm_lang$http$Http$expectStringResponse( - function (response) { - return _elm_lang$core$Result$Ok(response.body); - }); -var _elm_lang$http$Http$multipartBody = _elm_lang$http$Native_Http.multipart; -var _elm_lang$http$Http$stringBody = _elm_lang$http$Http_Internal$StringBody; -var _elm_lang$http$Http$jsonBody = function (value) { - return A2( - _elm_lang$http$Http_Internal$StringBody, - 'application/json', - A2(_elm_lang$core$Json_Encode$encode, 0, value)); -}; -var _elm_lang$http$Http$emptyBody = _elm_lang$http$Http_Internal$EmptyBody; -var _elm_lang$http$Http$header = _elm_lang$http$Http_Internal$Header; -var _elm_lang$http$Http$request = _elm_lang$http$Http_Internal$Request; -var _elm_lang$http$Http$post = F3( - function (url, body, decoder) { - return _elm_lang$http$Http$request( - { - method: 'POST', - headers: {ctor: '[]'}, - url: url, - body: body, - expect: _elm_lang$http$Http$expectJson(decoder), - timeout: _elm_lang$core$Maybe$Nothing, - withCredentials: false - }); - }); -var _elm_lang$http$Http$get = F2( - function (url, decoder) { - return _elm_lang$http$Http$request( - { - method: 'GET', - headers: {ctor: '[]'}, - url: url, - body: _elm_lang$http$Http$emptyBody, - expect: _elm_lang$http$Http$expectJson(decoder), - timeout: _elm_lang$core$Maybe$Nothing, - withCredentials: false - }); - }); -var _elm_lang$http$Http$getString = function (url) { - return _elm_lang$http$Http$request( - { - method: 'GET', - headers: {ctor: '[]'}, - url: url, - body: _elm_lang$http$Http$emptyBody, - expect: _elm_lang$http$Http$expectString, - timeout: _elm_lang$core$Maybe$Nothing, - withCredentials: false - }); -}; -var _elm_lang$http$Http$toTask = function (_p0) { - var _p1 = _p0; - return A2(_elm_lang$http$Native_Http.toTask, _p1._0, _elm_lang$core$Maybe$Nothing); -}; -var _elm_lang$http$Http$send = F2( - function (resultToMessage, request) { - return A2( - _elm_lang$core$Task$attempt, - resultToMessage, - _elm_lang$http$Http$toTask(request)); - }); -var _elm_lang$http$Http$Response = F4( - function (a, b, c, d) { - return {url: a, status: b, headers: c, body: d}; - }); -var _elm_lang$http$Http$BadPayload = F2( - function (a, b) { - return {ctor: 'BadPayload', _0: a, _1: b}; - }); -var _elm_lang$http$Http$BadStatus = function (a) { - return {ctor: 'BadStatus', _0: a}; -}; -var _elm_lang$http$Http$NetworkError = {ctor: 'NetworkError'}; -var _elm_lang$http$Http$Timeout = {ctor: 'Timeout'}; -var _elm_lang$http$Http$BadUrl = function (a) { - return {ctor: 'BadUrl', _0: a}; -}; -var _elm_lang$http$Http$StringPart = F2( - function (a, b) { - return {ctor: 'StringPart', _0: a, _1: b}; - }); -var _elm_lang$http$Http$stringPart = _elm_lang$http$Http$StringPart; - -var _rtfeldman$elm_css_util$Css_Helpers$toCssIdentifier = function (identifier) { - return A4( - _elm_lang$core$Regex$replace, - _elm_lang$core$Regex$All, - _elm_lang$core$Regex$regex('[^a-zA-Z0-9_-]'), - function (_p0) { - return ''; - }, - A4( - _elm_lang$core$Regex$replace, - _elm_lang$core$Regex$All, - _elm_lang$core$Regex$regex('\\s+'), - function (_p1) { - return '-'; - }, - _elm_lang$core$String$trim( - _elm_lang$core$Basics$toString(identifier)))); -}; -var _rtfeldman$elm_css_util$Css_Helpers$identifierToString = F2( - function (name, identifier) { - return A2( - _elm_lang$core$Basics_ops['++'], - _rtfeldman$elm_css_util$Css_Helpers$toCssIdentifier(name), - _rtfeldman$elm_css_util$Css_Helpers$toCssIdentifier(identifier)); - }); - -var _rtfeldman$elm_css$Css_Structure$dropEmptyDeclarations = function (declarations) { - dropEmptyDeclarations: - while (true) { - var _p0 = declarations; - if (_p0.ctor === '[]') { - return {ctor: '[]'}; - } else { - switch (_p0._0.ctor) { - case 'StyleBlockDeclaration': - var _p1 = _p0._1; - if (_elm_lang$core$List$isEmpty(_p0._0._0._2)) { - var _v1 = _p1; - declarations = _v1; - continue dropEmptyDeclarations; - } else { - return { - ctor: '::', - _0: _p0._0, - _1: _rtfeldman$elm_css$Css_Structure$dropEmptyDeclarations(_p1) - }; - } - case 'MediaRule': - var _p4 = _p0._1; - if (A2( - _elm_lang$core$List$all, - function (_p2) { - var _p3 = _p2; - return _elm_lang$core$List$isEmpty(_p3._2); - }, - _p0._0._1)) { - var _v3 = _p4; - declarations = _v3; - continue dropEmptyDeclarations; - } else { - return { - ctor: '::', - _0: _p0._0, - _1: _rtfeldman$elm_css$Css_Structure$dropEmptyDeclarations(_p4) - }; - } - case 'SupportsRule': - var _p5 = _p0._1; - if (_elm_lang$core$List$isEmpty(_p0._0._1)) { - var _v4 = _p5; - declarations = _v4; - continue dropEmptyDeclarations; - } else { - return { - ctor: '::', - _0: _p0._0, - _1: _rtfeldman$elm_css$Css_Structure$dropEmptyDeclarations(_p5) - }; - } - case 'DocumentRule': - return { - ctor: '::', - _0: _p0._0, - _1: _rtfeldman$elm_css$Css_Structure$dropEmptyDeclarations(_p0._1) - }; - case 'PageRule': - var _p6 = _p0._1; - if (_elm_lang$core$List$isEmpty(_p0._0._1)) { - var _v5 = _p6; - declarations = _v5; - continue dropEmptyDeclarations; - } else { - return { - ctor: '::', - _0: _p0._0, - _1: _rtfeldman$elm_css$Css_Structure$dropEmptyDeclarations(_p6) - }; - } - case 'FontFace': - var _p7 = _p0._1; - if (_elm_lang$core$List$isEmpty(_p0._0._0)) { - var _v6 = _p7; - declarations = _v6; - continue dropEmptyDeclarations; - } else { - return { - ctor: '::', - _0: _p0._0, - _1: _rtfeldman$elm_css$Css_Structure$dropEmptyDeclarations(_p7) - }; - } - case 'Keyframes': - var _p8 = _p0._1; - if (_elm_lang$core$List$isEmpty(_p0._0._1)) { - var _v7 = _p8; - declarations = _v7; - continue dropEmptyDeclarations; - } else { - return { - ctor: '::', - _0: _p0._0, - _1: _rtfeldman$elm_css$Css_Structure$dropEmptyDeclarations(_p8) - }; - } - case 'Viewport': - var _p9 = _p0._1; - if (_elm_lang$core$List$isEmpty(_p0._0._0)) { - var _v8 = _p9; - declarations = _v8; - continue dropEmptyDeclarations; - } else { - return { - ctor: '::', - _0: _p0._0, - _1: _rtfeldman$elm_css$Css_Structure$dropEmptyDeclarations(_p9) - }; - } - case 'CounterStyle': - var _p10 = _p0._1; - if (_elm_lang$core$List$isEmpty(_p0._0._0)) { - var _v9 = _p10; - declarations = _v9; - continue dropEmptyDeclarations; - } else { - return { - ctor: '::', - _0: _p0._0, - _1: _rtfeldman$elm_css$Css_Structure$dropEmptyDeclarations(_p10) - }; - } - default: - var _p13 = _p0._1; - if (A2( - _elm_lang$core$List$all, - function (_p11) { - var _p12 = _p11; - return _elm_lang$core$List$isEmpty(_p12._1); - }, - _p0._0._0)) { - var _v11 = _p13; - declarations = _v11; - continue dropEmptyDeclarations; - } else { - return { - ctor: '::', - _0: _p0._0, - _1: _rtfeldman$elm_css$Css_Structure$dropEmptyDeclarations(_p13) - }; - } - } - } - } -}; -var _rtfeldman$elm_css$Css_Structure$dropEmpty = function (_p14) { - var _p15 = _p14; - return { - charset: _p15.charset, - imports: _p15.imports, - namespaces: _p15.namespaces, - declarations: _rtfeldman$elm_css$Css_Structure$dropEmptyDeclarations(_p15.declarations) - }; -}; -var _rtfeldman$elm_css$Css_Structure$concatMapLast = F2( - function (update, list) { - var _p16 = list; - if (_p16.ctor === '[]') { - return list; - } else { - if (_p16._1.ctor === '[]') { - return update(_p16._0); - } else { - return { - ctor: '::', - _0: _p16._0, - _1: A2(_rtfeldman$elm_css$Css_Structure$concatMapLast, update, _p16._1) - }; - } - } - }); -var _rtfeldman$elm_css$Css_Structure$mapLast = F2( - function (update, list) { - var _p17 = list; - if (_p17.ctor === '[]') { - return list; - } else { - if (_p17._1.ctor === '[]') { - return { - ctor: '::', - _0: update(_p17._0), - _1: {ctor: '[]'} - }; - } else { - return { - ctor: '::', - _0: _p17._0, - _1: A2(_rtfeldman$elm_css$Css_Structure$mapLast, update, _p17._1) - }; - } - } - }); -var _rtfeldman$elm_css$Css_Structure$Property = F3( - function (a, b, c) { - return {important: a, key: b, value: c}; - }); -var _rtfeldman$elm_css$Css_Structure$Stylesheet = F4( - function (a, b, c, d) { - return {charset: a, imports: b, namespaces: c, declarations: d}; - }); -var _rtfeldman$elm_css$Css_Structure$MediaExpression = F2( - function (a, b) { - return {feature: a, value: b}; - }); -var _rtfeldman$elm_css$Css_Structure$Compatible = {ctor: 'Compatible'}; -var _rtfeldman$elm_css$Css_Structure$FontFeatureValues = function (a) { - return {ctor: 'FontFeatureValues', _0: a}; -}; -var _rtfeldman$elm_css$Css_Structure$CounterStyle = function (a) { - return {ctor: 'CounterStyle', _0: a}; -}; -var _rtfeldman$elm_css$Css_Structure$Viewport = function (a) { - return {ctor: 'Viewport', _0: a}; -}; -var _rtfeldman$elm_css$Css_Structure$Keyframes = F2( - function (a, b) { - return {ctor: 'Keyframes', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Structure$FontFace = function (a) { - return {ctor: 'FontFace', _0: a}; -}; -var _rtfeldman$elm_css$Css_Structure$PageRule = F2( - function (a, b) { - return {ctor: 'PageRule', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Structure$DocumentRule = F5( - function (a, b, c, d, e) { - return {ctor: 'DocumentRule', _0: a, _1: b, _2: c, _3: d, _4: e}; - }); -var _rtfeldman$elm_css$Css_Structure$SupportsRule = F2( - function (a, b) { - return {ctor: 'SupportsRule', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Structure$MediaRule = F2( - function (a, b) { - return {ctor: 'MediaRule', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Structure$StyleBlockDeclaration = function (a) { - return {ctor: 'StyleBlockDeclaration', _0: a}; -}; -var _rtfeldman$elm_css$Css_Structure$concatMapLastStyleBlock = F2( - function (update, declarations) { - var _p18 = declarations; - _v15_12: - do { - if (_p18.ctor === '[]') { - return declarations; - } else { - if (_p18._1.ctor === '[]') { - switch (_p18._0.ctor) { - case 'StyleBlockDeclaration': - return A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$Css_Structure$StyleBlockDeclaration, - update(_p18._0._0)); - case 'MediaRule': - if (_p18._0._1.ctor === '::') { - if (_p18._0._1._1.ctor === '[]') { - return { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Css_Structure$MediaRule, - _p18._0._0, - update(_p18._0._1._0)), - _1: {ctor: '[]'} - }; - } else { - var _p19 = A2( - _rtfeldman$elm_css$Css_Structure$concatMapLastStyleBlock, - update, - { - ctor: '::', - _0: A2(_rtfeldman$elm_css$Css_Structure$MediaRule, _p18._0._0, _p18._0._1._1), - _1: {ctor: '[]'} - }); - if (((_p19.ctor === '::') && (_p19._0.ctor === 'MediaRule')) && (_p19._1.ctor === '[]')) { - return { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Css_Structure$MediaRule, - _p19._0._0, - {ctor: '::', _0: _p18._0._1._0, _1: _p19._0._1}), - _1: {ctor: '[]'} - }; - } else { - return _p19; - } - } - } else { - break _v15_12; - } - case 'SupportsRule': - return { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Css_Structure$SupportsRule, - _p18._0._0, - A2(_rtfeldman$elm_css$Css_Structure$concatMapLastStyleBlock, update, _p18._0._1)), - _1: {ctor: '[]'} - }; - case 'DocumentRule': - return A2( - _elm_lang$core$List$map, - A4(_rtfeldman$elm_css$Css_Structure$DocumentRule, _p18._0._0, _p18._0._1, _p18._0._2, _p18._0._3), - update(_p18._0._4)); - case 'PageRule': - return declarations; - case 'FontFace': - return declarations; - case 'Keyframes': - return declarations; - case 'Viewport': - return declarations; - case 'CounterStyle': - return declarations; - default: - return declarations; - } - } else { - break _v15_12; - } - } - } while(false); - return { - ctor: '::', - _0: _p18._0, - _1: A2(_rtfeldman$elm_css$Css_Structure$concatMapLastStyleBlock, update, _p18._1) - }; - }); -var _rtfeldman$elm_css$Css_Structure$StyleBlock = F3( - function (a, b, c) { - return {ctor: 'StyleBlock', _0: a, _1: b, _2: c}; - }); -var _rtfeldman$elm_css$Css_Structure$withPropertyAppended = F2( - function (property, _p20) { - var _p21 = _p20; - return A3( - _rtfeldman$elm_css$Css_Structure$StyleBlock, - _p21._0, - _p21._1, - A2( - _elm_lang$core$Basics_ops['++'], - _p21._2, - { - ctor: '::', - _0: property, - _1: {ctor: '[]'} - })); - }); -var _rtfeldman$elm_css$Css_Structure$appendProperty = F2( - function (property, declarations) { - var _p22 = declarations; - if (_p22.ctor === '[]') { - return declarations; - } else { - if (_p22._1.ctor === '[]') { - switch (_p22._0.ctor) { - case 'StyleBlockDeclaration': - return { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure$StyleBlockDeclaration( - A2(_rtfeldman$elm_css$Css_Structure$withPropertyAppended, property, _p22._0._0)), - _1: {ctor: '[]'} - }; - case 'MediaRule': - return { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Css_Structure$MediaRule, - _p22._0._0, - A2( - _rtfeldman$elm_css$Css_Structure$mapLast, - _rtfeldman$elm_css$Css_Structure$withPropertyAppended(property), - _p22._0._1)), - _1: {ctor: '[]'} - }; - default: - return declarations; - } - } else { - return { - ctor: '::', - _0: _p22._0, - _1: A2(_rtfeldman$elm_css$Css_Structure$appendProperty, property, _p22._1) - }; - } - } - }); -var _rtfeldman$elm_css$Css_Structure$appendToLastSelector = F2( - function (f, styleBlock) { - var _p23 = styleBlock; - if (_p23._1.ctor === '[]') { - var _p24 = _p23._0; - return { - ctor: '::', - _0: A3( - _rtfeldman$elm_css$Css_Structure$StyleBlock, - _p24, - {ctor: '[]'}, - _p23._2), - _1: { - ctor: '::', - _0: A3( - _rtfeldman$elm_css$Css_Structure$StyleBlock, - f(_p24), - {ctor: '[]'}, - {ctor: '[]'}), - _1: {ctor: '[]'} - } - }; - } else { - var _p26 = _p23._1; - var _p25 = _p23._0; - var newFirst = f(_p25); - var newRest = A2(_elm_lang$core$List$map, f, _p26); - return { - ctor: '::', - _0: A3(_rtfeldman$elm_css$Css_Structure$StyleBlock, _p25, _p26, _p23._2), - _1: { - ctor: '::', - _0: A3( - _rtfeldman$elm_css$Css_Structure$StyleBlock, - newFirst, - newRest, - {ctor: '[]'}), - _1: {ctor: '[]'} - } - }; - } - }); -var _rtfeldman$elm_css$Css_Structure$Speech = {ctor: 'Speech'}; -var _rtfeldman$elm_css$Css_Structure$Screen = {ctor: 'Screen'}; -var _rtfeldman$elm_css$Css_Structure$Print = {ctor: 'Print'}; -var _rtfeldman$elm_css$Css_Structure$CustomQuery = function (a) { - return {ctor: 'CustomQuery', _0: a}; -}; -var _rtfeldman$elm_css$Css_Structure$NotQuery = F2( - function (a, b) { - return {ctor: 'NotQuery', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Structure$OnlyQuery = F2( - function (a, b) { - return {ctor: 'OnlyQuery', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Structure$AllQuery = function (a) { - return {ctor: 'AllQuery', _0: a}; -}; -var _rtfeldman$elm_css$Css_Structure$Selector = F3( - function (a, b, c) { - return {ctor: 'Selector', _0: a, _1: b, _2: c}; - }); -var _rtfeldman$elm_css$Css_Structure$applyPseudoElement = F2( - function (pseudo, _p27) { - var _p28 = _p27; - return A3( - _rtfeldman$elm_css$Css_Structure$Selector, - _p28._0, - _p28._1, - _elm_lang$core$Maybe$Just(pseudo)); - }); -var _rtfeldman$elm_css$Css_Structure$appendPseudoElementToLastSelector = F2( - function (pseudo, styleBlock) { - return A2( - _rtfeldman$elm_css$Css_Structure$appendToLastSelector, - _rtfeldman$elm_css$Css_Structure$applyPseudoElement(pseudo), - styleBlock); - }); -var _rtfeldman$elm_css$Css_Structure$CustomSelector = F2( - function (a, b) { - return {ctor: 'CustomSelector', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Structure$UniversalSelectorSequence = function (a) { - return {ctor: 'UniversalSelectorSequence', _0: a}; -}; -var _rtfeldman$elm_css$Css_Structure$TypeSelectorSequence = F2( - function (a, b) { - return {ctor: 'TypeSelectorSequence', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Structure$appendRepeatable = F2( - function (selector, sequence) { - var _p29 = sequence; - switch (_p29.ctor) { - case 'TypeSelectorSequence': - return A2( - _rtfeldman$elm_css$Css_Structure$TypeSelectorSequence, - _p29._0, - A2( - _elm_lang$core$Basics_ops['++'], - _p29._1, - { - ctor: '::', - _0: selector, - _1: {ctor: '[]'} - })); - case 'UniversalSelectorSequence': - return _rtfeldman$elm_css$Css_Structure$UniversalSelectorSequence( - A2( - _elm_lang$core$Basics_ops['++'], - _p29._0, - { - ctor: '::', - _0: selector, - _1: {ctor: '[]'} - })); - default: - return A2( - _rtfeldman$elm_css$Css_Structure$CustomSelector, - _p29._0, - A2( - _elm_lang$core$Basics_ops['++'], - _p29._1, - { - ctor: '::', - _0: selector, - _1: {ctor: '[]'} - })); - } - }); -var _rtfeldman$elm_css$Css_Structure$appendRepeatableWithCombinator = F2( - function (selector, list) { - var _p30 = list; - if (_p30.ctor === '[]') { - return {ctor: '[]'}; - } else { - if ((_p30._0.ctor === '_Tuple2') && (_p30._1.ctor === '[]')) { - return { - ctor: '::', - _0: { - ctor: '_Tuple2', - _0: _p30._0._0, - _1: A2(_rtfeldman$elm_css$Css_Structure$appendRepeatable, selector, _p30._0._1) - }, - _1: {ctor: '[]'} - }; - } else { - return { - ctor: '::', - _0: _p30._0, - _1: A2(_rtfeldman$elm_css$Css_Structure$appendRepeatableWithCombinator, selector, _p30._1) - }; - } - } - }); -var _rtfeldman$elm_css$Css_Structure$appendRepeatableSelector = F2( - function (repeatableSimpleSelector, selector) { - var _p31 = selector; - if (_p31._1.ctor === '[]') { - return A3( - _rtfeldman$elm_css$Css_Structure$Selector, - A2(_rtfeldman$elm_css$Css_Structure$appendRepeatable, repeatableSimpleSelector, _p31._0), - {ctor: '[]'}, - _p31._2); - } else { - return A3( - _rtfeldman$elm_css$Css_Structure$Selector, - _p31._0, - A2(_rtfeldman$elm_css$Css_Structure$appendRepeatableWithCombinator, repeatableSimpleSelector, _p31._1), - _p31._2); - } - }); -var _rtfeldman$elm_css$Css_Structure$extendLastSelector = F2( - function (selector, declarations) { - var _p32 = declarations; - _v24_15: - do { - if (_p32.ctor === '[]') { - return declarations; - } else { - if (_p32._1.ctor === '[]') { - switch (_p32._0.ctor) { - case 'StyleBlockDeclaration': - if (_p32._0._0._1.ctor === '[]') { - return { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure$StyleBlockDeclaration( - A3( - _rtfeldman$elm_css$Css_Structure$StyleBlock, - A2(_rtfeldman$elm_css$Css_Structure$appendRepeatableSelector, selector, _p32._0._0._0), - {ctor: '[]'}, - _p32._0._0._2)), - _1: {ctor: '[]'} - }; - } else { - var newRest = A2( - _rtfeldman$elm_css$Css_Structure$mapLast, - _rtfeldman$elm_css$Css_Structure$appendRepeatableSelector(selector), - _p32._0._0._1); - return { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure$StyleBlockDeclaration( - A3(_rtfeldman$elm_css$Css_Structure$StyleBlock, _p32._0._0._0, newRest, _p32._0._0._2)), - _1: {ctor: '[]'} - }; - } - case 'MediaRule': - if (_p32._0._1.ctor === '::') { - if (_p32._0._1._1.ctor === '[]') { - if (_p32._0._1._0._1.ctor === '[]') { - var newStyleBlock = A3( - _rtfeldman$elm_css$Css_Structure$StyleBlock, - A2(_rtfeldman$elm_css$Css_Structure$appendRepeatableSelector, selector, _p32._0._1._0._0), - {ctor: '[]'}, - _p32._0._1._0._2); - return { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Css_Structure$MediaRule, - _p32._0._0, - { - ctor: '::', - _0: newStyleBlock, - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }; - } else { - var newRest = A2( - _rtfeldman$elm_css$Css_Structure$mapLast, - _rtfeldman$elm_css$Css_Structure$appendRepeatableSelector(selector), - _p32._0._1._0._1); - var newStyleBlock = A3(_rtfeldman$elm_css$Css_Structure$StyleBlock, _p32._0._1._0._0, newRest, _p32._0._1._0._2); - return { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Css_Structure$MediaRule, - _p32._0._0, - { - ctor: '::', - _0: newStyleBlock, - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }; - } - } else { - var _p33 = A2( - _rtfeldman$elm_css$Css_Structure$extendLastSelector, - selector, - { - ctor: '::', - _0: A2(_rtfeldman$elm_css$Css_Structure$MediaRule, _p32._0._0, _p32._0._1._1), - _1: {ctor: '[]'} - }); - if (((_p33.ctor === '::') && (_p33._0.ctor === 'MediaRule')) && (_p33._1.ctor === '[]')) { - return { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Css_Structure$MediaRule, - _p33._0._0, - {ctor: '::', _0: _p32._0._1._0, _1: _p33._0._1}), - _1: {ctor: '[]'} - }; - } else { - return _p33; - } - } - } else { - break _v24_15; - } - case 'SupportsRule': - return { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Css_Structure$SupportsRule, - _p32._0._0, - A2(_rtfeldman$elm_css$Css_Structure$extendLastSelector, selector, _p32._0._1)), - _1: {ctor: '[]'} - }; - case 'DocumentRule': - if (_p32._0._4._1.ctor === '[]') { - var newStyleBlock = A3( - _rtfeldman$elm_css$Css_Structure$StyleBlock, - A2(_rtfeldman$elm_css$Css_Structure$appendRepeatableSelector, selector, _p32._0._4._0), - {ctor: '[]'}, - _p32._0._4._2); - return { - ctor: '::', - _0: A5(_rtfeldman$elm_css$Css_Structure$DocumentRule, _p32._0._0, _p32._0._1, _p32._0._2, _p32._0._3, newStyleBlock), - _1: {ctor: '[]'} - }; - } else { - var newRest = A2( - _rtfeldman$elm_css$Css_Structure$mapLast, - _rtfeldman$elm_css$Css_Structure$appendRepeatableSelector(selector), - _p32._0._4._1); - var newStyleBlock = A3(_rtfeldman$elm_css$Css_Structure$StyleBlock, _p32._0._4._0, newRest, _p32._0._4._2); - return { - ctor: '::', - _0: A5(_rtfeldman$elm_css$Css_Structure$DocumentRule, _p32._0._0, _p32._0._1, _p32._0._2, _p32._0._3, newStyleBlock), - _1: {ctor: '[]'} - }; - } - case 'PageRule': - return declarations; - case 'FontFace': - return declarations; - case 'Keyframes': - return declarations; - case 'Viewport': - return declarations; - case 'CounterStyle': - return declarations; - default: - return declarations; - } - } else { - break _v24_15; - } - } - } while(false); - return { - ctor: '::', - _0: _p32._0, - _1: A2(_rtfeldman$elm_css$Css_Structure$extendLastSelector, selector, _p32._1) - }; - }); -var _rtfeldman$elm_css$Css_Structure$appendRepeatableToLastSelector = F2( - function (selector, styleBlock) { - return A2( - _rtfeldman$elm_css$Css_Structure$appendToLastSelector, - _rtfeldman$elm_css$Css_Structure$appendRepeatableSelector(selector), - styleBlock); - }); -var _rtfeldman$elm_css$Css_Structure$PseudoClassSelector = function (a) { - return {ctor: 'PseudoClassSelector', _0: a}; -}; -var _rtfeldman$elm_css$Css_Structure$IdSelector = function (a) { - return {ctor: 'IdSelector', _0: a}; -}; -var _rtfeldman$elm_css$Css_Structure$ClassSelector = function (a) { - return {ctor: 'ClassSelector', _0: a}; -}; -var _rtfeldman$elm_css$Css_Structure$TypeSelector = function (a) { - return {ctor: 'TypeSelector', _0: a}; -}; -var _rtfeldman$elm_css$Css_Structure$PseudoElement = function (a) { - return {ctor: 'PseudoElement', _0: a}; -}; -var _rtfeldman$elm_css$Css_Structure$Descendant = {ctor: 'Descendant'}; -var _rtfeldman$elm_css$Css_Structure$Child = {ctor: 'Child'}; -var _rtfeldman$elm_css$Css_Structure$GeneralSibling = {ctor: 'GeneralSibling'}; -var _rtfeldman$elm_css$Css_Structure$AdjacentSibling = {ctor: 'AdjacentSibling'}; - -var _rtfeldman$elm_css$Css_Preprocess$propertyToPair = function (property) { - var value = property.important ? A2(_elm_lang$core$Basics_ops['++'], property.value, ' !important') : property.value; - return {ctor: '_Tuple2', _0: property.key, _1: value}; -}; -var _rtfeldman$elm_css$Css_Preprocess$toPropertyPairs = function (styles) { - toPropertyPairs: - while (true) { - var _p0 = styles; - if (_p0.ctor === '[]') { - return {ctor: '[]'}; - } else { - switch (_p0._0.ctor) { - case 'AppendProperty': - return { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Preprocess$propertyToPair(_p0._0._0), - _1: _rtfeldman$elm_css$Css_Preprocess$toPropertyPairs(_p0._1) - }; - case 'ApplyStyles': - return A2( - _elm_lang$core$Basics_ops['++'], - _rtfeldman$elm_css$Css_Preprocess$toPropertyPairs(_p0._0._0), - _rtfeldman$elm_css$Css_Preprocess$toPropertyPairs(_p0._1)); - default: - var _v1 = _p0._1; - styles = _v1; - continue toPropertyPairs; - } - } - } -}; -var _rtfeldman$elm_css$Css_Preprocess$unwrapSnippet = function (_p1) { - var _p2 = _p1; - return _p2._0; -}; -var _rtfeldman$elm_css$Css_Preprocess$toMediaRule = F2( - function (mediaQueries, declaration) { - var _p3 = declaration; - switch (_p3.ctor) { - case 'StyleBlockDeclaration': - return A2( - _rtfeldman$elm_css$Css_Structure$MediaRule, - mediaQueries, - { - ctor: '::', - _0: _p3._0, - _1: {ctor: '[]'} - }); - case 'MediaRule': - return A2( - _rtfeldman$elm_css$Css_Structure$MediaRule, - A2(_elm_lang$core$Basics_ops['++'], mediaQueries, _p3._0), - _p3._1); - case 'SupportsRule': - return A2( - _rtfeldman$elm_css$Css_Structure$SupportsRule, - _p3._0, - A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$Css_Preprocess$toMediaRule(mediaQueries), - _p3._1)); - case 'DocumentRule': - return A5(_rtfeldman$elm_css$Css_Structure$DocumentRule, _p3._0, _p3._1, _p3._2, _p3._3, _p3._4); - case 'PageRule': - return declaration; - case 'FontFace': - return declaration; - case 'Keyframes': - return declaration; - case 'Viewport': - return declaration; - case 'CounterStyle': - return declaration; - default: - return declaration; - } - }); -var _rtfeldman$elm_css$Css_Preprocess$stylesheet = function (snippets) { - return { - charset: _elm_lang$core$Maybe$Nothing, - imports: {ctor: '[]'}, - namespaces: {ctor: '[]'}, - snippets: snippets - }; -}; -var _rtfeldman$elm_css$Css_Preprocess$Property = F4( - function (a, b, c, d) { - return {key: a, value: b, important: c, warnings: d}; - }); -var _rtfeldman$elm_css$Css_Preprocess$Stylesheet = F4( - function (a, b, c, d) { - return {charset: a, imports: b, namespaces: c, snippets: d}; - }); -var _rtfeldman$elm_css$Css_Preprocess$ApplyStyles = function (a) { - return {ctor: 'ApplyStyles', _0: a}; -}; -var _rtfeldman$elm_css$Css_Preprocess$WithMedia = F2( - function (a, b) { - return {ctor: 'WithMedia', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Preprocess$WithPseudoElement = F2( - function (a, b) { - return {ctor: 'WithPseudoElement', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Preprocess$NestSnippet = F2( - function (a, b) { - return {ctor: 'NestSnippet', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Preprocess$ExtendSelector = F2( - function (a, b) { - return {ctor: 'ExtendSelector', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Preprocess$AppendProperty = function (a) { - return {ctor: 'AppendProperty', _0: a}; -}; -var _rtfeldman$elm_css$Css_Preprocess$mapLastProperty = F2( - function (update, style) { - var _p4 = style; - switch (_p4.ctor) { - case 'AppendProperty': - return _rtfeldman$elm_css$Css_Preprocess$AppendProperty( - update(_p4._0)); - case 'ExtendSelector': - return A2( - _rtfeldman$elm_css$Css_Preprocess$ExtendSelector, - _p4._0, - A2(_rtfeldman$elm_css$Css_Preprocess$mapAllLastProperty, update, _p4._1)); - case 'NestSnippet': - return style; - case 'WithPseudoElement': - return style; - case 'WithMedia': - return style; - default: - return _rtfeldman$elm_css$Css_Preprocess$ApplyStyles( - A2( - _rtfeldman$elm_css$Css_Structure$mapLast, - _rtfeldman$elm_css$Css_Preprocess$mapLastProperty(update), - _p4._0)); - } - }); -var _rtfeldman$elm_css$Css_Preprocess$mapAllLastProperty = F2( - function (update, styles) { - var _p5 = styles; - if (_p5.ctor === '[]') { - return styles; - } else { - if (_p5._1.ctor === '[]') { - return { - ctor: '::', - _0: A2(_rtfeldman$elm_css$Css_Preprocess$mapLastProperty, update, _p5._0), - _1: {ctor: '[]'} - }; - } else { - return { - ctor: '::', - _0: _p5._0, - _1: A2(_rtfeldman$elm_css$Css_Preprocess$mapAllLastProperty, update, _p5._1) - }; - } - } - }); -var _rtfeldman$elm_css$Css_Preprocess$Snippet = function (a) { - return {ctor: 'Snippet', _0: a}; -}; -var _rtfeldman$elm_css$Css_Preprocess$FontFeatureValues = function (a) { - return {ctor: 'FontFeatureValues', _0: a}; -}; -var _rtfeldman$elm_css$Css_Preprocess$CounterStyle = function (a) { - return {ctor: 'CounterStyle', _0: a}; -}; -var _rtfeldman$elm_css$Css_Preprocess$Viewport = function (a) { - return {ctor: 'Viewport', _0: a}; -}; -var _rtfeldman$elm_css$Css_Preprocess$Keyframes = F2( - function (a, b) { - return {ctor: 'Keyframes', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Preprocess$FontFace = function (a) { - return {ctor: 'FontFace', _0: a}; -}; -var _rtfeldman$elm_css$Css_Preprocess$PageRule = F2( - function (a, b) { - return {ctor: 'PageRule', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Preprocess$DocumentRule = F5( - function (a, b, c, d, e) { - return {ctor: 'DocumentRule', _0: a, _1: b, _2: c, _3: d, _4: e}; - }); -var _rtfeldman$elm_css$Css_Preprocess$SupportsRule = F2( - function (a, b) { - return {ctor: 'SupportsRule', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Preprocess$MediaRule = F2( - function (a, b) { - return {ctor: 'MediaRule', _0: a, _1: b}; - }); -var _rtfeldman$elm_css$Css_Preprocess$StyleBlockDeclaration = function (a) { - return {ctor: 'StyleBlockDeclaration', _0: a}; -}; -var _rtfeldman$elm_css$Css_Preprocess$StyleBlock = F3( - function (a, b, c) { - return {ctor: 'StyleBlock', _0: a, _1: b, _2: c}; - }); - -var _rtfeldman$hex$Hex$toString = function (num) { - return _elm_lang$core$String$fromList( - (_elm_lang$core$Native_Utils.cmp(num, 0) < 0) ? { - ctor: '::', - _0: _elm_lang$core$Native_Utils.chr('-'), - _1: A2( - _rtfeldman$hex$Hex$unsafePositiveToDigits, - {ctor: '[]'}, - _elm_lang$core$Basics$negate(num)) - } : A2( - _rtfeldman$hex$Hex$unsafePositiveToDigits, - {ctor: '[]'}, - num)); -}; -var _rtfeldman$hex$Hex$unsafePositiveToDigits = F2( - function (digits, num) { - unsafePositiveToDigits: - while (true) { - if (_elm_lang$core$Native_Utils.cmp(num, 16) < 0) { - return { - ctor: '::', - _0: _rtfeldman$hex$Hex$unsafeToDigit(num), - _1: digits - }; - } else { - var _v0 = { - ctor: '::', - _0: _rtfeldman$hex$Hex$unsafeToDigit( - A2(_elm_lang$core$Basics_ops['%'], num, 16)), - _1: digits - }, - _v1 = (num / 16) | 0; - digits = _v0; - num = _v1; - continue unsafePositiveToDigits; - } - } - }); -var _rtfeldman$hex$Hex$unsafeToDigit = function (num) { - var _p0 = num; - switch (_p0) { - case 0: - return _elm_lang$core$Native_Utils.chr('0'); - case 1: - return _elm_lang$core$Native_Utils.chr('1'); - case 2: - return _elm_lang$core$Native_Utils.chr('2'); - case 3: - return _elm_lang$core$Native_Utils.chr('3'); - case 4: - return _elm_lang$core$Native_Utils.chr('4'); - case 5: - return _elm_lang$core$Native_Utils.chr('5'); - case 6: - return _elm_lang$core$Native_Utils.chr('6'); - case 7: - return _elm_lang$core$Native_Utils.chr('7'); - case 8: - return _elm_lang$core$Native_Utils.chr('8'); - case 9: - return _elm_lang$core$Native_Utils.chr('9'); - case 10: - return _elm_lang$core$Native_Utils.chr('a'); - case 11: - return _elm_lang$core$Native_Utils.chr('b'); - case 12: - return _elm_lang$core$Native_Utils.chr('c'); - case 13: - return _elm_lang$core$Native_Utils.chr('d'); - case 14: - return _elm_lang$core$Native_Utils.chr('e'); - case 15: - return _elm_lang$core$Native_Utils.chr('f'); - default: - return _elm_lang$core$Native_Utils.crashCase( - 'Hex', - { - start: {line: 138, column: 5}, - end: {line: 188, column: 84} - }, - _p0)( - A2( - _elm_lang$core$Basics_ops['++'], - 'Tried to convert ', - A2( - _elm_lang$core$Basics_ops['++'], - _rtfeldman$hex$Hex$toString(num), - ' to hexadecimal.'))); - } -}; -var _rtfeldman$hex$Hex$fromStringHelp = F3( - function (position, chars, accumulated) { - var _p2 = chars; - if (_p2.ctor === '[]') { - return _elm_lang$core$Result$Ok(accumulated); - } else { - var recurse = function (additional) { - return A3( - _rtfeldman$hex$Hex$fromStringHelp, - position - 1, - _p2._1, - accumulated + (additional * Math.pow(16, position))); - }; - var _p3 = _p2._0; - switch (_p3.valueOf()) { - case '0': - return recurse(0); - case '1': - return recurse(1); - case '2': - return recurse(2); - case '3': - return recurse(3); - case '4': - return recurse(4); - case '5': - return recurse(5); - case '6': - return recurse(6); - case '7': - return recurse(7); - case '8': - return recurse(8); - case '9': - return recurse(9); - case 'a': - return recurse(10); - case 'b': - return recurse(11); - case 'c': - return recurse(12); - case 'd': - return recurse(13); - case 'e': - return recurse(14); - case 'f': - return recurse(15); - default: - return _elm_lang$core$Result$Err( - A2( - _elm_lang$core$Basics_ops['++'], - _elm_lang$core$Basics$toString(_p3), - ' is not a valid hexadecimal character.')); - } - } - }); -var _rtfeldman$hex$Hex$fromString = function (str) { - if (_elm_lang$core$String$isEmpty(str)) { - return _elm_lang$core$Result$Err('Empty strings are not valid hexadecimal strings.'); - } else { - var formatError = function (err) { - return A2( - _elm_lang$core$String$join, - ' ', - { - ctor: '::', - _0: _elm_lang$core$Basics$toString(str), - _1: { - ctor: '::', - _0: 'is not a valid hexadecimal string because', - _1: { - ctor: '::', - _0: err, - _1: {ctor: '[]'} - } - } - }); - }; - var result = function () { - if (A2(_elm_lang$core$String$startsWith, '-', str)) { - var list = A2( - _elm_lang$core$Maybe$withDefault, - {ctor: '[]'}, - _elm_lang$core$List$tail( - _elm_lang$core$String$toList(str))); - return A2( - _elm_lang$core$Result$map, - _elm_lang$core$Basics$negate, - A3( - _rtfeldman$hex$Hex$fromStringHelp, - _elm_lang$core$List$length(list) - 1, - list, - 0)); - } else { - return A3( - _rtfeldman$hex$Hex$fromStringHelp, - _elm_lang$core$String$length(str) - 1, - _elm_lang$core$String$toList(str), - 0); - } - }(); - return A2(_elm_lang$core$Result$mapError, formatError, result); - } -}; - -var _rtfeldman$elm_css$Css$manipulation = {value: 'manipulation', touchAction: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$pinchZoom = {value: 'pinch-zoom', touchAction: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$panDown = {value: 'pan-down', touchAction: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$panUp = {value: 'pan-up', touchAction: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$panY = {value: 'pan-y', touchAction: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$panRight = {value: 'pan-right', touchAction: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$panLeft = {value: 'pan-left', touchAction: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$panX = {value: 'pan-x', touchAction: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$asPairsDEPRECATED = _rtfeldman$elm_css$Css_Preprocess$toPropertyPairs; -var _rtfeldman$elm_css$Css$stringsToValue = function (list) { - return _elm_lang$core$List$isEmpty(list) ? {value: 'none'} : { - value: A2( - _elm_lang$core$String$join, - ', ', - A2( - _elm_lang$core$List$map, - function (s) { - return s; - }, - list)) - }; -}; -var _rtfeldman$elm_css$Css$valuesOrNone = function (list) { - return _elm_lang$core$List$isEmpty(list) ? {value: 'none'} : { - value: A2( - _elm_lang$core$String$join, - ' ', - A2( - _elm_lang$core$List$map, - function (_) { - return _.value; - }, - list)) - }; -}; -var _rtfeldman$elm_css$Css$stringToInt = function (str) { - return A2( - _elm_lang$core$Result$withDefault, - 0, - _elm_lang$core$String$toInt(str)); -}; -var _rtfeldman$elm_css$Css$numberToString = function (num) { - return _elm_lang$core$Basics$toString(num + 0); -}; -var _rtfeldman$elm_css$Css$numericalPercentageToString = function (value) { - return A3( - _elm_lang$core$Basics$flip, - F2( - function (x, y) { - return A2(_elm_lang$core$Basics_ops['++'], x, y); - }), - '%', - _rtfeldman$elm_css$Css$numberToString( - A2( - F2( - function (x, y) { - return x * y; - }), - 100, - value))); -}; -var _rtfeldman$elm_css$Css$pseudoElement = function (element) { - return _rtfeldman$elm_css$Css_Preprocess$WithPseudoElement( - _rtfeldman$elm_css$Css_Structure$PseudoElement(element)); -}; -var _rtfeldman$elm_css$Css$after = _rtfeldman$elm_css$Css$pseudoElement('after'); -var _rtfeldman$elm_css$Css$before = _rtfeldman$elm_css$Css$pseudoElement('before'); -var _rtfeldman$elm_css$Css$firstLetter = _rtfeldman$elm_css$Css$pseudoElement('first-letter'); -var _rtfeldman$elm_css$Css$firstLine = _rtfeldman$elm_css$Css$pseudoElement('first-line'); -var _rtfeldman$elm_css$Css$selection = _rtfeldman$elm_css$Css$pseudoElement('selection'); -var _rtfeldman$elm_css$Css$pseudoClass = function ($class) { - return _rtfeldman$elm_css$Css_Preprocess$ExtendSelector( - _rtfeldman$elm_css$Css_Structure$PseudoClassSelector($class)); -}; -var _rtfeldman$elm_css$Css$active = _rtfeldman$elm_css$Css$pseudoClass('active'); -var _rtfeldman$elm_css$Css$any = function (str) { - return _rtfeldman$elm_css$Css$pseudoClass( - A2( - _elm_lang$core$Basics_ops['++'], - 'any(', - A2(_elm_lang$core$Basics_ops['++'], str, ')'))); -}; -var _rtfeldman$elm_css$Css$checked = _rtfeldman$elm_css$Css$pseudoClass('checked'); -var _rtfeldman$elm_css$Css$disabled = _rtfeldman$elm_css$Css$pseudoClass('disabled'); -var _rtfeldman$elm_css$Css$empty = _rtfeldman$elm_css$Css$pseudoClass('empty'); -var _rtfeldman$elm_css$Css$enabled = _rtfeldman$elm_css$Css$pseudoClass('enabled'); -var _rtfeldman$elm_css$Css$first = _rtfeldman$elm_css$Css$pseudoClass('first'); -var _rtfeldman$elm_css$Css$firstChild = _rtfeldman$elm_css$Css$pseudoClass('first-child'); -var _rtfeldman$elm_css$Css$firstOfType = _rtfeldman$elm_css$Css$pseudoClass('first-of-type'); -var _rtfeldman$elm_css$Css$fullscreen = _rtfeldman$elm_css$Css$pseudoClass('fullscreen'); -var _rtfeldman$elm_css$Css$focus = _rtfeldman$elm_css$Css$pseudoClass('focus'); -var _rtfeldman$elm_css$Css$hover = _rtfeldman$elm_css$Css$pseudoClass('hover'); -var _rtfeldman$elm_css$Css$visited = _rtfeldman$elm_css$Css$pseudoClass('visited'); -var _rtfeldman$elm_css$Css$indeterminate = _rtfeldman$elm_css$Css$pseudoClass('indeterminate'); -var _rtfeldman$elm_css$Css$invalid = _rtfeldman$elm_css$Css$pseudoClass('invalid'); -var _rtfeldman$elm_css$Css$lang = function (str) { - return _rtfeldman$elm_css$Css$pseudoClass( - A2( - _elm_lang$core$Basics_ops['++'], - 'lang(', - A2(_elm_lang$core$Basics_ops['++'], str, ')'))); -}; -var _rtfeldman$elm_css$Css$lastChild = _rtfeldman$elm_css$Css$pseudoClass('last-child'); -var _rtfeldman$elm_css$Css$lastOfType = _rtfeldman$elm_css$Css$pseudoClass('last-of-type'); -var _rtfeldman$elm_css$Css$link = _rtfeldman$elm_css$Css$pseudoClass('link'); -var _rtfeldman$elm_css$Css$nthChild = function (str) { - return _rtfeldman$elm_css$Css$pseudoClass( - A2( - _elm_lang$core$Basics_ops['++'], - 'nth-child(', - A2(_elm_lang$core$Basics_ops['++'], str, ')'))); -}; -var _rtfeldman$elm_css$Css$nthLastChild = function (str) { - return _rtfeldman$elm_css$Css$pseudoClass( - A2( - _elm_lang$core$Basics_ops['++'], - 'nth-last-child(', - A2(_elm_lang$core$Basics_ops['++'], str, ')'))); -}; -var _rtfeldman$elm_css$Css$nthLastOfType = function (str) { - return _rtfeldman$elm_css$Css$pseudoClass( - A2( - _elm_lang$core$Basics_ops['++'], - 'nth-last-of-type(', - A2(_elm_lang$core$Basics_ops['++'], str, ')'))); -}; -var _rtfeldman$elm_css$Css$nthOfType = function (str) { - return _rtfeldman$elm_css$Css$pseudoClass( - A2( - _elm_lang$core$Basics_ops['++'], - 'nth-of-type(', - A2(_elm_lang$core$Basics_ops['++'], str, ')'))); -}; -var _rtfeldman$elm_css$Css$onlyChild = _rtfeldman$elm_css$Css$pseudoClass('only-child'); -var _rtfeldman$elm_css$Css$onlyOfType = _rtfeldman$elm_css$Css$pseudoClass('only-of-type'); -var _rtfeldman$elm_css$Css$optional = _rtfeldman$elm_css$Css$pseudoClass('optional'); -var _rtfeldman$elm_css$Css$outOfRange = _rtfeldman$elm_css$Css$pseudoClass('out-of-range'); -var _rtfeldman$elm_css$Css$readWrite = _rtfeldman$elm_css$Css$pseudoClass('read-write'); -var _rtfeldman$elm_css$Css$required = _rtfeldman$elm_css$Css$pseudoClass('required'); -var _rtfeldman$elm_css$Css$root = _rtfeldman$elm_css$Css$pseudoClass('root'); -var _rtfeldman$elm_css$Css$scope = _rtfeldman$elm_css$Css$pseudoClass('scope'); -var _rtfeldman$elm_css$Css$target = _rtfeldman$elm_css$Css$pseudoClass('target'); -var _rtfeldman$elm_css$Css$valid = _rtfeldman$elm_css$Css$pseudoClass('valid'); -var _rtfeldman$elm_css$Css$directionalityToString = function (directionality) { - var _p0 = directionality; - if (_p0.ctor === 'Ltr') { - return 'ltr'; - } else { - return 'rtl'; - } -}; -var _rtfeldman$elm_css$Css$dir = function (directionality) { - return _rtfeldman$elm_css$Css$pseudoClass( - A2( - _elm_lang$core$Basics_ops['++'], - 'dir(', - A2( - _elm_lang$core$Basics_ops['++'], - _rtfeldman$elm_css$Css$directionalityToString(directionality), - ')'))); -}; -var _rtfeldman$elm_css$Css$propertyWithWarnings = F3( - function (warnings, key, value) { - return _rtfeldman$elm_css$Css_Preprocess$AppendProperty( - {key: key, value: value, important: false, warnings: warnings}); - }); -var _rtfeldman$elm_css$Css$property = _rtfeldman$elm_css$Css$propertyWithWarnings( - {ctor: '[]'}); -var _rtfeldman$elm_css$Css$batch = _rtfeldman$elm_css$Css_Preprocess$ApplyStyles; -var _rtfeldman$elm_css$Css$animationNames = function (identifiers) { - var value = A2( - _elm_lang$core$String$join, - ', ', - A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css_util$Css_Helpers$identifierToString(''), - identifiers)); - return A2(_rtfeldman$elm_css$Css$property, 'animation-name', value); -}; -var _rtfeldman$elm_css$Css$animationName = function (identifier) { - return _rtfeldman$elm_css$Css$animationNames( - { - ctor: '::', - _0: identifier, - _1: {ctor: '[]'} - }); -}; -var _rtfeldman$elm_css$Css$preLine = {value: 'pre-line', whiteSpace: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$preWrap = {value: 'pre-wrap', whiteSpace: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$pre = {value: 'pre', whiteSpace: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$grabbing = {value: 'grabbing', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$grab = {value: 'grab', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$zoomOut = {value: 'zoom-out', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$zoomIn = {value: 'zoom-in', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$allScroll = {value: 'all-scroll', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$rowResize = {value: 'row-resize', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$colResize = {value: 'col-resize', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$nwseResize = {value: 'nwse-resize', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$neswResize = {value: 'nesw-resize', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$nsResize = {value: 'ns-resize', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$ewResize = {value: 'ew-resize', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$wResize = {value: 'w-resize', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$swResize = {value: 'sw-resize', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$seResize = {value: 'se-resize', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$sResize = {value: 's-resize', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$nwResize = {value: 'nw-resize', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$neResize = {value: 'ne-resize', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$nResize = {value: 'n-resize', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$eResize = {value: 'e-resize', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$notAllowed = {value: 'not-allowed', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$noDrop = {value: 'no-drop', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$move = {value: 'move', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$copy = {value: 'copy', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$cursorAlias = {value: 'alias', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$verticalText = {value: 'vertical-text', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$text_ = {value: 'text', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$cell = {value: 'cell', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$wait = {value: 'wait', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$progress = {value: 'progress', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$pointer = {value: 'pointer', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$help = {value: 'help', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$contextMenu = {value: 'context-menu', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$crosshair = {value: 'crosshair', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$default = {value: 'default', cursor: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$fontWeight = function (_p1) { - var _p2 = _p1; - var _p3 = _p2.value; - var validWeight = function (weight) { - return (!_elm_lang$core$Native_Utils.eq( - _p3, - _elm_lang$core$Basics$toString(weight))) ? true : A2( - _elm_lang$core$List$member, - weight, - A2( - _elm_lang$core$List$map, - F2( - function (x, y) { - return x * y; - })(100), - A2(_elm_lang$core$List$range, 1, 9))); - }; - var warnings = validWeight( - _rtfeldman$elm_css$Css$stringToInt(_p3)) ? {ctor: '[]'} : { - ctor: '::', - _0: A2( - _elm_lang$core$Basics_ops['++'], - 'fontWeight ', - A2(_elm_lang$core$Basics_ops['++'], _p3, ' is invalid. Valid weights are: 100, 200, 300, 400, 500, 600, 700, 800, 900. Please see https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#Values')), - _1: {ctor: '[]'} - }; - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, warnings, 'font-weight', _p3); -}; -var _rtfeldman$elm_css$Css$fontFeatureSettingsList = function (featureTagValues) { - var warnings = _elm_lang$core$List$concat( - A2( - _elm_lang$core$List$map, - function (_) { - return _.warnings; - }, - featureTagValues)); - var value = A2( - _elm_lang$core$String$join, - ', ', - A2( - _elm_lang$core$List$map, - function (_) { - return _.value; - }, - featureTagValues)); - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, warnings, 'font-feature-settings', value); -}; -var _rtfeldman$elm_css$Css$fontFeatureSettings = function (_p4) { - var _p5 = _p4; - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, _p5.warnings, 'font-feature-settings', _p5.value); -}; -var _rtfeldman$elm_css$Css$qt = function (str) { - return _elm_lang$core$Basics$toString(str); -}; -var _rtfeldman$elm_css$Css$fontFace = function (value) { - return A2(_elm_lang$core$Basics_ops['++'], 'font-face ', value); -}; -var _rtfeldman$elm_css$Css$src_ = function (value) { - return _elm_lang$core$Basics$toString(value.value); -}; -var _rtfeldman$elm_css$Css$color = function (c) { - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, c.warnings, 'color', c.value); -}; -var _rtfeldman$elm_css$Css$backgroundColor = function (c) { - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, c.warnings, 'background-color', c.value); -}; -var _rtfeldman$elm_css$Css$outlineColor = function (c) { - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, c.warnings, 'outline-color', c.value); -}; -var _rtfeldman$elm_css$Css$borderColor4 = F4( - function (c1, c2, c3, c4) { - var value = A2( - _elm_lang$core$String$join, - ' ', - { - ctor: '::', - _0: c1.value, - _1: { - ctor: '::', - _0: c2.value, - _1: { - ctor: '::', - _0: c3.value, - _1: { - ctor: '::', - _0: c4.value, - _1: {ctor: '[]'} - } - } - } - }); - var warnings = A2( - _elm_lang$core$Basics_ops['++'], - c1.warnings, - A2( - _elm_lang$core$Basics_ops['++'], - c2.warnings, - A2(_elm_lang$core$Basics_ops['++'], c3.warnings, c4.warnings))); - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, warnings, 'border-color', value); - }); -var _rtfeldman$elm_css$Css$borderColor3 = F3( - function (c1, c2, c3) { - var value = A2( - _elm_lang$core$String$join, - ' ', - { - ctor: '::', - _0: c1.value, - _1: { - ctor: '::', - _0: c2.value, - _1: { - ctor: '::', - _0: c3.value, - _1: {ctor: '[]'} - } - } - }); - var warnings = A2( - _elm_lang$core$Basics_ops['++'], - c1.warnings, - A2(_elm_lang$core$Basics_ops['++'], c2.warnings, c3.warnings)); - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, warnings, 'border-color', value); - }); -var _rtfeldman$elm_css$Css$borderColor2 = F2( - function (c1, c2) { - var value = A2( - _elm_lang$core$String$join, - ' ', - { - ctor: '::', - _0: c1.value, - _1: { - ctor: '::', - _0: c2.value, - _1: {ctor: '[]'} - } - }); - var warnings = A2(_elm_lang$core$Basics_ops['++'], c1.warnings, c2.warnings); - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, warnings, 'border-color', value); - }); -var _rtfeldman$elm_css$Css$borderColor = function (c) { - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, c.warnings, 'border-color', c.value); -}; -var _rtfeldman$elm_css$Css$borderBlockEndColor = function (c) { - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, c.warnings, 'border-block-end-color', c.value); -}; -var _rtfeldman$elm_css$Css$borderTopColor = function (c) { - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, c.warnings, 'border-top-color', c.value); -}; -var _rtfeldman$elm_css$Css$borderRightColor = function (c) { - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, c.warnings, 'border-right-color', c.value); -}; -var _rtfeldman$elm_css$Css$borderLeftColor = function (c) { - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, c.warnings, 'border-left-color', c.value); -}; -var _rtfeldman$elm_css$Css$borderInlineEndColor = function (c) { - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, c.warnings, 'border-inline-end-color', c.value); -}; -var _rtfeldman$elm_css$Css$borderInlineStartColor = function (c) { - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, c.warnings, 'border-inline-start-color', c.value); -}; -var _rtfeldman$elm_css$Css$borderBottomColor = function (c) { - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, c.warnings, 'border-bottom-color', c.value); -}; -var _rtfeldman$elm_css$Css$borderBlockStartColor = function (c) { - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, c.warnings, 'border-block-start-color', c.value); -}; -var _rtfeldman$elm_css$Css$featureTag2 = F2( - function (tag, value) { - var potentialWarnings = { - ctor: '::', - _0: { - ctor: '_Tuple2', - _0: !_elm_lang$core$Native_Utils.eq( - _elm_lang$core$String$length(tag), - 4), - _1: A2( - _elm_lang$core$Basics_ops['++'], - 'Feature tags must be exactly 4 characters long. ', - A2(_elm_lang$core$Basics_ops['++'], tag, ' is invalid.')) - }, - _1: { - ctor: '::', - _0: { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.cmp(value, 0) < 0, - _1: A2( - _elm_lang$core$Basics_ops['++'], - 'Feature values cannot be negative. ', - A2( - _elm_lang$core$Basics_ops['++'], - _elm_lang$core$Basics$toString(value), - ' is invalid.')) - }, - _1: {ctor: '[]'} - } - }; - var warnings = A2( - _elm_lang$core$List$map, - _elm_lang$core$Tuple$second, - A2(_elm_lang$core$List$filter, _elm_lang$core$Tuple$first, potentialWarnings)); - return { - value: A2( - _elm_lang$core$Basics_ops['++'], - _elm_lang$core$Basics$toString(tag), - A2( - _elm_lang$core$Basics_ops['++'], - ' ', - _elm_lang$core$Basics$toString(value))), - featureTagValue: _rtfeldman$elm_css$Css_Structure$Compatible, - warnings: warnings - }; - }); -var _rtfeldman$elm_css$Css$featureTag = function (tag) { - return A2(_rtfeldman$elm_css$Css$featureTag2, tag, 1); -}; -var _rtfeldman$elm_css$Css$featureOff = 0; -var _rtfeldman$elm_css$Css$featureOn = 1; -var _rtfeldman$elm_css$Css$slashedZero = {value: 'slashed-zero', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantNumeric: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$ordinal = {value: 'ordinal', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantNumeric: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$stackedFractions = {value: 'stacked-fractions', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantNumeric: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$diagonalFractions = {value: 'diagonal-fractions', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantNumeric: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$tabularNums = {value: 'tabular-nums', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantNumeric: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$proportionalNums = {value: 'proportional-nums', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantNumeric: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$oldstyleNums = {value: 'oldstyle-nums', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantNumeric: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$liningNums = {value: 'lining-nums', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantNumeric: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$noContextual = {value: 'no-contextual', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantLigatures: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$contextual = {value: 'context', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantLigatures: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$noHistoricalLigatures = {value: 'no-historical-ligatures', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantLigatures: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$historicalLigatures = {value: 'historical-ligatures', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantLigatures: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$noDiscretionaryLigatures = {value: 'no-discretionary-ligatures', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantLigatures: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$discretionaryLigatures = {value: 'discretionary-ligatures', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantLigatures: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$noCommonLigatures = {value: 'no-common-ligatures', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantLigatures: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$commonLigatures = {value: 'common-ligatures', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantLigatures: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$titlingCaps = {value: 'titling-caps', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantCaps: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$unicase = {value: 'unicase', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantCaps: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$allPetiteCaps = {value: 'all-petite-caps', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantCaps: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$petiteCaps = {value: 'petite-caps', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantCaps: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$allSmallCaps = {value: 'all-small-caps', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantCaps: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$smallCaps = {value: 'small-caps', fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, fontVariantCaps: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$bolder = {value: 'bolder', fontWeight: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$lighter = {value: 'lighter', fontWeight: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$bold = {value: 'bold', fontWeight: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$oblique = {value: 'oblique', fontStyle: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$italic = {value: 'italic', fontStyle: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$normal = { - value: 'normal', - warnings: {ctor: '[]'}, - fontStyle: _rtfeldman$elm_css$Css_Structure$Compatible, - fontWeight: _rtfeldman$elm_css$Css_Structure$Compatible, - featureTagValue: _rtfeldman$elm_css$Css_Structure$Compatible, - overflowWrap: _rtfeldman$elm_css$Css_Structure$Compatible, - whiteSpace: _rtfeldman$elm_css$Css_Structure$Compatible -}; -var _rtfeldman$elm_css$Css$larger = {value: 'larger', fontSize: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$smaller = {value: 'smaller', fontSize: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$xxLarge = {value: 'xx-large', fontSize: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$xLarge = {value: 'x-large', fontSize: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$large = {value: 'large', fontSize: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$medium = {value: 'medium', fontSize: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$small = {value: 'small', fontSize: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$xSmall = {value: 'x-small', fontSize: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$xxSmall = {value: 'xx-small', fontSize: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$fantasy = {value: 'fantasy', fontFamily: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$cursive = {value: 'cursive', fontFamily: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$monospace = {value: 'monospace', fontFamily: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$sansSerif = {value: 'sans-serif', fontFamily: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$serif = {value: 'serif', fontFamily: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$absolute = {value: 'absolute', position: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$relative = {value: 'relative', position: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$sticky = {value: 'sticky', position: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$fixed = {value: 'fixed', position: _rtfeldman$elm_css$Css_Structure$Compatible, backgroundAttachment: _rtfeldman$elm_css$Css_Structure$Compatible, tableLayout: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$static = {value: 'static', position: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$fillAvailable = {value: 'fill-available', minMaxDimension: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrMinMaxDimension: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrNoneOrMinMaxDimension: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$fitContent = _elm_lang$core$Native_Utils.update( - _rtfeldman$elm_css$Css$fillAvailable, - {value: 'fit-content'}); -var _rtfeldman$elm_css$Css$minContent = _elm_lang$core$Native_Utils.update( - _rtfeldman$elm_css$Css$fillAvailable, - {value: 'min-content'}); -var _rtfeldman$elm_css$Css$maxContent = _elm_lang$core$Native_Utils.update( - _rtfeldman$elm_css$Css$fillAvailable, - {value: 'max-content'}); -var _rtfeldman$elm_css$Css$displayFlex = A2(_rtfeldman$elm_css$Css$property, 'display', 'flex'); -var _rtfeldman$elm_css$Css$textEmphasisColor = function (c) { - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, c.warnings, 'text-emphasis-color', c.value); -}; -var _rtfeldman$elm_css$Css$textDecorationColor = function (c) { - return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, c.warnings, 'text-decoration-color', c.value); -}; -var _rtfeldman$elm_css$Css$prop6 = F7( - function (key, argA, argB, argC, argD, argE, argF) { - return A2( - _rtfeldman$elm_css$Css$property, - key, - A2( - _elm_lang$core$String$join, - ' ', - { - ctor: '::', - _0: argA.value, - _1: { - ctor: '::', - _0: argB.value, - _1: { - ctor: '::', - _0: argC.value, - _1: { - ctor: '::', - _0: argD.value, - _1: { - ctor: '::', - _0: argE.value, - _1: { - ctor: '::', - _0: argF.value, - _1: {ctor: '[]'} - } - } - } - } - } - })); - }); -var _rtfeldman$elm_css$Css$boxShadow6 = _rtfeldman$elm_css$Css$prop6('box-shadow'); -var _rtfeldman$elm_css$Css$prop5 = F6( - function (key, argA, argB, argC, argD, argE) { - return A2( - _rtfeldman$elm_css$Css$property, - key, - A2( - _elm_lang$core$String$join, - ' ', - { - ctor: '::', - _0: argA.value, - _1: { - ctor: '::', - _0: argB.value, - _1: { - ctor: '::', - _0: argC.value, - _1: { - ctor: '::', - _0: argD.value, - _1: { - ctor: '::', - _0: argE.value, - _1: {ctor: '[]'} - } - } - } - } - })); - }); -var _rtfeldman$elm_css$Css$boxShadow5 = _rtfeldman$elm_css$Css$prop5('box-shadow'); -var _rtfeldman$elm_css$Css$prop4 = F5( - function (key, argA, argB, argC, argD) { - return A2( - _rtfeldman$elm_css$Css$property, - key, - A2( - _elm_lang$core$String$join, - ' ', - { - ctor: '::', - _0: argA.value, - _1: { - ctor: '::', - _0: argB.value, - _1: { - ctor: '::', - _0: argC.value, - _1: { - ctor: '::', - _0: argD.value, - _1: {ctor: '[]'} - } - } - } - })); - }); -var _rtfeldman$elm_css$Css$textShadow4 = _rtfeldman$elm_css$Css$prop4('text-shadow'); -var _rtfeldman$elm_css$Css$boxShadow4 = _rtfeldman$elm_css$Css$prop4('box-shadow'); -var _rtfeldman$elm_css$Css$padding4 = _rtfeldman$elm_css$Css$prop4('padding'); -var _rtfeldman$elm_css$Css$margin4 = _rtfeldman$elm_css$Css$prop4('margin'); -var _rtfeldman$elm_css$Css$borderImageOutset4 = _rtfeldman$elm_css$Css$prop4('border-image-outset'); -var _rtfeldman$elm_css$Css$borderImageWidth4 = _rtfeldman$elm_css$Css$prop4('border-image-width'); -var _rtfeldman$elm_css$Css$borderWidth4 = _rtfeldman$elm_css$Css$prop4('border-width'); -var _rtfeldman$elm_css$Css$borderRadius4 = _rtfeldman$elm_css$Css$prop4('border-radius'); -var _rtfeldman$elm_css$Css$prop3 = F4( - function (key, argA, argB, argC) { - return A2( - _rtfeldman$elm_css$Css$property, - key, - A2( - _elm_lang$core$String$join, - ' ', - { - ctor: '::', - _0: argA.value, - _1: { - ctor: '::', - _0: argB.value, - _1: { - ctor: '::', - _0: argC.value, - _1: {ctor: '[]'} - } - } - })); - }); -var _rtfeldman$elm_css$Css$textShadow3 = _rtfeldman$elm_css$Css$prop3('text-shadow'); -var _rtfeldman$elm_css$Css$boxShadow3 = _rtfeldman$elm_css$Css$prop3('box-shadow'); -var _rtfeldman$elm_css$Css$textIndent3 = _rtfeldman$elm_css$Css$prop3('text-indent'); -var _rtfeldman$elm_css$Css$padding3 = _rtfeldman$elm_css$Css$prop3('padding'); -var _rtfeldman$elm_css$Css$margin3 = _rtfeldman$elm_css$Css$prop3('margin'); -var _rtfeldman$elm_css$Css$border3 = _rtfeldman$elm_css$Css$prop3('border'); -var _rtfeldman$elm_css$Css$borderTop3 = _rtfeldman$elm_css$Css$prop3('border-top'); -var _rtfeldman$elm_css$Css$borderBottom3 = _rtfeldman$elm_css$Css$prop3('border-bottom'); -var _rtfeldman$elm_css$Css$borderLeft3 = _rtfeldman$elm_css$Css$prop3('border-left'); -var _rtfeldman$elm_css$Css$borderRight3 = _rtfeldman$elm_css$Css$prop3('border-right'); -var _rtfeldman$elm_css$Css$borderBlockStart3 = _rtfeldman$elm_css$Css$prop3('border-block-start'); -var _rtfeldman$elm_css$Css$borderBlockEnd3 = _rtfeldman$elm_css$Css$prop3('border-block-end'); -var _rtfeldman$elm_css$Css$borderInlineStart3 = _rtfeldman$elm_css$Css$prop3('border-block-start'); -var _rtfeldman$elm_css$Css$borderInlineEnd3 = _rtfeldman$elm_css$Css$prop3('border-block-end'); -var _rtfeldman$elm_css$Css$borderImageOutset3 = _rtfeldman$elm_css$Css$prop3('border-image-outset'); -var _rtfeldman$elm_css$Css$borderImageWidth3 = _rtfeldman$elm_css$Css$prop3('border-image-width'); -var _rtfeldman$elm_css$Css$borderWidth3 = _rtfeldman$elm_css$Css$prop3('border-width'); -var _rtfeldman$elm_css$Css$borderRadius3 = _rtfeldman$elm_css$Css$prop3('border-radius'); -var _rtfeldman$elm_css$Css$outline3 = _rtfeldman$elm_css$Css$prop3('outline'); -var _rtfeldman$elm_css$Css$fontVariant3 = _rtfeldman$elm_css$Css$prop3('font-variant'); -var _rtfeldman$elm_css$Css$fontVariantNumeric3 = _rtfeldman$elm_css$Css$prop3('font-variant-numeric'); -var _rtfeldman$elm_css$Css$textDecoration3 = _rtfeldman$elm_css$Css$prop3('text-decoration'); -var _rtfeldman$elm_css$Css$textDecorations3 = function (_p6) { - return A2( - _rtfeldman$elm_css$Css$prop3, - 'text-decoration', - _rtfeldman$elm_css$Css$valuesOrNone(_p6)); -}; -var _rtfeldman$elm_css$Css$prop2 = F3( - function (key, argA, argB) { - return A2( - _rtfeldman$elm_css$Css$property, - key, - A2( - _elm_lang$core$String$join, - ' ', - { - ctor: '::', - _0: argA.value, - _1: { - ctor: '::', - _0: argB.value, - _1: {ctor: '[]'} - } - })); - }); -var _rtfeldman$elm_css$Css$textShadow2 = _rtfeldman$elm_css$Css$prop2('text-shadow'); -var _rtfeldman$elm_css$Css$boxShadow2 = _rtfeldman$elm_css$Css$prop2('box-shadow'); -var _rtfeldman$elm_css$Css$textIndent2 = _rtfeldman$elm_css$Css$prop2('text-indent'); -var _rtfeldman$elm_css$Css$padding2 = _rtfeldman$elm_css$Css$prop2('padding'); -var _rtfeldman$elm_css$Css$margin2 = _rtfeldman$elm_css$Css$prop2('margin'); -var _rtfeldman$elm_css$Css$border2 = _rtfeldman$elm_css$Css$prop2('border'); -var _rtfeldman$elm_css$Css$borderTop2 = _rtfeldman$elm_css$Css$prop2('border-top'); -var _rtfeldman$elm_css$Css$borderBottom2 = _rtfeldman$elm_css$Css$prop2('border-bottom'); -var _rtfeldman$elm_css$Css$borderLeft2 = _rtfeldman$elm_css$Css$prop2('border-left'); -var _rtfeldman$elm_css$Css$borderRight2 = _rtfeldman$elm_css$Css$prop2('border-right'); -var _rtfeldman$elm_css$Css$borderBlockStart2 = _rtfeldman$elm_css$Css$prop2('border-block-start'); -var _rtfeldman$elm_css$Css$borderBlockEnd2 = _rtfeldman$elm_css$Css$prop2('border-block-end'); -var _rtfeldman$elm_css$Css$borderInlineStart2 = _rtfeldman$elm_css$Css$prop2('border-block-start'); -var _rtfeldman$elm_css$Css$borderInlineEnd2 = _rtfeldman$elm_css$Css$prop2('border-block-end'); -var _rtfeldman$elm_css$Css$borderImageOutset2 = _rtfeldman$elm_css$Css$prop2('border-image-outset'); -var _rtfeldman$elm_css$Css$borderImageWidth2 = _rtfeldman$elm_css$Css$prop2('border-image-width'); -var _rtfeldman$elm_css$Css$borderWidth2 = _rtfeldman$elm_css$Css$prop2('border-width'); -var _rtfeldman$elm_css$Css$borderTopWidth2 = _rtfeldman$elm_css$Css$prop2('border-top-width'); -var _rtfeldman$elm_css$Css$borderBottomLeftRadius2 = _rtfeldman$elm_css$Css$prop2('border-bottom-left-radius'); -var _rtfeldman$elm_css$Css$borderBottomRightRadius2 = _rtfeldman$elm_css$Css$prop2('border-bottom-right-radius'); -var _rtfeldman$elm_css$Css$borderTopLeftRadius2 = _rtfeldman$elm_css$Css$prop2('border-top-left-radius'); -var _rtfeldman$elm_css$Css$borderTopRightRadius2 = _rtfeldman$elm_css$Css$prop2('border-top-right-radius'); -var _rtfeldman$elm_css$Css$borderRadius2 = _rtfeldman$elm_css$Css$prop2('border-radius'); -var _rtfeldman$elm_css$Css$borderSpacing2 = _rtfeldman$elm_css$Css$prop2('border-spacing'); -var _rtfeldman$elm_css$Css$backgroundRepeat2 = _rtfeldman$elm_css$Css$prop2('background-repeat'); -var _rtfeldman$elm_css$Css$backgroundPosition2 = _rtfeldman$elm_css$Css$prop2('background-position'); -var _rtfeldman$elm_css$Css$backgroundSize2 = _rtfeldman$elm_css$Css$prop2('background-size'); -var _rtfeldman$elm_css$Css$fontVariant2 = _rtfeldman$elm_css$Css$prop2('font-variant'); -var _rtfeldman$elm_css$Css$fontVariantNumeric2 = _rtfeldman$elm_css$Css$prop2('font-variant-numeric'); -var _rtfeldman$elm_css$Css$textDecoration2 = _rtfeldman$elm_css$Css$prop2('text-decoration'); -var _rtfeldman$elm_css$Css$textDecorations2 = function (_p7) { - return A2( - _rtfeldman$elm_css$Css$prop2, - 'text-decoration', - _rtfeldman$elm_css$Css$valuesOrNone(_p7)); -}; -var _rtfeldman$elm_css$Css$prop1 = F2( - function (key, arg) { - return A2(_rtfeldman$elm_css$Css$property, key, arg.value); - }); -var _rtfeldman$elm_css$Css$textRendering = _rtfeldman$elm_css$Css$prop1('text-rendering'); -var _rtfeldman$elm_css$Css$textOrientation = _rtfeldman$elm_css$Css$prop1('text-orientation'); -var _rtfeldman$elm_css$Css$textOverflow = _rtfeldman$elm_css$Css$prop1('text-overflow'); -var _rtfeldman$elm_css$Css$textShadow = _rtfeldman$elm_css$Css$prop1('text-shadow'); -var _rtfeldman$elm_css$Css$boxShadow = _rtfeldman$elm_css$Css$prop1('box-shadow'); -var _rtfeldman$elm_css$Css$textIndent = _rtfeldman$elm_css$Css$prop1('text-indent'); -var _rtfeldman$elm_css$Css$textTransform = _rtfeldman$elm_css$Css$prop1('text-transform'); -var _rtfeldman$elm_css$Css$display = _rtfeldman$elm_css$Css$prop1('display'); -var _rtfeldman$elm_css$Css$opacity = _rtfeldman$elm_css$Css$prop1('opacity'); -var _rtfeldman$elm_css$Css$width = _rtfeldman$elm_css$Css$prop1('width'); -var _rtfeldman$elm_css$Css$maxWidth = _rtfeldman$elm_css$Css$prop1('max-width'); -var _rtfeldman$elm_css$Css$minWidth = _rtfeldman$elm_css$Css$prop1('min-width'); -var _rtfeldman$elm_css$Css$height = _rtfeldman$elm_css$Css$prop1('height'); -var _rtfeldman$elm_css$Css$minHeight = _rtfeldman$elm_css$Css$prop1('min-height'); -var _rtfeldman$elm_css$Css$maxHeight = _rtfeldman$elm_css$Css$prop1('max-height'); -var _rtfeldman$elm_css$Css$padding = _rtfeldman$elm_css$Css$prop1('padding'); -var _rtfeldman$elm_css$Css$paddingBlockStart = _rtfeldman$elm_css$Css$prop1('padding-block-start'); -var _rtfeldman$elm_css$Css$paddingBlockEnd = _rtfeldman$elm_css$Css$prop1('padding-block-end'); -var _rtfeldman$elm_css$Css$paddingInlineStart = _rtfeldman$elm_css$Css$prop1('padding-inline-start'); -var _rtfeldman$elm_css$Css$paddingInlineEnd = _rtfeldman$elm_css$Css$prop1('padding-inline-end'); -var _rtfeldman$elm_css$Css$paddingTop = _rtfeldman$elm_css$Css$prop1('padding-top'); -var _rtfeldman$elm_css$Css$paddingBottom = _rtfeldman$elm_css$Css$prop1('padding-bottom'); -var _rtfeldman$elm_css$Css$paddingRight = _rtfeldman$elm_css$Css$prop1('padding-right'); -var _rtfeldman$elm_css$Css$paddingLeft = _rtfeldman$elm_css$Css$prop1('padding-left'); -var _rtfeldman$elm_css$Css$margin = _rtfeldman$elm_css$Css$prop1('margin'); -var _rtfeldman$elm_css$Css$marginTop = _rtfeldman$elm_css$Css$prop1('margin-top'); -var _rtfeldman$elm_css$Css$marginBottom = _rtfeldman$elm_css$Css$prop1('margin-bottom'); -var _rtfeldman$elm_css$Css$marginRight = _rtfeldman$elm_css$Css$prop1('margin-right'); -var _rtfeldman$elm_css$Css$marginLeft = _rtfeldman$elm_css$Css$prop1('margin-left'); -var _rtfeldman$elm_css$Css$marginBlockStart = _rtfeldman$elm_css$Css$prop1('margin-block-start'); -var _rtfeldman$elm_css$Css$marginBlockEnd = _rtfeldman$elm_css$Css$prop1('margin-block-end'); -var _rtfeldman$elm_css$Css$marginInlineStart = _rtfeldman$elm_css$Css$prop1('margin-inline-start'); -var _rtfeldman$elm_css$Css$marginInlineEnd = _rtfeldman$elm_css$Css$prop1('margin-inline-end'); -var _rtfeldman$elm_css$Css$top = _rtfeldman$elm_css$Css$prop1('top'); -var _rtfeldman$elm_css$Css$bottom = _rtfeldman$elm_css$Css$prop1('bottom'); -var _rtfeldman$elm_css$Css$left = _rtfeldman$elm_css$Css$prop1('left'); -var _rtfeldman$elm_css$Css$right = _rtfeldman$elm_css$Css$prop1('right'); -var _rtfeldman$elm_css$Css$border = _rtfeldman$elm_css$Css$prop1('border'); -var _rtfeldman$elm_css$Css$borderTop = _rtfeldman$elm_css$Css$prop1('border-top'); -var _rtfeldman$elm_css$Css$borderBottom = _rtfeldman$elm_css$Css$prop1('border-bottom'); -var _rtfeldman$elm_css$Css$borderLeft = _rtfeldman$elm_css$Css$prop1('border-left'); -var _rtfeldman$elm_css$Css$borderRight = _rtfeldman$elm_css$Css$prop1('border-right'); -var _rtfeldman$elm_css$Css$borderBlockStart = _rtfeldman$elm_css$Css$prop1('border-block-start'); -var _rtfeldman$elm_css$Css$borderBlockEnd = _rtfeldman$elm_css$Css$prop1('border-block-end'); -var _rtfeldman$elm_css$Css$borderInlineStart = _rtfeldman$elm_css$Css$prop1('border-block-start'); -var _rtfeldman$elm_css$Css$borderInlineEnd = _rtfeldman$elm_css$Css$prop1('border-block-end'); -var _rtfeldman$elm_css$Css$borderImageOutset = _rtfeldman$elm_css$Css$prop1('border-image-outset'); -var _rtfeldman$elm_css$Css$borderImageWidth = _rtfeldman$elm_css$Css$prop1('border-image-width'); -var _rtfeldman$elm_css$Css$borderBlockEndStyle = _rtfeldman$elm_css$Css$prop1('border-block-end-style'); -var _rtfeldman$elm_css$Css$borderBlockStartStyle = _rtfeldman$elm_css$Css$prop1('border-block-start-style'); -var _rtfeldman$elm_css$Css$borderInlineEndStyle = _rtfeldman$elm_css$Css$prop1('border-inline-end-style'); -var _rtfeldman$elm_css$Css$borderBottomStyle = _rtfeldman$elm_css$Css$prop1('border-bottom-style'); -var _rtfeldman$elm_css$Css$borderInlineStartStyle = _rtfeldman$elm_css$Css$prop1('border-inline-start-style'); -var _rtfeldman$elm_css$Css$borderLeftStyle = _rtfeldman$elm_css$Css$prop1('border-left-style'); -var _rtfeldman$elm_css$Css$borderRightStyle = _rtfeldman$elm_css$Css$prop1('border-right-style'); -var _rtfeldman$elm_css$Css$borderTopStyle = _rtfeldman$elm_css$Css$prop1('border-top-style'); -var _rtfeldman$elm_css$Css$borderStyle = _rtfeldman$elm_css$Css$prop1('border-style'); -var _rtfeldman$elm_css$Css$borderCollapse = _rtfeldman$elm_css$Css$prop1('border-collapse'); -var _rtfeldman$elm_css$Css$borderWidth = _rtfeldman$elm_css$Css$prop1('border-width'); -var _rtfeldman$elm_css$Css$borderBottomWidth = _rtfeldman$elm_css$Css$prop1('border-bottom-width'); -var _rtfeldman$elm_css$Css$borderInlineEndWidth = _rtfeldman$elm_css$Css$prop1('border-inline-end-width'); -var _rtfeldman$elm_css$Css$borderLeftWidth = _rtfeldman$elm_css$Css$prop1('border-left-width'); -var _rtfeldman$elm_css$Css$borderRightWidth = _rtfeldman$elm_css$Css$prop1('border-right-width'); -var _rtfeldman$elm_css$Css$borderTopWidth = _rtfeldman$elm_css$Css$prop1('border-top-width'); -var _rtfeldman$elm_css$Css$borderBottomLeftRadius = _rtfeldman$elm_css$Css$prop1('border-bottom-left-radius'); -var _rtfeldman$elm_css$Css$borderBottomRightRadius = _rtfeldman$elm_css$Css$prop1('border-bottom-right-radius'); -var _rtfeldman$elm_css$Css$borderTopLeftRadius = _rtfeldman$elm_css$Css$prop1('border-top-left-radius'); -var _rtfeldman$elm_css$Css$borderTopRightRadius = _rtfeldman$elm_css$Css$prop1('border-top-right-radius'); -var _rtfeldman$elm_css$Css$borderRadius = _rtfeldman$elm_css$Css$prop1('border-radius'); -var _rtfeldman$elm_css$Css$borderSpacing = _rtfeldman$elm_css$Css$prop1('border-spacing'); -var _rtfeldman$elm_css$Css$outline = _rtfeldman$elm_css$Css$prop1('outline'); -var _rtfeldman$elm_css$Css$outlineWidth = _rtfeldman$elm_css$Css$prop1('outline-width'); -var _rtfeldman$elm_css$Css$outlineStyle = _rtfeldman$elm_css$Css$prop1('outline-style'); -var _rtfeldman$elm_css$Css$outlineOffset = _rtfeldman$elm_css$Css$prop1('outline-offset'); -var _rtfeldman$elm_css$Css$resize = _rtfeldman$elm_css$Css$prop1('resize'); -var _rtfeldman$elm_css$Css$fill = _rtfeldman$elm_css$Css$prop1('fill'); -var _rtfeldman$elm_css$Css$visibility = _rtfeldman$elm_css$Css$prop1('visibility'); -var _rtfeldman$elm_css$Css$overflow = _rtfeldman$elm_css$Css$prop1('overflow'); -var _rtfeldman$elm_css$Css$overflowX = _rtfeldman$elm_css$Css$prop1('overflow-x'); -var _rtfeldman$elm_css$Css$overflowY = _rtfeldman$elm_css$Css$prop1('overflow-y'); -var _rtfeldman$elm_css$Css$overflowWrap = _rtfeldman$elm_css$Css$prop1('overflow-wrap'); -var _rtfeldman$elm_css$Css$whiteSpace = _rtfeldman$elm_css$Css$prop1('white-space'); -var _rtfeldman$elm_css$Css$backgroundRepeat = _rtfeldman$elm_css$Css$prop1('background-repeat'); -var _rtfeldman$elm_css$Css$backgroundAttachment = _rtfeldman$elm_css$Css$prop1('background-attachment'); -var _rtfeldman$elm_css$Css$backgroundClip = _rtfeldman$elm_css$Css$prop1('background-clip'); -var _rtfeldman$elm_css$Css$backgroundOrigin = _rtfeldman$elm_css$Css$prop1('background-origin'); -var _rtfeldman$elm_css$Css$backgroundImage = _rtfeldman$elm_css$Css$prop1('background-image'); -var _rtfeldman$elm_css$Css$backgroundSize = _rtfeldman$elm_css$Css$prop1('background-size'); -var _rtfeldman$elm_css$Css$lineHeight = _rtfeldman$elm_css$Css$prop1('line-height'); -var _rtfeldman$elm_css$Css$letterSpacing = _rtfeldman$elm_css$Css$prop1('letter-spacing'); -var _rtfeldman$elm_css$Css$fontFamily = _rtfeldman$elm_css$Css$prop1('font-family'); -var _rtfeldman$elm_css$Css$fontFamilies = function (_p8) { - return A2( - _rtfeldman$elm_css$Css$prop1, - 'font-family', - _rtfeldman$elm_css$Css$stringsToValue(_p8)); -}; -var _rtfeldman$elm_css$Css$fontSize = _rtfeldman$elm_css$Css$prop1('font-size'); -var _rtfeldman$elm_css$Css$fontStyle = _rtfeldman$elm_css$Css$prop1('font-style'); -var _rtfeldman$elm_css$Css$fontVariant = _rtfeldman$elm_css$Css$prop1('font-variant'); -var _rtfeldman$elm_css$Css$fontVariantLigatures = _rtfeldman$elm_css$Css$prop1('font-variant-ligatures'); -var _rtfeldman$elm_css$Css$fontVariantCaps = _rtfeldman$elm_css$Css$prop1('font-variant-caps'); -var _rtfeldman$elm_css$Css$fontVariantNumeric = _rtfeldman$elm_css$Css$prop1('font-variant-numeric'); -var _rtfeldman$elm_css$Css$fontVariantNumerics = function (_p9) { - return A2( - _rtfeldman$elm_css$Css$prop1, - 'font-variant-numeric', - _rtfeldman$elm_css$Css$valuesOrNone(_p9)); -}; -var _rtfeldman$elm_css$Css$cursor = _rtfeldman$elm_css$Css$prop1('cursor'); -var _rtfeldman$elm_css$Css$textDecoration = _rtfeldman$elm_css$Css$prop1('text-decoration'); -var _rtfeldman$elm_css$Css$textDecorations = function (_p10) { - return A2( - _rtfeldman$elm_css$Css$prop1, - 'text-decoration', - _rtfeldman$elm_css$Css$valuesOrNone(_p10)); -}; -var _rtfeldman$elm_css$Css$textDecorationLine = _rtfeldman$elm_css$Css$prop1('text-decoration-line'); -var _rtfeldman$elm_css$Css$textDecorationLines = function (_p11) { - return A2( - _rtfeldman$elm_css$Css$prop1, - 'text-decoration-line', - _rtfeldman$elm_css$Css$valuesOrNone(_p11)); -}; -var _rtfeldman$elm_css$Css$textDecorationStyle = _rtfeldman$elm_css$Css$prop1('text-decoration-style'); -var _rtfeldman$elm_css$Css$zIndex = _rtfeldman$elm_css$Css$prop1('z-index'); -var _rtfeldman$elm_css$Css$touchAction = _rtfeldman$elm_css$Css$prop1('touch-action'); -var _rtfeldman$elm_css$Css$tableLayout = _rtfeldman$elm_css$Css$prop1('table-layout'); -var _rtfeldman$elm_css$Css$position = _rtfeldman$elm_css$Css$prop1('position'); -var _rtfeldman$elm_css$Css$textBottom = _rtfeldman$elm_css$Css$prop1('text-bottom'); -var _rtfeldman$elm_css$Css$textTop = _rtfeldman$elm_css$Css$prop1('text-top'); -var _rtfeldman$elm_css$Css$super = _rtfeldman$elm_css$Css$prop1('super'); -var _rtfeldman$elm_css$Css$sub = _rtfeldman$elm_css$Css$prop1('sub'); -var _rtfeldman$elm_css$Css$baseline = _rtfeldman$elm_css$Css$prop1('baseline'); -var _rtfeldman$elm_css$Css$middle = _rtfeldman$elm_css$Css$prop1('middle'); -var _rtfeldman$elm_css$Css$noWrap = {value: 'nowrap', whiteSpace: _rtfeldman$elm_css$Css_Structure$Compatible, flexWrap: _rtfeldman$elm_css$Css_Structure$Compatible, flexDirectionOrWrap: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$auto = {value: 'auto', cursor: _rtfeldman$elm_css$Css_Structure$Compatible, flexBasis: _rtfeldman$elm_css$Css_Structure$Compatible, overflow: _rtfeldman$elm_css$Css_Structure$Compatible, textRendering: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrAuto: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrNumberOrAutoOrNoneOrContent: _rtfeldman$elm_css$Css_Structure$Compatible, alignItemsOrAuto: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrAutoOrCoverOrContain: _rtfeldman$elm_css$Css_Structure$Compatible, justifyContentOrAuto: _rtfeldman$elm_css$Css_Structure$Compatible, intOrAuto: _rtfeldman$elm_css$Css_Structure$Compatible, touchAction: _rtfeldman$elm_css$Css_Structure$Compatible, tableLayout: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$none = {value: 'none', cursor: _rtfeldman$elm_css$Css_Structure$Compatible, none: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrNone: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrNoneOrMinMaxDimension: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrNumberOrAutoOrNoneOrContent: _rtfeldman$elm_css$Css_Structure$Compatible, textDecorationLine: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible, display: _rtfeldman$elm_css$Css_Structure$Compatible, outline: _rtfeldman$elm_css$Css_Structure$Compatible, resize: _rtfeldman$elm_css$Css_Structure$Compatible, transform: _rtfeldman$elm_css$Css_Structure$Compatible, borderStyle: _rtfeldman$elm_css$Css_Structure$Compatible, backgroundImage: _rtfeldman$elm_css$Css_Structure$Compatible, textTransform: _rtfeldman$elm_css$Css_Structure$Compatible, touchAction: _rtfeldman$elm_css$Css_Structure$Compatible, updateFrequency: _rtfeldman$elm_css$Css_Structure$Compatible, blockAxisOverflow: _rtfeldman$elm_css$Css_Structure$Compatible, inlineAxisOverflow: _rtfeldman$elm_css$Css_Structure$Compatible, pointerDevice: _rtfeldman$elm_css$Css_Structure$Compatible, hoverCapability: _rtfeldman$elm_css$Css_Structure$Compatible, scriptingSupport: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$inlineListItem = {value: 'inline-list-item', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$listItem = {value: 'list-item', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$tableFooterGroup = {value: 'table-footer-group', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$tableHeaderGroup = {value: 'table-header-group', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$tableColumnGroup = {value: 'table-column-group', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$tableRowGroup = {value: 'table-row-group', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$tableCaption = {value: 'table-caption', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$tableColumn = {value: 'table-column', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$tableCell = {value: 'table-cell', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$tableRow = {value: 'table-row', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$inlineTable = {value: 'inline-table', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$table = {value: 'table', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$inline = {value: 'inline', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$inlineFlex = {value: 'inline-flex', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$inlineBlock = {value: 'inline-block', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$block = {value: 'block', display: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$toTopLeft = {value: 'to top left', angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$toLeft = {value: 'to left', angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$toBottomLeft = {value: 'to bottom left', angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$toBottom = {value: 'to bottom', angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$toBottomRight = {value: 'to bottom right', angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$toRight = {value: 'to right', angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$toTopRight = {value: 'to top right', angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$toTop = {value: 'to top', angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$stop2 = F2( - function (c, len) { - return { - ctor: '_Tuple2', - _0: c, - _1: _elm_lang$core$Maybe$Just(len) - }; - }); -var _rtfeldman$elm_css$Css$stop = function (c) { - return {ctor: '_Tuple2', _0: c, _1: _elm_lang$core$Maybe$Nothing}; -}; -var _rtfeldman$elm_css$Css$collectStops = _elm_lang$core$List$map( - function (_p12) { - var _p13 = _p12; - return A2( - _elm_lang$core$String$append, - _p13._0.value, - A2( - _elm_lang$core$Maybe$withDefault, - '', - A2( - _elm_lang$core$Maybe$map, - function (_p14) { - return A2( - _elm_lang$core$String$cons, - _elm_lang$core$Native_Utils.chr(' '), - function (_) { - return _.value; - }(_p14)); - }, - _p13._1))); - }); -var _rtfeldman$elm_css$Css$local = {value: 'local', backgroundAttachment: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$noRepeat = {value: 'no-repeat', backgroundRepeat: _rtfeldman$elm_css$Css_Structure$Compatible, backgroundRepeatShorthand: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$round = {value: 'round', backgroundRepeat: _rtfeldman$elm_css$Css_Structure$Compatible, backgroundRepeatShorthand: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$space = {value: 'space', backgroundRepeat: _rtfeldman$elm_css$Css_Structure$Compatible, backgroundRepeatShorthand: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$repeat = {value: 'repeat', backgroundRepeat: _rtfeldman$elm_css$Css_Structure$Compatible, backgroundRepeatShorthand: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$repeatY = {value: 'repeat-y', backgroundRepeatShorthand: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$repeatX = {value: 'repeat-x', backgroundRepeatShorthand: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$lineThrough = {value: 'line-through', textDecorationLine: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$overline = {value: 'overline', textDecorationLine: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$underline = {value: 'underline', textDecorationLine: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$row = {value: 'row', flexDirection: _rtfeldman$elm_css$Css_Structure$Compatible, flexDirectionOrWrap: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$rowReverse = _elm_lang$core$Native_Utils.update( - _rtfeldman$elm_css$Css$row, - {value: 'row-reverse'}); -var _rtfeldman$elm_css$Css$column = _elm_lang$core$Native_Utils.update( - _rtfeldman$elm_css$Css$row, - {value: 'column'}); -var _rtfeldman$elm_css$Css$columnReverse = _elm_lang$core$Native_Utils.update( - _rtfeldman$elm_css$Css$row, - {value: 'column-reverse'}); -var _rtfeldman$elm_css$Css$stretch = _rtfeldman$elm_css$Css$prop1('stretch'); -var _rtfeldman$elm_css$Css$spaceBetween = _rtfeldman$elm_css$Css$prop1('space-between'); -var _rtfeldman$elm_css$Css$spaceAround = _rtfeldman$elm_css$Css$prop1('space-around'); -var _rtfeldman$elm_css$Css$flexEnd = _rtfeldman$elm_css$Css$prop1('flex-end'); -var _rtfeldman$elm_css$Css$flexStart = _rtfeldman$elm_css$Css$prop1('flex-start'); -var _rtfeldman$elm_css$Css$wrap = {value: 'wrap', flexWrap: _rtfeldman$elm_css$Css_Structure$Compatible, flexDirectionOrWrap: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$wrapReverse = _elm_lang$core$Native_Utils.update( - _rtfeldman$elm_css$Css$wrap, - {value: 'wrap-reverse'}); -var _rtfeldman$elm_css$Css$content = {value: 'content', flexBasis: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrNumberOrAutoOrNoneOrContent: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$order = _rtfeldman$elm_css$Css$prop1('order'); -var _rtfeldman$elm_css$Css$flexFlow2 = _rtfeldman$elm_css$Css$prop2('flex-flow'); -var _rtfeldman$elm_css$Css$flexFlow1 = _rtfeldman$elm_css$Css$prop1('flex-flow'); -var _rtfeldman$elm_css$Css$flexDirection = _rtfeldman$elm_css$Css$prop1('flex-direction'); -var _rtfeldman$elm_css$Css$flexWrap = _rtfeldman$elm_css$Css$prop1('flex-wrap'); -var _rtfeldman$elm_css$Css$flexShrink = _rtfeldman$elm_css$Css$prop1('flex-shrink'); -var _rtfeldman$elm_css$Css$flexGrow = _rtfeldman$elm_css$Css$prop1('flex-grow'); -var _rtfeldman$elm_css$Css$flexBasis = _rtfeldman$elm_css$Css$prop1('flex-basis'); -var _rtfeldman$elm_css$Css$flex3 = _rtfeldman$elm_css$Css$prop3('flex'); -var _rtfeldman$elm_css$Css$flex2 = _rtfeldman$elm_css$Css$prop2('flex'); -var _rtfeldman$elm_css$Css$flex = _rtfeldman$elm_css$Css$prop1('flex'); -var _rtfeldman$elm_css$Css$listStyle3 = _rtfeldman$elm_css$Css$prop3('list-style'); -var _rtfeldman$elm_css$Css$listStyle2 = _rtfeldman$elm_css$Css$prop2('list-style'); -var _rtfeldman$elm_css$Css$listStyle = _rtfeldman$elm_css$Css$prop1('list-style'); -var _rtfeldman$elm_css$Css$thai = {value: 'thai', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$telugu = {value: 'telugu', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$oriya = {value: 'oriya', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$myanmar = {value: 'myanmar', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$malayalam = {value: 'malayalam', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$lao = {value: 'lao', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$khmer = {value: 'khmer', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$kannada = {value: 'kannada', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$gurmukhi = {value: 'gurmukhi', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$gujarati = {value: 'gujarati', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$georgian = {value: 'georgian', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$devanagari = {value: 'devanagari', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$cjkHeavenlyStem = {value: 'cjk-heavenly-stem', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$cjkEarthlyBranch = {value: 'cjk-earthly-branch', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$bengali = {value: 'bengali', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$armenian = {value: 'armenian', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$arabicIndic = {value: 'arabic-indic', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$upperLatin = {value: 'upper-latin', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$lowerLatin = {value: 'lower-latin', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$upperAlpha = {value: 'upper-alpha', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$lowerAlpha = {value: 'lower-alpha', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$upperGreek = {value: 'upper-greek', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$lowerGreek = {value: 'lower-greek', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$upperRoman = {value: 'upper-roman', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$lowerRoman = {value: 'lower-roman', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$decimalLeadingZero = {value: 'decimal-leading-zero', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$decimal = {value: 'decimal', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$square = {value: 'square', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$circle = {value: 'circle', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$disc = {value: 'disc', listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$listStyleType = _rtfeldman$elm_css$Css$prop1('list-style-type'); -var _rtfeldman$elm_css$Css$outside = {value: 'outside', listStylePosition: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$inside = {value: 'inside', listStylePosition: _rtfeldman$elm_css$Css_Structure$Compatible, listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$listStylePosition = _rtfeldman$elm_css$Css$prop1('list-style-position'); -var _rtfeldman$elm_css$Css$transformStyle = _rtfeldman$elm_css$Css$prop1('transform-style'); -var _rtfeldman$elm_css$Css$flat = {value: 'flat', transformStyle: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$preserve3d = {value: 'preserve-3d', transformStyle: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$boxSizing = _rtfeldman$elm_css$Css$prop1('box-sizing'); -var _rtfeldman$elm_css$Css$transformBox = _rtfeldman$elm_css$Css$prop1('transform-box'); -var _rtfeldman$elm_css$Css$viewBox = {value: 'view-box', transformBox: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$borderBox = {value: 'border-box', boxSizing: _rtfeldman$elm_css$Css_Structure$Compatible, backgroundClip: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$contentBox = {value: 'content-box', boxSizing: _rtfeldman$elm_css$Css_Structure$Compatible, backgroundClip: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$fillBox = {value: 'fill-box', transformBox: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$transforms = function (_p15) { - return A2( - _rtfeldman$elm_css$Css$prop1, - 'transform', - _rtfeldman$elm_css$Css$valuesOrNone(_p15)); -}; -var _rtfeldman$elm_css$Css$transform = function (only) { - return _rtfeldman$elm_css$Css$transforms( - { - ctor: '::', - _0: only, - _1: {ctor: '[]'} - }); -}; -var _rtfeldman$elm_css$Css$angleConverter = F2( - function (suffix, num) { - return { - value: A2( - _elm_lang$core$Basics_ops['++'], - _rtfeldman$elm_css$Css$numberToString(num), - suffix), - angle: _rtfeldman$elm_css$Css_Structure$Compatible, - angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible - }; - }); -var _rtfeldman$elm_css$Css$deg = _rtfeldman$elm_css$Css$angleConverter('deg'); -var _rtfeldman$elm_css$Css$grad = _rtfeldman$elm_css$Css$angleConverter('grad'); -var _rtfeldman$elm_css$Css$rad = _rtfeldman$elm_css$Css$angleConverter('rad'); -var _rtfeldman$elm_css$Css$turn = _rtfeldman$elm_css$Css$angleConverter('turn'); -var _rtfeldman$elm_css$Css$lengthConverter = F3( - function (units, unitLabel, numericValue) { - return { - value: A2( - _elm_lang$core$Basics_ops['++'], - _rtfeldman$elm_css$Css$numberToString(numericValue), - unitLabel), - numericValue: numericValue, - units: units, - unitLabel: unitLabel, - length: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrAuto: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrNumber: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrNone: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrMinMaxDimension: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrNoneOrMinMaxDimension: _rtfeldman$elm_css$Css_Structure$Compatible, - textIndent: _rtfeldman$elm_css$Css_Structure$Compatible, - flexBasis: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrNumberOrAutoOrNoneOrContent: _rtfeldman$elm_css$Css_Structure$Compatible, - fontSize: _rtfeldman$elm_css$Css_Structure$Compatible, - absoluteLength: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrAutoOrCoverOrContain: _rtfeldman$elm_css$Css_Structure$Compatible, - calc: _rtfeldman$elm_css$Css_Structure$Compatible - }; - }); -var _rtfeldman$elm_css$Css$true = _rtfeldman$elm_css$Css$prop1('true'); -var _rtfeldman$elm_css$Css$matchParent = _rtfeldman$elm_css$Css$prop1('match-parent'); -var _rtfeldman$elm_css$Css$end = _rtfeldman$elm_css$Css$prop1('end'); -var _rtfeldman$elm_css$Css$start = _rtfeldman$elm_css$Css$prop1('start'); -var _rtfeldman$elm_css$Css$justifyAll = _rtfeldman$elm_css$Css$prop1('justify-all'); -var _rtfeldman$elm_css$Css$justify = _rtfeldman$elm_css$Css$prop1('justify'); -var _rtfeldman$elm_css$Css$center = _rtfeldman$elm_css$Css$prop1('center'); -var _rtfeldman$elm_css$Css$collapse = {value: 'collapse', borderCollapse: _rtfeldman$elm_css$Css_Structure$Compatible, visibility: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$separate = {value: 'separate', borderCollapse: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$outset = {value: 'outset', borderStyle: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$inset = {value: 'inset', borderStyle: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$ridge = {value: 'ridge', borderStyle: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$groove = {value: 'groove', borderStyle: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$double = {value: 'double', borderStyle: _rtfeldman$elm_css$Css_Structure$Compatible, textDecorationStyle: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$solid = {value: 'solid', borderStyle: _rtfeldman$elm_css$Css_Structure$Compatible, textDecorationStyle: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$dashed = {value: 'dashed', borderStyle: _rtfeldman$elm_css$Css_Structure$Compatible, textDecorationStyle: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$dotted = {value: 'dotted', borderStyle: _rtfeldman$elm_css$Css_Structure$Compatible, textDecorationStyle: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$wavy = {value: 'wavy', textDecorationStyle: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$clip = {value: 'clip', textOverflow: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$ellipsis = {value: 'ellipsis', textOverflow: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$fullWidth = {value: 'full-width', textTransform: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$lowercase = {value: 'lowercase', textTransform: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$uppercase = {value: 'uppercase', textTransform: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$capitalize = {value: 'capitalize', textTransform: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$sideways = {value: 'sideways', textOrientation: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$upright = {value: 'upright', textOrientation: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$mixed = {value: 'mixed', textOrientation: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$eachLine = {value: 'each-line', textIndent: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$hanging = {value: 'hanging', textIndent: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$geometricPrecision = {value: 'geometricPrecision', textRendering: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$optimizeLegibility = {value: 'optimizeLegibility', textRendering: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$optimizeSpeed = {value: 'optimizeSpeed', textRendering: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$hslaToRgba = F6( - function (value, warnings, hue, saturation, lightness, hslAlpha) { - var _p16 = _elm_lang$core$Color$toRgb( - A4(_elm_lang$core$Color$hsla, hue, saturation, lightness, hslAlpha)); - var red = _p16.red; - var green = _p16.green; - var blue = _p16.blue; - var alpha = _p16.alpha; - return {value: value, color: _rtfeldman$elm_css$Css_Structure$Compatible, red: red, green: green, blue: blue, alpha: alpha, warnings: warnings}; - }); -var _rtfeldman$elm_css$Css$withPrecedingHash = function (str) { - return A2(_elm_lang$core$String$startsWith, '#', str) ? str : A2( - _elm_lang$core$String$cons, - _elm_lang$core$Native_Utils.chr('#'), - str); -}; -var _rtfeldman$elm_css$Css$erroneousHex = function (str) { - return { - value: _rtfeldman$elm_css$Css$withPrecedingHash(str), - color: _rtfeldman$elm_css$Css_Structure$Compatible, - red: 0, - green: 0, - blue: 0, - alpha: 1, - warnings: _elm_lang$core$List$singleton( - A2( - _elm_lang$core$String$join, - ' ', - { - ctor: '::', - _0: 'Hex color strings must contain exactly 3, 4, 6, or 8 hexadecimal digits, optionally preceded by \"#\".', - _1: { - ctor: '::', - _0: _elm_lang$core$Basics$toString(str), - _1: { - ctor: '::', - _0: 'is an invalid hex color string.', - _1: { - ctor: '::', - _0: 'Please see: https://drafts.csswg.org/css-color/#hex-notation', - _1: {ctor: '[]'} - } - } - } - })) - }; -}; -var _rtfeldman$elm_css$Css$validHex = F5( - function (str, _p20, _p19, _p18, _p17) { - var _p21 = _p20; - var _p22 = _p19; - var _p23 = _p18; - var _p24 = _p17; - var toResult = function (_p25) { - return _rtfeldman$hex$Hex$fromString( - _elm_lang$core$String$toLower( - _elm_lang$core$String$fromList(_p25))); - }; - var results = { - ctor: '_Tuple4', - _0: toResult( - { - ctor: '::', - _0: _p21._0, - _1: { - ctor: '::', - _0: _p21._1, - _1: {ctor: '[]'} - } - }), - _1: toResult( - { - ctor: '::', - _0: _p22._0, - _1: { - ctor: '::', - _0: _p22._1, - _1: {ctor: '[]'} - } - }), - _2: toResult( - { - ctor: '::', - _0: _p23._0, - _1: { - ctor: '::', - _0: _p23._1, - _1: {ctor: '[]'} - } - }), - _3: toResult( - { - ctor: '::', - _0: _p24._0, - _1: { - ctor: '::', - _0: _p24._1, - _1: {ctor: '[]'} - } - }) - }; - var _p26 = results; - if (((((_p26.ctor === '_Tuple4') && (_p26._0.ctor === 'Ok')) && (_p26._1.ctor === 'Ok')) && (_p26._2.ctor === 'Ok')) && (_p26._3.ctor === 'Ok')) { - return { - value: _rtfeldman$elm_css$Css$withPrecedingHash(str), - color: _rtfeldman$elm_css$Css_Structure$Compatible, - red: _p26._0._0, - green: _p26._1._0, - blue: _p26._2._0, - alpha: _elm_lang$core$Basics$toFloat(_p26._3._0) / 255, - warnings: {ctor: '[]'} - }; - } else { - return _rtfeldman$elm_css$Css$erroneousHex(str); - } - }); -var _rtfeldman$elm_css$Css$hex = function (str) { - var withoutHash = A2(_elm_lang$core$String$startsWith, '#', str) ? A2(_elm_lang$core$String$dropLeft, 1, str) : str; - var _p27 = _elm_lang$core$String$toList(withoutHash); - _v9_4: - do { - if (((_p27.ctor === '::') && (_p27._1.ctor === '::')) && (_p27._1._1.ctor === '::')) { - if (_p27._1._1._1.ctor === '[]') { - var _p30 = _p27._0; - var _p29 = _p27._1._0; - var _p28 = _p27._1._1._0; - return A5( - _rtfeldman$elm_css$Css$validHex, - str, - {ctor: '_Tuple2', _0: _p30, _1: _p30}, - {ctor: '_Tuple2', _0: _p29, _1: _p29}, - {ctor: '_Tuple2', _0: _p28, _1: _p28}, - { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.chr('f'), - _1: _elm_lang$core$Native_Utils.chr('f') - }); - } else { - if (_p27._1._1._1._1.ctor === '[]') { - var _p34 = _p27._0; - var _p33 = _p27._1._0; - var _p32 = _p27._1._1._0; - var _p31 = _p27._1._1._1._0; - return A5( - _rtfeldman$elm_css$Css$validHex, - str, - {ctor: '_Tuple2', _0: _p34, _1: _p34}, - {ctor: '_Tuple2', _0: _p33, _1: _p33}, - {ctor: '_Tuple2', _0: _p32, _1: _p32}, - {ctor: '_Tuple2', _0: _p31, _1: _p31}); - } else { - if (_p27._1._1._1._1._1.ctor === '::') { - if (_p27._1._1._1._1._1._1.ctor === '[]') { - return A5( - _rtfeldman$elm_css$Css$validHex, - str, - {ctor: '_Tuple2', _0: _p27._0, _1: _p27._1._0}, - {ctor: '_Tuple2', _0: _p27._1._1._0, _1: _p27._1._1._1._0}, - {ctor: '_Tuple2', _0: _p27._1._1._1._1._0, _1: _p27._1._1._1._1._1._0}, - { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.chr('f'), - _1: _elm_lang$core$Native_Utils.chr('f') - }); - } else { - if ((_p27._1._1._1._1._1._1._1.ctor === '::') && (_p27._1._1._1._1._1._1._1._1.ctor === '[]')) { - return A5( - _rtfeldman$elm_css$Css$validHex, - str, - {ctor: '_Tuple2', _0: _p27._0, _1: _p27._1._0}, - {ctor: '_Tuple2', _0: _p27._1._1._0, _1: _p27._1._1._1._0}, - {ctor: '_Tuple2', _0: _p27._1._1._1._1._0, _1: _p27._1._1._1._1._1._0}, - {ctor: '_Tuple2', _0: _p27._1._1._1._1._1._1._0, _1: _p27._1._1._1._1._1._1._1._0}); - } else { - break _v9_4; - } - } - } else { - break _v9_4; - } - } - } - } else { - break _v9_4; - } - } while(false); - return _rtfeldman$elm_css$Css$erroneousHex(str); -}; -var _rtfeldman$elm_css$Css$hidden = {value: 'hidden', overflow: _rtfeldman$elm_css$Css_Structure$Compatible, borderStyle: _rtfeldman$elm_css$Css_Structure$Compatible, visibility: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$contain = {value: 'contain', lengthOrAutoOrCoverOrContain: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$cover = {value: 'cover', lengthOrAutoOrCoverOrContain: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$url = function (urlValue) { - return { - value: A2( - _elm_lang$core$Basics_ops['++'], - 'url(', - A2(_elm_lang$core$Basics_ops['++'], urlValue, ')')), - backgroundImage: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$paddingBox = {value: 'padding-box', backgroundClip: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$luminosity = _rtfeldman$elm_css$Css$prop1('luminosity'); -var _rtfeldman$elm_css$Css$saturation = _rtfeldman$elm_css$Css$prop1('saturation'); -var _rtfeldman$elm_css$Css$hue = _rtfeldman$elm_css$Css$prop1('hue'); -var _rtfeldman$elm_css$Css$exclusion = _rtfeldman$elm_css$Css$prop1('exclusion'); -var _rtfeldman$elm_css$Css$difference = _rtfeldman$elm_css$Css$prop1('difference'); -var _rtfeldman$elm_css$Css$softLight = _rtfeldman$elm_css$Css$prop1('soft-light'); -var _rtfeldman$elm_css$Css$hardLight = _rtfeldman$elm_css$Css$prop1('hard-light'); -var _rtfeldman$elm_css$Css$colorBurn = _rtfeldman$elm_css$Css$prop1('color-burn'); -var _rtfeldman$elm_css$Css$colorDodge = _rtfeldman$elm_css$Css$prop1('color-dodge'); -var _rtfeldman$elm_css$Css$lighten = _rtfeldman$elm_css$Css$prop1('lighten'); -var _rtfeldman$elm_css$Css$darken = _rtfeldman$elm_css$Css$prop1('darken'); -var _rtfeldman$elm_css$Css$overlay = _rtfeldman$elm_css$Css$prop1('overlay'); -var _rtfeldman$elm_css$Css$screenBlendMode = _rtfeldman$elm_css$Css$prop1('screen'); -var _rtfeldman$elm_css$Css$multiply = _rtfeldman$elm_css$Css$prop1('multiply'); -var _rtfeldman$elm_css$Css$vertical = {value: 'vertical', resize: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$horizontal = {value: 'horizontal', resize: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$both = {value: 'both', resize: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$breakWord = {value: 'break-word', overflowWrap: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$scroll = {value: 'scroll', scroll: _rtfeldman$elm_css$Css_Structure$Compatible, overflow: _rtfeldman$elm_css$Css_Structure$Compatible, backgroundAttachment: _rtfeldman$elm_css$Css_Structure$Compatible, blockAxisOverflow: _rtfeldman$elm_css$Css_Structure$Compatible, inlineAxisOverflow: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$visible = {value: 'visible', overflow: _rtfeldman$elm_css$Css_Structure$Compatible, visibility: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$currentColor = { - value: 'currentColor', - color: _rtfeldman$elm_css$Css_Structure$Compatible, - warnings: {ctor: '[]'} -}; -var _rtfeldman$elm_css$Css$transparent = { - value: 'transparent', - color: _rtfeldman$elm_css$Css_Structure$Compatible, - warnings: {ctor: '[]'} -}; -var _rtfeldman$elm_css$Css$important = _rtfeldman$elm_css$Css_Preprocess$mapLastProperty( - function (property) { - return _elm_lang$core$Native_Utils.update( - property, - {important: true}); - }); -var _rtfeldman$elm_css$Css$all = _rtfeldman$elm_css$Css$prop1('all'); -var _rtfeldman$elm_css$Css$combineLengths = F3( - function (operation, first, second) { - var numericValue = A2(operation, first.numericValue, second.numericValue); - var value = A2( - _elm_lang$core$String$join, - '', - A2( - _elm_lang$core$List$filter, - function (_p35) { - return !_elm_lang$core$String$isEmpty(_p35); - }, - { - ctor: '::', - _0: _elm_lang$core$Basics$toString(numericValue), - _1: { - ctor: '::', - _0: first.unitLabel, - _1: {ctor: '[]'} - } - })); - return _elm_lang$core$Native_Utils.update( - first, - {value: value, numericValue: numericValue}); - }); -var _rtfeldman$elm_css$Css_ops = _rtfeldman$elm_css$Css_ops || {}; -_rtfeldman$elm_css$Css_ops['|*|'] = _rtfeldman$elm_css$Css$combineLengths( - F2( - function (x, y) { - return x * y; - })); -var _rtfeldman$elm_css$Css_ops = _rtfeldman$elm_css$Css_ops || {}; -_rtfeldman$elm_css$Css_ops['|/|'] = _rtfeldman$elm_css$Css$combineLengths( - F2( - function (x, y) { - return x / y; - })); -var _rtfeldman$elm_css$Css_ops = _rtfeldman$elm_css$Css_ops || {}; -_rtfeldman$elm_css$Css_ops['|-|'] = _rtfeldman$elm_css$Css$combineLengths( - F2( - function (x, y) { - return x - y; - })); -var _rtfeldman$elm_css$Css_ops = _rtfeldman$elm_css$Css_ops || {}; -_rtfeldman$elm_css$Css_ops['|+|'] = _rtfeldman$elm_css$Css$combineLengths( - F2( - function (x, y) { - return x + y; - })); -var _rtfeldman$elm_css$Css$calcExpressionToString = function (expression) { - var _p36 = expression; - if (_p36.ctor === 'Addition') { - return '+'; - } else { - return '-'; - } -}; -var _rtfeldman$elm_css$Css$colorValueForOverloadedProperty = _rtfeldman$elm_css$Css$transparent; -var _rtfeldman$elm_css$Css$getOverloadedProperty = F3( - function (functionName, desiredKey, style) { - getOverloadedProperty: - while (true) { - var _p37 = style; - switch (_p37.ctor) { - case 'AppendProperty': - return A2(_rtfeldman$elm_css$Css$property, desiredKey, _p37._0.key); - case 'ExtendSelector': - return A3( - _rtfeldman$elm_css$Css$propertyWithWarnings, - { - ctor: '::', - _0: A2( - _elm_lang$core$Basics_ops['++'], - 'Cannot apply ', - A2( - _elm_lang$core$Basics_ops['++'], - functionName, - A2( - _elm_lang$core$Basics_ops['++'], - ' with inapplicable Style for selector ', - _elm_lang$core$Basics$toString(_p37._0)))), - _1: {ctor: '[]'} - }, - desiredKey, - ''); - case 'NestSnippet': - return A3( - _rtfeldman$elm_css$Css$propertyWithWarnings, - { - ctor: '::', - _0: A2( - _elm_lang$core$Basics_ops['++'], - 'Cannot apply ', - A2( - _elm_lang$core$Basics_ops['++'], - functionName, - A2( - _elm_lang$core$Basics_ops['++'], - ' with inapplicable Style for combinator ', - _elm_lang$core$Basics$toString(_p37._0)))), - _1: {ctor: '[]'} - }, - desiredKey, - ''); - case 'WithPseudoElement': - return A3( - _rtfeldman$elm_css$Css$propertyWithWarnings, - { - ctor: '::', - _0: A2( - _elm_lang$core$Basics_ops['++'], - 'Cannot apply ', - A2( - _elm_lang$core$Basics_ops['++'], - functionName, - A2( - _elm_lang$core$Basics_ops['++'], - ' with inapplicable Style for pseudo-element setter ', - _elm_lang$core$Basics$toString(_p37._0)))), - _1: {ctor: '[]'} - }, - desiredKey, - ''); - case 'WithMedia': - return A3( - _rtfeldman$elm_css$Css$propertyWithWarnings, - { - ctor: '::', - _0: A2( - _elm_lang$core$Basics_ops['++'], - 'Cannot apply ', - A2( - _elm_lang$core$Basics_ops['++'], - functionName, - A2( - _elm_lang$core$Basics_ops['++'], - ' with inapplicable Style for media query ', - _elm_lang$core$Basics$toString(_p37._0)))), - _1: {ctor: '[]'} - }, - desiredKey, - ''); - default: - if (_p37._0.ctor === '[]') { - return A3( - _rtfeldman$elm_css$Css$propertyWithWarnings, - { - ctor: '::', - _0: A2( - _elm_lang$core$Basics_ops['++'], - 'Cannot apply ', - A2(_elm_lang$core$Basics_ops['++'], functionName, ' with empty Style. ')), - _1: {ctor: '[]'} - }, - desiredKey, - ''); - } else { - if (_p37._0._1.ctor === '[]') { - var _v12 = functionName, - _v13 = desiredKey, - _v14 = _p37._0._0; - functionName = _v12; - desiredKey = _v13; - style = _v14; - continue getOverloadedProperty; - } else { - var _v15 = functionName, - _v16 = desiredKey, - _v17 = _rtfeldman$elm_css$Css_Preprocess$ApplyStyles(_p37._0._1); - functionName = _v15; - desiredKey = _v16; - style = _v17; - continue getOverloadedProperty; - } - } - } - } - }); -var _rtfeldman$elm_css$Css$backgroundBlendMode = function (fn) { - return A3( - _rtfeldman$elm_css$Css$getOverloadedProperty, - 'backgroundBlendMode', - 'background-blend-mode', - fn(_rtfeldman$elm_css$Css$colorValueForOverloadedProperty)); -}; -var _rtfeldman$elm_css$Css$cssFunction = F2( - function (funcName, args) { - return A2( - _elm_lang$core$Basics_ops['++'], - funcName, - A2( - _elm_lang$core$Basics_ops['++'], - '(', - A2( - _elm_lang$core$Basics_ops['++'], - A2(_elm_lang$core$String$join, ', ', args), - ')'))); - }); -var _rtfeldman$elm_css$Css$calc = F3( - function (first, expression, second) { - var grab = function (l) { - return A2(_elm_lang$core$String$startsWith, 'calc(', l.value) ? A2(_elm_lang$core$String$dropLeft, 4, l.value) : l.value; - }; - var calcs = A2( - _elm_lang$core$String$join, - ' ', - { - ctor: '::', - _0: grab(first), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$calcExpressionToString(expression), - _1: { - ctor: '::', - _0: grab(second), - _1: {ctor: '[]'} - } - } - }); - var value = A2( - _rtfeldman$elm_css$Css$cssFunction, - 'calc', - { - ctor: '::', - _0: calcs, - _1: {ctor: '[]'} - }); - return {value: value, length: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrAuto: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrNumber: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrNone: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrMinMaxDimension: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrNoneOrMinMaxDimension: _rtfeldman$elm_css$Css_Structure$Compatible, textIndent: _rtfeldman$elm_css$Css_Structure$Compatible, flexBasis: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrNumberOrAutoOrNoneOrContent: _rtfeldman$elm_css$Css_Structure$Compatible, fontSize: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrAutoOrCoverOrContain: _rtfeldman$elm_css$Css_Structure$Compatible, calc: _rtfeldman$elm_css$Css_Structure$Compatible}; - }); -var _rtfeldman$elm_css$Css$rgb = F3( - function (red, green, blue) { - var warnings = ((_elm_lang$core$Native_Utils.cmp(red, 0) < 0) || ((_elm_lang$core$Native_Utils.cmp(red, 255) > 0) || ((_elm_lang$core$Native_Utils.cmp(green, 0) < 0) || ((_elm_lang$core$Native_Utils.cmp(green, 255) > 0) || ((_elm_lang$core$Native_Utils.cmp(blue, 0) < 0) || (_elm_lang$core$Native_Utils.cmp(blue, 255) > 0)))))) ? { - ctor: '::', - _0: A2( - _elm_lang$core$Basics_ops['++'], - 'RGB color values must be between 0 and 255. rgb(', - A2( - _elm_lang$core$Basics_ops['++'], - _elm_lang$core$Basics$toString(red), - A2( - _elm_lang$core$Basics_ops['++'], - ', ', - A2( - _elm_lang$core$Basics_ops['++'], - _elm_lang$core$Basics$toString(green), - A2( - _elm_lang$core$Basics_ops['++'], - ', ', - A2( - _elm_lang$core$Basics_ops['++'], - _elm_lang$core$Basics$toString(blue), - ') is not valid.')))))), - _1: {ctor: '[]'} - } : {ctor: '[]'}; - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'rgb', - A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$Css$numberToString, - { - ctor: '::', - _0: red, - _1: { - ctor: '::', - _0: green, - _1: { - ctor: '::', - _0: blue, - _1: {ctor: '[]'} - } - } - })), - color: _rtfeldman$elm_css$Css_Structure$Compatible, - warnings: warnings, - red: red, - green: green, - blue: blue, - alpha: 1 - }; - }); -var _rtfeldman$elm_css$Css$rgba = F4( - function (red, green, blue, alpha) { - var warnings = ((_elm_lang$core$Native_Utils.cmp(red, 0) < 0) || ((_elm_lang$core$Native_Utils.cmp(red, 255) > 0) || ((_elm_lang$core$Native_Utils.cmp(green, 0) < 0) || ((_elm_lang$core$Native_Utils.cmp(green, 255) > 0) || ((_elm_lang$core$Native_Utils.cmp(blue, 0) < 0) || ((_elm_lang$core$Native_Utils.cmp(blue, 255) > 0) || ((_elm_lang$core$Native_Utils.cmp(alpha, 0) < 0) || (_elm_lang$core$Native_Utils.cmp(alpha, 1) > 0)))))))) ? { - ctor: '::', - _0: A2( - _elm_lang$core$Basics_ops['++'], - 'RGB color values must be between 0 and 255, and the alpha in RGBA must be between 0 and 1. rgba(', - A2( - _elm_lang$core$Basics_ops['++'], - _elm_lang$core$Basics$toString(red), - A2( - _elm_lang$core$Basics_ops['++'], - ', ', - A2( - _elm_lang$core$Basics_ops['++'], - _elm_lang$core$Basics$toString(green), - A2( - _elm_lang$core$Basics_ops['++'], - ', ', - A2( - _elm_lang$core$Basics_ops['++'], - _elm_lang$core$Basics$toString(blue), - A2( - _elm_lang$core$Basics_ops['++'], - ', ', - A2( - _elm_lang$core$Basics_ops['++'], - _elm_lang$core$Basics$toString(alpha), - ') is not valid.')))))))), - _1: {ctor: '[]'} - } : {ctor: '[]'}; - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'rgba', - A2( - _elm_lang$core$Basics_ops['++'], - A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$Css$numberToString, - { - ctor: '::', - _0: red, - _1: { - ctor: '::', - _0: green, - _1: { - ctor: '::', - _0: blue, - _1: {ctor: '[]'} - } - } - }), - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$numberToString(alpha), - _1: {ctor: '[]'} - })), - color: _rtfeldman$elm_css$Css_Structure$Compatible, - warnings: warnings, - red: red, - green: green, - blue: blue, - alpha: alpha - }; - }); -var _rtfeldman$elm_css$Css$hsl = F3( - function (hue, saturation, lightness) { - var valuesList = { - ctor: '::', - _0: _rtfeldman$elm_css$Css$numberToString(hue), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$numericalPercentageToString(saturation), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$numericalPercentageToString(lightness), - _1: {ctor: '[]'} - } - } - }; - var value = A2(_rtfeldman$elm_css$Css$cssFunction, 'hsl', valuesList); - var warnings = ((_elm_lang$core$Native_Utils.cmp(hue, 360) > 0) || ((_elm_lang$core$Native_Utils.cmp(hue, 0) < 0) || ((_elm_lang$core$Native_Utils.cmp(saturation, 1) > 0) || ((_elm_lang$core$Native_Utils.cmp(saturation, 0) < 0) || ((_elm_lang$core$Native_Utils.cmp(lightness, 1) > 0) || (_elm_lang$core$Native_Utils.cmp(lightness, 0) < 0)))))) ? { - ctor: '::', - _0: A2( - _elm_lang$core$Basics_ops['++'], - 'HSL color values must have an H value between 0 and 360 (as in degrees) and S and L values between 0 and 1. ', - A2(_elm_lang$core$Basics_ops['++'], value, ' is not valid.')), - _1: {ctor: '[]'} - } : {ctor: '[]'}; - return A6(_rtfeldman$elm_css$Css$hslaToRgba, value, warnings, hue, saturation, lightness, 1); - }); -var _rtfeldman$elm_css$Css$hsla = F4( - function (hue, saturation, lightness, alpha) { - var valuesList = { - ctor: '::', - _0: _rtfeldman$elm_css$Css$numberToString(hue), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$numericalPercentageToString(saturation), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$numericalPercentageToString(lightness), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$numberToString(alpha), - _1: {ctor: '[]'} - } - } - } - }; - var value = A2(_rtfeldman$elm_css$Css$cssFunction, 'hsla', valuesList); - var warnings = ((_elm_lang$core$Native_Utils.cmp(hue, 360) > 0) || ((_elm_lang$core$Native_Utils.cmp(hue, 0) < 0) || ((_elm_lang$core$Native_Utils.cmp(saturation, 1) > 0) || ((_elm_lang$core$Native_Utils.cmp(saturation, 0) < 0) || ((_elm_lang$core$Native_Utils.cmp(lightness, 1) > 0) || ((_elm_lang$core$Native_Utils.cmp(lightness, 0) < 0) || ((_elm_lang$core$Native_Utils.cmp(alpha, 1) > 0) || (_elm_lang$core$Native_Utils.cmp(alpha, 0) < 0)))))))) ? { - ctor: '::', - _0: A2( - _elm_lang$core$Basics_ops['++'], - 'HSLA color values must have an H value between 0 and 360 (as in degrees) and S, L, and A values between 0 and 1. ', - A2(_elm_lang$core$Basics_ops['++'], value, ' is not valid.')), - _1: {ctor: '[]'} - } : {ctor: '[]'}; - return A6(_rtfeldman$elm_css$Css$hslaToRgba, value, warnings, hue, saturation, lightness, alpha); - }); -var _rtfeldman$elm_css$Css$matrix = F6( - function (a, b, c, d, tx, ty) { - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'matrix', - A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$Css$numberToString, - { - ctor: '::', - _0: a, - _1: { - ctor: '::', - _0: b, - _1: { - ctor: '::', - _0: c, - _1: { - ctor: '::', - _0: d, - _1: { - ctor: '::', - _0: tx, - _1: { - ctor: '::', - _0: ty, - _1: {ctor: '[]'} - } - } - } - } - } - })), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; - }); -var _rtfeldman$elm_css$Css$matrix3d = function (a1) { - return function (a2) { - return function (a3) { - return function (a4) { - return function (b1) { - return function (b2) { - return function (b3) { - return function (b4) { - return function (c1) { - return function (c2) { - return function (c3) { - return function (c4) { - return function (d1) { - return function (d2) { - return function (d3) { - return function (d4) { - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'matrix3d', - A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$Css$numberToString, - { - ctor: '::', - _0: a1, - _1: { - ctor: '::', - _0: a2, - _1: { - ctor: '::', - _0: a3, - _1: { - ctor: '::', - _0: a4, - _1: { - ctor: '::', - _0: b1, - _1: { - ctor: '::', - _0: b2, - _1: { - ctor: '::', - _0: b3, - _1: { - ctor: '::', - _0: b4, - _1: { - ctor: '::', - _0: c1, - _1: { - ctor: '::', - _0: c2, - _1: { - ctor: '::', - _0: c3, - _1: { - ctor: '::', - _0: c4, - _1: { - ctor: '::', - _0: d1, - _1: { - ctor: '::', - _0: d2, - _1: { - ctor: '::', - _0: d3, - _1: { - ctor: '::', - _0: d4, - _1: {ctor: '[]'} - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - })), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; -}; -var _rtfeldman$elm_css$Css$perspective = function (l) { - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'perspective', - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$numberToString(l), - _1: {ctor: '[]'} - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$rotate = function (_p38) { - var _p39 = _p38; - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'rotate', - { - ctor: '::', - _0: _p39.value, - _1: {ctor: '[]'} - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$rotateX = function (_p40) { - var _p41 = _p40; - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'rotateX', - { - ctor: '::', - _0: _p41.value, - _1: {ctor: '[]'} - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$rotateY = function (_p42) { - var _p43 = _p42; - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'rotateY', - { - ctor: '::', - _0: _p43.value, - _1: {ctor: '[]'} - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$rotateZ = function (_p44) { - var _p45 = _p44; - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'rotateZ', - { - ctor: '::', - _0: _p45.value, - _1: {ctor: '[]'} - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$rotate3d = F4( - function (x, y, z, _p46) { - var _p47 = _p46; - var coordsAsStrings = A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$Css$numberToString, - { - ctor: '::', - _0: x, - _1: { - ctor: '::', - _0: y, - _1: { - ctor: '::', - _0: z, - _1: {ctor: '[]'} - } - } - }); - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'rotate3d', - A2( - _elm_lang$core$Basics_ops['++'], - coordsAsStrings, - { - ctor: '::', - _0: _p47.value, - _1: {ctor: '[]'} - })), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; - }); -var _rtfeldman$elm_css$Css$scale = function (x) { - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'scale', - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$numberToString(x), - _1: {ctor: '[]'} - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$scale2 = F2( - function (x, y) { - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'scale', - A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$Css$numberToString, - { - ctor: '::', - _0: x, - _1: { - ctor: '::', - _0: y, - _1: {ctor: '[]'} - } - })), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; - }); -var _rtfeldman$elm_css$Css$scaleX = function (x) { - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'scaleX', - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$numberToString(x), - _1: {ctor: '[]'} - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$scaleY = function (y) { - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'scaleY', - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$numberToString(y), - _1: {ctor: '[]'} - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$scale3d = F3( - function (x, y, z) { - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'scale3d', - A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$Css$numberToString, - { - ctor: '::', - _0: x, - _1: { - ctor: '::', - _0: y, - _1: { - ctor: '::', - _0: z, - _1: {ctor: '[]'} - } - } - })), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; - }); -var _rtfeldman$elm_css$Css$skew = function (_p48) { - var _p49 = _p48; - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'skew', - { - ctor: '::', - _0: _p49.value, - _1: {ctor: '[]'} - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$skew2 = F2( - function (ax, ay) { - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'skew', - { - ctor: '::', - _0: ax.value, - _1: { - ctor: '::', - _0: ay.value, - _1: {ctor: '[]'} - } - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; - }); -var _rtfeldman$elm_css$Css$skewX = function (_p50) { - var _p51 = _p50; - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'skewX', - { - ctor: '::', - _0: _p51.value, - _1: {ctor: '[]'} - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$skewY = function (_p52) { - var _p53 = _p52; - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'skewY', - { - ctor: '::', - _0: _p53.value, - _1: {ctor: '[]'} - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$translate = function (_p54) { - var _p55 = _p54; - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'translate', - { - ctor: '::', - _0: _p55.value, - _1: {ctor: '[]'} - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$translate2 = F2( - function (tx, ty) { - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'translate', - { - ctor: '::', - _0: tx.value, - _1: { - ctor: '::', - _0: ty.value, - _1: {ctor: '[]'} - } - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; - }); -var _rtfeldman$elm_css$Css$translateX = function (_p56) { - var _p57 = _p56; - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'translateX', - { - ctor: '::', - _0: _p57.value, - _1: {ctor: '[]'} - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$translateY = function (_p58) { - var _p59 = _p58; - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'translateY', - { - ctor: '::', - _0: _p59.value, - _1: {ctor: '[]'} - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$translateZ = function (_p60) { - var _p61 = _p60; - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'translateZ', - { - ctor: '::', - _0: _p61.value, - _1: {ctor: '[]'} - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; -}; -var _rtfeldman$elm_css$Css$translate3d = F3( - function (tx, ty, tz) { - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'translate3d', - { - ctor: '::', - _0: tx.value, - _1: { - ctor: '::', - _0: ty.value, - _1: { - ctor: '::', - _0: tz.value, - _1: {ctor: '[]'} - } - } - }), - transform: _rtfeldman$elm_css$Css_Structure$Compatible - }; - }); -var _rtfeldman$elm_css$Css$linearGradient = F3( - function (stop1, stop2, stops) { - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'linear-gradient', - _rtfeldman$elm_css$Css$collectStops( - A2( - _elm_lang$core$Basics_ops['++'], - { - ctor: '::', - _0: stop1, - _1: { - ctor: '::', - _0: stop2, - _1: {ctor: '[]'} - } - }, - stops))), - backgroundImage: _rtfeldman$elm_css$Css_Structure$Compatible, - listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible - }; - }); -var _rtfeldman$elm_css$Css$linearGradient2 = F4( - function (dir, stop1, stop2, stops) { - return { - value: A2( - _rtfeldman$elm_css$Css$cssFunction, - 'linear-gradient', - A2( - F2( - function (x, y) { - return {ctor: '::', _0: x, _1: y}; - }), - dir.value, - _rtfeldman$elm_css$Css$collectStops( - A2( - _elm_lang$core$Basics_ops['++'], - { - ctor: '::', - _0: stop1, - _1: { - ctor: '::', - _0: stop2, - _1: {ctor: '[]'} - } - }, - stops)))), - backgroundImage: _rtfeldman$elm_css$Css_Structure$Compatible, - listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible - }; - }); -var _rtfeldman$elm_css$Css$CalculatedLength = function (a) { - return function (b) { - return function (c) { - return function (d) { - return function (e) { - return function (f) { - return function (g) { - return function (h) { - return function (i) { - return function (j) { - return function (k) { - return function (l) { - return function (m) { - return {value: a, length: b, lengthOrAuto: c, lengthOrNumber: d, lengthOrNone: e, lengthOrMinMaxDimension: f, lengthOrNoneOrMinMaxDimension: g, textIndent: h, flexBasis: i, lengthOrNumberOrAutoOrNoneOrContent: j, fontSize: k, lengthOrAutoOrCoverOrContain: l, calc: m}; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; -}; -var _rtfeldman$elm_css$Css$ExplicitLength = function (a) { - return function (b) { - return function (c) { - return function (d) { - return function (e) { - return function (f) { - return function (g) { - return function (h) { - return function (i) { - return function (j) { - return function (k) { - return function (l) { - return function (m) { - return function (n) { - return function (o) { - return function (p) { - return function (q) { - return {value: a, numericValue: b, units: c, unitLabel: d, length: e, lengthOrAuto: f, lengthOrNumber: g, lengthOrNone: h, lengthOrMinMaxDimension: i, lengthOrNoneOrMinMaxDimension: j, textIndent: k, flexBasis: l, absoluteLength: m, lengthOrNumberOrAutoOrNoneOrContent: n, fontSize: o, lengthOrAutoOrCoverOrContain: p, calc: q}; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; -}; -var _rtfeldman$elm_css$Css$NonMixable = {}; -var _rtfeldman$elm_css$Css$BasicProperty = function (a) { - return function (b) { - return function (c) { - return function (d) { - return function (e) { - return function (f) { - return function (g) { - return function (h) { - return function (i) { - return function (j) { - return function (k) { - return function (l) { - return function (m) { - return function (n) { - return function (o) { - return function (p) { - return function (q) { - return function (r) { - return function (s) { - return function (t) { - return function (u) { - return function (v) { - return function (w) { - return function (x) { - return function (y) { - return function (z) { - return function (_1) { - return function (_2) { - return function (_3) { - return function (_4) { - return function (_5) { - return function (_6) { - return function (_7) { - return function (_8) { - return function (_9) { - return function (_10) { - return function (_11) { - return function (_12) { - return function (_13) { - return function (_14) { - return function (_15) { - return function (_16) { - return function (_17) { - return function (_18) { - return function (_19) { - return function (_20) { - return function (_21) { - return function (_22) { - return function (_23) { - return function (_24) { - return function (_25) { - return function (_26) { - return function (_27) { - return {value: a, all: b, alignItems: c, borderStyle: d, boxSizing: e, color: f, cursor: g, display: h, flexBasis: i, flexWrap: j, flexDirection: k, flexDirectionOrWrap: l, justifyContent: m, none: n, number: o, outline: p, overflow: q, visibility: r, textDecorationLine: s, textRendering: t, textIndent: u, textDecorationStyle: v, textTransform: w, length: x, lengthOrAuto: y, lengthOrNone: z, lengthOrNumber: _1, lengthOrMinMaxDimension: _2, lengthOrNoneOrMinMaxDimension: _3, lengthOrNumberOrAutoOrNoneOrContent: _4, listStyleType: _5, listStylePosition: _6, listStyleTypeOrPositionOrImage: _7, fontFamily: _8, fontSize: _9, fontStyle: _10, fontWeight: _11, fontVariant: _12, units: _13, numericValue: _14, unitLabel: _15, warnings: _16, backgroundRepeat: _17, backgroundRepeatShorthand: _18, backgroundAttachment: _19, backgroundBlendMode: _20, backgroundOrigin: _21, backgroundImage: _22, lengthOrAutoOrCoverOrContain: _23, intOrAuto: _24, touchAction: _25, whiteSpace: _26, tableLayout: _27}; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; -}; -var _rtfeldman$elm_css$Css$Normal = F7( - function (a, b, c, d, e, f, g) { - return {value: a, warnings: b, fontStyle: c, fontWeight: d, featureTagValue: e, overflowWrap: f, whiteSpace: g}; - }); -var _rtfeldman$elm_css$Css$Subtraction = {ctor: 'Subtraction'}; -var _rtfeldman$elm_css$Css$minus = _rtfeldman$elm_css$Css$Subtraction; -var _rtfeldman$elm_css$Css$Addition = {ctor: 'Addition'}; -var _rtfeldman$elm_css$Css$plus = _rtfeldman$elm_css$Css$Addition; -var _rtfeldman$elm_css$Css$PercentageUnits = {ctor: 'PercentageUnits'}; -var _rtfeldman$elm_css$Css$pct = A2(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$PercentageUnits, '%'); -var _rtfeldman$elm_css$Css$EmUnits = {ctor: 'EmUnits'}; -var _rtfeldman$elm_css$Css$em = A2(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$EmUnits, 'em'); -var _rtfeldman$elm_css$Css$ExUnits = {ctor: 'ExUnits'}; -var _rtfeldman$elm_css$Css$ex = A2(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$ExUnits, 'ex'); -var _rtfeldman$elm_css$Css$ChUnits = {ctor: 'ChUnits'}; -var _rtfeldman$elm_css$Css$ch = A2(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$ChUnits, 'ch'); -var _rtfeldman$elm_css$Css$RemUnits = {ctor: 'RemUnits'}; -var _rtfeldman$elm_css$Css$rem = A2(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$RemUnits, 'rem'); -var _rtfeldman$elm_css$Css$VhUnits = {ctor: 'VhUnits'}; -var _rtfeldman$elm_css$Css$vh = A2(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$VhUnits, 'vh'); -var _rtfeldman$elm_css$Css$VwUnits = {ctor: 'VwUnits'}; -var _rtfeldman$elm_css$Css$vw = A2(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$VwUnits, 'vw'); -var _rtfeldman$elm_css$Css$VMinUnits = {ctor: 'VMinUnits'}; -var _rtfeldman$elm_css$Css$vmin = A2(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$VMinUnits, 'vmin'); -var _rtfeldman$elm_css$Css$VMaxUnits = {ctor: 'VMaxUnits'}; -var _rtfeldman$elm_css$Css$vmax = A2(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$VMaxUnits, 'vmax'); -var _rtfeldman$elm_css$Css$PxUnits = {ctor: 'PxUnits'}; -var _rtfeldman$elm_css$Css$px = A2(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$PxUnits, 'px'); -var _rtfeldman$elm_css$Css$MMUnits = {ctor: 'MMUnits'}; -var _rtfeldman$elm_css$Css$mm = A2(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$MMUnits, 'mm'); -var _rtfeldman$elm_css$Css$CMUnits = {ctor: 'CMUnits'}; -var _rtfeldman$elm_css$Css$cm = A2(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$CMUnits, 'cm'); -var _rtfeldman$elm_css$Css$InchUnits = {ctor: 'InchUnits'}; -var _rtfeldman$elm_css$Css$inches = A2(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$InchUnits, 'in'); -var _rtfeldman$elm_css$Css$PtUnits = {ctor: 'PtUnits'}; -var _rtfeldman$elm_css$Css$pt = A2(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$PtUnits, 'pt'); -var _rtfeldman$elm_css$Css$PcUnits = {ctor: 'PcUnits'}; -var _rtfeldman$elm_css$Css$pc = A2(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$PcUnits, 'pc'); -var _rtfeldman$elm_css$Css$UnitlessInteger = {ctor: 'UnitlessInteger'}; -var _rtfeldman$elm_css$Css$zero = {value: '0', length: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrNumber: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrNone: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrAuto: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrMinMaxDimension: _rtfeldman$elm_css$Css_Structure$Compatible, lengthOrNoneOrMinMaxDimension: _rtfeldman$elm_css$Css_Structure$Compatible, number: _rtfeldman$elm_css$Css_Structure$Compatible, outline: _rtfeldman$elm_css$Css_Structure$Compatible, units: _rtfeldman$elm_css$Css$UnitlessInteger, unitLabel: '', numericValue: 0, lengthOrAutoOrCoverOrContain: _rtfeldman$elm_css$Css_Structure$Compatible}; -var _rtfeldman$elm_css$Css$int = function (val) { - return { - value: _rtfeldman$elm_css$Css$numberToString(val), - lengthOrNumber: _rtfeldman$elm_css$Css_Structure$Compatible, - number: _rtfeldman$elm_css$Css_Structure$Compatible, - fontWeight: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrNumberOrAutoOrNoneOrContent: _rtfeldman$elm_css$Css_Structure$Compatible, - intOrAuto: _rtfeldman$elm_css$Css_Structure$Compatible, - numericValue: _elm_lang$core$Basics$toFloat(val), - unitLabel: '', - units: _rtfeldman$elm_css$Css$UnitlessInteger - }; -}; -var _rtfeldman$elm_css$Css$UnitlessFloat = {ctor: 'UnitlessFloat'}; -var _rtfeldman$elm_css$Css$num = function (val) { - return { - value: _rtfeldman$elm_css$Css$numberToString(val), - lengthOrNumber: _rtfeldman$elm_css$Css_Structure$Compatible, - number: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrNumberOrAutoOrNoneOrContent: _rtfeldman$elm_css$Css_Structure$Compatible, - numericValue: val, - unitLabel: '', - units: _rtfeldman$elm_css$Css$UnitlessFloat - }; -}; -var _rtfeldman$elm_css$Css$IncompatibleUnits = {ctor: 'IncompatibleUnits'}; -var _rtfeldman$elm_css$Css$initial = { - value: 'initial', - overflow: _rtfeldman$elm_css$Css_Structure$Compatible, - visibility: _rtfeldman$elm_css$Css_Structure$Compatible, - none: _rtfeldman$elm_css$Css_Structure$Compatible, - number: _rtfeldman$elm_css$Css_Structure$Compatible, - textDecorationLine: _rtfeldman$elm_css$Css_Structure$Compatible, - textRendering: _rtfeldman$elm_css$Css_Structure$Compatible, - textIndent: _rtfeldman$elm_css$Css_Structure$Compatible, - textDecorationStyle: _rtfeldman$elm_css$Css_Structure$Compatible, - textTransform: _rtfeldman$elm_css$Css_Structure$Compatible, - borderStyle: _rtfeldman$elm_css$Css_Structure$Compatible, - boxSizing: _rtfeldman$elm_css$Css_Structure$Compatible, - color: _rtfeldman$elm_css$Css_Structure$Compatible, - cursor: _rtfeldman$elm_css$Css_Structure$Compatible, - display: _rtfeldman$elm_css$Css_Structure$Compatible, - all: _rtfeldman$elm_css$Css_Structure$Compatible, - alignItems: _rtfeldman$elm_css$Css_Structure$Compatible, - justifyContent: _rtfeldman$elm_css$Css_Structure$Compatible, - length: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrAuto: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrNone: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrNumber: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrMinMaxDimension: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrNoneOrMinMaxDimension: _rtfeldman$elm_css$Css_Structure$Compatible, - listStyleType: _rtfeldman$elm_css$Css_Structure$Compatible, - listStylePosition: _rtfeldman$elm_css$Css_Structure$Compatible, - listStyleTypeOrPositionOrImage: _rtfeldman$elm_css$Css_Structure$Compatible, - flexBasis: _rtfeldman$elm_css$Css_Structure$Compatible, - flexWrap: _rtfeldman$elm_css$Css_Structure$Compatible, - flexDirection: _rtfeldman$elm_css$Css_Structure$Compatible, - flexDirectionOrWrap: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrNumberOrAutoOrNoneOrContent: _rtfeldman$elm_css$Css_Structure$Compatible, - fontFamily: _rtfeldman$elm_css$Css_Structure$Compatible, - fontSize: _rtfeldman$elm_css$Css_Structure$Compatible, - fontStyle: _rtfeldman$elm_css$Css_Structure$Compatible, - fontWeight: _rtfeldman$elm_css$Css_Structure$Compatible, - fontVariant: _rtfeldman$elm_css$Css_Structure$Compatible, - outline: _rtfeldman$elm_css$Css_Structure$Compatible, - units: _rtfeldman$elm_css$Css$IncompatibleUnits, - numericValue: 0, - unitLabel: '', - warnings: {ctor: '[]'}, - backgroundRepeat: _rtfeldman$elm_css$Css_Structure$Compatible, - backgroundRepeatShorthand: _rtfeldman$elm_css$Css_Structure$Compatible, - backgroundAttachment: _rtfeldman$elm_css$Css_Structure$Compatible, - backgroundBlendMode: _rtfeldman$elm_css$Css_Structure$Compatible, - backgroundOrigin: _rtfeldman$elm_css$Css_Structure$Compatible, - backgroundImage: _rtfeldman$elm_css$Css_Structure$Compatible, - lengthOrAutoOrCoverOrContain: _rtfeldman$elm_css$Css_Structure$Compatible, - intOrAuto: _rtfeldman$elm_css$Css_Structure$Compatible, - touchAction: _rtfeldman$elm_css$Css_Structure$Compatible, - whiteSpace: _rtfeldman$elm_css$Css_Structure$Compatible, - tableLayout: _rtfeldman$elm_css$Css_Structure$Compatible -}; -var _rtfeldman$elm_css$Css$unset = _elm_lang$core$Native_Utils.update( - _rtfeldman$elm_css$Css$initial, - {value: 'unset'}); -var _rtfeldman$elm_css$Css$inherit = _elm_lang$core$Native_Utils.update( - _rtfeldman$elm_css$Css$initial, - {value: 'inherit'}); -var _rtfeldman$elm_css$Css$lengthForOverloadedProperty = A3(_rtfeldman$elm_css$Css$lengthConverter, _rtfeldman$elm_css$Css$IncompatibleUnits, '', 0); -var _rtfeldman$elm_css$Css$alignItems = function (fn) { - return A3( - _rtfeldman$elm_css$Css$getOverloadedProperty, - 'alignItems', - 'align-items', - fn(_rtfeldman$elm_css$Css$lengthForOverloadedProperty)); -}; -var _rtfeldman$elm_css$Css$alignSelf = function (fn) { - return A3( - _rtfeldman$elm_css$Css$getOverloadedProperty, - 'alignSelf', - 'align-self', - fn(_rtfeldman$elm_css$Css$lengthForOverloadedProperty)); -}; -var _rtfeldman$elm_css$Css$justifyContent = function (fn) { - return A3( - _rtfeldman$elm_css$Css$getOverloadedProperty, - 'justifyContent', - 'justify-content', - fn(_rtfeldman$elm_css$Css$lengthForOverloadedProperty)); -}; -var _rtfeldman$elm_css$Css$float = function (fn) { - return A3( - _rtfeldman$elm_css$Css$getOverloadedProperty, - 'float', - 'float', - fn(_rtfeldman$elm_css$Css$lengthForOverloadedProperty)); -}; -var _rtfeldman$elm_css$Css$textAlignLast = function (fn) { - return A3( - _rtfeldman$elm_css$Css$getOverloadedProperty, - 'textAlignLast', - 'text-align-last', - fn(_rtfeldman$elm_css$Css$lengthForOverloadedProperty)); -}; -var _rtfeldman$elm_css$Css$textAlign = function (fn) { - return A3( - _rtfeldman$elm_css$Css$getOverloadedProperty, - 'textAlign', - 'text-align', - fn(_rtfeldman$elm_css$Css$lengthForOverloadedProperty)); -}; -var _rtfeldman$elm_css$Css$verticalAlign = function (fn) { - return A3( - _rtfeldman$elm_css$Css$getOverloadedProperty, - 'verticalAlign', - 'vertical-align', - fn(_rtfeldman$elm_css$Css$lengthForOverloadedProperty)); -}; -var _rtfeldman$elm_css$Css$backgroundPosition = function (fn) { - return A3( - _rtfeldman$elm_css$Css$getOverloadedProperty, - 'backgroundPosition', - 'background-position', - fn(_rtfeldman$elm_css$Css$lengthForOverloadedProperty)); -}; -var _rtfeldman$elm_css$Css$Rtl = {ctor: 'Rtl'}; -var _rtfeldman$elm_css$Css$Ltr = {ctor: 'Ltr'}; -var _rtfeldman$elm_css$Css$IntentionallyUnsupportedPleaseSeeDocs = {ctor: 'IntentionallyUnsupportedPleaseSeeDocs'}; -var _rtfeldman$elm_css$Css$thin = _rtfeldman$elm_css$Css$IntentionallyUnsupportedPleaseSeeDocs; -var _rtfeldman$elm_css$Css$thick = _rtfeldman$elm_css$Css$IntentionallyUnsupportedPleaseSeeDocs; -var _rtfeldman$elm_css$Css$blink = _rtfeldman$elm_css$Css$IntentionallyUnsupportedPleaseSeeDocs; - -var _rtfeldman$elm_css$Css_Structure_Output$noIndent = ''; -var _rtfeldman$elm_css$Css_Structure_Output$spaceIndent = ' '; -var _rtfeldman$elm_css$Css_Structure_Output$indent = function (str) { - return A2(_elm_lang$core$Basics_ops['++'], _rtfeldman$elm_css$Css_Structure_Output$spaceIndent, str); -}; -var _rtfeldman$elm_css$Css_Structure_Output$prettyPrintProperty = function (_p0) { - var _p1 = _p0; - var suffix = _p1.important ? ' !important;' : ';'; - return A2( - _elm_lang$core$Basics_ops['++'], - _p1.key, - A2( - _elm_lang$core$Basics_ops['++'], - ': ', - A2(_elm_lang$core$Basics_ops['++'], _p1.value, suffix))); -}; -var _rtfeldman$elm_css$Css_Structure_Output$prettyPrintProperties = function (properties) { - return A2( - _elm_lang$core$String$join, - '\n', - A2( - _elm_lang$core$List$map, - function (_p2) { - return _rtfeldman$elm_css$Css_Structure_Output$indent( - _rtfeldman$elm_css$Css_Structure_Output$prettyPrintProperty(_p2)); - }, - properties)); -}; -var _rtfeldman$elm_css$Css_Structure_Output$combinatorToString = function (combinator) { - var _p3 = combinator; - switch (_p3.ctor) { - case 'AdjacentSibling': - return '+'; - case 'GeneralSibling': - return '~'; - case 'Child': - return '>'; - default: - return ''; - } -}; -var _rtfeldman$elm_css$Css_Structure_Output$pseudoElementToString = function (_p4) { - var _p5 = _p4; - return A2(_elm_lang$core$Basics_ops['++'], '::', _p5._0); -}; -var _rtfeldman$elm_css$Css_Structure_Output$repeatableSimpleSelectorToString = function (repeatableSimpleSelector) { - var _p6 = repeatableSimpleSelector; - switch (_p6.ctor) { - case 'ClassSelector': - return A2(_elm_lang$core$Basics_ops['++'], '.', _p6._0); - case 'IdSelector': - return A2(_elm_lang$core$Basics_ops['++'], '#', _p6._0); - default: - return A2(_elm_lang$core$Basics_ops['++'], ':', _p6._0); - } -}; -var _rtfeldman$elm_css$Css_Structure_Output$simpleSelectorSequenceToString = function (simpleSelectorSequence) { - var _p7 = simpleSelectorSequence; - switch (_p7.ctor) { - case 'TypeSelectorSequence': - return A2( - _elm_lang$core$String$join, - '', - { - ctor: '::', - _0: _p7._0._0, - _1: A2(_elm_lang$core$List$map, _rtfeldman$elm_css$Css_Structure_Output$repeatableSimpleSelectorToString, _p7._1) - }); - case 'UniversalSelectorSequence': - var _p8 = _p7._0; - return _elm_lang$core$List$isEmpty(_p8) ? '*' : A2( - _elm_lang$core$String$join, - '', - A2(_elm_lang$core$List$map, _rtfeldman$elm_css$Css_Structure_Output$repeatableSimpleSelectorToString, _p8)); - default: - return A2( - _elm_lang$core$String$join, - '', - { - ctor: '::', - _0: _p7._0, - _1: A2(_elm_lang$core$List$map, _rtfeldman$elm_css$Css_Structure_Output$repeatableSimpleSelectorToString, _p7._1) - }); - } -}; -var _rtfeldman$elm_css$Css_Structure_Output$selectorChainToString = function (_p9) { - var _p10 = _p9; - return A2( - _elm_lang$core$String$join, - ' ', - { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure_Output$combinatorToString(_p10._0), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure_Output$simpleSelectorSequenceToString(_p10._1), - _1: {ctor: '[]'} - } - }); -}; -var _rtfeldman$elm_css$Css_Structure_Output$selectorToString = function (_p11) { - var _p12 = _p11; - var pseudoElementsString = A2( - _elm_lang$core$String$join, - '', - { - ctor: '::', - _0: A2( - _elm_lang$core$Maybe$withDefault, - '', - A2(_elm_lang$core$Maybe$map, _rtfeldman$elm_css$Css_Structure_Output$pseudoElementToString, _p12._2)), - _1: {ctor: '[]'} - }); - var segments = A2( - _elm_lang$core$Basics_ops['++'], - { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure_Output$simpleSelectorSequenceToString(_p12._0), - _1: {ctor: '[]'} - }, - A2(_elm_lang$core$List$map, _rtfeldman$elm_css$Css_Structure_Output$selectorChainToString, _p12._1)); - return A3( - _elm_lang$core$Basics$flip, - F2( - function (x, y) { - return A2(_elm_lang$core$Basics_ops['++'], x, y); - }), - pseudoElementsString, - A2( - _elm_lang$core$String$join, - ' ', - A2( - _elm_lang$core$List$filter, - function (_p13) { - return !_elm_lang$core$String$isEmpty(_p13); - }, - segments))); -}; -var _rtfeldman$elm_css$Css_Structure_Output$mediaExpressionToString = function (expression) { - return A2( - _elm_lang$core$Basics_ops['++'], - '(', - A2( - _elm_lang$core$Basics_ops['++'], - expression.feature, - A2( - _elm_lang$core$Basics_ops['++'], - A2( - _elm_lang$core$Maybe$withDefault, - '', - A2( - _elm_lang$core$Maybe$map, - F2( - function (x, y) { - return A2(_elm_lang$core$Basics_ops['++'], x, y); - })(': '), - expression.value)), - ')'))); -}; -var _rtfeldman$elm_css$Css_Structure_Output$mediaTypeToString = function (mediaType) { - var _p14 = mediaType; - switch (_p14.ctor) { - case 'Print': - return 'print'; - case 'Screen': - return 'screen'; - default: - return 'speech'; - } -}; -var _rtfeldman$elm_css$Css_Structure_Output$mediaQueryToString = function (mediaQuery) { - var prefixWith = F3( - function (str, mediaType, expressions) { - return A2( - _elm_lang$core$Basics_ops['++'], - str, - A2( - _elm_lang$core$Basics_ops['++'], - ' ', - A2( - _elm_lang$core$String$join, - ' and ', - { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure_Output$mediaTypeToString(mediaType), - _1: A2(_elm_lang$core$List$map, _rtfeldman$elm_css$Css_Structure_Output$mediaExpressionToString, expressions) - }))); - }); - var _p15 = mediaQuery; - switch (_p15.ctor) { - case 'AllQuery': - return A2( - _elm_lang$core$String$join, - ' and ', - A2(_elm_lang$core$List$map, _rtfeldman$elm_css$Css_Structure_Output$mediaExpressionToString, _p15._0)); - case 'OnlyQuery': - return A3(prefixWith, 'only', _p15._0, _p15._1); - case 'NotQuery': - return A3(prefixWith, 'not', _p15._0, _p15._1); - default: - return _p15._0; - } -}; -var _rtfeldman$elm_css$Css_Structure_Output$prettyPrintStyleBlock = F2( - function (indentLevel, _p16) { - var _p17 = _p16; - var selectorStr = A2( - _elm_lang$core$String$join, - ', ', - A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$Css_Structure_Output$selectorToString, - {ctor: '::', _0: _p17._0, _1: _p17._1})); - return A2( - _elm_lang$core$String$join, - '', - { - ctor: '::', - _0: selectorStr, - _1: { - ctor: '::', - _0: ' {\n', - _1: { - ctor: '::', - _0: indentLevel, - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure_Output$prettyPrintProperties(_p17._2), - _1: { - ctor: '::', - _0: '\n', - _1: { - ctor: '::', - _0: indentLevel, - _1: { - ctor: '::', - _0: '}', - _1: {ctor: '[]'} - } - } - } - } - } - } - }); - }); -var _rtfeldman$elm_css$Css_Structure_Output$prettyPrintDeclaration = function (declaration) { - var _p18 = declaration; - switch (_p18.ctor) { - case 'StyleBlockDeclaration': - return A2(_rtfeldman$elm_css$Css_Structure_Output$prettyPrintStyleBlock, _rtfeldman$elm_css$Css_Structure_Output$noIndent, _p18._0); - case 'MediaRule': - var query = A2( - _elm_lang$core$String$join, - ',\n', - A2(_elm_lang$core$List$map, _rtfeldman$elm_css$Css_Structure_Output$mediaQueryToString, _p18._0)); - var blocks = A2( - _elm_lang$core$String$join, - '\n\n', - A2( - _elm_lang$core$List$map, - function (_p19) { - return _rtfeldman$elm_css$Css_Structure_Output$indent( - A2(_rtfeldman$elm_css$Css_Structure_Output$prettyPrintStyleBlock, _rtfeldman$elm_css$Css_Structure_Output$spaceIndent, _p19)); - }, - _p18._1)); - return A2( - _elm_lang$core$Basics_ops['++'], - '@media ', - A2( - _elm_lang$core$Basics_ops['++'], - query, - A2( - _elm_lang$core$Basics_ops['++'], - ' {\n', - A2(_elm_lang$core$Basics_ops['++'], blocks, '\n}')))); - default: - return _elm_lang$core$Native_Utils.crashCase( - 'Css.Structure.Output', - { - start: {line: 61, column: 5}, - end: {line: 78, column: 49} - }, - _p18)('not yet implemented :x'); - } -}; -var _rtfeldman$elm_css$Css_Structure_Output$namespaceToString = function (_p21) { - var _p22 = _p21; - return A2( - _elm_lang$core$Basics_ops['++'], - '@namespace ', - A2( - _elm_lang$core$Basics_ops['++'], - _p22._0, - A2( - _elm_lang$core$Basics_ops['++'], - '\"', - A2(_elm_lang$core$Basics_ops['++'], _p22._1, '\"')))); -}; -var _rtfeldman$elm_css$Css_Structure_Output$importToString = function (_p23) { - var _p24 = _p23; - return A2( - _elm_lang$core$Basics_ops['++'], - '@import \"', - A2( - _elm_lang$core$Basics_ops['++'], - _p24._0, - A2( - _elm_lang$core$Basics_ops['++'], - _elm_lang$core$Basics$toString(_p24._1), - '\"'))); -}; -var _rtfeldman$elm_css$Css_Structure_Output$charsetToString = function (charset) { - return A2( - _elm_lang$core$Maybe$withDefault, - '', - A2( - _elm_lang$core$Maybe$map, - function (str) { - return A2( - _elm_lang$core$Basics_ops['++'], - '@charset \"', - A2(_elm_lang$core$Basics_ops['++'], str, '\"')); - }, - charset)); -}; -var _rtfeldman$elm_css$Css_Structure_Output$prettyPrint = function (_p25) { - var _p26 = _p25; - return A2( - _elm_lang$core$String$join, - '\n\n', - A2( - _elm_lang$core$List$filter, - function (_p27) { - return !_elm_lang$core$String$isEmpty(_p27); - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure_Output$charsetToString(_p26.charset), - _1: { - ctor: '::', - _0: A2( - _elm_lang$core$String$join, - '\n', - A2(_elm_lang$core$List$map, _rtfeldman$elm_css$Css_Structure_Output$importToString, _p26.imports)), - _1: { - ctor: '::', - _0: A2( - _elm_lang$core$String$join, - '\n', - A2(_elm_lang$core$List$map, _rtfeldman$elm_css$Css_Structure_Output$namespaceToString, _p26.namespaces)), - _1: { - ctor: '::', - _0: A2( - _elm_lang$core$String$join, - '\n\n', - A2(_elm_lang$core$List$map, _rtfeldman$elm_css$Css_Structure_Output$prettyPrintDeclaration, _p26.declarations)), - _1: {ctor: '[]'} - } - } - } - })); -}; - -var _rtfeldman$elm_css$Css_Preprocess_Resolve$oneOf = function (maybes) { - oneOf: - while (true) { - var _p0 = maybes; - if (_p0.ctor === '[]') { - return _elm_lang$core$Maybe$Nothing; - } else { - var _p2 = _p0._0; - var _p1 = _p2; - if (_p1.ctor === 'Nothing') { - var _v2 = _p0._1; - maybes = _v2; - continue oneOf; - } else { - return _p2; - } - } - } -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$collectSelectors = function (declarations) { - collectSelectors: - while (true) { - var _p3 = declarations; - if (_p3.ctor === '[]') { - return {ctor: '[]'}; - } else { - if (_p3._0.ctor === 'StyleBlockDeclaration') { - return A2( - _elm_lang$core$Basics_ops['++'], - {ctor: '::', _0: _p3._0._0._0, _1: _p3._0._0._1}, - _rtfeldman$elm_css$Css_Preprocess_Resolve$collectSelectors(_p3._1)); - } else { - var _v4 = _p3._1; - declarations = _v4; - continue collectSelectors; - } - } - } -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$extractWarning = function (_p4) { - var _p5 = _p4; - return { - ctor: '_Tuple2', - _0: _p5.warnings, - _1: {key: _p5.key, value: _p5.value, important: _p5.important} - }; -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$extractWarnings = function (properties) { - return { - ctor: '_Tuple2', - _0: A2( - _elm_lang$core$List$concatMap, - function (_) { - return _.warnings; - }, - properties), - _1: A2( - _elm_lang$core$List$map, - function (prop) { - return _elm_lang$core$Tuple$second( - _rtfeldman$elm_css$Css_Preprocess_Resolve$extractWarning(prop)); - }, - properties) - }; -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$toDocumentRule = F5( - function (str1, str2, str3, str4, declaration) { - var _p6 = declaration; - if (_p6.ctor === 'StyleBlockDeclaration') { - return A5(_rtfeldman$elm_css$Css_Structure$DocumentRule, str1, str2, str3, str4, _p6._0); - } else { - return declaration; - } - }); -var _rtfeldman$elm_css$Css_Preprocess_Resolve$lastDeclaration = function (declarations) { - lastDeclaration: - while (true) { - var _p7 = declarations; - if (_p7.ctor === '[]') { - return _elm_lang$core$Maybe$Nothing; - } else { - if (_p7._1.ctor === '[]') { - return _elm_lang$core$Maybe$Just( - { - ctor: '::', - _0: _p7._0, - _1: {ctor: '[]'} - }); - } else { - var _v8 = _p7._1; - declarations = _v8; - continue lastDeclaration; - } - } - } -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$concatDeclarationsAndWarnings = function (declarationsAndWarnings) { - var _p8 = declarationsAndWarnings; - if (_p8.ctor === '[]') { - return { - declarations: {ctor: '[]'}, - warnings: {ctor: '[]'} - }; - } else { - var result = _rtfeldman$elm_css$Css_Preprocess_Resolve$concatDeclarationsAndWarnings(_p8._1); - return { - declarations: A2(_elm_lang$core$Basics_ops['++'], _p8._0.declarations, result.declarations), - warnings: A2(_elm_lang$core$Basics_ops['++'], _p8._0.warnings, result.warnings) - }; - } -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveFontFeatureValues = function (tuples) { - var expandTuples = function (tuplesToExpand) { - var _p9 = tuplesToExpand; - if (_p9.ctor === '[]') { - return { - ctor: '_Tuple2', - _0: {ctor: '[]'}, - _1: {ctor: '[]'} - }; - } else { - var _p10 = expandTuples(_p9._1); - var nextWarnings = _p10._0; - var nextTuples = _p10._1; - var _p11 = _rtfeldman$elm_css$Css_Preprocess_Resolve$extractWarnings(_p9._0._1); - var warnings = _p11._0; - var properties = _p11._1; - return { - ctor: '_Tuple2', - _0: A2(_elm_lang$core$Basics_ops['++'], warnings, nextWarnings), - _1: { - ctor: '::', - _0: {ctor: '_Tuple2', _0: _p9._0._0, _1: properties}, - _1: nextTuples - } - }; - } - }; - var _p12 = expandTuples(tuples); - var warnings = _p12._0; - var newTuples = _p12._1; - return { - declarations: { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure$FontFeatureValues(newTuples), - _1: {ctor: '[]'} - }, - warnings: warnings - }; -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveCounterStyle = function (counterStyleProperties) { - var _p13 = _rtfeldman$elm_css$Css_Preprocess_Resolve$extractWarnings(counterStyleProperties); - var warnings = _p13._0; - var properties = _p13._1; - return { - declarations: { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure$Viewport(properties), - _1: {ctor: '[]'} - }, - warnings: warnings - }; -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveViewport = function (viewportProperties) { - var _p14 = _rtfeldman$elm_css$Css_Preprocess_Resolve$extractWarnings(viewportProperties); - var warnings = _p14._0; - var properties = _p14._1; - return { - declarations: { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure$Viewport(properties), - _1: {ctor: '[]'} - }, - warnings: warnings - }; -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveKeyframes = F2( - function (str, properties) { - return { - declarations: { - ctor: '::', - _0: A2(_rtfeldman$elm_css$Css_Structure$Keyframes, str, properties), - _1: {ctor: '[]'} - }, - warnings: {ctor: '[]'} - }; - }); -var _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveFontFace = function (fontFaceProperties) { - var _p15 = _rtfeldman$elm_css$Css_Preprocess_Resolve$extractWarnings(fontFaceProperties); - var warnings = _p15._0; - var properties = _p15._1; - return { - declarations: { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure$FontFace(properties), - _1: {ctor: '[]'} - }, - warnings: warnings - }; -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$resolvePageRule = F2( - function (str, pageRuleProperties) { - var _p16 = _rtfeldman$elm_css$Css_Preprocess_Resolve$extractWarnings(pageRuleProperties); - var warnings = _p16._0; - var properties = _p16._1; - return { - declarations: { - ctor: '::', - _0: A2(_rtfeldman$elm_css$Css_Structure$PageRule, str, properties), - _1: {ctor: '[]'} - }, - warnings: warnings - }; - }); -var _rtfeldman$elm_css$Css_Preprocess_Resolve$toMediaRule = F2( - function (mediaQueries, declaration) { - var _p17 = declaration; - switch (_p17.ctor) { - case 'StyleBlockDeclaration': - return A2( - _rtfeldman$elm_css$Css_Structure$MediaRule, - mediaQueries, - { - ctor: '::', - _0: _p17._0, - _1: {ctor: '[]'} - }); - case 'MediaRule': - return A2( - _rtfeldman$elm_css$Css_Structure$MediaRule, - A2(_elm_lang$core$Basics_ops['++'], mediaQueries, _p17._0), - _p17._1); - case 'SupportsRule': - return A2( - _rtfeldman$elm_css$Css_Structure$SupportsRule, - _p17._0, - A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$Css_Preprocess_Resolve$toMediaRule(mediaQueries), - _p17._1)); - case 'DocumentRule': - return A5(_rtfeldman$elm_css$Css_Structure$DocumentRule, _p17._0, _p17._1, _p17._2, _p17._3, _p17._4); - case 'PageRule': - return declaration; - case 'FontFace': - return declaration; - case 'Keyframes': - return declaration; - case 'Viewport': - return declaration; - case 'CounterStyle': - return declaration; - default: - return declaration; - } - }); -var _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveMediaRule = F2( - function (mediaQueries, styleBlocks) { - var handleStyleBlock = function (styleBlock) { - var _p18 = _rtfeldman$elm_css$Css_Preprocess_Resolve$expandStyleBlock(styleBlock); - var declarations = _p18.declarations; - var warnings = _p18.warnings; - return { - declarations: A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$Css_Preprocess_Resolve$toMediaRule(mediaQueries), - declarations), - warnings: warnings - }; - }; - var results = A2(_elm_lang$core$List$map, handleStyleBlock, styleBlocks); - return { - warnings: A2( - _elm_lang$core$List$concatMap, - function (_) { - return _.warnings; - }, - results), - declarations: A2( - _elm_lang$core$List$concatMap, - function (_) { - return _.declarations; - }, - results) - }; - }); -var _rtfeldman$elm_css$Css_Preprocess_Resolve$expandStyleBlock = function (_p19) { - var _p20 = _p19; - return A2( - _rtfeldman$elm_css$Css_Preprocess_Resolve$applyStyles, - _p20._2, - { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure$StyleBlockDeclaration( - A3( - _rtfeldman$elm_css$Css_Structure$StyleBlock, - _p20._0, - _p20._1, - {ctor: '[]'})), - _1: {ctor: '[]'} - }); -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$applyStyles = F2( - function (styles, declarations) { - applyStyles: - while (true) { - var _p21 = styles; - if (_p21.ctor === '[]') { - return { - declarations: declarations, - warnings: {ctor: '[]'} - }; - } else { - switch (_p21._0.ctor) { - case 'AppendProperty': - var _p22 = _rtfeldman$elm_css$Css_Preprocess_Resolve$extractWarning(_p21._0._0); - var warnings = _p22._0; - var property = _p22._1; - var result = A2( - _rtfeldman$elm_css$Css_Preprocess_Resolve$applyStyles, - _p21._1, - A2(_rtfeldman$elm_css$Css_Structure$appendProperty, property, declarations)); - return { - declarations: result.declarations, - warnings: A2(_elm_lang$core$Basics_ops['++'], warnings, result.warnings) - }; - case 'ExtendSelector': - return A4( - _rtfeldman$elm_css$Css_Preprocess_Resolve$applyNestedStylesToLast, - _p21._0._1, - _p21._1, - _rtfeldman$elm_css$Css_Structure$appendRepeatableToLastSelector(_p21._0._0), - declarations); - case 'NestSnippet': - var chain = F2( - function (_p24, _p23) { - var _p25 = _p24; - var _p26 = _p23; - return A3( - _rtfeldman$elm_css$Css_Structure$Selector, - _p25._0, - A2( - _elm_lang$core$Basics_ops['++'], - _p25._1, - { - ctor: '::', - _0: {ctor: '_Tuple2', _0: _p21._0._0, _1: _p26._0}, - _1: _p26._1 - }), - _rtfeldman$elm_css$Css_Preprocess_Resolve$oneOf( - { - ctor: '::', - _0: _p26._2, - _1: { - ctor: '::', - _0: _p25._2, - _1: {ctor: '[]'} - } - })); - }); - var expandDeclaration = function (declaration) { - var _p27 = declaration; - switch (_p27.ctor) { - case 'StyleBlockDeclaration': - var newSelectors = A2( - _elm_lang$core$List$concatMap, - function (originalSelector) { - return A2( - _elm_lang$core$List$map, - chain(originalSelector), - {ctor: '::', _0: _p27._0._0, _1: _p27._0._1}); - }, - _rtfeldman$elm_css$Css_Preprocess_Resolve$collectSelectors(declarations)); - var newDeclarations = function () { - var _p28 = newSelectors; - if (_p28.ctor === '[]') { - return {ctor: '[]'}; - } else { - return { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure$StyleBlockDeclaration( - A3( - _rtfeldman$elm_css$Css_Structure$StyleBlock, - _p28._0, - _p28._1, - {ctor: '[]'})), - _1: {ctor: '[]'} - }; - } - }(); - return _rtfeldman$elm_css$Css_Preprocess_Resolve$concatDeclarationsAndWarnings( - { - ctor: '::', - _0: A2(_rtfeldman$elm_css$Css_Preprocess_Resolve$applyStyles, _p27._0._2, newDeclarations), - _1: {ctor: '[]'} - }); - case 'MediaRule': - return A2(_rtfeldman$elm_css$Css_Preprocess_Resolve$resolveMediaRule, _p27._0, _p27._1); - case 'SupportsRule': - return A2(_rtfeldman$elm_css$Css_Preprocess_Resolve$resolveSupportsRule, _p27._0, _p27._1); - case 'DocumentRule': - return A5(_rtfeldman$elm_css$Css_Preprocess_Resolve$resolveDocumentRule, _p27._0, _p27._1, _p27._2, _p27._3, _p27._4); - case 'PageRule': - return A2(_rtfeldman$elm_css$Css_Preprocess_Resolve$resolvePageRule, _p27._0, _p27._1); - case 'FontFace': - return _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveFontFace(_p27._0); - case 'Keyframes': - return A2(_rtfeldman$elm_css$Css_Preprocess_Resolve$resolveKeyframes, _p27._0, _p27._1); - case 'Viewport': - return _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveViewport(_p27._0); - case 'CounterStyle': - return _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveCounterStyle(_p27._0); - default: - return _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveFontFeatureValues(_p27._0); - } - }; - return _rtfeldman$elm_css$Css_Preprocess_Resolve$concatDeclarationsAndWarnings( - A2( - F2( - function (x, y) { - return A2(_elm_lang$core$Basics_ops['++'], x, y); - }), - { - ctor: '::', - _0: A2(_rtfeldman$elm_css$Css_Preprocess_Resolve$applyStyles, _p21._1, declarations), - _1: {ctor: '[]'} - }, - A2( - _elm_lang$core$List$map, - expandDeclaration, - A2(_elm_lang$core$List$concatMap, _rtfeldman$elm_css$Css_Preprocess$unwrapSnippet, _p21._0._1)))); - case 'WithPseudoElement': - return A4( - _rtfeldman$elm_css$Css_Preprocess_Resolve$applyNestedStylesToLast, - _p21._0._1, - _p21._1, - _rtfeldman$elm_css$Css_Structure$appendPseudoElementToLastSelector(_p21._0._0), - declarations); - case 'WithMedia': - var newDeclarations = function () { - var _p29 = _rtfeldman$elm_css$Css_Preprocess_Resolve$collectSelectors(declarations); - if (_p29.ctor === '[]') { - return {ctor: '[]'}; - } else { - return { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Css_Structure$MediaRule, - _p21._0._0, - { - ctor: '::', - _0: A3( - _rtfeldman$elm_css$Css_Structure$StyleBlock, - _p29._0, - _p29._1, - {ctor: '[]'}), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }; - } - }(); - return _rtfeldman$elm_css$Css_Preprocess_Resolve$concatDeclarationsAndWarnings( - { - ctor: '::', - _0: A2(_rtfeldman$elm_css$Css_Preprocess_Resolve$applyStyles, _p21._1, declarations), - _1: { - ctor: '::', - _0: A2(_rtfeldman$elm_css$Css_Preprocess_Resolve$applyStyles, _p21._0._1, newDeclarations), - _1: {ctor: '[]'} - } - }); - default: - var _v19 = A2(_elm_lang$core$Basics_ops['++'], _p21._0._0, _p21._1), - _v20 = declarations; - styles = _v19; - declarations = _v20; - continue applyStyles; - } - } - } - }); -var _rtfeldman$elm_css$Css_Preprocess_Resolve$applyNestedStylesToLast = F4( - function (nestedStyles, rest, f, declarations) { - var withoutParent = function (decls) { - return A2( - _elm_lang$core$Maybe$withDefault, - {ctor: '[]'}, - _elm_lang$core$List$tail(decls)); - }; - var nextResult = A2( - _rtfeldman$elm_css$Css_Preprocess_Resolve$applyStyles, - rest, - A2( - _elm_lang$core$Maybe$withDefault, - {ctor: '[]'}, - _rtfeldman$elm_css$Css_Preprocess_Resolve$lastDeclaration(declarations))); - var newDeclarations = function () { - var _p30 = { - ctor: '_Tuple2', - _0: _elm_lang$core$List$head(nextResult.declarations), - _1: _elm_lang$core$List$head( - _elm_lang$core$List$reverse(declarations)) - }; - if (((_p30.ctor === '_Tuple2') && (_p30._0.ctor === 'Just')) && (_p30._1.ctor === 'Just')) { - var _p32 = _p30._1._0; - var _p31 = _p30._0._0; - return A2( - _elm_lang$core$Basics_ops['++'], - A2( - _elm_lang$core$List$take, - _elm_lang$core$List$length(declarations) - 1, - declarations), - { - ctor: '::', - _0: (!_elm_lang$core$Native_Utils.eq(_p32, _p31)) ? _p31 : _p32, - _1: {ctor: '[]'} - }); - } else { - return declarations; - } - }(); - var handleInitial = function (declarationsAndWarnings) { - var result = A2(_rtfeldman$elm_css$Css_Preprocess_Resolve$applyStyles, nestedStyles, declarationsAndWarnings.declarations); - return { - warnings: A2(_elm_lang$core$Basics_ops['++'], declarationsAndWarnings.warnings, result.warnings), - declarations: result.declarations - }; - }; - var insertStylesToNestedDecl = function (lastDecl) { - return _rtfeldman$elm_css$Css_Preprocess_Resolve$concatDeclarationsAndWarnings( - A2( - _rtfeldman$elm_css$Css_Structure$mapLast, - handleInitial, - A2( - _elm_lang$core$List$map, - function (declaration) { - return { - declarations: { - ctor: '::', - _0: declaration, - _1: {ctor: '[]'} - }, - warnings: {ctor: '[]'} - }; - }, - A2(_rtfeldman$elm_css$Css_Structure$concatMapLastStyleBlock, f, lastDecl)))); - }; - var initialResult = A2( - _elm_lang$core$Maybe$withDefault, - { - warnings: {ctor: '[]'}, - declarations: {ctor: '[]'} - }, - A2( - _elm_lang$core$Maybe$map, - insertStylesToNestedDecl, - _rtfeldman$elm_css$Css_Preprocess_Resolve$lastDeclaration(declarations))); - return { - warnings: A2(_elm_lang$core$Basics_ops['++'], initialResult.warnings, nextResult.warnings), - declarations: A2( - _elm_lang$core$Basics_ops['++'], - newDeclarations, - A2( - _elm_lang$core$Basics_ops['++'], - withoutParent(initialResult.declarations), - withoutParent(nextResult.declarations))) - }; - }); -var _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveDocumentRule = F5( - function (str1, str2, str3, str4, styleBlock) { - var _p33 = _rtfeldman$elm_css$Css_Preprocess_Resolve$expandStyleBlock(styleBlock); - var declarations = _p33.declarations; - var warnings = _p33.warnings; - return { - declarations: A2( - _elm_lang$core$List$map, - A4(_rtfeldman$elm_css$Css_Preprocess_Resolve$toDocumentRule, str1, str2, str3, str4), - declarations), - warnings: warnings - }; - }); -var _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveSupportsRule = F2( - function (str, snippets) { - var _p34 = _rtfeldman$elm_css$Css_Preprocess_Resolve$extract( - A2(_elm_lang$core$List$concatMap, _rtfeldman$elm_css$Css_Preprocess$unwrapSnippet, snippets)); - var declarations = _p34.declarations; - var warnings = _p34.warnings; - return { - declarations: { - ctor: '::', - _0: A2(_rtfeldman$elm_css$Css_Structure$SupportsRule, str, declarations), - _1: {ctor: '[]'} - }, - warnings: warnings - }; - }); -var _rtfeldman$elm_css$Css_Preprocess_Resolve$extract = function (snippetDeclarations) { - var _p35 = snippetDeclarations; - if (_p35.ctor === '[]') { - return { - declarations: {ctor: '[]'}, - warnings: {ctor: '[]'} - }; - } else { - var _p36 = _rtfeldman$elm_css$Css_Preprocess_Resolve$toDeclarations(_p35._0); - var declarations = _p36.declarations; - var warnings = _p36.warnings; - var nextResult = _rtfeldman$elm_css$Css_Preprocess_Resolve$extract(_p35._1); - return { - declarations: A2(_elm_lang$core$Basics_ops['++'], declarations, nextResult.declarations), - warnings: A2(_elm_lang$core$Basics_ops['++'], warnings, nextResult.warnings) - }; - } -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$toDeclarations = function (snippetDeclaration) { - var _p37 = snippetDeclaration; - switch (_p37.ctor) { - case 'StyleBlockDeclaration': - return _rtfeldman$elm_css$Css_Preprocess_Resolve$expandStyleBlock(_p37._0); - case 'MediaRule': - return A2(_rtfeldman$elm_css$Css_Preprocess_Resolve$resolveMediaRule, _p37._0, _p37._1); - case 'SupportsRule': - return A2(_rtfeldman$elm_css$Css_Preprocess_Resolve$resolveSupportsRule, _p37._0, _p37._1); - case 'DocumentRule': - return A5(_rtfeldman$elm_css$Css_Preprocess_Resolve$resolveDocumentRule, _p37._0, _p37._1, _p37._2, _p37._3, _p37._4); - case 'PageRule': - return A2(_rtfeldman$elm_css$Css_Preprocess_Resolve$resolvePageRule, _p37._0, _p37._1); - case 'FontFace': - return _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveFontFace(_p37._0); - case 'Keyframes': - return A2(_rtfeldman$elm_css$Css_Preprocess_Resolve$resolveKeyframes, _p37._0, _p37._1); - case 'Viewport': - return _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveViewport(_p37._0); - case 'CounterStyle': - return _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveCounterStyle(_p37._0); - default: - return _rtfeldman$elm_css$Css_Preprocess_Resolve$resolveFontFeatureValues(_p37._0); - } -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$toStructure = function (_p38) { - var _p39 = _p38; - var _p40 = _rtfeldman$elm_css$Css_Preprocess_Resolve$extract( - A2(_elm_lang$core$List$concatMap, _rtfeldman$elm_css$Css_Preprocess$unwrapSnippet, _p39.snippets)); - var warnings = _p40.warnings; - var declarations = _p40.declarations; - return { - ctor: '_Tuple2', - _0: {charset: _p39.charset, imports: _p39.imports, namespaces: _p39.namespaces, declarations: declarations}, - _1: warnings - }; -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$compile1 = function (sheet) { - var _p41 = _rtfeldman$elm_css$Css_Preprocess_Resolve$toStructure(sheet); - var structureStylesheet = _p41._0; - var warnings = _p41._1; - return { - warnings: warnings, - css: _rtfeldman$elm_css$Css_Structure_Output$prettyPrint( - _rtfeldman$elm_css$Css_Structure$dropEmpty(structureStylesheet)) - }; -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$compile = function (styles) { - var results = A2(_elm_lang$core$List$map, _rtfeldman$elm_css$Css_Preprocess_Resolve$compile1, styles); - return { - warnings: A2( - _elm_lang$core$List$concatMap, - function (_) { - return _.warnings; - }, - results), - css: A2( - _elm_lang$core$String$join, - '\n\n', - A2( - _elm_lang$core$List$map, - function (_) { - return _.css; - }, - results)) - }; -}; -var _rtfeldman$elm_css$Css_Preprocess_Resolve$DeclarationsAndWarnings = F2( - function (a, b) { - return {declarations: a, warnings: b}; - }); - -var _rtfeldman$elm_css$VirtualDom_Styled$containsKey = F2( - function (key, pairs) { - containsKey: - while (true) { - var _p0 = pairs; - if (_p0.ctor === '[]') { - return false; - } else { - if (_elm_lang$core$Native_Utils.eq(key, _p0._0._0)) { - return true; - } else { - var _v1 = key, - _v2 = _p0._1; - key = _v1; - pairs = _v2; - continue containsKey; - } - } - } - }); -var _rtfeldman$elm_css$VirtualDom_Styled$getUnusedKey = F2( - function ($default, pairs) { - getUnusedKey: - while (true) { - var _p1 = pairs; - if (_p1.ctor === '[]') { - return $default; - } else { - var _p2 = _p1._1; - var newKey = A2(_elm_lang$core$Basics_ops['++'], '_', _p1._0._0); - if (A2(_rtfeldman$elm_css$VirtualDom_Styled$containsKey, newKey, _p2)) { - var _v4 = newKey, - _v5 = _p2; - $default = _v4; - pairs = _v5; - continue getUnusedKey; - } else { - return newKey; - } - } - } - }); -var _rtfeldman$elm_css$VirtualDom_Styled$extractUnstyledProperty = function (_p3) { - var _p4 = _p3; - return _p4._0; -}; -var _rtfeldman$elm_css$VirtualDom_Styled$stylesFromPropertiesHelp = F2( - function (candidate, properties) { - stylesFromPropertiesHelp: - while (true) { - var _p5 = properties; - if (_p5.ctor === '[]') { - return candidate; - } else { - var _p7 = _p5._1; - var _p6 = _p5._0._2; - if (_elm_lang$core$String$isEmpty(_p6)) { - var _v8 = candidate, - _v9 = _p7; - candidate = _v8; - properties = _v9; - continue stylesFromPropertiesHelp; - } else { - var _v10 = _elm_lang$core$Maybe$Just( - {ctor: '_Tuple2', _0: _p6, _1: _p5._0._1}), - _v11 = _p7; - candidate = _v10; - properties = _v11; - continue stylesFromPropertiesHelp; - } - } - } - }); -var _rtfeldman$elm_css$VirtualDom_Styled$stylesFromProperties = function (properties) { - var _p8 = A2(_rtfeldman$elm_css$VirtualDom_Styled$stylesFromPropertiesHelp, _elm_lang$core$Maybe$Nothing, properties); - if (_p8.ctor === 'Nothing') { - return _elm_lang$core$Dict$empty; - } else { - return A2(_elm_lang$core$Dict$singleton, _p8._0._0, _p8._0._1); - } -}; -var _rtfeldman$elm_css$VirtualDom_Styled$accumulateStyles = F2( - function (_p9, styles) { - var _p10 = _p9; - var _p11 = _p10._1; - return _elm_lang$core$List$isEmpty(_p11) ? styles : A3(_elm_lang$core$Dict$insert, _p10._2, _p11, styles); - }); -var _rtfeldman$elm_css$VirtualDom_Styled$accumulateKeyedStyledHtml = F2( - function (_p13, _p12) { - var _p14 = _p13; - var _p23 = _p14._0; - var _p15 = _p12; - var _p22 = _p15._1; - var _p21 = _p15._0; - var _p16 = _p14._1; - switch (_p16.ctor) { - case 'Unstyled': - return { - ctor: '_Tuple2', - _0: { - ctor: '::', - _0: {ctor: '_Tuple2', _0: _p23, _1: _p16._0}, - _1: _p21 - }, - _1: _p22 - }; - case 'Element': - var _p18 = _p16._1; - var combinedStyles = A3(_elm_lang$core$List$foldl, _rtfeldman$elm_css$VirtualDom_Styled$accumulateStyles, _p22, _p18); - var _p17 = A3( - _elm_lang$core$List$foldl, - _rtfeldman$elm_css$VirtualDom_Styled$accumulateStyledHtml, - { - ctor: '_Tuple2', - _0: {ctor: '[]'}, - _1: combinedStyles - }, - _p16._2); - var childNodes = _p17._0; - var finalStyles = _p17._1; - var vdom = A3( - _elm_lang$virtual_dom$VirtualDom$node, - _p16._0, - A2(_elm_lang$core$List$map, _rtfeldman$elm_css$VirtualDom_Styled$extractUnstyledProperty, _p18), - _elm_lang$core$List$reverse(childNodes)); - return { - ctor: '_Tuple2', - _0: { - ctor: '::', - _0: {ctor: '_Tuple2', _0: _p23, _1: vdom}, - _1: _p21 - }, - _1: finalStyles - }; - default: - var _p20 = _p16._1; - var combinedStyles = A3(_elm_lang$core$List$foldl, _rtfeldman$elm_css$VirtualDom_Styled$accumulateStyles, _p22, _p20); - var _p19 = A3( - _elm_lang$core$List$foldl, - _rtfeldman$elm_css$VirtualDom_Styled$accumulateKeyedStyledHtml, - { - ctor: '_Tuple2', - _0: {ctor: '[]'}, - _1: combinedStyles - }, - _p16._2); - var childNodes = _p19._0; - var finalStyles = _p19._1; - var vdom = A3( - _elm_lang$virtual_dom$VirtualDom$keyedNode, - _p16._0, - A2(_elm_lang$core$List$map, _rtfeldman$elm_css$VirtualDom_Styled$extractUnstyledProperty, _p20), - _elm_lang$core$List$reverse(childNodes)); - return { - ctor: '_Tuple2', - _0: { - ctor: '::', - _0: {ctor: '_Tuple2', _0: _p23, _1: vdom}, - _1: _p21 - }, - _1: finalStyles - }; - } - }); -var _rtfeldman$elm_css$VirtualDom_Styled$accumulateStyledHtml = F2( - function (html, _p24) { - var _p25 = _p24; - var _p32 = _p25._1; - var _p31 = _p25._0; - var _p26 = html; - switch (_p26.ctor) { - case 'Unstyled': - return { - ctor: '_Tuple2', - _0: {ctor: '::', _0: _p26._0, _1: _p31}, - _1: _p32 - }; - case 'Element': - var _p28 = _p26._1; - var combinedStyles = A3(_elm_lang$core$List$foldl, _rtfeldman$elm_css$VirtualDom_Styled$accumulateStyles, _p32, _p28); - var _p27 = A3( - _elm_lang$core$List$foldl, - _rtfeldman$elm_css$VirtualDom_Styled$accumulateStyledHtml, - { - ctor: '_Tuple2', - _0: {ctor: '[]'}, - _1: combinedStyles - }, - _p26._2); - var childNodes = _p27._0; - var finalStyles = _p27._1; - var node = A3( - _elm_lang$virtual_dom$VirtualDom$node, - _p26._0, - A2(_elm_lang$core$List$map, _rtfeldman$elm_css$VirtualDom_Styled$extractUnstyledProperty, _p28), - _elm_lang$core$List$reverse(childNodes)); - return { - ctor: '_Tuple2', - _0: {ctor: '::', _0: node, _1: _p31}, - _1: finalStyles - }; - default: - var _p30 = _p26._1; - var combinedStyles = A3(_elm_lang$core$List$foldl, _rtfeldman$elm_css$VirtualDom_Styled$accumulateStyles, _p32, _p30); - var _p29 = A3( - _elm_lang$core$List$foldl, - _rtfeldman$elm_css$VirtualDom_Styled$accumulateKeyedStyledHtml, - { - ctor: '_Tuple2', - _0: {ctor: '[]'}, - _1: combinedStyles - }, - _p26._2); - var childNodes = _p29._0; - var finalStyles = _p29._1; - var node = A3( - _elm_lang$virtual_dom$VirtualDom$keyedNode, - _p26._0, - A2(_elm_lang$core$List$map, _rtfeldman$elm_css$VirtualDom_Styled$extractUnstyledProperty, _p30), - _elm_lang$core$List$reverse(childNodes)); - return { - ctor: '_Tuple2', - _0: {ctor: '::', _0: node, _1: _p31}, - _1: finalStyles - }; - } - }); -var _rtfeldman$elm_css$VirtualDom_Styled$murmurSeed = 15739; -var _rtfeldman$elm_css$VirtualDom_Styled$makeSnippet = F2( - function (styles, sequence) { - var selector = A3( - _rtfeldman$elm_css$Css_Structure$Selector, - sequence, - {ctor: '[]'}, - _elm_lang$core$Maybe$Nothing); - return _rtfeldman$elm_css$Css_Preprocess$Snippet( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Preprocess$StyleBlockDeclaration( - A3( - _rtfeldman$elm_css$Css_Preprocess$StyleBlock, - selector, - {ctor: '[]'}, - styles)), - _1: {ctor: '[]'} - }); - }); -var _rtfeldman$elm_css$VirtualDom_Styled$snippetFromPair = function (_p33) { - var _p34 = _p33; - return A2( - _rtfeldman$elm_css$VirtualDom_Styled$makeSnippet, - _p34._1, - _rtfeldman$elm_css$Css_Structure$UniversalSelectorSequence( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css_Structure$ClassSelector(_p34._0), - _1: {ctor: '[]'} - })); -}; -var _rtfeldman$elm_css$VirtualDom_Styled$toDeclaration = function (dict) { - return function (_) { - return _.css; - }( - _rtfeldman$elm_css$Css_Preprocess_Resolve$compile( - _elm_lang$core$List$singleton( - _rtfeldman$elm_css$Css_Preprocess$stylesheet( - A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$VirtualDom_Styled$snippetFromPair, - _elm_lang$core$Dict$toList(dict)))))); -}; -var _rtfeldman$elm_css$VirtualDom_Styled$toStyleNode = function (styles) { - return A3( - _elm_lang$virtual_dom$VirtualDom$node, - 'style', - {ctor: '[]'}, - _elm_lang$core$List$singleton( - _elm_lang$virtual_dom$VirtualDom$text( - _rtfeldman$elm_css$VirtualDom_Styled$toDeclaration(styles)))); -}; -var _rtfeldman$elm_css$VirtualDom_Styled$unstyle = F3( - function (elemType, properties, children) { - var unstyledProperties = A2(_elm_lang$core$List$map, _rtfeldman$elm_css$VirtualDom_Styled$extractUnstyledProperty, properties); - var initialStyles = _rtfeldman$elm_css$VirtualDom_Styled$stylesFromProperties(properties); - var _p35 = A3( - _elm_lang$core$List$foldl, - _rtfeldman$elm_css$VirtualDom_Styled$accumulateStyledHtml, - { - ctor: '_Tuple2', - _0: {ctor: '[]'}, - _1: initialStyles - }, - children); - var childNodes = _p35._0; - var styles = _p35._1; - var styleNode = _rtfeldman$elm_css$VirtualDom_Styled$toStyleNode(styles); - return A3( - _elm_lang$virtual_dom$VirtualDom$node, - elemType, - unstyledProperties, - { - ctor: '::', - _0: styleNode, - _1: _elm_lang$core$List$reverse(childNodes) - }); - }); -var _rtfeldman$elm_css$VirtualDom_Styled$toKeyedStyleNode = F2( - function (allStyles, keyedChildNodes) { - var finalNode = _rtfeldman$elm_css$VirtualDom_Styled$toStyleNode(allStyles); - var styleNodeKey = A2(_rtfeldman$elm_css$VirtualDom_Styled$getUnusedKey, '_', keyedChildNodes); - return {ctor: '_Tuple2', _0: styleNodeKey, _1: finalNode}; - }); -var _rtfeldman$elm_css$VirtualDom_Styled$unstyleKeyed = F3( - function (elemType, properties, keyedChildren) { - var unstyledProperties = A2(_elm_lang$core$List$map, _rtfeldman$elm_css$VirtualDom_Styled$extractUnstyledProperty, properties); - var initialStyles = _rtfeldman$elm_css$VirtualDom_Styled$stylesFromProperties(properties); - var _p36 = A3( - _elm_lang$core$List$foldl, - _rtfeldman$elm_css$VirtualDom_Styled$accumulateKeyedStyledHtml, - { - ctor: '_Tuple2', - _0: {ctor: '[]'}, - _1: initialStyles - }, - keyedChildren); - var keyedChildNodes = _p36._0; - var styles = _p36._1; - var keyedStyleNode = A2(_rtfeldman$elm_css$VirtualDom_Styled$toKeyedStyleNode, styles, keyedChildNodes); - return A3( - _elm_lang$virtual_dom$VirtualDom$keyedNode, - elemType, - unstyledProperties, - { - ctor: '::', - _0: keyedStyleNode, - _1: _elm_lang$core$List$reverse(keyedChildNodes) - }); - }); -var _rtfeldman$elm_css$VirtualDom_Styled$getClassname = function (styles) { - return _elm_lang$core$List$isEmpty(styles) ? 'unstyled' : A2( - _elm_lang$core$String$cons, - _elm_lang$core$Native_Utils.chr('_'), - _rtfeldman$hex$Hex$toString( - A2( - _Skinney$murmur3$Murmur3$hashString, - _rtfeldman$elm_css$VirtualDom_Styled$murmurSeed, - function (_) { - return _.css; - }( - _rtfeldman$elm_css$Css_Preprocess_Resolve$compile( - _elm_lang$core$List$singleton( - _rtfeldman$elm_css$Css_Preprocess$stylesheet( - _elm_lang$core$List$singleton( - A2( - _rtfeldman$elm_css$VirtualDom_Styled$makeSnippet, - styles, - _rtfeldman$elm_css$Css_Structure$UniversalSelectorSequence( - {ctor: '[]'})))))))))); -}; -var _rtfeldman$elm_css$VirtualDom_Styled$toUnstyled = function (node) { - var _p37 = node; - switch (_p37.ctor) { - case 'Unstyled': - return _p37._0; - case 'Element': - return A3(_rtfeldman$elm_css$VirtualDom_Styled$unstyle, _p37._0, _p37._1, _p37._2); - default: - return A3(_rtfeldman$elm_css$VirtualDom_Styled$unstyleKeyed, _p37._0, _p37._1, _p37._2); - } -}; -var _rtfeldman$elm_css$VirtualDom_Styled$Unstyled = function (a) { - return {ctor: 'Unstyled', _0: a}; -}; -var _rtfeldman$elm_css$VirtualDom_Styled$unstyledNode = _rtfeldman$elm_css$VirtualDom_Styled$Unstyled; -var _rtfeldman$elm_css$VirtualDom_Styled$text = function (_p38) { - return _rtfeldman$elm_css$VirtualDom_Styled$Unstyled( - _elm_lang$virtual_dom$VirtualDom$text(_p38)); -}; -var _rtfeldman$elm_css$VirtualDom_Styled$lazy = F2( - function (fn, arg) { - return _rtfeldman$elm_css$VirtualDom_Styled$Unstyled( - A2(_elm_lang$virtual_dom$VirtualDom$lazy, fn, arg)); - }); -var _rtfeldman$elm_css$VirtualDom_Styled$lazy2 = F3( - function (fn, arg1, arg2) { - return _rtfeldman$elm_css$VirtualDom_Styled$Unstyled( - A3(_elm_lang$virtual_dom$VirtualDom$lazy2, fn, arg1, arg2)); - }); -var _rtfeldman$elm_css$VirtualDom_Styled$lazy3 = F4( - function (fn, arg1, arg2, arg3) { - return _rtfeldman$elm_css$VirtualDom_Styled$Unstyled( - A4(_elm_lang$virtual_dom$VirtualDom$lazy3, fn, arg1, arg2, arg3)); - }); -var _rtfeldman$elm_css$VirtualDom_Styled$KeyedElement = F3( - function (a, b, c) { - return {ctor: 'KeyedElement', _0: a, _1: b, _2: c}; - }); -var _rtfeldman$elm_css$VirtualDom_Styled$keyedNode = _rtfeldman$elm_css$VirtualDom_Styled$KeyedElement; -var _rtfeldman$elm_css$VirtualDom_Styled$Element = F3( - function (a, b, c) { - return {ctor: 'Element', _0: a, _1: b, _2: c}; - }); -var _rtfeldman$elm_css$VirtualDom_Styled$node = _rtfeldman$elm_css$VirtualDom_Styled$Element; -var _rtfeldman$elm_css$VirtualDom_Styled$Property = F3( - function (a, b, c) { - return {ctor: 'Property', _0: a, _1: b, _2: c}; - }); -var _rtfeldman$elm_css$VirtualDom_Styled$property = F2( - function (key, value) { - return A3( - _rtfeldman$elm_css$VirtualDom_Styled$Property, - A2(_elm_lang$virtual_dom$VirtualDom$property, key, value), - {ctor: '[]'}, - ''); - }); -var _rtfeldman$elm_css$VirtualDom_Styled$attribute = F2( - function (key, value) { - return A3( - _rtfeldman$elm_css$VirtualDom_Styled$Property, - A2(_elm_lang$virtual_dom$VirtualDom$attribute, key, value), - {ctor: '[]'}, - ''); - }); -var _rtfeldman$elm_css$VirtualDom_Styled$attributeNS = F3( - function (namespace, key, value) { - return A3( - _rtfeldman$elm_css$VirtualDom_Styled$Property, - A3(_elm_lang$virtual_dom$VirtualDom$attributeNS, namespace, key, value), - {ctor: '[]'}, - ''); - }); -var _rtfeldman$elm_css$VirtualDom_Styled$unstyledProperty = function (prop) { - return A3( - _rtfeldman$elm_css$VirtualDom_Styled$Property, - prop, - {ctor: '[]'}, - ''); -}; -var _rtfeldman$elm_css$VirtualDom_Styled$on = F2( - function (eventName, decoder) { - return A3( - _rtfeldman$elm_css$VirtualDom_Styled$Property, - A2(_elm_lang$virtual_dom$VirtualDom$on, eventName, decoder), - {ctor: '[]'}, - ''); - }); -var _rtfeldman$elm_css$VirtualDom_Styled$onWithOptions = F3( - function (eventName, options, decoder) { - return A3( - _rtfeldman$elm_css$VirtualDom_Styled$Property, - A3(_elm_lang$virtual_dom$VirtualDom$onWithOptions, eventName, options, decoder), - {ctor: '[]'}, - ''); - }); -var _rtfeldman$elm_css$VirtualDom_Styled$mapProperty = F2( - function (transform, _p39) { - var _p40 = _p39; - return A3( - _rtfeldman$elm_css$VirtualDom_Styled$Property, - A2(_elm_lang$virtual_dom$VirtualDom$mapProperty, transform, _p40._0), - _p40._1, - _p40._2); - }); -var _rtfeldman$elm_css$VirtualDom_Styled$map = F2( - function (transform, node) { - var _p41 = node; - switch (_p41.ctor) { - case 'Element': - return A3( - _rtfeldman$elm_css$VirtualDom_Styled$Element, - _p41._0, - A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$VirtualDom_Styled$mapProperty(transform), - _p41._1), - A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$VirtualDom_Styled$map(transform), - _p41._2)); - case 'KeyedElement': - return A3( - _rtfeldman$elm_css$VirtualDom_Styled$KeyedElement, - _p41._0, - A2( - _elm_lang$core$List$map, - _rtfeldman$elm_css$VirtualDom_Styled$mapProperty(transform), - _p41._1), - A2( - _elm_lang$core$List$map, - function (_p42) { - var _p43 = _p42; - return { - ctor: '_Tuple2', - _0: _p43._0, - _1: A2(_rtfeldman$elm_css$VirtualDom_Styled$map, transform, _p43._1) - }; - }, - _p41._2)); - default: - return _rtfeldman$elm_css$VirtualDom_Styled$Unstyled( - A2(_elm_lang$virtual_dom$VirtualDom$map, transform, _p41._0)); - } - }); - -var _rtfeldman$elm_css$Html_Styled_Internal$css = function (styles) { - var classname = _rtfeldman$elm_css$VirtualDom_Styled$getClassname(styles); - var classProperty = A2( - _elm_lang$virtual_dom$VirtualDom$property, - 'className', - _elm_lang$core$Json_Encode$string(classname)); - return A3(_rtfeldman$elm_css$VirtualDom_Styled$Property, classProperty, styles, classname); -}; - -var _rtfeldman$elm_css$Html_Styled$fromUnstyled = _rtfeldman$elm_css$VirtualDom_Styled$unstyledNode; -var _rtfeldman$elm_css$Html_Styled$toUnstyled = _rtfeldman$elm_css$VirtualDom_Styled$toUnstyled; -var _rtfeldman$elm_css$Html_Styled$program = function (config) { - return _elm_lang$virtual_dom$VirtualDom$program( - _elm_lang$core$Native_Utils.update( - config, - { - view: function (_p0) { - return _rtfeldman$elm_css$Html_Styled$toUnstyled( - config.view(_p0)); - } - })); -}; -var _rtfeldman$elm_css$Html_Styled$beginnerProgram = function (_p1) { - var _p2 = _p1; - return _rtfeldman$elm_css$Html_Styled$program( - { - init: A2( - _elm_lang$core$Platform_Cmd_ops['!'], - _p2.model, - {ctor: '[]'}), - update: F2( - function (msg, model) { - return A2( - _elm_lang$core$Platform_Cmd_ops['!'], - A2(_p2.update, msg, model), - {ctor: '[]'}); - }), - view: _p2.view, - subscriptions: function (_p3) { - return _elm_lang$core$Platform_Sub$none; - } - }); -}; -var _rtfeldman$elm_css$Html_Styled$programWithFlags = function (config) { - return _elm_lang$virtual_dom$VirtualDom$programWithFlags( - _elm_lang$core$Native_Utils.update( - config, - { - view: function (_p4) { - return _rtfeldman$elm_css$Html_Styled$toUnstyled( - config.view(_p4)); - } - })); -}; -var _rtfeldman$elm_css$Html_Styled$styled = F4( - function (fn, styles, attrs, children) { - return A2( - fn, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Internal$css(styles), - _1: attrs - }, - children); - }); -var _rtfeldman$elm_css$Html_Styled$map = _rtfeldman$elm_css$VirtualDom_Styled$map; -var _rtfeldman$elm_css$Html_Styled$text = _rtfeldman$elm_css$VirtualDom_Styled$text; -var _rtfeldman$elm_css$Html_Styled$node = _rtfeldman$elm_css$VirtualDom_Styled$node; -var _rtfeldman$elm_css$Html_Styled$body = _rtfeldman$elm_css$Html_Styled$node('body'); -var _rtfeldman$elm_css$Html_Styled$section = _rtfeldman$elm_css$Html_Styled$node('section'); -var _rtfeldman$elm_css$Html_Styled$nav = _rtfeldman$elm_css$Html_Styled$node('nav'); -var _rtfeldman$elm_css$Html_Styled$article = _rtfeldman$elm_css$Html_Styled$node('article'); -var _rtfeldman$elm_css$Html_Styled$aside = _rtfeldman$elm_css$Html_Styled$node('aside'); -var _rtfeldman$elm_css$Html_Styled$h1 = _rtfeldman$elm_css$Html_Styled$node('h1'); -var _rtfeldman$elm_css$Html_Styled$h2 = _rtfeldman$elm_css$Html_Styled$node('h2'); -var _rtfeldman$elm_css$Html_Styled$h3 = _rtfeldman$elm_css$Html_Styled$node('h3'); -var _rtfeldman$elm_css$Html_Styled$h4 = _rtfeldman$elm_css$Html_Styled$node('h4'); -var _rtfeldman$elm_css$Html_Styled$h5 = _rtfeldman$elm_css$Html_Styled$node('h5'); -var _rtfeldman$elm_css$Html_Styled$h6 = _rtfeldman$elm_css$Html_Styled$node('h6'); -var _rtfeldman$elm_css$Html_Styled$header = _rtfeldman$elm_css$Html_Styled$node('header'); -var _rtfeldman$elm_css$Html_Styled$footer = _rtfeldman$elm_css$Html_Styled$node('footer'); -var _rtfeldman$elm_css$Html_Styled$address = _rtfeldman$elm_css$Html_Styled$node('address'); -var _rtfeldman$elm_css$Html_Styled$main_ = _rtfeldman$elm_css$Html_Styled$node('main'); -var _rtfeldman$elm_css$Html_Styled$p = _rtfeldman$elm_css$Html_Styled$node('p'); -var _rtfeldman$elm_css$Html_Styled$hr = _rtfeldman$elm_css$Html_Styled$node('hr'); -var _rtfeldman$elm_css$Html_Styled$pre = _rtfeldman$elm_css$Html_Styled$node('pre'); -var _rtfeldman$elm_css$Html_Styled$blockquote = _rtfeldman$elm_css$Html_Styled$node('blockquote'); -var _rtfeldman$elm_css$Html_Styled$ol = _rtfeldman$elm_css$Html_Styled$node('ol'); -var _rtfeldman$elm_css$Html_Styled$ul = _rtfeldman$elm_css$Html_Styled$node('ul'); -var _rtfeldman$elm_css$Html_Styled$li = _rtfeldman$elm_css$Html_Styled$node('li'); -var _rtfeldman$elm_css$Html_Styled$dl = _rtfeldman$elm_css$Html_Styled$node('dl'); -var _rtfeldman$elm_css$Html_Styled$dt = _rtfeldman$elm_css$Html_Styled$node('dt'); -var _rtfeldman$elm_css$Html_Styled$dd = _rtfeldman$elm_css$Html_Styled$node('dd'); -var _rtfeldman$elm_css$Html_Styled$figure = _rtfeldman$elm_css$Html_Styled$node('figure'); -var _rtfeldman$elm_css$Html_Styled$figcaption = _rtfeldman$elm_css$Html_Styled$node('figcaption'); -var _rtfeldman$elm_css$Html_Styled$div = _rtfeldman$elm_css$Html_Styled$node('div'); -var _rtfeldman$elm_css$Html_Styled$a = _rtfeldman$elm_css$Html_Styled$node('a'); -var _rtfeldman$elm_css$Html_Styled$em = _rtfeldman$elm_css$Html_Styled$node('em'); -var _rtfeldman$elm_css$Html_Styled$strong = _rtfeldman$elm_css$Html_Styled$node('strong'); -var _rtfeldman$elm_css$Html_Styled$small = _rtfeldman$elm_css$Html_Styled$node('small'); -var _rtfeldman$elm_css$Html_Styled$s = _rtfeldman$elm_css$Html_Styled$node('s'); -var _rtfeldman$elm_css$Html_Styled$cite = _rtfeldman$elm_css$Html_Styled$node('cite'); -var _rtfeldman$elm_css$Html_Styled$q = _rtfeldman$elm_css$Html_Styled$node('q'); -var _rtfeldman$elm_css$Html_Styled$dfn = _rtfeldman$elm_css$Html_Styled$node('dfn'); -var _rtfeldman$elm_css$Html_Styled$abbr = _rtfeldman$elm_css$Html_Styled$node('abbr'); -var _rtfeldman$elm_css$Html_Styled$time = _rtfeldman$elm_css$Html_Styled$node('time'); -var _rtfeldman$elm_css$Html_Styled$code = _rtfeldman$elm_css$Html_Styled$node('code'); -var _rtfeldman$elm_css$Html_Styled$var = _rtfeldman$elm_css$Html_Styled$node('var'); -var _rtfeldman$elm_css$Html_Styled$samp = _rtfeldman$elm_css$Html_Styled$node('samp'); -var _rtfeldman$elm_css$Html_Styled$kbd = _rtfeldman$elm_css$Html_Styled$node('kbd'); -var _rtfeldman$elm_css$Html_Styled$sub = _rtfeldman$elm_css$Html_Styled$node('sub'); -var _rtfeldman$elm_css$Html_Styled$sup = _rtfeldman$elm_css$Html_Styled$node('sup'); -var _rtfeldman$elm_css$Html_Styled$i = _rtfeldman$elm_css$Html_Styled$node('i'); -var _rtfeldman$elm_css$Html_Styled$b = _rtfeldman$elm_css$Html_Styled$node('b'); -var _rtfeldman$elm_css$Html_Styled$u = _rtfeldman$elm_css$Html_Styled$node('u'); -var _rtfeldman$elm_css$Html_Styled$mark = _rtfeldman$elm_css$Html_Styled$node('mark'); -var _rtfeldman$elm_css$Html_Styled$ruby = _rtfeldman$elm_css$Html_Styled$node('ruby'); -var _rtfeldman$elm_css$Html_Styled$rt = _rtfeldman$elm_css$Html_Styled$node('rt'); -var _rtfeldman$elm_css$Html_Styled$rp = _rtfeldman$elm_css$Html_Styled$node('rp'); -var _rtfeldman$elm_css$Html_Styled$bdi = _rtfeldman$elm_css$Html_Styled$node('bdi'); -var _rtfeldman$elm_css$Html_Styled$bdo = _rtfeldman$elm_css$Html_Styled$node('bdo'); -var _rtfeldman$elm_css$Html_Styled$span = _rtfeldman$elm_css$Html_Styled$node('span'); -var _rtfeldman$elm_css$Html_Styled$br = _rtfeldman$elm_css$Html_Styled$node('br'); -var _rtfeldman$elm_css$Html_Styled$wbr = _rtfeldman$elm_css$Html_Styled$node('wbr'); -var _rtfeldman$elm_css$Html_Styled$ins = _rtfeldman$elm_css$Html_Styled$node('ins'); -var _rtfeldman$elm_css$Html_Styled$del = _rtfeldman$elm_css$Html_Styled$node('del'); -var _rtfeldman$elm_css$Html_Styled$img = _rtfeldman$elm_css$Html_Styled$node('img'); -var _rtfeldman$elm_css$Html_Styled$iframe = _rtfeldman$elm_css$Html_Styled$node('iframe'); -var _rtfeldman$elm_css$Html_Styled$embed = _rtfeldman$elm_css$Html_Styled$node('embed'); -var _rtfeldman$elm_css$Html_Styled$object = _rtfeldman$elm_css$Html_Styled$node('object'); -var _rtfeldman$elm_css$Html_Styled$param = _rtfeldman$elm_css$Html_Styled$node('param'); -var _rtfeldman$elm_css$Html_Styled$video = _rtfeldman$elm_css$Html_Styled$node('video'); -var _rtfeldman$elm_css$Html_Styled$audio = _rtfeldman$elm_css$Html_Styled$node('audio'); -var _rtfeldman$elm_css$Html_Styled$source = _rtfeldman$elm_css$Html_Styled$node('source'); -var _rtfeldman$elm_css$Html_Styled$track = _rtfeldman$elm_css$Html_Styled$node('track'); -var _rtfeldman$elm_css$Html_Styled$canvas = _rtfeldman$elm_css$Html_Styled$node('canvas'); -var _rtfeldman$elm_css$Html_Styled$math = _rtfeldman$elm_css$Html_Styled$node('math'); -var _rtfeldman$elm_css$Html_Styled$table = _rtfeldman$elm_css$Html_Styled$node('table'); -var _rtfeldman$elm_css$Html_Styled$caption = _rtfeldman$elm_css$Html_Styled$node('caption'); -var _rtfeldman$elm_css$Html_Styled$colgroup = _rtfeldman$elm_css$Html_Styled$node('colgroup'); -var _rtfeldman$elm_css$Html_Styled$col = _rtfeldman$elm_css$Html_Styled$node('col'); -var _rtfeldman$elm_css$Html_Styled$tbody = _rtfeldman$elm_css$Html_Styled$node('tbody'); -var _rtfeldman$elm_css$Html_Styled$thead = _rtfeldman$elm_css$Html_Styled$node('thead'); -var _rtfeldman$elm_css$Html_Styled$tfoot = _rtfeldman$elm_css$Html_Styled$node('tfoot'); -var _rtfeldman$elm_css$Html_Styled$tr = _rtfeldman$elm_css$Html_Styled$node('tr'); -var _rtfeldman$elm_css$Html_Styled$td = _rtfeldman$elm_css$Html_Styled$node('td'); -var _rtfeldman$elm_css$Html_Styled$th = _rtfeldman$elm_css$Html_Styled$node('th'); -var _rtfeldman$elm_css$Html_Styled$form = _rtfeldman$elm_css$Html_Styled$node('form'); -var _rtfeldman$elm_css$Html_Styled$fieldset = _rtfeldman$elm_css$Html_Styled$node('fieldset'); -var _rtfeldman$elm_css$Html_Styled$legend = _rtfeldman$elm_css$Html_Styled$node('legend'); -var _rtfeldman$elm_css$Html_Styled$label = _rtfeldman$elm_css$Html_Styled$node('label'); -var _rtfeldman$elm_css$Html_Styled$input = _rtfeldman$elm_css$Html_Styled$node('input'); -var _rtfeldman$elm_css$Html_Styled$button = _rtfeldman$elm_css$Html_Styled$node('button'); -var _rtfeldman$elm_css$Html_Styled$select = _rtfeldman$elm_css$Html_Styled$node('select'); -var _rtfeldman$elm_css$Html_Styled$datalist = _rtfeldman$elm_css$Html_Styled$node('datalist'); -var _rtfeldman$elm_css$Html_Styled$optgroup = _rtfeldman$elm_css$Html_Styled$node('optgroup'); -var _rtfeldman$elm_css$Html_Styled$option = _rtfeldman$elm_css$Html_Styled$node('option'); -var _rtfeldman$elm_css$Html_Styled$textarea = _rtfeldman$elm_css$Html_Styled$node('textarea'); -var _rtfeldman$elm_css$Html_Styled$keygen = _rtfeldman$elm_css$Html_Styled$node('keygen'); -var _rtfeldman$elm_css$Html_Styled$output = _rtfeldman$elm_css$Html_Styled$node('output'); -var _rtfeldman$elm_css$Html_Styled$progress = _rtfeldman$elm_css$Html_Styled$node('progress'); -var _rtfeldman$elm_css$Html_Styled$meter = _rtfeldman$elm_css$Html_Styled$node('meter'); -var _rtfeldman$elm_css$Html_Styled$details = _rtfeldman$elm_css$Html_Styled$node('details'); -var _rtfeldman$elm_css$Html_Styled$summary = _rtfeldman$elm_css$Html_Styled$node('summary'); -var _rtfeldman$elm_css$Html_Styled$menuitem = _rtfeldman$elm_css$Html_Styled$node('menuitem'); -var _rtfeldman$elm_css$Html_Styled$menu = _rtfeldman$elm_css$Html_Styled$node('menu'); - -var _rtfeldman$elm_css$Html_Styled_Attributes$css = _rtfeldman$elm_css$Html_Styled_Internal$css; -var _rtfeldman$elm_css$Html_Styled_Attributes$map = _rtfeldman$elm_css$VirtualDom_Styled$mapProperty; -var _rtfeldman$elm_css$Html_Styled_Attributes$attribute = _rtfeldman$elm_css$VirtualDom_Styled$attribute; -var _rtfeldman$elm_css$Html_Styled_Attributes$contextmenu = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$attribute, 'contextmenu', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$draggable = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$attribute, 'draggable', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$itemprop = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$attribute, 'itemprop', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$tabindex = function (n) { - return A2( - _rtfeldman$elm_css$Html_Styled_Attributes$attribute, - 'tabIndex', - _elm_lang$core$Basics$toString(n)); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$charset = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$attribute, 'charset', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$height = function (value) { - return A2( - _rtfeldman$elm_css$Html_Styled_Attributes$attribute, - 'height', - _elm_lang$core$Basics$toString(value)); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$width = function (value) { - return A2( - _rtfeldman$elm_css$Html_Styled_Attributes$attribute, - 'width', - _elm_lang$core$Basics$toString(value)); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$formaction = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$attribute, 'formAction', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$list = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$attribute, 'list', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$minlength = function (n) { - return A2( - _rtfeldman$elm_css$Html_Styled_Attributes$attribute, - 'minLength', - _elm_lang$core$Basics$toString(n)); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$maxlength = function (n) { - return A2( - _rtfeldman$elm_css$Html_Styled_Attributes$attribute, - 'maxlength', - _elm_lang$core$Basics$toString(n)); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$size = function (n) { - return A2( - _rtfeldman$elm_css$Html_Styled_Attributes$attribute, - 'size', - _elm_lang$core$Basics$toString(n)); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$form = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$attribute, 'form', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$cols = function (n) { - return A2( - _rtfeldman$elm_css$Html_Styled_Attributes$attribute, - 'cols', - _elm_lang$core$Basics$toString(n)); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$rows = function (n) { - return A2( - _rtfeldman$elm_css$Html_Styled_Attributes$attribute, - 'rows', - _elm_lang$core$Basics$toString(n)); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$challenge = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$attribute, 'challenge', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$media = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$attribute, 'media', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$rel = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$attribute, 'rel', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$datetime = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$attribute, 'datetime', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$pubdate = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$attribute, 'pubdate', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$colspan = function (n) { - return A2( - _rtfeldman$elm_css$Html_Styled_Attributes$attribute, - 'colspan', - _elm_lang$core$Basics$toString(n)); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$rowspan = function (n) { - return A2( - _rtfeldman$elm_css$Html_Styled_Attributes$attribute, - 'rowspan', - _elm_lang$core$Basics$toString(n)); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$manifest = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$attribute, 'manifest', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$property = _rtfeldman$elm_css$VirtualDom_Styled$property; -var _rtfeldman$elm_css$Html_Styled_Attributes$stringProperty = F2( - function (name, string) { - return A2( - _rtfeldman$elm_css$Html_Styled_Attributes$property, - name, - _elm_lang$core$Json_Encode$string(string)); - }); -var _rtfeldman$elm_css$Html_Styled_Attributes$class = function (name) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'className', name); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$id = function (name) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'id', name); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$title = function (name) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'title', name); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$accesskey = function ($char) { - return A2( - _rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, - 'accessKey', - _elm_lang$core$String$fromChar($char)); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$dir = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'dir', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$dropzone = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'dropzone', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$lang = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'lang', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$content = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'content', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$httpEquiv = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'httpEquiv', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$language = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'language', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$src = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'src', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$alt = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'alt', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$preload = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'preload', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$poster = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'poster', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$kind = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'kind', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$srclang = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'srclang', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$sandbox = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'sandbox', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$srcdoc = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'srcdoc', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$type_ = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'type', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$value = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'value', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$defaultValue = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'defaultValue', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$placeholder = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'placeholder', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$accept = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'accept', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$acceptCharset = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'acceptCharset', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$action = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'action', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$autocomplete = function (bool) { - return A2( - _rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, - 'autocomplete', - bool ? 'on' : 'off'); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$enctype = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'enctype', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$method = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'method', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$name = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'name', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$pattern = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'pattern', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$for = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'htmlFor', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$max = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'max', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$min = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'min', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$step = function (n) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'step', n); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$wrap = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'wrap', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$usemap = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'useMap', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$shape = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'shape', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$coords = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'coords', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$keytype = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'keytype', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$align = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'align', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$cite = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'cite', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$href = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'href', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$target = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'target', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$downloadAs = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'download', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$hreflang = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'hreflang', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$ping = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'ping', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$start = function (n) { - return A2( - _rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, - 'start', - _elm_lang$core$Basics$toString(n)); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$headers = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'headers', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$scope = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$stringProperty, 'scope', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$boolProperty = F2( - function (name, bool) { - return A2( - _rtfeldman$elm_css$Html_Styled_Attributes$property, - name, - _elm_lang$core$Json_Encode$bool(bool)); - }); -var _rtfeldman$elm_css$Html_Styled_Attributes$hidden = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'hidden', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$contenteditable = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'contentEditable', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$spellcheck = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'spellcheck', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$async = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'async', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$defer = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'defer', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$scoped = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'scoped', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$autoplay = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'autoplay', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$controls = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'controls', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$loop = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'loop', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$default = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'default', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$seamless = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'seamless', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$checked = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'checked', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$selected = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'selected', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$autofocus = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'autofocus', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$disabled = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'disabled', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$multiple = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'multiple', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$novalidate = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'noValidate', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$readonly = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'readOnly', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$required = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'required', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$ismap = function (value) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'isMap', value); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$download = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'download', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$reversed = function (bool) { - return A2(_rtfeldman$elm_css$Html_Styled_Attributes$boolProperty, 'reversed', bool); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$classList = function (list) { - return _rtfeldman$elm_css$Html_Styled_Attributes$class( - A2( - _elm_lang$core$String$join, - ' ', - A2( - _elm_lang$core$List$map, - _elm_lang$core$Tuple$first, - A2(_elm_lang$core$List$filter, _elm_lang$core$Tuple$second, list)))); -}; -var _rtfeldman$elm_css$Html_Styled_Attributes$fromUnstyled = _rtfeldman$elm_css$VirtualDom_Styled$unstyledProperty; -var _rtfeldman$elm_css$Html_Styled_Attributes$style = function (_p0) { - return _rtfeldman$elm_css$Html_Styled_Attributes$fromUnstyled( - _elm_lang$virtual_dom$VirtualDom$style(_p0)); -}; - -var _rtfeldman$elm_css$Html_Styled_Events$keyCode = A2(_elm_lang$core$Json_Decode$field, 'keyCode', _elm_lang$core$Json_Decode$int); -var _rtfeldman$elm_css$Html_Styled_Events$targetChecked = A2( - _elm_lang$core$Json_Decode$at, - { - ctor: '::', - _0: 'target', - _1: { - ctor: '::', - _0: 'checked', - _1: {ctor: '[]'} - } - }, - _elm_lang$core$Json_Decode$bool); -var _rtfeldman$elm_css$Html_Styled_Events$targetValue = A2( - _elm_lang$core$Json_Decode$at, - { - ctor: '::', - _0: 'target', - _1: { - ctor: '::', - _0: 'value', - _1: {ctor: '[]'} - } - }, - _elm_lang$core$Json_Decode$string); -var _rtfeldman$elm_css$Html_Styled_Events$defaultOptions = _elm_lang$virtual_dom$VirtualDom$defaultOptions; -var _rtfeldman$elm_css$Html_Styled_Events$onWithOptions = _rtfeldman$elm_css$VirtualDom_Styled$onWithOptions; -var _rtfeldman$elm_css$Html_Styled_Events$on = _rtfeldman$elm_css$VirtualDom_Styled$on; -var _rtfeldman$elm_css$Html_Styled_Events$onFocus = function (msg) { - return A2( - _rtfeldman$elm_css$Html_Styled_Events$on, - 'focus', - _elm_lang$core$Json_Decode$succeed(msg)); -}; -var _rtfeldman$elm_css$Html_Styled_Events$onBlur = function (msg) { - return A2( - _rtfeldman$elm_css$Html_Styled_Events$on, - 'blur', - _elm_lang$core$Json_Decode$succeed(msg)); -}; -var _rtfeldman$elm_css$Html_Styled_Events$onSubmitOptions = _elm_lang$core$Native_Utils.update( - _rtfeldman$elm_css$Html_Styled_Events$defaultOptions, - {preventDefault: true}); -var _rtfeldman$elm_css$Html_Styled_Events$onSubmit = function (msg) { - return A3( - _rtfeldman$elm_css$Html_Styled_Events$onWithOptions, - 'submit', - _rtfeldman$elm_css$Html_Styled_Events$onSubmitOptions, - _elm_lang$core$Json_Decode$succeed(msg)); -}; -var _rtfeldman$elm_css$Html_Styled_Events$onCheck = function (tagger) { - return A2( - _rtfeldman$elm_css$Html_Styled_Events$on, - 'change', - A2(_elm_lang$core$Json_Decode$map, tagger, _rtfeldman$elm_css$Html_Styled_Events$targetChecked)); -}; -var _rtfeldman$elm_css$Html_Styled_Events$onInput = function (tagger) { - return A2( - _rtfeldman$elm_css$Html_Styled_Events$on, - 'input', - A2(_elm_lang$core$Json_Decode$map, tagger, _rtfeldman$elm_css$Html_Styled_Events$targetValue)); -}; -var _rtfeldman$elm_css$Html_Styled_Events$onMouseOut = function (msg) { - return A2( - _rtfeldman$elm_css$Html_Styled_Events$on, - 'mouseout', - _elm_lang$core$Json_Decode$succeed(msg)); -}; -var _rtfeldman$elm_css$Html_Styled_Events$onMouseOver = function (msg) { - return A2( - _rtfeldman$elm_css$Html_Styled_Events$on, - 'mouseover', - _elm_lang$core$Json_Decode$succeed(msg)); -}; -var _rtfeldman$elm_css$Html_Styled_Events$onMouseLeave = function (msg) { - return A2( - _rtfeldman$elm_css$Html_Styled_Events$on, - 'mouseleave', - _elm_lang$core$Json_Decode$succeed(msg)); -}; -var _rtfeldman$elm_css$Html_Styled_Events$onMouseEnter = function (msg) { - return A2( - _rtfeldman$elm_css$Html_Styled_Events$on, - 'mouseenter', - _elm_lang$core$Json_Decode$succeed(msg)); -}; -var _rtfeldman$elm_css$Html_Styled_Events$onMouseUp = function (msg) { - return A2( - _rtfeldman$elm_css$Html_Styled_Events$on, - 'mouseup', - _elm_lang$core$Json_Decode$succeed(msg)); -}; -var _rtfeldman$elm_css$Html_Styled_Events$onMouseDown = function (msg) { - return A2( - _rtfeldman$elm_css$Html_Styled_Events$on, - 'mousedown', - _elm_lang$core$Json_Decode$succeed(msg)); -}; -var _rtfeldman$elm_css$Html_Styled_Events$onDoubleClick = function (msg) { - return A2( - _rtfeldman$elm_css$Html_Styled_Events$on, - 'dblclick', - _elm_lang$core$Json_Decode$succeed(msg)); -}; -var _rtfeldman$elm_css$Html_Styled_Events$onClick = function (msg) { - return A2( - _rtfeldman$elm_css$Html_Styled_Events$on, - 'click', - _elm_lang$core$Json_Decode$succeed(msg)); -}; -var _rtfeldman$elm_css$Html_Styled_Events$Options = F2( - function (a, b) { - return {stopPropagation: a, preventDefault: b}; - }); - -var _user$project$Lexicon$wordDefinitionView = function (model) { - var _p0 = model.currentWord; - if (_p0.ctor === 'Nothing') { - return _elm_lang$html$Html$text('no data'); - } else { - var _p1 = _p0._0; - return A2( - _elm_lang$html$Html$ul, - {ctor: '[]'}, - { - ctor: '::', - _0: A2( - _elm_lang$html$Html$li, - {ctor: '[]'}, - { - ctor: '::', - _0: _elm_lang$html$Html$text(_p1.word), - _1: {ctor: '[]'} - }), - _1: { - ctor: '::', - _0: A2( - _elm_lang$html$Html$li, - {ctor: '[]'}, - { - ctor: '::', - _0: _elm_lang$html$Html$text(_p1.definition), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - } - }); - } -}; -var _user$project$Lexicon$wordListStatusView = function (model) { - var _p2 = model.wordList; - if (_p2.ctor === 'Nothing') { - return _elm_lang$html$Html$text('no data'); - } else { - return _elm_lang$html$Html$text('received'); - } -}; -var _user$project$Lexicon$update = F2( - function (msg, model) { - var _p3 = msg; - switch (_p3.ctor) { - case 'WordListReceived': - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.update( - model, - { - wordList: _elm_lang$core$Maybe$Just(_p3._0) - }), - _1: _elm_lang$core$Platform_Cmd$none - }; - case 'WordDefinitionReceived': - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.update( - model, - { - currentWord: _elm_lang$core$Maybe$Just(_p3._0) - }), - _1: _elm_lang$core$Platform_Cmd$none - }; - case 'HandleWordListResponse': - var _p4 = _p3._0; - if (_p4.ctor === 'Ok') { - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.update( - model, - { - wordList: _elm_lang$core$Maybe$Just( - A2(_elm_lang$core$Debug$log, 'wordlist:', _p4._0)) - }), - _1: _elm_lang$core$Platform_Cmd$none - }; - } else { - var _p5 = _p4._0; - if (_p5.ctor === 'BadPayload') { - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.update( - model, - { - errorMessage: _elm_lang$core$Maybe$Just(_p5._0) - }), - _1: _elm_lang$core$Platform_Cmd$none - }; - } else { - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.update( - model, - { - errorMessage: _elm_lang$core$Maybe$Just('something happened') - }), - _1: _elm_lang$core$Platform_Cmd$none - }; - } - } - default: - var _p6 = _p3._0; - if (_p6.ctor === 'Ok') { - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.update( - model, - { - currentWord: _elm_lang$core$Maybe$Just( - A2(_elm_lang$core$Debug$log, 'currentWord:', _p6._0)) - }), - _1: _elm_lang$core$Platform_Cmd$none - }; - } else { - var _p7 = _p6._0; - if (_p7.ctor === 'BadPayload') { - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.update( - model, - { - errorMessage: _elm_lang$core$Maybe$Just(_p7._0) - }), - _1: _elm_lang$core$Platform_Cmd$none - }; - } else { - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.update( - model, - { - errorMessage: _elm_lang$core$Maybe$Just('something happened') - }), - _1: _elm_lang$core$Platform_Cmd$none - }; - } - } - } - }); -var _user$project$Lexicon$wordEncoder = function (word) { - return _elm_lang$core$Json_Encode$object( - { - ctor: '::', - _0: { - ctor: '_Tuple2', - _0: 'id', - _1: _elm_lang$core$Json_Encode$string(word.id) - }, - _1: { - ctor: '::', - _0: { - ctor: '_Tuple2', - _0: 'word', - _1: _elm_lang$core$Json_Encode$string(word.word) - }, - _1: { - ctor: '::', - _0: { - ctor: '_Tuple2', - _0: 'definition', - _1: _elm_lang$core$Json_Encode$string(word.definition) - }, - _1: { - ctor: '::', - _0: { - ctor: '_Tuple2', - _0: 'seeAlso', - _1: _elm_lang$core$Json_Encode$list( - A2(_elm_lang$core$List$map, _elm_lang$core$Json_Encode$string, word.seeAlso)) - }, - _1: {ctor: '[]'} - } - } - } - }); -}; -var _user$project$Lexicon$wordToJson = function (word) { - return A2( - _elm_lang$core$Json_Encode$encode, - 4, - _user$project$Lexicon$wordEncoder(word)); -}; -var _user$project$Lexicon$initialModel = {wordList: _elm_lang$core$Maybe$Nothing, currentWord: _elm_lang$core$Maybe$Nothing, errorMessage: _elm_lang$core$Maybe$Nothing}; -var _user$project$Lexicon$wordListReceived = _elm_lang$core$Native_Platform.incomingPort( - 'wordListReceived', - _elm_lang$core$Json_Decode$list( - A2( - _elm_lang$core$Json_Decode$andThen, - function (id) { - return A2( - _elm_lang$core$Json_Decode$andThen, - function (word) { - return _elm_lang$core$Json_Decode$succeed( - {id: id, word: word}); - }, - A2(_elm_lang$core$Json_Decode$field, 'word', _elm_lang$core$Json_Decode$string)); - }, - A2(_elm_lang$core$Json_Decode$field, 'id', _elm_lang$core$Json_Decode$string)))); -var _user$project$Lexicon$wordDefinitionReceived = _elm_lang$core$Native_Platform.incomingPort( - 'wordDefinitionReceived', - A2( - _elm_lang$core$Json_Decode$andThen, - function (id) { - return A2( - _elm_lang$core$Json_Decode$andThen, - function (word) { - return A2( - _elm_lang$core$Json_Decode$andThen, - function (definition) { - return A2( - _elm_lang$core$Json_Decode$andThen, - function (seeAlso) { - return _elm_lang$core$Json_Decode$succeed( - {id: id, word: word, definition: definition, seeAlso: seeAlso}); - }, - A2( - _elm_lang$core$Json_Decode$field, - 'seeAlso', - _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$string))); - }, - A2(_elm_lang$core$Json_Decode$field, 'definition', _elm_lang$core$Json_Decode$string)); - }, - A2(_elm_lang$core$Json_Decode$field, 'word', _elm_lang$core$Json_Decode$string)); - }, - A2(_elm_lang$core$Json_Decode$field, 'id', _elm_lang$core$Json_Decode$string))); -var _user$project$Lexicon$getWordDefinition = _elm_lang$core$Native_Platform.outgoingPort( - 'getWordDefinition', - function (v) { - return v; - }); -var _user$project$Lexicon$loadWordDefinition = function (id) { - return _user$project$Lexicon$getWordDefinition(id); -}; -var _user$project$Lexicon$loadWordDefinitionByWord = F2( - function (word, wordList) { - var list = function () { - var _p8 = wordList; - if (_p8.ctor === 'Just') { - return _p8._0; - } else { - return {ctor: '[]'}; - } - }(); - var found = _elm_lang$core$List$head( - A2( - _elm_lang$core$List$filter, - function (i) { - return _elm_lang$core$Native_Utils.eq(i.word, word); - }, - list)); - var _p9 = found; - if (_p9.ctor === 'Just') { - return _user$project$Lexicon$loadWordDefinition(_p9._0.id); - } else { - return _elm_lang$core$Platform_Cmd$none; - } - }); -var _user$project$Lexicon$getWordList = _elm_lang$core$Native_Platform.outgoingPort( - 'getWordList', - function (v) { - return null; - }); -var _user$project$Lexicon$loadWordList = _user$project$Lexicon$getWordList( - {ctor: '_Tuple0'}); -var _user$project$Lexicon$WordDefinition = F4( - function (a, b, c, d) { - return {id: a, word: b, definition: c, seeAlso: d}; - }); -var _user$project$Lexicon$responseDecoderForWordDefinition = A4( - _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$optional, - 'see_also', - _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$string), - {ctor: '[]'}, - A3( - _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, - 'definition', - _elm_lang$core$Json_Decode$string, - A3( - _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, - 'word', - _elm_lang$core$Json_Decode$string, - A3( - _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, - 'lexicon_id', - _elm_lang$core$Json_Decode$string, - _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$decode(_user$project$Lexicon$WordDefinition))))); -var _user$project$Lexicon$Word = F2( - function (a, b) { - return {id: a, word: b}; - }); -var _user$project$Lexicon$wordDecoder = A3( - _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, - 'word', - _elm_lang$core$Json_Decode$string, - A3( - _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, - 'lexicon_id', - _elm_lang$core$Json_Decode$string, - _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$decode(_user$project$Lexicon$Word))); -var _user$project$Lexicon$responseDecoder = _elm_lang$core$Json_Decode$list(_user$project$Lexicon$wordDecoder); -var _user$project$Lexicon$Model = F3( - function (a, b, c) { - return {wordList: a, currentWord: b, errorMessage: c}; - }); -var _user$project$Lexicon$WordDefinitionReceived = function (a) { - return {ctor: 'WordDefinitionReceived', _0: a}; -}; -var _user$project$Lexicon$WordListReceived = function (a) { - return {ctor: 'WordListReceived', _0: a}; -}; -var _user$project$Lexicon$subscriptions = _elm_lang$core$Platform_Sub$batch( - { - ctor: '::', - _0: _user$project$Lexicon$wordListReceived( - function (wl) { - return _user$project$Lexicon$WordListReceived(wl); - }), - _1: { - ctor: '::', - _0: _user$project$Lexicon$wordDefinitionReceived( - function (w) { - return _user$project$Lexicon$WordDefinitionReceived(w); - }), - _1: {ctor: '[]'} - } - }); -var _user$project$Lexicon$HandleWordDefinitionResponse = function (a) { - return {ctor: 'HandleWordDefinitionResponse', _0: a}; -}; -var _user$project$Lexicon$HandleWordListResponse = function (a) { - return {ctor: 'HandleWordListResponse', _0: a}; -}; - -var _user$project$Theme_Colors$theme = { - palette: { - white: A3(_rtfeldman$elm_css$Css$rgb, 255, 255, 255), - green: A3(_rtfeldman$elm_css$Css$rgb, 122, 153, 27), - lightGreen: A3(_rtfeldman$elm_css$Css$rgb, 171, 208, 57), - darkGreen: _rtfeldman$elm_css$Css$hex('#03697d'), - blue: A3(_rtfeldman$elm_css$Css$rgb, 46, 153, 174), - darkBlue: A3(_rtfeldman$elm_css$Css$rgb, 10, 70, 80), - cream: A3(_rtfeldman$elm_css$Css$rgb, 254, 248, 222), - lightBlue: A3(_rtfeldman$elm_css$Css$rgb, 140, 230, 250) - }, - button: { - background: A3(_rtfeldman$elm_css$Css$rgb, 77, 136, 0), - active: A3(_rtfeldman$elm_css$Css$rgb, 57, 101, 0), - text: A3(_rtfeldman$elm_css$Css$rgb, 237, 237, 237) - } -}; -var _user$project$Theme_Colors$Palette = F8( - function (a, b, c, d, e, f, g, h) { - return {white: a, green: b, lightGreen: c, darkGreen: d, blue: e, darkBlue: f, cream: g, lightBlue: h}; - }); -var _user$project$Theme_Colors$ButtonTheme = F3( - function (a, b, c) { - return {background: a, active: b, text: c}; - }); -var _user$project$Theme_Colors$Theme = F2( - function (a, b) { - return {palette: a, button: b}; - }); - -var _user$project$Theme_Elements$takeFurther = A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$textAlign(_rtfeldman$elm_css$Css$center), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$fontSize( - _rtfeldman$elm_css$Css$px(18)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$marginTop( - _rtfeldman$elm_css$Css$px(20)), - _1: {ctor: '[]'} - } - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$span, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.lightBlue), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$display(_rtfeldman$elm_css$Css$block), - _1: {ctor: '[]'} - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text('Go for a word adventure:'), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }); -var _user$project$Theme_Elements$seeAlso = F2( - function (click, word) { - return _elm_lang$core$Native_Utils.eq( - _elm_lang$core$String$length(word), - 0) ? A2( - _rtfeldman$elm_css$Html_Styled$span, - {ctor: '[]'}, - {ctor: '[]'}) : A2( - _rtfeldman$elm_css$Html_Styled$button, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$backgroundColor(_user$project$Theme_Colors$theme.button.background), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.white), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$borderRadius( - _rtfeldman$elm_css$Css$px(8)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$padding( - _rtfeldman$elm_css$Css$px(10)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$fontSize( - _rtfeldman$elm_css$Css$px(20)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$margin( - _rtfeldman$elm_css$Css$px(10)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$borderStyle(_rtfeldman$elm_css$Css$none), - _1: {ctor: '[]'} - } - } - } - } - } - } - }), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Events$onClick(click), - _1: {ctor: '[]'} - } - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text(word), - _1: {ctor: '[]'} - }); - }); -var _user$project$Theme_Elements$fontAwesomeIcon = F2( - function (name, size) { - return A2( - _rtfeldman$elm_css$Html_Styled$i, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$classList( - { - ctor: '::', - _0: { - ctor: '_Tuple2', - _0: A2(_elm_lang$core$Basics_ops['++'], 'fa-', name), - _1: true - }, - _1: { - ctor: '::', - _0: {ctor: '_Tuple2', _0: 'fa', _1: true}, - _1: { - ctor: '::', - _0: { - ctor: '_Tuple2', - _0: A2(_elm_lang$core$Basics_ops['++'], 'fa-', size), - _1: true - }, - _1: {ctor: '[]'} - } - } - }), - _1: {ctor: '[]'} - }, - {ctor: '[]'}); - }); -var _user$project$Theme_Elements$icon = F2( - function (name, click) { - return A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.white), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$padding( - _rtfeldman$elm_css$Css$px(5)), - _1: {ctor: '[]'} - } - }), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Events$onClick(click), - _1: {ctor: '[]'} - } - }, - { - ctor: '::', - _0: A2(_user$project$Theme_Elements$fontAwesomeIcon, name, '2x'), - _1: {ctor: '[]'} - }); - }); -var _user$project$Theme_Elements$wordDefinitionIcon = F2( - function (click, name) { - return A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.lightGreen), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$padding( - _rtfeldman$elm_css$Css$px(5)), - _1: {ctor: '[]'} - } - }), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Events$onClick(click), - _1: {ctor: '[]'} - } - }, - { - ctor: '::', - _0: A2(_user$project$Theme_Elements$fontAwesomeIcon, name, 'lg'), - _1: {ctor: '[]'} - }); - }); -var _user$project$Theme_Elements$listHeader = A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$textAlign(_rtfeldman$elm_css$Css$center), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$fontSize( - _rtfeldman$elm_css$Css$px(18)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$marginTop( - _rtfeldman$elm_css$Css$px(20)), - _1: {ctor: '[]'} - } - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$span, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.lightBlue), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$display(_rtfeldman$elm_css$Css$block), - _1: {ctor: '[]'} - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text('Scroll the results and choose a word!'), - _1: {ctor: '[]'} - }), - _1: { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$hr, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$display(_rtfeldman$elm_css$Css$block), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$height(_rtfeldman$elm_css$Css$zero), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$border(_rtfeldman$elm_css$Css$zero), - _1: { - ctor: '::', - _0: A3( - _rtfeldman$elm_css$Css$borderTop3, - _rtfeldman$elm_css$Css$px(2), - _rtfeldman$elm_css$Css$solid, - _user$project$Theme_Colors$theme.palette.lightBlue), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$width( - _rtfeldman$elm_css$Css$pct(10)), - _1: {ctor: '[]'} - } - } - } - } - }), - _1: {ctor: '[]'} - }, - {ctor: '[]'}), - _1: {ctor: '[]'} - } - }); -var _user$project$Theme_Elements$searchBox = F2( - function (changed, query) { - return A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$marginTop( - _rtfeldman$elm_css$Css$px(10)), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$input, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$fontSize( - _rtfeldman$elm_css$Css$px(30)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$textAlign(_rtfeldman$elm_css$Css$center), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$borderStyle(_rtfeldman$elm_css$Css$none), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$backgroundColor(_rtfeldman$elm_css$Css$transparent), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.white), - _1: {ctor: '[]'} - } - } - } - } - }), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Events$onInput(changed), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$value(query), - _1: {ctor: '[]'} - } - } - }, - {ctor: '[]'}), - _1: { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$hr, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$display(_rtfeldman$elm_css$Css$block), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$height(_rtfeldman$elm_css$Css$zero), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$border(_rtfeldman$elm_css$Css$zero), - _1: { - ctor: '::', - _0: A3( - _rtfeldman$elm_css$Css$borderTop3, - _rtfeldman$elm_css$Css$px(1), - _rtfeldman$elm_css$Css$solid, - _user$project$Theme_Colors$theme.palette.white), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$width( - _rtfeldman$elm_css$Css$pct(80)), - _1: {ctor: '[]'} - } - } - } - } - }), - _1: {ctor: '[]'} - }, - {ctor: '[]'}), - _1: {ctor: '[]'} - } - }); - }); -var _user$project$Theme_Elements$searchHeader = function (click) { - return A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$textAlign(_rtfeldman$elm_css$Css$center), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$fontSize( - _rtfeldman$elm_css$Css$px(18)), - _1: {ctor: '[]'} - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$span, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.lightBlue), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$display(_rtfeldman$elm_css$Css$block), - _1: {ctor: '[]'} - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text('Enter a single word or part of a word'), - _1: {ctor: '[]'} - }), - _1: { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$span, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.lightGreen), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$display(_rtfeldman$elm_css$Css$block), - _1: {ctor: '[]'} - } - }), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Events$onClick(click), - _1: {ctor: '[]'} - } - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text('Need help?'), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - } - }); -}; -var _user$project$Theme_Elements$headerTitle = A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$textAlign(_rtfeldman$elm_css$Css$center), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$backgroundColor( - _rtfeldman$elm_css$Css$hex('#0a4650')), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$height( - _rtfeldman$elm_css$Css$px(43)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$displayFlex, - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$flexDirection(_rtfeldman$elm_css$Css$row), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$alignItems(_rtfeldman$elm_css$Css$center), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$justifyContent(_rtfeldman$elm_css$Css$center), - _1: {ctor: '[]'} - } - } - } - } - } - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$h1, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$fontSize( - _rtfeldman$elm_css$Css$px(18)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$fontWeight(_rtfeldman$elm_css$Css$bold), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.white), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$textTransform(_rtfeldman$elm_css$Css$uppercase), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$margin(_rtfeldman$elm_css$Css$zero), - _1: {ctor: '[]'} - } - } - } - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text('A Hindu Lexicon'), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }); -var _user$project$Theme_Elements$headerStyle = _rtfeldman$elm_css$Css$batch( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$position(_rtfeldman$elm_css$Css$fixed), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$top(_rtfeldman$elm_css$Css$zero), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$width( - _rtfeldman$elm_css$Css$pct(100)), - _1: {ctor: '[]'} - } - } - }); -var _user$project$Theme_Elements$bodyStyle = _rtfeldman$elm_css$Css$batch( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$backgroundColor(_user$project$Theme_Colors$theme.palette.darkGreen), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$height( - _rtfeldman$elm_css$Css$pct(100)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$minHeight( - _rtfeldman$elm_css$Css$pct(100)), - _1: {ctor: '[]'} - } - } - }); -var _user$project$Theme_Elements$toolbarButton = A2( - _rtfeldman$elm_css$Html_Styled$styled, - _rtfeldman$elm_css$Html_Styled$button, - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.white), - _1: {ctor: '[]'} - }); -var _user$project$Theme_Elements$navButton = function (isCurrentPage) { - var bgColor = isCurrentPage ? _user$project$Theme_Colors$theme.button.active : _user$project$Theme_Colors$theme.button.background; - return A2( - _rtfeldman$elm_css$Html_Styled$styled, - _rtfeldman$elm_css$Html_Styled$button, - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$flex( - _rtfeldman$elm_css$Css$int(1)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$margin( - _rtfeldman$elm_css$Css$px(2)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$height( - _rtfeldman$elm_css$Css$px(57)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$fontSize( - _rtfeldman$elm_css$Css$px(18)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$backgroundColor(bgColor), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$borderStyle(_rtfeldman$elm_css$Css$none), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.button.text), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$hover( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$backgroundColor(_user$project$Theme_Colors$theme.button.active), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - } - } - } - } - } - } - } - }); -}; - -var _user$project$Main$helpView = function (karma) { - return A2( - _rtfeldman$elm_css$Html_Styled$div, - {ctor: '[]'}, - { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$h1, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.white), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$textTransform(_rtfeldman$elm_css$Css$capitalize), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$marginTop( - _rtfeldman$elm_css$Css$px(125)), - _1: {ctor: '[]'} - } - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text('Help'), - _1: {ctor: '[]'} - }), - _1: { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$p, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.white), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$textAlign(_rtfeldman$elm_css$Css$justify), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$fontSize( - _rtfeldman$elm_css$Css$px(20)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$padding( - _rtfeldman$elm_css$Css$px(15)), - _1: {ctor: '[]'} - } - } - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text('Welcome the Hindu Lexicon! Type the characters that you know are in a word. All the possible choices will appear. Use less characters if you do not know to the spelling of a word. Use more if want to limit the choices.'), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text(' Gurudeva recommended study of one word and associated words. Take:'), - _1: { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$br, - {ctor: '[]'}, - {ctor: '[]'}), - _1: { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$textAlign(_rtfeldman$elm_css$Css$center), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: A2(_user$project$Theme_Elements$seeAlso, karma, 'karma'), - _1: {ctor: '[]'} - }), - _1: { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$br, - {ctor: '[]'}, - {ctor: '[]'}), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text(' and go a word adventure clicking the other that pop up. You can a word to my word, but click the bookmark. When you are in My Word, clicking the bookmark will delete word. '), - _1: {ctor: '[]'} - } - } - } - } - } - }), - _1: {ctor: '[]'} - } - }); -}; -var _user$project$Main$loadingView = A2( - _rtfeldman$elm_css$Html_Styled$h1, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.white), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$textTransform(_rtfeldman$elm_css$Css$capitalize), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$marginTop( - _rtfeldman$elm_css$Css$px(125)), - _1: {ctor: '[]'} - } - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text('Loading'), - _1: {ctor: '[]'} - }); -var _user$project$Main$isSeeAlsoEmpty = function (list) { - var _p0 = list; - if (_p0.ctor === '::') { - return _elm_lang$core$Native_Utils.eq( - _elm_lang$core$String$length(_p0._0), - 0); - } else { - return true; - } -}; -var _user$project$Main$filterWordList = F2( - function (word, list) { - return _elm_lang$core$String$isEmpty(word) ? list : A2( - _elm_lang$core$List$filter, - function (item) { - return A2( - _elm_lang$core$String$contains, - _elm_lang$core$String$toLower(word), - _elm_lang$core$String$toLower(item.word)); - }, - list); - }); -var _user$project$Main$isWordSaved = F2( - function (word, wordList) { - var list = A2( - _elm_lang$core$List$filter, - function (item) { - return _elm_lang$core$Native_Utils.eq(item.word, word); - }, - wordList); - return _elm_lang$core$List$isEmpty(list); - }); -var _user$project$Main$lcDebug = _elm_lang$core$Native_Platform.outgoingPort( - 'lcDebug', - function (v) { - return v; - }); -var _user$project$Main$saveWord = _elm_lang$core$Native_Platform.outgoingPort( - 'saveWord', - function (v) { - return v; - }); -var _user$project$Main$savedWordListChanged = _elm_lang$core$Native_Platform.incomingPort( - 'savedWordListChanged', - _elm_lang$core$Json_Decode$list( - A2( - _elm_lang$core$Json_Decode$andThen, - function (id) { - return A2( - _elm_lang$core$Json_Decode$andThen, - function (word) { - return _elm_lang$core$Json_Decode$succeed( - {id: id, word: word}); - }, - A2(_elm_lang$core$Json_Decode$field, 'word', _elm_lang$core$Json_Decode$string)); - }, - A2(_elm_lang$core$Json_Decode$field, 'id', _elm_lang$core$Json_Decode$string)))); -var _user$project$Main$removeSavedWord = _elm_lang$core$Native_Platform.outgoingPort( - 'removeSavedWord', - function (v) { - return v; - }); -var _user$project$Main$appGoSettings = _elm_lang$core$Native_Platform.outgoingPort( - 'appGoSettings', - function (v) { - return null; - }); -var _user$project$Main$appGoHome = _elm_lang$core$Native_Platform.outgoingPort( - 'appGoHome', - function (v) { - return null; - }); -var _user$project$Main$scrollTop = _elm_lang$core$Native_Platform.outgoingPort( - 'scrollTop', - function (v) { - return null; - }); -var _user$project$Main$Model = F6( - function (a, b, c, d, e, f) { - return {currentPage: a, searchInput: b, lexiconModel: c, savedWords: d, query: e, errorMessage: f}; - }); -var _user$project$Main$HelpView = {ctor: 'HelpView'}; -var _user$project$Main$DefinitionView = {ctor: 'DefinitionView'}; -var _user$project$Main$MyWordsView = {ctor: 'MyWordsView'}; -var _user$project$Main$SurpriseView = {ctor: 'SurpriseView'}; -var _user$project$Main$SearchView = {ctor: 'SearchView'}; -var _user$project$Main$initialModel = {currentPage: _user$project$Main$SearchView, searchInput: _elm_lang$core$Maybe$Nothing, savedWords: _elm_lang$core$Maybe$Nothing, lexiconModel: _user$project$Lexicon$initialModel, query: '', errorMessage: _elm_lang$core$Maybe$Nothing}; -var _user$project$Main$LoadingView = {ctor: 'LoadingView'}; -var _user$project$Main$NoOp = {ctor: 'NoOp'}; -var _user$project$Main$GoSettings = {ctor: 'GoSettings'}; -var _user$project$Main$GoHome = {ctor: 'GoHome'}; -var _user$project$Main$appNavigation = A2( - _rtfeldman$elm_css$Html_Styled$nav, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$displayFlex, - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$flexDirection(_rtfeldman$elm_css$Css$row), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$justifyContent(_rtfeldman$elm_css$Css$spaceBetween), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$alignItems(_rtfeldman$elm_css$Css$center), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$position(_rtfeldman$elm_css$Css$fixed), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$bottom(_rtfeldman$elm_css$Css$zero), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$backgroundColor(_user$project$Theme_Colors$theme.palette.darkBlue), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$height( - _rtfeldman$elm_css$Css$px(48)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$width( - _rtfeldman$elm_css$Css$pct(100)), - _1: { - ctor: '::', - _0: A4( - _rtfeldman$elm_css$Css$boxShadow4, - _rtfeldman$elm_css$Css$zero, - _rtfeldman$elm_css$Css$zero, - _rtfeldman$elm_css$Css$px(5), - A3(_rtfeldman$elm_css$Css$rgb, 0, 0, 0)), - _1: {ctor: '[]'} - } - } - } - } - } - } - } - } - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: A2(_user$project$Theme_Elements$icon, 'home', _user$project$Main$GoHome), - _1: { - ctor: '::', - _0: A2(_user$project$Theme_Elements$icon, 'cog', _user$project$Main$GoSettings), - _1: {ctor: '[]'} - } - }); -var _user$project$Main$SavedWordListChanged = function (a) { - return {ctor: 'SavedWordListChanged', _0: a}; -}; -var _user$project$Main$RemoveSavedWord = function (a) { - return {ctor: 'RemoveSavedWord', _0: a}; -}; -var _user$project$Main$SaveWord = function (a) { - return {ctor: 'SaveWord', _0: a}; -}; -var _user$project$Main$bookmarkIconView = F2( - function (definition, wordlist) { - var list = function () { - var _p1 = wordlist; - if (_p1.ctor === 'Just') { - return _p1._0; - } else { - return {ctor: '[]'}; - } - }(); - var isSaved = A2(_user$project$Main$isWordSaved, definition.word, list); - return isSaved ? A2( - _user$project$Theme_Elements$wordDefinitionIcon, - _user$project$Main$SaveWord(definition), - 'bookmark-o') : A2( - _user$project$Theme_Elements$wordDefinitionIcon, - _user$project$Main$RemoveSavedWord(definition), - 'bookmark'); - }); -var _user$project$Main$FilterWordList = function (a) { - return {ctor: 'FilterWordList', _0: a}; -}; -var _user$project$Main$LoadRandomDefinition = {ctor: 'LoadRandomDefinition'}; -var _user$project$Main$LoadDefinitionByWord = function (a) { - return {ctor: 'LoadDefinitionByWord', _0: a}; -}; -var _user$project$Main$definitionView = function (model) { - var _p2 = model.lexiconModel.currentWord; - if (_p2.ctor === 'Just') { - var _p3 = _p2._0; - return A2( - _rtfeldman$elm_css$Html_Styled$div, - {ctor: '[]'}, - { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$h1, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.white), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$textTransform(_rtfeldman$elm_css$Css$capitalize), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$marginTop( - _rtfeldman$elm_css$Css$px(125)), - _1: {ctor: '[]'} - } - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text(_p3.word), - _1: {ctor: '[]'} - }), - _1: { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$displayFlex, - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$flexDirection(_rtfeldman$elm_css$Css$row), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$alignItems(_rtfeldman$elm_css$Css$center), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$justifyContent(_rtfeldman$elm_css$Css$center), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.green), - _1: {ctor: '[]'} - } - } - } - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: A2(_user$project$Main$bookmarkIconView, _p3, model.savedWords), - _1: {ctor: '[]'} - }), - _1: { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$p, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.white), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$fontSize( - _rtfeldman$elm_css$Css$pt(16)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$textAlign(_rtfeldman$elm_css$Css$left), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$padding( - _rtfeldman$elm_css$Css$px(20)), - _1: {ctor: '[]'} - } - } - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text(_p3.definition), - _1: {ctor: '[]'} - }), - _1: { - ctor: '::', - _0: _user$project$Main$isSeeAlsoEmpty(_p3.seeAlso) ? A2( - _rtfeldman$elm_css$Html_Styled$div, - {ctor: '[]'}, - {ctor: '[]'}) : A2( - _rtfeldman$elm_css$Html_Styled$div, - {ctor: '[]'}, - { - ctor: '::', - _0: _user$project$Theme_Elements$takeFurther, - _1: { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$div, - {ctor: '[]'}, - A2( - _elm_lang$core$List$map, - function (i) { - return A2( - _user$project$Theme_Elements$seeAlso, - _user$project$Main$LoadDefinitionByWord(i), - i); - }, - _p3.seeAlso)), - _1: {ctor: '[]'} - } - }), - _1: { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$height( - _rtfeldman$elm_css$Css$px(60)), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }, - {ctor: '[]'}), - _1: {ctor: '[]'} - } - } - } - } - }); - } else { - return A2( - _rtfeldman$elm_css$Html_Styled$div, - {ctor: '[]'}, - { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$h1, - {ctor: '[]'}, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text('wait...'), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }); - } -}; -var _user$project$Main$LoadDefinitionByInt = function (a) { - return {ctor: 'LoadDefinitionByInt', _0: a}; -}; -var _user$project$Main$LoadDefinition = function (a) { - return {ctor: 'LoadDefinition', _0: a}; -}; -var _user$project$Main$addWordItem = function (word) { - return A2( - _rtfeldman$elm_css$Html_Styled$li, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Events$onClick( - _user$project$Main$LoadDefinition(word.id)), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text(word.word), - _1: {ctor: '[]'} - }); -}; -var _user$project$Main$Navigate = function (a) { - return {ctor: 'Navigate', _0: a}; -}; -var _user$project$Main$pageNavigation = function (currentPage) { - var activePage = function () { - var _p4 = currentPage; - switch (_p4.ctor) { - case 'SearchView': - return 'search'; - case 'MyWordsView': - return 'mywords'; - default: - return 'other'; - } - }(); - return A2( - _rtfeldman$elm_css$Html_Styled$nav, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$displayFlex, - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$flexDirection(_rtfeldman$elm_css$Css$row), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$backgroundColor(_user$project$Theme_Colors$theme.palette.darkGreen), - _1: {ctor: '[]'} - } - } - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: A3( - _user$project$Theme_Elements$navButton, - _elm_lang$core$Native_Utils.eq(activePage, 'search'), - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Events$onClick( - _user$project$Main$Navigate(_user$project$Main$SearchView)), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text('Search'), - _1: {ctor: '[]'} - }), - _1: { - ctor: '::', - _0: A3( - _user$project$Theme_Elements$navButton, - false, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Events$onClick(_user$project$Main$LoadRandomDefinition), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text('Surprise!'), - _1: {ctor: '[]'} - }), - _1: { - ctor: '::', - _0: A3( - _user$project$Theme_Elements$navButton, - _elm_lang$core$Native_Utils.eq(activePage, 'mywords'), - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Events$onClick( - _user$project$Main$Navigate(_user$project$Main$MyWordsView)), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text('My Words'), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - } - } - }); -}; -var _user$project$Main$searchView = function (model) { - var _p5 = model.lexiconModel.wordList; - if (_p5.ctor === 'Just') { - return A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$marginTop( - _rtfeldman$elm_css$Css$px(125)), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _user$project$Theme_Elements$searchHeader( - _user$project$Main$Navigate(_user$project$Main$HelpView)), - _1: { - ctor: '::', - _0: A2(_user$project$Theme_Elements$searchBox, _user$project$Main$FilterWordList, model.query), - _1: { - ctor: '::', - _0: _user$project$Theme_Elements$listHeader, - _1: { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$ul, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.white), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$fontSize( - _rtfeldman$elm_css$Css$pt(18)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$textAlign(_rtfeldman$elm_css$Css$center), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$listStyle(_rtfeldman$elm_css$Css$none), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$padding( - _rtfeldman$elm_css$Css$px(20)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$overflowY(_rtfeldman$elm_css$Css$scroll), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$height( - _rtfeldman$elm_css$Css$px(250)), - _1: {ctor: '[]'} - } - } - } - } - } - } - }), - _1: {ctor: '[]'} - }, - A2( - _elm_lang$core$List$map, - _user$project$Main$addWordItem, - A2(_user$project$Main$filterWordList, model.query, _p5._0))), - _1: {ctor: '[]'} - } - } - } - }); - } else { - return A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$marginTop( - _rtfeldman$elm_css$Css$px(125)), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$h1, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.white), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text('Loading ...'), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }); - } -}; -var _user$project$Main$myWordsView = function (model) { - var _p6 = model.savedWords; - if (_p6.ctor === 'Just') { - return A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$marginTop( - _rtfeldman$elm_css$Css$px(125)), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _user$project$Theme_Elements$searchHeader( - _user$project$Main$Navigate(_user$project$Main$HelpView)), - _1: { - ctor: '::', - _0: A2(_user$project$Theme_Elements$searchBox, _user$project$Main$FilterWordList, model.query), - _1: { - ctor: '::', - _0: _user$project$Theme_Elements$listHeader, - _1: { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$ul, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.white), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$fontSize( - _rtfeldman$elm_css$Css$pt(18)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$textAlign(_rtfeldman$elm_css$Css$center), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$listStyle(_rtfeldman$elm_css$Css$none), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$padding( - _rtfeldman$elm_css$Css$px(20)), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$overflowY(_rtfeldman$elm_css$Css$scroll), - _1: { - ctor: '::', - _0: _rtfeldman$elm_css$Css$height( - _rtfeldman$elm_css$Css$px(300)), - _1: {ctor: '[]'} - } - } - } - } - } - } - }), - _1: {ctor: '[]'} - }, - A2( - _elm_lang$core$List$map, - _user$project$Main$addWordItem, - A2(_user$project$Main$filterWordList, model.query, _p6._0))), - _1: {ctor: '[]'} - } - } - } - }); - } else { - return A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$marginTop( - _rtfeldman$elm_css$Css$px(125)), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$h1, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _rtfeldman$elm_css$Css$color(_user$project$Theme_Colors$theme.palette.white), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text('You can click on the bookmark icon on word definitions to save them!'), - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }); - } -}; -var _user$project$Main$view = function (model) { - var activeView = function () { - var _p7 = model.currentPage; - switch (_p7.ctor) { - case 'DefinitionView': - return _user$project$Main$definitionView(model); - case 'LoadingView': - return _user$project$Main$loadingView; - case 'SearchView': - return _user$project$Main$searchView(model); - case 'MyWordsView': - return _user$project$Main$myWordsView(model); - case 'HelpView': - return _user$project$Main$helpView( - _user$project$Main$LoadDefinitionByWord('karma')); - default: - return A2( - _rtfeldman$elm_css$Html_Styled$h1, - {ctor: '[]'}, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled$text('not implemented'), - _1: {ctor: '[]'} - }); - } - }(); - return A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _user$project$Theme_Elements$bodyStyle, - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: A2( - _rtfeldman$elm_css$Html_Styled$div, - { - ctor: '::', - _0: _rtfeldman$elm_css$Html_Styled_Attributes$css( - { - ctor: '::', - _0: _user$project$Theme_Elements$headerStyle, - _1: {ctor: '[]'} - }), - _1: {ctor: '[]'} - }, - { - ctor: '::', - _0: _user$project$Theme_Elements$headerTitle, - _1: { - ctor: '::', - _0: _user$project$Main$pageNavigation(model.currentPage), - _1: {ctor: '[]'} - } - }), - _1: { - ctor: '::', - _0: activeView, - _1: { - ctor: '::', - _0: _user$project$Main$appNavigation, - _1: {ctor: '[]'} - } - } - }); -}; -var _user$project$Main$LexiconMsg = function (a) { - return {ctor: 'LexiconMsg', _0: a}; -}; -var _user$project$Main$subscriptions = function (model) { - var d = _user$project$Main$lcDebug('subscription arrived'); - return _elm_lang$core$Platform_Sub$batch( - { - ctor: '::', - _0: _user$project$Main$savedWordListChanged( - function (wl) { - return _user$project$Main$SavedWordListChanged(wl); - }), - _1: { - ctor: '::', - _0: A2(_elm_lang$core$Platform_Sub$map, _user$project$Main$LexiconMsg, _user$project$Lexicon$subscriptions), - _1: {ctor: '[]'} - } - }); -}; -var _user$project$Main$startApplication = A2(_elm_lang$core$Platform_Cmd$map, _user$project$Main$LexiconMsg, _user$project$Lexicon$loadWordList); -var _user$project$Main$init = function (wl) { - return _elm_lang$core$List$isEmpty(wl) ? {ctor: '_Tuple2', _0: _user$project$Main$initialModel, _1: _user$project$Main$startApplication} : { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.update( - _user$project$Main$initialModel, - { - savedWords: _elm_lang$core$Maybe$Just(wl) - }), - _1: _user$project$Main$startApplication - }; -}; -var _user$project$Main$update = F2( - function (msg, model) { - var _p8 = msg; - switch (_p8.ctor) { - case 'GoHome': - return { - ctor: '_Tuple2', - _0: model, - _1: _user$project$Main$appGoHome( - {ctor: '_Tuple0'}) - }; - case 'GoSettings': - return { - ctor: '_Tuple2', - _0: model, - _1: _user$project$Main$appGoSettings( - {ctor: '_Tuple0'}) - }; - case 'LexiconMsg': - var _p11 = _p8._0; - var _p9 = A2(_user$project$Lexicon$update, _p11, model.lexiconModel); - var updateLexiconModel = _p9._0; - var lexiconCmd = _p9._1; - var _p10 = _p11; - switch (_p10.ctor) { - case 'WordListReceived': - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.update( - model, - {currentPage: _user$project$Main$SearchView, lexiconModel: updateLexiconModel}), - _1: A2(_elm_lang$core$Platform_Cmd$map, _user$project$Main$LexiconMsg, lexiconCmd) - }; - case 'WordDefinitionReceived': - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.update( - model, - {currentPage: _user$project$Main$DefinitionView, lexiconModel: updateLexiconModel}), - _1: _elm_lang$core$Platform_Cmd$batch( - { - ctor: '::', - _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$Main$LexiconMsg, lexiconCmd), - _1: { - ctor: '::', - _0: _user$project$Main$scrollTop( - {ctor: '_Tuple0'}), - _1: {ctor: '[]'} - } - }) - }; - default: - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.update( - model, - {lexiconModel: updateLexiconModel}), - _1: A2(_elm_lang$core$Platform_Cmd$map, _user$project$Main$LexiconMsg, lexiconCmd) - }; - } - case 'Navigate': - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.update( - model, - {currentPage: _p8._0}), - _1: _elm_lang$core$Platform_Cmd$none - }; - case 'LoadRandomDefinition': - var _p12 = model.lexiconModel.wordList; - if (_p12.ctor === 'Just') { - var lastItem = _elm_lang$core$List$length(_p12._0) - 1; - var gen = A2(_elm_lang$core$Random$int, 1, lastItem); - return { - ctor: '_Tuple2', - _0: model, - _1: A2(_elm_lang$core$Random$generate, _user$project$Main$LoadDefinitionByInt, gen) - }; - } else { - return {ctor: '_Tuple2', _0: model, _1: _elm_lang$core$Platform_Cmd$none}; - } - case 'LoadDefinition': - return { - ctor: '_Tuple2', - _0: model, - _1: A2( - _elm_lang$core$Platform_Cmd$map, - _user$project$Main$LexiconMsg, - _user$project$Lexicon$loadWordDefinition(_p8._0)) - }; - case 'LoadDefinitionByWord': - return { - ctor: '_Tuple2', - _0: model, - _1: A2( - _elm_lang$core$Platform_Cmd$map, - _user$project$Main$LexiconMsg, - A2(_user$project$Lexicon$loadWordDefinitionByWord, _p8._0, model.lexiconModel.wordList)) - }; - case 'LoadDefinitionByInt': - return { - ctor: '_Tuple2', - _0: model, - _1: A2( - _elm_lang$core$Platform_Cmd$map, - _user$project$Main$LexiconMsg, - _user$project$Lexicon$loadWordDefinition( - _elm_lang$core$Basics$toString(_p8._0))) - }; - case 'FilterWordList': - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.update( - model, - {query: _p8._0}), - _1: _elm_lang$core$Platform_Cmd$none - }; - case 'SaveWord': - return { - ctor: '_Tuple2', - _0: model, - _1: _user$project$Main$saveWord( - _user$project$Lexicon$wordEncoder(_p8._0)) - }; - case 'RemoveSavedWord': - return { - ctor: '_Tuple2', - _0: model, - _1: _user$project$Main$removeSavedWord( - _user$project$Lexicon$wordEncoder(_p8._0)) - }; - case 'SavedWordListChanged': - return { - ctor: '_Tuple2', - _0: _elm_lang$core$Native_Utils.update( - model, - { - savedWords: _elm_lang$core$Maybe$Just(_p8._0) - }), - _1: _elm_lang$core$Platform_Cmd$none - }; - default: - return {ctor: '_Tuple2', _0: model, _1: _elm_lang$core$Platform_Cmd$none}; - } - }); -var _user$project$Main$main = _elm_lang$html$Html$programWithFlags( - { - view: function (_p13) { - return _rtfeldman$elm_css$Html_Styled$toUnstyled( - _user$project$Main$view(_p13)); - }, - init: _user$project$Main$init, - update: _user$project$Main$update, - subscriptions: _user$project$Main$subscriptions - })( - _elm_lang$core$Json_Decode$list( - A2( - _elm_lang$core$Json_Decode$andThen, - function (id) { - return A2( - _elm_lang$core$Json_Decode$andThen, - function (word) { - return _elm_lang$core$Json_Decode$succeed( - {id: id, word: word}); - }, - A2(_elm_lang$core$Json_Decode$field, 'word', _elm_lang$core$Json_Decode$string)); - }, - A2(_elm_lang$core$Json_Decode$field, 'id', _elm_lang$core$Json_Decode$string)))); - -var Elm = {}; -Elm['Main'] = Elm['Main'] || {}; -if (typeof _user$project$Main$main !== 'undefined') { - _user$project$Main$main(Elm['Main'], 'Main', undefined); -} - -if (typeof define === "function" && define['amd']) -{ - define([], function() { return Elm; }); - return; -} - -if (typeof module === "object") -{ - module['exports'] = Elm; - return; -} - -var globalElm = this['Elm']; -if (typeof globalElm === "undefined") -{ - this['Elm'] = Elm; - return; -} - -for (var publicModule in Elm) -{ - if (publicModule in globalElm) - { - throw new Error('There are two Elm modules called `' + publicModule + '` on this page! Rename one of them.'); - } - globalElm[publicModule] = Elm[publicModule]; -} - -}).call(this); - +(function(scope){ +'use strict'; + +function F(arity, fun, wrapper) { + wrapper.a = arity; + wrapper.f = fun; + return wrapper; +} + +function F2(fun) { + return F(2, fun, function(a) { return function(b) { return fun(a,b); }; }) +} +function F3(fun) { + return F(3, fun, function(a) { + return function(b) { return function(c) { return fun(a, b, c); }; }; + }); +} +function F4(fun) { + return F(4, fun, function(a) { return function(b) { return function(c) { + return function(d) { return fun(a, b, c, d); }; }; }; + }); +} +function F5(fun) { + return F(5, fun, function(a) { return function(b) { return function(c) { + return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; }; + }); +} +function F6(fun) { + return F(6, fun, function(a) { return function(b) { return function(c) { + return function(d) { return function(e) { return function(f) { + return fun(a, b, c, d, e, f); }; }; }; }; }; + }); +} +function F7(fun) { + return F(7, fun, function(a) { return function(b) { return function(c) { + return function(d) { return function(e) { return function(f) { + return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; }; + }); +} +function F8(fun) { + return F(8, fun, function(a) { return function(b) { return function(c) { + return function(d) { return function(e) { return function(f) { + return function(g) { return function(h) { + return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; }; + }); +} +function F9(fun) { + return F(9, fun, function(a) { return function(b) { return function(c) { + return function(d) { return function(e) { return function(f) { + return function(g) { return function(h) { return function(i) { + return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; }; + }); +} + +function A2(fun, a, b) { + return fun.a === 2 ? fun.f(a, b) : fun(a)(b); +} +function A3(fun, a, b, c) { + return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c); +} +function A4(fun, a, b, c, d) { + return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d); +} +function A5(fun, a, b, c, d, e) { + return fun.a === 5 ? fun.f(a, b, c, d, e) : fun(a)(b)(c)(d)(e); +} +function A6(fun, a, b, c, d, e, f) { + return fun.a === 6 ? fun.f(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f); +} +function A7(fun, a, b, c, d, e, f, g) { + return fun.a === 7 ? fun.f(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g); +} +function A8(fun, a, b, c, d, e, f, g, h) { + return fun.a === 8 ? fun.f(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h); +} +function A9(fun, a, b, c, d, e, f, g, h, i) { + return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i); +} + + + + +var _List_Nil = { $: 0 }; +var _List_Nil_UNUSED = { $: '[]' }; + +function _List_Cons(hd, tl) { return { $: 1, a: hd, b: tl }; } +function _List_Cons_UNUSED(hd, tl) { return { $: '::', a: hd, b: tl }; } + + +var _List_cons = F2(_List_Cons); + +function _List_fromArray(arr) +{ + var out = _List_Nil; + for (var i = arr.length; i--; ) + { + out = _List_Cons(arr[i], out); + } + return out; +} + +function _List_toArray(xs) +{ + for (var out = []; xs.b; xs = xs.b) // WHILE_CONS + { + out.push(xs.a); + } + return out; +} + +var _List_map2 = F3(function(f, xs, ys) +{ + for (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES + { + arr.push(A2(f, xs.a, ys.a)); + } + return _List_fromArray(arr); +}); + +var _List_map3 = F4(function(f, xs, ys, zs) +{ + for (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES + { + arr.push(A3(f, xs.a, ys.a, zs.a)); + } + return _List_fromArray(arr); +}); + +var _List_map4 = F5(function(f, ws, xs, ys, zs) +{ + for (var arr = []; ws.b && xs.b && ys.b && zs.b; ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES + { + arr.push(A4(f, ws.a, xs.a, ys.a, zs.a)); + } + return _List_fromArray(arr); +}); + +var _List_map5 = F6(function(f, vs, ws, xs, ys, zs) +{ + for (var arr = []; vs.b && ws.b && xs.b && ys.b && zs.b; vs = vs.b, ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES + { + arr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a)); + } + return _List_fromArray(arr); +}); + +var _List_sortBy = F2(function(f, xs) +{ + return _List_fromArray(_List_toArray(xs).sort(function(a, b) { + return _Utils_cmp(f(a), f(b)); + })); +}); + +var _List_sortWith = F2(function(f, xs) +{ + return _List_fromArray(_List_toArray(xs).sort(function(a, b) { + var ord = A2(f, a, b); + return ord === elm$core$Basics$EQ ? 0 : ord === elm$core$Basics$LT ? -1 : 1; + })); +}); + + + +// EQUALITY + +function _Utils_eq(x, y) +{ + for ( + var pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack); + isEqual && (pair = stack.pop()); + isEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack) + ) + {} + + return isEqual; +} + +function _Utils_eqHelp(x, y, depth, stack) +{ + if (depth > 100) + { + stack.push(_Utils_Tuple2(x,y)); + return true; + } + + if (x === y) + { + return true; + } + + if (typeof x !== 'object' || x === null || y === null) + { + typeof x === 'function' && _Debug_crash(5); + return false; + } + + /**_UNUSED/ + if (x.$ === 'Set_elm_builtin') + { + x = elm$core$Set$toList(x); + y = elm$core$Set$toList(y); + } + if (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin') + { + x = elm$core$Dict$toList(x); + y = elm$core$Dict$toList(y); + } + //*/ + + /**/ + if (x.$ < 0) + { + x = elm$core$Dict$toList(x); + y = elm$core$Dict$toList(y); + } + //*/ + + for (var key in x) + { + if (!_Utils_eqHelp(x[key], y[key], depth + 1, stack)) + { + return false; + } + } + return true; +} + +var _Utils_equal = F2(_Utils_eq); +var _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); }); + + + +// COMPARISONS + +// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on +// the particular integer values assigned to LT, EQ, and GT. + +function _Utils_cmp(x, y, ord) +{ + if (typeof x !== 'object') + { + return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1; + } + + /**_UNUSED/ + if (x instanceof String) + { + var a = x.valueOf(); + var b = y.valueOf(); + return a === b ? 0 : a < b ? -1 : 1; + } + //*/ + + /**/ + if (!x.$) + //*/ + /**_UNUSED/ + if (x.$[0] === '#') + //*/ + { + return (ord = _Utils_cmp(x.a, y.a)) + ? ord + : (ord = _Utils_cmp(x.b, y.b)) + ? ord + : _Utils_cmp(x.c, y.c); + } + + // traverse conses until end of a list or a mismatch + for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES + return ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0); +} + +var _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; }); +var _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; }); +var _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; }); +var _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; }); + +var _Utils_compare = F2(function(x, y) +{ + var n = _Utils_cmp(x, y); + return n < 0 ? elm$core$Basics$LT : n ? elm$core$Basics$GT : elm$core$Basics$EQ; +}); + + +// COMMON VALUES + +var _Utils_Tuple0 = 0; +var _Utils_Tuple0_UNUSED = { $: '#0' }; + +function _Utils_Tuple2(a, b) { return { a: a, b: b }; } +function _Utils_Tuple2_UNUSED(a, b) { return { $: '#2', a: a, b: b }; } + +function _Utils_Tuple3(a, b, c) { return { a: a, b: b, c: c }; } +function _Utils_Tuple3_UNUSED(a, b, c) { return { $: '#3', a: a, b: b, c: c }; } + +function _Utils_chr(c) { return c; } +function _Utils_chr_UNUSED(c) { return new String(c); } + + +// RECORDS + +function _Utils_update(oldRecord, updatedFields) +{ + var newRecord = {}; + + for (var key in oldRecord) + { + newRecord[key] = oldRecord[key]; + } + + for (var key in updatedFields) + { + newRecord[key] = updatedFields[key]; + } + + return newRecord; +} + + +// APPEND + +var _Utils_append = F2(_Utils_ap); + +function _Utils_ap(xs, ys) +{ + // append Strings + if (typeof xs === 'string') + { + return xs + ys; + } + + // append Lists + if (!xs.b) + { + return ys; + } + var root = _List_Cons(xs.a, ys); + xs = xs.b + for (var curr = root; xs.b; xs = xs.b) // WHILE_CONS + { + curr = curr.b = _List_Cons(xs.a, ys); + } + return root; +} + + + +var _JsArray_empty = []; + +function _JsArray_singleton(value) +{ + return [value]; +} + +function _JsArray_length(array) +{ + return array.length; +} + +var _JsArray_initialize = F3(function(size, offset, func) +{ + var result = new Array(size); + + for (var i = 0; i < size; i++) + { + result[i] = func(offset + i); + } + + return result; +}); + +var _JsArray_initializeFromList = F2(function (max, ls) +{ + var result = new Array(max); + + for (var i = 0; i < max && ls.b; i++) + { + result[i] = ls.a; + ls = ls.b; + } + + result.length = i; + return _Utils_Tuple2(result, ls); +}); + +var _JsArray_unsafeGet = F2(function(index, array) +{ + return array[index]; +}); + +var _JsArray_unsafeSet = F3(function(index, value, array) +{ + var length = array.length; + var result = new Array(length); + + for (var i = 0; i < length; i++) + { + result[i] = array[i]; + } + + result[index] = value; + return result; +}); + +var _JsArray_push = F2(function(value, array) +{ + var length = array.length; + var result = new Array(length + 1); + + for (var i = 0; i < length; i++) + { + result[i] = array[i]; + } + + result[length] = value; + return result; +}); + +var _JsArray_foldl = F3(function(func, acc, array) +{ + var length = array.length; + + for (var i = 0; i < length; i++) + { + acc = A2(func, array[i], acc); + } + + return acc; +}); + +var _JsArray_foldr = F3(function(func, acc, array) +{ + for (var i = array.length - 1; i >= 0; i--) + { + acc = A2(func, array[i], acc); + } + + return acc; +}); + +var _JsArray_map = F2(function(func, array) +{ + var length = array.length; + var result = new Array(length); + + for (var i = 0; i < length; i++) + { + result[i] = func(array[i]); + } + + return result; +}); + +var _JsArray_indexedMap = F3(function(func, offset, array) +{ + var length = array.length; + var result = new Array(length); + + for (var i = 0; i < length; i++) + { + result[i] = A2(func, offset + i, array[i]); + } + + return result; +}); + +var _JsArray_slice = F3(function(from, to, array) +{ + return array.slice(from, to); +}); + +var _JsArray_appendN = F3(function(n, dest, source) +{ + var destLen = dest.length; + var itemsToCopy = n - destLen; + + if (itemsToCopy > source.length) + { + itemsToCopy = source.length; + } + + var size = destLen + itemsToCopy; + var result = new Array(size); + + for (var i = 0; i < destLen; i++) + { + result[i] = dest[i]; + } + + for (var i = 0; i < itemsToCopy; i++) + { + result[i + destLen] = source[i]; + } + + return result; +}); + + + +// LOG + +var _Debug_log = F2(function(tag, value) +{ + return value; +}); + +var _Debug_log_UNUSED = F2(function(tag, value) +{ + console.log(tag + ': ' + _Debug_toString(value)); + return value; +}); + + +// TODOS + +function _Debug_todo(moduleName, region) +{ + return function(message) { + _Debug_crash(8, moduleName, region, message); + }; +} + +function _Debug_todoCase(moduleName, region, value) +{ + return function(message) { + _Debug_crash(9, moduleName, region, value, message); + }; +} + + +// TO STRING + +function _Debug_toString(value) +{ + return ''; +} + +function _Debug_toString_UNUSED(value) +{ + return _Debug_toAnsiString(false, value); +} + +function _Debug_toAnsiString(ansi, value) +{ + if (typeof value === 'function') + { + return _Debug_internalColor(ansi, ''); + } + + if (typeof value === 'boolean') + { + return _Debug_ctorColor(ansi, value ? 'True' : 'False'); + } + + if (typeof value === 'number') + { + return _Debug_numberColor(ansi, value + ''); + } + + if (value instanceof String) + { + return _Debug_charColor(ansi, "'" + _Debug_addSlashes(value, true) + "'"); + } + + if (typeof value === 'string') + { + return _Debug_stringColor(ansi, '"' + _Debug_addSlashes(value, false) + '"'); + } + + if (typeof value === 'object' && '$' in value) + { + var tag = value.$; + + if (typeof tag === 'number') + { + return _Debug_internalColor(ansi, ''); + } + + if (tag[0] === '#') + { + var output = []; + for (var k in value) + { + if (k === '$') continue; + output.push(_Debug_toAnsiString(ansi, value[k])); + } + return '(' + output.join(',') + ')'; + } + + if (tag === 'Set_elm_builtin') + { + return _Debug_ctorColor(ansi, 'Set') + + _Debug_fadeColor(ansi, '.fromList') + ' ' + + _Debug_toAnsiString(ansi, elm$core$Set$toList(value)); + } + + if (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin') + { + return _Debug_ctorColor(ansi, 'Dict') + + _Debug_fadeColor(ansi, '.fromList') + ' ' + + _Debug_toAnsiString(ansi, elm$core$Dict$toList(value)); + } + + if (tag === 'Array_elm_builtin') + { + return _Debug_ctorColor(ansi, 'Array') + + _Debug_fadeColor(ansi, '.fromList') + ' ' + + _Debug_toAnsiString(ansi, elm$core$Array$toList(value)); + } + + if (tag === '::' || tag === '[]') + { + var output = '['; + + value.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b) + + for (; value.b; value = value.b) // WHILE_CONS + { + output += ',' + _Debug_toAnsiString(ansi, value.a); + } + return output + ']'; + } + + var output = ''; + for (var i in value) + { + if (i === '$') continue; + var str = _Debug_toAnsiString(ansi, value[i]); + var c0 = str[0]; + var parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0; + output += ' ' + (parenless ? str : '(' + str + ')'); + } + return _Debug_ctorColor(ansi, tag) + output; + } + + if (typeof value === 'object') + { + var output = []; + for (var key in value) + { + var field = key[0] === '_' ? key.slice(1) : key; + output.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key])); + } + if (output.length === 0) + { + return '{}'; + } + return '{ ' + output.join(', ') + ' }'; + } + + return _Debug_internalColor(ansi, ''); +} + +function _Debug_addSlashes(str, isChar) +{ + var s = str + .replace(/\\/g, '\\\\') + .replace(/\n/g, '\\n') + .replace(/\t/g, '\\t') + .replace(/\r/g, '\\r') + .replace(/\v/g, '\\v') + .replace(/\0/g, '\\0'); + + if (isChar) + { + return s.replace(/\'/g, '\\\''); + } + else + { + return s.replace(/\"/g, '\\"'); + } +} + +function _Debug_ctorColor(ansi, string) +{ + return ansi ? '\x1b[96m' + string + '\x1b[0m' : string; +} + +function _Debug_numberColor(ansi, string) +{ + return ansi ? '\x1b[95m' + string + '\x1b[0m' : string; +} + +function _Debug_stringColor(ansi, string) +{ + return ansi ? '\x1b[93m' + string + '\x1b[0m' : string; +} + +function _Debug_charColor(ansi, string) +{ + return ansi ? '\x1b[92m' + string + '\x1b[0m' : string; +} + +function _Debug_fadeColor(ansi, string) +{ + return ansi ? '\x1b[37m' + string + '\x1b[0m' : string; +} + +function _Debug_internalColor(ansi, string) +{ + return ansi ? '\x1b[94m' + string + '\x1b[0m' : string; +} + + + +// CRASH + + +function _Debug_crash(identifier) +{ + throw new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md'); +} + + +function _Debug_crash_UNUSED(identifier, fact1, fact2, fact3, fact4) +{ + switch(identifier) + { + case 0: + throw new Error('What node should I take over? In JavaScript I need something like:\n\n Elm.Main.init({\n node: document.getElementById("elm-node")\n })\n\nYou need to do this with any Browser.sandbox or Browser.element program.'); + + case 1: + throw new Error('Browser.application programs cannot handle URLs like this:\n\n ' + document.location.href + '\n\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.'); + + case 2: + var jsonErrorString = fact1; + throw new Error('Problem with the flags given to your Elm program on initialization.\n\n' + jsonErrorString); + + case 3: + var portName = fact1; + throw new Error('There can only be one port named `' + portName + '`, but your program has multiple.'); + + case 4: + var portName = fact1; + var problem = fact2; + throw new Error('Trying to send an unexpected type of value through port `' + portName + '`:\n' + problem); + + case 5: + throw new Error('Trying to use `(==)` on functions.\nThere is no way to know if functions are "the same" in the Elm sense.\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.'); + + case 6: + var moduleName = fact1; + throw new Error('Your page is loading multiple Elm scripts with a module named ' + moduleName + '. Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!'); + + case 8: + var moduleName = fact1; + var region = fact2; + var message = fact3; + throw new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\n\n' + message); + + case 9: + var moduleName = fact1; + var region = fact2; + var value = fact3; + var message = fact4; + throw new Error( + 'TODO in module `' + moduleName + '` from the `case` expression ' + + _Debug_regionToString(region) + '\n\nIt received the following value:\n\n ' + + _Debug_toString(value).replace('\n', '\n ') + + '\n\nBut the branch that handles it says:\n\n ' + message.replace('\n', '\n ') + ); + + case 10: + throw new Error('Bug in https://github.com/elm/virtual-dom/issues'); + + case 11: + throw new Error('Cannot perform mod 0. Division by zero error.'); + } +} + +function _Debug_regionToString(region) +{ + if (region.bo.aI === region.bN.aI) + { + return 'on line ' + region.bo.aI; + } + return 'on lines ' + region.bo.aI + ' through ' + region.bN.aI; +} + + + +// MATH + +var _Basics_add = F2(function(a, b) { return a + b; }); +var _Basics_sub = F2(function(a, b) { return a - b; }); +var _Basics_mul = F2(function(a, b) { return a * b; }); +var _Basics_fdiv = F2(function(a, b) { return a / b; }); +var _Basics_idiv = F2(function(a, b) { return (a / b) | 0; }); +var _Basics_pow = F2(Math.pow); + +var _Basics_remainderBy = F2(function(b, a) { return a % b; }); + +// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf +var _Basics_modBy = F2(function(modulus, x) +{ + var answer = x % modulus; + return modulus === 0 + ? _Debug_crash(11) + : + ((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0)) + ? answer + modulus + : answer; +}); + + +// TRIGONOMETRY + +var _Basics_pi = Math.PI; +var _Basics_e = Math.E; +var _Basics_cos = Math.cos; +var _Basics_sin = Math.sin; +var _Basics_tan = Math.tan; +var _Basics_acos = Math.acos; +var _Basics_asin = Math.asin; +var _Basics_atan = Math.atan; +var _Basics_atan2 = F2(Math.atan2); + + +// MORE MATH + +function _Basics_toFloat(x) { return x; } +function _Basics_truncate(n) { return n | 0; } +function _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; } + +var _Basics_ceiling = Math.ceil; +var _Basics_floor = Math.floor; +var _Basics_round = Math.round; +var _Basics_sqrt = Math.sqrt; +var _Basics_log = Math.log; +var _Basics_isNaN = isNaN; + + +// BOOLEANS + +function _Basics_not(bool) { return !bool; } +var _Basics_and = F2(function(a, b) { return a && b; }); +var _Basics_or = F2(function(a, b) { return a || b; }); +var _Basics_xor = F2(function(a, b) { return a !== b; }); + + + +function _Char_toCode(char) +{ + var code = char.charCodeAt(0); + if (0xD800 <= code && code <= 0xDBFF) + { + return (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000 + } + return code; +} + +function _Char_fromCode(code) +{ + return _Utils_chr( + (code < 0 || 0x10FFFF < code) + ? '\uFFFD' + : + (code <= 0xFFFF) + ? String.fromCharCode(code) + : + (code -= 0x10000, + String.fromCharCode(Math.floor(code / 0x400) + 0xD800) + + + String.fromCharCode(code % 0x400 + 0xDC00) + ) + ); +} + +function _Char_toUpper(char) +{ + return _Utils_chr(char.toUpperCase()); +} + +function _Char_toLower(char) +{ + return _Utils_chr(char.toLowerCase()); +} + +function _Char_toLocaleUpper(char) +{ + return _Utils_chr(char.toLocaleUpperCase()); +} + +function _Char_toLocaleLower(char) +{ + return _Utils_chr(char.toLocaleLowerCase()); +} + + + +var _String_cons = F2(function(chr, str) +{ + return chr + str; +}); + +function _String_uncons(string) +{ + var word = string.charCodeAt(0); + return word + ? elm$core$Maybe$Just( + 0xD800 <= word && word <= 0xDBFF + ? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2)) + : _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1)) + ) + : elm$core$Maybe$Nothing; +} + +var _String_append = F2(function(a, b) +{ + return a + b; +}); + +function _String_length(str) +{ + return str.length; +} + +var _String_map = F2(function(func, string) +{ + var len = string.length; + var array = new Array(len); + var i = 0; + while (i < len) + { + var word = string.charCodeAt(i); + if (0xD800 <= word && word <= 0xDBFF) + { + array[i] = func(_Utils_chr(string[i] + string[i+1])); + i += 2; + continue; + } + array[i] = func(_Utils_chr(string[i])); + i++; + } + return array.join(''); +}); + +var _String_filter = F2(function(isGood, str) +{ + var arr = []; + var len = str.length; + var i = 0; + while (i < len) + { + var char = str[i]; + var word = str.charCodeAt(i); + i++; + if (0xD800 <= word && word <= 0xDBFF) + { + char += str[i]; + i++; + } + + if (isGood(_Utils_chr(char))) + { + arr.push(char); + } + } + return arr.join(''); +}); + +function _String_reverse(str) +{ + var len = str.length; + var arr = new Array(len); + var i = 0; + while (i < len) + { + var word = str.charCodeAt(i); + if (0xD800 <= word && word <= 0xDBFF) + { + arr[len - i] = str[i + 1]; + i++; + arr[len - i] = str[i - 1]; + i++; + } + else + { + arr[len - i] = str[i]; + i++; + } + } + return arr.join(''); +} + +var _String_foldl = F3(function(func, state, string) +{ + var len = string.length; + var i = 0; + while (i < len) + { + var char = string[i]; + var word = string.charCodeAt(i); + i++; + if (0xD800 <= word && word <= 0xDBFF) + { + char += string[i]; + i++; + } + state = A2(func, _Utils_chr(char), state); + } + return state; +}); + +var _String_foldr = F3(function(func, state, string) +{ + var i = string.length; + while (i--) + { + var char = string[i]; + var word = string.charCodeAt(i); + if (0xDC00 <= word && word <= 0xDFFF) + { + i--; + char = string[i] + char; + } + state = A2(func, _Utils_chr(char), state); + } + return state; +}); + +var _String_split = F2(function(sep, str) +{ + return str.split(sep); +}); + +var _String_join = F2(function(sep, strs) +{ + return strs.join(sep); +}); + +var _String_slice = F3(function(start, end, str) { + return str.slice(start, end); +}); + +function _String_trim(str) +{ + return str.trim(); +} + +function _String_trimLeft(str) +{ + return str.replace(/^\s+/, ''); +} + +function _String_trimRight(str) +{ + return str.replace(/\s+$/, ''); +} + +function _String_words(str) +{ + return _List_fromArray(str.trim().split(/\s+/g)); +} + +function _String_lines(str) +{ + return _List_fromArray(str.split(/\r\n|\r|\n/g)); +} + +function _String_toUpper(str) +{ + return str.toUpperCase(); +} + +function _String_toLower(str) +{ + return str.toLowerCase(); +} + +var _String_any = F2(function(isGood, string) +{ + var i = string.length; + while (i--) + { + var char = string[i]; + var word = string.charCodeAt(i); + if (0xDC00 <= word && word <= 0xDFFF) + { + i--; + char = string[i] + char; + } + if (isGood(_Utils_chr(char))) + { + return true; + } + } + return false; +}); + +var _String_all = F2(function(isGood, string) +{ + var i = string.length; + while (i--) + { + var char = string[i]; + var word = string.charCodeAt(i); + if (0xDC00 <= word && word <= 0xDFFF) + { + i--; + char = string[i] + char; + } + if (!isGood(_Utils_chr(char))) + { + return false; + } + } + return true; +}); + +var _String_contains = F2(function(sub, str) +{ + return str.indexOf(sub) > -1; +}); + +var _String_startsWith = F2(function(sub, str) +{ + return str.indexOf(sub) === 0; +}); + +var _String_endsWith = F2(function(sub, str) +{ + return str.length >= sub.length && + str.lastIndexOf(sub) === str.length - sub.length; +}); + +var _String_indexes = F2(function(sub, str) +{ + var subLen = sub.length; + + if (subLen < 1) + { + return _List_Nil; + } + + var i = 0; + var is = []; + + while ((i = str.indexOf(sub, i)) > -1) + { + is.push(i); + i = i + subLen; + } + + return _List_fromArray(is); +}); + + +// TO STRING + +function _String_fromNumber(number) +{ + return number + ''; +} + + +// INT CONVERSIONS + +function _String_toInt(str) +{ + var total = 0; + var code0 = str.charCodeAt(0); + var start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0; + + for (var i = start; i < str.length; ++i) + { + var code = str.charCodeAt(i); + if (code < 0x30 || 0x39 < code) + { + return elm$core$Maybe$Nothing; + } + total = 10 * total + code - 0x30; + } + + return i == start + ? elm$core$Maybe$Nothing + : elm$core$Maybe$Just(code0 == 0x2D ? -total : total); +} + + +// FLOAT CONVERSIONS + +function _String_toFloat(s) +{ + // check if it is a hex, octal, or binary number + if (s.length === 0 || /[\sxbo]/.test(s)) + { + return elm$core$Maybe$Nothing; + } + var n = +s; + // faster isNaN check + return n === n ? elm$core$Maybe$Just(n) : elm$core$Maybe$Nothing; +} + +function _String_fromList(chars) +{ + return _List_toArray(chars).join(''); +} + + + + +/**_UNUSED/ +function _Json_errorToString(error) +{ + return elm$json$Json$Decode$errorToString(error); +} +//*/ + + +// CORE DECODERS + +function _Json_succeed(msg) +{ + return { + $: 0, + a: msg + }; +} + +function _Json_fail(msg) +{ + return { + $: 1, + a: msg + }; +} + +var _Json_decodeInt = { $: 2 }; +var _Json_decodeBool = { $: 3 }; +var _Json_decodeFloat = { $: 4 }; +var _Json_decodeValue = { $: 5 }; +var _Json_decodeString = { $: 6 }; + +function _Json_decodeList(decoder) { return { $: 7, b: decoder }; } +function _Json_decodeArray(decoder) { return { $: 8, b: decoder }; } + +function _Json_decodeNull(value) { return { $: 9, c: value }; } + +var _Json_decodeField = F2(function(field, decoder) +{ + return { + $: 10, + d: field, + b: decoder + }; +}); + +var _Json_decodeIndex = F2(function(index, decoder) +{ + return { + $: 11, + e: index, + b: decoder + }; +}); + +function _Json_decodeKeyValuePairs(decoder) +{ + return { + $: 12, + b: decoder + }; +} + +function _Json_mapMany(f, decoders) +{ + return { + $: 13, + f: f, + g: decoders + }; +} + +var _Json_andThen = F2(function(callback, decoder) +{ + return { + $: 14, + b: decoder, + h: callback + }; +}); + +function _Json_oneOf(decoders) +{ + return { + $: 15, + g: decoders + }; +} + + +// DECODING OBJECTS + +var _Json_map1 = F2(function(f, d1) +{ + return _Json_mapMany(f, [d1]); +}); + +var _Json_map2 = F3(function(f, d1, d2) +{ + return _Json_mapMany(f, [d1, d2]); +}); + +var _Json_map3 = F4(function(f, d1, d2, d3) +{ + return _Json_mapMany(f, [d1, d2, d3]); +}); + +var _Json_map4 = F5(function(f, d1, d2, d3, d4) +{ + return _Json_mapMany(f, [d1, d2, d3, d4]); +}); + +var _Json_map5 = F6(function(f, d1, d2, d3, d4, d5) +{ + return _Json_mapMany(f, [d1, d2, d3, d4, d5]); +}); + +var _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6) +{ + return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]); +}); + +var _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7) +{ + return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]); +}); + +var _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8) +{ + return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]); +}); + + +// DECODE + +var _Json_runOnString = F2(function(decoder, string) +{ + try + { + var value = JSON.parse(string); + return _Json_runHelp(decoder, value); + } + catch (e) + { + return elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string))); + } +}); + +var _Json_run = F2(function(decoder, value) +{ + return _Json_runHelp(decoder, _Json_unwrap(value)); +}); + +function _Json_runHelp(decoder, value) +{ + switch (decoder.$) + { + case 3: + return (typeof value === 'boolean') + ? elm$core$Result$Ok(value) + : _Json_expecting('a BOOL', value); + + case 2: + if (typeof value !== 'number') { + return _Json_expecting('an INT', value); + } + + if (-2147483647 < value && value < 2147483647 && (value | 0) === value) { + return elm$core$Result$Ok(value); + } + + if (isFinite(value) && !(value % 1)) { + return elm$core$Result$Ok(value); + } + + return _Json_expecting('an INT', value); + + case 4: + return (typeof value === 'number') + ? elm$core$Result$Ok(value) + : _Json_expecting('a FLOAT', value); + + case 6: + return (typeof value === 'string') + ? elm$core$Result$Ok(value) + : (value instanceof String) + ? elm$core$Result$Ok(value + '') + : _Json_expecting('a STRING', value); + + case 9: + return (value === null) + ? elm$core$Result$Ok(decoder.c) + : _Json_expecting('null', value); + + case 5: + return elm$core$Result$Ok(_Json_wrap(value)); + + case 7: + if (!Array.isArray(value)) + { + return _Json_expecting('a LIST', value); + } + return _Json_runArrayDecoder(decoder.b, value, _List_fromArray); + + case 8: + if (!Array.isArray(value)) + { + return _Json_expecting('an ARRAY', value); + } + return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray); + + case 10: + var field = decoder.d; + if (typeof value !== 'object' || value === null || !(field in value)) + { + return _Json_expecting('an OBJECT with a field named `' + field + '`', value); + } + var result = _Json_runHelp(decoder.b, value[field]); + return (elm$core$Result$isOk(result)) ? result : elm$core$Result$Err(A2(elm$json$Json$Decode$Field, field, result.a)); + + case 11: + var index = decoder.e; + if (!Array.isArray(value)) + { + return _Json_expecting('an ARRAY', value); + } + if (index >= value.length) + { + return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value); + } + var result = _Json_runHelp(decoder.b, value[index]); + return (elm$core$Result$isOk(result)) ? result : elm$core$Result$Err(A2(elm$json$Json$Decode$Index, index, result.a)); + + case 12: + if (typeof value !== 'object' || value === null || Array.isArray(value)) + { + return _Json_expecting('an OBJECT', value); + } + + var keyValuePairs = _List_Nil; + // TODO test perf of Object.keys and switch when support is good enough + for (var key in value) + { + if (value.hasOwnProperty(key)) + { + var result = _Json_runHelp(decoder.b, value[key]); + if (!elm$core$Result$isOk(result)) + { + return elm$core$Result$Err(A2(elm$json$Json$Decode$Field, key, result.a)); + } + keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs); + } + } + return elm$core$Result$Ok(elm$core$List$reverse(keyValuePairs)); + + case 13: + var answer = decoder.f; + var decoders = decoder.g; + for (var i = 0; i < decoders.length; i++) + { + var result = _Json_runHelp(decoders[i], value); + if (!elm$core$Result$isOk(result)) + { + return result; + } + answer = answer(result.a); + } + return elm$core$Result$Ok(answer); + + case 14: + var result = _Json_runHelp(decoder.b, value); + return (!elm$core$Result$isOk(result)) + ? result + : _Json_runHelp(decoder.h(result.a), value); + + case 15: + var errors = _List_Nil; + for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS + { + var result = _Json_runHelp(temp.a, value); + if (elm$core$Result$isOk(result)) + { + return result; + } + errors = _List_Cons(result.a, errors); + } + return elm$core$Result$Err(elm$json$Json$Decode$OneOf(elm$core$List$reverse(errors))); + + case 1: + return elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value))); + + case 0: + return elm$core$Result$Ok(decoder.a); + } +} + +function _Json_runArrayDecoder(decoder, value, toElmValue) +{ + var len = value.length; + var array = new Array(len); + for (var i = 0; i < len; i++) + { + var result = _Json_runHelp(decoder, value[i]); + if (!elm$core$Result$isOk(result)) + { + return elm$core$Result$Err(A2(elm$json$Json$Decode$Index, i, result.a)); + } + array[i] = result.a; + } + return elm$core$Result$Ok(toElmValue(array)); +} + +function _Json_toElmArray(array) +{ + return A2(elm$core$Array$initialize, array.length, function(i) { return array[i]; }); +} + +function _Json_expecting(type, value) +{ + return elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value))); +} + + +// EQUALITY + +function _Json_equality(x, y) +{ + if (x === y) + { + return true; + } + + if (x.$ !== y.$) + { + return false; + } + + switch (x.$) + { + case 0: + case 1: + return x.a === y.a; + + case 3: + case 2: + case 4: + case 6: + case 5: + return true; + + case 9: + return x.c === y.c; + + case 7: + case 8: + case 12: + return _Json_equality(x.b, y.b); + + case 10: + return x.d === y.d && _Json_equality(x.b, y.b); + + case 11: + return x.e === y.e && _Json_equality(x.b, y.b); + + case 13: + return x.f === y.f && _Json_listEquality(x.g, y.g); + + case 14: + return x.h === y.h && _Json_equality(x.b, y.b); + + case 15: + return _Json_listEquality(x.g, y.g); + } +} + +function _Json_listEquality(aDecoders, bDecoders) +{ + var len = aDecoders.length; + if (len !== bDecoders.length) + { + return false; + } + for (var i = 0; i < len; i++) + { + if (!_Json_equality(aDecoders[i], bDecoders[i])) + { + return false; + } + } + return true; +} + + +// ENCODE + +var _Json_encode = F2(function(indentLevel, value) +{ + return JSON.stringify(_Json_unwrap(value), null, indentLevel) + ''; +}); + +function _Json_wrap_UNUSED(value) { return { $: 0, a: value }; } +function _Json_unwrap_UNUSED(value) { return value.a; } + +function _Json_wrap(value) { return value; } +function _Json_unwrap(value) { return value; } + +function _Json_emptyArray() { return []; } +function _Json_emptyObject() { return {}; } + +var _Json_addField = F3(function(key, value, object) +{ + object[key] = _Json_unwrap(value); + return object; +}); + +function _Json_addEntry(func) +{ + return F2(function(entry, array) + { + array.push(_Json_unwrap(func(entry))); + return array; + }); +} + +var _Json_encodeNull = _Json_wrap(null); + + + +// TASKS + +function _Scheduler_succeed(value) +{ + return { + $: 0, + a: value + }; +} + +function _Scheduler_fail(error) +{ + return { + $: 1, + a: error + }; +} + +function _Scheduler_binding(callback) +{ + return { + $: 2, + b: callback, + c: null + }; +} + +var _Scheduler_andThen = F2(function(callback, task) +{ + return { + $: 3, + b: callback, + d: task + }; +}); + +var _Scheduler_onError = F2(function(callback, task) +{ + return { + $: 4, + b: callback, + d: task + }; +}); + +function _Scheduler_receive(callback) +{ + return { + $: 5, + b: callback + }; +} + + +// PROCESSES + +var _Scheduler_guid = 0; + +function _Scheduler_rawSpawn(task) +{ + var proc = { + $: 0, + e: _Scheduler_guid++, + f: task, + g: null, + h: [] + }; + + _Scheduler_enqueue(proc); + + return proc; +} + +function _Scheduler_spawn(task) +{ + return _Scheduler_binding(function(callback) { + callback(_Scheduler_succeed(_Scheduler_rawSpawn(task))); + }); +} + +function _Scheduler_rawSend(proc, msg) +{ + proc.h.push(msg); + _Scheduler_enqueue(proc); +} + +var _Scheduler_send = F2(function(proc, msg) +{ + return _Scheduler_binding(function(callback) { + _Scheduler_rawSend(proc, msg); + callback(_Scheduler_succeed(_Utils_Tuple0)); + }); +}); + +function _Scheduler_kill(proc) +{ + return _Scheduler_binding(function(callback) { + var task = proc.f; + if (task.$ === 2 && task.c) + { + task.c(); + } + + proc.f = null; + + callback(_Scheduler_succeed(_Utils_Tuple0)); + }); +} + + +/* STEP PROCESSES + +type alias Process = + { $ : tag + , id : unique_id + , root : Task + , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack } + , mailbox : [msg] + } + +*/ + + +var _Scheduler_working = false; +var _Scheduler_queue = []; + + +function _Scheduler_enqueue(proc) +{ + _Scheduler_queue.push(proc); + if (_Scheduler_working) + { + return; + } + _Scheduler_working = true; + while (proc = _Scheduler_queue.shift()) + { + _Scheduler_step(proc); + } + _Scheduler_working = false; +} + + +function _Scheduler_step(proc) +{ + while (proc.f) + { + var rootTag = proc.f.$; + if (rootTag === 0 || rootTag === 1) + { + while (proc.g && proc.g.$ !== rootTag) + { + proc.g = proc.g.i; + } + if (!proc.g) + { + return; + } + proc.f = proc.g.b(proc.f.a); + proc.g = proc.g.i; + } + else if (rootTag === 2) + { + proc.f.c = proc.f.b(function(newRoot) { + proc.f = newRoot; + _Scheduler_enqueue(proc); + }); + return; + } + else if (rootTag === 5) + { + if (proc.h.length === 0) + { + return; + } + proc.f = proc.f.b(proc.h.shift()); + } + else // if (rootTag === 3 || rootTag === 4) + { + proc.g = { + $: rootTag === 3 ? 0 : 1, + b: proc.f.b, + i: proc.g + }; + proc.f = proc.f.d; + } + } +} + + + +function _Process_sleep(time) +{ + return _Scheduler_binding(function(callback) { + var id = setTimeout(function() { + callback(_Scheduler_succeed(_Utils_Tuple0)); + }, time); + + return function() { clearTimeout(id); }; + }); +} + + + + +// PROGRAMS + + +var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args) +{ + return _Platform_initialize( + flagDecoder, + args, + impl.cP, + impl.c2, + impl.c0, + function() { return function() {} } + ); +}); + + + +// INITIALIZE A PROGRAM + + +function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder) +{ + var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined)); + elm$core$Result$isOk(result) || _Debug_crash(2 /**_UNUSED/, _Json_errorToString(result.a) /**/); + var managers = {}; + result = init(result.a); + var model = result.a; + var stepper = stepperBuilder(sendToApp, model); + var ports = _Platform_setupEffects(managers, sendToApp); + + function sendToApp(msg, viewMetadata) + { + result = A2(update, msg, model); + stepper(model = result.a, viewMetadata); + _Platform_dispatchEffects(managers, result.b, subscriptions(model)); + } + + _Platform_dispatchEffects(managers, result.b, subscriptions(model)); + + return ports ? { ports: ports } : {}; +} + + + +// TRACK PRELOADS +// +// This is used by code in elm/browser and elm/http +// to register any HTTP requests that are triggered by init. +// + + +var _Platform_preload; + + +function _Platform_registerPreload(url) +{ + _Platform_preload.add(url); +} + + + +// EFFECT MANAGERS + + +var _Platform_effectManagers = {}; + + +function _Platform_setupEffects(managers, sendToApp) +{ + var ports; + + // setup all necessary effect managers + for (var key in _Platform_effectManagers) + { + var manager = _Platform_effectManagers[key]; + + if (manager.a) + { + ports = ports || {}; + ports[key] = manager.a(key, sendToApp); + } + + managers[key] = _Platform_instantiateManager(manager, sendToApp); + } + + return ports; +} + + +function _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap) +{ + return { + b: init, + c: onEffects, + d: onSelfMsg, + e: cmdMap, + f: subMap + }; +} + + +function _Platform_instantiateManager(info, sendToApp) +{ + var router = { + g: sendToApp, + h: undefined + }; + + var onEffects = info.c; + var onSelfMsg = info.d; + var cmdMap = info.e; + var subMap = info.f; + + function loop(state) + { + return A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg) + { + var value = msg.a; + + if (msg.$ === 0) + { + return A3(onSelfMsg, router, value, state); + } + + return cmdMap && subMap + ? A4(onEffects, router, value.i, value.j, state) + : A3(onEffects, router, cmdMap ? value.i : value.j, state); + })); + } + + return router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b)); +} + + + +// ROUTING + + +var _Platform_sendToApp = F2(function(router, msg) +{ + return _Scheduler_binding(function(callback) + { + router.g(msg); + callback(_Scheduler_succeed(_Utils_Tuple0)); + }); +}); + + +var _Platform_sendToSelf = F2(function(router, msg) +{ + return A2(_Scheduler_send, router.h, { + $: 0, + a: msg + }); +}); + + + +// BAGS + + +function _Platform_leaf(home) +{ + return function(value) + { + return { + $: 1, + k: home, + l: value + }; + }; +} + + +function _Platform_batch(list) +{ + return { + $: 2, + m: list + }; +} + + +var _Platform_map = F2(function(tagger, bag) +{ + return { + $: 3, + n: tagger, + o: bag + } +}); + + + +// PIPE BAGS INTO EFFECT MANAGERS + + +function _Platform_dispatchEffects(managers, cmdBag, subBag) +{ + var effectsDict = {}; + _Platform_gatherEffects(true, cmdBag, effectsDict, null); + _Platform_gatherEffects(false, subBag, effectsDict, null); + + for (var home in managers) + { + _Scheduler_rawSend(managers[home], { + $: 'fx', + a: effectsDict[home] || { i: _List_Nil, j: _List_Nil } + }); + } +} + + +function _Platform_gatherEffects(isCmd, bag, effectsDict, taggers) +{ + switch (bag.$) + { + case 1: + var home = bag.k; + var effect = _Platform_toEffect(isCmd, home, taggers, bag.l); + effectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]); + return; + + case 2: + for (var list = bag.m; list.b; list = list.b) // WHILE_CONS + { + _Platform_gatherEffects(isCmd, list.a, effectsDict, taggers); + } + return; + + case 3: + _Platform_gatherEffects(isCmd, bag.o, effectsDict, { + p: bag.n, + q: taggers + }); + return; + } +} + + +function _Platform_toEffect(isCmd, home, taggers, value) +{ + function applyTaggers(x) + { + for (var temp = taggers; temp; temp = temp.q) + { + x = temp.p(x); + } + return x; + } + + var map = isCmd + ? _Platform_effectManagers[home].e + : _Platform_effectManagers[home].f; + + return A2(map, applyTaggers, value) +} + + +function _Platform_insert(isCmd, newEffect, effects) +{ + effects = effects || { i: _List_Nil, j: _List_Nil }; + + isCmd + ? (effects.i = _List_Cons(newEffect, effects.i)) + : (effects.j = _List_Cons(newEffect, effects.j)); + + return effects; +} + + + +// PORTS + + +function _Platform_checkPortName(name) +{ + if (_Platform_effectManagers[name]) + { + _Debug_crash(3, name) + } +} + + + +// OUTGOING PORTS + + +function _Platform_outgoingPort(name, converter) +{ + _Platform_checkPortName(name); + _Platform_effectManagers[name] = { + e: _Platform_outgoingPortMap, + r: converter, + a: _Platform_setupOutgoingPort + }; + return _Platform_leaf(name); +} + + +var _Platform_outgoingPortMap = F2(function(tagger, value) { return value; }); + + +function _Platform_setupOutgoingPort(name) +{ + var subs = []; + var converter = _Platform_effectManagers[name].r; + + // CREATE MANAGER + + var init = _Process_sleep(0); + + _Platform_effectManagers[name].b = init; + _Platform_effectManagers[name].c = F3(function(router, cmdList, state) + { + for ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS + { + // grab a separate reference to subs in case unsubscribe is called + var currentSubs = subs; + var value = _Json_unwrap(converter(cmdList.a)); + for (var i = 0; i < currentSubs.length; i++) + { + currentSubs[i](value); + } + } + return init; + }); + + // PUBLIC API + + function subscribe(callback) + { + subs.push(callback); + } + + function unsubscribe(callback) + { + // copy subs into a new array in case unsubscribe is called within a + // subscribed callback + subs = subs.slice(); + var index = subs.indexOf(callback); + if (index >= 0) + { + subs.splice(index, 1); + } + } + + return { + subscribe: subscribe, + unsubscribe: unsubscribe + }; +} + + + +// INCOMING PORTS + + +function _Platform_incomingPort(name, converter) +{ + _Platform_checkPortName(name); + _Platform_effectManagers[name] = { + f: _Platform_incomingPortMap, + r: converter, + a: _Platform_setupIncomingPort + }; + return _Platform_leaf(name); +} + + +var _Platform_incomingPortMap = F2(function(tagger, finalTagger) +{ + return function(value) + { + return tagger(finalTagger(value)); + }; +}); + + +function _Platform_setupIncomingPort(name, sendToApp) +{ + var subs = _List_Nil; + var converter = _Platform_effectManagers[name].r; + + // CREATE MANAGER + + var init = _Scheduler_succeed(null); + + _Platform_effectManagers[name].b = init; + _Platform_effectManagers[name].c = F3(function(router, subList, state) + { + subs = subList; + return init; + }); + + // PUBLIC API + + function send(incomingValue) + { + var result = A2(_Json_run, converter, _Json_wrap(incomingValue)); + + elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a); + + var value = result.a; + for (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS + { + sendToApp(temp.a(value)); + } + } + + return { send: send }; +} + + + +// EXPORT ELM MODULES +// +// Have DEBUG and PROD versions so that we can (1) give nicer errors in +// debug mode and (2) not pay for the bits needed for that in prod mode. +// + + +function _Platform_export(exports) +{ + scope['Elm'] + ? _Platform_mergeExportsProd(scope['Elm'], exports) + : scope['Elm'] = exports; +} + + +function _Platform_mergeExportsProd(obj, exports) +{ + for (var name in exports) + { + (name in obj) + ? (name == 'init') + ? _Debug_crash(6) + : _Platform_mergeExportsProd(obj[name], exports[name]) + : (obj[name] = exports[name]); + } +} + + +function _Platform_export_UNUSED(exports) +{ + scope['Elm'] + ? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports) + : scope['Elm'] = exports; +} + + +function _Platform_mergeExportsDebug(moduleName, obj, exports) +{ + for (var name in exports) + { + (name in obj) + ? (name == 'init') + ? _Debug_crash(6, moduleName) + : _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name]) + : (obj[name] = exports[name]); + } +} + + + +var _Bitwise_and = F2(function(a, b) +{ + return a & b; +}); + +var _Bitwise_or = F2(function(a, b) +{ + return a | b; +}); + +var _Bitwise_xor = F2(function(a, b) +{ + return a ^ b; +}); + +function _Bitwise_complement(a) +{ + return ~a; +}; + +var _Bitwise_shiftLeftBy = F2(function(offset, a) +{ + return a << offset; +}); + +var _Bitwise_shiftRightBy = F2(function(offset, a) +{ + return a >> offset; +}); + +var _Bitwise_shiftRightZfBy = F2(function(offset, a) +{ + return a >>> offset; +}); + + + +function _Time_now(millisToPosix) +{ + return _Scheduler_binding(function(callback) + { + callback(_Scheduler_succeed(millisToPosix(Date.now()))); + }); +} + +var _Time_setInterval = F2(function(interval, task) +{ + return _Scheduler_binding(function(callback) + { + var id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval); + return function() { clearInterval(id); }; + }); +}); + +function _Time_here() +{ + return _Scheduler_binding(function(callback) + { + callback(_Scheduler_succeed( + A2(elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil) + )); + }); +} + + +function _Time_getZoneName() +{ + return _Scheduler_binding(function(callback) + { + try + { + var name = elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone); + } + catch (e) + { + var name = elm$time$Time$Offset(new Date().getTimezoneOffset()); + } + callback(_Scheduler_succeed(name)); + }); +} + + + + +// HELPERS + + +var _VirtualDom_divertHrefToApp; + +var _VirtualDom_doc = typeof document !== 'undefined' ? document : {}; + + +function _VirtualDom_appendChild(parent, child) +{ + parent.appendChild(child); +} + +var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args) +{ + // NOTE: this function needs _Platform_export available to work + + /**/ + var node = args['node']; + //*/ + /**_UNUSED/ + var node = args && args['node'] ? args['node'] : _Debug_crash(0); + //*/ + + node.parentNode.replaceChild( + _VirtualDom_render(virtualNode, function() {}), + node + ); + + return {}; +}); + + + +// TEXT + + +function _VirtualDom_text(string) +{ + return { + $: 0, + a: string + }; +} + + + +// NODE + + +var _VirtualDom_nodeNS = F2(function(namespace, tag) +{ + return F2(function(factList, kidList) + { + for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS + { + var kid = kidList.a; + descendantsCount += (kid.b || 0); + kids.push(kid); + } + descendantsCount += kids.length; + + return { + $: 1, + c: tag, + d: _VirtualDom_organizeFacts(factList), + e: kids, + f: namespace, + b: descendantsCount + }; + }); +}); + + +var _VirtualDom_node = _VirtualDom_nodeNS(undefined); + + + +// KEYED NODE + + +var _VirtualDom_keyedNodeNS = F2(function(namespace, tag) +{ + return F2(function(factList, kidList) + { + for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS + { + var kid = kidList.a; + descendantsCount += (kid.b.b || 0); + kids.push(kid); + } + descendantsCount += kids.length; + + return { + $: 2, + c: tag, + d: _VirtualDom_organizeFacts(factList), + e: kids, + f: namespace, + b: descendantsCount + }; + }); +}); + + +var _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined); + + + +// CUSTOM + + +function _VirtualDom_custom(factList, model, render, diff) +{ + return { + $: 3, + d: _VirtualDom_organizeFacts(factList), + g: model, + h: render, + i: diff + }; +} + + + +// MAP + + +var _VirtualDom_map = F2(function(tagger, node) +{ + return { + $: 4, + j: tagger, + k: node, + b: 1 + (node.b || 0) + }; +}); + + + +// LAZY + + +function _VirtualDom_thunk(refs, thunk) +{ + return { + $: 5, + l: refs, + m: thunk, + k: undefined + }; +} + +var _VirtualDom_lazy = F2(function(func, a) +{ + return _VirtualDom_thunk([func, a], function() { + return func(a); + }); +}); + +var _VirtualDom_lazy2 = F3(function(func, a, b) +{ + return _VirtualDom_thunk([func, a, b], function() { + return A2(func, a, b); + }); +}); + +var _VirtualDom_lazy3 = F4(function(func, a, b, c) +{ + return _VirtualDom_thunk([func, a, b, c], function() { + return A3(func, a, b, c); + }); +}); + +var _VirtualDom_lazy4 = F5(function(func, a, b, c, d) +{ + return _VirtualDom_thunk([func, a, b, c, d], function() { + return A4(func, a, b, c, d); + }); +}); + +var _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e) +{ + return _VirtualDom_thunk([func, a, b, c, d, e], function() { + return A5(func, a, b, c, d, e); + }); +}); + +var _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f) +{ + return _VirtualDom_thunk([func, a, b, c, d, e, f], function() { + return A6(func, a, b, c, d, e, f); + }); +}); + +var _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g) +{ + return _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() { + return A7(func, a, b, c, d, e, f, g); + }); +}); + +var _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h) +{ + return _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() { + return A8(func, a, b, c, d, e, f, g, h); + }); +}); + + + +// FACTS + + +var _VirtualDom_on = F2(function(key, handler) +{ + return { + $: 'a0', + n: key, + o: handler + }; +}); +var _VirtualDom_style = F2(function(key, value) +{ + return { + $: 'a1', + n: key, + o: value + }; +}); +var _VirtualDom_property = F2(function(key, value) +{ + return { + $: 'a2', + n: key, + o: value + }; +}); +var _VirtualDom_attribute = F2(function(key, value) +{ + return { + $: 'a3', + n: key, + o: value + }; +}); +var _VirtualDom_attributeNS = F3(function(namespace, key, value) +{ + return { + $: 'a4', + n: key, + o: { f: namespace, o: value } + }; +}); + + + +// XSS ATTACK VECTOR CHECKS + + +function _VirtualDom_noScript(tag) +{ + return tag == 'script' ? 'p' : tag; +} + +function _VirtualDom_noOnOrFormAction(key) +{ + return /^(on|formAction$)/i.test(key) ? 'data-' + key : key; +} + +function _VirtualDom_noInnerHtmlOrFormAction(key) +{ + return key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key; +} + +function _VirtualDom_noJavaScriptUri(value) +{ + return /^javascript:/i.test(value.replace(/\s/g,'')) ? '' : value; +} + +function _VirtualDom_noJavaScriptUri_UNUSED(value) +{ + return /^javascript:/i.test(value.replace(/\s/g,'')) + ? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")' + : value; +} + +function _VirtualDom_noJavaScriptOrHtmlUri(value) +{ + return /^\s*(javascript:|data:text\/html)/i.test(value) ? '' : value; +} + +function _VirtualDom_noJavaScriptOrHtmlUri_UNUSED(value) +{ + return /^\s*(javascript:|data:text\/html)/i.test(value) + ? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")' + : value; +} + + + +// MAP FACTS + + +var _VirtualDom_mapAttribute = F2(function(func, attr) +{ + return (attr.$ === 'a0') + ? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o)) + : attr; +}); + +function _VirtualDom_mapHandler(func, handler) +{ + var tag = elm$virtual_dom$VirtualDom$toHandlerInt(handler); + + // 0 = Normal + // 1 = MayStopPropagation + // 2 = MayPreventDefault + // 3 = Custom + + return { + $: handler.$, + a: + !tag + ? A2(elm$json$Json$Decode$map, func, handler.a) + : + A3(elm$json$Json$Decode$map2, + tag < 3 + ? _VirtualDom_mapEventTuple + : _VirtualDom_mapEventRecord, + elm$json$Json$Decode$succeed(func), + handler.a + ) + }; +} + +var _VirtualDom_mapEventTuple = F2(function(func, tuple) +{ + return _Utils_Tuple2(func(tuple.a), tuple.b); +}); + +var _VirtualDom_mapEventRecord = F2(function(func, record) +{ + return { + J: func(record.J), + bp: record.bp, + bm: record.bm + } +}); + + + +// ORGANIZE FACTS + + +function _VirtualDom_organizeFacts(factList) +{ + for (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS + { + var entry = factList.a; + + var tag = entry.$; + var key = entry.n; + var value = entry.o; + + if (tag === 'a2') + { + (key === 'className') + ? _VirtualDom_addClass(facts, key, _Json_unwrap(value)) + : facts[key] = _Json_unwrap(value); + + continue; + } + + var subFacts = facts[tag] || (facts[tag] = {}); + (tag === 'a3' && key === 'class') + ? _VirtualDom_addClass(subFacts, key, value) + : subFacts[key] = value; + } + + return facts; +} + +function _VirtualDom_addClass(object, key, newClass) +{ + var classes = object[key]; + object[key] = classes ? classes + ' ' + newClass : newClass; +} + + + +// RENDER + + +function _VirtualDom_render(vNode, eventNode) +{ + var tag = vNode.$; + + if (tag === 5) + { + return _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode); + } + + if (tag === 0) + { + return _VirtualDom_doc.createTextNode(vNode.a); + } + + if (tag === 4) + { + var subNode = vNode.k; + var tagger = vNode.j; + + while (subNode.$ === 4) + { + typeof tagger !== 'object' + ? tagger = [tagger, subNode.j] + : tagger.push(subNode.j); + + subNode = subNode.k; + } + + var subEventRoot = { j: tagger, p: eventNode }; + var domNode = _VirtualDom_render(subNode, subEventRoot); + domNode.elm_event_node_ref = subEventRoot; + return domNode; + } + + if (tag === 3) + { + var domNode = vNode.h(vNode.g); + _VirtualDom_applyFacts(domNode, eventNode, vNode.d); + return domNode; + } + + // at this point `tag` must be 1 or 2 + + var domNode = vNode.f + ? _VirtualDom_doc.createElementNS(vNode.f, vNode.c) + : _VirtualDom_doc.createElement(vNode.c); + + if (_VirtualDom_divertHrefToApp && vNode.c == 'a') + { + domNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode)); + } + + _VirtualDom_applyFacts(domNode, eventNode, vNode.d); + + for (var kids = vNode.e, i = 0; i < kids.length; i++) + { + _VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode)); + } + + return domNode; +} + + + +// APPLY FACTS + + +function _VirtualDom_applyFacts(domNode, eventNode, facts) +{ + for (var key in facts) + { + var value = facts[key]; + + key === 'a1' + ? _VirtualDom_applyStyles(domNode, value) + : + key === 'a0' + ? _VirtualDom_applyEvents(domNode, eventNode, value) + : + key === 'a3' + ? _VirtualDom_applyAttrs(domNode, value) + : + key === 'a4' + ? _VirtualDom_applyAttrsNS(domNode, value) + : + ((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value); + } +} + + + +// APPLY STYLES + + +function _VirtualDom_applyStyles(domNode, styles) +{ + var domNodeStyle = domNode.style; + + for (var key in styles) + { + domNodeStyle[key] = styles[key]; + } +} + + + +// APPLY ATTRS + + +function _VirtualDom_applyAttrs(domNode, attrs) +{ + for (var key in attrs) + { + var value = attrs[key]; + typeof value !== 'undefined' + ? domNode.setAttribute(key, value) + : domNode.removeAttribute(key); + } +} + + + +// APPLY NAMESPACED ATTRS + + +function _VirtualDom_applyAttrsNS(domNode, nsAttrs) +{ + for (var key in nsAttrs) + { + var pair = nsAttrs[key]; + var namespace = pair.f; + var value = pair.o; + + typeof value !== 'undefined' + ? domNode.setAttributeNS(namespace, key, value) + : domNode.removeAttributeNS(namespace, key); + } +} + + + +// APPLY EVENTS + + +function _VirtualDom_applyEvents(domNode, eventNode, events) +{ + var allCallbacks = domNode.elmFs || (domNode.elmFs = {}); + + for (var key in events) + { + var newHandler = events[key]; + var oldCallback = allCallbacks[key]; + + if (!newHandler) + { + domNode.removeEventListener(key, oldCallback); + allCallbacks[key] = undefined; + continue; + } + + if (oldCallback) + { + var oldHandler = oldCallback.q; + if (oldHandler.$ === newHandler.$) + { + oldCallback.q = newHandler; + continue; + } + domNode.removeEventListener(key, oldCallback); + } + + oldCallback = _VirtualDom_makeCallback(eventNode, newHandler); + domNode.addEventListener(key, oldCallback, + _VirtualDom_passiveSupported + && { passive: elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 } + ); + allCallbacks[key] = oldCallback; + } +} + + + +// PASSIVE EVENTS + + +var _VirtualDom_passiveSupported; + +try +{ + window.addEventListener('t', null, Object.defineProperty({}, 'passive', { + get: function() { _VirtualDom_passiveSupported = true; } + })); +} +catch(e) {} + + + +// EVENT HANDLERS + + +function _VirtualDom_makeCallback(eventNode, initialHandler) +{ + function callback(event) + { + var handler = callback.q; + var result = _Json_runHelp(handler.a, event); + + if (!elm$core$Result$isOk(result)) + { + return; + } + + var tag = elm$virtual_dom$VirtualDom$toHandlerInt(handler); + + // 0 = Normal + // 1 = MayStopPropagation + // 2 = MayPreventDefault + // 3 = Custom + + var value = result.a; + var message = !tag ? value : tag < 3 ? value.a : value.J; + var stopPropagation = tag == 1 ? value.b : tag == 3 && value.bp; + var currentEventNode = ( + stopPropagation && event.stopPropagation(), + (tag == 2 ? value.b : tag == 3 && value.bm) && event.preventDefault(), + eventNode + ); + var tagger; + var i; + while (tagger = currentEventNode.j) + { + if (typeof tagger == 'function') + { + message = tagger(message); + } + else + { + for (var i = tagger.length; i--; ) + { + message = tagger[i](message); + } + } + currentEventNode = currentEventNode.p; + } + currentEventNode(message, stopPropagation); // stopPropagation implies isSync + } + + callback.q = initialHandler; + + return callback; +} + +function _VirtualDom_equalEvents(x, y) +{ + return x.$ == y.$ && _Json_equality(x.a, y.a); +} + + + +// DIFF + + +// TODO: Should we do patches like in iOS? +// +// type Patch +// = At Int Patch +// | Batch (List Patch) +// | Change ... +// +// How could it not be better? +// +function _VirtualDom_diff(x, y) +{ + var patches = []; + _VirtualDom_diffHelp(x, y, patches, 0); + return patches; +} + + +function _VirtualDom_pushPatch(patches, type, index, data) +{ + var patch = { + $: type, + r: index, + s: data, + t: undefined, + u: undefined + }; + patches.push(patch); + return patch; +} + + +function _VirtualDom_diffHelp(x, y, patches, index) +{ + if (x === y) + { + return; + } + + var xType = x.$; + var yType = y.$; + + // Bail if you run into different types of nodes. Implies that the + // structure has changed significantly and it's not worth a diff. + if (xType !== yType) + { + if (xType === 1 && yType === 2) + { + y = _VirtualDom_dekey(y); + yType = 1; + } + else + { + _VirtualDom_pushPatch(patches, 0, index, y); + return; + } + } + + // Now we know that both nodes are the same $. + switch (yType) + { + case 5: + var xRefs = x.l; + var yRefs = y.l; + var i = xRefs.length; + var same = i === yRefs.length; + while (same && i--) + { + same = xRefs[i] === yRefs[i]; + } + if (same) + { + y.k = x.k; + return; + } + y.k = y.m(); + var subPatches = []; + _VirtualDom_diffHelp(x.k, y.k, subPatches, 0); + subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches); + return; + + case 4: + // gather nested taggers + var xTaggers = x.j; + var yTaggers = y.j; + var nesting = false; + + var xSubNode = x.k; + while (xSubNode.$ === 4) + { + nesting = true; + + typeof xTaggers !== 'object' + ? xTaggers = [xTaggers, xSubNode.j] + : xTaggers.push(xSubNode.j); + + xSubNode = xSubNode.k; + } + + var ySubNode = y.k; + while (ySubNode.$ === 4) + { + nesting = true; + + typeof yTaggers !== 'object' + ? yTaggers = [yTaggers, ySubNode.j] + : yTaggers.push(ySubNode.j); + + ySubNode = ySubNode.k; + } + + // Just bail if different numbers of taggers. This implies the + // structure of the virtual DOM has changed. + if (nesting && xTaggers.length !== yTaggers.length) + { + _VirtualDom_pushPatch(patches, 0, index, y); + return; + } + + // check if taggers are "the same" + if (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers) + { + _VirtualDom_pushPatch(patches, 2, index, yTaggers); + } + + // diff everything below the taggers + _VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1); + return; + + case 0: + if (x.a !== y.a) + { + _VirtualDom_pushPatch(patches, 3, index, y.a); + } + return; + + case 1: + _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids); + return; + + case 2: + _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids); + return; + + case 3: + if (x.h !== y.h) + { + _VirtualDom_pushPatch(patches, 0, index, y); + return; + } + + var factsDiff = _VirtualDom_diffFacts(x.d, y.d); + factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff); + + var patch = y.i(x.g, y.g); + patch && _VirtualDom_pushPatch(patches, 5, index, patch); + + return; + } +} + +// assumes the incoming arrays are the same length +function _VirtualDom_pairwiseRefEqual(as, bs) +{ + for (var i = 0; i < as.length; i++) + { + if (as[i] !== bs[i]) + { + return false; + } + } + + return true; +} + +function _VirtualDom_diffNodes(x, y, patches, index, diffKids) +{ + // Bail if obvious indicators have changed. Implies more serious + // structural changes such that it's not worth it to diff. + if (x.c !== y.c || x.f !== y.f) + { + _VirtualDom_pushPatch(patches, 0, index, y); + return; + } + + var factsDiff = _VirtualDom_diffFacts(x.d, y.d); + factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff); + + diffKids(x, y, patches, index); +} + + + +// DIFF FACTS + + +// TODO Instead of creating a new diff object, it's possible to just test if +// there *is* a diff. During the actual patch, do the diff again and make the +// modifications directly. This way, there's no new allocations. Worth it? +function _VirtualDom_diffFacts(x, y, category) +{ + var diff; + + // look for changes and removals + for (var xKey in x) + { + if (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4') + { + var subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey); + if (subDiff) + { + diff = diff || {}; + diff[xKey] = subDiff; + } + continue; + } + + // remove if not in the new facts + if (!(xKey in y)) + { + diff = diff || {}; + diff[xKey] = + !category + ? (typeof x[xKey] === 'string' ? '' : null) + : + (category === 'a1') + ? '' + : + (category === 'a0' || category === 'a3') + ? undefined + : + { f: x[xKey].f, o: undefined }; + + continue; + } + + var xValue = x[xKey]; + var yValue = y[xKey]; + + // reference equal, so don't worry about it + if (xValue === yValue && xKey !== 'value' && xKey !== 'checked' + || category === 'a0' && _VirtualDom_equalEvents(xValue, yValue)) + { + continue; + } + + diff = diff || {}; + diff[xKey] = yValue; + } + + // add new stuff + for (var yKey in y) + { + if (!(yKey in x)) + { + diff = diff || {}; + diff[yKey] = y[yKey]; + } + } + + return diff; +} + + + +// DIFF KIDS + + +function _VirtualDom_diffKids(xParent, yParent, patches, index) +{ + var xKids = xParent.e; + var yKids = yParent.e; + + var xLen = xKids.length; + var yLen = yKids.length; + + // FIGURE OUT IF THERE ARE INSERTS OR REMOVALS + + if (xLen > yLen) + { + _VirtualDom_pushPatch(patches, 6, index, { + v: yLen, + i: xLen - yLen + }); + } + else if (xLen < yLen) + { + _VirtualDom_pushPatch(patches, 7, index, { + v: xLen, + e: yKids + }); + } + + // PAIRWISE DIFF EVERYTHING ELSE + + for (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++) + { + var xKid = xKids[i]; + _VirtualDom_diffHelp(xKid, yKids[i], patches, ++index); + index += xKid.b || 0; + } +} + + + +// KEYED DIFF + + +function _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex) +{ + var localPatches = []; + + var changes = {}; // Dict String Entry + var inserts = []; // Array { index : Int, entry : Entry } + // type Entry = { tag : String, vnode : VNode, index : Int, data : _ } + + var xKids = xParent.e; + var yKids = yParent.e; + var xLen = xKids.length; + var yLen = yKids.length; + var xIndex = 0; + var yIndex = 0; + + var index = rootIndex; + + while (xIndex < xLen && yIndex < yLen) + { + var x = xKids[xIndex]; + var y = yKids[yIndex]; + + var xKey = x.a; + var yKey = y.a; + var xNode = x.b; + var yNode = y.b; + + var newMatch = undefined; + var oldMatch = undefined; + + // check if keys match + + if (xKey === yKey) + { + index++; + _VirtualDom_diffHelp(xNode, yNode, localPatches, index); + index += xNode.b || 0; + + xIndex++; + yIndex++; + continue; + } + + // look ahead 1 to detect insertions and removals. + + var xNext = xKids[xIndex + 1]; + var yNext = yKids[yIndex + 1]; + + if (xNext) + { + var xNextKey = xNext.a; + var xNextNode = xNext.b; + oldMatch = yKey === xNextKey; + } + + if (yNext) + { + var yNextKey = yNext.a; + var yNextNode = yNext.b; + newMatch = xKey === yNextKey; + } + + + // swap x and y + if (newMatch && oldMatch) + { + index++; + _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index); + _VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts); + index += xNode.b || 0; + + index++; + _VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index); + index += xNextNode.b || 0; + + xIndex += 2; + yIndex += 2; + continue; + } + + // insert y + if (newMatch) + { + index++; + _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts); + _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index); + index += xNode.b || 0; + + xIndex += 1; + yIndex += 2; + continue; + } + + // remove x + if (oldMatch) + { + index++; + _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index); + index += xNode.b || 0; + + index++; + _VirtualDom_diffHelp(xNextNode, yNode, localPatches, index); + index += xNextNode.b || 0; + + xIndex += 2; + yIndex += 1; + continue; + } + + // remove x, insert y + if (xNext && xNextKey === yNextKey) + { + index++; + _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index); + _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts); + index += xNode.b || 0; + + index++; + _VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index); + index += xNextNode.b || 0; + + xIndex += 2; + yIndex += 2; + continue; + } + + break; + } + + // eat up any remaining nodes with removeNode and insertNode + + while (xIndex < xLen) + { + index++; + var x = xKids[xIndex]; + var xNode = x.b; + _VirtualDom_removeNode(changes, localPatches, x.a, xNode, index); + index += xNode.b || 0; + xIndex++; + } + + while (yIndex < yLen) + { + var endInserts = endInserts || []; + var y = yKids[yIndex]; + _VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts); + yIndex++; + } + + if (localPatches.length > 0 || inserts.length > 0 || endInserts) + { + _VirtualDom_pushPatch(patches, 8, rootIndex, { + w: localPatches, + x: inserts, + y: endInserts + }); + } +} + + + +// CHANGES FROM KEYED DIFF + + +var _VirtualDom_POSTFIX = '_elmW6BL'; + + +function _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts) +{ + var entry = changes[key]; + + // never seen this key before + if (!entry) + { + entry = { + c: 0, + z: vnode, + r: yIndex, + s: undefined + }; + + inserts.push({ r: yIndex, A: entry }); + changes[key] = entry; + + return; + } + + // this key was removed earlier, a match! + if (entry.c === 1) + { + inserts.push({ r: yIndex, A: entry }); + + entry.c = 2; + var subPatches = []; + _VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r); + entry.r = yIndex; + entry.s.s = { + w: subPatches, + A: entry + }; + + return; + } + + // this key has already been inserted or moved, a duplicate! + _VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts); +} + + +function _VirtualDom_removeNode(changes, localPatches, key, vnode, index) +{ + var entry = changes[key]; + + // never seen this key before + if (!entry) + { + var patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined); + + changes[key] = { + c: 1, + z: vnode, + r: index, + s: patch + }; + + return; + } + + // this key was inserted earlier, a match! + if (entry.c === 0) + { + entry.c = 2; + var subPatches = []; + _VirtualDom_diffHelp(vnode, entry.z, subPatches, index); + + _VirtualDom_pushPatch(localPatches, 9, index, { + w: subPatches, + A: entry + }); + + return; + } + + // this key has already been removed or moved, a duplicate! + _VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index); +} + + + +// ADD DOM NODES +// +// Each DOM node has an "index" assigned in order of traversal. It is important +// to minimize our crawl over the actual DOM, so these indexes (along with the +// descendantsCount of virtual nodes) let us skip touching entire subtrees of +// the DOM if we know there are no patches there. + + +function _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode) +{ + _VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode); +} + + +// assumes `patches` is non-empty and indexes increase monotonically. +function _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode) +{ + var patch = patches[i]; + var index = patch.r; + + while (index === low) + { + var patchType = patch.$; + + if (patchType === 1) + { + _VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode); + } + else if (patchType === 8) + { + patch.t = domNode; + patch.u = eventNode; + + var subPatches = patch.s.w; + if (subPatches.length > 0) + { + _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); + } + } + else if (patchType === 9) + { + patch.t = domNode; + patch.u = eventNode; + + var data = patch.s; + if (data) + { + data.A.s = domNode; + var subPatches = data.w; + if (subPatches.length > 0) + { + _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); + } + } + } + else + { + patch.t = domNode; + patch.u = eventNode; + } + + i++; + + if (!(patch = patches[i]) || (index = patch.r) > high) + { + return i; + } + } + + var tag = vNode.$; + + if (tag === 4) + { + var subNode = vNode.k; + + while (subNode.$ === 4) + { + subNode = subNode.k; + } + + return _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref); + } + + // tag must be 1 or 2 at this point + + var vKids = vNode.e; + var childNodes = domNode.childNodes; + for (var j = 0; j < vKids.length; j++) + { + low++; + var vKid = tag === 1 ? vKids[j] : vKids[j].b; + var nextLow = low + (vKid.b || 0); + if (low <= index && index <= nextLow) + { + i = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode); + if (!(patch = patches[i]) || (index = patch.r) > high) + { + return i; + } + } + low = nextLow; + } + return i; +} + + + +// APPLY PATCHES + + +function _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode) +{ + if (patches.length === 0) + { + return rootDomNode; + } + + _VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode); + return _VirtualDom_applyPatchesHelp(rootDomNode, patches); +} + +function _VirtualDom_applyPatchesHelp(rootDomNode, patches) +{ + for (var i = 0; i < patches.length; i++) + { + var patch = patches[i]; + var localDomNode = patch.t + var newNode = _VirtualDom_applyPatch(localDomNode, patch); + if (localDomNode === rootDomNode) + { + rootDomNode = newNode; + } + } + return rootDomNode; +} + +function _VirtualDom_applyPatch(domNode, patch) +{ + switch (patch.$) + { + case 0: + return _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u); + + case 4: + _VirtualDom_applyFacts(domNode, patch.u, patch.s); + return domNode; + + case 3: + domNode.replaceData(0, domNode.length, patch.s); + return domNode; + + case 1: + return _VirtualDom_applyPatchesHelp(domNode, patch.s); + + case 2: + if (domNode.elm_event_node_ref) + { + domNode.elm_event_node_ref.j = patch.s; + } + else + { + domNode.elm_event_node_ref = { j: patch.s, p: patch.u }; + } + return domNode; + + case 6: + var data = patch.s; + for (var i = 0; i < data.i; i++) + { + domNode.removeChild(domNode.childNodes[data.v]); + } + return domNode; + + case 7: + var data = patch.s; + var kids = data.e; + var i = data.v; + var theEnd = domNode.childNodes[i]; + for (; i < kids.length; i++) + { + domNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd); + } + return domNode; + + case 9: + var data = patch.s; + if (!data) + { + domNode.parentNode.removeChild(domNode); + return domNode; + } + var entry = data.A; + if (typeof entry.r !== 'undefined') + { + domNode.parentNode.removeChild(domNode); + } + entry.s = _VirtualDom_applyPatchesHelp(domNode, data.w); + return domNode; + + case 8: + return _VirtualDom_applyPatchReorder(domNode, patch); + + case 5: + return patch.s(domNode); + + default: + _Debug_crash(10); // 'Ran into an unknown patch!' + } +} + + +function _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode) +{ + var parentNode = domNode.parentNode; + var newNode = _VirtualDom_render(vNode, eventNode); + + if (!newNode.elm_event_node_ref) + { + newNode.elm_event_node_ref = domNode.elm_event_node_ref; + } + + if (parentNode && newNode !== domNode) + { + parentNode.replaceChild(newNode, domNode); + } + return newNode; +} + + +function _VirtualDom_applyPatchReorder(domNode, patch) +{ + var data = patch.s; + + // remove end inserts + var frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch); + + // removals + domNode = _VirtualDom_applyPatchesHelp(domNode, data.w); + + // inserts + var inserts = data.x; + for (var i = 0; i < inserts.length; i++) + { + var insert = inserts[i]; + var entry = insert.A; + var node = entry.c === 2 + ? entry.s + : _VirtualDom_render(entry.z, patch.u); + domNode.insertBefore(node, domNode.childNodes[insert.r]); + } + + // add end inserts + if (frag) + { + _VirtualDom_appendChild(domNode, frag); + } + + return domNode; +} + + +function _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch) +{ + if (!endInserts) + { + return; + } + + var frag = _VirtualDom_doc.createDocumentFragment(); + for (var i = 0; i < endInserts.length; i++) + { + var insert = endInserts[i]; + var entry = insert.A; + _VirtualDom_appendChild(frag, entry.c === 2 + ? entry.s + : _VirtualDom_render(entry.z, patch.u) + ); + } + return frag; +} + + +function _VirtualDom_virtualize(node) +{ + // TEXT NODES + + if (node.nodeType === 3) + { + return _VirtualDom_text(node.textContent); + } + + + // WEIRD NODES + + if (node.nodeType !== 1) + { + return _VirtualDom_text(''); + } + + + // ELEMENT NODES + + var attrList = _List_Nil; + var attrs = node.attributes; + for (var i = attrs.length; i--; ) + { + var attr = attrs[i]; + var name = attr.name; + var value = attr.value; + attrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList ); + } + + var tag = node.tagName.toLowerCase(); + var kidList = _List_Nil; + var kids = node.childNodes; + + for (var i = kids.length; i--; ) + { + kidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList); + } + return A3(_VirtualDom_node, tag, attrList, kidList); +} + +function _VirtualDom_dekey(keyedNode) +{ + var keyedKids = keyedNode.e; + var len = keyedKids.length; + var kids = new Array(len); + for (var i = 0; i < len; i++) + { + kids[i] = keyedKids[i].b; + } + + return { + $: 1, + c: keyedNode.c, + d: keyedNode.d, + e: kids, + f: keyedNode.f, + b: keyedNode.b + }; +} + + + + +// ELEMENT + + +var _Debugger_element; + +var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args) +{ + return _Platform_initialize( + flagDecoder, + args, + impl.cP, + impl.c2, + impl.c0, + function(sendToApp, initialModel) { + var view = impl.c5; + /**/ + var domNode = args['node']; + //*/ + /**_UNUSED/ + var domNode = args && args['node'] ? args['node'] : _Debug_crash(0); + //*/ + var currNode = _VirtualDom_virtualize(domNode); + + return _Browser_makeAnimator(initialModel, function(model) + { + var nextNode = view(model); + var patches = _VirtualDom_diff(currNode, nextNode); + domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp); + currNode = nextNode; + }); + } + ); +}); + + + +// DOCUMENT + + +var _Debugger_document; + +var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args) +{ + return _Platform_initialize( + flagDecoder, + args, + impl.cP, + impl.c2, + impl.c0, + function(sendToApp, initialModel) { + var divertHrefToApp = impl.aM && impl.aM(sendToApp) + var view = impl.c5; + var title = _VirtualDom_doc.title; + var bodyNode = _VirtualDom_doc.body; + var currNode = _VirtualDom_virtualize(bodyNode); + return _Browser_makeAnimator(initialModel, function(model) + { + _VirtualDom_divertHrefToApp = divertHrefToApp; + var doc = view(model); + var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.cy); + var patches = _VirtualDom_diff(currNode, nextNode); + bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp); + currNode = nextNode; + _VirtualDom_divertHrefToApp = 0; + (title !== doc.c1) && (_VirtualDom_doc.title = title = doc.c1); + }); + } + ); +}); + + + +// ANIMATION + + +var _Browser_requestAnimationFrame = + typeof requestAnimationFrame !== 'undefined' + ? requestAnimationFrame + : function(callback) { setTimeout(callback, 1000 / 60); }; + + +function _Browser_makeAnimator(model, draw) +{ + draw(model); + + var state = 0; + + function updateIfNeeded() + { + state = state === 1 + ? 0 + : ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 ); + } + + return function(nextModel, isSync) + { + model = nextModel; + + isSync + ? ( draw(model), + state === 2 && (state = 1) + ) + : ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded), + state = 2 + ); + }; +} + + + +// APPLICATION + + +function _Browser_application(impl) +{ + var onUrlChange = impl.cU; + var onUrlRequest = impl.cV; + var key = function() { key.a(onUrlChange(_Browser_getUrl())); }; + + return _Browser_document({ + aM: function(sendToApp) + { + key.a = sendToApp; + _Browser_window.addEventListener('popstate', key); + _Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key); + + return F2(function(domNode, event) + { + if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.download) + { + event.preventDefault(); + var href = domNode.href; + var curr = _Browser_getUrl(); + var next = elm$url$Url$fromString(href).a; + sendToApp(onUrlRequest( + (next + && curr.cb === next.cb + && curr.bU === next.bU + && curr.b7.a === next.b7.a + ) + ? elm$browser$Browser$Internal(next) + : elm$browser$Browser$External(href) + )); + } + }); + }, + cP: function(flags) + { + return A3(impl.cP, flags, _Browser_getUrl(), key); + }, + c5: impl.c5, + c2: impl.c2, + c0: impl.c0 + }); +} + +function _Browser_getUrl() +{ + return elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1); +} + +var _Browser_go = F2(function(key, n) +{ + return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { + n && history.go(n); + key(); + })); +}); + +var _Browser_pushUrl = F2(function(key, url) +{ + return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { + history.pushState({}, '', url); + key(); + })); +}); + +var _Browser_replaceUrl = F2(function(key, url) +{ + return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { + history.replaceState({}, '', url); + key(); + })); +}); + + + +// GLOBAL EVENTS + + +var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} }; +var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode; +var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode; + +var _Browser_on = F3(function(node, eventName, sendToSelf) +{ + return _Scheduler_spawn(_Scheduler_binding(function(callback) + { + function handler(event) { _Scheduler_rawSpawn(sendToSelf(event)); } + node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true }); + return function() { node.removeEventListener(eventName, handler); }; + })); +}); + +var _Browser_decodeEvent = F2(function(decoder, event) +{ + var result = _Json_runHelp(decoder, event); + return elm$core$Result$isOk(result) ? elm$core$Maybe$Just(result.a) : elm$core$Maybe$Nothing; +}); + + + +// PAGE VISIBILITY + + +function _Browser_visibilityInfo() +{ + return (typeof _VirtualDom_doc.hidden !== 'undefined') + ? { cM: 'hidden', aE: 'visibilitychange' } + : + (typeof _VirtualDom_doc.mozHidden !== 'undefined') + ? { cM: 'mozHidden', aE: 'mozvisibilitychange' } + : + (typeof _VirtualDom_doc.msHidden !== 'undefined') + ? { cM: 'msHidden', aE: 'msvisibilitychange' } + : + (typeof _VirtualDom_doc.webkitHidden !== 'undefined') + ? { cM: 'webkitHidden', aE: 'webkitvisibilitychange' } + : { cM: 'hidden', aE: 'visibilitychange' }; +} + + + +// ANIMATION FRAMES + + +function _Browser_rAF() +{ + return _Scheduler_binding(function(callback) + { + var id = requestAnimationFrame(function() { + callback(_Scheduler_succeed(Date.now())); + }); + + return function() { + cancelAnimationFrame(id); + }; + }); +} + + +function _Browser_now() +{ + return _Scheduler_binding(function(callback) + { + callback(_Scheduler_succeed(Date.now())); + }); +} + + + +// DOM STUFF + + +function _Browser_withNode(id, doStuff) +{ + return _Scheduler_binding(function(callback) + { + _Browser_requestAnimationFrame(function() { + var node = document.getElementById(id); + callback(node + ? _Scheduler_succeed(doStuff(node)) + : _Scheduler_fail(elm$browser$Browser$Dom$NotFound(id)) + ); + }); + }); +} + + +function _Browser_withWindow(doStuff) +{ + return _Scheduler_binding(function(callback) + { + _Browser_requestAnimationFrame(function() { + callback(_Scheduler_succeed(doStuff())); + }); + }); +} + + +// FOCUS and BLUR + + +var _Browser_call = F2(function(functionName, id) +{ + return _Browser_withNode(id, function(node) { + node[functionName](); + return _Utils_Tuple0; + }); +}); + + + +// WINDOW VIEWPORT + + +function _Browser_getViewport() +{ + return { + ch: _Browser_getScene(), + ct: { + ba: _Browser_window.pageXOffset, + bb: _Browser_window.pageYOffset, + aA: _Browser_doc.documentElement.clientWidth, + ak: _Browser_doc.documentElement.clientHeight + } + }; +} + +function _Browser_getScene() +{ + var body = _Browser_doc.body; + var elem = _Browser_doc.documentElement; + return { + aA: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth), + ak: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight) + }; +} + +var _Browser_setViewport = F2(function(x, y) +{ + return _Browser_withWindow(function() + { + _Browser_window.scroll(x, y); + return _Utils_Tuple0; + }); +}); + + + +// ELEMENT VIEWPORT + + +function _Browser_getViewportOf(id) +{ + return _Browser_withNode(id, function(node) + { + return { + ch: { + aA: node.scrollWidth, + ak: node.scrollHeight + }, + ct: { + ba: node.scrollLeft, + bb: node.scrollTop, + aA: node.clientWidth, + ak: node.clientHeight + } + }; + }); +} + + +var _Browser_setViewportOf = F3(function(id, x, y) +{ + return _Browser_withNode(id, function(node) + { + node.scrollLeft = x; + node.scrollTop = y; + return _Utils_Tuple0; + }); +}); + + + +// ELEMENT + + +function _Browser_getElement(id) +{ + return _Browser_withNode(id, function(node) + { + var rect = node.getBoundingClientRect(); + var x = _Browser_window.pageXOffset; + var y = _Browser_window.pageYOffset; + return { + ch: _Browser_getScene(), + ct: { + ba: x, + bb: y, + aA: _Browser_doc.documentElement.clientWidth, + ak: _Browser_doc.documentElement.clientHeight + }, + cI: { + ba: x + rect.left, + bb: y + rect.top, + aA: rect.width, + ak: rect.height + } + }; + }); +} + + + +// LOAD and RELOAD + + +function _Browser_reload(skipCache) +{ + return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function(callback) + { + _VirtualDom_doc.location.reload(skipCache); + })); +} + +function _Browser_load(url) +{ + return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function(callback) + { + try + { + _Browser_window.location = url; + } + catch(err) + { + // Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here. + // Other browsers reload the page, so let's be consistent about that. + _VirtualDom_doc.location.reload(false); + } + })); +} +var elm$core$Maybe$Nothing = {$: 1}; +var author$project$Lexicon$initialModel = {aF: elm$core$Maybe$Nothing, af: elm$core$Maybe$Nothing, aV: elm$core$Maybe$Nothing}; +var author$project$Main$SearchView = 1; +var author$project$Main$initialModel = {O: 1, af: elm$core$Maybe$Nothing, u: author$project$Lexicon$initialModel, V: '', as: elm$core$Maybe$Nothing, ci: elm$core$Maybe$Nothing}; +var elm$core$Array$branchFactor = 32; +var elm$core$Array$Array_elm_builtin = F4( + function (a, b, c, d) { + return {$: 0, a: a, b: b, c: c, d: d}; + }); +var elm$core$Basics$EQ = 1; +var elm$core$Basics$GT = 2; +var elm$core$Basics$LT = 0; +var elm$core$Dict$foldr = F3( + function (func, acc, t) { + foldr: + while (true) { + if (t.$ === -2) { + return acc; + } else { + var key = t.b; + var value = t.c; + var left = t.d; + var right = t.e; + var $temp$func = func, + $temp$acc = A3( + func, + key, + value, + A3(elm$core$Dict$foldr, func, acc, right)), + $temp$t = left; + func = $temp$func; + acc = $temp$acc; + t = $temp$t; + continue foldr; + } + } + }); +var elm$core$List$cons = _List_cons; +var elm$core$Dict$toList = function (dict) { + return A3( + elm$core$Dict$foldr, + F3( + function (key, value, list) { + return A2( + elm$core$List$cons, + _Utils_Tuple2(key, value), + list); + }), + _List_Nil, + dict); +}; +var elm$core$Dict$keys = function (dict) { + return A3( + elm$core$Dict$foldr, + F3( + function (key, value, keyList) { + return A2(elm$core$List$cons, key, keyList); + }), + _List_Nil, + dict); +}; +var elm$core$Set$toList = function (_n0) { + var dict = _n0; + return elm$core$Dict$keys(dict); +}; +var elm$core$Elm$JsArray$foldr = _JsArray_foldr; +var elm$core$Array$foldr = F3( + function (func, baseCase, _n0) { + var tree = _n0.c; + var tail = _n0.d; + var helper = F2( + function (node, acc) { + if (!node.$) { + var subTree = node.a; + return A3(elm$core$Elm$JsArray$foldr, helper, acc, subTree); + } else { + var values = node.a; + return A3(elm$core$Elm$JsArray$foldr, func, acc, values); + } + }); + return A3( + elm$core$Elm$JsArray$foldr, + helper, + A3(elm$core$Elm$JsArray$foldr, func, baseCase, tail), + tree); + }); +var elm$core$Array$toList = function (array) { + return A3(elm$core$Array$foldr, elm$core$List$cons, _List_Nil, array); +}; +var elm$core$Basics$ceiling = _Basics_ceiling; +var elm$core$Basics$fdiv = _Basics_fdiv; +var elm$core$Basics$logBase = F2( + function (base, number) { + return _Basics_log(number) / _Basics_log(base); + }); +var elm$core$Basics$toFloat = _Basics_toFloat; +var elm$core$Array$shiftStep = elm$core$Basics$ceiling( + A2(elm$core$Basics$logBase, 2, elm$core$Array$branchFactor)); +var elm$core$Elm$JsArray$empty = _JsArray_empty; +var elm$core$Array$empty = A4(elm$core$Array$Array_elm_builtin, 0, elm$core$Array$shiftStep, elm$core$Elm$JsArray$empty, elm$core$Elm$JsArray$empty); +var elm$core$Array$Leaf = function (a) { + return {$: 1, a: a}; +}; +var elm$core$Array$SubTree = function (a) { + return {$: 0, a: a}; +}; +var elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList; +var elm$core$List$foldl = F3( + function (func, acc, list) { + foldl: + while (true) { + if (!list.b) { + return acc; + } else { + var x = list.a; + var xs = list.b; + var $temp$func = func, + $temp$acc = A2(func, x, acc), + $temp$list = xs; + func = $temp$func; + acc = $temp$acc; + list = $temp$list; + continue foldl; + } + } + }); +var elm$core$List$reverse = function (list) { + return A3(elm$core$List$foldl, elm$core$List$cons, _List_Nil, list); +}; +var elm$core$Array$compressNodes = F2( + function (nodes, acc) { + compressNodes: + while (true) { + var _n0 = A2(elm$core$Elm$JsArray$initializeFromList, elm$core$Array$branchFactor, nodes); + var node = _n0.a; + var remainingNodes = _n0.b; + var newAcc = A2( + elm$core$List$cons, + elm$core$Array$SubTree(node), + acc); + if (!remainingNodes.b) { + return elm$core$List$reverse(newAcc); + } else { + var $temp$nodes = remainingNodes, + $temp$acc = newAcc; + nodes = $temp$nodes; + acc = $temp$acc; + continue compressNodes; + } + } + }); +var elm$core$Basics$apR = F2( + function (x, f) { + return f(x); + }); +var elm$core$Basics$eq = _Utils_equal; +var elm$core$Tuple$first = function (_n0) { + var x = _n0.a; + return x; +}; +var elm$core$Array$treeFromBuilder = F2( + function (nodeList, nodeListSize) { + treeFromBuilder: + while (true) { + var newNodeSize = elm$core$Basics$ceiling(nodeListSize / elm$core$Array$branchFactor); + if (newNodeSize === 1) { + return A2(elm$core$Elm$JsArray$initializeFromList, elm$core$Array$branchFactor, nodeList).a; + } else { + var $temp$nodeList = A2(elm$core$Array$compressNodes, nodeList, _List_Nil), + $temp$nodeListSize = newNodeSize; + nodeList = $temp$nodeList; + nodeListSize = $temp$nodeListSize; + continue treeFromBuilder; + } + } + }); +var elm$core$Basics$add = _Basics_add; +var elm$core$Basics$apL = F2( + function (f, x) { + return f(x); + }); +var elm$core$Basics$floor = _Basics_floor; +var elm$core$Basics$gt = _Utils_gt; +var elm$core$Basics$max = F2( + function (x, y) { + return (_Utils_cmp(x, y) > 0) ? x : y; + }); +var elm$core$Basics$mul = _Basics_mul; +var elm$core$Basics$sub = _Basics_sub; +var elm$core$Elm$JsArray$length = _JsArray_length; +var elm$core$Array$builderToArray = F2( + function (reverseNodeList, builder) { + if (!builder.k) { + return A4( + elm$core$Array$Array_elm_builtin, + elm$core$Elm$JsArray$length(builder.m), + elm$core$Array$shiftStep, + elm$core$Elm$JsArray$empty, + builder.m); + } else { + var treeLen = builder.k * elm$core$Array$branchFactor; + var depth = elm$core$Basics$floor( + A2(elm$core$Basics$logBase, elm$core$Array$branchFactor, treeLen - 1)); + var correctNodeList = reverseNodeList ? elm$core$List$reverse(builder.n) : builder.n; + var tree = A2(elm$core$Array$treeFromBuilder, correctNodeList, builder.k); + return A4( + elm$core$Array$Array_elm_builtin, + elm$core$Elm$JsArray$length(builder.m) + treeLen, + A2(elm$core$Basics$max, 5, depth * elm$core$Array$shiftStep), + tree, + builder.m); + } + }); +var elm$core$Basics$False = 1; +var elm$core$Basics$idiv = _Basics_idiv; +var elm$core$Basics$lt = _Utils_lt; +var elm$core$Elm$JsArray$initialize = _JsArray_initialize; +var elm$core$Array$initializeHelp = F5( + function (fn, fromIndex, len, nodeList, tail) { + initializeHelp: + while (true) { + if (fromIndex < 0) { + return A2( + elm$core$Array$builderToArray, + false, + {n: nodeList, k: (len / elm$core$Array$branchFactor) | 0, m: tail}); + } else { + var leaf = elm$core$Array$Leaf( + A3(elm$core$Elm$JsArray$initialize, elm$core$Array$branchFactor, fromIndex, fn)); + var $temp$fn = fn, + $temp$fromIndex = fromIndex - elm$core$Array$branchFactor, + $temp$len = len, + $temp$nodeList = A2(elm$core$List$cons, leaf, nodeList), + $temp$tail = tail; + fn = $temp$fn; + fromIndex = $temp$fromIndex; + len = $temp$len; + nodeList = $temp$nodeList; + tail = $temp$tail; + continue initializeHelp; + } + } + }); +var elm$core$Basics$le = _Utils_le; +var elm$core$Basics$remainderBy = _Basics_remainderBy; +var elm$core$Array$initialize = F2( + function (len, fn) { + if (len <= 0) { + return elm$core$Array$empty; + } else { + var tailLen = len % elm$core$Array$branchFactor; + var tail = A3(elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn); + var initialFromIndex = (len - tailLen) - elm$core$Array$branchFactor; + return A5(elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail); + } + }); +var elm$core$Maybe$Just = function (a) { + return {$: 0, a: a}; +}; +var elm$core$Result$Err = function (a) { + return {$: 1, a: a}; +}; +var elm$core$Result$Ok = function (a) { + return {$: 0, a: a}; +}; +var elm$core$Basics$True = 0; +var elm$core$Result$isOk = function (result) { + if (!result.$) { + return true; + } else { + return false; + } +}; +var elm$json$Json$Decode$Failure = F2( + function (a, b) { + return {$: 3, a: a, b: b}; + }); +var elm$json$Json$Decode$Field = F2( + function (a, b) { + return {$: 0, a: a, b: b}; + }); +var elm$json$Json$Decode$Index = F2( + function (a, b) { + return {$: 1, a: a, b: b}; + }); +var elm$json$Json$Decode$OneOf = function (a) { + return {$: 2, a: a}; +}; +var elm$core$Basics$and = _Basics_and; +var elm$core$Basics$append = _Utils_append; +var elm$core$Basics$or = _Basics_or; +var elm$core$Char$toCode = _Char_toCode; +var elm$core$Char$isLower = function (_char) { + var code = elm$core$Char$toCode(_char); + return (97 <= code) && (code <= 122); +}; +var elm$core$Char$isUpper = function (_char) { + var code = elm$core$Char$toCode(_char); + return (code <= 90) && (65 <= code); +}; +var elm$core$Char$isAlpha = function (_char) { + return elm$core$Char$isLower(_char) || elm$core$Char$isUpper(_char); +}; +var elm$core$Char$isDigit = function (_char) { + var code = elm$core$Char$toCode(_char); + return (code <= 57) && (48 <= code); +}; +var elm$core$Char$isAlphaNum = function (_char) { + return elm$core$Char$isLower(_char) || (elm$core$Char$isUpper(_char) || elm$core$Char$isDigit(_char)); +}; +var elm$core$List$length = function (xs) { + return A3( + elm$core$List$foldl, + F2( + function (_n0, i) { + return i + 1; + }), + 0, + xs); +}; +var elm$core$List$map2 = _List_map2; +var elm$core$List$rangeHelp = F3( + function (lo, hi, list) { + rangeHelp: + while (true) { + if (_Utils_cmp(lo, hi) < 1) { + var $temp$lo = lo, + $temp$hi = hi - 1, + $temp$list = A2(elm$core$List$cons, hi, list); + lo = $temp$lo; + hi = $temp$hi; + list = $temp$list; + continue rangeHelp; + } else { + return list; + } + } + }); +var elm$core$List$range = F2( + function (lo, hi) { + return A3(elm$core$List$rangeHelp, lo, hi, _List_Nil); + }); +var elm$core$List$indexedMap = F2( + function (f, xs) { + return A3( + elm$core$List$map2, + f, + A2( + elm$core$List$range, + 0, + elm$core$List$length(xs) - 1), + xs); + }); +var elm$core$String$all = _String_all; +var elm$core$String$fromInt = _String_fromNumber; +var elm$core$String$join = F2( + function (sep, chunks) { + return A2( + _String_join, + sep, + _List_toArray(chunks)); + }); +var elm$core$String$uncons = _String_uncons; +var elm$core$String$split = F2( + function (sep, string) { + return _List_fromArray( + A2(_String_split, sep, string)); + }); +var elm$json$Json$Decode$indent = function (str) { + return A2( + elm$core$String$join, + '\n ', + A2(elm$core$String$split, '\n', str)); +}; +var elm$json$Json$Encode$encode = _Json_encode; +var elm$json$Json$Decode$errorOneOf = F2( + function (i, error) { + return '\n\n(' + (elm$core$String$fromInt(i + 1) + (') ' + elm$json$Json$Decode$indent( + elm$json$Json$Decode$errorToString(error)))); + }); +var elm$json$Json$Decode$errorToString = function (error) { + return A2(elm$json$Json$Decode$errorToStringHelp, error, _List_Nil); +}; +var elm$json$Json$Decode$errorToStringHelp = F2( + function (error, context) { + errorToStringHelp: + while (true) { + switch (error.$) { + case 0: + var f = error.a; + var err = error.b; + var isSimple = function () { + var _n1 = elm$core$String$uncons(f); + if (_n1.$ === 1) { + return false; + } else { + var _n2 = _n1.a; + var _char = _n2.a; + var rest = _n2.b; + return elm$core$Char$isAlpha(_char) && A2(elm$core$String$all, elm$core$Char$isAlphaNum, rest); + } + }(); + var fieldName = isSimple ? ('.' + f) : ('[\'' + (f + '\']')); + var $temp$error = err, + $temp$context = A2(elm$core$List$cons, fieldName, context); + error = $temp$error; + context = $temp$context; + continue errorToStringHelp; + case 1: + var i = error.a; + var err = error.b; + var indexName = '[' + (elm$core$String$fromInt(i) + ']'); + var $temp$error = err, + $temp$context = A2(elm$core$List$cons, indexName, context); + error = $temp$error; + context = $temp$context; + continue errorToStringHelp; + case 2: + var errors = error.a; + if (!errors.b) { + return 'Ran into a Json.Decode.oneOf with no possibilities' + function () { + if (!context.b) { + return '!'; + } else { + return ' at json' + A2( + elm$core$String$join, + '', + elm$core$List$reverse(context)); + } + }(); + } else { + if (!errors.b.b) { + var err = errors.a; + var $temp$error = err, + $temp$context = context; + error = $temp$error; + context = $temp$context; + continue errorToStringHelp; + } else { + var starter = function () { + if (!context.b) { + return 'Json.Decode.oneOf'; + } else { + return 'The Json.Decode.oneOf at json' + A2( + elm$core$String$join, + '', + elm$core$List$reverse(context)); + } + }(); + var introduction = starter + (' failed in the following ' + (elm$core$String$fromInt( + elm$core$List$length(errors)) + ' ways:')); + return A2( + elm$core$String$join, + '\n\n', + A2( + elm$core$List$cons, + introduction, + A2(elm$core$List$indexedMap, elm$json$Json$Decode$errorOneOf, errors))); + } + } + default: + var msg = error.a; + var json = error.b; + var introduction = function () { + if (!context.b) { + return 'Problem with the given value:\n\n'; + } else { + return 'Problem with the value at json' + (A2( + elm$core$String$join, + '', + elm$core$List$reverse(context)) + ':\n\n '); + } + }(); + return introduction + (elm$json$Json$Decode$indent( + A2(elm$json$Json$Encode$encode, 4, json)) + ('\n\n' + msg)); + } + } + }); +var elm$json$Json$Encode$null = _Json_encodeNull; +var author$project$Lexicon$getWordList = _Platform_outgoingPort( + 'getWordList', + function ($) { + return elm$json$Json$Encode$null; + }); +var author$project$Lexicon$loadWordList = author$project$Lexicon$getWordList(0); +var author$project$Main$LexiconMsg = function (a) { + return {$: 0, a: a}; +}; +var elm$core$Platform$Cmd$map = _Platform_map; +var author$project$Main$startApplication = A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, author$project$Lexicon$loadWordList); +var elm$core$List$isEmpty = function (xs) { + if (!xs.b) { + return true; + } else { + return false; + } +}; +var author$project$Main$init = function (wl) { + return elm$core$List$isEmpty(wl) ? _Utils_Tuple2(author$project$Main$initialModel, author$project$Main$startApplication) : _Utils_Tuple2( + _Utils_update( + author$project$Main$initialModel, + { + as: elm$core$Maybe$Just(wl) + }), + author$project$Main$startApplication); +}; +var author$project$Lexicon$WordDefinitionReceived = function (a) { + return {$: 3, a: a}; +}; +var author$project$Lexicon$WordListReceived = function (a) { + return {$: 2, a: a}; +}; +var elm$json$Json$Decode$andThen = _Json_andThen; +var elm$json$Json$Decode$field = _Json_decodeField; +var elm$json$Json$Decode$list = _Json_decodeList; +var elm$json$Json$Decode$string = _Json_decodeString; +var elm$json$Json$Decode$succeed = _Json_succeed; +var author$project$Lexicon$wordDefinitionReceived = _Platform_incomingPort( + 'wordDefinitionReceived', + A2( + elm$json$Json$Decode$andThen, + function (word) { + return A2( + elm$json$Json$Decode$andThen, + function (seeAlso) { + return A2( + elm$json$Json$Decode$andThen, + function (id) { + return A2( + elm$json$Json$Decode$andThen, + function (definition) { + return elm$json$Json$Decode$succeed( + {aY: definition, al: id, bn: seeAlso, _: word}); + }, + A2(elm$json$Json$Decode$field, 'definition', elm$json$Json$Decode$string)); + }, + A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); + }, + A2( + elm$json$Json$Decode$field, + 'seeAlso', + elm$json$Json$Decode$list(elm$json$Json$Decode$string))); + }, + A2(elm$json$Json$Decode$field, 'word', elm$json$Json$Decode$string))); +var author$project$Lexicon$wordListReceived = _Platform_incomingPort( + 'wordListReceived', + elm$json$Json$Decode$list( + A2( + elm$json$Json$Decode$andThen, + function (word) { + return A2( + elm$json$Json$Decode$andThen, + function (id) { + return elm$json$Json$Decode$succeed( + {al: id, _: word}); + }, + A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); + }, + A2(elm$json$Json$Decode$field, 'word', elm$json$Json$Decode$string)))); +var elm$core$Platform$Sub$batch = _Platform_batch; +var author$project$Lexicon$subscriptions = elm$core$Platform$Sub$batch( + _List_fromArray( + [ + author$project$Lexicon$wordListReceived( + function (wl) { + return author$project$Lexicon$WordListReceived(wl); + }), + author$project$Lexicon$wordDefinitionReceived( + function (w) { + return author$project$Lexicon$WordDefinitionReceived(w); + }) + ])); +var author$project$Main$SavedWordListChanged = function (a) { + return {$: 9, a: a}; +}; +var elm$json$Json$Encode$string = _Json_wrap; +var author$project$Main$lcDebug = _Platform_outgoingPort('lcDebug', elm$json$Json$Encode$string); +var author$project$Main$savedWordListChanged = _Platform_incomingPort( + 'savedWordListChanged', + elm$json$Json$Decode$list( + A2( + elm$json$Json$Decode$andThen, + function (word) { + return A2( + elm$json$Json$Decode$andThen, + function (id) { + return elm$json$Json$Decode$succeed( + {al: id, _: word}); + }, + A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); + }, + A2(elm$json$Json$Decode$field, 'word', elm$json$Json$Decode$string)))); +var elm$core$Platform$Sub$map = _Platform_map; +var author$project$Main$subscriptions = function (model) { + var d = author$project$Main$lcDebug('subscription arrived'); + return elm$core$Platform$Sub$batch( + _List_fromArray( + [ + author$project$Main$savedWordListChanged( + function (wl) { + return author$project$Main$SavedWordListChanged(wl); + }), + A2(elm$core$Platform$Sub$map, author$project$Main$LexiconMsg, author$project$Lexicon$subscriptions) + ])); +}; +var author$project$Lexicon$getWordDefinition = _Platform_outgoingPort('getWordDefinition', elm$json$Json$Encode$string); +var author$project$Lexicon$loadWordDefinition = function (id) { + return author$project$Lexicon$getWordDefinition(id); +}; +var elm$core$List$foldrHelper = F4( + function (fn, acc, ctr, ls) { + if (!ls.b) { + return acc; + } else { + var a = ls.a; + var r1 = ls.b; + if (!r1.b) { + return A2(fn, a, acc); + } else { + var b = r1.a; + var r2 = r1.b; + if (!r2.b) { + return A2( + fn, + a, + A2(fn, b, acc)); + } else { + var c = r2.a; + var r3 = r2.b; + if (!r3.b) { + return A2( + fn, + a, + A2( + fn, + b, + A2(fn, c, acc))); + } else { + var d = r3.a; + var r4 = r3.b; + var res = (ctr > 500) ? A3( + elm$core$List$foldl, + fn, + acc, + elm$core$List$reverse(r4)) : A4(elm$core$List$foldrHelper, fn, acc, ctr + 1, r4); + return A2( + fn, + a, + A2( + fn, + b, + A2( + fn, + c, + A2(fn, d, res)))); + } + } + } + } + }); +var elm$core$List$foldr = F3( + function (fn, acc, ls) { + return A4(elm$core$List$foldrHelper, fn, acc, 0, ls); + }); +var elm$core$List$filter = F2( + function (isGood, list) { + return A3( + elm$core$List$foldr, + F2( + function (x, xs) { + return isGood(x) ? A2(elm$core$List$cons, x, xs) : xs; + }), + _List_Nil, + list); + }); +var elm$core$List$head = function (list) { + if (list.b) { + var x = list.a; + var xs = list.b; + return elm$core$Maybe$Just(x); + } else { + return elm$core$Maybe$Nothing; + } +}; +var elm$core$Platform$Cmd$batch = _Platform_batch; +var elm$core$Platform$Cmd$none = elm$core$Platform$Cmd$batch(_List_Nil); +var author$project$Lexicon$loadWordDefinitionByWord = F2( + function (word, wordList) { + var list = function () { + if (!wordList.$) { + var l = wordList.a; + return l; + } else { + return _List_Nil; + } + }(); + var found = elm$core$List$head( + A2( + elm$core$List$filter, + function (i) { + return _Utils_eq(i._, word); + }, + list)); + if (!found.$) { + var f = found.a; + return author$project$Lexicon$loadWordDefinition(f.al); + } else { + return elm$core$Platform$Cmd$none; + } + }); +var author$project$Lexicon$update = F2( + function (msg, model) { + switch (msg.$) { + case 2: + var wl = msg.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + aV: elm$core$Maybe$Just(wl) + }), + elm$core$Platform$Cmd$none); + case 3: + var w = msg.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + aF: elm$core$Maybe$Just(w) + }), + elm$core$Platform$Cmd$none); + case 0: + var result = msg.a; + if (!result.$) { + var results = result.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + aV: elm$core$Maybe$Just(results) + }), + elm$core$Platform$Cmd$none); + } else { + var error = result.a; + if (error.$ === 4) { + var errMsg = error.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + af: elm$core$Maybe$Just(errMsg) + }), + elm$core$Platform$Cmd$none); + } else { + return _Utils_Tuple2( + _Utils_update( + model, + { + af: elm$core$Maybe$Just('something happened') + }), + elm$core$Platform$Cmd$none); + } + } + default: + var result = msg.a; + if (!result.$) { + var results = result.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + aF: elm$core$Maybe$Just(results) + }), + elm$core$Platform$Cmd$none); + } else { + var error = result.a; + if (error.$ === 4) { + var errMsg = error.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + af: elm$core$Maybe$Just(errMsg) + }), + elm$core$Platform$Cmd$none); + } else { + return _Utils_Tuple2( + _Utils_update( + model, + { + af: elm$core$Maybe$Just('something happened') + }), + elm$core$Platform$Cmd$none); + } + } + } + }); +var elm$json$Json$Encode$list = F2( + function (func, entries) { + return _Json_wrap( + A3( + elm$core$List$foldl, + _Json_addEntry(func), + _Json_emptyArray(0), + entries)); + }); +var elm$json$Json$Encode$object = function (pairs) { + return _Json_wrap( + A3( + elm$core$List$foldl, + F2( + function (_n0, obj) { + var k = _n0.a; + var v = _n0.b; + return A3(_Json_addField, k, v, obj); + }), + _Json_emptyObject(0), + pairs)); +}; +var author$project$Lexicon$wordEncoder = function (word) { + return elm$json$Json$Encode$object( + _List_fromArray( + [ + _Utils_Tuple2( + 'id', + elm$json$Json$Encode$string(word.al)), + _Utils_Tuple2( + 'word', + elm$json$Json$Encode$string(word._)), + _Utils_Tuple2( + 'definition', + elm$json$Json$Encode$string(word.aY)), + _Utils_Tuple2( + 'seeAlso', + A2(elm$json$Json$Encode$list, elm$json$Json$Encode$string, word.bn)) + ])); +}; +var author$project$Main$DefinitionView = 4; +var author$project$Main$LoadDefinitionByInt = function (a) { + return {$: 3, a: a}; +}; +var author$project$Main$appGoHome = _Platform_outgoingPort( + 'appGoHome', + function ($) { + return elm$json$Json$Encode$null; + }); +var author$project$Main$appGoSettings = _Platform_outgoingPort( + 'appGoSettings', + function ($) { + return elm$json$Json$Encode$null; + }); +var elm$core$Basics$identity = function (x) { + return x; +}; +var author$project$Main$removeSavedWord = _Platform_outgoingPort('removeSavedWord', elm$core$Basics$identity); +var author$project$Main$saveWord = _Platform_outgoingPort('saveWord', elm$core$Basics$identity); +var author$project$Main$scrollTop = _Platform_outgoingPort( + 'scrollTop', + function ($) { + return elm$json$Json$Encode$null; + }); +var elm$random$Random$Generate = elm$core$Basics$identity; +var elm$core$Task$andThen = _Scheduler_andThen; +var elm$core$Task$succeed = _Scheduler_succeed; +var elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy; +var elm$random$Random$Seed = F2( + function (a, b) { + return {$: 0, a: a, b: b}; + }); +var elm$random$Random$next = function (_n0) { + var state0 = _n0.a; + var incr = _n0.b; + return A2(elm$random$Random$Seed, ((state0 * 1664525) + incr) >>> 0, incr); +}; +var elm$random$Random$initialSeed = function (x) { + var _n0 = elm$random$Random$next( + A2(elm$random$Random$Seed, 0, 1013904223)); + var state1 = _n0.a; + var incr = _n0.b; + var state2 = (state1 + x) >>> 0; + return elm$random$Random$next( + A2(elm$random$Random$Seed, state2, incr)); +}; +var elm$time$Time$Name = function (a) { + return {$: 0, a: a}; +}; +var elm$time$Time$Offset = function (a) { + return {$: 1, a: a}; +}; +var elm$time$Time$Zone = F2( + function (a, b) { + return {$: 0, a: a, b: b}; + }); +var elm$time$Time$customZone = elm$time$Time$Zone; +var elm$time$Time$Posix = elm$core$Basics$identity; +var elm$time$Time$millisToPosix = elm$core$Basics$identity; +var elm$time$Time$now = _Time_now(elm$time$Time$millisToPosix); +var elm$time$Time$posixToMillis = function (_n0) { + var millis = _n0; + return millis; +}; +var elm$random$Random$init = A2( + elm$core$Task$andThen, + function (time) { + return elm$core$Task$succeed( + elm$random$Random$initialSeed( + elm$time$Time$posixToMillis(time))); + }, + elm$time$Time$now); +var elm$core$Platform$sendToApp = _Platform_sendToApp; +var elm$random$Random$step = F2( + function (_n0, seed) { + var generator = _n0; + return generator(seed); + }); +var elm$random$Random$onEffects = F3( + function (router, commands, seed) { + if (!commands.b) { + return elm$core$Task$succeed(seed); + } else { + var generator = commands.a; + var rest = commands.b; + var _n1 = A2(elm$random$Random$step, generator, seed); + var value = _n1.a; + var newSeed = _n1.b; + return A2( + elm$core$Task$andThen, + function (_n2) { + return A3(elm$random$Random$onEffects, router, rest, newSeed); + }, + A2(elm$core$Platform$sendToApp, router, value)); + } + }); +var elm$random$Random$onSelfMsg = F3( + function (_n0, _n1, seed) { + return elm$core$Task$succeed(seed); + }); +var elm$random$Random$Generator = elm$core$Basics$identity; +var elm$random$Random$map = F2( + function (func, _n0) { + var genA = _n0; + return function (seed0) { + var _n1 = genA(seed0); + var a = _n1.a; + var seed1 = _n1.b; + return _Utils_Tuple2( + func(a), + seed1); + }; + }); +var elm$random$Random$cmdMap = F2( + function (func, _n0) { + var generator = _n0; + return A2(elm$random$Random$map, func, generator); + }); +_Platform_effectManagers['Random'] = _Platform_createManager(elm$random$Random$init, elm$random$Random$onEffects, elm$random$Random$onSelfMsg, elm$random$Random$cmdMap); +var elm$random$Random$command = _Platform_leaf('Random'); +var elm$random$Random$generate = F2( + function (tagger, generator) { + return elm$random$Random$command( + A2(elm$random$Random$map, tagger, generator)); + }); +var elm$core$Basics$negate = function (n) { + return -n; +}; +var elm$core$Bitwise$and = _Bitwise_and; +var elm$core$Bitwise$xor = _Bitwise_xor; +var elm$random$Random$peel = function (_n0) { + var state = _n0.a; + var word = (state ^ (state >>> ((state >>> 28) + 4))) * 277803737; + return ((word >>> 22) ^ word) >>> 0; +}; +var elm$random$Random$int = F2( + function (a, b) { + return function (seed0) { + var _n0 = (_Utils_cmp(a, b) < 0) ? _Utils_Tuple2(a, b) : _Utils_Tuple2(b, a); + var lo = _n0.a; + var hi = _n0.b; + var range = (hi - lo) + 1; + if (!((range - 1) & range)) { + return _Utils_Tuple2( + (((range - 1) & elm$random$Random$peel(seed0)) >>> 0) + lo, + elm$random$Random$next(seed0)); + } else { + var threshhold = (((-range) >>> 0) % range) >>> 0; + var accountForBias = function (seed) { + accountForBias: + while (true) { + var x = elm$random$Random$peel(seed); + var seedN = elm$random$Random$next(seed); + if (_Utils_cmp(x, threshhold) < 0) { + var $temp$seed = seedN; + seed = $temp$seed; + continue accountForBias; + } else { + return _Utils_Tuple2((x % range) + lo, seedN); + } + } + }; + return accountForBias(seed0); + } + }; + }); +var author$project$Main$update = F2( + function (msg, model) { + switch (msg.$) { + case 10: + return _Utils_Tuple2( + model, + author$project$Main$appGoHome(0)); + case 11: + return _Utils_Tuple2( + model, + author$project$Main$appGoSettings(0)); + case 0: + var subMsg = msg.a; + var _n1 = A2(author$project$Lexicon$update, subMsg, model.u); + var updateLexiconModel = _n1.a; + var lexiconCmd = _n1.b; + switch (subMsg.$) { + case 2: + return _Utils_Tuple2( + _Utils_update( + model, + {O: 1, u: updateLexiconModel}), + A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, lexiconCmd)); + case 3: + return _Utils_Tuple2( + _Utils_update( + model, + {O: 4, u: updateLexiconModel}), + elm$core$Platform$Cmd$batch( + _List_fromArray( + [ + A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, lexiconCmd), + author$project$Main$scrollTop(0) + ]))); + default: + return _Utils_Tuple2( + _Utils_update( + model, + {u: updateLexiconModel}), + A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, lexiconCmd)); + } + case 1: + var page = msg.a; + return _Utils_Tuple2( + _Utils_update( + model, + {O: page}), + elm$core$Platform$Cmd$none); + case 5: + var _n3 = model.u.aV; + if (!_n3.$) { + var wordList = _n3.a; + var lastItem = elm$core$List$length(wordList) - 1; + var gen = A2(elm$random$Random$int, 1, lastItem); + return _Utils_Tuple2( + model, + A2(elm$random$Random$generate, author$project$Main$LoadDefinitionByInt, gen)); + } else { + return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); + } + case 2: + var id = msg.a; + return _Utils_Tuple2( + model, + A2( + elm$core$Platform$Cmd$map, + author$project$Main$LexiconMsg, + author$project$Lexicon$loadWordDefinition(id))); + case 4: + var word = msg.a; + return _Utils_Tuple2( + model, + A2( + elm$core$Platform$Cmd$map, + author$project$Main$LexiconMsg, + A2(author$project$Lexicon$loadWordDefinitionByWord, word, model.u.aV))); + case 3: + var id = msg.a; + return _Utils_Tuple2( + model, + A2( + elm$core$Platform$Cmd$map, + author$project$Main$LexiconMsg, + author$project$Lexicon$loadWordDefinition( + elm$core$String$fromInt(id)))); + case 6: + var wordOrPart = msg.a; + return _Utils_Tuple2( + _Utils_update( + model, + {V: wordOrPart}), + elm$core$Platform$Cmd$none); + case 7: + var word = msg.a; + return _Utils_Tuple2( + model, + author$project$Main$saveWord( + author$project$Lexicon$wordEncoder(word))); + case 8: + var word = msg.a; + return _Utils_Tuple2( + model, + author$project$Main$removeSavedWord( + author$project$Lexicon$wordEncoder(word))); + case 9: + var swl = msg.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + as: elm$core$Maybe$Just(swl) + }), + elm$core$Platform$Cmd$none); + default: + return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); + } + }); +var author$project$Main$LoadDefinitionByWord = function (a) { + return {$: 4, a: a}; +}; +var author$project$Main$GoHome = {$: 10}; +var author$project$Main$GoSettings = {$: 11}; +var elm$core$String$length = _String_length; +var elm$core$String$slice = _String_slice; +var elm$core$String$dropLeft = F2( + function (n, string) { + return (n < 1) ? string : A3( + elm$core$String$slice, + n, + elm$core$String$length(string), + string); + }); +var elm$core$String$startsWith = _String_startsWith; +var elm$core$String$foldr = _String_foldr; +var elm$core$String$toList = function (string) { + return A3(elm$core$String$foldr, elm$core$List$cons, _List_Nil, string); +}; +var elm$core$String$cons = _String_cons; +var rtfeldman$elm_css$Css$withPrecedingHash = function (str) { + return A2(elm$core$String$startsWith, '#', str) ? str : A2(elm$core$String$cons, '#', str); +}; +var rtfeldman$elm_css$Css$Structure$Compatible = 0; +var rtfeldman$elm_css$Css$erroneousHex = function (str) { + return { + aC: 1, + bE: 0, + y: 0, + cL: 0, + aL: 0, + B: rtfeldman$elm_css$Css$withPrecedingHash(str) + }; +}; +var elm$core$Basics$composeR = F3( + function (f, g, x) { + return g( + f(x)); + }); +var elm$core$String$fromList = _String_fromList; +var elm$core$String$toLower = _String_toLower; +var elm$core$List$tail = function (list) { + if (list.b) { + var x = list.a; + var xs = list.b; + return elm$core$Maybe$Just(xs); + } else { + return elm$core$Maybe$Nothing; + } +}; +var elm$core$Maybe$withDefault = F2( + function (_default, maybe) { + if (!maybe.$) { + var value = maybe.a; + return value; + } else { + return _default; + } + }); +var elm$core$Result$map = F2( + function (func, ra) { + if (!ra.$) { + var a = ra.a; + return elm$core$Result$Ok( + func(a)); + } else { + var e = ra.a; + return elm$core$Result$Err(e); + } + }); +var elm$core$Result$mapError = F2( + function (f, result) { + if (!result.$) { + var v = result.a; + return elm$core$Result$Ok(v); + } else { + var e = result.a; + return elm$core$Result$Err( + f(e)); + } + }); +var elm$core$String$isEmpty = function (string) { + return string === ''; +}; +var elm$core$Basics$pow = _Basics_pow; +var elm$core$String$fromChar = function (_char) { + return A2(elm$core$String$cons, _char, ''); +}; +var rtfeldman$elm_hex$Hex$fromStringHelp = F3( + function (position, chars, accumulated) { + fromStringHelp: + while (true) { + if (!chars.b) { + return elm$core$Result$Ok(accumulated); + } else { + var _char = chars.a; + var rest = chars.b; + switch (_char) { + case '0': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated; + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '1': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + A2(elm$core$Basics$pow, 16, position); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '2': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (2 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '3': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (3 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '4': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (4 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '5': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (5 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '6': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (6 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '7': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (7 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '8': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (8 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case '9': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (9 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case 'a': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (10 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case 'b': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (11 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case 'c': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (12 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case 'd': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (13 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case 'e': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (14 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + case 'f': + var $temp$position = position - 1, + $temp$chars = rest, + $temp$accumulated = accumulated + (15 * A2(elm$core$Basics$pow, 16, position)); + position = $temp$position; + chars = $temp$chars; + accumulated = $temp$accumulated; + continue fromStringHelp; + default: + var nonHex = _char; + return elm$core$Result$Err( + elm$core$String$fromChar(nonHex) + ' is not a valid hexadecimal character.'); + } + } + } + }); +var rtfeldman$elm_hex$Hex$fromString = function (str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Result$Err('Empty strings are not valid hexadecimal strings.'); + } else { + var result = function () { + if (A2(elm$core$String$startsWith, '-', str)) { + var list = A2( + elm$core$Maybe$withDefault, + _List_Nil, + elm$core$List$tail( + elm$core$String$toList(str))); + return A2( + elm$core$Result$map, + elm$core$Basics$negate, + A3( + rtfeldman$elm_hex$Hex$fromStringHelp, + elm$core$List$length(list) - 1, + list, + 0)); + } else { + return A3( + rtfeldman$elm_hex$Hex$fromStringHelp, + elm$core$String$length(str) - 1, + elm$core$String$toList(str), + 0); + } + }(); + var formatError = function (err) { + return A2( + elm$core$String$join, + ' ', + _List_fromArray( + ['\"' + (str + '\"'), 'is not a valid hexadecimal string because', err])); + }; + return A2(elm$core$Result$mapError, formatError, result); + } +}; +var rtfeldman$elm_css$Css$validHex = F5( + function (str, _n0, _n1, _n2, _n3) { + var r1 = _n0.a; + var r2 = _n0.b; + var g1 = _n1.a; + var g2 = _n1.b; + var b1 = _n2.a; + var b2 = _n2.b; + var a1 = _n3.a; + var a2 = _n3.b; + var toResult = A2( + elm$core$Basics$composeR, + elm$core$String$fromList, + A2(elm$core$Basics$composeR, elm$core$String$toLower, rtfeldman$elm_hex$Hex$fromString)); + var results = _Utils_Tuple2( + _Utils_Tuple2( + toResult( + _List_fromArray( + [r1, r2])), + toResult( + _List_fromArray( + [g1, g2]))), + _Utils_Tuple2( + toResult( + _List_fromArray( + [b1, b2])), + toResult( + _List_fromArray( + [a1, a2])))); + if ((((!results.a.a.$) && (!results.a.b.$)) && (!results.b.a.$)) && (!results.b.b.$)) { + var _n5 = results.a; + var red = _n5.a.a; + var green = _n5.b.a; + var _n6 = results.b; + var blue = _n6.a.a; + var alpha = _n6.b.a; + return { + aC: alpha / 255, + bE: blue, + y: 0, + cL: green, + aL: red, + B: rtfeldman$elm_css$Css$withPrecedingHash(str) + }; + } else { + return rtfeldman$elm_css$Css$erroneousHex(str); + } + }); +var rtfeldman$elm_css$Css$hex = function (str) { + var withoutHash = A2(elm$core$String$startsWith, '#', str) ? A2(elm$core$String$dropLeft, 1, str) : str; + var _n0 = elm$core$String$toList(withoutHash); + _n0$4: + while (true) { + if ((_n0.b && _n0.b.b) && _n0.b.b.b) { + if (!_n0.b.b.b.b) { + var r = _n0.a; + var _n1 = _n0.b; + var g = _n1.a; + var _n2 = _n1.b; + var b = _n2.a; + return A5( + rtfeldman$elm_css$Css$validHex, + str, + _Utils_Tuple2(r, r), + _Utils_Tuple2(g, g), + _Utils_Tuple2(b, b), + _Utils_Tuple2('f', 'f')); + } else { + if (!_n0.b.b.b.b.b) { + var r = _n0.a; + var _n3 = _n0.b; + var g = _n3.a; + var _n4 = _n3.b; + var b = _n4.a; + var _n5 = _n4.b; + var a = _n5.a; + return A5( + rtfeldman$elm_css$Css$validHex, + str, + _Utils_Tuple2(r, r), + _Utils_Tuple2(g, g), + _Utils_Tuple2(b, b), + _Utils_Tuple2(a, a)); + } else { + if (_n0.b.b.b.b.b.b) { + if (!_n0.b.b.b.b.b.b.b) { + var r1 = _n0.a; + var _n6 = _n0.b; + var r2 = _n6.a; + var _n7 = _n6.b; + var g1 = _n7.a; + var _n8 = _n7.b; + var g2 = _n8.a; + var _n9 = _n8.b; + var b1 = _n9.a; + var _n10 = _n9.b; + var b2 = _n10.a; + return A5( + rtfeldman$elm_css$Css$validHex, + str, + _Utils_Tuple2(r1, r2), + _Utils_Tuple2(g1, g2), + _Utils_Tuple2(b1, b2), + _Utils_Tuple2('f', 'f')); + } else { + if (_n0.b.b.b.b.b.b.b.b && (!_n0.b.b.b.b.b.b.b.b.b)) { + var r1 = _n0.a; + var _n11 = _n0.b; + var r2 = _n11.a; + var _n12 = _n11.b; + var g1 = _n12.a; + var _n13 = _n12.b; + var g2 = _n13.a; + var _n14 = _n13.b; + var b1 = _n14.a; + var _n15 = _n14.b; + var b2 = _n15.a; + var _n16 = _n15.b; + var a1 = _n16.a; + var _n17 = _n16.b; + var a2 = _n17.a; + return A5( + rtfeldman$elm_css$Css$validHex, + str, + _Utils_Tuple2(r1, r2), + _Utils_Tuple2(g1, g2), + _Utils_Tuple2(b1, b2), + _Utils_Tuple2(a1, a2)); + } else { + break _n0$4; + } + } + } else { + break _n0$4; + } + } + } + } else { + break _n0$4; + } + } + return rtfeldman$elm_css$Css$erroneousHex(str); +}; +var elm$core$List$map = F2( + function (f, xs) { + return A3( + elm$core$List$foldr, + F2( + function (x, acc) { + return A2( + elm$core$List$cons, + f(x), + acc); + }), + _List_Nil, + xs); + }); +var rtfeldman$elm_css$Css$cssFunction = F2( + function (funcName, args) { + return funcName + ('(' + (A2(elm$core$String$join, ', ', args) + ')')); + }); +var rtfeldman$elm_css$Css$rgb = F3( + function (r, g, b) { + return { + aC: 1, + bE: b, + y: 0, + cL: g, + aL: r, + B: A2( + rtfeldman$elm_css$Css$cssFunction, + 'rgb', + A2( + elm$core$List$map, + elm$core$String$fromInt, + _List_fromArray( + [r, g, b]))) + }; + }); +var author$project$Theme$Colors$theme = { + bG: { + bu: A3(rtfeldman$elm_css$Css$rgb, 57, 101, 0), + by: A3(rtfeldman$elm_css$Css$rgb, 77, 136, 0), + co: A3(rtfeldman$elm_css$Css$rgb, 237, 237, 237) + }, + s: { + bE: A3(rtfeldman$elm_css$Css$rgb, 46, 153, 174), + bL: A3(rtfeldman$elm_css$Css$rgb, 254, 248, 222), + cE: A3(rtfeldman$elm_css$Css$rgb, 10, 70, 80), + cF: rtfeldman$elm_css$Css$hex('#03697d'), + cL: A3(rtfeldman$elm_css$Css$rgb, 122, 153, 27), + b0: A3(rtfeldman$elm_css$Css$rgb, 140, 230, 250), + b1: A3(rtfeldman$elm_css$Css$rgb, 171, 208, 57), + C: A3(rtfeldman$elm_css$Css$rgb, 255, 255, 255) + } +}; +var rtfeldman$elm_css$VirtualDom$Styled$Node = F3( + function (a, b, c) { + return {$: 0, a: a, b: b, c: c}; + }); +var rtfeldman$elm_css$VirtualDom$Styled$node = rtfeldman$elm_css$VirtualDom$Styled$Node; +var rtfeldman$elm_css$Html$Styled$node = rtfeldman$elm_css$VirtualDom$Styled$node; +var rtfeldman$elm_css$Html$Styled$i = rtfeldman$elm_css$Html$Styled$node('i'); +var elm$core$Tuple$second = function (_n0) { + var y = _n0.b; + return y; +}; +var elm$json$Json$Decode$map = _Json_map1; +var elm$json$Json$Decode$map2 = _Json_map2; +var elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) { + switch (handler.$) { + case 0: + return 0; + case 1: + return 1; + case 2: + return 2; + default: + return 3; + } +}; +var elm$virtual_dom$VirtualDom$property = F2( + function (key, value) { + return A2( + _VirtualDom_property, + _VirtualDom_noInnerHtmlOrFormAction(key), + _VirtualDom_noJavaScriptOrHtmlUri(value)); + }); +var rtfeldman$elm_css$VirtualDom$Styled$Attribute = F3( + function (a, b, c) { + return {$: 0, a: a, b: b, c: c}; + }); +var rtfeldman$elm_css$VirtualDom$Styled$property = F2( + function (key, value) { + return A3( + rtfeldman$elm_css$VirtualDom$Styled$Attribute, + A2(elm$virtual_dom$VirtualDom$property, key, value), + _List_Nil, + ''); + }); +var rtfeldman$elm_css$Html$Styled$Attributes$stringProperty = F2( + function (key, string) { + return A2( + rtfeldman$elm_css$VirtualDom$Styled$property, + key, + elm$json$Json$Encode$string(string)); + }); +var rtfeldman$elm_css$Html$Styled$Attributes$class = rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('className'); +var rtfeldman$elm_css$Html$Styled$Attributes$classList = function (classes) { + return rtfeldman$elm_css$Html$Styled$Attributes$class( + A2( + elm$core$String$join, + ' ', + A2( + elm$core$List$map, + elm$core$Tuple$first, + A2(elm$core$List$filter, elm$core$Tuple$second, classes)))); +}; +var author$project$Theme$Elements$fontAwesomeIcon = F2( + function (name, size) { + return A2( + rtfeldman$elm_css$Html$Styled$i, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$classList( + _List_fromArray( + [ + _Utils_Tuple2('fa-' + name, true), + _Utils_Tuple2('fa', true), + _Utils_Tuple2('fa-' + size, true) + ])) + ]), + _List_Nil); + }); +var rtfeldman$elm_css$Css$Preprocess$AppendProperty = function (a) { + return {$: 0, a: a}; +}; +var rtfeldman$elm_css$Css$property = F2( + function (key, value) { + return rtfeldman$elm_css$Css$Preprocess$AppendProperty(key + (':' + value)); + }); +var rtfeldman$elm_css$Css$color = function (c) { + return A2(rtfeldman$elm_css$Css$property, 'color', c.B); +}; +var rtfeldman$elm_css$Css$prop1 = F2( + function (key, arg) { + return A2(rtfeldman$elm_css$Css$property, key, arg.B); + }); +var rtfeldman$elm_css$Css$padding = rtfeldman$elm_css$Css$prop1('padding'); +var rtfeldman$elm_css$Css$PxUnits = 0; +var elm$core$String$fromFloat = _String_fromNumber; +var rtfeldman$elm_css$Css$Internal$lengthConverter = F3( + function (units, unitLabel, numericValue) { + return { + bt: 0, + bH: 0, + ag: 0, + o: 0, + aH: 0, + am: 0, + I: 0, + an: 0, + ao: 0, + R: 0, + S: 0, + z: 0, + L: numericValue, + aw: 0, + ay: unitLabel, + aT: units, + B: _Utils_ap( + elm$core$String$fromFloat(numericValue), + unitLabel) + }; + }); +var rtfeldman$elm_css$Css$px = A2(rtfeldman$elm_css$Css$Internal$lengthConverter, 0, 'px'); +var rtfeldman$elm_css$Html$Styled$div = rtfeldman$elm_css$Html$Styled$node('div'); +var Skinney$murmur3$Murmur3$HashData = F4( + function (shift, seed, hash, charsProcessed) { + return {ac: charsProcessed, aj: hash, W: seed, at: shift}; + }); +var elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy; +var Skinney$murmur3$Murmur3$mur = F2( + function (c, h) { + return 4294967295 & (((h & 65535) * c) + ((65535 & ((h >>> 16) * c)) << 16)); + }); +var elm$core$Bitwise$or = _Bitwise_or; +var Skinney$murmur3$Murmur3$mix = F2( + function (h1, h2) { + var k1 = A2(Skinney$murmur3$Murmur3$mur, 3432918353, h2); + return h1 ^ A2(Skinney$murmur3$Murmur3$mur, 461845907, (k1 >>> 17) | (k1 << 15)); + }); +var elm$core$Basics$neq = _Utils_notEqual; +var Skinney$murmur3$Murmur3$finalize = function (data) { + var acc = data.aj ? A2(Skinney$murmur3$Murmur3$mix, data.W, data.aj) : data.W; + var h1 = acc ^ data.ac; + var h2 = A2(Skinney$murmur3$Murmur3$mur, 2246822507, h1 ^ (h1 >>> 16)); + var h3 = A2(Skinney$murmur3$Murmur3$mur, 3266489909, h2 ^ (h2 >>> 13)); + return (h3 ^ (h3 >>> 16)) >>> 0; +}; +var Skinney$murmur3$Murmur3$step = function (acc) { + var h1 = A2(Skinney$murmur3$Murmur3$mur, 5, (acc >>> 19) | (acc << 13)); + return ((h1 & 65535) + 27492) + ((65535 & ((h1 >>> 16) + 58964)) << 16); +}; +var Skinney$murmur3$Murmur3$hashFold = F2( + function (c, data) { + var res = data.aj | (c << data.at); + var _n0 = data.at; + if (_n0 === 24) { + var newHash = Skinney$murmur3$Murmur3$step( + A2(Skinney$murmur3$Murmur3$mix, data.W, res)); + return {ac: data.ac + 1, aj: 0, W: newHash, at: 0}; + } else { + return {ac: data.ac + 1, aj: res, W: data.W, at: data.at + 8}; + } + }); +var elm$core$Basics$ge = _Utils_ge; +var Skinney$murmur3$UTF8$accumulate = F3( + function (add, _char, _n0) { + var acc = _n0.a; + var combine = _n0.b; + if (combine.$ === 1) { + return (_char < 128) ? _Utils_Tuple2( + A2(add, _char, acc), + elm$core$Maybe$Nothing) : ((_char < 2048) ? _Utils_Tuple2( + A2( + add, + 128 | (63 & _char), + A2(add, 192 | (_char >>> 6), acc)), + elm$core$Maybe$Nothing) : (((_char < 55296) || (_char >= 57344)) ? _Utils_Tuple2( + A2( + add, + 128 | (63 & _char), + A2( + add, + 128 | (63 & (_char >>> 6)), + A2(add, 224 | (_char >>> 12), acc))), + elm$core$Maybe$Nothing) : _Utils_Tuple2( + acc, + elm$core$Maybe$Just(_char)))); + } else { + var prev = combine.a; + var combined = ((1023 & _char) | ((1023 & prev) << 10)) + 65536; + return _Utils_Tuple2( + A2( + add, + 128 | (63 & combined), + A2( + add, + 128 | (63 & (combined >>> 6)), + A2( + add, + 128 | (63 & (combined >>> 12)), + A2(add, 240 | (combined >>> 18), acc)))), + elm$core$Maybe$Nothing); + } + }); +var elm$core$String$foldl = _String_foldl; +var Skinney$murmur3$UTF8$foldl = F3( + function (op, acc, input) { + var helper = F2( + function (_char, res) { + return A3( + Skinney$murmur3$UTF8$accumulate, + op, + elm$core$Char$toCode(_char), + res); + }); + return A3( + elm$core$String$foldl, + helper, + _Utils_Tuple2(acc, elm$core$Maybe$Nothing), + input).a; + }); +var Skinney$murmur3$Murmur3$hashString = F2( + function (seed, str) { + return Skinney$murmur3$Murmur3$finalize( + A3( + Skinney$murmur3$UTF8$foldl, + Skinney$murmur3$Murmur3$hashFold, + A4(Skinney$murmur3$Murmur3$HashData, 0, seed, 0, 0), + str)); + }); +var elm$core$List$singleton = function (value) { + return _List_fromArray( + [value]); +}; +var rtfeldman$elm_css$Css$Preprocess$stylesheet = function (snippets) { + return {bJ: elm$core$Maybe$Nothing, bV: _List_Nil, b3: _List_Nil, ck: snippets}; +}; +var elm$core$List$append = F2( + function (xs, ys) { + if (!ys.b) { + return xs; + } else { + return A3(elm$core$List$foldr, elm$core$List$cons, ys, xs); + } + }); +var elm$core$List$concat = function (lists) { + return A3(elm$core$List$foldr, elm$core$List$append, _List_Nil, lists); +}; +var elm$core$List$concatMap = F2( + function (f, list) { + return elm$core$List$concat( + A2(elm$core$List$map, f, list)); + }); +var rtfeldman$elm_css$Css$Preprocess$unwrapSnippet = function (_n0) { + var declarations = _n0; + return declarations; +}; +var elm$core$List$takeReverse = F3( + function (n, list, kept) { + takeReverse: + while (true) { + if (n <= 0) { + return kept; + } else { + if (!list.b) { + return kept; + } else { + var x = list.a; + var xs = list.b; + var $temp$n = n - 1, + $temp$list = xs, + $temp$kept = A2(elm$core$List$cons, x, kept); + n = $temp$n; + list = $temp$list; + kept = $temp$kept; + continue takeReverse; + } + } + } + }); +var elm$core$List$takeTailRec = F2( + function (n, list) { + return elm$core$List$reverse( + A3(elm$core$List$takeReverse, n, list, _List_Nil)); + }); +var elm$core$List$takeFast = F3( + function (ctr, n, list) { + if (n <= 0) { + return _List_Nil; + } else { + var _n0 = _Utils_Tuple2(n, list); + _n0$1: + while (true) { + _n0$5: + while (true) { + if (!_n0.b.b) { + return list; + } else { + if (_n0.b.b.b) { + switch (_n0.a) { + case 1: + break _n0$1; + case 2: + var _n2 = _n0.b; + var x = _n2.a; + var _n3 = _n2.b; + var y = _n3.a; + return _List_fromArray( + [x, y]); + case 3: + if (_n0.b.b.b.b) { + var _n4 = _n0.b; + var x = _n4.a; + var _n5 = _n4.b; + var y = _n5.a; + var _n6 = _n5.b; + var z = _n6.a; + return _List_fromArray( + [x, y, z]); + } else { + break _n0$5; + } + default: + if (_n0.b.b.b.b && _n0.b.b.b.b.b) { + var _n7 = _n0.b; + var x = _n7.a; + var _n8 = _n7.b; + var y = _n8.a; + var _n9 = _n8.b; + var z = _n9.a; + var _n10 = _n9.b; + var w = _n10.a; + var tl = _n10.b; + return (ctr > 1000) ? A2( + elm$core$List$cons, + x, + A2( + elm$core$List$cons, + y, + A2( + elm$core$List$cons, + z, + A2( + elm$core$List$cons, + w, + A2(elm$core$List$takeTailRec, n - 4, tl))))) : A2( + elm$core$List$cons, + x, + A2( + elm$core$List$cons, + y, + A2( + elm$core$List$cons, + z, + A2( + elm$core$List$cons, + w, + A3(elm$core$List$takeFast, ctr + 1, n - 4, tl))))); + } else { + break _n0$5; + } + } + } else { + if (_n0.a === 1) { + break _n0$1; + } else { + break _n0$5; + } + } + } + } + return list; + } + var _n1 = _n0.b; + var x = _n1.a; + return _List_fromArray( + [x]); + } + }); +var elm$core$List$take = F2( + function (n, list) { + return A3(elm$core$List$takeFast, 0, n, list); + }); +var elm$core$Maybe$map = F2( + function (f, maybe) { + if (!maybe.$) { + var value = maybe.a; + return elm$core$Maybe$Just( + f(value)); + } else { + return elm$core$Maybe$Nothing; + } + }); +var rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors = function (declarations) { + collectSelectors: + while (true) { + if (!declarations.b) { + return _List_Nil; + } else { + if (!declarations.a.$) { + var _n1 = declarations.a.a; + var firstSelector = _n1.a; + var otherSelectors = _n1.b; + var rest = declarations.b; + return _Utils_ap( + A2(elm$core$List$cons, firstSelector, otherSelectors), + rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(rest)); + } else { + var rest = declarations.b; + var $temp$declarations = rest; + declarations = $temp$declarations; + continue collectSelectors; + } + } + } +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$last = function (list) { + last: + while (true) { + if (!list.b) { + return elm$core$Maybe$Nothing; + } else { + if (!list.b.b) { + var singleton = list.a; + return elm$core$Maybe$Just(singleton); + } else { + var rest = list.b; + var $temp$list = rest; + list = $temp$list; + continue last; + } + } + } +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration = function (declarations) { + lastDeclaration: + while (true) { + if (!declarations.b) { + return elm$core$Maybe$Nothing; + } else { + if (!declarations.b.b) { + var x = declarations.a; + return elm$core$Maybe$Just( + _List_fromArray( + [x])); + } else { + var xs = declarations.b; + var $temp$declarations = xs; + declarations = $temp$declarations; + continue lastDeclaration; + } + } + } +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$oneOf = function (maybes) { + oneOf: + while (true) { + if (!maybes.b) { + return elm$core$Maybe$Nothing; + } else { + var maybe = maybes.a; + var rest = maybes.b; + if (maybe.$ === 1) { + var $temp$maybes = rest; + maybes = $temp$maybes; + continue oneOf; + } else { + return maybe; + } + } + } +}; +var rtfeldman$elm_css$Css$Structure$FontFeatureValues = function (a) { + return {$: 9, a: a}; +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues = function (tuples) { + var expandTuples = function (tuplesToExpand) { + if (!tuplesToExpand.b) { + return _List_Nil; + } else { + var properties = tuplesToExpand.a; + var rest = tuplesToExpand.b; + return A2( + elm$core$List$cons, + properties, + expandTuples(rest)); + } + }; + var newTuples = expandTuples(tuples); + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$FontFeatureValues(newTuples) + ]); +}; +var rtfeldman$elm_css$Css$Structure$DocumentRule = F5( + function (a, b, c, d, e) { + return {$: 3, a: a, b: b, c: c, d: d, e: e}; + }); +var rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule = F5( + function (str1, str2, str3, str4, declaration) { + if (!declaration.$) { + var structureStyleBlock = declaration.a; + return A5(rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4, structureStyleBlock); + } else { + return declaration; + } + }); +var rtfeldman$elm_css$Css$Structure$MediaRule = F2( + function (a, b) { + return {$: 1, a: a, b: b}; + }); +var rtfeldman$elm_css$Css$Structure$SupportsRule = F2( + function (a, b) { + return {$: 2, a: a, b: b}; + }); +var rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule = F2( + function (mediaQueries, declaration) { + switch (declaration.$) { + case 0: + var structureStyleBlock = declaration.a; + return A2( + rtfeldman$elm_css$Css$Structure$MediaRule, + mediaQueries, + _List_fromArray( + [structureStyleBlock])); + case 1: + var newMediaQueries = declaration.a; + var structureStyleBlocks = declaration.b; + return A2( + rtfeldman$elm_css$Css$Structure$MediaRule, + _Utils_ap(mediaQueries, newMediaQueries), + structureStyleBlocks); + case 2: + var str = declaration.a; + var declarations = declaration.b; + return A2( + rtfeldman$elm_css$Css$Structure$SupportsRule, + str, + A2( + elm$core$List$map, + rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule(mediaQueries), + declarations)); + case 3: + var str1 = declaration.a; + var str2 = declaration.b; + var str3 = declaration.c; + var str4 = declaration.d; + var structureStyleBlock = declaration.e; + return A5(rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4, structureStyleBlock); + case 4: + return declaration; + case 5: + return declaration; + case 6: + return declaration; + case 7: + return declaration; + case 8: + return declaration; + default: + return declaration; + } + }); +var rtfeldman$elm_css$Css$Structure$CounterStyle = function (a) { + return {$: 8, a: a}; +}; +var rtfeldman$elm_css$Css$Structure$FontFace = function (a) { + return {$: 5, a: a}; +}; +var rtfeldman$elm_css$Css$Structure$Keyframes = function (a) { + return {$: 6, a: a}; +}; +var rtfeldman$elm_css$Css$Structure$PageRule = F2( + function (a, b) { + return {$: 4, a: a, b: b}; + }); +var rtfeldman$elm_css$Css$Structure$Selector = F3( + function (a, b, c) { + return {$: 0, a: a, b: b, c: c}; + }); +var rtfeldman$elm_css$Css$Structure$StyleBlock = F3( + function (a, b, c) { + return {$: 0, a: a, b: b, c: c}; + }); +var rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration = function (a) { + return {$: 0, a: a}; +}; +var rtfeldman$elm_css$Css$Structure$Viewport = function (a) { + return {$: 7, a: a}; +}; +var rtfeldman$elm_css$Css$Structure$mapLast = F2( + function (update, list) { + if (!list.b) { + return list; + } else { + if (!list.b.b) { + var only = list.a; + return _List_fromArray( + [ + update(only) + ]); + } else { + var first = list.a; + var rest = list.b; + return A2( + elm$core$List$cons, + first, + A2(rtfeldman$elm_css$Css$Structure$mapLast, update, rest)); + } + } + }); +var rtfeldman$elm_css$Css$Structure$withPropertyAppended = F2( + function (property, _n0) { + var firstSelector = _n0.a; + var otherSelectors = _n0.b; + var properties = _n0.c; + return A3( + rtfeldman$elm_css$Css$Structure$StyleBlock, + firstSelector, + otherSelectors, + _Utils_ap( + properties, + _List_fromArray( + [property]))); + }); +var rtfeldman$elm_css$Css$Structure$appendProperty = F2( + function (property, declarations) { + if (!declarations.b) { + return declarations; + } else { + if (!declarations.b.b) { + switch (declarations.a.$) { + case 0: + var styleBlock = declarations.a.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( + A2(rtfeldman$elm_css$Css$Structure$withPropertyAppended, property, styleBlock)) + ]); + case 1: + var _n1 = declarations.a; + var mediaQueries = _n1.a; + var styleBlocks = _n1.b; + return _List_fromArray( + [ + A2( + rtfeldman$elm_css$Css$Structure$MediaRule, + mediaQueries, + A2( + rtfeldman$elm_css$Css$Structure$mapLast, + rtfeldman$elm_css$Css$Structure$withPropertyAppended(property), + styleBlocks)) + ]); + default: + return declarations; + } + } else { + var first = declarations.a; + var rest = declarations.b; + return A2( + elm$core$List$cons, + first, + A2(rtfeldman$elm_css$Css$Structure$appendProperty, property, rest)); + } + } + }); +var rtfeldman$elm_css$Css$Structure$appendToLastSelector = F2( + function (f, styleBlock) { + if (!styleBlock.b.b) { + var only = styleBlock.a; + var properties = styleBlock.c; + return _List_fromArray( + [ + A3(rtfeldman$elm_css$Css$Structure$StyleBlock, only, _List_Nil, properties), + A3( + rtfeldman$elm_css$Css$Structure$StyleBlock, + f(only), + _List_Nil, + _List_Nil) + ]); + } else { + var first = styleBlock.a; + var rest = styleBlock.b; + var properties = styleBlock.c; + var newRest = A2(elm$core$List$map, f, rest); + var newFirst = f(first); + return _List_fromArray( + [ + A3(rtfeldman$elm_css$Css$Structure$StyleBlock, first, rest, properties), + A3(rtfeldman$elm_css$Css$Structure$StyleBlock, newFirst, newRest, _List_Nil) + ]); + } + }); +var rtfeldman$elm_css$Css$Structure$applyPseudoElement = F2( + function (pseudo, _n0) { + var sequence = _n0.a; + var selectors = _n0.b; + return A3( + rtfeldman$elm_css$Css$Structure$Selector, + sequence, + selectors, + elm$core$Maybe$Just(pseudo)); + }); +var rtfeldman$elm_css$Css$Structure$appendPseudoElementToLastSelector = F2( + function (pseudo, styleBlock) { + return A2( + rtfeldman$elm_css$Css$Structure$appendToLastSelector, + rtfeldman$elm_css$Css$Structure$applyPseudoElement(pseudo), + styleBlock); + }); +var rtfeldman$elm_css$Css$Structure$CustomSelector = F2( + function (a, b) { + return {$: 2, a: a, b: b}; + }); +var rtfeldman$elm_css$Css$Structure$TypeSelectorSequence = F2( + function (a, b) { + return {$: 0, a: a, b: b}; + }); +var rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence = function (a) { + return {$: 1, a: a}; +}; +var rtfeldman$elm_css$Css$Structure$appendRepeatable = F2( + function (selector, sequence) { + switch (sequence.$) { + case 0: + var typeSelector = sequence.a; + var list = sequence.b; + return A2( + rtfeldman$elm_css$Css$Structure$TypeSelectorSequence, + typeSelector, + _Utils_ap( + list, + _List_fromArray( + [selector]))); + case 1: + var list = sequence.a; + return rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence( + _Utils_ap( + list, + _List_fromArray( + [selector]))); + default: + var str = sequence.a; + var list = sequence.b; + return A2( + rtfeldman$elm_css$Css$Structure$CustomSelector, + str, + _Utils_ap( + list, + _List_fromArray( + [selector]))); + } + }); +var rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator = F2( + function (selector, list) { + if (!list.b) { + return _List_Nil; + } else { + if (!list.b.b) { + var _n1 = list.a; + var combinator = _n1.a; + var sequence = _n1.b; + return _List_fromArray( + [ + _Utils_Tuple2( + combinator, + A2(rtfeldman$elm_css$Css$Structure$appendRepeatable, selector, sequence)) + ]); + } else { + var first = list.a; + var rest = list.b; + return A2( + elm$core$List$cons, + first, + A2(rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator, selector, rest)); + } + } + }); +var rtfeldman$elm_css$Css$Structure$appendRepeatableSelector = F2( + function (repeatableSimpleSelector, selector) { + if (!selector.b.b) { + var sequence = selector.a; + var pseudoElement = selector.c; + return A3( + rtfeldman$elm_css$Css$Structure$Selector, + A2(rtfeldman$elm_css$Css$Structure$appendRepeatable, repeatableSimpleSelector, sequence), + _List_Nil, + pseudoElement); + } else { + var firstSelector = selector.a; + var tuples = selector.b; + var pseudoElement = selector.c; + return A3( + rtfeldman$elm_css$Css$Structure$Selector, + firstSelector, + A2(rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator, repeatableSimpleSelector, tuples), + pseudoElement); + } + }); +var rtfeldman$elm_css$Css$Structure$appendRepeatableToLastSelector = F2( + function (selector, styleBlock) { + return A2( + rtfeldman$elm_css$Css$Structure$appendToLastSelector, + rtfeldman$elm_css$Css$Structure$appendRepeatableSelector(selector), + styleBlock); + }); +var rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock = F2( + function (update, declarations) { + _n0$12: + while (true) { + if (!declarations.b) { + return declarations; + } else { + if (!declarations.b.b) { + switch (declarations.a.$) { + case 0: + var styleBlock = declarations.a.a; + return A2( + elm$core$List$map, + rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration, + update(styleBlock)); + case 1: + if (declarations.a.b.b) { + if (!declarations.a.b.b.b) { + var _n1 = declarations.a; + var mediaQueries = _n1.a; + var _n2 = _n1.b; + var styleBlock = _n2.a; + return _List_fromArray( + [ + A2( + rtfeldman$elm_css$Css$Structure$MediaRule, + mediaQueries, + update(styleBlock)) + ]); + } else { + var _n3 = declarations.a; + var mediaQueries = _n3.a; + var _n4 = _n3.b; + var first = _n4.a; + var rest = _n4.b; + var _n5 = A2( + rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, + update, + _List_fromArray( + [ + A2(rtfeldman$elm_css$Css$Structure$MediaRule, mediaQueries, rest) + ])); + if ((_n5.b && (_n5.a.$ === 1)) && (!_n5.b.b)) { + var _n6 = _n5.a; + var newMediaQueries = _n6.a; + var newStyleBlocks = _n6.b; + return _List_fromArray( + [ + A2( + rtfeldman$elm_css$Css$Structure$MediaRule, + newMediaQueries, + A2(elm$core$List$cons, first, newStyleBlocks)) + ]); + } else { + var newDeclarations = _n5; + return newDeclarations; + } + } + } else { + break _n0$12; + } + case 2: + var _n7 = declarations.a; + var str = _n7.a; + var nestedDeclarations = _n7.b; + return _List_fromArray( + [ + A2( + rtfeldman$elm_css$Css$Structure$SupportsRule, + str, + A2(rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, update, nestedDeclarations)) + ]); + case 3: + var _n8 = declarations.a; + var str1 = _n8.a; + var str2 = _n8.b; + var str3 = _n8.c; + var str4 = _n8.d; + var styleBlock = _n8.e; + return A2( + elm$core$List$map, + A4(rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4), + update(styleBlock)); + case 4: + var _n9 = declarations.a; + return declarations; + case 5: + return declarations; + case 6: + return declarations; + case 7: + return declarations; + case 8: + return declarations; + default: + return declarations; + } + } else { + break _n0$12; + } + } + } + var first = declarations.a; + var rest = declarations.b; + return A2( + elm$core$List$cons, + first, + A2(rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, update, rest)); + }); +var rtfeldman$elm_css$Css$Structure$styleBlockToMediaRule = F2( + function (mediaQueries, declaration) { + if (!declaration.$) { + var styleBlock = declaration.a; + return A2( + rtfeldman$elm_css$Css$Structure$MediaRule, + mediaQueries, + _List_fromArray( + [styleBlock])); + } else { + return declaration; + } + }); +var rtfeldman$elm_css$Hash$murmurSeed = 15739; +var elm$core$Basics$modBy = _Basics_modBy; +var rtfeldman$elm_hex$Hex$unsafeToDigit = function (num) { + unsafeToDigit: + while (true) { + switch (num) { + case 0: + return '0'; + case 1: + return '1'; + case 2: + return '2'; + case 3: + return '3'; + case 4: + return '4'; + case 5: + return '5'; + case 6: + return '6'; + case 7: + return '7'; + case 8: + return '8'; + case 9: + return '9'; + case 10: + return 'a'; + case 11: + return 'b'; + case 12: + return 'c'; + case 13: + return 'd'; + case 14: + return 'e'; + case 15: + return 'f'; + default: + var $temp$num = num; + num = $temp$num; + continue unsafeToDigit; + } + } +}; +var rtfeldman$elm_hex$Hex$unsafePositiveToDigits = F2( + function (digits, num) { + unsafePositiveToDigits: + while (true) { + if (num < 16) { + return A2( + elm$core$List$cons, + rtfeldman$elm_hex$Hex$unsafeToDigit(num), + digits); + } else { + var $temp$digits = A2( + elm$core$List$cons, + rtfeldman$elm_hex$Hex$unsafeToDigit( + A2(elm$core$Basics$modBy, 16, num)), + digits), + $temp$num = (num / 16) | 0; + digits = $temp$digits; + num = $temp$num; + continue unsafePositiveToDigits; + } + } + }); +var rtfeldman$elm_hex$Hex$toString = function (num) { + return elm$core$String$fromList( + (num < 0) ? A2( + elm$core$List$cons, + '-', + A2(rtfeldman$elm_hex$Hex$unsafePositiveToDigits, _List_Nil, -num)) : A2(rtfeldman$elm_hex$Hex$unsafePositiveToDigits, _List_Nil, num)); +}; +var rtfeldman$elm_css$Hash$fromString = function (str) { + return A2( + elm$core$String$cons, + '_', + rtfeldman$elm_hex$Hex$toString( + A2(Skinney$murmur3$Murmur3$hashString, rtfeldman$elm_css$Hash$murmurSeed, str))); +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast = F4( + function (nestedStyles, rest, f, declarations) { + var withoutParent = function (decls) { + return A2( + elm$core$Maybe$withDefault, + _List_Nil, + elm$core$List$tail(decls)); + }; + var nextResult = A2( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, + rest, + A2( + elm$core$Maybe$withDefault, + _List_Nil, + rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration(declarations))); + var newDeclarations = function () { + var _n14 = _Utils_Tuple2( + elm$core$List$head(nextResult), + rtfeldman$elm_css$Css$Preprocess$Resolve$last(declarations)); + if ((!_n14.a.$) && (!_n14.b.$)) { + var nextResultParent = _n14.a.a; + var originalParent = _n14.b.a; + return _Utils_ap( + A2( + elm$core$List$take, + elm$core$List$length(declarations) - 1, + declarations), + _List_fromArray( + [ + (!_Utils_eq(originalParent, nextResultParent)) ? nextResultParent : originalParent + ])); + } else { + return declarations; + } + }(); + var insertStylesToNestedDecl = function (lastDecl) { + return elm$core$List$concat( + A2( + rtfeldman$elm_css$Css$Structure$mapLast, + rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles(nestedStyles), + A2( + elm$core$List$map, + elm$core$List$singleton, + A2(rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, f, lastDecl)))); + }; + var initialResult = A2( + elm$core$Maybe$withDefault, + _List_Nil, + A2( + elm$core$Maybe$map, + insertStylesToNestedDecl, + rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration(declarations))); + return _Utils_ap( + newDeclarations, + _Utils_ap( + withoutParent(initialResult), + withoutParent(nextResult))); + }); +var rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles = F2( + function (styles, declarations) { + if (!styles.b) { + return declarations; + } else { + switch (styles.a.$) { + case 0: + var property = styles.a.a; + var rest = styles.b; + return A2( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, + rest, + A2(rtfeldman$elm_css$Css$Structure$appendProperty, property, declarations)); + case 1: + var _n4 = styles.a; + var selector = _n4.a; + var nestedStyles = _n4.b; + var rest = styles.b; + return A4( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast, + nestedStyles, + rest, + rtfeldman$elm_css$Css$Structure$appendRepeatableToLastSelector(selector), + declarations); + case 2: + var _n5 = styles.a; + var selectorCombinator = _n5.a; + var snippets = _n5.b; + var rest = styles.b; + var chain = F2( + function (_n9, _n10) { + var originalSequence = _n9.a; + var originalTuples = _n9.b; + var originalPseudoElement = _n9.c; + var newSequence = _n10.a; + var newTuples = _n10.b; + var newPseudoElement = _n10.c; + return A3( + rtfeldman$elm_css$Css$Structure$Selector, + originalSequence, + _Utils_ap( + originalTuples, + A2( + elm$core$List$cons, + _Utils_Tuple2(selectorCombinator, newSequence), + newTuples)), + rtfeldman$elm_css$Css$Preprocess$Resolve$oneOf( + _List_fromArray( + [newPseudoElement, originalPseudoElement]))); + }); + var expandDeclaration = function (declaration) { + switch (declaration.$) { + case 0: + var _n7 = declaration.a; + var firstSelector = _n7.a; + var otherSelectors = _n7.b; + var nestedStyles = _n7.c; + var newSelectors = A2( + elm$core$List$concatMap, + function (originalSelector) { + return A2( + elm$core$List$map, + chain(originalSelector), + A2(elm$core$List$cons, firstSelector, otherSelectors)); + }, + rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(declarations)); + var newDeclarations = function () { + if (!newSelectors.b) { + return _List_Nil; + } else { + var first = newSelectors.a; + var remainder = newSelectors.b; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( + A3(rtfeldman$elm_css$Css$Structure$StyleBlock, first, remainder, _List_Nil)) + ]); + } + }(); + return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, nestedStyles, newDeclarations); + case 1: + var mediaQueries = declaration.a; + var styleBlocks = declaration.b; + return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule, mediaQueries, styleBlocks); + case 2: + var str = declaration.a; + var otherSnippets = declaration.b; + return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule, str, otherSnippets); + case 3: + var str1 = declaration.a; + var str2 = declaration.b; + var str3 = declaration.c; + var str4 = declaration.d; + var styleBlock = declaration.e; + return A2( + elm$core$List$map, + A4(rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule, str1, str2, str3, str4), + rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock)); + case 4: + var str = declaration.a; + var properties = declaration.b; + return _List_fromArray( + [ + A2(rtfeldman$elm_css$Css$Structure$PageRule, str, properties) + ]); + case 5: + var properties = declaration.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$FontFace(properties) + ]); + case 6: + var properties = declaration.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$Viewport(properties) + ]); + case 7: + var properties = declaration.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$CounterStyle(properties) + ]); + default: + var tuples = declaration.a; + return rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues(tuples); + } + }; + return elm$core$List$concat( + _Utils_ap( + _List_fromArray( + [ + A2(rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, rest, declarations) + ]), + A2( + elm$core$List$map, + expandDeclaration, + A2(elm$core$List$concatMap, rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)))); + case 3: + var _n11 = styles.a; + var pseudoElement = _n11.a; + var nestedStyles = _n11.b; + var rest = styles.b; + return A4( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast, + nestedStyles, + rest, + rtfeldman$elm_css$Css$Structure$appendPseudoElementToLastSelector(pseudoElement), + declarations); + case 5: + var str = styles.a.a; + var rest = styles.b; + var name = rtfeldman$elm_css$Hash$fromString(str); + var newProperty = 'animation-name:' + name; + var newDeclarations = A2( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, + rest, + A2(rtfeldman$elm_css$Css$Structure$appendProperty, newProperty, declarations)); + return A2( + elm$core$List$append, + newDeclarations, + _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$Keyframes( + {cG: str, cT: name}) + ])); + case 4: + var _n12 = styles.a; + var mediaQueries = _n12.a; + var nestedStyles = _n12.b; + var rest = styles.b; + var extraDeclarations = function () { + var _n13 = rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(declarations); + if (!_n13.b) { + return _List_Nil; + } else { + var firstSelector = _n13.a; + var otherSelectors = _n13.b; + return A2( + elm$core$List$map, + rtfeldman$elm_css$Css$Structure$styleBlockToMediaRule(mediaQueries), + A2( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, + nestedStyles, + elm$core$List$singleton( + rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( + A3(rtfeldman$elm_css$Css$Structure$StyleBlock, firstSelector, otherSelectors, _List_Nil))))); + } + }(); + return _Utils_ap( + A2(rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, rest, declarations), + extraDeclarations); + default: + var otherStyles = styles.a.a; + var rest = styles.b; + return A2( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, + _Utils_ap(otherStyles, rest), + declarations); + } + } + }); +var rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock = function (_n2) { + var firstSelector = _n2.a; + var otherSelectors = _n2.b; + var styles = _n2.c; + return A2( + rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, + styles, + _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( + A3(rtfeldman$elm_css$Css$Structure$StyleBlock, firstSelector, otherSelectors, _List_Nil)) + ])); +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$extract = function (snippetDeclarations) { + if (!snippetDeclarations.b) { + return _List_Nil; + } else { + var first = snippetDeclarations.a; + var rest = snippetDeclarations.b; + return _Utils_ap( + rtfeldman$elm_css$Css$Preprocess$Resolve$toDeclarations(first), + rtfeldman$elm_css$Css$Preprocess$Resolve$extract(rest)); + } +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule = F2( + function (mediaQueries, styleBlocks) { + var handleStyleBlock = function (styleBlock) { + return A2( + elm$core$List$map, + rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule(mediaQueries), + rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock)); + }; + return A2(elm$core$List$concatMap, handleStyleBlock, styleBlocks); + }); +var rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule = F2( + function (str, snippets) { + var declarations = rtfeldman$elm_css$Css$Preprocess$Resolve$extract( + A2(elm$core$List$concatMap, rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)); + return _List_fromArray( + [ + A2(rtfeldman$elm_css$Css$Structure$SupportsRule, str, declarations) + ]); + }); +var rtfeldman$elm_css$Css$Preprocess$Resolve$toDeclarations = function (snippetDeclaration) { + switch (snippetDeclaration.$) { + case 0: + var styleBlock = snippetDeclaration.a; + return rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock); + case 1: + var mediaQueries = snippetDeclaration.a; + var styleBlocks = snippetDeclaration.b; + return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule, mediaQueries, styleBlocks); + case 2: + var str = snippetDeclaration.a; + var snippets = snippetDeclaration.b; + return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule, str, snippets); + case 3: + var str1 = snippetDeclaration.a; + var str2 = snippetDeclaration.b; + var str3 = snippetDeclaration.c; + var str4 = snippetDeclaration.d; + var styleBlock = snippetDeclaration.e; + return A2( + elm$core$List$map, + A4(rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule, str1, str2, str3, str4), + rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock)); + case 4: + var str = snippetDeclaration.a; + var properties = snippetDeclaration.b; + return _List_fromArray( + [ + A2(rtfeldman$elm_css$Css$Structure$PageRule, str, properties) + ]); + case 5: + var properties = snippetDeclaration.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$FontFace(properties) + ]); + case 6: + var properties = snippetDeclaration.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$Viewport(properties) + ]); + case 7: + var properties = snippetDeclaration.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$CounterStyle(properties) + ]); + default: + var tuples = snippetDeclaration.a; + return rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues(tuples); + } +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$toStructure = function (_n0) { + var charset = _n0.bJ; + var imports = _n0.bV; + var namespaces = _n0.b3; + var snippets = _n0.ck; + var declarations = rtfeldman$elm_css$Css$Preprocess$Resolve$extract( + A2(elm$core$List$concatMap, rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)); + return {bJ: charset, cH: declarations, bV: imports, b3: namespaces}; +}; +var elm$core$Dict$RBEmpty_elm_builtin = {$: -2}; +var elm$core$Dict$empty = elm$core$Dict$RBEmpty_elm_builtin; +var elm$core$Dict$Black = 1; +var elm$core$Dict$RBNode_elm_builtin = F5( + function (a, b, c, d, e) { + return {$: -1, a: a, b: b, c: c, d: d, e: e}; + }); +var elm$core$Basics$compare = _Utils_compare; +var elm$core$Dict$Red = 0; +var elm$core$Dict$balance = F5( + function (color, key, value, left, right) { + if ((right.$ === -1) && (!right.a)) { + var _n1 = right.a; + var rK = right.b; + var rV = right.c; + var rLeft = right.d; + var rRight = right.e; + if ((left.$ === -1) && (!left.a)) { + var _n3 = left.a; + var lK = left.b; + var lV = left.c; + var lLeft = left.d; + var lRight = left.e; + return A5( + elm$core$Dict$RBNode_elm_builtin, + 0, + key, + value, + A5(elm$core$Dict$RBNode_elm_builtin, 1, lK, lV, lLeft, lRight), + A5(elm$core$Dict$RBNode_elm_builtin, 1, rK, rV, rLeft, rRight)); + } else { + return A5( + elm$core$Dict$RBNode_elm_builtin, + color, + rK, + rV, + A5(elm$core$Dict$RBNode_elm_builtin, 0, key, value, left, rLeft), + rRight); + } + } else { + if ((((left.$ === -1) && (!left.a)) && (left.d.$ === -1)) && (!left.d.a)) { + var _n5 = left.a; + var lK = left.b; + var lV = left.c; + var _n6 = left.d; + var _n7 = _n6.a; + var llK = _n6.b; + var llV = _n6.c; + var llLeft = _n6.d; + var llRight = _n6.e; + var lRight = left.e; + return A5( + elm$core$Dict$RBNode_elm_builtin, + 0, + lK, + lV, + A5(elm$core$Dict$RBNode_elm_builtin, 1, llK, llV, llLeft, llRight), + A5(elm$core$Dict$RBNode_elm_builtin, 1, key, value, lRight, right)); + } else { + return A5(elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right); + } + } + }); +var elm$core$Dict$insertHelp = F3( + function (key, value, dict) { + if (dict.$ === -2) { + return A5(elm$core$Dict$RBNode_elm_builtin, 0, key, value, elm$core$Dict$RBEmpty_elm_builtin, elm$core$Dict$RBEmpty_elm_builtin); + } else { + var nColor = dict.a; + var nKey = dict.b; + var nValue = dict.c; + var nLeft = dict.d; + var nRight = dict.e; + var _n1 = A2(elm$core$Basics$compare, key, nKey); + switch (_n1) { + case 0: + return A5( + elm$core$Dict$balance, + nColor, + nKey, + nValue, + A3(elm$core$Dict$insertHelp, key, value, nLeft), + nRight); + case 1: + return A5(elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight); + default: + return A5( + elm$core$Dict$balance, + nColor, + nKey, + nValue, + nLeft, + A3(elm$core$Dict$insertHelp, key, value, nRight)); + } + } + }); +var elm$core$Dict$insert = F3( + function (key, value, dict) { + var _n0 = A3(elm$core$Dict$insertHelp, key, value, dict); + if ((_n0.$ === -1) && (!_n0.a)) { + var _n1 = _n0.a; + var k = _n0.b; + var v = _n0.c; + var l = _n0.d; + var r = _n0.e; + return A5(elm$core$Dict$RBNode_elm_builtin, 1, k, v, l, r); + } else { + var x = _n0; + return x; + } + }); +var elm$core$Basics$composeL = F3( + function (g, f, x) { + return g( + f(x)); + }); +var elm$core$Basics$not = _Basics_not; +var elm$core$List$any = F2( + function (isOkay, list) { + any: + while (true) { + if (!list.b) { + return false; + } else { + var x = list.a; + var xs = list.b; + if (isOkay(x)) { + return true; + } else { + var $temp$isOkay = isOkay, + $temp$list = xs; + isOkay = $temp$isOkay; + list = $temp$list; + continue any; + } + } + } + }); +var elm$core$List$all = F2( + function (isOkay, list) { + return !A2( + elm$core$List$any, + A2(elm$core$Basics$composeL, elm$core$Basics$not, isOkay), + list); + }); +var rtfeldman$elm_css$Css$Structure$compactHelp = F2( + function (declaration, _n0) { + var keyframesByName = _n0.a; + var declarations = _n0.b; + switch (declaration.$) { + case 0: + var _n2 = declaration.a; + var properties = _n2.c; + return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + case 1: + var styleBlocks = declaration.b; + return A2( + elm$core$List$all, + function (_n3) { + var properties = _n3.c; + return elm$core$List$isEmpty(properties); + }, + styleBlocks) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + case 2: + var otherDeclarations = declaration.b; + return elm$core$List$isEmpty(otherDeclarations) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + case 3: + return _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + case 4: + var properties = declaration.b; + return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + case 5: + var properties = declaration.a; + return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + case 6: + var record = declaration.a; + return elm$core$String$isEmpty(record.cG) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + A3(elm$core$Dict$insert, record.cT, record.cG, keyframesByName), + declarations); + case 7: + var properties = declaration.a; + return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + case 8: + var properties = declaration.a; + return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + default: + var tuples = declaration.a; + return A2( + elm$core$List$all, + function (_n4) { + var properties = _n4.b; + return elm$core$List$isEmpty(properties); + }, + tuples) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + keyframesByName, + A2(elm$core$List$cons, declaration, declarations)); + } + }); +var rtfeldman$elm_css$Css$Structure$withKeyframeDeclarations = F2( + function (keyframesByName, compactedDeclarations) { + return A2( + elm$core$List$append, + A2( + elm$core$List$map, + function (_n0) { + var name = _n0.a; + var decl = _n0.b; + return rtfeldman$elm_css$Css$Structure$Keyframes( + {cG: decl, cT: name}); + }, + elm$core$Dict$toList(keyframesByName)), + compactedDeclarations); + }); +var rtfeldman$elm_css$Css$Structure$compactStylesheet = function (_n0) { + var charset = _n0.bJ; + var imports = _n0.bV; + var namespaces = _n0.b3; + var declarations = _n0.cH; + var _n1 = A3( + elm$core$List$foldr, + rtfeldman$elm_css$Css$Structure$compactHelp, + _Utils_Tuple2(elm$core$Dict$empty, _List_Nil), + declarations); + var keyframesByName = _n1.a; + var compactedDeclarations = _n1.b; + var finalDeclarations = A2(rtfeldman$elm_css$Css$Structure$withKeyframeDeclarations, keyframesByName, compactedDeclarations); + return {bJ: charset, cH: finalDeclarations, bV: imports, b3: namespaces}; +}; +var rtfeldman$elm_css$Css$Structure$Output$charsetToString = function (charset) { + return A2( + elm$core$Maybe$withDefault, + '', + A2( + elm$core$Maybe$map, + function (str) { + return '@charset \"' + (str + '\"'); + }, + charset)); +}; +var rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString = function (expression) { + return '(' + (expression.bQ + (A2( + elm$core$Maybe$withDefault, + '', + A2( + elm$core$Maybe$map, + elm$core$Basics$append(': '), + expression.B)) + ')')); +}; +var rtfeldman$elm_css$Css$Structure$Output$mediaTypeToString = function (mediaType) { + switch (mediaType) { + case 0: + return 'print'; + case 1: + return 'screen'; + default: + return 'speech'; + } +}; +var rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString = function (mediaQuery) { + var prefixWith = F3( + function (str, mediaType, expressions) { + return str + (' ' + A2( + elm$core$String$join, + ' and ', + A2( + elm$core$List$cons, + rtfeldman$elm_css$Css$Structure$Output$mediaTypeToString(mediaType), + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString, expressions)))); + }); + switch (mediaQuery.$) { + case 0: + var expressions = mediaQuery.a; + return A2( + elm$core$String$join, + ' and ', + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString, expressions)); + case 1: + var mediaType = mediaQuery.a; + var expressions = mediaQuery.b; + return A3(prefixWith, 'only', mediaType, expressions); + case 2: + var mediaType = mediaQuery.a; + var expressions = mediaQuery.b; + return A3(prefixWith, 'not', mediaType, expressions); + default: + var str = mediaQuery.a; + return str; + } +}; +var rtfeldman$elm_css$Css$Structure$Output$importMediaQueryToString = F2( + function (name, mediaQuery) { + return '@import \"' + (name + (rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString(mediaQuery) + '\"')); + }); +var rtfeldman$elm_css$Css$Structure$Output$importToString = function (_n0) { + var name = _n0.a; + var mediaQueries = _n0.b; + return A2( + elm$core$String$join, + '\n', + A2( + elm$core$List$map, + rtfeldman$elm_css$Css$Structure$Output$importMediaQueryToString(name), + mediaQueries)); +}; +var rtfeldman$elm_css$Css$Structure$Output$namespaceToString = function (_n0) { + var prefix = _n0.a; + var str = _n0.b; + return '@namespace ' + (prefix + ('\"' + (str + '\"'))); +}; +var rtfeldman$elm_css$Css$Structure$Output$spaceIndent = ' '; +var rtfeldman$elm_css$Css$Structure$Output$indent = function (str) { + return _Utils_ap(rtfeldman$elm_css$Css$Structure$Output$spaceIndent, str); +}; +var rtfeldman$elm_css$Css$Structure$Output$noIndent = ''; +var rtfeldman$elm_css$Css$Structure$Output$emitProperty = function (str) { + return str + ';'; +}; +var rtfeldman$elm_css$Css$Structure$Output$emitProperties = function (properties) { + return A2( + elm$core$String$join, + '\n', + A2( + elm$core$List$map, + A2(elm$core$Basics$composeL, rtfeldman$elm_css$Css$Structure$Output$indent, rtfeldman$elm_css$Css$Structure$Output$emitProperty), + properties)); +}; +var elm$core$String$append = _String_append; +var rtfeldman$elm_css$Css$Structure$Output$pseudoElementToString = function (_n0) { + var str = _n0; + return '::' + str; +}; +var rtfeldman$elm_css$Css$Structure$Output$combinatorToString = function (combinator) { + switch (combinator) { + case 0: + return '+'; + case 1: + return '~'; + case 2: + return '>'; + default: + return ''; + } +}; +var rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString = function (repeatableSimpleSelector) { + switch (repeatableSimpleSelector.$) { + case 0: + var str = repeatableSimpleSelector.a; + return '.' + str; + case 1: + var str = repeatableSimpleSelector.a; + return '#' + str; + case 2: + var str = repeatableSimpleSelector.a; + return ':' + str; + default: + var str = repeatableSimpleSelector.a; + return '[' + (str + ']'); + } +}; +var rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString = function (simpleSelectorSequence) { + switch (simpleSelectorSequence.$) { + case 0: + var str = simpleSelectorSequence.a; + var repeatableSimpleSelectors = simpleSelectorSequence.b; + return A2( + elm$core$String$join, + '', + A2( + elm$core$List$cons, + str, + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors))); + case 1: + var repeatableSimpleSelectors = simpleSelectorSequence.a; + return elm$core$List$isEmpty(repeatableSimpleSelectors) ? '*' : A2( + elm$core$String$join, + '', + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors)); + default: + var str = simpleSelectorSequence.a; + var repeatableSimpleSelectors = simpleSelectorSequence.b; + return A2( + elm$core$String$join, + '', + A2( + elm$core$List$cons, + str, + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors))); + } +}; +var rtfeldman$elm_css$Css$Structure$Output$selectorChainToString = function (_n0) { + var combinator = _n0.a; + var sequence = _n0.b; + return A2( + elm$core$String$join, + ' ', + _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$Output$combinatorToString(combinator), + rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString(sequence) + ])); +}; +var rtfeldman$elm_css$Css$Structure$Output$selectorToString = function (_n0) { + var simpleSelectorSequence = _n0.a; + var chain = _n0.b; + var pseudoElement = _n0.c; + var segments = A2( + elm$core$List$cons, + rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString(simpleSelectorSequence), + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$selectorChainToString, chain)); + var pseudoElementsString = A2( + elm$core$String$join, + '', + _List_fromArray( + [ + A2( + elm$core$Maybe$withDefault, + '', + A2(elm$core$Maybe$map, rtfeldman$elm_css$Css$Structure$Output$pseudoElementToString, pseudoElement)) + ])); + return A2( + elm$core$String$append, + A2( + elm$core$String$join, + ' ', + A2( + elm$core$List$filter, + A2(elm$core$Basics$composeL, elm$core$Basics$not, elm$core$String$isEmpty), + segments)), + pseudoElementsString); +}; +var rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock = F2( + function (indentLevel, _n0) { + var firstSelector = _n0.a; + var otherSelectors = _n0.b; + var properties = _n0.c; + var selectorStr = A2( + elm$core$String$join, + ', ', + A2( + elm$core$List$map, + rtfeldman$elm_css$Css$Structure$Output$selectorToString, + A2(elm$core$List$cons, firstSelector, otherSelectors))); + return A2( + elm$core$String$join, + '', + _List_fromArray( + [ + selectorStr, + ' {\n', + indentLevel, + rtfeldman$elm_css$Css$Structure$Output$emitProperties(properties), + '\n', + indentLevel, + '}' + ])); + }); +var rtfeldman$elm_css$Css$Structure$Output$prettyPrintDeclaration = function (decl) { + switch (decl.$) { + case 0: + var styleBlock = decl.a; + return A2(rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock, rtfeldman$elm_css$Css$Structure$Output$noIndent, styleBlock); + case 1: + var mediaQueries = decl.a; + var styleBlocks = decl.b; + var query = A2( + elm$core$String$join, + ',\n', + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString, mediaQueries)); + var blocks = A2( + elm$core$String$join, + '\n\n', + A2( + elm$core$List$map, + A2( + elm$core$Basics$composeL, + rtfeldman$elm_css$Css$Structure$Output$indent, + rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock(rtfeldman$elm_css$Css$Structure$Output$spaceIndent)), + styleBlocks)); + return '@media ' + (query + (' {\n' + (blocks + '\n}'))); + case 2: + return 'TODO'; + case 3: + return 'TODO'; + case 4: + return 'TODO'; + case 5: + return 'TODO'; + case 6: + var name = decl.a.cT; + var declaration = decl.a.cG; + return '@keyframes ' + (name + (' {\n' + (declaration + '\n}'))); + case 7: + return 'TODO'; + case 8: + return 'TODO'; + default: + return 'TODO'; + } +}; +var rtfeldman$elm_css$Css$Structure$Output$prettyPrint = function (_n0) { + var charset = _n0.bJ; + var imports = _n0.bV; + var namespaces = _n0.b3; + var declarations = _n0.cH; + return A2( + elm$core$String$join, + '\n\n', + A2( + elm$core$List$filter, + A2(elm$core$Basics$composeL, elm$core$Basics$not, elm$core$String$isEmpty), + _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$Output$charsetToString(charset), + A2( + elm$core$String$join, + '\n', + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$importToString, imports)), + A2( + elm$core$String$join, + '\n', + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$namespaceToString, namespaces)), + A2( + elm$core$String$join, + '\n\n', + A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$prettyPrintDeclaration, declarations)) + ]))); +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$compileHelp = function (sheet) { + return rtfeldman$elm_css$Css$Structure$Output$prettyPrint( + rtfeldman$elm_css$Css$Structure$compactStylesheet( + rtfeldman$elm_css$Css$Preprocess$Resolve$toStructure(sheet))); +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$compile = function (styles) { + return A2( + elm$core$String$join, + '\n\n', + A2(elm$core$List$map, rtfeldman$elm_css$Css$Preprocess$Resolve$compileHelp, styles)); +}; +var rtfeldman$elm_css$Css$Preprocess$Snippet = elm$core$Basics$identity; +var rtfeldman$elm_css$Css$Preprocess$StyleBlock = F3( + function (a, b, c) { + return {$: 0, a: a, b: b, c: c}; + }); +var rtfeldman$elm_css$Css$Preprocess$StyleBlockDeclaration = function (a) { + return {$: 0, a: a}; +}; +var rtfeldman$elm_css$VirtualDom$Styled$makeSnippet = F2( + function (styles, sequence) { + var selector = A3(rtfeldman$elm_css$Css$Structure$Selector, sequence, _List_Nil, elm$core$Maybe$Nothing); + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Preprocess$StyleBlockDeclaration( + A3(rtfeldman$elm_css$Css$Preprocess$StyleBlock, selector, _List_Nil, styles)) + ]); + }); +var rtfeldman$elm_css$VirtualDom$Styled$murmurSeed = 15739; +var rtfeldman$elm_css$VirtualDom$Styled$getClassname = function (styles) { + return elm$core$List$isEmpty(styles) ? 'unstyled' : A2( + elm$core$String$cons, + '_', + rtfeldman$elm_hex$Hex$toString( + A2( + Skinney$murmur3$Murmur3$hashString, + rtfeldman$elm_css$VirtualDom$Styled$murmurSeed, + rtfeldman$elm_css$Css$Preprocess$Resolve$compile( + elm$core$List$singleton( + rtfeldman$elm_css$Css$Preprocess$stylesheet( + elm$core$List$singleton( + A2( + rtfeldman$elm_css$VirtualDom$Styled$makeSnippet, + styles, + rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence(_List_Nil))))))))); +}; +var rtfeldman$elm_css$Html$Styled$Internal$css = function (styles) { + var classname = rtfeldman$elm_css$VirtualDom$Styled$getClassname(styles); + var classProperty = A2( + elm$virtual_dom$VirtualDom$property, + 'className', + elm$json$Json$Encode$string(classname)); + return A3(rtfeldman$elm_css$VirtualDom$Styled$Attribute, classProperty, styles, classname); +}; +var rtfeldman$elm_css$Html$Styled$Attributes$css = rtfeldman$elm_css$Html$Styled$Internal$css; +var elm$virtual_dom$VirtualDom$Normal = function (a) { + return {$: 0, a: a}; +}; +var elm$virtual_dom$VirtualDom$on = _VirtualDom_on; +var rtfeldman$elm_css$VirtualDom$Styled$on = F2( + function (eventName, handler) { + return A3( + rtfeldman$elm_css$VirtualDom$Styled$Attribute, + A2(elm$virtual_dom$VirtualDom$on, eventName, handler), + _List_Nil, + ''); + }); +var rtfeldman$elm_css$Html$Styled$Events$on = F2( + function (event, decoder) { + return A2( + rtfeldman$elm_css$VirtualDom$Styled$on, + event, + elm$virtual_dom$VirtualDom$Normal(decoder)); + }); +var rtfeldman$elm_css$Html$Styled$Events$onClick = function (msg) { + return A2( + rtfeldman$elm_css$Html$Styled$Events$on, + 'click', + elm$json$Json$Decode$succeed(msg)); +}; +var author$project$Theme$Elements$icon = F2( + function (name, click) { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), + rtfeldman$elm_css$Css$padding( + rtfeldman$elm_css$Css$px(5)) + ])), + rtfeldman$elm_css$Html$Styled$Events$onClick(click) + ]), + _List_fromArray( + [ + A2(author$project$Theme$Elements$fontAwesomeIcon, name, '2x') + ])); + }); +var rtfeldman$elm_css$Css$Internal$property = F2( + function (key, value) { + return rtfeldman$elm_css$Css$Preprocess$AppendProperty(key + (':' + value)); + }); +var rtfeldman$elm_css$Css$Preprocess$ApplyStyles = function (a) { + return {$: 6, a: a}; +}; +var rtfeldman$elm_css$Css$Internal$getOverloadedProperty = F3( + function (functionName, desiredKey, style) { + getOverloadedProperty: + while (true) { + switch (style.$) { + case 0: + var str = style.a; + var key = A2( + elm$core$Maybe$withDefault, + '', + elm$core$List$head( + A2(elm$core$String$split, ':', str))); + return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, key); + case 1: + var selector = style.a; + return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-selector')); + case 2: + var combinator = style.a; + return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-combinator')); + case 3: + var pseudoElement = style.a; + return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-pseudo-element setter')); + case 4: + return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-media-query')); + case 5: + return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-keyframes')); + default: + if (!style.a.b) { + return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-empty-Style')); + } else { + if (!style.a.b.b) { + var _n1 = style.a; + var only = _n1.a; + var $temp$functionName = functionName, + $temp$desiredKey = desiredKey, + $temp$style = only; + functionName = $temp$functionName; + desiredKey = $temp$desiredKey; + style = $temp$style; + continue getOverloadedProperty; + } else { + var _n2 = style.a; + var first = _n2.a; + var rest = _n2.b; + var $temp$functionName = functionName, + $temp$desiredKey = desiredKey, + $temp$style = rtfeldman$elm_css$Css$Preprocess$ApplyStyles(rest); + functionName = $temp$functionName; + desiredKey = $temp$desiredKey; + style = $temp$style; + continue getOverloadedProperty; + } + } + } + } + }); +var rtfeldman$elm_css$Css$Internal$IncompatibleUnits = 0; +var rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty = A3(rtfeldman$elm_css$Css$Internal$lengthConverter, 0, '', 0); +var rtfeldman$elm_css$Css$alignItems = function (fn) { + return A3( + rtfeldman$elm_css$Css$Internal$getOverloadedProperty, + 'alignItems', + 'align-items', + fn(rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty)); +}; +var rtfeldman$elm_css$Css$backgroundColor = function (c) { + return A2(rtfeldman$elm_css$Css$property, 'background-color', c.B); +}; +var rtfeldman$elm_css$Css$bottom = rtfeldman$elm_css$Css$prop1('bottom'); +var rtfeldman$elm_css$Css$prop4 = F5( + function (key, argA, argB, argC, argD) { + return A2( + rtfeldman$elm_css$Css$property, + key, + A2( + elm$core$String$join, + ' ', + _List_fromArray( + [argA.B, argB.B, argC.B, argD.B]))); + }); +var rtfeldman$elm_css$Css$boxShadow4 = rtfeldman$elm_css$Css$prop4('box-shadow'); +var rtfeldman$elm_css$Css$center = rtfeldman$elm_css$Css$prop1('center'); +var rtfeldman$elm_css$Css$displayFlex = A2(rtfeldman$elm_css$Css$property, 'display', 'flex'); +var rtfeldman$elm_css$Css$fixed = {aD: 0, aK: 0, a8: 0, B: 'fixed'}; +var rtfeldman$elm_css$Css$flexDirection = rtfeldman$elm_css$Css$prop1('flex-direction'); +var rtfeldman$elm_css$Css$height = rtfeldman$elm_css$Css$prop1('height'); +var rtfeldman$elm_css$Css$justifyContent = function (fn) { + return A3( + rtfeldman$elm_css$Css$Internal$getOverloadedProperty, + 'justifyContent', + 'justify-content', + fn(rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty)); +}; +var rtfeldman$elm_css$Css$PercentageUnits = 0; +var rtfeldman$elm_css$Css$pct = A2(rtfeldman$elm_css$Css$Internal$lengthConverter, 0, '%'); +var rtfeldman$elm_css$Css$position = rtfeldman$elm_css$Css$prop1('position'); +var rtfeldman$elm_css$Css$row = {bf: 0, aG: 0, B: 'row'}; +var rtfeldman$elm_css$Css$spaceBetween = rtfeldman$elm_css$Css$prop1('space-between'); +var rtfeldman$elm_css$Css$width = rtfeldman$elm_css$Css$prop1('width'); +var rtfeldman$elm_css$Css$UnitlessInteger = 0; +var rtfeldman$elm_css$Css$zero = {aH: 0, am: 0, I: 0, an: 0, ao: 0, R: 0, S: 0, aJ: 0, L: 0, a4: 0, ay: '', aT: 0, B: '0'}; +var rtfeldman$elm_css$Html$Styled$nav = rtfeldman$elm_css$Html$Styled$node('nav'); +var author$project$Main$appNavigation = A2( + rtfeldman$elm_css$Html$Styled$nav, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$displayFlex, + rtfeldman$elm_css$Css$flexDirection(rtfeldman$elm_css$Css$row), + rtfeldman$elm_css$Css$justifyContent(rtfeldman$elm_css$Css$spaceBetween), + rtfeldman$elm_css$Css$alignItems(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$position(rtfeldman$elm_css$Css$fixed), + rtfeldman$elm_css$Css$bottom(rtfeldman$elm_css$Css$zero), + rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.s.cE), + rtfeldman$elm_css$Css$height( + rtfeldman$elm_css$Css$px(48)), + rtfeldman$elm_css$Css$width( + rtfeldman$elm_css$Css$pct(100)), + A4( + rtfeldman$elm_css$Css$boxShadow4, + rtfeldman$elm_css$Css$zero, + rtfeldman$elm_css$Css$zero, + rtfeldman$elm_css$Css$px(5), + A3(rtfeldman$elm_css$Css$rgb, 0, 0, 0)) + ])) + ]), + _List_fromArray( + [ + A2(author$project$Theme$Elements$icon, 'home', author$project$Main$GoHome), + A2(author$project$Theme$Elements$icon, 'cog', author$project$Main$GoSettings) + ])); +var author$project$Main$RemoveSavedWord = function (a) { + return {$: 8, a: a}; +}; +var author$project$Main$SaveWord = function (a) { + return {$: 7, a: a}; +}; +var author$project$Main$isWordSaved = F2( + function (word, wordList) { + var list = A2( + elm$core$List$filter, + function (item) { + return _Utils_eq(item._, word); + }, + wordList); + return elm$core$List$isEmpty(list); + }); +var author$project$Theme$Elements$wordDefinitionIcon = F2( + function (click, name) { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.b1), + rtfeldman$elm_css$Css$padding( + rtfeldman$elm_css$Css$px(5)) + ])), + rtfeldman$elm_css$Html$Styled$Events$onClick(click) + ]), + _List_fromArray( + [ + A2(author$project$Theme$Elements$fontAwesomeIcon, name, 'lg') + ])); + }); +var author$project$Main$bookmarkIconView = F2( + function (definition, wordlist) { + var list = function () { + if (!wordlist.$) { + var l = wordlist.a; + return l; + } else { + return _List_Nil; + } + }(); + var isSaved = A2(author$project$Main$isWordSaved, definition._, list); + return isSaved ? A2( + author$project$Theme$Elements$wordDefinitionIcon, + author$project$Main$SaveWord(definition), + 'bookmark-o') : A2( + author$project$Theme$Elements$wordDefinitionIcon, + author$project$Main$RemoveSavedWord(definition), + 'bookmark'); + }); +var author$project$Main$isSeeAlsoEmpty = function (list) { + if (list.b) { + var f = list.a; + var r = list.b; + return !elm$core$String$length(f); + } else { + return true; + } +}; +var rtfeldman$elm_css$Css$borderRadius = rtfeldman$elm_css$Css$prop1('border-radius'); +var rtfeldman$elm_css$Css$borderStyle = rtfeldman$elm_css$Css$prop1('border-style'); +var rtfeldman$elm_css$Css$fontSize = rtfeldman$elm_css$Css$prop1('font-size'); +var rtfeldman$elm_css$Css$margin = rtfeldman$elm_css$Css$prop1('margin'); +var rtfeldman$elm_css$Css$none = {aa: 0, bD: 0, q: 0, c: 0, j: 0, cN: 0, bW: 0, bg: 0, ao: 0, R: 0, z: 0, e: 0, d: 0, bj: 0, a4: 0, cX: 0, w: 0, a5: 0, cZ: 0, av: 0, Y: 0, t: 0, i: 0, c3: 0, B: 'none'}; +var rtfeldman$elm_css$Html$Styled$button = rtfeldman$elm_css$Html$Styled$node('button'); +var rtfeldman$elm_css$Html$Styled$span = rtfeldman$elm_css$Html$Styled$node('span'); +var elm$virtual_dom$VirtualDom$text = _VirtualDom_text; +var rtfeldman$elm_css$VirtualDom$Styled$Unstyled = function (a) { + return {$: 4, a: a}; +}; +var rtfeldman$elm_css$VirtualDom$Styled$text = function (str) { + return rtfeldman$elm_css$VirtualDom$Styled$Unstyled( + elm$virtual_dom$VirtualDom$text(str)); +}; +var rtfeldman$elm_css$Html$Styled$text = rtfeldman$elm_css$VirtualDom$Styled$text; +var author$project$Theme$Elements$seeAlso = F2( + function (click, word) { + return (!elm$core$String$length(word)) ? A2(rtfeldman$elm_css$Html$Styled$span, _List_Nil, _List_Nil) : A2( + rtfeldman$elm_css$Html$Styled$button, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.bG.by), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), + rtfeldman$elm_css$Css$borderRadius( + rtfeldman$elm_css$Css$px(8)), + rtfeldman$elm_css$Css$padding( + rtfeldman$elm_css$Css$px(10)), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(20)), + rtfeldman$elm_css$Css$margin( + rtfeldman$elm_css$Css$px(10)), + rtfeldman$elm_css$Css$borderStyle(rtfeldman$elm_css$Css$none) + ])), + rtfeldman$elm_css$Html$Styled$Events$onClick(click) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text(word) + ])); + }); +var rtfeldman$elm_css$Css$block = {j: 0, B: 'block'}; +var rtfeldman$elm_css$Css$display = rtfeldman$elm_css$Css$prop1('display'); +var rtfeldman$elm_css$Css$marginTop = rtfeldman$elm_css$Css$prop1('margin-top'); +var rtfeldman$elm_css$Css$textAlign = function (fn) { + return A3( + rtfeldman$elm_css$Css$Internal$getOverloadedProperty, + 'textAlign', + 'text-align', + fn(rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty)); +}; +var author$project$Theme$Elements$takeFurther = A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(18)), + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(20)) + ])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$span, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.b0), + rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Go for a word adventure:') + ])) + ])); +var rtfeldman$elm_css$Css$capitalize = {Y: 0, B: 'capitalize'}; +var rtfeldman$elm_css$Css$left = rtfeldman$elm_css$Css$prop1('left'); +var rtfeldman$elm_css$Css$PtUnits = 0; +var rtfeldman$elm_css$Css$pt = A2(rtfeldman$elm_css$Css$Internal$lengthConverter, 0, 'pt'); +var rtfeldman$elm_css$Css$textTransform = rtfeldman$elm_css$Css$prop1('text-transform'); +var rtfeldman$elm_css$Html$Styled$h1 = rtfeldman$elm_css$Html$Styled$node('h1'); +var rtfeldman$elm_css$Html$Styled$p = rtfeldman$elm_css$Html$Styled$node('p'); +var author$project$Main$definitionView = function (model) { + var _n0 = model.u.aF; + if (!_n0.$) { + var word = _n0.a; + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_Nil, + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), + rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$capitalize), + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(125)) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text(word._) + ])), + A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$displayFlex, + rtfeldman$elm_css$Css$flexDirection(rtfeldman$elm_css$Css$row), + rtfeldman$elm_css$Css$alignItems(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$justifyContent(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.cL) + ])) + ]), + _List_fromArray( + [ + A2(author$project$Main$bookmarkIconView, word, model.as) + ])), + A2( + rtfeldman$elm_css$Html$Styled$p, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$pt(16)), + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$left), + rtfeldman$elm_css$Css$padding( + rtfeldman$elm_css$Css$px(20)) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text(word.aY) + ])), + author$project$Main$isSeeAlsoEmpty(word.bn) ? A2(rtfeldman$elm_css$Html$Styled$div, _List_Nil, _List_Nil) : A2( + rtfeldman$elm_css$Html$Styled$div, + _List_Nil, + _List_fromArray( + [ + author$project$Theme$Elements$takeFurther, + A2( + rtfeldman$elm_css$Html$Styled$div, + _List_Nil, + A2( + elm$core$List$map, + function (i) { + return A2( + author$project$Theme$Elements$seeAlso, + author$project$Main$LoadDefinitionByWord(i), + i); + }, + word.bn)) + ])), + A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$height( + rtfeldman$elm_css$Css$px(60)) + ])) + ]), + _List_Nil) + ])); + } else { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_Nil, + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_Nil, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('wait...') + ])) + ])); + } +}; +var rtfeldman$elm_css$Css$justify = rtfeldman$elm_css$Css$prop1('justify'); +var rtfeldman$elm_css$Html$Styled$br = rtfeldman$elm_css$Html$Styled$node('br'); +var author$project$Main$helpView = function (karma) { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_Nil, + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), + rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$capitalize), + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(125)) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Help') + ])), + A2( + rtfeldman$elm_css$Html$Styled$p, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$justify), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(20)), + rtfeldman$elm_css$Css$padding( + rtfeldman$elm_css$Css$px(15)) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Welcome the Hindu Lexicon! Type the characters that you know are in a word. All the possible choices will appear. Use less characters if you do not know to the spelling of a word. Use more if want to limit the choices.'), + rtfeldman$elm_css$Html$Styled$text(' Gurudeva recommended study of one word and associated words. Take:'), + A2(rtfeldman$elm_css$Html$Styled$br, _List_Nil, _List_Nil), + A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center) + ])) + ]), + _List_fromArray( + [ + A2(author$project$Theme$Elements$seeAlso, karma, 'karma') + ])), + A2(rtfeldman$elm_css$Html$Styled$br, _List_Nil, _List_Nil), + rtfeldman$elm_css$Html$Styled$text(' and go a word adventure clicking the other that pop up. You can a word to my word, but click the bookmark. When you are in My Word, clicking the bookmark will delete word. ') + ])) + ])); +}; +var author$project$Main$loadingView = A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), + rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$capitalize), + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(125)) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Loading') + ])); +var author$project$Main$FilterWordList = function (a) { + return {$: 6, a: a}; +}; +var author$project$Main$HelpView = 5; +var author$project$Main$Navigate = function (a) { + return {$: 1, a: a}; +}; +var author$project$Main$LoadDefinition = function (a) { + return {$: 2, a: a}; +}; +var rtfeldman$elm_css$Html$Styled$li = rtfeldman$elm_css$Html$Styled$node('li'); +var author$project$Main$addWordItem = function (word) { + return A2( + rtfeldman$elm_css$Html$Styled$li, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Events$onClick( + author$project$Main$LoadDefinition(word.al)) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text(word._) + ])); +}; +var elm$core$String$contains = _String_contains; +var author$project$Main$filterWordList = F2( + function (word, list) { + return elm$core$String$isEmpty(word) ? list : A2( + elm$core$List$filter, + function (item) { + return A2( + elm$core$String$contains, + elm$core$String$toLower(word), + elm$core$String$toLower(item._)); + }, + list); + }); +var rtfeldman$elm_css$Css$border = rtfeldman$elm_css$Css$prop1('border'); +var rtfeldman$elm_css$Css$prop3 = F4( + function (key, argA, argB, argC) { + return A2( + rtfeldman$elm_css$Css$property, + key, + A2( + elm$core$String$join, + ' ', + _List_fromArray( + [argA.B, argB.B, argC.B]))); + }); +var rtfeldman$elm_css$Css$borderTop3 = rtfeldman$elm_css$Css$prop3('border-top'); +var rtfeldman$elm_css$Css$solid = {q: 0, X: 0, B: 'solid'}; +var rtfeldman$elm_css$Html$Styled$hr = rtfeldman$elm_css$Html$Styled$node('hr'); +var author$project$Theme$Elements$listHeader = A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(18)), + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(20)) + ])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$span, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.b0), + rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Scroll the results and choose a word!') + ])), + A2( + rtfeldman$elm_css$Html$Styled$hr, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block), + rtfeldman$elm_css$Css$height(rtfeldman$elm_css$Css$zero), + rtfeldman$elm_css$Css$border(rtfeldman$elm_css$Css$zero), + A3( + rtfeldman$elm_css$Css$borderTop3, + rtfeldman$elm_css$Css$px(2), + rtfeldman$elm_css$Css$solid, + author$project$Theme$Colors$theme.s.b0), + rtfeldman$elm_css$Css$width( + rtfeldman$elm_css$Css$pct(10)) + ])) + ]), + _List_Nil) + ])); +var rtfeldman$elm_css$Css$transparent = {y: 0, B: 'transparent'}; +var rtfeldman$elm_css$Html$Styled$input = rtfeldman$elm_css$Html$Styled$node('input'); +var rtfeldman$elm_css$Html$Styled$Attributes$value = rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('value'); +var rtfeldman$elm_css$Html$Styled$Events$alwaysStop = function (x) { + return _Utils_Tuple2(x, true); +}; +var elm$virtual_dom$VirtualDom$MayStopPropagation = function (a) { + return {$: 1, a: a}; +}; +var rtfeldman$elm_css$Html$Styled$Events$stopPropagationOn = F2( + function (event, decoder) { + return A2( + rtfeldman$elm_css$VirtualDom$Styled$on, + event, + elm$virtual_dom$VirtualDom$MayStopPropagation(decoder)); + }); +var elm$json$Json$Decode$at = F2( + function (fields, decoder) { + return A3(elm$core$List$foldr, elm$json$Json$Decode$field, decoder, fields); + }); +var rtfeldman$elm_css$Html$Styled$Events$targetValue = A2( + elm$json$Json$Decode$at, + _List_fromArray( + ['target', 'value']), + elm$json$Json$Decode$string); +var rtfeldman$elm_css$Html$Styled$Events$onInput = function (tagger) { + return A2( + rtfeldman$elm_css$Html$Styled$Events$stopPropagationOn, + 'input', + A2( + elm$json$Json$Decode$map, + rtfeldman$elm_css$Html$Styled$Events$alwaysStop, + A2(elm$json$Json$Decode$map, tagger, rtfeldman$elm_css$Html$Styled$Events$targetValue))); +}; +var author$project$Theme$Elements$searchBox = F2( + function (changed, query) { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(10)) + ])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$input, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(30)), + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$borderStyle(rtfeldman$elm_css$Css$none), + rtfeldman$elm_css$Css$backgroundColor(rtfeldman$elm_css$Css$transparent), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C) + ])), + rtfeldman$elm_css$Html$Styled$Events$onInput(changed), + rtfeldman$elm_css$Html$Styled$Attributes$value(query) + ]), + _List_Nil), + A2( + rtfeldman$elm_css$Html$Styled$hr, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block), + rtfeldman$elm_css$Css$height(rtfeldman$elm_css$Css$zero), + rtfeldman$elm_css$Css$border(rtfeldman$elm_css$Css$zero), + A3( + rtfeldman$elm_css$Css$borderTop3, + rtfeldman$elm_css$Css$px(1), + rtfeldman$elm_css$Css$solid, + author$project$Theme$Colors$theme.s.C), + rtfeldman$elm_css$Css$width( + rtfeldman$elm_css$Css$pct(80)) + ])) + ]), + _List_Nil) + ])); + }); +var author$project$Theme$Elements$searchHeader = function (click) { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(18)) + ])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$span, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.b0), + rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Enter a single word or part of a word') + ])), + A2( + rtfeldman$elm_css$Html$Styled$span, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.b1), + rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) + ])), + rtfeldman$elm_css$Html$Styled$Events$onClick(click) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Need help?') + ])) + ])); +}; +var rtfeldman$elm_css$Css$listStyle = rtfeldman$elm_css$Css$prop1('list-style'); +var rtfeldman$elm_css$Css$overflowY = rtfeldman$elm_css$Css$prop1('overflow-y'); +var rtfeldman$elm_css$Css$scroll = {aD: 0, bD: 0, bW: 0, ap: 0, c_: 0, B: 'scroll'}; +var rtfeldman$elm_css$Html$Styled$ul = rtfeldman$elm_css$Html$Styled$node('ul'); +var author$project$Main$myWordsView = function (model) { + var _n0 = model.as; + if (!_n0.$) { + var wordList = _n0.a; + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(125)) + ])) + ]), + _List_fromArray( + [ + author$project$Theme$Elements$searchHeader( + author$project$Main$Navigate(5)), + A2(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, model.V), + author$project$Theme$Elements$listHeader, + A2( + rtfeldman$elm_css$Html$Styled$ul, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$pt(18)), + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$listStyle(rtfeldman$elm_css$Css$none), + rtfeldman$elm_css$Css$padding( + rtfeldman$elm_css$Css$px(20)), + rtfeldman$elm_css$Css$overflowY(rtfeldman$elm_css$Css$scroll), + rtfeldman$elm_css$Css$height( + rtfeldman$elm_css$Css$px(300)) + ])) + ]), + A2( + elm$core$List$map, + author$project$Main$addWordItem, + A2(author$project$Main$filterWordList, model.V, wordList))) + ])); + } else { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(125)) + ])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('You can click on the bookmark icon on word definitions to save them!') + ])) + ])); + } +}; +var author$project$Main$LoadRandomDefinition = {$: 5}; +var author$project$Main$MyWordsView = 3; +var rtfeldman$elm_css$Css$flex = rtfeldman$elm_css$Css$prop1('flex'); +var rtfeldman$elm_css$Css$Preprocess$ExtendSelector = F2( + function (a, b) { + return {$: 1, a: a, b: b}; + }); +var rtfeldman$elm_css$Css$Structure$PseudoClassSelector = function (a) { + return {$: 2, a: a}; +}; +var rtfeldman$elm_css$Css$pseudoClass = function (_class) { + return rtfeldman$elm_css$Css$Preprocess$ExtendSelector( + rtfeldman$elm_css$Css$Structure$PseudoClassSelector(_class)); +}; +var rtfeldman$elm_css$Css$hover = rtfeldman$elm_css$Css$pseudoClass('hover'); +var rtfeldman$elm_css$Css$int = function (val) { + return { + H: 0, + a1: 0, + S: 0, + z: 0, + aJ: 0, + L: val, + ay: '', + aT: 0, + B: elm$core$String$fromInt(val) + }; +}; +var rtfeldman$elm_css$Html$Styled$styled = F4( + function (fn, styles, attrs, children) { + return A2( + fn, + A2( + elm$core$List$cons, + rtfeldman$elm_css$Html$Styled$Internal$css(styles), + attrs), + children); + }); +var author$project$Theme$Elements$navButton = function (isCurrentPage) { + var bgColor = isCurrentPage ? author$project$Theme$Colors$theme.bG.bu : author$project$Theme$Colors$theme.bG.by; + return A2( + rtfeldman$elm_css$Html$Styled$styled, + rtfeldman$elm_css$Html$Styled$button, + _List_fromArray( + [ + rtfeldman$elm_css$Css$flex( + rtfeldman$elm_css$Css$int(1)), + rtfeldman$elm_css$Css$margin( + rtfeldman$elm_css$Css$px(2)), + rtfeldman$elm_css$Css$height( + rtfeldman$elm_css$Css$px(57)), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(18)), + rtfeldman$elm_css$Css$backgroundColor(bgColor), + rtfeldman$elm_css$Css$borderStyle(rtfeldman$elm_css$Css$none), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.bG.co), + rtfeldman$elm_css$Css$hover( + _List_fromArray( + [ + rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.bG.bu) + ])) + ])); +}; +var author$project$Main$pageNavigation = function (currentPage) { + var activePage = function () { + switch (currentPage) { + case 1: + return 'search'; + case 3: + return 'mywords'; + default: + return 'other'; + } + }(); + return A2( + rtfeldman$elm_css$Html$Styled$nav, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$displayFlex, + rtfeldman$elm_css$Css$flexDirection(rtfeldman$elm_css$Css$row), + rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.s.cF) + ])) + ]), + _List_fromArray( + [ + A3( + author$project$Theme$Elements$navButton, + activePage === 'search', + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Events$onClick( + author$project$Main$Navigate(1)) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Search') + ])), + A3( + author$project$Theme$Elements$navButton, + false, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Events$onClick(author$project$Main$LoadRandomDefinition) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Surprise!') + ])), + A3( + author$project$Theme$Elements$navButton, + activePage === 'mywords', + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Events$onClick( + author$project$Main$Navigate(3)) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('My Words') + ])) + ])); +}; +var author$project$Main$searchView = function (model) { + var _n0 = model.u.aV; + if (!_n0.$) { + var wordList = _n0.a; + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(125)) + ])) + ]), + _List_fromArray( + [ + author$project$Theme$Elements$searchHeader( + author$project$Main$Navigate(5)), + A2(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, model.V), + author$project$Theme$Elements$listHeader, + A2( + rtfeldman$elm_css$Html$Styled$ul, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$pt(18)), + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$listStyle(rtfeldman$elm_css$Css$none), + rtfeldman$elm_css$Css$padding( + rtfeldman$elm_css$Css$px(20)), + rtfeldman$elm_css$Css$overflowY(rtfeldman$elm_css$Css$scroll), + rtfeldman$elm_css$Css$height( + rtfeldman$elm_css$Css$px(250)) + ])) + ]), + A2( + elm$core$List$map, + author$project$Main$addWordItem, + A2(author$project$Main$filterWordList, model.V, wordList))) + ])); + } else { + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$marginTop( + rtfeldman$elm_css$Css$px(125)) + ])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('Loading ...') + ])) + ])); + } +}; +var rtfeldman$elm_css$Css$batch = rtfeldman$elm_css$Css$Preprocess$ApplyStyles; +var rtfeldman$elm_css$Css$minHeight = rtfeldman$elm_css$Css$prop1('min-height'); +var author$project$Theme$Elements$bodyStyle = rtfeldman$elm_css$Css$batch( + _List_fromArray( + [ + rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.s.cF), + rtfeldman$elm_css$Css$height( + rtfeldman$elm_css$Css$pct(100)), + rtfeldman$elm_css$Css$minHeight( + rtfeldman$elm_css$Css$pct(100)) + ])); +var rtfeldman$elm_css$Css$top = rtfeldman$elm_css$Css$prop1('top'); +var author$project$Theme$Elements$headerStyle = rtfeldman$elm_css$Css$batch( + _List_fromArray( + [ + rtfeldman$elm_css$Css$position(rtfeldman$elm_css$Css$fixed), + rtfeldman$elm_css$Css$top(rtfeldman$elm_css$Css$zero), + rtfeldman$elm_css$Css$width( + rtfeldman$elm_css$Css$pct(100)) + ])); +var rtfeldman$elm_css$Css$bold = {H: 0, B: 'bold'}; +var rtfeldman$elm_css$Css$fontWeight = function (_n0) { + var value = _n0.B; + return A2(rtfeldman$elm_css$Css$property, 'font-weight', value); +}; +var rtfeldman$elm_css$Css$uppercase = {Y: 0, B: 'uppercase'}; +var author$project$Theme$Elements$headerTitle = A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$backgroundColor( + rtfeldman$elm_css$Css$hex('#0a4650')), + rtfeldman$elm_css$Css$height( + rtfeldman$elm_css$Css$px(43)), + rtfeldman$elm_css$Css$displayFlex, + rtfeldman$elm_css$Css$flexDirection(rtfeldman$elm_css$Css$row), + rtfeldman$elm_css$Css$alignItems(rtfeldman$elm_css$Css$center), + rtfeldman$elm_css$Css$justifyContent(rtfeldman$elm_css$Css$center) + ])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [ + rtfeldman$elm_css$Css$fontSize( + rtfeldman$elm_css$Css$px(18)), + rtfeldman$elm_css$Css$fontWeight(rtfeldman$elm_css$Css$bold), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), + rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$uppercase), + rtfeldman$elm_css$Css$margin(rtfeldman$elm_css$Css$zero) + ])) + ]), + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('A Hindu Lexicon') + ])) + ])); +var author$project$Main$view = function (model) { + var activeView = function () { + var _n0 = model.O; + switch (_n0) { + case 4: + return author$project$Main$definitionView(model); + case 0: + return author$project$Main$loadingView; + case 1: + return author$project$Main$searchView(model); + case 3: + return author$project$Main$myWordsView(model); + case 5: + return author$project$Main$helpView( + author$project$Main$LoadDefinitionByWord('karma')); + default: + return A2( + rtfeldman$elm_css$Html$Styled$h1, + _List_Nil, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$text('not implemented') + ])); + } + }(); + return A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [author$project$Theme$Elements$bodyStyle])) + ]), + _List_fromArray( + [ + A2( + rtfeldman$elm_css$Html$Styled$div, + _List_fromArray( + [ + rtfeldman$elm_css$Html$Styled$Attributes$css( + _List_fromArray( + [author$project$Theme$Elements$headerStyle])) + ]), + _List_fromArray( + [ + author$project$Theme$Elements$headerTitle, + author$project$Main$pageNavigation(model.O) + ])), + activeView, + author$project$Main$appNavigation + ])); +}; +var elm$browser$Browser$External = function (a) { + return {$: 1, a: a}; +}; +var elm$browser$Browser$Internal = function (a) { + return {$: 0, a: a}; +}; +var elm$browser$Browser$Dom$NotFound = elm$core$Basics$identity; +var elm$core$Basics$never = function (_n0) { + never: + while (true) { + var nvr = _n0; + var $temp$_n0 = nvr; + _n0 = $temp$_n0; + continue never; + } +}; +var elm$core$Task$Perform = elm$core$Basics$identity; +var elm$core$Task$init = elm$core$Task$succeed(0); +var elm$core$Task$map = F2( + function (func, taskA) { + return A2( + elm$core$Task$andThen, + function (a) { + return elm$core$Task$succeed( + func(a)); + }, + taskA); + }); +var elm$core$Task$map2 = F3( + function (func, taskA, taskB) { + return A2( + elm$core$Task$andThen, + function (a) { + return A2( + elm$core$Task$andThen, + function (b) { + return elm$core$Task$succeed( + A2(func, a, b)); + }, + taskB); + }, + taskA); + }); +var elm$core$Task$sequence = function (tasks) { + return A3( + elm$core$List$foldr, + elm$core$Task$map2(elm$core$List$cons), + elm$core$Task$succeed(_List_Nil), + tasks); +}; +var elm$core$Task$spawnCmd = F2( + function (router, _n0) { + var task = _n0; + return _Scheduler_spawn( + A2( + elm$core$Task$andThen, + elm$core$Platform$sendToApp(router), + task)); + }); +var elm$core$Task$onEffects = F3( + function (router, commands, state) { + return A2( + elm$core$Task$map, + function (_n0) { + return 0; + }, + elm$core$Task$sequence( + A2( + elm$core$List$map, + elm$core$Task$spawnCmd(router), + commands))); + }); +var elm$core$Task$onSelfMsg = F3( + function (_n0, _n1, _n2) { + return elm$core$Task$succeed(0); + }); +var elm$core$Task$cmdMap = F2( + function (tagger, _n0) { + var task = _n0; + return A2(elm$core$Task$map, tagger, task); + }); +_Platform_effectManagers['Task'] = _Platform_createManager(elm$core$Task$init, elm$core$Task$onEffects, elm$core$Task$onSelfMsg, elm$core$Task$cmdMap); +var elm$core$Task$command = _Platform_leaf('Task'); +var elm$core$Task$perform = F2( + function (toMessage, task) { + return elm$core$Task$command( + A2(elm$core$Task$map, toMessage, task)); + }); +var elm$url$Url$Http = 0; +var elm$url$Url$Https = 1; +var elm$core$String$indexes = _String_indexes; +var elm$core$String$left = F2( + function (n, string) { + return (n < 1) ? '' : A3(elm$core$String$slice, 0, n, string); + }); +var elm$core$String$toInt = _String_toInt; +var elm$url$Url$Url = F6( + function (protocol, host, port_, path, query, fragment) { + return {bS: fragment, bU: host, b5: path, b7: port_, cb: protocol, V: query}; + }); +var elm$url$Url$chompBeforePath = F5( + function (protocol, path, params, frag, str) { + if (elm$core$String$isEmpty(str) || A2(elm$core$String$contains, '@', str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, ':', str); + if (!_n0.b) { + return elm$core$Maybe$Just( + A6(elm$url$Url$Url, protocol, str, elm$core$Maybe$Nothing, path, params, frag)); + } else { + if (!_n0.b.b) { + var i = _n0.a; + var _n1 = elm$core$String$toInt( + A2(elm$core$String$dropLeft, i + 1, str)); + if (_n1.$ === 1) { + return elm$core$Maybe$Nothing; + } else { + var port_ = _n1; + return elm$core$Maybe$Just( + A6( + elm$url$Url$Url, + protocol, + A2(elm$core$String$left, i, str), + port_, + path, + params, + frag)); + } + } else { + return elm$core$Maybe$Nothing; + } + } + } + }); +var elm$url$Url$chompBeforeQuery = F4( + function (protocol, params, frag, str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, '/', str); + if (!_n0.b) { + return A5(elm$url$Url$chompBeforePath, protocol, '/', params, frag, str); + } else { + var i = _n0.a; + return A5( + elm$url$Url$chompBeforePath, + protocol, + A2(elm$core$String$dropLeft, i, str), + params, + frag, + A2(elm$core$String$left, i, str)); + } + } + }); +var elm$url$Url$chompBeforeFragment = F3( + function (protocol, frag, str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, '?', str); + if (!_n0.b) { + return A4(elm$url$Url$chompBeforeQuery, protocol, elm$core$Maybe$Nothing, frag, str); + } else { + var i = _n0.a; + return A4( + elm$url$Url$chompBeforeQuery, + protocol, + elm$core$Maybe$Just( + A2(elm$core$String$dropLeft, i + 1, str)), + frag, + A2(elm$core$String$left, i, str)); + } + } + }); +var elm$url$Url$chompAfterProtocol = F2( + function (protocol, str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, '#', str); + if (!_n0.b) { + return A3(elm$url$Url$chompBeforeFragment, protocol, elm$core$Maybe$Nothing, str); + } else { + var i = _n0.a; + return A3( + elm$url$Url$chompBeforeFragment, + protocol, + elm$core$Maybe$Just( + A2(elm$core$String$dropLeft, i + 1, str)), + A2(elm$core$String$left, i, str)); + } + } + }); +var elm$url$Url$fromString = function (str) { + return A2(elm$core$String$startsWith, 'http://', str) ? A2( + elm$url$Url$chompAfterProtocol, + 0, + A2(elm$core$String$dropLeft, 7, str)) : (A2(elm$core$String$startsWith, 'https://', str) ? A2( + elm$url$Url$chompAfterProtocol, + 1, + A2(elm$core$String$dropLeft, 8, str)) : elm$core$Maybe$Nothing); +}; +var elm$browser$Browser$element = _Browser_element; +var elm$virtual_dom$VirtualDom$node = function (tag) { + return _VirtualDom_node( + _VirtualDom_noScript(tag)); +}; +var elm$virtual_dom$VirtualDom$keyedNode = function (tag) { + return _VirtualDom_keyedNode( + _VirtualDom_noScript(tag)); +}; +var elm$virtual_dom$VirtualDom$keyedNodeNS = F2( + function (namespace, tag) { + return A2( + _VirtualDom_keyedNodeNS, + namespace, + _VirtualDom_noScript(tag)); + }); +var elm$virtual_dom$VirtualDom$nodeNS = function (tag) { + return _VirtualDom_nodeNS( + _VirtualDom_noScript(tag)); +}; +var rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles = F2( + function (_n0, styles) { + var newStyles = _n0.b; + var classname = _n0.c; + return elm$core$List$isEmpty(newStyles) ? styles : A3(elm$core$Dict$insert, classname, newStyles, styles); + }); +var rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute = function (_n0) { + var val = _n0.a; + return val; +}; +var rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml = F2( + function (_n6, _n7) { + var key = _n6.a; + var html = _n6.b; + var pairs = _n7.a; + var styles = _n7.b; + switch (html.$) { + case 4: + var vdom = html.a; + return _Utils_Tuple2( + A2( + elm$core$List$cons, + _Utils_Tuple2(key, vdom), + pairs), + styles); + case 0: + var elemType = html.a; + var properties = html.b; + var children = html.c; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n9 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n9.a; + var finalStyles = _n9.b; + var vdom = A3( + elm$virtual_dom$VirtualDom$node, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2( + elm$core$List$cons, + _Utils_Tuple2(key, vdom), + pairs), + finalStyles); + case 1: + var ns = html.a; + var elemType = html.b; + var properties = html.c; + var children = html.d; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n10 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n10.a; + var finalStyles = _n10.b; + var vdom = A4( + elm$virtual_dom$VirtualDom$nodeNS, + ns, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2( + elm$core$List$cons, + _Utils_Tuple2(key, vdom), + pairs), + finalStyles); + case 2: + var elemType = html.a; + var properties = html.b; + var children = html.c; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n11 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n11.a; + var finalStyles = _n11.b; + var vdom = A3( + elm$virtual_dom$VirtualDom$keyedNode, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2( + elm$core$List$cons, + _Utils_Tuple2(key, vdom), + pairs), + finalStyles); + default: + var ns = html.a; + var elemType = html.b; + var properties = html.c; + var children = html.d; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n12 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n12.a; + var finalStyles = _n12.b; + var vdom = A4( + elm$virtual_dom$VirtualDom$keyedNodeNS, + ns, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2( + elm$core$List$cons, + _Utils_Tuple2(key, vdom), + pairs), + finalStyles); + } + }); +var rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml = F2( + function (html, _n0) { + var nodes = _n0.a; + var styles = _n0.b; + switch (html.$) { + case 4: + var vdomNode = html.a; + return _Utils_Tuple2( + A2(elm$core$List$cons, vdomNode, nodes), + styles); + case 0: + var elemType = html.a; + var properties = html.b; + var children = html.c; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n2 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n2.a; + var finalStyles = _n2.b; + var vdomNode = A3( + elm$virtual_dom$VirtualDom$node, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2(elm$core$List$cons, vdomNode, nodes), + finalStyles); + case 1: + var ns = html.a; + var elemType = html.b; + var properties = html.c; + var children = html.d; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n3 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n3.a; + var finalStyles = _n3.b; + var vdomNode = A4( + elm$virtual_dom$VirtualDom$nodeNS, + ns, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2(elm$core$List$cons, vdomNode, nodes), + finalStyles); + case 2: + var elemType = html.a; + var properties = html.b; + var children = html.c; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n4 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n4.a; + var finalStyles = _n4.b; + var vdomNode = A3( + elm$virtual_dom$VirtualDom$keyedNode, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2(elm$core$List$cons, vdomNode, nodes), + finalStyles); + default: + var ns = html.a; + var elemType = html.b; + var properties = html.c; + var children = html.d; + var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); + var _n5 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, + _Utils_Tuple2(_List_Nil, combinedStyles), + children); + var childNodes = _n5.a; + var finalStyles = _n5.b; + var vdomNode = A4( + elm$virtual_dom$VirtualDom$keyedNodeNS, + ns, + elemType, + A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), + elm$core$List$reverse(childNodes)); + return _Utils_Tuple2( + A2(elm$core$List$cons, vdomNode, nodes), + finalStyles); + } + }); +var elm$core$Dict$singleton = F2( + function (key, value) { + return A5(elm$core$Dict$RBNode_elm_builtin, 1, key, value, elm$core$Dict$RBEmpty_elm_builtin, elm$core$Dict$RBEmpty_elm_builtin); + }); +var rtfeldman$elm_css$VirtualDom$Styled$stylesFromPropertiesHelp = F2( + function (candidate, properties) { + stylesFromPropertiesHelp: + while (true) { + if (!properties.b) { + return candidate; + } else { + var _n1 = properties.a; + var styles = _n1.b; + var classname = _n1.c; + var rest = properties.b; + if (elm$core$String$isEmpty(classname)) { + var $temp$candidate = candidate, + $temp$properties = rest; + candidate = $temp$candidate; + properties = $temp$properties; + continue stylesFromPropertiesHelp; + } else { + var $temp$candidate = elm$core$Maybe$Just( + _Utils_Tuple2(classname, styles)), + $temp$properties = rest; + candidate = $temp$candidate; + properties = $temp$properties; + continue stylesFromPropertiesHelp; + } + } + } + }); +var rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties = function (properties) { + var _n0 = A2(rtfeldman$elm_css$VirtualDom$Styled$stylesFromPropertiesHelp, elm$core$Maybe$Nothing, properties); + if (_n0.$ === 1) { + return elm$core$Dict$empty; + } else { + var _n1 = _n0.a; + var classname = _n1.a; + var styles = _n1.b; + return A2(elm$core$Dict$singleton, classname, styles); + } +}; +var rtfeldman$elm_css$Css$Structure$ClassSelector = function (a) { + return {$: 0, a: a}; +}; +var rtfeldman$elm_css$VirtualDom$Styled$snippetFromPair = function (_n0) { + var classname = _n0.a; + var styles = _n0.b; + return A2( + rtfeldman$elm_css$VirtualDom$Styled$makeSnippet, + styles, + rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence( + _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$ClassSelector(classname) + ]))); +}; +var rtfeldman$elm_css$VirtualDom$Styled$toDeclaration = function (dict) { + return rtfeldman$elm_css$Css$Preprocess$Resolve$compile( + elm$core$List$singleton( + rtfeldman$elm_css$Css$Preprocess$stylesheet( + A2( + elm$core$List$map, + rtfeldman$elm_css$VirtualDom$Styled$snippetFromPair, + elm$core$Dict$toList(dict))))); +}; +var rtfeldman$elm_css$VirtualDom$Styled$toStyleNode = function (styles) { + return A3( + elm$virtual_dom$VirtualDom$node, + 'style', + _List_Nil, + elm$core$List$singleton( + elm$virtual_dom$VirtualDom$text( + rtfeldman$elm_css$VirtualDom$Styled$toDeclaration(styles)))); +}; +var rtfeldman$elm_css$VirtualDom$Styled$unstyle = F3( + function (elemType, properties, children) { + var unstyledProperties = A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); + var initialStyles = rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); + var _n0 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, + _Utils_Tuple2(_List_Nil, initialStyles), + children); + var childNodes = _n0.a; + var styles = _n0.b; + var styleNode = rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(styles); + return A3( + elm$virtual_dom$VirtualDom$node, + elemType, + unstyledProperties, + A2( + elm$core$List$cons, + styleNode, + elm$core$List$reverse(childNodes))); + }); +var rtfeldman$elm_css$VirtualDom$Styled$containsKey = F2( + function (key, pairs) { + containsKey: + while (true) { + if (!pairs.b) { + return false; + } else { + var _n1 = pairs.a; + var str = _n1.a; + var rest = pairs.b; + if (_Utils_eq(key, str)) { + return true; + } else { + var $temp$key = key, + $temp$pairs = rest; + key = $temp$key; + pairs = $temp$pairs; + continue containsKey; + } + } + } + }); +var rtfeldman$elm_css$VirtualDom$Styled$getUnusedKey = F2( + function (_default, pairs) { + getUnusedKey: + while (true) { + if (!pairs.b) { + return _default; + } else { + var _n1 = pairs.a; + var firstKey = _n1.a; + var rest = pairs.b; + var newKey = '_' + firstKey; + if (A2(rtfeldman$elm_css$VirtualDom$Styled$containsKey, newKey, rest)) { + var $temp$default = newKey, + $temp$pairs = rest; + _default = $temp$default; + pairs = $temp$pairs; + continue getUnusedKey; + } else { + return newKey; + } + } + } + }); +var rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode = F2( + function (allStyles, keyedChildNodes) { + var styleNodeKey = A2(rtfeldman$elm_css$VirtualDom$Styled$getUnusedKey, '_', keyedChildNodes); + var finalNode = rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(allStyles); + return _Utils_Tuple2(styleNodeKey, finalNode); + }); +var rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyed = F3( + function (elemType, properties, keyedChildren) { + var unstyledProperties = A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); + var initialStyles = rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); + var _n0 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, + _Utils_Tuple2(_List_Nil, initialStyles), + keyedChildren); + var keyedChildNodes = _n0.a; + var styles = _n0.b; + var keyedStyleNode = A2(rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode, styles, keyedChildNodes); + return A3( + elm$virtual_dom$VirtualDom$keyedNode, + elemType, + unstyledProperties, + A2( + elm$core$List$cons, + keyedStyleNode, + elm$core$List$reverse(keyedChildNodes))); + }); +var rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyedNS = F4( + function (ns, elemType, properties, keyedChildren) { + var unstyledProperties = A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); + var initialStyles = rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); + var _n0 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, + _Utils_Tuple2(_List_Nil, initialStyles), + keyedChildren); + var keyedChildNodes = _n0.a; + var styles = _n0.b; + var keyedStyleNode = A2(rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode, styles, keyedChildNodes); + return A4( + elm$virtual_dom$VirtualDom$keyedNodeNS, + ns, + elemType, + unstyledProperties, + A2( + elm$core$List$cons, + keyedStyleNode, + elm$core$List$reverse(keyedChildNodes))); + }); +var rtfeldman$elm_css$VirtualDom$Styled$unstyleNS = F4( + function (ns, elemType, properties, children) { + var unstyledProperties = A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); + var initialStyles = rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); + var _n0 = A3( + elm$core$List$foldl, + rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, + _Utils_Tuple2(_List_Nil, initialStyles), + children); + var childNodes = _n0.a; + var styles = _n0.b; + var styleNode = rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(styles); + return A4( + elm$virtual_dom$VirtualDom$nodeNS, + ns, + elemType, + unstyledProperties, + A2( + elm$core$List$cons, + styleNode, + elm$core$List$reverse(childNodes))); + }); +var rtfeldman$elm_css$VirtualDom$Styled$toUnstyled = function (vdom) { + switch (vdom.$) { + case 4: + var plainNode = vdom.a; + return plainNode; + case 0: + var elemType = vdom.a; + var properties = vdom.b; + var children = vdom.c; + return A3(rtfeldman$elm_css$VirtualDom$Styled$unstyle, elemType, properties, children); + case 1: + var ns = vdom.a; + var elemType = vdom.b; + var properties = vdom.c; + var children = vdom.d; + return A4(rtfeldman$elm_css$VirtualDom$Styled$unstyleNS, ns, elemType, properties, children); + case 2: + var elemType = vdom.a; + var properties = vdom.b; + var children = vdom.c; + return A3(rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyed, elemType, properties, children); + default: + var ns = vdom.a; + var elemType = vdom.b; + var properties = vdom.c; + var children = vdom.d; + return A4(rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyedNS, ns, elemType, properties, children); + } +}; +var rtfeldman$elm_css$Html$Styled$toUnstyled = rtfeldman$elm_css$VirtualDom$Styled$toUnstyled; +var author$project$Main$main = elm$browser$Browser$element( + { + cP: author$project$Main$init, + c0: author$project$Main$subscriptions, + c2: author$project$Main$update, + c5: A2(elm$core$Basics$composeR, author$project$Main$view, rtfeldman$elm_css$Html$Styled$toUnstyled) + }); +_Platform_export({'Main':{'init':author$project$Main$main( + elm$json$Json$Decode$list( + A2( + elm$json$Json$Decode$andThen, + function (word) { + return A2( + elm$json$Json$Decode$andThen, + function (id) { + return elm$json$Json$Decode$succeed( + {al: id, _: word}); + }, + A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); + }, + A2(elm$json$Json$Decode$field, 'word', elm$json$Json$Decode$string))))(0)}});}(this)); \ No newline at end of file diff --git a/modules/lexicon/web/elm-package.json b/modules/lexicon/web/elm-package.json new file mode 100644 index 00000000..f5ba1c5a --- /dev/null +++ b/modules/lexicon/web/elm-package.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "summary": "helpful summary of your project, less than 80 characters", + "repository": "https://github.com/user/project.git", + "license": "BSD3", + "source-directories": [ + "." + ], + "exposed-modules": [], + "dependencies": { + "elm-lang/core": "5.1.1 <= v < 6.0.0", + "elm-lang/html": "2.0.0 <= v < 3.0.0" + }, + "elm-version": "0.18.0 <= v < 0.19.0" +} diff --git a/modules/lexicon/web/index.js b/modules/lexicon/web/index.js index d4e85bad..83f4ae9b 100755 --- a/modules/lexicon/web/index.js +++ b/modules/lexicon/web/index.js @@ -16,7 +16,10 @@ function boot() { } } - window.app = Elm.Main.embed(document.getElementById('root'), list) + window.app = Elm.Main.init({ + node: document.getElementById('root'), + flags: list + }) // Ports related code below diff --git a/web-modules/lexicon/build/bundle.js b/web-modules/lexicon/build/bundle.js index 1cce3566..914de8b1 100644 --- a/web-modules/lexicon/build/bundle.js +++ b/web-modules/lexicon/build/bundle.js @@ -77,14 +77,14 @@ function A9(fun, a, b, c, d, e, f, g, h, i) { return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i); } -console.warn('Compiled in DEV mode. Follow the advice at https://elm-lang.org/0.19.0/optimize for better performance and smaller assets.'); -var _List_Nil_UNUSED = { $: 0 }; -var _List_Nil = { $: '[]' }; -function _List_Cons_UNUSED(hd, tl) { return { $: 1, a: hd, b: tl }; } -function _List_Cons(hd, tl) { return { $: '::', a: hd, b: tl }; } +var _List_Nil = { $: 0 }; +var _List_Nil_UNUSED = { $: '[]' }; + +function _List_Cons(hd, tl) { return { $: 1, a: hd, b: tl }; } +function _List_Cons_UNUSED(hd, tl) { return { $: '::', a: hd, b: tl }; } var _List_cons = F2(_List_Cons); @@ -194,7 +194,7 @@ function _Utils_eqHelp(x, y, depth, stack) return false; } - /**/ + /**_UNUSED/ if (x.$ === 'Set_elm_builtin') { x = elm$core$Set$toList(x); @@ -207,7 +207,7 @@ function _Utils_eqHelp(x, y, depth, stack) } //*/ - /**_UNUSED/ + /**/ if (x.$ < 0) { x = elm$core$Dict$toList(x); @@ -242,7 +242,7 @@ function _Utils_cmp(x, y, ord) return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1; } - /**/ + /**_UNUSED/ if (x instanceof String) { var a = x.valueOf(); @@ -251,10 +251,10 @@ function _Utils_cmp(x, y, ord) } //*/ - /**_UNUSED/ + /**/ if (!x.$) //*/ - /**/ + /**_UNUSED/ if (x.$[0] === '#') //*/ { @@ -284,17 +284,17 @@ var _Utils_compare = F2(function(x, y) // COMMON VALUES -var _Utils_Tuple0_UNUSED = 0; -var _Utils_Tuple0 = { $: '#0' }; +var _Utils_Tuple0 = 0; +var _Utils_Tuple0_UNUSED = { $: '#0' }; -function _Utils_Tuple2_UNUSED(a, b) { return { a: a, b: b }; } -function _Utils_Tuple2(a, b) { return { $: '#2', a: a, b: b }; } +function _Utils_Tuple2(a, b) { return { a: a, b: b }; } +function _Utils_Tuple2_UNUSED(a, b) { return { $: '#2', a: a, b: b }; } -function _Utils_Tuple3_UNUSED(a, b, c) { return { a: a, b: b, c: c }; } -function _Utils_Tuple3(a, b, c) { return { $: '#3', a: a, b: b, c: c }; } +function _Utils_Tuple3(a, b, c) { return { a: a, b: b, c: c }; } +function _Utils_Tuple3_UNUSED(a, b, c) { return { $: '#3', a: a, b: b, c: c }; } -function _Utils_chr_UNUSED(c) { return c; } -function _Utils_chr(c) { return new String(c); } +function _Utils_chr(c) { return c; } +function _Utils_chr_UNUSED(c) { return new String(c); } // RECORDS @@ -499,12 +499,12 @@ var _JsArray_appendN = F3(function(n, dest, source) // LOG -var _Debug_log_UNUSED = F2(function(tag, value) +var _Debug_log = F2(function(tag, value) { return value; }); -var _Debug_log = F2(function(tag, value) +var _Debug_log_UNUSED = F2(function(tag, value) { console.log(tag + ': ' + _Debug_toString(value)); return value; @@ -530,12 +530,12 @@ function _Debug_todoCase(moduleName, region, value) // TO STRING -function _Debug_toString_UNUSED(value) +function _Debug_toString(value) { return ''; } -function _Debug_toString(value) +function _Debug_toString_UNUSED(value) { return _Debug_toAnsiString(false, value); } @@ -706,13 +706,13 @@ function _Debug_internalColor(ansi, string) // CRASH -function _Debug_crash_UNUSED(identifier) +function _Debug_crash(identifier) { throw new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md'); } -function _Debug_crash(identifier, fact1, fact2, fact3, fact4) +function _Debug_crash_UNUSED(identifier, fact1, fact2, fact3, fact4) { switch(identifier) { @@ -770,11 +770,11 @@ function _Debug_crash(identifier, fact1, fact2, fact3, fact4) function _Debug_regionToString(region) { - if (region.start.line === region.end.line) + if (region.bo.aI === region.bN.aI) { - return 'on line ' + region.start.line; + return 'on line ' + region.bo.aI; } - return 'on lines ' + region.start.line + ' through ' + region.end.line; + return 'on lines ' + region.bo.aI + ' through ' + region.bN.aI; } @@ -1200,7 +1200,7 @@ function _String_fromList(chars) -/**/ +/**_UNUSED/ function _Json_errorToString(error) { return elm$json$Json$Decode$errorToString(error); @@ -1600,11 +1600,11 @@ var _Json_encode = F2(function(indentLevel, value) return JSON.stringify(_Json_unwrap(value), null, indentLevel) + ''; }); -function _Json_wrap(value) { return { $: 0, a: value }; } -function _Json_unwrap(value) { return value.a; } +function _Json_wrap_UNUSED(value) { return { $: 0, a: value }; } +function _Json_unwrap_UNUSED(value) { return value.a; } -function _Json_wrap_UNUSED(value) { return value; } -function _Json_unwrap_UNUSED(value) { return value; } +function _Json_wrap(value) { return value; } +function _Json_unwrap(value) { return value; } function _Json_emptyArray() { return []; } function _Json_emptyObject() { return {}; } @@ -1841,9 +1841,9 @@ var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args) return _Platform_initialize( flagDecoder, args, - impl.init, - impl.update, - impl.subscriptions, + impl.cP, + impl.c2, + impl.c0, function() { return function() {} } ); }); @@ -1856,7 +1856,7 @@ var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args) function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder) { var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined)); - elm$core$Result$isOk(result) || _Debug_crash(2 /**/, _Json_errorToString(result.a) /**/); + elm$core$Result$isOk(result) || _Debug_crash(2 /**_UNUSED/, _Json_errorToString(result.a) /**/); var managers = {}; result = init(result.a); var model = result.a; @@ -2255,7 +2255,7 @@ function _Platform_setupIncomingPort(name, sendToApp) // -function _Platform_export_UNUSED(exports) +function _Platform_export(exports) { scope['Elm'] ? _Platform_mergeExportsProd(scope['Elm'], exports) @@ -2276,7 +2276,7 @@ function _Platform_mergeExportsProd(obj, exports) } -function _Platform_export(exports) +function _Platform_export_UNUSED(exports) { scope['Elm'] ? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports) @@ -2399,10 +2399,10 @@ var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args { // NOTE: this function needs _Platform_export available to work - /**_UNUSED/ + /**/ var node = args['node']; //*/ - /**/ + /**_UNUSED/ var node = args && args['node'] ? args['node'] : _Debug_crash(0); //*/ @@ -2657,24 +2657,24 @@ function _VirtualDom_noInnerHtmlOrFormAction(key) return key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key; } -function _VirtualDom_noJavaScriptUri_UNUSED(value) +function _VirtualDom_noJavaScriptUri(value) { return /^javascript:/i.test(value.replace(/\s/g,'')) ? '' : value; } -function _VirtualDom_noJavaScriptUri(value) +function _VirtualDom_noJavaScriptUri_UNUSED(value) { return /^javascript:/i.test(value.replace(/\s/g,'')) ? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")' : value; } -function _VirtualDom_noJavaScriptOrHtmlUri_UNUSED(value) +function _VirtualDom_noJavaScriptOrHtmlUri(value) { return /^\s*(javascript:|data:text\/html)/i.test(value) ? '' : value; } -function _VirtualDom_noJavaScriptOrHtmlUri(value) +function _VirtualDom_noJavaScriptOrHtmlUri_UNUSED(value) { return /^\s*(javascript:|data:text\/html)/i.test(value) ? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")' @@ -2726,9 +2726,9 @@ var _VirtualDom_mapEventTuple = F2(function(func, tuple) var _VirtualDom_mapEventRecord = F2(function(func, record) { return { - message: func(record.message), - stopPropagation: record.stopPropagation, - preventDefault: record.preventDefault + J: func(record.J), + bp: record.bp, + bm: record.bm } }); @@ -2996,11 +2996,11 @@ function _VirtualDom_makeCallback(eventNode, initialHandler) // 3 = Custom var value = result.a; - var message = !tag ? value : tag < 3 ? value.a : value.message; - var stopPropagation = tag == 1 ? value.b : tag == 3 && value.stopPropagation; + var message = !tag ? value : tag < 3 ? value.a : value.J; + var stopPropagation = tag == 1 ? value.b : tag == 3 && value.bp; var currentEventNode = ( stopPropagation && event.stopPropagation(), - (tag == 2 ? value.b : tag == 3 && value.preventDefault) && event.preventDefault(), + (tag == 2 ? value.b : tag == 3 && value.bm) && event.preventDefault(), eventNode ); var tagger; @@ -3950,15 +3950,15 @@ var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debug return _Platform_initialize( flagDecoder, args, - impl.init, - impl.update, - impl.subscriptions, + impl.cP, + impl.c2, + impl.c0, function(sendToApp, initialModel) { - var view = impl.view; - /**_UNUSED/ + var view = impl.c5; + /**/ var domNode = args['node']; //*/ - /**/ + /**_UNUSED/ var domNode = args && args['node'] ? args['node'] : _Debug_crash(0); //*/ var currNode = _VirtualDom_virtualize(domNode); @@ -3986,12 +3986,12 @@ var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, deb return _Platform_initialize( flagDecoder, args, - impl.init, - impl.update, - impl.subscriptions, + impl.cP, + impl.c2, + impl.c0, function(sendToApp, initialModel) { - var divertHrefToApp = impl.setup && impl.setup(sendToApp) - var view = impl.view; + var divertHrefToApp = impl.aM && impl.aM(sendToApp) + var view = impl.c5; var title = _VirtualDom_doc.title; var bodyNode = _VirtualDom_doc.body; var currNode = _VirtualDom_virtualize(bodyNode); @@ -3999,12 +3999,12 @@ var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, deb { _VirtualDom_divertHrefToApp = divertHrefToApp; var doc = view(model); - var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.body); + var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.cy); var patches = _VirtualDom_diff(currNode, nextNode); bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp); currNode = nextNode; _VirtualDom_divertHrefToApp = 0; - (title !== doc.title) && (_VirtualDom_doc.title = title = doc.title); + (title !== doc.c1) && (_VirtualDom_doc.title = title = doc.c1); }); } ); @@ -4055,12 +4055,12 @@ function _Browser_makeAnimator(model, draw) function _Browser_application(impl) { - var onUrlChange = impl.onUrlChange; - var onUrlRequest = impl.onUrlRequest; + var onUrlChange = impl.cU; + var onUrlRequest = impl.cV; var key = function() { key.a(onUrlChange(_Browser_getUrl())); }; return _Browser_document({ - setup: function(sendToApp) + aM: function(sendToApp) { key.a = sendToApp; _Browser_window.addEventListener('popstate', key); @@ -4076,9 +4076,9 @@ function _Browser_application(impl) var next = elm$url$Url$fromString(href).a; sendToApp(onUrlRequest( (next - && curr.protocol === next.protocol - && curr.host === next.host - && curr.port_.a === next.port_.a + && curr.cb === next.cb + && curr.bU === next.bU + && curr.b7.a === next.b7.a ) ? elm$browser$Browser$Internal(next) : elm$browser$Browser$External(href) @@ -4086,13 +4086,13 @@ function _Browser_application(impl) } }); }, - init: function(flags) + cP: function(flags) { - return A3(impl.init, flags, _Browser_getUrl(), key); + return A3(impl.cP, flags, _Browser_getUrl(), key); }, - view: impl.view, - update: impl.update, - subscriptions: impl.subscriptions + c5: impl.c5, + c2: impl.c2, + c0: impl.c0 }); } @@ -4158,17 +4158,17 @@ var _Browser_decodeEvent = F2(function(decoder, event) function _Browser_visibilityInfo() { return (typeof _VirtualDom_doc.hidden !== 'undefined') - ? { hidden: 'hidden', change: 'visibilitychange' } + ? { cM: 'hidden', aE: 'visibilitychange' } : (typeof _VirtualDom_doc.mozHidden !== 'undefined') - ? { hidden: 'mozHidden', change: 'mozvisibilitychange' } + ? { cM: 'mozHidden', aE: 'mozvisibilitychange' } : (typeof _VirtualDom_doc.msHidden !== 'undefined') - ? { hidden: 'msHidden', change: 'msvisibilitychange' } + ? { cM: 'msHidden', aE: 'msvisibilitychange' } : (typeof _VirtualDom_doc.webkitHidden !== 'undefined') - ? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' } - : { hidden: 'hidden', change: 'visibilitychange' }; + ? { cM: 'webkitHidden', aE: 'webkitvisibilitychange' } + : { cM: 'hidden', aE: 'visibilitychange' }; } @@ -4249,12 +4249,12 @@ var _Browser_call = F2(function(functionName, id) function _Browser_getViewport() { return { - scene: _Browser_getScene(), - viewport: { - x: _Browser_window.pageXOffset, - y: _Browser_window.pageYOffset, - width: _Browser_doc.documentElement.clientWidth, - height: _Browser_doc.documentElement.clientHeight + ch: _Browser_getScene(), + ct: { + ba: _Browser_window.pageXOffset, + bb: _Browser_window.pageYOffset, + aA: _Browser_doc.documentElement.clientWidth, + ak: _Browser_doc.documentElement.clientHeight } }; } @@ -4264,8 +4264,8 @@ function _Browser_getScene() var body = _Browser_doc.body; var elem = _Browser_doc.documentElement; return { - width: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth), - height: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight) + aA: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth), + ak: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight) }; } @@ -4288,15 +4288,15 @@ function _Browser_getViewportOf(id) return _Browser_withNode(id, function(node) { return { - scene: { - width: node.scrollWidth, - height: node.scrollHeight + ch: { + aA: node.scrollWidth, + ak: node.scrollHeight }, - viewport: { - x: node.scrollLeft, - y: node.scrollTop, - width: node.clientWidth, - height: node.clientHeight + ct: { + ba: node.scrollLeft, + bb: node.scrollTop, + aA: node.clientWidth, + ak: node.clientHeight } }; }); @@ -4326,18 +4326,18 @@ function _Browser_getElement(id) var x = _Browser_window.pageXOffset; var y = _Browser_window.pageYOffset; return { - scene: _Browser_getScene(), - viewport: { - x: x, - y: y, - width: _Browser_doc.documentElement.clientWidth, - height: _Browser_doc.documentElement.clientHeight + ch: _Browser_getScene(), + ct: { + ba: x, + bb: y, + aA: _Browser_doc.documentElement.clientWidth, + ak: _Browser_doc.documentElement.clientHeight }, - element: { - x: x + rect.left, - y: y + rect.top, - width: rect.width, - height: rect.height + cI: { + ba: x + rect.left, + bb: y + rect.top, + aA: rect.width, + ak: rect.height } }; }); @@ -4372,23 +4372,23 @@ function _Browser_load(url) } })); } -var elm$core$Maybe$Nothing = {$: 'Nothing'}; -var author$project$Lexicon$initialModel = {currentWord: elm$core$Maybe$Nothing, errorMessage: elm$core$Maybe$Nothing, wordList: elm$core$Maybe$Nothing}; -var author$project$Main$SearchView = {$: 'SearchView'}; -var author$project$Main$initialModel = {currentPage: author$project$Main$SearchView, errorMessage: elm$core$Maybe$Nothing, lexiconModel: author$project$Lexicon$initialModel, query: '', savedWords: elm$core$Maybe$Nothing, searchInput: elm$core$Maybe$Nothing}; +var elm$core$Maybe$Nothing = {$: 1}; +var author$project$Lexicon$initialModel = {aF: elm$core$Maybe$Nothing, af: elm$core$Maybe$Nothing, aV: elm$core$Maybe$Nothing}; +var author$project$Main$SearchView = 1; +var author$project$Main$initialModel = {O: 1, af: elm$core$Maybe$Nothing, u: author$project$Lexicon$initialModel, V: '', as: elm$core$Maybe$Nothing, ci: elm$core$Maybe$Nothing}; var elm$core$Array$branchFactor = 32; var elm$core$Array$Array_elm_builtin = F4( function (a, b, c, d) { - return {$: 'Array_elm_builtin', a: a, b: b, c: c, d: d}; + return {$: 0, a: a, b: b, c: c, d: d}; }); -var elm$core$Basics$EQ = {$: 'EQ'}; -var elm$core$Basics$GT = {$: 'GT'}; -var elm$core$Basics$LT = {$: 'LT'}; +var elm$core$Basics$EQ = 1; +var elm$core$Basics$GT = 2; +var elm$core$Basics$LT = 0; var elm$core$Dict$foldr = F3( function (func, acc, t) { foldr: while (true) { - if (t.$ === 'RBEmpty_elm_builtin') { + if (t.$ === -2) { return acc; } else { var key = t.b; @@ -4434,7 +4434,7 @@ var elm$core$Dict$keys = function (dict) { dict); }; var elm$core$Set$toList = function (_n0) { - var dict = _n0.a; + var dict = _n0; return elm$core$Dict$keys(dict); }; var elm$core$Elm$JsArray$foldr = _JsArray_foldr; @@ -4444,7 +4444,7 @@ var elm$core$Array$foldr = F3( var tail = _n0.d; var helper = F2( function (node, acc) { - if (node.$ === 'SubTree') { + if (!node.$) { var subTree = node.a; return A3(elm$core$Elm$JsArray$foldr, helper, acc, subTree); } else { @@ -4473,10 +4473,10 @@ var elm$core$Array$shiftStep = elm$core$Basics$ceiling( var elm$core$Elm$JsArray$empty = _JsArray_empty; var elm$core$Array$empty = A4(elm$core$Array$Array_elm_builtin, 0, elm$core$Array$shiftStep, elm$core$Elm$JsArray$empty, elm$core$Elm$JsArray$empty); var elm$core$Array$Leaf = function (a) { - return {$: 'Leaf', a: a}; + return {$: 1, a: a}; }; var elm$core$Array$SubTree = function (a) { - return {$: 'SubTree', a: a}; + return {$: 0, a: a}; }; var elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList; var elm$core$List$foldl = F3( @@ -4564,28 +4564,28 @@ var elm$core$Basics$sub = _Basics_sub; var elm$core$Elm$JsArray$length = _JsArray_length; var elm$core$Array$builderToArray = F2( function (reverseNodeList, builder) { - if (!builder.nodeListSize) { + if (!builder.k) { return A4( elm$core$Array$Array_elm_builtin, - elm$core$Elm$JsArray$length(builder.tail), + elm$core$Elm$JsArray$length(builder.m), elm$core$Array$shiftStep, elm$core$Elm$JsArray$empty, - builder.tail); + builder.m); } else { - var treeLen = builder.nodeListSize * elm$core$Array$branchFactor; + var treeLen = builder.k * elm$core$Array$branchFactor; var depth = elm$core$Basics$floor( A2(elm$core$Basics$logBase, elm$core$Array$branchFactor, treeLen - 1)); - var correctNodeList = reverseNodeList ? elm$core$List$reverse(builder.nodeList) : builder.nodeList; - var tree = A2(elm$core$Array$treeFromBuilder, correctNodeList, builder.nodeListSize); + var correctNodeList = reverseNodeList ? elm$core$List$reverse(builder.n) : builder.n; + var tree = A2(elm$core$Array$treeFromBuilder, correctNodeList, builder.k); return A4( elm$core$Array$Array_elm_builtin, - elm$core$Elm$JsArray$length(builder.tail) + treeLen, + elm$core$Elm$JsArray$length(builder.m) + treeLen, A2(elm$core$Basics$max, 5, depth * elm$core$Array$shiftStep), tree, - builder.tail); + builder.m); } }); -var elm$core$Basics$False = {$: 'False'}; +var elm$core$Basics$False = 1; var elm$core$Basics$idiv = _Basics_idiv; var elm$core$Basics$lt = _Utils_lt; var elm$core$Elm$JsArray$initialize = _JsArray_initialize; @@ -4597,7 +4597,7 @@ var elm$core$Array$initializeHelp = F5( return A2( elm$core$Array$builderToArray, false, - {nodeList: nodeList, nodeListSize: (len / elm$core$Array$branchFactor) | 0, tail: tail}); + {n: nodeList, k: (len / elm$core$Array$branchFactor) | 0, m: tail}); } else { var leaf = elm$core$Array$Leaf( A3(elm$core$Elm$JsArray$initialize, elm$core$Array$branchFactor, fromIndex, fn)); @@ -4629,17 +4629,17 @@ var elm$core$Array$initialize = F2( } }); var elm$core$Maybe$Just = function (a) { - return {$: 'Just', a: a}; + return {$: 0, a: a}; }; var elm$core$Result$Err = function (a) { - return {$: 'Err', a: a}; + return {$: 1, a: a}; }; var elm$core$Result$Ok = function (a) { - return {$: 'Ok', a: a}; + return {$: 0, a: a}; }; -var elm$core$Basics$True = {$: 'True'}; +var elm$core$Basics$True = 0; var elm$core$Result$isOk = function (result) { - if (result.$ === 'Ok') { + if (!result.$) { return true; } else { return false; @@ -4647,18 +4647,18 @@ var elm$core$Result$isOk = function (result) { }; var elm$json$Json$Decode$Failure = F2( function (a, b) { - return {$: 'Failure', a: a, b: b}; + return {$: 3, a: a, b: b}; }); var elm$json$Json$Decode$Field = F2( function (a, b) { - return {$: 'Field', a: a, b: b}; + return {$: 0, a: a, b: b}; }); var elm$json$Json$Decode$Index = F2( function (a, b) { - return {$: 'Index', a: a, b: b}; + return {$: 1, a: a, b: b}; }); var elm$json$Json$Decode$OneOf = function (a) { - return {$: 'OneOf', a: a}; + return {$: 2, a: a}; }; var elm$core$Basics$and = _Basics_and; var elm$core$Basics$append = _Utils_append; @@ -4760,12 +4760,12 @@ var elm$json$Json$Decode$errorToStringHelp = F2( errorToStringHelp: while (true) { switch (error.$) { - case 'Field': + case 0: var f = error.a; var err = error.b; var isSimple = function () { var _n1 = elm$core$String$uncons(f); - if (_n1.$ === 'Nothing') { + if (_n1.$ === 1) { return false; } else { var _n2 = _n1.a; @@ -4780,7 +4780,7 @@ var elm$json$Json$Decode$errorToStringHelp = F2( error = $temp$error; context = $temp$context; continue errorToStringHelp; - case 'Index': + case 1: var i = error.a; var err = error.b; var indexName = '[' + (elm$core$String$fromInt(i) + ']'); @@ -4789,7 +4789,7 @@ var elm$json$Json$Decode$errorToStringHelp = F2( error = $temp$error; context = $temp$context; continue errorToStringHelp; - case 'OneOf': + case 2: var errors = error.a; if (!errors.b) { return 'Ran into a Json.Decode.oneOf with no possibilities' + function () { @@ -4856,9 +4856,9 @@ var author$project$Lexicon$getWordList = _Platform_outgoingPort( function ($) { return elm$json$Json$Encode$null; }); -var author$project$Lexicon$loadWordList = author$project$Lexicon$getWordList(_Utils_Tuple0); +var author$project$Lexicon$loadWordList = author$project$Lexicon$getWordList(0); var author$project$Main$LexiconMsg = function (a) { - return {$: 'LexiconMsg', a: a}; + return {$: 0, a: a}; }; var elm$core$Platform$Cmd$map = _Platform_map; var author$project$Main$startApplication = A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, author$project$Lexicon$loadWordList); @@ -4874,15 +4874,15 @@ var author$project$Main$init = function (wl) { _Utils_update( author$project$Main$initialModel, { - savedWords: elm$core$Maybe$Just(wl) + as: elm$core$Maybe$Just(wl) }), author$project$Main$startApplication); }; var author$project$Lexicon$WordDefinitionReceived = function (a) { - return {$: 'WordDefinitionReceived', a: a}; + return {$: 3, a: a}; }; var author$project$Lexicon$WordListReceived = function (a) { - return {$: 'WordListReceived', a: a}; + return {$: 2, a: a}; }; var elm$json$Json$Decode$andThen = _Json_andThen; var elm$json$Json$Decode$field = _Json_decodeField; @@ -4904,7 +4904,7 @@ var author$project$Lexicon$wordDefinitionReceived = _Platform_incomingPort( elm$json$Json$Decode$andThen, function (definition) { return elm$json$Json$Decode$succeed( - {definition: definition, id: id, seeAlso: seeAlso, word: word}); + {aY: definition, al: id, bn: seeAlso, _: word}); }, A2(elm$json$Json$Decode$field, 'definition', elm$json$Json$Decode$string)); }, @@ -4926,7 +4926,7 @@ var author$project$Lexicon$wordListReceived = _Platform_incomingPort( elm$json$Json$Decode$andThen, function (id) { return elm$json$Json$Decode$succeed( - {id: id, word: word}); + {al: id, _: word}); }, A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); }, @@ -4945,7 +4945,7 @@ var author$project$Lexicon$subscriptions = elm$core$Platform$Sub$batch( }) ])); var author$project$Main$SavedWordListChanged = function (a) { - return {$: 'SavedWordListChanged', a: a}; + return {$: 9, a: a}; }; var elm$json$Json$Encode$string = _Json_wrap; var author$project$Main$lcDebug = _Platform_outgoingPort('lcDebug', elm$json$Json$Encode$string); @@ -4959,7 +4959,7 @@ var author$project$Main$savedWordListChanged = _Platform_incomingPort( elm$json$Json$Decode$andThen, function (id) { return elm$json$Json$Decode$succeed( - {id: id, word: word}); + {al: id, _: word}); }, A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); }, @@ -5061,7 +5061,7 @@ var elm$core$Platform$Cmd$none = elm$core$Platform$Cmd$batch(_List_Nil); var author$project$Lexicon$loadWordDefinitionByWord = F2( function (word, wordList) { var list = function () { - if (wordList.$ === 'Just') { + if (!wordList.$) { var l = wordList.a; return l; } else { @@ -5072,59 +5072,57 @@ var author$project$Lexicon$loadWordDefinitionByWord = F2( A2( elm$core$List$filter, function (i) { - return _Utils_eq(i.word, word); + return _Utils_eq(i._, word); }, list)); - if (found.$ === 'Just') { + if (!found.$) { var f = found.a; - return author$project$Lexicon$loadWordDefinition(f.id); + return author$project$Lexicon$loadWordDefinition(f.al); } else { return elm$core$Platform$Cmd$none; } }); -var elm$core$Debug$log = _Debug_log; var author$project$Lexicon$update = F2( function (msg, model) { switch (msg.$) { - case 'WordListReceived': + case 2: var wl = msg.a; return _Utils_Tuple2( _Utils_update( model, { - wordList: elm$core$Maybe$Just(wl) + aV: elm$core$Maybe$Just(wl) }), elm$core$Platform$Cmd$none); - case 'WordDefinitionReceived': + case 3: var w = msg.a; return _Utils_Tuple2( _Utils_update( model, { - currentWord: elm$core$Maybe$Just(w) + aF: elm$core$Maybe$Just(w) }), elm$core$Platform$Cmd$none); - case 'HandleWordListResponse': + case 0: var result = msg.a; - if (result.$ === 'Ok') { + if (!result.$) { var results = result.a; return _Utils_Tuple2( _Utils_update( model, { - wordList: elm$core$Maybe$Just( - A2(elm$core$Debug$log, 'wordlist:', results)) + aV: elm$core$Maybe$Just(results) }), elm$core$Platform$Cmd$none); } else { var error = result.a; - if (error.$ === 'BadPayload') { + if (error.$ === 4) { var errMsg = error.a; return _Utils_Tuple2( _Utils_update( model, { - errorMessage: elm$core$Maybe$Just(errMsg) + af: elm$core$Maybe$Just(errMsg) }), elm$core$Platform$Cmd$none); } else { @@ -5132,32 +5130,31 @@ var author$project$Lexicon$update = F2( _Utils_update( model, { - errorMessage: elm$core$Maybe$Just('something happened') + af: elm$core$Maybe$Just('something happened') }), elm$core$Platform$Cmd$none); } } default: var result = msg.a; - if (result.$ === 'Ok') { + if (!result.$) { var results = result.a; return _Utils_Tuple2( _Utils_update( model, { - currentWord: elm$core$Maybe$Just( - A2(elm$core$Debug$log, 'currentWord:', results)) + aF: elm$core$Maybe$Just(results) }), elm$core$Platform$Cmd$none); } else { var error = result.a; - if (error.$ === 'BadPayload') { + if (error.$ === 4) { var errMsg = error.a; return _Utils_Tuple2( _Utils_update( model, { - errorMessage: elm$core$Maybe$Just(errMsg) + af: elm$core$Maybe$Just(errMsg) }), elm$core$Platform$Cmd$none); } else { @@ -5165,7 +5162,7 @@ var author$project$Lexicon$update = F2( _Utils_update( model, { - errorMessage: elm$core$Maybe$Just('something happened') + af: elm$core$Maybe$Just('something happened') }), elm$core$Platform$Cmd$none); } @@ -5178,7 +5175,7 @@ var elm$json$Json$Encode$list = F2( A3( elm$core$List$foldl, _Json_addEntry(func), - _Json_emptyArray(_Utils_Tuple0), + _Json_emptyArray(0), entries)); }); var elm$json$Json$Encode$object = function (pairs) { @@ -5191,7 +5188,7 @@ var elm$json$Json$Encode$object = function (pairs) { var v = _n0.b; return A3(_Json_addField, k, v, obj); }), - _Json_emptyObject(_Utils_Tuple0), + _Json_emptyObject(0), pairs)); }; var author$project$Lexicon$wordEncoder = function (word) { @@ -5200,21 +5197,21 @@ var author$project$Lexicon$wordEncoder = function (word) { [ _Utils_Tuple2( 'id', - elm$json$Json$Encode$string(word.id)), + elm$json$Json$Encode$string(word.al)), _Utils_Tuple2( 'word', - elm$json$Json$Encode$string(word.word)), + elm$json$Json$Encode$string(word._)), _Utils_Tuple2( 'definition', - elm$json$Json$Encode$string(word.definition)), + elm$json$Json$Encode$string(word.aY)), _Utils_Tuple2( 'seeAlso', - A2(elm$json$Json$Encode$list, elm$json$Json$Encode$string, word.seeAlso)) + A2(elm$json$Json$Encode$list, elm$json$Json$Encode$string, word.bn)) ])); }; -var author$project$Main$DefinitionView = {$: 'DefinitionView'}; +var author$project$Main$DefinitionView = 4; var author$project$Main$LoadDefinitionByInt = function (a) { - return {$: 'LoadDefinitionByInt', a: a}; + return {$: 3, a: a}; }; var author$project$Main$appGoHome = _Platform_outgoingPort( 'appGoHome', @@ -5236,15 +5233,13 @@ var author$project$Main$scrollTop = _Platform_outgoingPort( function ($) { return elm$json$Json$Encode$null; }); -var elm$random$Random$Generate = function (a) { - return {$: 'Generate', a: a}; -}; +var elm$random$Random$Generate = elm$core$Basics$identity; var elm$core$Task$andThen = _Scheduler_andThen; var elm$core$Task$succeed = _Scheduler_succeed; var elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy; var elm$random$Random$Seed = F2( function (a, b) { - return {$: 'Seed', a: a, b: b}; + return {$: 0, a: a, b: b}; }); var elm$random$Random$next = function (_n0) { var state0 = _n0.a; @@ -5261,23 +5256,21 @@ var elm$random$Random$initialSeed = function (x) { A2(elm$random$Random$Seed, state2, incr)); }; var elm$time$Time$Name = function (a) { - return {$: 'Name', a: a}; + return {$: 0, a: a}; }; var elm$time$Time$Offset = function (a) { - return {$: 'Offset', a: a}; + return {$: 1, a: a}; }; var elm$time$Time$Zone = F2( function (a, b) { - return {$: 'Zone', a: a, b: b}; + return {$: 0, a: a, b: b}; }); var elm$time$Time$customZone = elm$time$Time$Zone; -var elm$time$Time$Posix = function (a) { - return {$: 'Posix', a: a}; -}; -var elm$time$Time$millisToPosix = elm$time$Time$Posix; +var elm$time$Time$Posix = elm$core$Basics$identity; +var elm$time$Time$millisToPosix = elm$core$Basics$identity; var elm$time$Time$now = _Time_now(elm$time$Time$millisToPosix); var elm$time$Time$posixToMillis = function (_n0) { - var millis = _n0.a; + var millis = _n0; return millis; }; var elm$random$Random$init = A2( @@ -5291,7 +5284,7 @@ var elm$random$Random$init = A2( var elm$core$Platform$sendToApp = _Platform_sendToApp; var elm$random$Random$step = F2( function (_n0, seed) { - var generator = _n0.a; + var generator = _n0; return generator(seed); }); var elm$random$Random$onEffects = F3( @@ -5299,7 +5292,7 @@ var elm$random$Random$onEffects = F3( if (!commands.b) { return elm$core$Task$succeed(seed); } else { - var generator = commands.a.a; + var generator = commands.a; var rest = commands.b; var _n1 = A2(elm$random$Random$step, generator, seed); var value = _n1.a; @@ -5316,35 +5309,30 @@ var elm$random$Random$onSelfMsg = F3( function (_n0, _n1, seed) { return elm$core$Task$succeed(seed); }); -var elm$random$Random$Generator = function (a) { - return {$: 'Generator', a: a}; -}; +var elm$random$Random$Generator = elm$core$Basics$identity; var elm$random$Random$map = F2( function (func, _n0) { - var genA = _n0.a; - return elm$random$Random$Generator( - function (seed0) { - var _n1 = genA(seed0); - var a = _n1.a; - var seed1 = _n1.b; - return _Utils_Tuple2( - func(a), - seed1); - }); + var genA = _n0; + return function (seed0) { + var _n1 = genA(seed0); + var a = _n1.a; + var seed1 = _n1.b; + return _Utils_Tuple2( + func(a), + seed1); + }; }); var elm$random$Random$cmdMap = F2( function (func, _n0) { - var generator = _n0.a; - return elm$random$Random$Generate( - A2(elm$random$Random$map, func, generator)); + var generator = _n0; + return A2(elm$random$Random$map, func, generator); }); _Platform_effectManagers['Random'] = _Platform_createManager(elm$random$Random$init, elm$random$Random$onEffects, elm$random$Random$onSelfMsg, elm$random$Random$cmdMap); var elm$random$Random$command = _Platform_leaf('Random'); var elm$random$Random$generate = F2( function (tagger, generator) { return elm$random$Random$command( - elm$random$Random$Generate( - A2(elm$random$Random$map, tagger, generator))); + A2(elm$random$Random$map, tagger, generator)); }); var elm$core$Basics$negate = function (n) { return -n; @@ -5358,87 +5346,86 @@ var elm$random$Random$peel = function (_n0) { }; var elm$random$Random$int = F2( function (a, b) { - return elm$random$Random$Generator( - function (seed0) { - var _n0 = (_Utils_cmp(a, b) < 0) ? _Utils_Tuple2(a, b) : _Utils_Tuple2(b, a); - var lo = _n0.a; - var hi = _n0.b; - var range = (hi - lo) + 1; - if (!((range - 1) & range)) { - return _Utils_Tuple2( - (((range - 1) & elm$random$Random$peel(seed0)) >>> 0) + lo, - elm$random$Random$next(seed0)); - } else { - var threshhold = (((-range) >>> 0) % range) >>> 0; - var accountForBias = function (seed) { - accountForBias: - while (true) { - var x = elm$random$Random$peel(seed); - var seedN = elm$random$Random$next(seed); - if (_Utils_cmp(x, threshhold) < 0) { - var $temp$seed = seedN; - seed = $temp$seed; - continue accountForBias; - } else { - return _Utils_Tuple2((x % range) + lo, seedN); - } + return function (seed0) { + var _n0 = (_Utils_cmp(a, b) < 0) ? _Utils_Tuple2(a, b) : _Utils_Tuple2(b, a); + var lo = _n0.a; + var hi = _n0.b; + var range = (hi - lo) + 1; + if (!((range - 1) & range)) { + return _Utils_Tuple2( + (((range - 1) & elm$random$Random$peel(seed0)) >>> 0) + lo, + elm$random$Random$next(seed0)); + } else { + var threshhold = (((-range) >>> 0) % range) >>> 0; + var accountForBias = function (seed) { + accountForBias: + while (true) { + var x = elm$random$Random$peel(seed); + var seedN = elm$random$Random$next(seed); + if (_Utils_cmp(x, threshhold) < 0) { + var $temp$seed = seedN; + seed = $temp$seed; + continue accountForBias; + } else { + return _Utils_Tuple2((x % range) + lo, seedN); } - }; - return accountForBias(seed0); - } - }); + } + }; + return accountForBias(seed0); + } + }; }); var author$project$Main$update = F2( function (msg, model) { switch (msg.$) { - case 'GoHome': + case 10: return _Utils_Tuple2( model, - author$project$Main$appGoHome(_Utils_Tuple0)); - case 'GoSettings': + author$project$Main$appGoHome(0)); + case 11: return _Utils_Tuple2( model, - author$project$Main$appGoSettings(_Utils_Tuple0)); - case 'LexiconMsg': + author$project$Main$appGoSettings(0)); + case 0: var subMsg = msg.a; - var _n1 = A2(author$project$Lexicon$update, subMsg, model.lexiconModel); + var _n1 = A2(author$project$Lexicon$update, subMsg, model.u); var updateLexiconModel = _n1.a; var lexiconCmd = _n1.b; switch (subMsg.$) { - case 'WordListReceived': + case 2: return _Utils_Tuple2( _Utils_update( model, - {currentPage: author$project$Main$SearchView, lexiconModel: updateLexiconModel}), + {O: 1, u: updateLexiconModel}), A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, lexiconCmd)); - case 'WordDefinitionReceived': + case 3: return _Utils_Tuple2( _Utils_update( model, - {currentPage: author$project$Main$DefinitionView, lexiconModel: updateLexiconModel}), + {O: 4, u: updateLexiconModel}), elm$core$Platform$Cmd$batch( _List_fromArray( [ A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, lexiconCmd), - author$project$Main$scrollTop(_Utils_Tuple0) + author$project$Main$scrollTop(0) ]))); default: return _Utils_Tuple2( _Utils_update( model, - {lexiconModel: updateLexiconModel}), + {u: updateLexiconModel}), A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, lexiconCmd)); } - case 'Navigate': + case 1: var page = msg.a; return _Utils_Tuple2( _Utils_update( model, - {currentPage: page}), + {O: page}), elm$core$Platform$Cmd$none); - case 'LoadRandomDefinition': - var _n3 = model.lexiconModel.wordList; - if (_n3.$ === 'Just') { + case 5: + var _n3 = model.u.aV; + if (!_n3.$) { var wordList = _n3.a; var lastItem = elm$core$List$length(wordList) - 1; var gen = A2(elm$random$Random$int, 1, lastItem); @@ -5448,7 +5435,7 @@ var author$project$Main$update = F2( } else { return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); } - case 'LoadDefinition': + case 2: var id = msg.a; return _Utils_Tuple2( model, @@ -5456,15 +5443,15 @@ var author$project$Main$update = F2( elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, author$project$Lexicon$loadWordDefinition(id))); - case 'LoadDefinitionByWord': + case 4: var word = msg.a; return _Utils_Tuple2( model, A2( elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, - A2(author$project$Lexicon$loadWordDefinitionByWord, word, model.lexiconModel.wordList))); - case 'LoadDefinitionByInt': + A2(author$project$Lexicon$loadWordDefinitionByWord, word, model.u.aV))); + case 3: var id = msg.a; return _Utils_Tuple2( model, @@ -5473,32 +5460,32 @@ var author$project$Main$update = F2( author$project$Main$LexiconMsg, author$project$Lexicon$loadWordDefinition( elm$core$String$fromInt(id)))); - case 'FilterWordList': + case 6: var wordOrPart = msg.a; return _Utils_Tuple2( _Utils_update( model, - {query: wordOrPart}), + {V: wordOrPart}), elm$core$Platform$Cmd$none); - case 'SaveWord': + case 7: var word = msg.a; return _Utils_Tuple2( model, author$project$Main$saveWord( author$project$Lexicon$wordEncoder(word))); - case 'RemoveSavedWord': + case 8: var word = msg.a; return _Utils_Tuple2( model, author$project$Main$removeSavedWord( author$project$Lexicon$wordEncoder(word))); - case 'SavedWordListChanged': + case 9: var swl = msg.a; return _Utils_Tuple2( _Utils_update( model, { - savedWords: elm$core$Maybe$Just(swl) + as: elm$core$Maybe$Just(swl) }), elm$core$Platform$Cmd$none); default: @@ -5506,10 +5493,10 @@ var author$project$Main$update = F2( } }); var author$project$Main$LoadDefinitionByWord = function (a) { - return {$: 'LoadDefinitionByWord', a: a}; + return {$: 4, a: a}; }; -var author$project$Main$GoHome = {$: 'GoHome'}; -var author$project$Main$GoSettings = {$: 'GoSettings'}; +var author$project$Main$GoHome = {$: 10}; +var author$project$Main$GoSettings = {$: 11}; var elm$core$String$length = _String_length; var elm$core$String$slice = _String_slice; var elm$core$String$dropLeft = F2( @@ -5527,20 +5514,17 @@ var elm$core$String$toList = function (string) { }; var elm$core$String$cons = _String_cons; var rtfeldman$elm_css$Css$withPrecedingHash = function (str) { - return A2(elm$core$String$startsWith, '#', str) ? str : A2( - elm$core$String$cons, - _Utils_chr('#'), - str); + return A2(elm$core$String$startsWith, '#', str) ? str : A2(elm$core$String$cons, '#', str); }; -var rtfeldman$elm_css$Css$Structure$Compatible = {$: 'Compatible'}; +var rtfeldman$elm_css$Css$Structure$Compatible = 0; var rtfeldman$elm_css$Css$erroneousHex = function (str) { return { - alpha: 1, - blue: 0, - color: rtfeldman$elm_css$Css$Structure$Compatible, - green: 0, - red: 0, - value: rtfeldman$elm_css$Css$withPrecedingHash(str) + aC: 1, + bE: 0, + y: 0, + cL: 0, + aL: 0, + B: rtfeldman$elm_css$Css$withPrecedingHash(str) }; }; var elm$core$Basics$composeR = F3( @@ -5561,7 +5545,7 @@ var elm$core$List$tail = function (list) { }; var elm$core$Maybe$withDefault = F2( function (_default, maybe) { - if (maybe.$ === 'Just') { + if (!maybe.$) { var value = maybe.a; return value; } else { @@ -5570,7 +5554,7 @@ var elm$core$Maybe$withDefault = F2( }); var elm$core$Result$map = F2( function (func, ra) { - if (ra.$ === 'Ok') { + if (!ra.$) { var a = ra.a; return elm$core$Result$Ok( func(a)); @@ -5581,7 +5565,7 @@ var elm$core$Result$map = F2( }); var elm$core$Result$mapError = F2( function (f, result) { - if (result.$ === 'Ok') { + if (!result.$) { var v = result.a; return elm$core$Result$Ok(v); } else { @@ -5606,7 +5590,7 @@ var rtfeldman$elm_hex$Hex$fromStringHelp = F3( } else { var _char = chars.a; var rest = chars.b; - switch (_char.valueOf()) { + switch (_char) { case '0': var $temp$position = position - 1, $temp$chars = rest, @@ -5809,7 +5793,7 @@ var rtfeldman$elm_css$Css$validHex = F5( toResult( _List_fromArray( [a1, a2])))); - if ((((results.a.a.$ === 'Ok') && (results.a.b.$ === 'Ok')) && (results.b.a.$ === 'Ok')) && (results.b.b.$ === 'Ok')) { + if ((((!results.a.a.$) && (!results.a.b.$)) && (!results.b.a.$)) && (!results.b.b.$)) { var _n5 = results.a; var red = _n5.a.a; var green = _n5.b.a; @@ -5817,12 +5801,12 @@ var rtfeldman$elm_css$Css$validHex = F5( var blue = _n6.a.a; var alpha = _n6.b.a; return { - alpha: alpha / 255, - blue: blue, - color: rtfeldman$elm_css$Css$Structure$Compatible, - green: green, - red: red, - value: rtfeldman$elm_css$Css$withPrecedingHash(str) + aC: alpha / 255, + bE: blue, + y: 0, + cL: green, + aL: red, + B: rtfeldman$elm_css$Css$withPrecedingHash(str) }; } else { return rtfeldman$elm_css$Css$erroneousHex(str); @@ -5846,9 +5830,7 @@ var rtfeldman$elm_css$Css$hex = function (str) { _Utils_Tuple2(r, r), _Utils_Tuple2(g, g), _Utils_Tuple2(b, b), - _Utils_Tuple2( - _Utils_chr('f'), - _Utils_chr('f'))); + _Utils_Tuple2('f', 'f')); } else { if (!_n0.b.b.b.b.b) { var r = _n0.a; @@ -5885,9 +5867,7 @@ var rtfeldman$elm_css$Css$hex = function (str) { _Utils_Tuple2(r1, r2), _Utils_Tuple2(g1, g2), _Utils_Tuple2(b1, b2), - _Utils_Tuple2( - _Utils_chr('f'), - _Utils_chr('f'))); + _Utils_Tuple2('f', 'f')); } else { if (_n0.b.b.b.b.b.b.b.b && (!_n0.b.b.b.b.b.b.b.b.b)) { var r1 = _n0.a; @@ -5948,12 +5928,12 @@ var rtfeldman$elm_css$Css$cssFunction = F2( var rtfeldman$elm_css$Css$rgb = F3( function (r, g, b) { return { - alpha: 1, - blue: b, - color: rtfeldman$elm_css$Css$Structure$Compatible, - green: g, - red: r, - value: A2( + aC: 1, + bE: b, + y: 0, + cL: g, + aL: r, + B: A2( rtfeldman$elm_css$Css$cssFunction, 'rgb', A2( @@ -5964,25 +5944,25 @@ var rtfeldman$elm_css$Css$rgb = F3( }; }); var author$project$Theme$Colors$theme = { - button: { - active: A3(rtfeldman$elm_css$Css$rgb, 57, 101, 0), - background: A3(rtfeldman$elm_css$Css$rgb, 77, 136, 0), - text: A3(rtfeldman$elm_css$Css$rgb, 237, 237, 237) + bG: { + bu: A3(rtfeldman$elm_css$Css$rgb, 57, 101, 0), + by: A3(rtfeldman$elm_css$Css$rgb, 77, 136, 0), + co: A3(rtfeldman$elm_css$Css$rgb, 237, 237, 237) }, - palette: { - blue: A3(rtfeldman$elm_css$Css$rgb, 46, 153, 174), - cream: A3(rtfeldman$elm_css$Css$rgb, 254, 248, 222), - darkBlue: A3(rtfeldman$elm_css$Css$rgb, 10, 70, 80), - darkGreen: rtfeldman$elm_css$Css$hex('#03697d'), - green: A3(rtfeldman$elm_css$Css$rgb, 122, 153, 27), - lightBlue: A3(rtfeldman$elm_css$Css$rgb, 140, 230, 250), - lightGreen: A3(rtfeldman$elm_css$Css$rgb, 171, 208, 57), - white: A3(rtfeldman$elm_css$Css$rgb, 255, 255, 255) + s: { + bE: A3(rtfeldman$elm_css$Css$rgb, 46, 153, 174), + bL: A3(rtfeldman$elm_css$Css$rgb, 254, 248, 222), + cE: A3(rtfeldman$elm_css$Css$rgb, 10, 70, 80), + cF: rtfeldman$elm_css$Css$hex('#03697d'), + cL: A3(rtfeldman$elm_css$Css$rgb, 122, 153, 27), + b0: A3(rtfeldman$elm_css$Css$rgb, 140, 230, 250), + b1: A3(rtfeldman$elm_css$Css$rgb, 171, 208, 57), + C: A3(rtfeldman$elm_css$Css$rgb, 255, 255, 255) } }; var rtfeldman$elm_css$VirtualDom$Styled$Node = F3( function (a, b, c) { - return {$: 'Node', a: a, b: b, c: c}; + return {$: 0, a: a, b: b, c: c}; }); var rtfeldman$elm_css$VirtualDom$Styled$node = rtfeldman$elm_css$VirtualDom$Styled$Node; var rtfeldman$elm_css$Html$Styled$node = rtfeldman$elm_css$VirtualDom$Styled$node; @@ -5995,11 +5975,11 @@ var elm$json$Json$Decode$map = _Json_map1; var elm$json$Json$Decode$map2 = _Json_map2; var elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) { switch (handler.$) { - case 'Normal': + case 0: return 0; - case 'MayStopPropagation': + case 1: return 1; - case 'MayPreventDefault': + case 2: return 2; default: return 3; @@ -6014,7 +5994,7 @@ var elm$virtual_dom$VirtualDom$property = F2( }); var rtfeldman$elm_css$VirtualDom$Styled$Attribute = F3( function (a, b, c) { - return {$: 'Attribute', a: a, b: b, c: c}; + return {$: 0, a: a, b: b, c: c}; }); var rtfeldman$elm_css$VirtualDom$Styled$property = F2( function (key, value) { @@ -6059,51 +6039,51 @@ var author$project$Theme$Elements$fontAwesomeIcon = F2( _List_Nil); }); var rtfeldman$elm_css$Css$Preprocess$AppendProperty = function (a) { - return {$: 'AppendProperty', a: a}; + return {$: 0, a: a}; }; var rtfeldman$elm_css$Css$property = F2( function (key, value) { return rtfeldman$elm_css$Css$Preprocess$AppendProperty(key + (':' + value)); }); var rtfeldman$elm_css$Css$color = function (c) { - return A2(rtfeldman$elm_css$Css$property, 'color', c.value); + return A2(rtfeldman$elm_css$Css$property, 'color', c.B); }; var rtfeldman$elm_css$Css$prop1 = F2( function (key, arg) { - return A2(rtfeldman$elm_css$Css$property, key, arg.value); + return A2(rtfeldman$elm_css$Css$property, key, arg.B); }); var rtfeldman$elm_css$Css$padding = rtfeldman$elm_css$Css$prop1('padding'); -var rtfeldman$elm_css$Css$PxUnits = {$: 'PxUnits'}; +var rtfeldman$elm_css$Css$PxUnits = 0; var elm$core$String$fromFloat = _String_fromNumber; var rtfeldman$elm_css$Css$Internal$lengthConverter = F3( function (units, unitLabel, numericValue) { return { - absoluteLength: rtfeldman$elm_css$Css$Structure$Compatible, - calc: rtfeldman$elm_css$Css$Structure$Compatible, - flexBasis: rtfeldman$elm_css$Css$Structure$Compatible, - fontSize: rtfeldman$elm_css$Css$Structure$Compatible, - length: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrAuto: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrAutoOrCoverOrContain: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNone: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNoneOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNumber: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNumberOrAutoOrNoneOrContent: rtfeldman$elm_css$Css$Structure$Compatible, - numericValue: numericValue, - textIndent: rtfeldman$elm_css$Css$Structure$Compatible, - unitLabel: unitLabel, - units: units, - value: _Utils_ap( + bt: 0, + bH: 0, + ag: 0, + o: 0, + aH: 0, + am: 0, + I: 0, + an: 0, + ao: 0, + R: 0, + S: 0, + z: 0, + L: numericValue, + aw: 0, + ay: unitLabel, + aT: units, + B: _Utils_ap( elm$core$String$fromFloat(numericValue), unitLabel) }; }); -var rtfeldman$elm_css$Css$px = A2(rtfeldman$elm_css$Css$Internal$lengthConverter, rtfeldman$elm_css$Css$PxUnits, 'px'); +var rtfeldman$elm_css$Css$px = A2(rtfeldman$elm_css$Css$Internal$lengthConverter, 0, 'px'); var rtfeldman$elm_css$Html$Styled$div = rtfeldman$elm_css$Html$Styled$node('div'); var Skinney$murmur3$Murmur3$HashData = F4( function (shift, seed, hash, charsProcessed) { - return {charsProcessed: charsProcessed, hash: hash, seed: seed, shift: shift}; + return {ac: charsProcessed, aj: hash, W: seed, at: shift}; }); var elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy; var Skinney$murmur3$Murmur3$mur = F2( @@ -6118,8 +6098,8 @@ var Skinney$murmur3$Murmur3$mix = F2( }); var elm$core$Basics$neq = _Utils_notEqual; var Skinney$murmur3$Murmur3$finalize = function (data) { - var acc = data.hash ? A2(Skinney$murmur3$Murmur3$mix, data.seed, data.hash) : data.seed; - var h1 = acc ^ data.charsProcessed; + var acc = data.aj ? A2(Skinney$murmur3$Murmur3$mix, data.W, data.aj) : data.W; + var h1 = acc ^ data.ac; var h2 = A2(Skinney$murmur3$Murmur3$mur, 2246822507, h1 ^ (h1 >>> 16)); var h3 = A2(Skinney$murmur3$Murmur3$mur, 3266489909, h2 ^ (h2 >>> 13)); return (h3 ^ (h3 >>> 16)) >>> 0; @@ -6130,14 +6110,14 @@ var Skinney$murmur3$Murmur3$step = function (acc) { }; var Skinney$murmur3$Murmur3$hashFold = F2( function (c, data) { - var res = data.hash | (c << data.shift); - var _n0 = data.shift; + var res = data.aj | (c << data.at); + var _n0 = data.at; if (_n0 === 24) { var newHash = Skinney$murmur3$Murmur3$step( - A2(Skinney$murmur3$Murmur3$mix, data.seed, res)); - return {charsProcessed: data.charsProcessed + 1, hash: 0, seed: newHash, shift: 0}; + A2(Skinney$murmur3$Murmur3$mix, data.W, res)); + return {ac: data.ac + 1, aj: 0, W: newHash, at: 0}; } else { - return {charsProcessed: data.charsProcessed + 1, hash: res, seed: data.seed, shift: data.shift + 8}; + return {ac: data.ac + 1, aj: res, W: data.W, at: data.at + 8}; } }); var elm$core$Basics$ge = _Utils_ge; @@ -6145,7 +6125,7 @@ var Skinney$murmur3$UTF8$accumulate = F3( function (add, _char, _n0) { var acc = _n0.a; var combine = _n0.b; - if (combine.$ === 'Nothing') { + if (combine.$ === 1) { return (_char < 128) ? _Utils_Tuple2( A2(add, _char, acc), elm$core$Maybe$Nothing) : ((_char < 2048) ? _Utils_Tuple2( @@ -6212,7 +6192,7 @@ var elm$core$List$singleton = function (value) { [value]); }; var rtfeldman$elm_css$Css$Preprocess$stylesheet = function (snippets) { - return {charset: elm$core$Maybe$Nothing, imports: _List_Nil, namespaces: _List_Nil, snippets: snippets}; + return {bJ: elm$core$Maybe$Nothing, bV: _List_Nil, b3: _List_Nil, ck: snippets}; }; var elm$core$List$append = F2( function (xs, ys) { @@ -6231,7 +6211,7 @@ var elm$core$List$concatMap = F2( A2(elm$core$List$map, f, list)); }); var rtfeldman$elm_css$Css$Preprocess$unwrapSnippet = function (_n0) { - var declarations = _n0.a; + var declarations = _n0; return declarations; }; var elm$core$List$takeReverse = F3( @@ -6362,7 +6342,7 @@ var elm$core$List$take = F2( }); var elm$core$Maybe$map = F2( function (f, maybe) { - if (maybe.$ === 'Just') { + if (!maybe.$) { var value = maybe.a; return elm$core$Maybe$Just( f(value)); @@ -6376,7 +6356,7 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors = function (declar if (!declarations.b) { return _List_Nil; } else { - if (declarations.a.$ === 'StyleBlockDeclaration') { + if (!declarations.a.$) { var _n1 = declarations.a.a; var firstSelector = _n1.a; var otherSelectors = _n1.b; @@ -6439,7 +6419,7 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$oneOf = function (maybes) { } else { var maybe = maybes.a; var rest = maybes.b; - if (maybe.$ === 'Nothing') { + if (maybe.$ === 1) { var $temp$maybes = rest; maybes = $temp$maybes; continue oneOf; @@ -6450,7 +6430,7 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$oneOf = function (maybes) { } }; var rtfeldman$elm_css$Css$Structure$FontFeatureValues = function (a) { - return {$: 'FontFeatureValues', a: a}; + return {$: 9, a: a}; }; var rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues = function (tuples) { var expandTuples = function (tuplesToExpand) { @@ -6473,11 +6453,11 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues = function }; var rtfeldman$elm_css$Css$Structure$DocumentRule = F5( function (a, b, c, d, e) { - return {$: 'DocumentRule', a: a, b: b, c: c, d: d, e: e}; + return {$: 3, a: a, b: b, c: c, d: d, e: e}; }); var rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule = F5( function (str1, str2, str3, str4, declaration) { - if (declaration.$ === 'StyleBlockDeclaration') { + if (!declaration.$) { var structureStyleBlock = declaration.a; return A5(rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4, structureStyleBlock); } else { @@ -6486,30 +6466,30 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule = F5( }); var rtfeldman$elm_css$Css$Structure$MediaRule = F2( function (a, b) { - return {$: 'MediaRule', a: a, b: b}; + return {$: 1, a: a, b: b}; }); var rtfeldman$elm_css$Css$Structure$SupportsRule = F2( function (a, b) { - return {$: 'SupportsRule', a: a, b: b}; + return {$: 2, a: a, b: b}; }); var rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule = F2( function (mediaQueries, declaration) { switch (declaration.$) { - case 'StyleBlockDeclaration': + case 0: var structureStyleBlock = declaration.a; return A2( rtfeldman$elm_css$Css$Structure$MediaRule, mediaQueries, _List_fromArray( [structureStyleBlock])); - case 'MediaRule': + case 1: var newMediaQueries = declaration.a; var structureStyleBlocks = declaration.b; return A2( rtfeldman$elm_css$Css$Structure$MediaRule, _Utils_ap(mediaQueries, newMediaQueries), structureStyleBlocks); - case 'SupportsRule': + case 2: var str = declaration.a; var declarations = declaration.b; return A2( @@ -6519,53 +6499,53 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule = F2( elm$core$List$map, rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule(mediaQueries), declarations)); - case 'DocumentRule': + case 3: var str1 = declaration.a; var str2 = declaration.b; var str3 = declaration.c; var str4 = declaration.d; var structureStyleBlock = declaration.e; return A5(rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4, structureStyleBlock); - case 'PageRule': + case 4: return declaration; - case 'FontFace': + case 5: return declaration; - case 'Keyframes': + case 6: return declaration; - case 'Viewport': + case 7: return declaration; - case 'CounterStyle': + case 8: return declaration; default: return declaration; } }); var rtfeldman$elm_css$Css$Structure$CounterStyle = function (a) { - return {$: 'CounterStyle', a: a}; + return {$: 8, a: a}; }; var rtfeldman$elm_css$Css$Structure$FontFace = function (a) { - return {$: 'FontFace', a: a}; + return {$: 5, a: a}; }; var rtfeldman$elm_css$Css$Structure$Keyframes = function (a) { - return {$: 'Keyframes', a: a}; + return {$: 6, a: a}; }; var rtfeldman$elm_css$Css$Structure$PageRule = F2( function (a, b) { - return {$: 'PageRule', a: a, b: b}; + return {$: 4, a: a, b: b}; }); var rtfeldman$elm_css$Css$Structure$Selector = F3( function (a, b, c) { - return {$: 'Selector', a: a, b: b, c: c}; + return {$: 0, a: a, b: b, c: c}; }); var rtfeldman$elm_css$Css$Structure$StyleBlock = F3( function (a, b, c) { - return {$: 'StyleBlock', a: a, b: b, c: c}; + return {$: 0, a: a, b: b, c: c}; }); var rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration = function (a) { - return {$: 'StyleBlockDeclaration', a: a}; + return {$: 0, a: a}; }; var rtfeldman$elm_css$Css$Structure$Viewport = function (a) { - return {$: 'Viewport', a: a}; + return {$: 7, a: a}; }; var rtfeldman$elm_css$Css$Structure$mapLast = F2( function (update, list) { @@ -6609,14 +6589,14 @@ var rtfeldman$elm_css$Css$Structure$appendProperty = F2( } else { if (!declarations.b.b) { switch (declarations.a.$) { - case 'StyleBlockDeclaration': + case 0: var styleBlock = declarations.a.a; return _List_fromArray( [ rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( A2(rtfeldman$elm_css$Css$Structure$withPropertyAppended, property, styleBlock)) ]); - case 'MediaRule': + case 1: var _n1 = declarations.a; var mediaQueries = _n1.a; var styleBlocks = _n1.b; @@ -6689,19 +6669,19 @@ var rtfeldman$elm_css$Css$Structure$appendPseudoElementToLastSelector = F2( }); var rtfeldman$elm_css$Css$Structure$CustomSelector = F2( function (a, b) { - return {$: 'CustomSelector', a: a, b: b}; + return {$: 2, a: a, b: b}; }); var rtfeldman$elm_css$Css$Structure$TypeSelectorSequence = F2( function (a, b) { - return {$: 'TypeSelectorSequence', a: a, b: b}; + return {$: 0, a: a, b: b}; }); var rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence = function (a) { - return {$: 'UniversalSelectorSequence', a: a}; + return {$: 1, a: a}; }; var rtfeldman$elm_css$Css$Structure$appendRepeatable = F2( function (selector, sequence) { switch (sequence.$) { - case 'TypeSelectorSequence': + case 0: var typeSelector = sequence.a; var list = sequence.b; return A2( @@ -6711,7 +6691,7 @@ var rtfeldman$elm_css$Css$Structure$appendRepeatable = F2( list, _List_fromArray( [selector]))); - case 'UniversalSelectorSequence': + case 1: var list = sequence.a; return rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence( _Utils_ap( @@ -6792,13 +6772,13 @@ var rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock = F2( } else { if (!declarations.b.b) { switch (declarations.a.$) { - case 'StyleBlockDeclaration': + case 0: var styleBlock = declarations.a.a; return A2( elm$core$List$map, rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration, update(styleBlock)); - case 'MediaRule': + case 1: if (declarations.a.b.b) { if (!declarations.a.b.b.b) { var _n1 = declarations.a; @@ -6825,7 +6805,7 @@ var rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock = F2( [ A2(rtfeldman$elm_css$Css$Structure$MediaRule, mediaQueries, rest) ])); - if ((_n5.b && (_n5.a.$ === 'MediaRule')) && (!_n5.b.b)) { + if ((_n5.b && (_n5.a.$ === 1)) && (!_n5.b.b)) { var _n6 = _n5.a; var newMediaQueries = _n6.a; var newStyleBlocks = _n6.b; @@ -6844,7 +6824,7 @@ var rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock = F2( } else { break _n0$12; } - case 'SupportsRule': + case 2: var _n7 = declarations.a; var str = _n7.a; var nestedDeclarations = _n7.b; @@ -6855,7 +6835,7 @@ var rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock = F2( str, A2(rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, update, nestedDeclarations)) ]); - case 'DocumentRule': + case 3: var _n8 = declarations.a; var str1 = _n8.a; var str2 = _n8.b; @@ -6866,16 +6846,16 @@ var rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock = F2( elm$core$List$map, A4(rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4), update(styleBlock)); - case 'PageRule': + case 4: var _n9 = declarations.a; return declarations; - case 'FontFace': + case 5: return declarations; - case 'Keyframes': + case 6: return declarations; - case 'Viewport': + case 7: return declarations; - case 'CounterStyle': + case 8: return declarations; default: return declarations; @@ -6894,7 +6874,7 @@ var rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock = F2( }); var rtfeldman$elm_css$Css$Structure$styleBlockToMediaRule = F2( function (mediaQueries, declaration) { - if (declaration.$ === 'StyleBlockDeclaration') { + if (!declaration.$) { var styleBlock = declaration.a; return A2( rtfeldman$elm_css$Css$Structure$MediaRule, @@ -6912,37 +6892,37 @@ var rtfeldman$elm_hex$Hex$unsafeToDigit = function (num) { while (true) { switch (num) { case 0: - return _Utils_chr('0'); + return '0'; case 1: - return _Utils_chr('1'); + return '1'; case 2: - return _Utils_chr('2'); + return '2'; case 3: - return _Utils_chr('3'); + return '3'; case 4: - return _Utils_chr('4'); + return '4'; case 5: - return _Utils_chr('5'); + return '5'; case 6: - return _Utils_chr('6'); + return '6'; case 7: - return _Utils_chr('7'); + return '7'; case 8: - return _Utils_chr('8'); + return '8'; case 9: - return _Utils_chr('9'); + return '9'; case 10: - return _Utils_chr('a'); + return 'a'; case 11: - return _Utils_chr('b'); + return 'b'; case 12: - return _Utils_chr('c'); + return 'c'; case 13: - return _Utils_chr('d'); + return 'd'; case 14: - return _Utils_chr('e'); + return 'e'; case 15: - return _Utils_chr('f'); + return 'f'; default: var $temp$num = num; num = $temp$num; @@ -6976,13 +6956,13 @@ var rtfeldman$elm_hex$Hex$toString = function (num) { return elm$core$String$fromList( (num < 0) ? A2( elm$core$List$cons, - _Utils_chr('-'), + '-', A2(rtfeldman$elm_hex$Hex$unsafePositiveToDigits, _List_Nil, -num)) : A2(rtfeldman$elm_hex$Hex$unsafePositiveToDigits, _List_Nil, num)); }; var rtfeldman$elm_css$Hash$fromString = function (str) { return A2( elm$core$String$cons, - _Utils_chr('_'), + '_', rtfeldman$elm_hex$Hex$toString( A2(Skinney$murmur3$Murmur3$hashString, rtfeldman$elm_css$Hash$murmurSeed, str))); }; @@ -7005,7 +6985,7 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast = F4( var _n14 = _Utils_Tuple2( elm$core$List$head(nextResult), rtfeldman$elm_css$Css$Preprocess$Resolve$last(declarations)); - if ((_n14.a.$ === 'Just') && (_n14.b.$ === 'Just')) { + if ((!_n14.a.$) && (!_n14.b.$)) { var nextResultParent = _n14.a.a; var originalParent = _n14.b.a; return _Utils_ap( @@ -7050,14 +7030,14 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles = F2( return declarations; } else { switch (styles.a.$) { - case 'AppendProperty': + case 0: var property = styles.a.a; var rest = styles.b; return A2( rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, rest, A2(rtfeldman$elm_css$Css$Structure$appendProperty, property, declarations)); - case 'ExtendSelector': + case 1: var _n4 = styles.a; var selector = _n4.a; var nestedStyles = _n4.b; @@ -7068,7 +7048,7 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles = F2( rest, rtfeldman$elm_css$Css$Structure$appendRepeatableToLastSelector(selector), declarations); - case 'NestSnippet': + case 2: var _n5 = styles.a; var selectorCombinator = _n5.a; var snippets = _n5.b; @@ -7096,7 +7076,7 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles = F2( }); var expandDeclaration = function (declaration) { switch (declaration.$) { - case 'StyleBlockDeclaration': + case 0: var _n7 = declaration.a; var firstSelector = _n7.a; var otherSelectors = _n7.b; @@ -7124,15 +7104,15 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles = F2( } }(); return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, nestedStyles, newDeclarations); - case 'MediaRule': + case 1: var mediaQueries = declaration.a; var styleBlocks = declaration.b; return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule, mediaQueries, styleBlocks); - case 'SupportsRule': + case 2: var str = declaration.a; var otherSnippets = declaration.b; return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule, str, otherSnippets); - case 'DocumentRule': + case 3: var str1 = declaration.a; var str2 = declaration.b; var str3 = declaration.c; @@ -7142,26 +7122,26 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles = F2( elm$core$List$map, A4(rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule, str1, str2, str3, str4), rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock)); - case 'PageRule': + case 4: var str = declaration.a; var properties = declaration.b; return _List_fromArray( [ A2(rtfeldman$elm_css$Css$Structure$PageRule, str, properties) ]); - case 'FontFace': + case 5: var properties = declaration.a; return _List_fromArray( [ rtfeldman$elm_css$Css$Structure$FontFace(properties) ]); - case 'Viewport': + case 6: var properties = declaration.a; return _List_fromArray( [ rtfeldman$elm_css$Css$Structure$Viewport(properties) ]); - case 'CounterStyle': + case 7: var properties = declaration.a; return _List_fromArray( [ @@ -7182,7 +7162,7 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles = F2( elm$core$List$map, expandDeclaration, A2(elm$core$List$concatMap, rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)))); - case 'WithPseudoElement': + case 3: var _n11 = styles.a; var pseudoElement = _n11.a; var nestedStyles = _n11.b; @@ -7193,7 +7173,7 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles = F2( rest, rtfeldman$elm_css$Css$Structure$appendPseudoElementToLastSelector(pseudoElement), declarations); - case 'WithKeyframes': + case 5: var str = styles.a.a; var rest = styles.b; var name = rtfeldman$elm_css$Hash$fromString(str); @@ -7208,9 +7188,9 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles = F2( _List_fromArray( [ rtfeldman$elm_css$Css$Structure$Keyframes( - {declaration: str, name: name}) + {cG: str, cT: name}) ])); - case 'WithMedia': + case 4: var _n12 = styles.a; var mediaQueries = _n12.a; var nestedStyles = _n12.b; @@ -7291,18 +7271,18 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule = F2( }); var rtfeldman$elm_css$Css$Preprocess$Resolve$toDeclarations = function (snippetDeclaration) { switch (snippetDeclaration.$) { - case 'StyleBlockDeclaration': + case 0: var styleBlock = snippetDeclaration.a; return rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock); - case 'MediaRule': + case 1: var mediaQueries = snippetDeclaration.a; var styleBlocks = snippetDeclaration.b; return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule, mediaQueries, styleBlocks); - case 'SupportsRule': + case 2: var str = snippetDeclaration.a; var snippets = snippetDeclaration.b; return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule, str, snippets); - case 'DocumentRule': + case 3: var str1 = snippetDeclaration.a; var str2 = snippetDeclaration.b; var str3 = snippetDeclaration.c; @@ -7312,26 +7292,26 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$toDeclarations = function (snippetD elm$core$List$map, A4(rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule, str1, str2, str3, str4), rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock)); - case 'PageRule': + case 4: var str = snippetDeclaration.a; var properties = snippetDeclaration.b; return _List_fromArray( [ A2(rtfeldman$elm_css$Css$Structure$PageRule, str, properties) ]); - case 'FontFace': + case 5: var properties = snippetDeclaration.a; return _List_fromArray( [ rtfeldman$elm_css$Css$Structure$FontFace(properties) ]); - case 'Viewport': + case 6: var properties = snippetDeclaration.a; return _List_fromArray( [ rtfeldman$elm_css$Css$Structure$Viewport(properties) ]); - case 'CounterStyle': + case 7: var properties = snippetDeclaration.a; return _List_fromArray( [ @@ -7343,32 +7323,32 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$toDeclarations = function (snippetD } }; var rtfeldman$elm_css$Css$Preprocess$Resolve$toStructure = function (_n0) { - var charset = _n0.charset; - var imports = _n0.imports; - var namespaces = _n0.namespaces; - var snippets = _n0.snippets; + var charset = _n0.bJ; + var imports = _n0.bV; + var namespaces = _n0.b3; + var snippets = _n0.ck; var declarations = rtfeldman$elm_css$Css$Preprocess$Resolve$extract( A2(elm$core$List$concatMap, rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)); - return {charset: charset, declarations: declarations, imports: imports, namespaces: namespaces}; + return {bJ: charset, cH: declarations, bV: imports, b3: namespaces}; }; -var elm$core$Dict$RBEmpty_elm_builtin = {$: 'RBEmpty_elm_builtin'}; +var elm$core$Dict$RBEmpty_elm_builtin = {$: -2}; var elm$core$Dict$empty = elm$core$Dict$RBEmpty_elm_builtin; -var elm$core$Dict$Black = {$: 'Black'}; +var elm$core$Dict$Black = 1; var elm$core$Dict$RBNode_elm_builtin = F5( function (a, b, c, d, e) { - return {$: 'RBNode_elm_builtin', a: a, b: b, c: c, d: d, e: e}; + return {$: -1, a: a, b: b, c: c, d: d, e: e}; }); var elm$core$Basics$compare = _Utils_compare; -var elm$core$Dict$Red = {$: 'Red'}; +var elm$core$Dict$Red = 0; var elm$core$Dict$balance = F5( function (color, key, value, left, right) { - if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Red')) { + if ((right.$ === -1) && (!right.a)) { var _n1 = right.a; var rK = right.b; var rV = right.c; var rLeft = right.d; var rRight = right.e; - if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) { + if ((left.$ === -1) && (!left.a)) { var _n3 = left.a; var lK = left.b; var lV = left.c; @@ -7376,22 +7356,22 @@ var elm$core$Dict$balance = F5( var lRight = left.e; return A5( elm$core$Dict$RBNode_elm_builtin, - elm$core$Dict$Red, + 0, key, value, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, lK, lV, lLeft, lRight), - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, rK, rV, rLeft, rRight)); + A5(elm$core$Dict$RBNode_elm_builtin, 1, lK, lV, lLeft, lRight), + A5(elm$core$Dict$RBNode_elm_builtin, 1, rK, rV, rLeft, rRight)); } else { return A5( elm$core$Dict$RBNode_elm_builtin, color, rK, rV, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, key, value, left, rLeft), + A5(elm$core$Dict$RBNode_elm_builtin, 0, key, value, left, rLeft), rRight); } } else { - if ((((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) && (left.d.$ === 'RBNode_elm_builtin')) && (left.d.a.$ === 'Red')) { + if ((((left.$ === -1) && (!left.a)) && (left.d.$ === -1)) && (!left.d.a)) { var _n5 = left.a; var lK = left.b; var lV = left.c; @@ -7404,11 +7384,11 @@ var elm$core$Dict$balance = F5( var lRight = left.e; return A5( elm$core$Dict$RBNode_elm_builtin, - elm$core$Dict$Red, + 0, lK, lV, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, llK, llV, llLeft, llRight), - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, key, value, lRight, right)); + A5(elm$core$Dict$RBNode_elm_builtin, 1, llK, llV, llLeft, llRight), + A5(elm$core$Dict$RBNode_elm_builtin, 1, key, value, lRight, right)); } else { return A5(elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right); } @@ -7416,8 +7396,8 @@ var elm$core$Dict$balance = F5( }); var elm$core$Dict$insertHelp = F3( function (key, value, dict) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, key, value, elm$core$Dict$RBEmpty_elm_builtin, elm$core$Dict$RBEmpty_elm_builtin); + if (dict.$ === -2) { + return A5(elm$core$Dict$RBNode_elm_builtin, 0, key, value, elm$core$Dict$RBEmpty_elm_builtin, elm$core$Dict$RBEmpty_elm_builtin); } else { var nColor = dict.a; var nKey = dict.b; @@ -7425,8 +7405,8 @@ var elm$core$Dict$insertHelp = F3( var nLeft = dict.d; var nRight = dict.e; var _n1 = A2(elm$core$Basics$compare, key, nKey); - switch (_n1.$) { - case 'LT': + switch (_n1) { + case 0: return A5( elm$core$Dict$balance, nColor, @@ -7434,7 +7414,7 @@ var elm$core$Dict$insertHelp = F3( nValue, A3(elm$core$Dict$insertHelp, key, value, nLeft), nRight); - case 'EQ': + case 1: return A5(elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight); default: return A5( @@ -7450,13 +7430,13 @@ var elm$core$Dict$insertHelp = F3( var elm$core$Dict$insert = F3( function (key, value, dict) { var _n0 = A3(elm$core$Dict$insertHelp, key, value, dict); - if ((_n0.$ === 'RBNode_elm_builtin') && (_n0.a.$ === 'Red')) { + if ((_n0.$ === -1) && (!_n0.a)) { var _n1 = _n0.a; var k = _n0.b; var v = _n0.c; var l = _n0.d; var r = _n0.e; - return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, k, v, l, r); + return A5(elm$core$Dict$RBNode_elm_builtin, 1, k, v, l, r); } else { var x = _n0; return x; @@ -7501,13 +7481,13 @@ var rtfeldman$elm_css$Css$Structure$compactHelp = F2( var keyframesByName = _n0.a; var declarations = _n0.b; switch (declaration.$) { - case 'StyleBlockDeclaration': + case 0: var _n2 = declaration.a; var properties = _n2.c; return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( keyframesByName, A2(elm$core$List$cons, declaration, declarations)); - case 'MediaRule': + case 1: var styleBlocks = declaration.b; return A2( elm$core$List$all, @@ -7518,36 +7498,36 @@ var rtfeldman$elm_css$Css$Structure$compactHelp = F2( styleBlocks) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( keyframesByName, A2(elm$core$List$cons, declaration, declarations)); - case 'SupportsRule': + case 2: var otherDeclarations = declaration.b; return elm$core$List$isEmpty(otherDeclarations) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( keyframesByName, A2(elm$core$List$cons, declaration, declarations)); - case 'DocumentRule': + case 3: return _Utils_Tuple2( keyframesByName, A2(elm$core$List$cons, declaration, declarations)); - case 'PageRule': + case 4: var properties = declaration.b; return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( keyframesByName, A2(elm$core$List$cons, declaration, declarations)); - case 'FontFace': + case 5: var properties = declaration.a; return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( keyframesByName, A2(elm$core$List$cons, declaration, declarations)); - case 'Keyframes': + case 6: var record = declaration.a; - return elm$core$String$isEmpty(record.declaration) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - A3(elm$core$Dict$insert, record.name, record.declaration, keyframesByName), + return elm$core$String$isEmpty(record.cG) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( + A3(elm$core$Dict$insert, record.cT, record.cG, keyframesByName), declarations); - case 'Viewport': + case 7: var properties = declaration.a; return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( keyframesByName, A2(elm$core$List$cons, declaration, declarations)); - case 'CounterStyle': + case 8: var properties = declaration.a; return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( keyframesByName, @@ -7575,16 +7555,16 @@ var rtfeldman$elm_css$Css$Structure$withKeyframeDeclarations = F2( var name = _n0.a; var decl = _n0.b; return rtfeldman$elm_css$Css$Structure$Keyframes( - {declaration: decl, name: name}); + {cG: decl, cT: name}); }, elm$core$Dict$toList(keyframesByName)), compactedDeclarations); }); var rtfeldman$elm_css$Css$Structure$compactStylesheet = function (_n0) { - var charset = _n0.charset; - var imports = _n0.imports; - var namespaces = _n0.namespaces; - var declarations = _n0.declarations; + var charset = _n0.bJ; + var imports = _n0.bV; + var namespaces = _n0.b3; + var declarations = _n0.cH; var _n1 = A3( elm$core$List$foldr, rtfeldman$elm_css$Css$Structure$compactHelp, @@ -7593,7 +7573,7 @@ var rtfeldman$elm_css$Css$Structure$compactStylesheet = function (_n0) { var keyframesByName = _n1.a; var compactedDeclarations = _n1.b; var finalDeclarations = A2(rtfeldman$elm_css$Css$Structure$withKeyframeDeclarations, keyframesByName, compactedDeclarations); - return {charset: charset, declarations: finalDeclarations, imports: imports, namespaces: namespaces}; + return {bJ: charset, cH: finalDeclarations, bV: imports, b3: namespaces}; }; var rtfeldman$elm_css$Css$Structure$Output$charsetToString = function (charset) { return A2( @@ -7607,19 +7587,19 @@ var rtfeldman$elm_css$Css$Structure$Output$charsetToString = function (charset) charset)); }; var rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString = function (expression) { - return '(' + (expression.feature + (A2( + return '(' + (expression.bQ + (A2( elm$core$Maybe$withDefault, '', A2( elm$core$Maybe$map, elm$core$Basics$append(': '), - expression.value)) + ')')); + expression.B)) + ')')); }; var rtfeldman$elm_css$Css$Structure$Output$mediaTypeToString = function (mediaType) { - switch (mediaType.$) { - case 'Print': + switch (mediaType) { + case 0: return 'print'; - case 'Screen': + case 1: return 'screen'; default: return 'speech'; @@ -7637,17 +7617,17 @@ var rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString = function (mediaQ A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString, expressions)))); }); switch (mediaQuery.$) { - case 'AllQuery': + case 0: var expressions = mediaQuery.a; return A2( elm$core$String$join, ' and ', A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString, expressions)); - case 'OnlyQuery': + case 1: var mediaType = mediaQuery.a; var expressions = mediaQuery.b; return A3(prefixWith, 'only', mediaType, expressions); - case 'NotQuery': + case 2: var mediaType = mediaQuery.a; var expressions = mediaQuery.b; return A3(prefixWith, 'not', mediaType, expressions); @@ -7695,16 +7675,16 @@ var rtfeldman$elm_css$Css$Structure$Output$emitProperties = function (properties }; var elm$core$String$append = _String_append; var rtfeldman$elm_css$Css$Structure$Output$pseudoElementToString = function (_n0) { - var str = _n0.a; + var str = _n0; return '::' + str; }; var rtfeldman$elm_css$Css$Structure$Output$combinatorToString = function (combinator) { - switch (combinator.$) { - case 'AdjacentSibling': + switch (combinator) { + case 0: return '+'; - case 'GeneralSibling': + case 1: return '~'; - case 'Child': + case 2: return '>'; default: return ''; @@ -7712,13 +7692,13 @@ var rtfeldman$elm_css$Css$Structure$Output$combinatorToString = function (combin }; var rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString = function (repeatableSimpleSelector) { switch (repeatableSimpleSelector.$) { - case 'ClassSelector': + case 0: var str = repeatableSimpleSelector.a; return '.' + str; - case 'IdSelector': + case 1: var str = repeatableSimpleSelector.a; return '#' + str; - case 'PseudoClassSelector': + case 2: var str = repeatableSimpleSelector.a; return ':' + str; default: @@ -7728,8 +7708,8 @@ var rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString = fu }; var rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString = function (simpleSelectorSequence) { switch (simpleSelectorSequence.$) { - case 'TypeSelectorSequence': - var str = simpleSelectorSequence.a.a; + case 0: + var str = simpleSelectorSequence.a; var repeatableSimpleSelectors = simpleSelectorSequence.b; return A2( elm$core$String$join, @@ -7738,7 +7718,7 @@ var rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString = func elm$core$List$cons, str, A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors))); - case 'UniversalSelectorSequence': + case 1: var repeatableSimpleSelectors = simpleSelectorSequence.a; return elm$core$List$isEmpty(repeatableSimpleSelectors) ? '*' : A2( elm$core$String$join, @@ -7825,10 +7805,10 @@ var rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock = F2( }); var rtfeldman$elm_css$Css$Structure$Output$prettyPrintDeclaration = function (decl) { switch (decl.$) { - case 'StyleBlockDeclaration': + case 0: var styleBlock = decl.a; return A2(rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock, rtfeldman$elm_css$Css$Structure$Output$noIndent, styleBlock); - case 'MediaRule': + case 1: var mediaQueries = decl.a; var styleBlocks = decl.b; var query = A2( @@ -7846,31 +7826,31 @@ var rtfeldman$elm_css$Css$Structure$Output$prettyPrintDeclaration = function (de rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock(rtfeldman$elm_css$Css$Structure$Output$spaceIndent)), styleBlocks)); return '@media ' + (query + (' {\n' + (blocks + '\n}'))); - case 'SupportsRule': + case 2: return 'TODO'; - case 'DocumentRule': + case 3: return 'TODO'; - case 'PageRule': + case 4: return 'TODO'; - case 'FontFace': + case 5: return 'TODO'; - case 'Keyframes': - var name = decl.a.name; - var declaration = decl.a.declaration; + case 6: + var name = decl.a.cT; + var declaration = decl.a.cG; return '@keyframes ' + (name + (' {\n' + (declaration + '\n}'))); - case 'Viewport': + case 7: return 'TODO'; - case 'CounterStyle': + case 8: return 'TODO'; default: return 'TODO'; } }; var rtfeldman$elm_css$Css$Structure$Output$prettyPrint = function (_n0) { - var charset = _n0.charset; - var imports = _n0.imports; - var namespaces = _n0.namespaces; - var declarations = _n0.declarations; + var charset = _n0.bJ; + var imports = _n0.bV; + var namespaces = _n0.b3; + var declarations = _n0.cH; return A2( elm$core$String$join, '\n\n', @@ -7905,31 +7885,28 @@ var rtfeldman$elm_css$Css$Preprocess$Resolve$compile = function (styles) { '\n\n', A2(elm$core$List$map, rtfeldman$elm_css$Css$Preprocess$Resolve$compileHelp, styles)); }; -var rtfeldman$elm_css$Css$Preprocess$Snippet = function (a) { - return {$: 'Snippet', a: a}; -}; +var rtfeldman$elm_css$Css$Preprocess$Snippet = elm$core$Basics$identity; var rtfeldman$elm_css$Css$Preprocess$StyleBlock = F3( function (a, b, c) { - return {$: 'StyleBlock', a: a, b: b, c: c}; + return {$: 0, a: a, b: b, c: c}; }); var rtfeldman$elm_css$Css$Preprocess$StyleBlockDeclaration = function (a) { - return {$: 'StyleBlockDeclaration', a: a}; + return {$: 0, a: a}; }; var rtfeldman$elm_css$VirtualDom$Styled$makeSnippet = F2( function (styles, sequence) { var selector = A3(rtfeldman$elm_css$Css$Structure$Selector, sequence, _List_Nil, elm$core$Maybe$Nothing); - return rtfeldman$elm_css$Css$Preprocess$Snippet( - _List_fromArray( - [ - rtfeldman$elm_css$Css$Preprocess$StyleBlockDeclaration( - A3(rtfeldman$elm_css$Css$Preprocess$StyleBlock, selector, _List_Nil, styles)) - ])); + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Preprocess$StyleBlockDeclaration( + A3(rtfeldman$elm_css$Css$Preprocess$StyleBlock, selector, _List_Nil, styles)) + ]); }); var rtfeldman$elm_css$VirtualDom$Styled$murmurSeed = 15739; var rtfeldman$elm_css$VirtualDom$Styled$getClassname = function (styles) { return elm$core$List$isEmpty(styles) ? 'unstyled' : A2( elm$core$String$cons, - _Utils_chr('_'), + '_', rtfeldman$elm_hex$Hex$toString( A2( Skinney$murmur3$Murmur3$hashString, @@ -7953,7 +7930,7 @@ var rtfeldman$elm_css$Html$Styled$Internal$css = function (styles) { }; var rtfeldman$elm_css$Html$Styled$Attributes$css = rtfeldman$elm_css$Html$Styled$Internal$css; var elm$virtual_dom$VirtualDom$Normal = function (a) { - return {$: 'Normal', a: a}; + return {$: 0, a: a}; }; var elm$virtual_dom$VirtualDom$on = _VirtualDom_on; var rtfeldman$elm_css$VirtualDom$Styled$on = F2( @@ -7986,7 +7963,7 @@ var author$project$Theme$Elements$icon = F2( rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), rtfeldman$elm_css$Css$padding( rtfeldman$elm_css$Css$px(5)) ])), @@ -8002,14 +7979,14 @@ var rtfeldman$elm_css$Css$Internal$property = F2( return rtfeldman$elm_css$Css$Preprocess$AppendProperty(key + (':' + value)); }); var rtfeldman$elm_css$Css$Preprocess$ApplyStyles = function (a) { - return {$: 'ApplyStyles', a: a}; + return {$: 6, a: a}; }; var rtfeldman$elm_css$Css$Internal$getOverloadedProperty = F3( function (functionName, desiredKey, style) { getOverloadedProperty: while (true) { switch (style.$) { - case 'AppendProperty': + case 0: var str = style.a; var key = A2( elm$core$Maybe$withDefault, @@ -8017,18 +7994,18 @@ var rtfeldman$elm_css$Css$Internal$getOverloadedProperty = F3( elm$core$List$head( A2(elm$core$String$split, ':', str))); return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, key); - case 'ExtendSelector': + case 1: var selector = style.a; return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-selector')); - case 'NestSnippet': + case 2: var combinator = style.a; return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-combinator')); - case 'WithPseudoElement': + case 3: var pseudoElement = style.a; return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-pseudo-element setter')); - case 'WithMedia': + case 4: return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-media-query')); - case 'WithKeyframes': + case 5: return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-keyframes')); default: if (!style.a.b) { @@ -8060,8 +8037,8 @@ var rtfeldman$elm_css$Css$Internal$getOverloadedProperty = F3( } } }); -var rtfeldman$elm_css$Css$Internal$IncompatibleUnits = {$: 'IncompatibleUnits'}; -var rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty = A3(rtfeldman$elm_css$Css$Internal$lengthConverter, rtfeldman$elm_css$Css$Internal$IncompatibleUnits, '', 0); +var rtfeldman$elm_css$Css$Internal$IncompatibleUnits = 0; +var rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty = A3(rtfeldman$elm_css$Css$Internal$lengthConverter, 0, '', 0); var rtfeldman$elm_css$Css$alignItems = function (fn) { return A3( rtfeldman$elm_css$Css$Internal$getOverloadedProperty, @@ -8070,7 +8047,7 @@ var rtfeldman$elm_css$Css$alignItems = function (fn) { fn(rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty)); }; var rtfeldman$elm_css$Css$backgroundColor = function (c) { - return A2(rtfeldman$elm_css$Css$property, 'background-color', c.value); + return A2(rtfeldman$elm_css$Css$property, 'background-color', c.B); }; var rtfeldman$elm_css$Css$bottom = rtfeldman$elm_css$Css$prop1('bottom'); var rtfeldman$elm_css$Css$prop4 = F5( @@ -8082,12 +8059,12 @@ var rtfeldman$elm_css$Css$prop4 = F5( elm$core$String$join, ' ', _List_fromArray( - [argA.value, argB.value, argC.value, argD.value]))); + [argA.B, argB.B, argC.B, argD.B]))); }); var rtfeldman$elm_css$Css$boxShadow4 = rtfeldman$elm_css$Css$prop4('box-shadow'); var rtfeldman$elm_css$Css$center = rtfeldman$elm_css$Css$prop1('center'); var rtfeldman$elm_css$Css$displayFlex = A2(rtfeldman$elm_css$Css$property, 'display', 'flex'); -var rtfeldman$elm_css$Css$fixed = {backgroundAttachment: rtfeldman$elm_css$Css$Structure$Compatible, position: rtfeldman$elm_css$Css$Structure$Compatible, tableLayout: rtfeldman$elm_css$Css$Structure$Compatible, value: 'fixed'}; +var rtfeldman$elm_css$Css$fixed = {aD: 0, aK: 0, a8: 0, B: 'fixed'}; var rtfeldman$elm_css$Css$flexDirection = rtfeldman$elm_css$Css$prop1('flex-direction'); var rtfeldman$elm_css$Css$height = rtfeldman$elm_css$Css$prop1('height'); var rtfeldman$elm_css$Css$justifyContent = function (fn) { @@ -8097,14 +8074,14 @@ var rtfeldman$elm_css$Css$justifyContent = function (fn) { 'justify-content', fn(rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty)); }; -var rtfeldman$elm_css$Css$PercentageUnits = {$: 'PercentageUnits'}; -var rtfeldman$elm_css$Css$pct = A2(rtfeldman$elm_css$Css$Internal$lengthConverter, rtfeldman$elm_css$Css$PercentageUnits, '%'); +var rtfeldman$elm_css$Css$PercentageUnits = 0; +var rtfeldman$elm_css$Css$pct = A2(rtfeldman$elm_css$Css$Internal$lengthConverter, 0, '%'); var rtfeldman$elm_css$Css$position = rtfeldman$elm_css$Css$prop1('position'); -var rtfeldman$elm_css$Css$row = {flexDirection: rtfeldman$elm_css$Css$Structure$Compatible, flexDirectionOrWrap: rtfeldman$elm_css$Css$Structure$Compatible, value: 'row'}; +var rtfeldman$elm_css$Css$row = {bf: 0, aG: 0, B: 'row'}; var rtfeldman$elm_css$Css$spaceBetween = rtfeldman$elm_css$Css$prop1('space-between'); var rtfeldman$elm_css$Css$width = rtfeldman$elm_css$Css$prop1('width'); -var rtfeldman$elm_css$Css$UnitlessInteger = {$: 'UnitlessInteger'}; -var rtfeldman$elm_css$Css$zero = {length: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrAuto: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrAutoOrCoverOrContain: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNone: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNoneOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNumber: rtfeldman$elm_css$Css$Structure$Compatible, number: rtfeldman$elm_css$Css$Structure$Compatible, numericValue: 0, outline: rtfeldman$elm_css$Css$Structure$Compatible, unitLabel: '', units: rtfeldman$elm_css$Css$UnitlessInteger, value: '0'}; +var rtfeldman$elm_css$Css$UnitlessInteger = 0; +var rtfeldman$elm_css$Css$zero = {aH: 0, am: 0, I: 0, an: 0, ao: 0, R: 0, S: 0, aJ: 0, L: 0, a4: 0, ay: '', aT: 0, B: '0'}; var rtfeldman$elm_css$Html$Styled$nav = rtfeldman$elm_css$Html$Styled$node('nav'); var author$project$Main$appNavigation = A2( rtfeldman$elm_css$Html$Styled$nav, @@ -8119,7 +8096,7 @@ var author$project$Main$appNavigation = A2( rtfeldman$elm_css$Css$alignItems(rtfeldman$elm_css$Css$center), rtfeldman$elm_css$Css$position(rtfeldman$elm_css$Css$fixed), rtfeldman$elm_css$Css$bottom(rtfeldman$elm_css$Css$zero), - rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.palette.darkBlue), + rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.s.cE), rtfeldman$elm_css$Css$height( rtfeldman$elm_css$Css$px(48)), rtfeldman$elm_css$Css$width( @@ -8138,17 +8115,17 @@ var author$project$Main$appNavigation = A2( A2(author$project$Theme$Elements$icon, 'cog', author$project$Main$GoSettings) ])); var author$project$Main$RemoveSavedWord = function (a) { - return {$: 'RemoveSavedWord', a: a}; + return {$: 8, a: a}; }; var author$project$Main$SaveWord = function (a) { - return {$: 'SaveWord', a: a}; + return {$: 7, a: a}; }; var author$project$Main$isWordSaved = F2( function (word, wordList) { var list = A2( elm$core$List$filter, function (item) { - return _Utils_eq(item.word, word); + return _Utils_eq(item._, word); }, wordList); return elm$core$List$isEmpty(list); @@ -8162,7 +8139,7 @@ var author$project$Theme$Elements$wordDefinitionIcon = F2( rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.lightGreen), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.b1), rtfeldman$elm_css$Css$padding( rtfeldman$elm_css$Css$px(5)) ])), @@ -8176,14 +8153,14 @@ var author$project$Theme$Elements$wordDefinitionIcon = F2( var author$project$Main$bookmarkIconView = F2( function (definition, wordlist) { var list = function () { - if (wordlist.$ === 'Just') { + if (!wordlist.$) { var l = wordlist.a; return l; } else { return _List_Nil; } }(); - var isSaved = A2(author$project$Main$isWordSaved, definition.word, list); + var isSaved = A2(author$project$Main$isWordSaved, definition._, list); return isSaved ? A2( author$project$Theme$Elements$wordDefinitionIcon, author$project$Main$SaveWord(definition), @@ -8205,12 +8182,12 @@ var rtfeldman$elm_css$Css$borderRadius = rtfeldman$elm_css$Css$prop1('border-rad var rtfeldman$elm_css$Css$borderStyle = rtfeldman$elm_css$Css$prop1('border-style'); var rtfeldman$elm_css$Css$fontSize = rtfeldman$elm_css$Css$prop1('font-size'); var rtfeldman$elm_css$Css$margin = rtfeldman$elm_css$Css$prop1('margin'); -var rtfeldman$elm_css$Css$none = {backgroundImage: rtfeldman$elm_css$Css$Structure$Compatible, blockAxisOverflow: rtfeldman$elm_css$Css$Structure$Compatible, borderStyle: rtfeldman$elm_css$Css$Structure$Compatible, cursor: rtfeldman$elm_css$Css$Structure$Compatible, display: rtfeldman$elm_css$Css$Structure$Compatible, hoverCapability: rtfeldman$elm_css$Css$Structure$Compatible, inlineAxisOverflow: rtfeldman$elm_css$Css$Structure$Compatible, keyframes: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNone: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNoneOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNumberOrAutoOrNoneOrContent: rtfeldman$elm_css$Css$Structure$Compatible, listStyleType: rtfeldman$elm_css$Css$Structure$Compatible, listStyleTypeOrPositionOrImage: rtfeldman$elm_css$Css$Structure$Compatible, none: rtfeldman$elm_css$Css$Structure$Compatible, outline: rtfeldman$elm_css$Css$Structure$Compatible, pointerDevice: rtfeldman$elm_css$Css$Structure$Compatible, pointerEvents: rtfeldman$elm_css$Css$Structure$Compatible, resize: rtfeldman$elm_css$Css$Structure$Compatible, scriptingSupport: rtfeldman$elm_css$Css$Structure$Compatible, textDecorationLine: rtfeldman$elm_css$Css$Structure$Compatible, textTransform: rtfeldman$elm_css$Css$Structure$Compatible, touchAction: rtfeldman$elm_css$Css$Structure$Compatible, transform: rtfeldman$elm_css$Css$Structure$Compatible, updateFrequency: rtfeldman$elm_css$Css$Structure$Compatible, value: 'none'}; +var rtfeldman$elm_css$Css$none = {aa: 0, bD: 0, q: 0, c: 0, j: 0, cN: 0, bW: 0, bg: 0, ao: 0, R: 0, z: 0, e: 0, d: 0, bj: 0, a4: 0, cX: 0, w: 0, a5: 0, cZ: 0, av: 0, Y: 0, t: 0, i: 0, c3: 0, B: 'none'}; var rtfeldman$elm_css$Html$Styled$button = rtfeldman$elm_css$Html$Styled$node('button'); var rtfeldman$elm_css$Html$Styled$span = rtfeldman$elm_css$Html$Styled$node('span'); var elm$virtual_dom$VirtualDom$text = _VirtualDom_text; var rtfeldman$elm_css$VirtualDom$Styled$Unstyled = function (a) { - return {$: 'Unstyled', a: a}; + return {$: 4, a: a}; }; var rtfeldman$elm_css$VirtualDom$Styled$text = function (str) { return rtfeldman$elm_css$VirtualDom$Styled$Unstyled( @@ -8226,8 +8203,8 @@ var author$project$Theme$Elements$seeAlso = F2( rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.button.background), - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.bG.by), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), rtfeldman$elm_css$Css$borderRadius( rtfeldman$elm_css$Css$px(8)), rtfeldman$elm_css$Css$padding( @@ -8245,7 +8222,7 @@ var author$project$Theme$Elements$seeAlso = F2( rtfeldman$elm_css$Html$Styled$text(word) ])); }); -var rtfeldman$elm_css$Css$block = {display: rtfeldman$elm_css$Css$Structure$Compatible, value: 'block'}; +var rtfeldman$elm_css$Css$block = {j: 0, B: 'block'}; var rtfeldman$elm_css$Css$display = rtfeldman$elm_css$Css$prop1('display'); var rtfeldman$elm_css$Css$marginTop = rtfeldman$elm_css$Css$prop1('margin-top'); var rtfeldman$elm_css$Css$textAlign = function (fn) { @@ -8278,7 +8255,7 @@ var author$project$Theme$Elements$takeFurther = A2( rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.lightBlue), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.b0), rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) ])) ]), @@ -8287,16 +8264,16 @@ var author$project$Theme$Elements$takeFurther = A2( rtfeldman$elm_css$Html$Styled$text('Go for a word adventure:') ])) ])); -var rtfeldman$elm_css$Css$capitalize = {textTransform: rtfeldman$elm_css$Css$Structure$Compatible, value: 'capitalize'}; +var rtfeldman$elm_css$Css$capitalize = {Y: 0, B: 'capitalize'}; var rtfeldman$elm_css$Css$left = rtfeldman$elm_css$Css$prop1('left'); -var rtfeldman$elm_css$Css$PtUnits = {$: 'PtUnits'}; -var rtfeldman$elm_css$Css$pt = A2(rtfeldman$elm_css$Css$Internal$lengthConverter, rtfeldman$elm_css$Css$PtUnits, 'pt'); +var rtfeldman$elm_css$Css$PtUnits = 0; +var rtfeldman$elm_css$Css$pt = A2(rtfeldman$elm_css$Css$Internal$lengthConverter, 0, 'pt'); var rtfeldman$elm_css$Css$textTransform = rtfeldman$elm_css$Css$prop1('text-transform'); var rtfeldman$elm_css$Html$Styled$h1 = rtfeldman$elm_css$Html$Styled$node('h1'); var rtfeldman$elm_css$Html$Styled$p = rtfeldman$elm_css$Html$Styled$node('p'); var author$project$Main$definitionView = function (model) { - var _n0 = model.lexiconModel.currentWord; - if (_n0.$ === 'Just') { + var _n0 = model.u.aF; + if (!_n0.$) { var word = _n0.a; return A2( rtfeldman$elm_css$Html$Styled$div, @@ -8310,7 +8287,7 @@ var author$project$Main$definitionView = function (model) { rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$capitalize), rtfeldman$elm_css$Css$marginTop( rtfeldman$elm_css$Css$px(125)) @@ -8318,7 +8295,7 @@ var author$project$Main$definitionView = function (model) { ]), _List_fromArray( [ - rtfeldman$elm_css$Html$Styled$text(word.word) + rtfeldman$elm_css$Html$Styled$text(word._) ])), A2( rtfeldman$elm_css$Html$Styled$div, @@ -8331,12 +8308,12 @@ var author$project$Main$definitionView = function (model) { rtfeldman$elm_css$Css$flexDirection(rtfeldman$elm_css$Css$row), rtfeldman$elm_css$Css$alignItems(rtfeldman$elm_css$Css$center), rtfeldman$elm_css$Css$justifyContent(rtfeldman$elm_css$Css$center), - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.green) + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.cL) ])) ]), _List_fromArray( [ - A2(author$project$Main$bookmarkIconView, word, model.savedWords) + A2(author$project$Main$bookmarkIconView, word, model.as) ])), A2( rtfeldman$elm_css$Html$Styled$p, @@ -8345,7 +8322,7 @@ var author$project$Main$definitionView = function (model) { rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), rtfeldman$elm_css$Css$fontSize( rtfeldman$elm_css$Css$pt(16)), rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$left), @@ -8355,9 +8332,9 @@ var author$project$Main$definitionView = function (model) { ]), _List_fromArray( [ - rtfeldman$elm_css$Html$Styled$text(word.definition) + rtfeldman$elm_css$Html$Styled$text(word.aY) ])), - author$project$Main$isSeeAlsoEmpty(word.seeAlso) ? A2(rtfeldman$elm_css$Html$Styled$div, _List_Nil, _List_Nil) : A2( + author$project$Main$isSeeAlsoEmpty(word.bn) ? A2(rtfeldman$elm_css$Html$Styled$div, _List_Nil, _List_Nil) : A2( rtfeldman$elm_css$Html$Styled$div, _List_Nil, _List_fromArray( @@ -8374,7 +8351,7 @@ var author$project$Main$definitionView = function (model) { author$project$Main$LoadDefinitionByWord(i), i); }, - word.seeAlso)) + word.bn)) ])), A2( rtfeldman$elm_css$Html$Styled$div, @@ -8420,7 +8397,7 @@ var author$project$Main$helpView = function (karma) { rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$capitalize), rtfeldman$elm_css$Css$marginTop( rtfeldman$elm_css$Css$px(125)) @@ -8437,7 +8414,7 @@ var author$project$Main$helpView = function (karma) { rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$justify), rtfeldman$elm_css$Css$fontSize( rtfeldman$elm_css$Css$px(20)), @@ -8476,7 +8453,7 @@ var author$project$Main$loadingView = A2( rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$capitalize), rtfeldman$elm_css$Css$marginTop( rtfeldman$elm_css$Css$px(125)) @@ -8487,14 +8464,14 @@ var author$project$Main$loadingView = A2( rtfeldman$elm_css$Html$Styled$text('Loading') ])); var author$project$Main$FilterWordList = function (a) { - return {$: 'FilterWordList', a: a}; + return {$: 6, a: a}; }; -var author$project$Main$HelpView = {$: 'HelpView'}; +var author$project$Main$HelpView = 5; var author$project$Main$Navigate = function (a) { - return {$: 'Navigate', a: a}; + return {$: 1, a: a}; }; var author$project$Main$LoadDefinition = function (a) { - return {$: 'LoadDefinition', a: a}; + return {$: 2, a: a}; }; var rtfeldman$elm_css$Html$Styled$li = rtfeldman$elm_css$Html$Styled$node('li'); var author$project$Main$addWordItem = function (word) { @@ -8503,11 +8480,11 @@ var author$project$Main$addWordItem = function (word) { _List_fromArray( [ rtfeldman$elm_css$Html$Styled$Events$onClick( - author$project$Main$LoadDefinition(word.id)) + author$project$Main$LoadDefinition(word.al)) ]), _List_fromArray( [ - rtfeldman$elm_css$Html$Styled$text(word.word) + rtfeldman$elm_css$Html$Styled$text(word._) ])); }; var elm$core$String$contains = _String_contains; @@ -8519,7 +8496,7 @@ var author$project$Main$filterWordList = F2( return A2( elm$core$String$contains, elm$core$String$toLower(word), - elm$core$String$toLower(item.word)); + elm$core$String$toLower(item._)); }, list); }); @@ -8533,10 +8510,10 @@ var rtfeldman$elm_css$Css$prop3 = F4( elm$core$String$join, ' ', _List_fromArray( - [argA.value, argB.value, argC.value]))); + [argA.B, argB.B, argC.B]))); }); var rtfeldman$elm_css$Css$borderTop3 = rtfeldman$elm_css$Css$prop3('border-top'); -var rtfeldman$elm_css$Css$solid = {borderStyle: rtfeldman$elm_css$Css$Structure$Compatible, textDecorationStyle: rtfeldman$elm_css$Css$Structure$Compatible, value: 'solid'}; +var rtfeldman$elm_css$Css$solid = {q: 0, X: 0, B: 'solid'}; var rtfeldman$elm_css$Html$Styled$hr = rtfeldman$elm_css$Html$Styled$node('hr'); var author$project$Theme$Elements$listHeader = A2( rtfeldman$elm_css$Html$Styled$div, @@ -8561,7 +8538,7 @@ var author$project$Theme$Elements$listHeader = A2( rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.lightBlue), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.b0), rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) ])) ]), @@ -8583,21 +8560,21 @@ var author$project$Theme$Elements$listHeader = A2( rtfeldman$elm_css$Css$borderTop3, rtfeldman$elm_css$Css$px(2), rtfeldman$elm_css$Css$solid, - author$project$Theme$Colors$theme.palette.lightBlue), + author$project$Theme$Colors$theme.s.b0), rtfeldman$elm_css$Css$width( rtfeldman$elm_css$Css$pct(10)) ])) ]), _List_Nil) ])); -var rtfeldman$elm_css$Css$transparent = {color: rtfeldman$elm_css$Css$Structure$Compatible, value: 'transparent'}; +var rtfeldman$elm_css$Css$transparent = {y: 0, B: 'transparent'}; var rtfeldman$elm_css$Html$Styled$input = rtfeldman$elm_css$Html$Styled$node('input'); var rtfeldman$elm_css$Html$Styled$Attributes$value = rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('value'); var rtfeldman$elm_css$Html$Styled$Events$alwaysStop = function (x) { return _Utils_Tuple2(x, true); }; var elm$virtual_dom$VirtualDom$MayStopPropagation = function (a) { - return {$: 'MayStopPropagation', a: a}; + return {$: 1, a: a}; }; var rtfeldman$elm_css$Html$Styled$Events$stopPropagationOn = F2( function (event, decoder) { @@ -8651,7 +8628,7 @@ var author$project$Theme$Elements$searchBox = F2( rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), rtfeldman$elm_css$Css$borderStyle(rtfeldman$elm_css$Css$none), rtfeldman$elm_css$Css$backgroundColor(rtfeldman$elm_css$Css$transparent), - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white) + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C) ])), rtfeldman$elm_css$Html$Styled$Events$onInput(changed), rtfeldman$elm_css$Html$Styled$Attributes$value(query) @@ -8671,7 +8648,7 @@ var author$project$Theme$Elements$searchBox = F2( rtfeldman$elm_css$Css$borderTop3, rtfeldman$elm_css$Css$px(1), rtfeldman$elm_css$Css$solid, - author$project$Theme$Colors$theme.palette.white), + author$project$Theme$Colors$theme.s.C), rtfeldman$elm_css$Css$width( rtfeldman$elm_css$Css$pct(80)) ])) @@ -8701,7 +8678,7 @@ var author$project$Theme$Elements$searchHeader = function (click) { rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.lightBlue), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.b0), rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) ])) ]), @@ -8716,7 +8693,7 @@ var author$project$Theme$Elements$searchHeader = function (click) { rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.lightGreen), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.b1), rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) ])), rtfeldman$elm_css$Html$Styled$Events$onClick(click) @@ -8729,11 +8706,11 @@ var author$project$Theme$Elements$searchHeader = function (click) { }; var rtfeldman$elm_css$Css$listStyle = rtfeldman$elm_css$Css$prop1('list-style'); var rtfeldman$elm_css$Css$overflowY = rtfeldman$elm_css$Css$prop1('overflow-y'); -var rtfeldman$elm_css$Css$scroll = {backgroundAttachment: rtfeldman$elm_css$Css$Structure$Compatible, blockAxisOverflow: rtfeldman$elm_css$Css$Structure$Compatible, inlineAxisOverflow: rtfeldman$elm_css$Css$Structure$Compatible, overflow: rtfeldman$elm_css$Css$Structure$Compatible, scroll: rtfeldman$elm_css$Css$Structure$Compatible, value: 'scroll'}; +var rtfeldman$elm_css$Css$scroll = {aD: 0, bD: 0, bW: 0, ap: 0, c_: 0, B: 'scroll'}; var rtfeldman$elm_css$Html$Styled$ul = rtfeldman$elm_css$Html$Styled$node('ul'); var author$project$Main$myWordsView = function (model) { - var _n0 = model.savedWords; - if (_n0.$ === 'Just') { + var _n0 = model.as; + if (!_n0.$) { var wordList = _n0.a; return A2( rtfeldman$elm_css$Html$Styled$div, @@ -8749,8 +8726,8 @@ var author$project$Main$myWordsView = function (model) { _List_fromArray( [ author$project$Theme$Elements$searchHeader( - author$project$Main$Navigate(author$project$Main$HelpView)), - A2(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, model.query), + author$project$Main$Navigate(5)), + A2(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, model.V), author$project$Theme$Elements$listHeader, A2( rtfeldman$elm_css$Html$Styled$ul, @@ -8759,7 +8736,7 @@ var author$project$Main$myWordsView = function (model) { rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), rtfeldman$elm_css$Css$fontSize( rtfeldman$elm_css$Css$pt(18)), rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), @@ -8774,7 +8751,7 @@ var author$project$Main$myWordsView = function (model) { A2( elm$core$List$map, author$project$Main$addWordItem, - A2(author$project$Main$filterWordList, model.query, wordList))) + A2(author$project$Main$filterWordList, model.V, wordList))) ])); } else { return A2( @@ -8797,7 +8774,7 @@ var author$project$Main$myWordsView = function (model) { rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white) + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C) ])) ]), _List_fromArray( @@ -8807,15 +8784,15 @@ var author$project$Main$myWordsView = function (model) { ])); } }; -var author$project$Main$LoadRandomDefinition = {$: 'LoadRandomDefinition'}; -var author$project$Main$MyWordsView = {$: 'MyWordsView'}; +var author$project$Main$LoadRandomDefinition = {$: 5}; +var author$project$Main$MyWordsView = 3; var rtfeldman$elm_css$Css$flex = rtfeldman$elm_css$Css$prop1('flex'); var rtfeldman$elm_css$Css$Preprocess$ExtendSelector = F2( function (a, b) { - return {$: 'ExtendSelector', a: a, b: b}; + return {$: 1, a: a, b: b}; }); var rtfeldman$elm_css$Css$Structure$PseudoClassSelector = function (a) { - return {$: 'PseudoClassSelector', a: a}; + return {$: 2, a: a}; }; var rtfeldman$elm_css$Css$pseudoClass = function (_class) { return rtfeldman$elm_css$Css$Preprocess$ExtendSelector( @@ -8824,15 +8801,15 @@ var rtfeldman$elm_css$Css$pseudoClass = function (_class) { var rtfeldman$elm_css$Css$hover = rtfeldman$elm_css$Css$pseudoClass('hover'); var rtfeldman$elm_css$Css$int = function (val) { return { - fontWeight: rtfeldman$elm_css$Css$Structure$Compatible, - intOrAuto: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNumber: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNumberOrAutoOrNoneOrContent: rtfeldman$elm_css$Css$Structure$Compatible, - number: rtfeldman$elm_css$Css$Structure$Compatible, - numericValue: val, - unitLabel: '', - units: rtfeldman$elm_css$Css$UnitlessInteger, - value: elm$core$String$fromInt(val) + H: 0, + a1: 0, + S: 0, + z: 0, + aJ: 0, + L: val, + ay: '', + aT: 0, + B: elm$core$String$fromInt(val) }; }; var rtfeldman$elm_css$Html$Styled$styled = F4( @@ -8846,7 +8823,7 @@ var rtfeldman$elm_css$Html$Styled$styled = F4( children); }); var author$project$Theme$Elements$navButton = function (isCurrentPage) { - var bgColor = isCurrentPage ? author$project$Theme$Colors$theme.button.active : author$project$Theme$Colors$theme.button.background; + var bgColor = isCurrentPage ? author$project$Theme$Colors$theme.bG.bu : author$project$Theme$Colors$theme.bG.by; return A2( rtfeldman$elm_css$Html$Styled$styled, rtfeldman$elm_css$Html$Styled$button, @@ -8862,20 +8839,20 @@ var author$project$Theme$Elements$navButton = function (isCurrentPage) { rtfeldman$elm_css$Css$px(18)), rtfeldman$elm_css$Css$backgroundColor(bgColor), rtfeldman$elm_css$Css$borderStyle(rtfeldman$elm_css$Css$none), - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.button.text), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.bG.co), rtfeldman$elm_css$Css$hover( _List_fromArray( [ - rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.button.active) + rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.bG.bu) ])) ])); }; var author$project$Main$pageNavigation = function (currentPage) { var activePage = function () { - switch (currentPage.$) { - case 'SearchView': + switch (currentPage) { + case 1: return 'search'; - case 'MyWordsView': + case 3: return 'mywords'; default: return 'other'; @@ -8890,7 +8867,7 @@ var author$project$Main$pageNavigation = function (currentPage) { [ rtfeldman$elm_css$Css$displayFlex, rtfeldman$elm_css$Css$flexDirection(rtfeldman$elm_css$Css$row), - rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.palette.darkGreen) + rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.s.cF) ])) ]), _List_fromArray( @@ -8901,7 +8878,7 @@ var author$project$Main$pageNavigation = function (currentPage) { _List_fromArray( [ rtfeldman$elm_css$Html$Styled$Events$onClick( - author$project$Main$Navigate(author$project$Main$SearchView)) + author$project$Main$Navigate(1)) ]), _List_fromArray( [ @@ -8924,7 +8901,7 @@ var author$project$Main$pageNavigation = function (currentPage) { _List_fromArray( [ rtfeldman$elm_css$Html$Styled$Events$onClick( - author$project$Main$Navigate(author$project$Main$MyWordsView)) + author$project$Main$Navigate(3)) ]), _List_fromArray( [ @@ -8933,8 +8910,8 @@ var author$project$Main$pageNavigation = function (currentPage) { ])); }; var author$project$Main$searchView = function (model) { - var _n0 = model.lexiconModel.wordList; - if (_n0.$ === 'Just') { + var _n0 = model.u.aV; + if (!_n0.$) { var wordList = _n0.a; return A2( rtfeldman$elm_css$Html$Styled$div, @@ -8950,8 +8927,8 @@ var author$project$Main$searchView = function (model) { _List_fromArray( [ author$project$Theme$Elements$searchHeader( - author$project$Main$Navigate(author$project$Main$HelpView)), - A2(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, model.query), + author$project$Main$Navigate(5)), + A2(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, model.V), author$project$Theme$Elements$listHeader, A2( rtfeldman$elm_css$Html$Styled$ul, @@ -8960,7 +8937,7 @@ var author$project$Main$searchView = function (model) { rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), rtfeldman$elm_css$Css$fontSize( rtfeldman$elm_css$Css$pt(18)), rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), @@ -8975,7 +8952,7 @@ var author$project$Main$searchView = function (model) { A2( elm$core$List$map, author$project$Main$addWordItem, - A2(author$project$Main$filterWordList, model.query, wordList))) + A2(author$project$Main$filterWordList, model.V, wordList))) ])); } else { return A2( @@ -8998,7 +8975,7 @@ var author$project$Main$searchView = function (model) { rtfeldman$elm_css$Html$Styled$Attributes$css( _List_fromArray( [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white) + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C) ])) ]), _List_fromArray( @@ -9013,7 +8990,7 @@ var rtfeldman$elm_css$Css$minHeight = rtfeldman$elm_css$Css$prop1('min-height'); var author$project$Theme$Elements$bodyStyle = rtfeldman$elm_css$Css$batch( _List_fromArray( [ - rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.palette.darkGreen), + rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.s.cF), rtfeldman$elm_css$Css$height( rtfeldman$elm_css$Css$pct(100)), rtfeldman$elm_css$Css$minHeight( @@ -9028,12 +9005,12 @@ var author$project$Theme$Elements$headerStyle = rtfeldman$elm_css$Css$batch( rtfeldman$elm_css$Css$width( rtfeldman$elm_css$Css$pct(100)) ])); -var rtfeldman$elm_css$Css$bold = {fontWeight: rtfeldman$elm_css$Css$Structure$Compatible, value: 'bold'}; +var rtfeldman$elm_css$Css$bold = {H: 0, B: 'bold'}; var rtfeldman$elm_css$Css$fontWeight = function (_n0) { - var value = _n0.value; + var value = _n0.B; return A2(rtfeldman$elm_css$Css$property, 'font-weight', value); }; -var rtfeldman$elm_css$Css$uppercase = {textTransform: rtfeldman$elm_css$Css$Structure$Compatible, value: 'uppercase'}; +var rtfeldman$elm_css$Css$uppercase = {Y: 0, B: 'uppercase'}; var author$project$Theme$Elements$headerTitle = A2( rtfeldman$elm_css$Html$Styled$div, _List_fromArray( @@ -9064,7 +9041,7 @@ var author$project$Theme$Elements$headerTitle = A2( rtfeldman$elm_css$Css$fontSize( rtfeldman$elm_css$Css$px(18)), rtfeldman$elm_css$Css$fontWeight(rtfeldman$elm_css$Css$bold), - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), + rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C), rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$uppercase), rtfeldman$elm_css$Css$margin(rtfeldman$elm_css$Css$zero) ])) @@ -9076,17 +9053,17 @@ var author$project$Theme$Elements$headerTitle = A2( ])); var author$project$Main$view = function (model) { var activeView = function () { - var _n0 = model.currentPage; - switch (_n0.$) { - case 'DefinitionView': + var _n0 = model.O; + switch (_n0) { + case 4: return author$project$Main$definitionView(model); - case 'LoadingView': + case 0: return author$project$Main$loadingView; - case 'SearchView': + case 1: return author$project$Main$searchView(model); - case 'MyWordsView': + case 3: return author$project$Main$myWordsView(model); - case 'HelpView': + case 5: return author$project$Main$helpView( author$project$Main$LoadDefinitionByWord('karma')); default: @@ -9120,34 +9097,30 @@ var author$project$Main$view = function (model) { _List_fromArray( [ author$project$Theme$Elements$headerTitle, - author$project$Main$pageNavigation(model.currentPage) + author$project$Main$pageNavigation(model.O) ])), activeView, author$project$Main$appNavigation ])); }; var elm$browser$Browser$External = function (a) { - return {$: 'External', a: a}; + return {$: 1, a: a}; }; var elm$browser$Browser$Internal = function (a) { - return {$: 'Internal', a: a}; -}; -var elm$browser$Browser$Dom$NotFound = function (a) { - return {$: 'NotFound', a: a}; + return {$: 0, a: a}; }; +var elm$browser$Browser$Dom$NotFound = elm$core$Basics$identity; var elm$core$Basics$never = function (_n0) { never: while (true) { - var nvr = _n0.a; + var nvr = _n0; var $temp$_n0 = nvr; _n0 = $temp$_n0; continue never; } }; -var elm$core$Task$Perform = function (a) { - return {$: 'Perform', a: a}; -}; -var elm$core$Task$init = elm$core$Task$succeed(_Utils_Tuple0); +var elm$core$Task$Perform = elm$core$Basics$identity; +var elm$core$Task$init = elm$core$Task$succeed(0); var elm$core$Task$map = F2( function (func, taskA) { return A2( @@ -9182,7 +9155,7 @@ var elm$core$Task$sequence = function (tasks) { }; var elm$core$Task$spawnCmd = F2( function (router, _n0) { - var task = _n0.a; + var task = _n0; return _Scheduler_spawn( A2( elm$core$Task$andThen, @@ -9194,7 +9167,7 @@ var elm$core$Task$onEffects = F3( return A2( elm$core$Task$map, function (_n0) { - return _Utils_Tuple0; + return 0; }, elm$core$Task$sequence( A2( @@ -9204,24 +9177,22 @@ var elm$core$Task$onEffects = F3( }); var elm$core$Task$onSelfMsg = F3( function (_n0, _n1, _n2) { - return elm$core$Task$succeed(_Utils_Tuple0); + return elm$core$Task$succeed(0); }); var elm$core$Task$cmdMap = F2( function (tagger, _n0) { - var task = _n0.a; - return elm$core$Task$Perform( - A2(elm$core$Task$map, tagger, task)); + var task = _n0; + return A2(elm$core$Task$map, tagger, task); }); _Platform_effectManagers['Task'] = _Platform_createManager(elm$core$Task$init, elm$core$Task$onEffects, elm$core$Task$onSelfMsg, elm$core$Task$cmdMap); var elm$core$Task$command = _Platform_leaf('Task'); var elm$core$Task$perform = F2( function (toMessage, task) { return elm$core$Task$command( - elm$core$Task$Perform( - A2(elm$core$Task$map, toMessage, task))); + A2(elm$core$Task$map, toMessage, task)); }); -var elm$url$Url$Http = {$: 'Http'}; -var elm$url$Url$Https = {$: 'Https'}; +var elm$url$Url$Http = 0; +var elm$url$Url$Https = 1; var elm$core$String$indexes = _String_indexes; var elm$core$String$left = F2( function (n, string) { @@ -9230,7 +9201,7 @@ var elm$core$String$left = F2( var elm$core$String$toInt = _String_toInt; var elm$url$Url$Url = F6( function (protocol, host, port_, path, query, fragment) { - return {fragment: fragment, host: host, path: path, port_: port_, protocol: protocol, query: query}; + return {bS: fragment, bU: host, b5: path, b7: port_, cb: protocol, V: query}; }); var elm$url$Url$chompBeforePath = F5( function (protocol, path, params, frag, str) { @@ -9246,7 +9217,7 @@ var elm$url$Url$chompBeforePath = F5( var i = _n0.a; var _n1 = elm$core$String$toInt( A2(elm$core$String$dropLeft, i + 1, str)); - if (_n1.$ === 'Nothing') { + if (_n1.$ === 1) { return elm$core$Maybe$Nothing; } else { var port_ = _n1; @@ -9328,10 +9299,10 @@ var elm$url$Url$chompAfterProtocol = F2( var elm$url$Url$fromString = function (str) { return A2(elm$core$String$startsWith, 'http://', str) ? A2( elm$url$Url$chompAfterProtocol, - elm$url$Url$Http, + 0, A2(elm$core$String$dropLeft, 7, str)) : (A2(elm$core$String$startsWith, 'https://', str) ? A2( elm$url$Url$chompAfterProtocol, - elm$url$Url$Https, + 1, A2(elm$core$String$dropLeft, 8, str)) : elm$core$Maybe$Nothing); }; var elm$browser$Browser$element = _Browser_element; @@ -9371,7 +9342,7 @@ var rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml = F2( var pairs = _n7.a; var styles = _n7.b; switch (html.$) { - case 'Unstyled': + case 4: var vdom = html.a; return _Utils_Tuple2( A2( @@ -9379,7 +9350,7 @@ var rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml = F2( _Utils_Tuple2(key, vdom), pairs), styles); - case 'Node': + case 0: var elemType = html.a; var properties = html.b; var children = html.c; @@ -9402,7 +9373,7 @@ var rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml = F2( _Utils_Tuple2(key, vdom), pairs), finalStyles); - case 'NodeNS': + case 1: var ns = html.a; var elemType = html.b; var properties = html.c; @@ -9427,7 +9398,7 @@ var rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml = F2( _Utils_Tuple2(key, vdom), pairs), finalStyles); - case 'KeyedNode': + case 2: var elemType = html.a; var properties = html.b; var children = html.c; @@ -9482,12 +9453,12 @@ var rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml = F2( var nodes = _n0.a; var styles = _n0.b; switch (html.$) { - case 'Unstyled': + case 4: var vdomNode = html.a; return _Utils_Tuple2( A2(elm$core$List$cons, vdomNode, nodes), styles); - case 'Node': + case 0: var elemType = html.a; var properties = html.b; var children = html.c; @@ -9507,7 +9478,7 @@ var rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml = F2( return _Utils_Tuple2( A2(elm$core$List$cons, vdomNode, nodes), finalStyles); - case 'NodeNS': + case 1: var ns = html.a; var elemType = html.b; var properties = html.c; @@ -9529,7 +9500,7 @@ var rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml = F2( return _Utils_Tuple2( A2(elm$core$List$cons, vdomNode, nodes), finalStyles); - case 'KeyedNode': + case 2: var elemType = html.a; var properties = html.b; var children = html.c; @@ -9575,7 +9546,7 @@ var rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml = F2( }); var elm$core$Dict$singleton = F2( function (key, value) { - return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, key, value, elm$core$Dict$RBEmpty_elm_builtin, elm$core$Dict$RBEmpty_elm_builtin); + return A5(elm$core$Dict$RBNode_elm_builtin, 1, key, value, elm$core$Dict$RBEmpty_elm_builtin, elm$core$Dict$RBEmpty_elm_builtin); }); var rtfeldman$elm_css$VirtualDom$Styled$stylesFromPropertiesHelp = F2( function (candidate, properties) { @@ -9607,7 +9578,7 @@ var rtfeldman$elm_css$VirtualDom$Styled$stylesFromPropertiesHelp = F2( }); var rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties = function (properties) { var _n0 = A2(rtfeldman$elm_css$VirtualDom$Styled$stylesFromPropertiesHelp, elm$core$Maybe$Nothing, properties); - if (_n0.$ === 'Nothing') { + if (_n0.$ === 1) { return elm$core$Dict$empty; } else { var _n1 = _n0.a; @@ -9617,7 +9588,7 @@ var rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties = function (propert } }; var rtfeldman$elm_css$Css$Structure$ClassSelector = function (a) { - return {$: 'ClassSelector', a: a}; + return {$: 0, a: a}; }; var rtfeldman$elm_css$VirtualDom$Styled$snippetFromPair = function (_n0) { var classname = _n0.a; @@ -9788,21 +9759,21 @@ var rtfeldman$elm_css$VirtualDom$Styled$unstyleNS = F4( }); var rtfeldman$elm_css$VirtualDom$Styled$toUnstyled = function (vdom) { switch (vdom.$) { - case 'Unstyled': + case 4: var plainNode = vdom.a; return plainNode; - case 'Node': + case 0: var elemType = vdom.a; var properties = vdom.b; var children = vdom.c; return A3(rtfeldman$elm_css$VirtualDom$Styled$unstyle, elemType, properties, children); - case 'NodeNS': + case 1: var ns = vdom.a; var elemType = vdom.b; var properties = vdom.c; var children = vdom.d; return A4(rtfeldman$elm_css$VirtualDom$Styled$unstyleNS, ns, elemType, properties, children); - case 'KeyedNode': + case 2: var elemType = vdom.a; var properties = vdom.b; var children = vdom.c; @@ -9818,10 +9789,10 @@ var rtfeldman$elm_css$VirtualDom$Styled$toUnstyled = function (vdom) { var rtfeldman$elm_css$Html$Styled$toUnstyled = rtfeldman$elm_css$VirtualDom$Styled$toUnstyled; var author$project$Main$main = elm$browser$Browser$element( { - init: author$project$Main$init, - subscriptions: author$project$Main$subscriptions, - update: author$project$Main$update, - view: A2(elm$core$Basics$composeR, author$project$Main$view, rtfeldman$elm_css$Html$Styled$toUnstyled) + cP: author$project$Main$init, + c0: author$project$Main$subscriptions, + c2: author$project$Main$update, + c5: A2(elm$core$Basics$composeR, author$project$Main$view, rtfeldman$elm_css$Html$Styled$toUnstyled) }); _Platform_export({'Main':{'init':author$project$Main$main( elm$json$Json$Decode$list( @@ -9832,7 +9803,7 @@ _Platform_export({'Main':{'init':author$project$Main$main( elm$json$Json$Decode$andThen, function (id) { return elm$json$Json$Decode$succeed( - {id: id, word: word}); + {al: id, _: word}); }, A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); }, diff --git a/web-modules/lexicon/deploy.bat b/web-modules/lexicon/deploy.bat new file mode 100644 index 00000000..df5879e1 --- /dev/null +++ b/web-modules/lexicon/deploy.bat @@ -0,0 +1,4 @@ +@echo off + +elm make src/Main.elm --output=build/bundle.js --optimize +xcopy .\build\* ..\..\modules\lexicon\web\ /E /Y \ No newline at end of file diff --git a/web-modules/lexicon/make.bat b/web-modules/lexicon/make.bat new file mode 100644 index 00000000..fd34dc49 --- /dev/null +++ b/web-modules/lexicon/make.bat @@ -0,0 +1,3 @@ +@echo off + +elm make src/Main.elm --output=build/bundle.js --optimize \ No newline at end of file diff --git a/web-modules/lexicon/src/Lexicon.elm b/web-modules/lexicon/src/Lexicon.elm index 28391dd5..79d01fe7 100755 --- a/web-modules/lexicon/src/Lexicon.elm +++ b/web-modules/lexicon/src/Lexicon.elm @@ -157,7 +157,7 @@ update msg model = HandleWordListResponse result -> case result of Ok results -> - ( { model | wordList = Just (Debug.log "wordlist:" results) }, Cmd.none ) + ( { model | wordList = Just results }, Cmd.none ) Err error -> case error of @@ -170,7 +170,7 @@ update msg model = HandleWordDefinitionResponse result -> case result of Ok results -> - ( { model | currentWord = Just (Debug.log "currentWord:" results) }, Cmd.none ) + ( { model | currentWord = Just results }, Cmd.none ) Err error -> case error of From 9686afc82347629ddc75ca1a2d73bd6028022876 Mon Sep 17 00:00:00 2001 From: andre alves garzia Date: Wed, 19 Sep 2018 13:17:12 +0100 Subject: [PATCH 3/4] tentative fix for #175 --- modules/lexicon/web/bundle.js | 728 +-- modules/lexicon/web/elm-package.json | 15 - web-modules/lexicon/build/bundle.js | 728 +-- web-modules/lexicon/index.html | 6117 +++++++++++++++++--- web-modules/lexicon/live_server.bat | 2 +- web-modules/lexicon/src/Main.elm | 14 +- web-modules/lexicon/src/Theme/Elements.elm | 21 +- 7 files changed, 6028 insertions(+), 1597 deletions(-) delete mode 100644 modules/lexicon/web/elm-package.json diff --git a/modules/lexicon/web/bundle.js b/modules/lexicon/web/bundle.js index 914de8b1..22bfa976 100755 --- a/modules/lexicon/web/bundle.js +++ b/modules/lexicon/web/bundle.js @@ -2298,89 +2298,6 @@ function _Platform_mergeExportsDebug(moduleName, obj, exports) -var _Bitwise_and = F2(function(a, b) -{ - return a & b; -}); - -var _Bitwise_or = F2(function(a, b) -{ - return a | b; -}); - -var _Bitwise_xor = F2(function(a, b) -{ - return a ^ b; -}); - -function _Bitwise_complement(a) -{ - return ~a; -}; - -var _Bitwise_shiftLeftBy = F2(function(offset, a) -{ - return a << offset; -}); - -var _Bitwise_shiftRightBy = F2(function(offset, a) -{ - return a >> offset; -}); - -var _Bitwise_shiftRightZfBy = F2(function(offset, a) -{ - return a >>> offset; -}); - - - -function _Time_now(millisToPosix) -{ - return _Scheduler_binding(function(callback) - { - callback(_Scheduler_succeed(millisToPosix(Date.now()))); - }); -} - -var _Time_setInterval = F2(function(interval, task) -{ - return _Scheduler_binding(function(callback) - { - var id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval); - return function() { clearInterval(id); }; - }); -}); - -function _Time_here() -{ - return _Scheduler_binding(function(callback) - { - callback(_Scheduler_succeed( - A2(elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil) - )); - }); -} - - -function _Time_getZoneName() -{ - return _Scheduler_binding(function(callback) - { - try - { - var name = elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone); - } - catch (e) - { - var name = elm$time$Time$Offset(new Date().getTimezoneOffset()); - } - callback(_Scheduler_succeed(name)); - }); -} - - - // HELPERS @@ -4372,6 +4289,89 @@ function _Browser_load(url) } })); } + + + +var _Bitwise_and = F2(function(a, b) +{ + return a & b; +}); + +var _Bitwise_or = F2(function(a, b) +{ + return a | b; +}); + +var _Bitwise_xor = F2(function(a, b) +{ + return a ^ b; +}); + +function _Bitwise_complement(a) +{ + return ~a; +}; + +var _Bitwise_shiftLeftBy = F2(function(offset, a) +{ + return a << offset; +}); + +var _Bitwise_shiftRightBy = F2(function(offset, a) +{ + return a >> offset; +}); + +var _Bitwise_shiftRightZfBy = F2(function(offset, a) +{ + return a >>> offset; +}); + + + +function _Time_now(millisToPosix) +{ + return _Scheduler_binding(function(callback) + { + callback(_Scheduler_succeed(millisToPosix(Date.now()))); + }); +} + +var _Time_setInterval = F2(function(interval, task) +{ + return _Scheduler_binding(function(callback) + { + var id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval); + return function() { clearInterval(id); }; + }); +}); + +function _Time_here() +{ + return _Scheduler_binding(function(callback) + { + callback(_Scheduler_succeed( + A2(elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil) + )); + }); +} + + +function _Time_getZoneName() +{ + return _Scheduler_binding(function(callback) + { + try + { + var name = elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone); + } + catch (e) + { + var name = elm$time$Time$Offset(new Date().getTimezoneOffset()); + } + callback(_Scheduler_succeed(name)); + }); +} var elm$core$Maybe$Nothing = {$: 1}; var author$project$Lexicon$initialModel = {aF: elm$core$Maybe$Nothing, af: elm$core$Maybe$Nothing, aV: elm$core$Maybe$Nothing}; var author$project$Main$SearchView = 1; @@ -5233,9 +5233,286 @@ var author$project$Main$scrollTop = _Platform_outgoingPort( function ($) { return elm$json$Json$Encode$null; }); -var elm$random$Random$Generate = elm$core$Basics$identity; -var elm$core$Task$andThen = _Scheduler_andThen; +var author$project$Main$NoOp = {$: 12}; +var elm$browser$Browser$External = function (a) { + return {$: 1, a: a}; +}; +var elm$browser$Browser$Internal = function (a) { + return {$: 0, a: a}; +}; +var elm$browser$Browser$Dom$NotFound = elm$core$Basics$identity; +var elm$core$Basics$never = function (_n0) { + never: + while (true) { + var nvr = _n0; + var $temp$_n0 = nvr; + _n0 = $temp$_n0; + continue never; + } +}; +var elm$core$Task$Perform = elm$core$Basics$identity; var elm$core$Task$succeed = _Scheduler_succeed; +var elm$core$Task$init = elm$core$Task$succeed(0); +var elm$core$List$map = F2( + function (f, xs) { + return A3( + elm$core$List$foldr, + F2( + function (x, acc) { + return A2( + elm$core$List$cons, + f(x), + acc); + }), + _List_Nil, + xs); + }); +var elm$core$Task$andThen = _Scheduler_andThen; +var elm$core$Task$map = F2( + function (func, taskA) { + return A2( + elm$core$Task$andThen, + function (a) { + return elm$core$Task$succeed( + func(a)); + }, + taskA); + }); +var elm$core$Task$map2 = F3( + function (func, taskA, taskB) { + return A2( + elm$core$Task$andThen, + function (a) { + return A2( + elm$core$Task$andThen, + function (b) { + return elm$core$Task$succeed( + A2(func, a, b)); + }, + taskB); + }, + taskA); + }); +var elm$core$Task$sequence = function (tasks) { + return A3( + elm$core$List$foldr, + elm$core$Task$map2(elm$core$List$cons), + elm$core$Task$succeed(_List_Nil), + tasks); +}; +var elm$core$Platform$sendToApp = _Platform_sendToApp; +var elm$core$Task$spawnCmd = F2( + function (router, _n0) { + var task = _n0; + return _Scheduler_spawn( + A2( + elm$core$Task$andThen, + elm$core$Platform$sendToApp(router), + task)); + }); +var elm$core$Task$onEffects = F3( + function (router, commands, state) { + return A2( + elm$core$Task$map, + function (_n0) { + return 0; + }, + elm$core$Task$sequence( + A2( + elm$core$List$map, + elm$core$Task$spawnCmd(router), + commands))); + }); +var elm$core$Task$onSelfMsg = F3( + function (_n0, _n1, _n2) { + return elm$core$Task$succeed(0); + }); +var elm$core$Task$cmdMap = F2( + function (tagger, _n0) { + var task = _n0; + return A2(elm$core$Task$map, tagger, task); + }); +_Platform_effectManagers['Task'] = _Platform_createManager(elm$core$Task$init, elm$core$Task$onEffects, elm$core$Task$onSelfMsg, elm$core$Task$cmdMap); +var elm$core$Task$command = _Platform_leaf('Task'); +var elm$core$Task$perform = F2( + function (toMessage, task) { + return elm$core$Task$command( + A2(elm$core$Task$map, toMessage, task)); + }); +var elm$json$Json$Decode$map = _Json_map1; +var elm$json$Json$Decode$map2 = _Json_map2; +var elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) { + switch (handler.$) { + case 0: + return 0; + case 1: + return 1; + case 2: + return 2; + default: + return 3; + } +}; +var elm$core$String$length = _String_length; +var elm$core$String$slice = _String_slice; +var elm$core$String$dropLeft = F2( + function (n, string) { + return (n < 1) ? string : A3( + elm$core$String$slice, + n, + elm$core$String$length(string), + string); + }); +var elm$core$String$startsWith = _String_startsWith; +var elm$url$Url$Http = 0; +var elm$url$Url$Https = 1; +var elm$core$String$indexes = _String_indexes; +var elm$core$String$isEmpty = function (string) { + return string === ''; +}; +var elm$core$String$left = F2( + function (n, string) { + return (n < 1) ? '' : A3(elm$core$String$slice, 0, n, string); + }); +var elm$core$String$contains = _String_contains; +var elm$core$String$toInt = _String_toInt; +var elm$url$Url$Url = F6( + function (protocol, host, port_, path, query, fragment) { + return {bS: fragment, bU: host, b5: path, b7: port_, cb: protocol, V: query}; + }); +var elm$url$Url$chompBeforePath = F5( + function (protocol, path, params, frag, str) { + if (elm$core$String$isEmpty(str) || A2(elm$core$String$contains, '@', str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, ':', str); + if (!_n0.b) { + return elm$core$Maybe$Just( + A6(elm$url$Url$Url, protocol, str, elm$core$Maybe$Nothing, path, params, frag)); + } else { + if (!_n0.b.b) { + var i = _n0.a; + var _n1 = elm$core$String$toInt( + A2(elm$core$String$dropLeft, i + 1, str)); + if (_n1.$ === 1) { + return elm$core$Maybe$Nothing; + } else { + var port_ = _n1; + return elm$core$Maybe$Just( + A6( + elm$url$Url$Url, + protocol, + A2(elm$core$String$left, i, str), + port_, + path, + params, + frag)); + } + } else { + return elm$core$Maybe$Nothing; + } + } + } + }); +var elm$url$Url$chompBeforeQuery = F4( + function (protocol, params, frag, str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, '/', str); + if (!_n0.b) { + return A5(elm$url$Url$chompBeforePath, protocol, '/', params, frag, str); + } else { + var i = _n0.a; + return A5( + elm$url$Url$chompBeforePath, + protocol, + A2(elm$core$String$dropLeft, i, str), + params, + frag, + A2(elm$core$String$left, i, str)); + } + } + }); +var elm$url$Url$chompBeforeFragment = F3( + function (protocol, frag, str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, '?', str); + if (!_n0.b) { + return A4(elm$url$Url$chompBeforeQuery, protocol, elm$core$Maybe$Nothing, frag, str); + } else { + var i = _n0.a; + return A4( + elm$url$Url$chompBeforeQuery, + protocol, + elm$core$Maybe$Just( + A2(elm$core$String$dropLeft, i + 1, str)), + frag, + A2(elm$core$String$left, i, str)); + } + } + }); +var elm$url$Url$chompAfterProtocol = F2( + function (protocol, str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, '#', str); + if (!_n0.b) { + return A3(elm$url$Url$chompBeforeFragment, protocol, elm$core$Maybe$Nothing, str); + } else { + var i = _n0.a; + return A3( + elm$url$Url$chompBeforeFragment, + protocol, + elm$core$Maybe$Just( + A2(elm$core$String$dropLeft, i + 1, str)), + A2(elm$core$String$left, i, str)); + } + } + }); +var elm$url$Url$fromString = function (str) { + return A2(elm$core$String$startsWith, 'http://', str) ? A2( + elm$url$Url$chompAfterProtocol, + 0, + A2(elm$core$String$dropLeft, 7, str)) : (A2(elm$core$String$startsWith, 'https://', str) ? A2( + elm$url$Url$chompAfterProtocol, + 1, + A2(elm$core$String$dropLeft, 8, str)) : elm$core$Maybe$Nothing); +}; +var elm$browser$Browser$Dom$blur = _Browser_call('blur'); +var elm$core$Basics$composeL = F3( + function (g, f, x) { + return g( + f(x)); + }); +var elm$core$Task$onError = _Scheduler_onError; +var elm$core$Task$attempt = F2( + function (resultToMessage, task) { + return elm$core$Task$command( + A2( + elm$core$Task$onError, + A2( + elm$core$Basics$composeL, + A2(elm$core$Basics$composeL, elm$core$Task$succeed, resultToMessage), + elm$core$Result$Err), + A2( + elm$core$Task$andThen, + A2( + elm$core$Basics$composeL, + A2(elm$core$Basics$composeL, elm$core$Task$succeed, resultToMessage), + elm$core$Result$Ok), + task))); + }); +var author$project$Main$unfocusSearchBox = A2( + elm$core$Task$attempt, + function (_n0) { + return author$project$Main$NoOp; + }, + elm$browser$Browser$Dom$blur('search-box')); +var elm$random$Random$Generate = elm$core$Basics$identity; var elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy; var elm$random$Random$Seed = F2( function (a, b) { @@ -5281,7 +5558,6 @@ var elm$random$Random$init = A2( elm$time$Time$posixToMillis(time))); }, elm$time$Time$now); -var elm$core$Platform$sendToApp = _Platform_sendToApp; var elm$random$Random$step = F2( function (_n0, seed) { var generator = _n0; @@ -5488,8 +5764,10 @@ var author$project$Main$update = F2( as: elm$core$Maybe$Just(swl) }), elm$core$Platform$Cmd$none); - default: + case 12: return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); + default: + return _Utils_Tuple2(model, author$project$Main$unfocusSearchBox); } }); var author$project$Main$LoadDefinitionByWord = function (a) { @@ -5497,17 +5775,6 @@ var author$project$Main$LoadDefinitionByWord = function (a) { }; var author$project$Main$GoHome = {$: 10}; var author$project$Main$GoSettings = {$: 11}; -var elm$core$String$length = _String_length; -var elm$core$String$slice = _String_slice; -var elm$core$String$dropLeft = F2( - function (n, string) { - return (n < 1) ? string : A3( - elm$core$String$slice, - n, - elm$core$String$length(string), - string); - }); -var elm$core$String$startsWith = _String_startsWith; var elm$core$String$foldr = _String_foldr; var elm$core$String$toList = function (string) { return A3(elm$core$String$foldr, elm$core$List$cons, _List_Nil, string); @@ -5574,9 +5841,6 @@ var elm$core$Result$mapError = F2( f(e)); } }); -var elm$core$String$isEmpty = function (string) { - return string === ''; -}; var elm$core$Basics$pow = _Basics_pow; var elm$core$String$fromChar = function (_char) { return A2(elm$core$String$cons, _char, ''); @@ -5907,20 +6171,6 @@ var rtfeldman$elm_css$Css$hex = function (str) { } return rtfeldman$elm_css$Css$erroneousHex(str); }; -var elm$core$List$map = F2( - function (f, xs) { - return A3( - elm$core$List$foldr, - F2( - function (x, acc) { - return A2( - elm$core$List$cons, - f(x), - acc); - }), - _List_Nil, - xs); - }); var rtfeldman$elm_css$Css$cssFunction = F2( function (funcName, args) { return funcName + ('(' + (A2(elm$core$String$join, ', ', args) + ')')); @@ -5971,20 +6221,6 @@ var elm$core$Tuple$second = function (_n0) { var y = _n0.b; return y; }; -var elm$json$Json$Decode$map = _Json_map1; -var elm$json$Json$Decode$map2 = _Json_map2; -var elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) { - switch (handler.$) { - case 0: - return 0; - case 1: - return 1; - case 2: - return 2; - default: - return 3; - } -}; var elm$virtual_dom$VirtualDom$property = F2( function (key, value) { return A2( @@ -7442,11 +7678,6 @@ var elm$core$Dict$insert = F3( return x; } }); -var elm$core$Basics$composeL = F3( - function (g, f, x) { - return g( - f(x)); - }); var elm$core$Basics$not = _Basics_not; var elm$core$List$any = F2( function (isOkay, list) { @@ -8470,6 +8701,7 @@ var author$project$Main$HelpView = 5; var author$project$Main$Navigate = function (a) { return {$: 1, a: a}; }; +var author$project$Main$Search = {$: 13}; var author$project$Main$LoadDefinition = function (a) { return {$: 2, a: a}; }; @@ -8487,7 +8719,6 @@ var author$project$Main$addWordItem = function (word) { rtfeldman$elm_css$Html$Styled$text(word._) ])); }; -var elm$core$String$contains = _String_contains; var author$project$Main$filterWordList = F2( function (word, list) { return elm$core$String$isEmpty(word) ? list : A2( @@ -8567,8 +8798,21 @@ var author$project$Theme$Elements$listHeader = A2( ]), _List_Nil) ])); +var elm$json$Json$Decode$fail = _Json_fail; +var elm$json$Json$Decode$int = _Json_decodeInt; +var rtfeldman$elm_css$Html$Styled$Events$keyCode = A2(elm$json$Json$Decode$field, 'keyCode', elm$json$Json$Decode$int); +var author$project$Theme$Elements$onEnter = function (msg) { + var isEnter = function (code) { + return (code === 13) ? elm$json$Json$Decode$succeed(msg) : elm$json$Json$Decode$fail('not ENTER'); + }; + return A2( + rtfeldman$elm_css$Html$Styled$Events$on, + 'keydown', + A2(elm$json$Json$Decode$andThen, isEnter, rtfeldman$elm_css$Html$Styled$Events$keyCode)); +}; var rtfeldman$elm_css$Css$transparent = {y: 0, B: 'transparent'}; var rtfeldman$elm_css$Html$Styled$input = rtfeldman$elm_css$Html$Styled$node('input'); +var rtfeldman$elm_css$Html$Styled$Attributes$id = rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('id'); var rtfeldman$elm_css$Html$Styled$Attributes$value = rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('value'); var rtfeldman$elm_css$Html$Styled$Events$alwaysStop = function (x) { return _Utils_Tuple2(x, true); @@ -8601,8 +8845,8 @@ var rtfeldman$elm_css$Html$Styled$Events$onInput = function (tagger) { rtfeldman$elm_css$Html$Styled$Events$alwaysStop, A2(elm$json$Json$Decode$map, tagger, rtfeldman$elm_css$Html$Styled$Events$targetValue))); }; -var author$project$Theme$Elements$searchBox = F2( - function (changed, query) { +var author$project$Theme$Elements$searchBox = F3( + function (changed, search, query) { return A2( rtfeldman$elm_css$Html$Styled$div, _List_fromArray( @@ -8631,7 +8875,9 @@ var author$project$Theme$Elements$searchBox = F2( rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C) ])), rtfeldman$elm_css$Html$Styled$Events$onInput(changed), - rtfeldman$elm_css$Html$Styled$Attributes$value(query) + author$project$Theme$Elements$onEnter(search), + rtfeldman$elm_css$Html$Styled$Attributes$value(query), + rtfeldman$elm_css$Html$Styled$Attributes$id('search-box') ]), _List_Nil), A2( @@ -8727,7 +8973,7 @@ var author$project$Main$myWordsView = function (model) { [ author$project$Theme$Elements$searchHeader( author$project$Main$Navigate(5)), - A2(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, model.V), + A3(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, author$project$Main$Search, model.V), author$project$Theme$Elements$listHeader, A2( rtfeldman$elm_css$Html$Styled$ul, @@ -8928,7 +9174,7 @@ var author$project$Main$searchView = function (model) { [ author$project$Theme$Elements$searchHeader( author$project$Main$Navigate(5)), - A2(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, model.V), + A3(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, author$project$Main$Search, model.V), author$project$Theme$Elements$listHeader, A2( rtfeldman$elm_css$Html$Styled$ul, @@ -9103,208 +9349,6 @@ var author$project$Main$view = function (model) { author$project$Main$appNavigation ])); }; -var elm$browser$Browser$External = function (a) { - return {$: 1, a: a}; -}; -var elm$browser$Browser$Internal = function (a) { - return {$: 0, a: a}; -}; -var elm$browser$Browser$Dom$NotFound = elm$core$Basics$identity; -var elm$core$Basics$never = function (_n0) { - never: - while (true) { - var nvr = _n0; - var $temp$_n0 = nvr; - _n0 = $temp$_n0; - continue never; - } -}; -var elm$core$Task$Perform = elm$core$Basics$identity; -var elm$core$Task$init = elm$core$Task$succeed(0); -var elm$core$Task$map = F2( - function (func, taskA) { - return A2( - elm$core$Task$andThen, - function (a) { - return elm$core$Task$succeed( - func(a)); - }, - taskA); - }); -var elm$core$Task$map2 = F3( - function (func, taskA, taskB) { - return A2( - elm$core$Task$andThen, - function (a) { - return A2( - elm$core$Task$andThen, - function (b) { - return elm$core$Task$succeed( - A2(func, a, b)); - }, - taskB); - }, - taskA); - }); -var elm$core$Task$sequence = function (tasks) { - return A3( - elm$core$List$foldr, - elm$core$Task$map2(elm$core$List$cons), - elm$core$Task$succeed(_List_Nil), - tasks); -}; -var elm$core$Task$spawnCmd = F2( - function (router, _n0) { - var task = _n0; - return _Scheduler_spawn( - A2( - elm$core$Task$andThen, - elm$core$Platform$sendToApp(router), - task)); - }); -var elm$core$Task$onEffects = F3( - function (router, commands, state) { - return A2( - elm$core$Task$map, - function (_n0) { - return 0; - }, - elm$core$Task$sequence( - A2( - elm$core$List$map, - elm$core$Task$spawnCmd(router), - commands))); - }); -var elm$core$Task$onSelfMsg = F3( - function (_n0, _n1, _n2) { - return elm$core$Task$succeed(0); - }); -var elm$core$Task$cmdMap = F2( - function (tagger, _n0) { - var task = _n0; - return A2(elm$core$Task$map, tagger, task); - }); -_Platform_effectManagers['Task'] = _Platform_createManager(elm$core$Task$init, elm$core$Task$onEffects, elm$core$Task$onSelfMsg, elm$core$Task$cmdMap); -var elm$core$Task$command = _Platform_leaf('Task'); -var elm$core$Task$perform = F2( - function (toMessage, task) { - return elm$core$Task$command( - A2(elm$core$Task$map, toMessage, task)); - }); -var elm$url$Url$Http = 0; -var elm$url$Url$Https = 1; -var elm$core$String$indexes = _String_indexes; -var elm$core$String$left = F2( - function (n, string) { - return (n < 1) ? '' : A3(elm$core$String$slice, 0, n, string); - }); -var elm$core$String$toInt = _String_toInt; -var elm$url$Url$Url = F6( - function (protocol, host, port_, path, query, fragment) { - return {bS: fragment, bU: host, b5: path, b7: port_, cb: protocol, V: query}; - }); -var elm$url$Url$chompBeforePath = F5( - function (protocol, path, params, frag, str) { - if (elm$core$String$isEmpty(str) || A2(elm$core$String$contains, '@', str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, ':', str); - if (!_n0.b) { - return elm$core$Maybe$Just( - A6(elm$url$Url$Url, protocol, str, elm$core$Maybe$Nothing, path, params, frag)); - } else { - if (!_n0.b.b) { - var i = _n0.a; - var _n1 = elm$core$String$toInt( - A2(elm$core$String$dropLeft, i + 1, str)); - if (_n1.$ === 1) { - return elm$core$Maybe$Nothing; - } else { - var port_ = _n1; - return elm$core$Maybe$Just( - A6( - elm$url$Url$Url, - protocol, - A2(elm$core$String$left, i, str), - port_, - path, - params, - frag)); - } - } else { - return elm$core$Maybe$Nothing; - } - } - } - }); -var elm$url$Url$chompBeforeQuery = F4( - function (protocol, params, frag, str) { - if (elm$core$String$isEmpty(str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, '/', str); - if (!_n0.b) { - return A5(elm$url$Url$chompBeforePath, protocol, '/', params, frag, str); - } else { - var i = _n0.a; - return A5( - elm$url$Url$chompBeforePath, - protocol, - A2(elm$core$String$dropLeft, i, str), - params, - frag, - A2(elm$core$String$left, i, str)); - } - } - }); -var elm$url$Url$chompBeforeFragment = F3( - function (protocol, frag, str) { - if (elm$core$String$isEmpty(str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, '?', str); - if (!_n0.b) { - return A4(elm$url$Url$chompBeforeQuery, protocol, elm$core$Maybe$Nothing, frag, str); - } else { - var i = _n0.a; - return A4( - elm$url$Url$chompBeforeQuery, - protocol, - elm$core$Maybe$Just( - A2(elm$core$String$dropLeft, i + 1, str)), - frag, - A2(elm$core$String$left, i, str)); - } - } - }); -var elm$url$Url$chompAfterProtocol = F2( - function (protocol, str) { - if (elm$core$String$isEmpty(str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, '#', str); - if (!_n0.b) { - return A3(elm$url$Url$chompBeforeFragment, protocol, elm$core$Maybe$Nothing, str); - } else { - var i = _n0.a; - return A3( - elm$url$Url$chompBeforeFragment, - protocol, - elm$core$Maybe$Just( - A2(elm$core$String$dropLeft, i + 1, str)), - A2(elm$core$String$left, i, str)); - } - } - }); -var elm$url$Url$fromString = function (str) { - return A2(elm$core$String$startsWith, 'http://', str) ? A2( - elm$url$Url$chompAfterProtocol, - 0, - A2(elm$core$String$dropLeft, 7, str)) : (A2(elm$core$String$startsWith, 'https://', str) ? A2( - elm$url$Url$chompAfterProtocol, - 1, - A2(elm$core$String$dropLeft, 8, str)) : elm$core$Maybe$Nothing); -}; var elm$browser$Browser$element = _Browser_element; var elm$virtual_dom$VirtualDom$node = function (tag) { return _VirtualDom_node( diff --git a/modules/lexicon/web/elm-package.json b/modules/lexicon/web/elm-package.json deleted file mode 100644 index f5ba1c5a..00000000 --- a/modules/lexicon/web/elm-package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "version": "1.0.0", - "summary": "helpful summary of your project, less than 80 characters", - "repository": "https://github.com/user/project.git", - "license": "BSD3", - "source-directories": [ - "." - ], - "exposed-modules": [], - "dependencies": { - "elm-lang/core": "5.1.1 <= v < 6.0.0", - "elm-lang/html": "2.0.0 <= v < 3.0.0" - }, - "elm-version": "0.18.0 <= v < 0.19.0" -} diff --git a/web-modules/lexicon/build/bundle.js b/web-modules/lexicon/build/bundle.js index 914de8b1..22bfa976 100644 --- a/web-modules/lexicon/build/bundle.js +++ b/web-modules/lexicon/build/bundle.js @@ -2298,89 +2298,6 @@ function _Platform_mergeExportsDebug(moduleName, obj, exports) -var _Bitwise_and = F2(function(a, b) -{ - return a & b; -}); - -var _Bitwise_or = F2(function(a, b) -{ - return a | b; -}); - -var _Bitwise_xor = F2(function(a, b) -{ - return a ^ b; -}); - -function _Bitwise_complement(a) -{ - return ~a; -}; - -var _Bitwise_shiftLeftBy = F2(function(offset, a) -{ - return a << offset; -}); - -var _Bitwise_shiftRightBy = F2(function(offset, a) -{ - return a >> offset; -}); - -var _Bitwise_shiftRightZfBy = F2(function(offset, a) -{ - return a >>> offset; -}); - - - -function _Time_now(millisToPosix) -{ - return _Scheduler_binding(function(callback) - { - callback(_Scheduler_succeed(millisToPosix(Date.now()))); - }); -} - -var _Time_setInterval = F2(function(interval, task) -{ - return _Scheduler_binding(function(callback) - { - var id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval); - return function() { clearInterval(id); }; - }); -}); - -function _Time_here() -{ - return _Scheduler_binding(function(callback) - { - callback(_Scheduler_succeed( - A2(elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil) - )); - }); -} - - -function _Time_getZoneName() -{ - return _Scheduler_binding(function(callback) - { - try - { - var name = elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone); - } - catch (e) - { - var name = elm$time$Time$Offset(new Date().getTimezoneOffset()); - } - callback(_Scheduler_succeed(name)); - }); -} - - - // HELPERS @@ -4372,6 +4289,89 @@ function _Browser_load(url) } })); } + + + +var _Bitwise_and = F2(function(a, b) +{ + return a & b; +}); + +var _Bitwise_or = F2(function(a, b) +{ + return a | b; +}); + +var _Bitwise_xor = F2(function(a, b) +{ + return a ^ b; +}); + +function _Bitwise_complement(a) +{ + return ~a; +}; + +var _Bitwise_shiftLeftBy = F2(function(offset, a) +{ + return a << offset; +}); + +var _Bitwise_shiftRightBy = F2(function(offset, a) +{ + return a >> offset; +}); + +var _Bitwise_shiftRightZfBy = F2(function(offset, a) +{ + return a >>> offset; +}); + + + +function _Time_now(millisToPosix) +{ + return _Scheduler_binding(function(callback) + { + callback(_Scheduler_succeed(millisToPosix(Date.now()))); + }); +} + +var _Time_setInterval = F2(function(interval, task) +{ + return _Scheduler_binding(function(callback) + { + var id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval); + return function() { clearInterval(id); }; + }); +}); + +function _Time_here() +{ + return _Scheduler_binding(function(callback) + { + callback(_Scheduler_succeed( + A2(elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil) + )); + }); +} + + +function _Time_getZoneName() +{ + return _Scheduler_binding(function(callback) + { + try + { + var name = elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone); + } + catch (e) + { + var name = elm$time$Time$Offset(new Date().getTimezoneOffset()); + } + callback(_Scheduler_succeed(name)); + }); +} var elm$core$Maybe$Nothing = {$: 1}; var author$project$Lexicon$initialModel = {aF: elm$core$Maybe$Nothing, af: elm$core$Maybe$Nothing, aV: elm$core$Maybe$Nothing}; var author$project$Main$SearchView = 1; @@ -5233,9 +5233,286 @@ var author$project$Main$scrollTop = _Platform_outgoingPort( function ($) { return elm$json$Json$Encode$null; }); -var elm$random$Random$Generate = elm$core$Basics$identity; -var elm$core$Task$andThen = _Scheduler_andThen; +var author$project$Main$NoOp = {$: 12}; +var elm$browser$Browser$External = function (a) { + return {$: 1, a: a}; +}; +var elm$browser$Browser$Internal = function (a) { + return {$: 0, a: a}; +}; +var elm$browser$Browser$Dom$NotFound = elm$core$Basics$identity; +var elm$core$Basics$never = function (_n0) { + never: + while (true) { + var nvr = _n0; + var $temp$_n0 = nvr; + _n0 = $temp$_n0; + continue never; + } +}; +var elm$core$Task$Perform = elm$core$Basics$identity; var elm$core$Task$succeed = _Scheduler_succeed; +var elm$core$Task$init = elm$core$Task$succeed(0); +var elm$core$List$map = F2( + function (f, xs) { + return A3( + elm$core$List$foldr, + F2( + function (x, acc) { + return A2( + elm$core$List$cons, + f(x), + acc); + }), + _List_Nil, + xs); + }); +var elm$core$Task$andThen = _Scheduler_andThen; +var elm$core$Task$map = F2( + function (func, taskA) { + return A2( + elm$core$Task$andThen, + function (a) { + return elm$core$Task$succeed( + func(a)); + }, + taskA); + }); +var elm$core$Task$map2 = F3( + function (func, taskA, taskB) { + return A2( + elm$core$Task$andThen, + function (a) { + return A2( + elm$core$Task$andThen, + function (b) { + return elm$core$Task$succeed( + A2(func, a, b)); + }, + taskB); + }, + taskA); + }); +var elm$core$Task$sequence = function (tasks) { + return A3( + elm$core$List$foldr, + elm$core$Task$map2(elm$core$List$cons), + elm$core$Task$succeed(_List_Nil), + tasks); +}; +var elm$core$Platform$sendToApp = _Platform_sendToApp; +var elm$core$Task$spawnCmd = F2( + function (router, _n0) { + var task = _n0; + return _Scheduler_spawn( + A2( + elm$core$Task$andThen, + elm$core$Platform$sendToApp(router), + task)); + }); +var elm$core$Task$onEffects = F3( + function (router, commands, state) { + return A2( + elm$core$Task$map, + function (_n0) { + return 0; + }, + elm$core$Task$sequence( + A2( + elm$core$List$map, + elm$core$Task$spawnCmd(router), + commands))); + }); +var elm$core$Task$onSelfMsg = F3( + function (_n0, _n1, _n2) { + return elm$core$Task$succeed(0); + }); +var elm$core$Task$cmdMap = F2( + function (tagger, _n0) { + var task = _n0; + return A2(elm$core$Task$map, tagger, task); + }); +_Platform_effectManagers['Task'] = _Platform_createManager(elm$core$Task$init, elm$core$Task$onEffects, elm$core$Task$onSelfMsg, elm$core$Task$cmdMap); +var elm$core$Task$command = _Platform_leaf('Task'); +var elm$core$Task$perform = F2( + function (toMessage, task) { + return elm$core$Task$command( + A2(elm$core$Task$map, toMessage, task)); + }); +var elm$json$Json$Decode$map = _Json_map1; +var elm$json$Json$Decode$map2 = _Json_map2; +var elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) { + switch (handler.$) { + case 0: + return 0; + case 1: + return 1; + case 2: + return 2; + default: + return 3; + } +}; +var elm$core$String$length = _String_length; +var elm$core$String$slice = _String_slice; +var elm$core$String$dropLeft = F2( + function (n, string) { + return (n < 1) ? string : A3( + elm$core$String$slice, + n, + elm$core$String$length(string), + string); + }); +var elm$core$String$startsWith = _String_startsWith; +var elm$url$Url$Http = 0; +var elm$url$Url$Https = 1; +var elm$core$String$indexes = _String_indexes; +var elm$core$String$isEmpty = function (string) { + return string === ''; +}; +var elm$core$String$left = F2( + function (n, string) { + return (n < 1) ? '' : A3(elm$core$String$slice, 0, n, string); + }); +var elm$core$String$contains = _String_contains; +var elm$core$String$toInt = _String_toInt; +var elm$url$Url$Url = F6( + function (protocol, host, port_, path, query, fragment) { + return {bS: fragment, bU: host, b5: path, b7: port_, cb: protocol, V: query}; + }); +var elm$url$Url$chompBeforePath = F5( + function (protocol, path, params, frag, str) { + if (elm$core$String$isEmpty(str) || A2(elm$core$String$contains, '@', str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, ':', str); + if (!_n0.b) { + return elm$core$Maybe$Just( + A6(elm$url$Url$Url, protocol, str, elm$core$Maybe$Nothing, path, params, frag)); + } else { + if (!_n0.b.b) { + var i = _n0.a; + var _n1 = elm$core$String$toInt( + A2(elm$core$String$dropLeft, i + 1, str)); + if (_n1.$ === 1) { + return elm$core$Maybe$Nothing; + } else { + var port_ = _n1; + return elm$core$Maybe$Just( + A6( + elm$url$Url$Url, + protocol, + A2(elm$core$String$left, i, str), + port_, + path, + params, + frag)); + } + } else { + return elm$core$Maybe$Nothing; + } + } + } + }); +var elm$url$Url$chompBeforeQuery = F4( + function (protocol, params, frag, str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, '/', str); + if (!_n0.b) { + return A5(elm$url$Url$chompBeforePath, protocol, '/', params, frag, str); + } else { + var i = _n0.a; + return A5( + elm$url$Url$chompBeforePath, + protocol, + A2(elm$core$String$dropLeft, i, str), + params, + frag, + A2(elm$core$String$left, i, str)); + } + } + }); +var elm$url$Url$chompBeforeFragment = F3( + function (protocol, frag, str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, '?', str); + if (!_n0.b) { + return A4(elm$url$Url$chompBeforeQuery, protocol, elm$core$Maybe$Nothing, frag, str); + } else { + var i = _n0.a; + return A4( + elm$url$Url$chompBeforeQuery, + protocol, + elm$core$Maybe$Just( + A2(elm$core$String$dropLeft, i + 1, str)), + frag, + A2(elm$core$String$left, i, str)); + } + } + }); +var elm$url$Url$chompAfterProtocol = F2( + function (protocol, str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, '#', str); + if (!_n0.b) { + return A3(elm$url$Url$chompBeforeFragment, protocol, elm$core$Maybe$Nothing, str); + } else { + var i = _n0.a; + return A3( + elm$url$Url$chompBeforeFragment, + protocol, + elm$core$Maybe$Just( + A2(elm$core$String$dropLeft, i + 1, str)), + A2(elm$core$String$left, i, str)); + } + } + }); +var elm$url$Url$fromString = function (str) { + return A2(elm$core$String$startsWith, 'http://', str) ? A2( + elm$url$Url$chompAfterProtocol, + 0, + A2(elm$core$String$dropLeft, 7, str)) : (A2(elm$core$String$startsWith, 'https://', str) ? A2( + elm$url$Url$chompAfterProtocol, + 1, + A2(elm$core$String$dropLeft, 8, str)) : elm$core$Maybe$Nothing); +}; +var elm$browser$Browser$Dom$blur = _Browser_call('blur'); +var elm$core$Basics$composeL = F3( + function (g, f, x) { + return g( + f(x)); + }); +var elm$core$Task$onError = _Scheduler_onError; +var elm$core$Task$attempt = F2( + function (resultToMessage, task) { + return elm$core$Task$command( + A2( + elm$core$Task$onError, + A2( + elm$core$Basics$composeL, + A2(elm$core$Basics$composeL, elm$core$Task$succeed, resultToMessage), + elm$core$Result$Err), + A2( + elm$core$Task$andThen, + A2( + elm$core$Basics$composeL, + A2(elm$core$Basics$composeL, elm$core$Task$succeed, resultToMessage), + elm$core$Result$Ok), + task))); + }); +var author$project$Main$unfocusSearchBox = A2( + elm$core$Task$attempt, + function (_n0) { + return author$project$Main$NoOp; + }, + elm$browser$Browser$Dom$blur('search-box')); +var elm$random$Random$Generate = elm$core$Basics$identity; var elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy; var elm$random$Random$Seed = F2( function (a, b) { @@ -5281,7 +5558,6 @@ var elm$random$Random$init = A2( elm$time$Time$posixToMillis(time))); }, elm$time$Time$now); -var elm$core$Platform$sendToApp = _Platform_sendToApp; var elm$random$Random$step = F2( function (_n0, seed) { var generator = _n0; @@ -5488,8 +5764,10 @@ var author$project$Main$update = F2( as: elm$core$Maybe$Just(swl) }), elm$core$Platform$Cmd$none); - default: + case 12: return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); + default: + return _Utils_Tuple2(model, author$project$Main$unfocusSearchBox); } }); var author$project$Main$LoadDefinitionByWord = function (a) { @@ -5497,17 +5775,6 @@ var author$project$Main$LoadDefinitionByWord = function (a) { }; var author$project$Main$GoHome = {$: 10}; var author$project$Main$GoSettings = {$: 11}; -var elm$core$String$length = _String_length; -var elm$core$String$slice = _String_slice; -var elm$core$String$dropLeft = F2( - function (n, string) { - return (n < 1) ? string : A3( - elm$core$String$slice, - n, - elm$core$String$length(string), - string); - }); -var elm$core$String$startsWith = _String_startsWith; var elm$core$String$foldr = _String_foldr; var elm$core$String$toList = function (string) { return A3(elm$core$String$foldr, elm$core$List$cons, _List_Nil, string); @@ -5574,9 +5841,6 @@ var elm$core$Result$mapError = F2( f(e)); } }); -var elm$core$String$isEmpty = function (string) { - return string === ''; -}; var elm$core$Basics$pow = _Basics_pow; var elm$core$String$fromChar = function (_char) { return A2(elm$core$String$cons, _char, ''); @@ -5907,20 +6171,6 @@ var rtfeldman$elm_css$Css$hex = function (str) { } return rtfeldman$elm_css$Css$erroneousHex(str); }; -var elm$core$List$map = F2( - function (f, xs) { - return A3( - elm$core$List$foldr, - F2( - function (x, acc) { - return A2( - elm$core$List$cons, - f(x), - acc); - }), - _List_Nil, - xs); - }); var rtfeldman$elm_css$Css$cssFunction = F2( function (funcName, args) { return funcName + ('(' + (A2(elm$core$String$join, ', ', args) + ')')); @@ -5971,20 +6221,6 @@ var elm$core$Tuple$second = function (_n0) { var y = _n0.b; return y; }; -var elm$json$Json$Decode$map = _Json_map1; -var elm$json$Json$Decode$map2 = _Json_map2; -var elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) { - switch (handler.$) { - case 0: - return 0; - case 1: - return 1; - case 2: - return 2; - default: - return 3; - } -}; var elm$virtual_dom$VirtualDom$property = F2( function (key, value) { return A2( @@ -7442,11 +7678,6 @@ var elm$core$Dict$insert = F3( return x; } }); -var elm$core$Basics$composeL = F3( - function (g, f, x) { - return g( - f(x)); - }); var elm$core$Basics$not = _Basics_not; var elm$core$List$any = F2( function (isOkay, list) { @@ -8470,6 +8701,7 @@ var author$project$Main$HelpView = 5; var author$project$Main$Navigate = function (a) { return {$: 1, a: a}; }; +var author$project$Main$Search = {$: 13}; var author$project$Main$LoadDefinition = function (a) { return {$: 2, a: a}; }; @@ -8487,7 +8719,6 @@ var author$project$Main$addWordItem = function (word) { rtfeldman$elm_css$Html$Styled$text(word._) ])); }; -var elm$core$String$contains = _String_contains; var author$project$Main$filterWordList = F2( function (word, list) { return elm$core$String$isEmpty(word) ? list : A2( @@ -8567,8 +8798,21 @@ var author$project$Theme$Elements$listHeader = A2( ]), _List_Nil) ])); +var elm$json$Json$Decode$fail = _Json_fail; +var elm$json$Json$Decode$int = _Json_decodeInt; +var rtfeldman$elm_css$Html$Styled$Events$keyCode = A2(elm$json$Json$Decode$field, 'keyCode', elm$json$Json$Decode$int); +var author$project$Theme$Elements$onEnter = function (msg) { + var isEnter = function (code) { + return (code === 13) ? elm$json$Json$Decode$succeed(msg) : elm$json$Json$Decode$fail('not ENTER'); + }; + return A2( + rtfeldman$elm_css$Html$Styled$Events$on, + 'keydown', + A2(elm$json$Json$Decode$andThen, isEnter, rtfeldman$elm_css$Html$Styled$Events$keyCode)); +}; var rtfeldman$elm_css$Css$transparent = {y: 0, B: 'transparent'}; var rtfeldman$elm_css$Html$Styled$input = rtfeldman$elm_css$Html$Styled$node('input'); +var rtfeldman$elm_css$Html$Styled$Attributes$id = rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('id'); var rtfeldman$elm_css$Html$Styled$Attributes$value = rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('value'); var rtfeldman$elm_css$Html$Styled$Events$alwaysStop = function (x) { return _Utils_Tuple2(x, true); @@ -8601,8 +8845,8 @@ var rtfeldman$elm_css$Html$Styled$Events$onInput = function (tagger) { rtfeldman$elm_css$Html$Styled$Events$alwaysStop, A2(elm$json$Json$Decode$map, tagger, rtfeldman$elm_css$Html$Styled$Events$targetValue))); }; -var author$project$Theme$Elements$searchBox = F2( - function (changed, query) { +var author$project$Theme$Elements$searchBox = F3( + function (changed, search, query) { return A2( rtfeldman$elm_css$Html$Styled$div, _List_fromArray( @@ -8631,7 +8875,9 @@ var author$project$Theme$Elements$searchBox = F2( rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.s.C) ])), rtfeldman$elm_css$Html$Styled$Events$onInput(changed), - rtfeldman$elm_css$Html$Styled$Attributes$value(query) + author$project$Theme$Elements$onEnter(search), + rtfeldman$elm_css$Html$Styled$Attributes$value(query), + rtfeldman$elm_css$Html$Styled$Attributes$id('search-box') ]), _List_Nil), A2( @@ -8727,7 +8973,7 @@ var author$project$Main$myWordsView = function (model) { [ author$project$Theme$Elements$searchHeader( author$project$Main$Navigate(5)), - A2(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, model.V), + A3(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, author$project$Main$Search, model.V), author$project$Theme$Elements$listHeader, A2( rtfeldman$elm_css$Html$Styled$ul, @@ -8928,7 +9174,7 @@ var author$project$Main$searchView = function (model) { [ author$project$Theme$Elements$searchHeader( author$project$Main$Navigate(5)), - A2(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, model.V), + A3(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, author$project$Main$Search, model.V), author$project$Theme$Elements$listHeader, A2( rtfeldman$elm_css$Html$Styled$ul, @@ -9103,208 +9349,6 @@ var author$project$Main$view = function (model) { author$project$Main$appNavigation ])); }; -var elm$browser$Browser$External = function (a) { - return {$: 1, a: a}; -}; -var elm$browser$Browser$Internal = function (a) { - return {$: 0, a: a}; -}; -var elm$browser$Browser$Dom$NotFound = elm$core$Basics$identity; -var elm$core$Basics$never = function (_n0) { - never: - while (true) { - var nvr = _n0; - var $temp$_n0 = nvr; - _n0 = $temp$_n0; - continue never; - } -}; -var elm$core$Task$Perform = elm$core$Basics$identity; -var elm$core$Task$init = elm$core$Task$succeed(0); -var elm$core$Task$map = F2( - function (func, taskA) { - return A2( - elm$core$Task$andThen, - function (a) { - return elm$core$Task$succeed( - func(a)); - }, - taskA); - }); -var elm$core$Task$map2 = F3( - function (func, taskA, taskB) { - return A2( - elm$core$Task$andThen, - function (a) { - return A2( - elm$core$Task$andThen, - function (b) { - return elm$core$Task$succeed( - A2(func, a, b)); - }, - taskB); - }, - taskA); - }); -var elm$core$Task$sequence = function (tasks) { - return A3( - elm$core$List$foldr, - elm$core$Task$map2(elm$core$List$cons), - elm$core$Task$succeed(_List_Nil), - tasks); -}; -var elm$core$Task$spawnCmd = F2( - function (router, _n0) { - var task = _n0; - return _Scheduler_spawn( - A2( - elm$core$Task$andThen, - elm$core$Platform$sendToApp(router), - task)); - }); -var elm$core$Task$onEffects = F3( - function (router, commands, state) { - return A2( - elm$core$Task$map, - function (_n0) { - return 0; - }, - elm$core$Task$sequence( - A2( - elm$core$List$map, - elm$core$Task$spawnCmd(router), - commands))); - }); -var elm$core$Task$onSelfMsg = F3( - function (_n0, _n1, _n2) { - return elm$core$Task$succeed(0); - }); -var elm$core$Task$cmdMap = F2( - function (tagger, _n0) { - var task = _n0; - return A2(elm$core$Task$map, tagger, task); - }); -_Platform_effectManagers['Task'] = _Platform_createManager(elm$core$Task$init, elm$core$Task$onEffects, elm$core$Task$onSelfMsg, elm$core$Task$cmdMap); -var elm$core$Task$command = _Platform_leaf('Task'); -var elm$core$Task$perform = F2( - function (toMessage, task) { - return elm$core$Task$command( - A2(elm$core$Task$map, toMessage, task)); - }); -var elm$url$Url$Http = 0; -var elm$url$Url$Https = 1; -var elm$core$String$indexes = _String_indexes; -var elm$core$String$left = F2( - function (n, string) { - return (n < 1) ? '' : A3(elm$core$String$slice, 0, n, string); - }); -var elm$core$String$toInt = _String_toInt; -var elm$url$Url$Url = F6( - function (protocol, host, port_, path, query, fragment) { - return {bS: fragment, bU: host, b5: path, b7: port_, cb: protocol, V: query}; - }); -var elm$url$Url$chompBeforePath = F5( - function (protocol, path, params, frag, str) { - if (elm$core$String$isEmpty(str) || A2(elm$core$String$contains, '@', str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, ':', str); - if (!_n0.b) { - return elm$core$Maybe$Just( - A6(elm$url$Url$Url, protocol, str, elm$core$Maybe$Nothing, path, params, frag)); - } else { - if (!_n0.b.b) { - var i = _n0.a; - var _n1 = elm$core$String$toInt( - A2(elm$core$String$dropLeft, i + 1, str)); - if (_n1.$ === 1) { - return elm$core$Maybe$Nothing; - } else { - var port_ = _n1; - return elm$core$Maybe$Just( - A6( - elm$url$Url$Url, - protocol, - A2(elm$core$String$left, i, str), - port_, - path, - params, - frag)); - } - } else { - return elm$core$Maybe$Nothing; - } - } - } - }); -var elm$url$Url$chompBeforeQuery = F4( - function (protocol, params, frag, str) { - if (elm$core$String$isEmpty(str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, '/', str); - if (!_n0.b) { - return A5(elm$url$Url$chompBeforePath, protocol, '/', params, frag, str); - } else { - var i = _n0.a; - return A5( - elm$url$Url$chompBeforePath, - protocol, - A2(elm$core$String$dropLeft, i, str), - params, - frag, - A2(elm$core$String$left, i, str)); - } - } - }); -var elm$url$Url$chompBeforeFragment = F3( - function (protocol, frag, str) { - if (elm$core$String$isEmpty(str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, '?', str); - if (!_n0.b) { - return A4(elm$url$Url$chompBeforeQuery, protocol, elm$core$Maybe$Nothing, frag, str); - } else { - var i = _n0.a; - return A4( - elm$url$Url$chompBeforeQuery, - protocol, - elm$core$Maybe$Just( - A2(elm$core$String$dropLeft, i + 1, str)), - frag, - A2(elm$core$String$left, i, str)); - } - } - }); -var elm$url$Url$chompAfterProtocol = F2( - function (protocol, str) { - if (elm$core$String$isEmpty(str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, '#', str); - if (!_n0.b) { - return A3(elm$url$Url$chompBeforeFragment, protocol, elm$core$Maybe$Nothing, str); - } else { - var i = _n0.a; - return A3( - elm$url$Url$chompBeforeFragment, - protocol, - elm$core$Maybe$Just( - A2(elm$core$String$dropLeft, i + 1, str)), - A2(elm$core$String$left, i, str)); - } - } - }); -var elm$url$Url$fromString = function (str) { - return A2(elm$core$String$startsWith, 'http://', str) ? A2( - elm$url$Url$chompAfterProtocol, - 0, - A2(elm$core$String$dropLeft, 7, str)) : (A2(elm$core$String$startsWith, 'https://', str) ? A2( - elm$url$Url$chompAfterProtocol, - 1, - A2(elm$core$String$dropLeft, 8, str)) : elm$core$Maybe$Nothing); -}; var elm$browser$Browser$element = _Browser_element; var elm$virtual_dom$VirtualDom$node = function (tag) { return _VirtualDom_node( diff --git a/web-modules/lexicon/index.html b/web-modules/lexicon/index.html index 24243daf..f4afb112 100644 --- a/web-modules/lexicon/index.html +++ b/web-modules/lexicon/index.html @@ -87,7 +87,7 @@ return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i); } -console.warn('Compiled in DEV mode. Follow the advice at https://elm-lang.org/0.19.0/optimize for better performance and smaller assets.'); +console.warn('Compiled in DEBUG mode. Follow the advice at https://elm-lang.org/0.19.0/optimize for better performance and smaller assets.'); var _List_Nil_UNUSED = { $: 0 }; @@ -2308,89 +2308,6 @@ -var _Bitwise_and = F2(function(a, b) -{ - return a & b; -}); - -var _Bitwise_or = F2(function(a, b) -{ - return a | b; -}); - -var _Bitwise_xor = F2(function(a, b) -{ - return a ^ b; -}); - -function _Bitwise_complement(a) -{ - return ~a; -}; - -var _Bitwise_shiftLeftBy = F2(function(offset, a) -{ - return a << offset; -}); - -var _Bitwise_shiftRightBy = F2(function(offset, a) -{ - return a >> offset; -}); - -var _Bitwise_shiftRightZfBy = F2(function(offset, a) -{ - return a >>> offset; -}); - - - -function _Time_now(millisToPosix) -{ - return _Scheduler_binding(function(callback) - { - callback(_Scheduler_succeed(millisToPosix(Date.now()))); - }); -} - -var _Time_setInterval = F2(function(interval, task) -{ - return _Scheduler_binding(function(callback) - { - var id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval); - return function() { clearInterval(id); }; - }); -}); - -function _Time_here() -{ - return _Scheduler_binding(function(callback) - { - callback(_Scheduler_succeed( - A2(elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil) - )); - }); -} - - -function _Time_getZoneName() -{ - return _Scheduler_binding(function(callback) - { - try - { - var name = elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone); - } - catch (e) - { - var name = elm$time$Time$Offset(new Date().getTimezoneOffset()); - } - callback(_Scheduler_succeed(name)); - }); -} - - - // HELPERS @@ -3949,421 +3866,981 @@ +var _Bitwise_and = F2(function(a, b) +{ + return a & b; +}); -// ELEMENT +var _Bitwise_or = F2(function(a, b) +{ + return a | b; +}); + +var _Bitwise_xor = F2(function(a, b) +{ + return a ^ b; +}); +function _Bitwise_complement(a) +{ + return ~a; +}; -var _Debugger_element; +var _Bitwise_shiftLeftBy = F2(function(offset, a) +{ + return a << offset; +}); -var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args) +var _Bitwise_shiftRightBy = F2(function(offset, a) +{ + return a >> offset; +}); + +var _Bitwise_shiftRightZfBy = F2(function(offset, a) +{ + return a >>> offset; +}); + + + + +// HELPERS + + +function _Debugger_unsafeCoerce(value) +{ + return value; +} + + + +// PROGRAMS + + +var _Debugger_element = F4(function(impl, flagDecoder, debugMetadata, args) { return _Platform_initialize( flagDecoder, args, - impl.init, - impl.update, - impl.subscriptions, - function(sendToApp, initialModel) { + A3(elm$browser$Debugger$Main$wrapInit, _Json_wrap(debugMetadata), _Debugger_popout(), impl.init), + elm$browser$Debugger$Main$wrapUpdate(impl.update), + elm$browser$Debugger$Main$wrapSubs(impl.subscriptions), + function(sendToApp, initialModel) + { var view = impl.view; - /**_UNUSED/ - var domNode = args['node']; - //*/ - /**/ + var title = _VirtualDom_doc.title; var domNode = args && args['node'] ? args['node'] : _Debug_crash(0); - //*/ var currNode = _VirtualDom_virtualize(domNode); + var currBlocker = elm$browser$Debugger$Main$toBlockerType(initialModel); + var currPopout; + + var cornerNode = _VirtualDom_doc.createElement('div'); + domNode.parentNode.insertBefore(cornerNode, domNode.nextSibling); + var cornerCurr = _VirtualDom_virtualize(cornerNode); + + initialModel.popout.a = sendToApp; return _Browser_makeAnimator(initialModel, function(model) { - var nextNode = view(model); + var nextNode = A2(_VirtualDom_map, elm$browser$Debugger$Main$UserMsg, view(elm$browser$Debugger$Main$getUserModel(model))); var patches = _VirtualDom_diff(currNode, nextNode); domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp); currNode = nextNode; - }); - } - ); -}); + // update blocker + var nextBlocker = elm$browser$Debugger$Main$toBlockerType(model); + _Debugger_updateBlocker(currBlocker, nextBlocker); + currBlocker = nextBlocker; -// DOCUMENT + // view corner + + if (!model.popout.b) + { + var cornerNext = elm$browser$Debugger$Main$cornerView(model); + var cornerPatches = _VirtualDom_diff(cornerCurr, cornerNext); + cornerNode = _VirtualDom_applyPatches(cornerNode, cornerCurr, cornerPatches, sendToApp); + cornerCurr = cornerNext; + currPopout = undefined; + return; + } + // view popout -var _Debugger_document; + _VirtualDom_doc = model.popout.b; // SWITCH TO POPOUT DOC + currPopout || (currPopout = _VirtualDom_virtualize(model.popout.b)); + var nextPopout = elm$browser$Debugger$Main$popoutView(model); + var popoutPatches = _VirtualDom_diff(currPopout, nextPopout); + _VirtualDom_applyPatches(model.popout.b.body, currPopout, popoutPatches, sendToApp); + currPopout = nextPopout; + _VirtualDom_doc = document; // SWITCH BACK TO NORMAL DOC + }); + } + ); +}); -var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args) + +var _Debugger_document = F4(function(impl, flagDecoder, debugMetadata, args) { return _Platform_initialize( flagDecoder, args, - impl.init, - impl.update, - impl.subscriptions, - function(sendToApp, initialModel) { - var divertHrefToApp = impl.setup && impl.setup(sendToApp) + A3(elm$browser$Debugger$Main$wrapInit, _Json_wrap(debugMetadata), _Debugger_popout(), impl.init), + elm$browser$Debugger$Main$wrapUpdate(impl.update), + elm$browser$Debugger$Main$wrapSubs(impl.subscriptions), + function(sendToApp, initialModel) + { + var divertHrefToApp = impl.setup && impl.setup(function(x) { return sendToApp(elm$browser$Debugger$Main$UserMsg(x)); }); var view = impl.view; var title = _VirtualDom_doc.title; var bodyNode = _VirtualDom_doc.body; var currNode = _VirtualDom_virtualize(bodyNode); + var currBlocker = elm$browser$Debugger$Main$toBlockerType(initialModel); + var currPopout; + + initialModel.popout.a = sendToApp; + return _Browser_makeAnimator(initialModel, function(model) { _VirtualDom_divertHrefToApp = divertHrefToApp; - var doc = view(model); - var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.body); + var doc = view(elm$browser$Debugger$Main$getUserModel(model)); + var nextNode = _VirtualDom_node('body')(_List_Nil)( + _Utils_ap( + A2(elm$core$List$map, _VirtualDom_map(elm$browser$Debugger$Main$UserMsg), doc.body), + _List_Cons(elm$browser$Debugger$Main$cornerView(model), _List_Nil) + ) + ); var patches = _VirtualDom_diff(currNode, nextNode); bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp); currNode = nextNode; _VirtualDom_divertHrefToApp = 0; (title !== doc.title) && (_VirtualDom_doc.title = title = doc.title); + + // update blocker + + var nextBlocker = elm$browser$Debugger$Main$toBlockerType(model); + _Debugger_updateBlocker(currBlocker, nextBlocker); + currBlocker = nextBlocker; + + // view popout + + if (!model.popout.b) { currPopout = undefined; return; } + + _VirtualDom_doc = model.popout.b; // SWITCH TO POPOUT DOC + currPopout || (currPopout = _VirtualDom_virtualize(model.popout.b)); + var nextPopout = elm$browser$Debugger$Main$popoutView(model); + var popoutPatches = _VirtualDom_diff(currPopout, nextPopout); + _VirtualDom_applyPatches(model.popout.b.body, currPopout, popoutPatches, sendToApp); + currPopout = nextPopout; + _VirtualDom_doc = document; // SWITCH BACK TO NORMAL DOC }); } ); }); +function _Debugger_popout() +{ + return { + b: undefined, + a: undefined + }; +} -// ANIMATION - - -var _Browser_requestAnimationFrame = - typeof requestAnimationFrame !== 'undefined' - ? requestAnimationFrame - : function(callback) { setTimeout(callback, 1000 / 60); }; +function _Debugger_isOpen(popout) +{ + return !!popout.b; +} +function _Debugger_open(popout) +{ + return _Scheduler_binding(function(callback) + { + _Debugger_openWindow(popout); + callback(_Scheduler_succeed(_Utils_Tuple0)); + }); +} -function _Browser_makeAnimator(model, draw) +function _Debugger_openWindow(popout) { - draw(model); + var w = 900, h = 360, x = screen.width - w, y = screen.height - h; + var debuggerWindow = window.open('', '', 'width=' + w + ',height=' + h + ',left=' + x + ',top=' + y); + var doc = debuggerWindow.document; + doc.title = 'Elm Debugger'; - var state = 0; + // handle arrow keys + doc.addEventListener('keydown', function(event) { + event.metaKey && event.which === 82 && window.location.reload(); + event.which === 38 && (popout.a(elm$browser$Debugger$Main$Up), event.preventDefault()); + event.which === 40 && (popout.a(elm$browser$Debugger$Main$Down), event.preventDefault()); + }); - function updateIfNeeded() - { - state = state === 1 - ? 0 - : ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 ); + // handle window close + window.addEventListener('unload', close); + debuggerWindow.addEventListener('unload', function() { + popout.b = undefined; + popout.a(elm$browser$Debugger$Main$NoOp); + window.removeEventListener('unload', close); + }); + function close() { + popout.b = undefined; + popout.a(elm$browser$Debugger$Main$NoOp); + debuggerWindow.close(); } - return function(nextModel, isSync) + // register new window + popout.b = doc; +} + + + +// SCROLL + + +function _Debugger_scroll(popout) +{ + return _Scheduler_binding(function(callback) { - model = nextModel; + if (popout.b) + { + var msgs = popout.b.getElementById('elm-debugger-sidebar'); + if (msgs) + { + msgs.scrollTop = msgs.scrollHeight; + } + } + callback(_Scheduler_succeed(_Utils_Tuple0)); + }); +} - isSync - ? ( draw(model), - state === 2 && (state = 1) - ) - : ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded), - state = 2 - ); - }; + + +// UPLOAD + + +function _Debugger_upload() +{ + return _Scheduler_binding(function(callback) + { + var element = document.createElement('input'); + element.setAttribute('type', 'file'); + element.setAttribute('accept', 'text/json'); + element.style.display = 'none'; + element.addEventListener('change', function(event) + { + var fileReader = new FileReader(); + fileReader.onload = function(e) + { + callback(_Scheduler_succeed(e.target.result)); + }; + fileReader.readAsText(event.target.files[0]); + document.body.removeChild(element); + }); + document.body.appendChild(element); + element.click(); + }); } -// APPLICATION +// DOWNLOAD -function _Browser_application(impl) +var _Debugger_download = F2(function(historyLength, json) { - var onUrlChange = impl.onUrlChange; - var onUrlRequest = impl.onUrlRequest; - var key = function() { key.a(onUrlChange(_Browser_getUrl())); }; + return _Scheduler_binding(function(callback) + { + var fileName = 'history-' + historyLength + '.txt'; + var jsonString = JSON.stringify(json); + var mime = 'text/plain;charset=utf-8'; + var done = _Scheduler_succeed(_Utils_Tuple0); - return _Browser_document({ - setup: function(sendToApp) + // for IE10+ + if (navigator.msSaveBlob) { - key.a = sendToApp; - _Browser_window.addEventListener('popstate', key); - _Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key); + navigator.msSaveBlob(new Blob([jsonString], {type: mime}), fileName); + return callback(done); + } - return F2(function(domNode, event) - { - if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.download) - { - event.preventDefault(); - var href = domNode.href; - var curr = _Browser_getUrl(); - var next = elm$url$Url$fromString(href).a; - sendToApp(onUrlRequest( - (next - && curr.protocol === next.protocol - && curr.host === next.host - && curr.port_.a === next.port_.a - ) - ? elm$browser$Browser$Internal(next) - : elm$browser$Browser$External(href) - )); - } - }); - }, - init: function(flags) - { - return A3(impl.init, flags, _Browser_getUrl(), key); - }, - view: impl.view, - update: impl.update, - subscriptions: impl.subscriptions + // for HTML5 + var element = document.createElement('a'); + element.setAttribute('href', 'data:' + mime + ',' + encodeURIComponent(jsonString)); + element.setAttribute('download', fileName); + element.style.display = 'none'; + document.body.appendChild(element); + element.click(); + document.body.removeChild(element); + callback(done); }); -} +}); -function _Browser_getUrl() -{ - return elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1); -} -var _Browser_go = F2(function(key, n) -{ - return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { - n && history.go(n); - key(); - })); -}); -var _Browser_pushUrl = F2(function(key, url) -{ - return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { - history.pushState({}, '', url); - key(); - })); -}); +// POPOUT CONTENT -var _Browser_replaceUrl = F2(function(key, url) + +function _Debugger_messageToString(value) { - return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { - history.replaceState({}, '', url); - key(); - })); -}); + if (typeof value === 'boolean') + { + return value ? 'True' : 'False'; + } + + if (typeof value === 'number') + { + return value + ''; + } + + if (typeof value === 'string') + { + return '"' + _Debugger_addSlashes(value, false) + '"'; + } + if (value instanceof String) + { + return "'" + _Debugger_addSlashes(value, true) + "'"; + } + if (typeof value !== 'object' || value === null || !('$' in value)) + { + return '…'; + } -// GLOBAL EVENTS + if (typeof value.$ === 'number') + { + return '…'; + } + var code = value.$.charCodeAt(0); + if (code === 0x23 /* # */ || /* a */ 0x61 <= code && code <= 0x7A /* z */) + { + return '…'; + } -var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} }; -var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode; -var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode; + if (['Array_elm_builtin', 'Set_elm_builtin', 'RBNode_elm_builtin', 'RBEmpty_elm_builtin'].indexOf(value.$) >= 0) + { + return '…'; + } -var _Browser_on = F3(function(node, eventName, sendToSelf) -{ - return _Scheduler_spawn(_Scheduler_binding(function(callback) + var keys = Object.keys(value); + switch (keys.length) { - function handler(event) { _Scheduler_rawSpawn(sendToSelf(event)); } - node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true }); - return function() { node.removeEventListener(eventName, handler); }; - })); -}); + case 1: + return value.$; + case 2: + return value.$ + ' ' + _Debugger_messageToString(value.a); + default: + return value.$ + ' … ' + _Debugger_messageToString(value[keys[keys.length - 1]]); + } +} -var _Browser_decodeEvent = F2(function(decoder, event) + +function _Debugger_init(value) { - var result = _Json_runHelp(decoder, event); - return elm$core$Result$isOk(result) ? elm$core$Maybe$Just(result.a) : elm$core$Maybe$Nothing; -}); + if (typeof value === 'boolean') + { + return A3(elm$browser$Debugger$Expando$Constructor, elm$core$Maybe$Just(value ? 'True' : 'False'), true, _List_Nil); + } + if (typeof value === 'number') + { + return elm$browser$Debugger$Expando$Primitive(value + ''); + } + if (typeof value === 'string') + { + return elm$browser$Debugger$Expando$S('"' + _Debugger_addSlashes(value, false) + '"'); + } -// PAGE VISIBILITY + if (value instanceof String) + { + return elm$browser$Debugger$Expando$S("'" + _Debugger_addSlashes(value, true) + "'"); + } + if (typeof value === 'object' && '$' in value) + { + var tag = value.$; -function _Browser_visibilityInfo() -{ - return (typeof _VirtualDom_doc.hidden !== 'undefined') - ? { hidden: 'hidden', change: 'visibilitychange' } - : - (typeof _VirtualDom_doc.mozHidden !== 'undefined') - ? { hidden: 'mozHidden', change: 'mozvisibilitychange' } - : - (typeof _VirtualDom_doc.msHidden !== 'undefined') - ? { hidden: 'msHidden', change: 'msvisibilitychange' } - : - (typeof _VirtualDom_doc.webkitHidden !== 'undefined') - ? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' } - : { hidden: 'hidden', change: 'visibilitychange' }; -} + if (tag === '::' || tag === '[]') + { + return A3(elm$browser$Debugger$Expando$Sequence, elm$browser$Debugger$Expando$ListSeq, true, + A2(elm$core$List$map, _Debugger_init, value) + ); + } + if (tag === 'Set_elm_builtin') + { + return A3(elm$browser$Debugger$Expando$Sequence, elm$browser$Debugger$Expando$SetSeq, true, + A3(elm$core$Set$foldr, _Debugger_initCons, _List_Nil, value) + ); + } + if (tag === 'RBNode_elm_builtin' || tag == 'RBEmpty_elm_builtin') + { + return A2(elm$browser$Debugger$Expando$Dictionary, true, + A3(elm$core$Dict$foldr, _Debugger_initKeyValueCons, _List_Nil, value) + ); + } -// ANIMATION FRAMES + if (tag === 'Array_elm_builtin') + { + return A3(elm$browser$Debugger$Expando$Sequence, elm$browser$Debugger$Expando$ArraySeq, true, + A3(elm$core$Array$foldr, _Debugger_initCons, _List_Nil, value) + ); + } + if (typeof tag === 'number') + { + return elm$browser$Debugger$Expando$Primitive(''); + } -function _Browser_rAF() -{ - return _Scheduler_binding(function(callback) + var char = tag.charCodeAt(0); + if (char === 35 || 65 <= char && char <= 90) + { + var list = _List_Nil; + for (var i in value) + { + if (i === '$') continue; + list = _List_Cons(_Debugger_init(value[i]), list); + } + return A3(elm$browser$Debugger$Expando$Constructor, char === 35 ? elm$core$Maybe$Nothing : elm$core$Maybe$Just(tag), true, elm$core$List$reverse(list)); + } + + return elm$browser$Debugger$Expando$Primitive(''); + } + + if (typeof value === 'object') { - var id = requestAnimationFrame(function() { - callback(_Scheduler_succeed(Date.now())); - }); + var dict = elm$core$Dict$empty; + for (var i in value) + { + dict = A3(elm$core$Dict$insert, i, _Debugger_init(value[i]), dict); + } + return A2(elm$browser$Debugger$Expando$Record, true, dict); + } - return function() { - cancelAnimationFrame(id); - }; - }); + return elm$browser$Debugger$Expando$Primitive(''); } +var _Debugger_initCons = F2(function initConsHelp(value, list) +{ + return _List_Cons(_Debugger_init(value), list); +}); -function _Browser_now() +var _Debugger_initKeyValueCons = F3(function(key, value, list) { - return _Scheduler_binding(function(callback) + return _List_Cons( + _Utils_Tuple2(_Debugger_init(key), _Debugger_init(value)), + list + ); +}); + +function _Debugger_addSlashes(str, isChar) +{ + var s = str + .replace(/\\/g, '\\\\') + .replace(/\n/g, '\\n') + .replace(/\t/g, '\\t') + .replace(/\r/g, '\\r') + .replace(/\v/g, '\\v') + .replace(/\0/g, '\\0'); + if (isChar) { - callback(_Scheduler_succeed(Date.now())); - }); + return s.replace(/\'/g, '\\\''); + } + else + { + return s.replace(/\"/g, '\\"'); + } } -// DOM STUFF +// BLOCK EVENTS -function _Browser_withNode(id, doStuff) +function _Debugger_updateBlocker(oldBlocker, newBlocker) { - return _Scheduler_binding(function(callback) + if (oldBlocker === newBlocker) return; + + var oldEvents = _Debugger_blockerToEvents(oldBlocker); + var newEvents = _Debugger_blockerToEvents(newBlocker); + + // remove old blockers + for (var i = 0; i < oldEvents.length; i++) { - _Browser_requestAnimationFrame(function() { - var node = document.getElementById(id); - callback(node - ? _Scheduler_succeed(doStuff(node)) - : _Scheduler_fail(elm$browser$Browser$Dom$NotFound(id)) - ); - }); - }); + document.removeEventListener(oldEvents[i], _Debugger_blocker, true); + } + + // add new blockers + for (var i = 0; i < newEvents.length; i++) + { + document.addEventListener(newEvents[i], _Debugger_blocker, true); + } } -function _Browser_withWindow(doStuff) +function _Debugger_blocker(event) { - return _Scheduler_binding(function(callback) + if (event.type === 'keydown' && event.metaKey && event.which === 82) { - _Browser_requestAnimationFrame(function() { - callback(_Scheduler_succeed(doStuff())); - }); - }); + return; + } + + var isScroll = event.type === 'scroll' || event.type === 'wheel'; + for (var node = event.target; node; node = node.parentNode) + { + if (isScroll ? node.id === 'elm-debugger-details' : node.id === 'elm-debugger-overlay') + { + return; + } + } + + event.stopPropagation(); + event.preventDefault(); } +function _Debugger_blockerToEvents(blocker) +{ + return blocker === elm$browser$Debugger$Overlay$BlockNone + ? [] + : blocker === elm$browser$Debugger$Overlay$BlockMost + ? _Debugger_mostEvents + : _Debugger_allEvents; +} -// FOCUS and BLUR +var _Debugger_mostEvents = [ + 'click', 'dblclick', 'mousemove', + 'mouseup', 'mousedown', 'mouseenter', 'mouseleave', + 'touchstart', 'touchend', 'touchcancel', 'touchmove', + 'pointerdown', 'pointerup', 'pointerover', 'pointerout', + 'pointerenter', 'pointerleave', 'pointermove', 'pointercancel', + 'dragstart', 'drag', 'dragend', 'dragenter', 'dragover', 'dragleave', 'drop', + 'keyup', 'keydown', 'keypress', + 'input', 'change', + 'focus', 'blur' +]; +var _Debugger_allEvents = _Debugger_mostEvents.concat('wheel', 'scroll'); -var _Browser_call = F2(function(functionName, id) -{ - return _Browser_withNode(id, function(node) { - node[functionName](); - return _Utils_Tuple0; - }); -}); -// WINDOW VIEWPORT +// ELEMENT -function _Browser_getViewport() -{ - return { - scene: _Browser_getScene(), - viewport: { - x: _Browser_window.pageXOffset, - y: _Browser_window.pageYOffset, - width: _Browser_doc.documentElement.clientWidth, - height: _Browser_doc.documentElement.clientHeight - } - }; -} -function _Browser_getScene() +var _Debugger_element; + +var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args) { - var body = _Browser_doc.body; - var elem = _Browser_doc.documentElement; - return { - width: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth), - height: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight) - }; -} + return _Platform_initialize( + flagDecoder, + args, + impl.init, + impl.update, + impl.subscriptions, + function(sendToApp, initialModel) { + var view = impl.view; + /**_UNUSED/ + var domNode = args['node']; + //*/ + /**/ + var domNode = args && args['node'] ? args['node'] : _Debug_crash(0); + //*/ + var currNode = _VirtualDom_virtualize(domNode); -var _Browser_setViewport = F2(function(x, y) + return _Browser_makeAnimator(initialModel, function(model) + { + var nextNode = view(model); + var patches = _VirtualDom_diff(currNode, nextNode); + domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp); + currNode = nextNode; + }); + } + ); +}); + + + +// DOCUMENT + + +var _Debugger_document; + +var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args) { - return _Browser_withWindow(function() - { - _Browser_window.scroll(x, y); - return _Utils_Tuple0; - }); + return _Platform_initialize( + flagDecoder, + args, + impl.init, + impl.update, + impl.subscriptions, + function(sendToApp, initialModel) { + var divertHrefToApp = impl.setup && impl.setup(sendToApp) + var view = impl.view; + var title = _VirtualDom_doc.title; + var bodyNode = _VirtualDom_doc.body; + var currNode = _VirtualDom_virtualize(bodyNode); + return _Browser_makeAnimator(initialModel, function(model) + { + _VirtualDom_divertHrefToApp = divertHrefToApp; + var doc = view(model); + var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.body); + var patches = _VirtualDom_diff(currNode, nextNode); + bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp); + currNode = nextNode; + _VirtualDom_divertHrefToApp = 0; + (title !== doc.title) && (_VirtualDom_doc.title = title = doc.title); + }); + } + ); }); -// ELEMENT VIEWPORT +// ANIMATION -function _Browser_getViewportOf(id) +var _Browser_requestAnimationFrame = + typeof requestAnimationFrame !== 'undefined' + ? requestAnimationFrame + : function(callback) { setTimeout(callback, 1000 / 60); }; + + +function _Browser_makeAnimator(model, draw) { - return _Browser_withNode(id, function(node) + draw(model); + + var state = 0; + + function updateIfNeeded() { - return { - scene: { - width: node.scrollWidth, - height: node.scrollHeight - }, - viewport: { - x: node.scrollLeft, - y: node.scrollTop, - width: node.clientWidth, - height: node.clientHeight - } - }; - }); + state = state === 1 + ? 0 + : ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 ); + } + + return function(nextModel, isSync) + { + model = nextModel; + + isSync + ? ( draw(model), + state === 2 && (state = 1) + ) + : ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded), + state = 2 + ); + }; } -var _Browser_setViewportOf = F3(function(id, x, y) + +// APPLICATION + + +function _Browser_application(impl) { - return _Browser_withNode(id, function(node) - { - node.scrollLeft = x; - node.scrollTop = y; - return _Utils_Tuple0; + var onUrlChange = impl.onUrlChange; + var onUrlRequest = impl.onUrlRequest; + var key = function() { key.a(onUrlChange(_Browser_getUrl())); }; + + return _Browser_document({ + setup: function(sendToApp) + { + key.a = sendToApp; + _Browser_window.addEventListener('popstate', key); + _Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key); + + return F2(function(domNode, event) + { + if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.download) + { + event.preventDefault(); + var href = domNode.href; + var curr = _Browser_getUrl(); + var next = elm$url$Url$fromString(href).a; + sendToApp(onUrlRequest( + (next + && curr.protocol === next.protocol + && curr.host === next.host + && curr.port_.a === next.port_.a + ) + ? elm$browser$Browser$Internal(next) + : elm$browser$Browser$External(href) + )); + } + }); + }, + init: function(flags) + { + return A3(impl.init, flags, _Browser_getUrl(), key); + }, + view: impl.view, + update: impl.update, + subscriptions: impl.subscriptions }); +} + +function _Browser_getUrl() +{ + return elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1); +} + +var _Browser_go = F2(function(key, n) +{ + return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { + n && history.go(n); + key(); + })); +}); + +var _Browser_pushUrl = F2(function(key, url) +{ + return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { + history.pushState({}, '', url); + key(); + })); +}); + +var _Browser_replaceUrl = F2(function(key, url) +{ + return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { + history.replaceState({}, '', url); + key(); + })); }); -// ELEMENT +// GLOBAL EVENTS -function _Browser_getElement(id) +var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} }; +var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode; +var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode; + +var _Browser_on = F3(function(node, eventName, sendToSelf) { - return _Browser_withNode(id, function(node) + return _Scheduler_spawn(_Scheduler_binding(function(callback) { - var rect = node.getBoundingClientRect(); - var x = _Browser_window.pageXOffset; - var y = _Browser_window.pageYOffset; - return { - scene: _Browser_getScene(), - viewport: { - x: x, - y: y, - width: _Browser_doc.documentElement.clientWidth, - height: _Browser_doc.documentElement.clientHeight - }, - element: { - x: x + rect.left, - y: y + rect.top, - width: rect.width, - height: rect.height - } - }; - }); -} + function handler(event) { _Scheduler_rawSpawn(sendToSelf(event)); } + node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true }); + return function() { node.removeEventListener(eventName, handler); }; + })); +}); + +var _Browser_decodeEvent = F2(function(decoder, event) +{ + var result = _Json_runHelp(decoder, event); + return elm$core$Result$isOk(result) ? elm$core$Maybe$Just(result.a) : elm$core$Maybe$Nothing; +}); -// LOAD and RELOAD +// PAGE VISIBILITY -function _Browser_reload(skipCache) +function _Browser_visibilityInfo() { - return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function(callback) - { - _VirtualDom_doc.location.reload(skipCache); - })); + return (typeof _VirtualDom_doc.hidden !== 'undefined') + ? { hidden: 'hidden', change: 'visibilitychange' } + : + (typeof _VirtualDom_doc.mozHidden !== 'undefined') + ? { hidden: 'mozHidden', change: 'mozvisibilitychange' } + : + (typeof _VirtualDom_doc.msHidden !== 'undefined') + ? { hidden: 'msHidden', change: 'msvisibilitychange' } + : + (typeof _VirtualDom_doc.webkitHidden !== 'undefined') + ? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' } + : { hidden: 'hidden', change: 'visibilitychange' }; +} + + + +// ANIMATION FRAMES + + +function _Browser_rAF() +{ + return _Scheduler_binding(function(callback) + { + var id = requestAnimationFrame(function() { + callback(_Scheduler_succeed(Date.now())); + }); + + return function() { + cancelAnimationFrame(id); + }; + }); +} + + +function _Browser_now() +{ + return _Scheduler_binding(function(callback) + { + callback(_Scheduler_succeed(Date.now())); + }); +} + + + +// DOM STUFF + + +function _Browser_withNode(id, doStuff) +{ + return _Scheduler_binding(function(callback) + { + _Browser_requestAnimationFrame(function() { + var node = document.getElementById(id); + callback(node + ? _Scheduler_succeed(doStuff(node)) + : _Scheduler_fail(elm$browser$Browser$Dom$NotFound(id)) + ); + }); + }); +} + + +function _Browser_withWindow(doStuff) +{ + return _Scheduler_binding(function(callback) + { + _Browser_requestAnimationFrame(function() { + callback(_Scheduler_succeed(doStuff())); + }); + }); +} + + +// FOCUS and BLUR + + +var _Browser_call = F2(function(functionName, id) +{ + return _Browser_withNode(id, function(node) { + node[functionName](); + return _Utils_Tuple0; + }); +}); + + + +// WINDOW VIEWPORT + + +function _Browser_getViewport() +{ + return { + scene: _Browser_getScene(), + viewport: { + x: _Browser_window.pageXOffset, + y: _Browser_window.pageYOffset, + width: _Browser_doc.documentElement.clientWidth, + height: _Browser_doc.documentElement.clientHeight + } + }; +} + +function _Browser_getScene() +{ + var body = _Browser_doc.body; + var elem = _Browser_doc.documentElement; + return { + width: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth), + height: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight) + }; +} + +var _Browser_setViewport = F2(function(x, y) +{ + return _Browser_withWindow(function() + { + _Browser_window.scroll(x, y); + return _Utils_Tuple0; + }); +}); + + + +// ELEMENT VIEWPORT + + +function _Browser_getViewportOf(id) +{ + return _Browser_withNode(id, function(node) + { + return { + scene: { + width: node.scrollWidth, + height: node.scrollHeight + }, + viewport: { + x: node.scrollLeft, + y: node.scrollTop, + width: node.clientWidth, + height: node.clientHeight + } + }; + }); +} + + +var _Browser_setViewportOf = F3(function(id, x, y) +{ + return _Browser_withNode(id, function(node) + { + node.scrollLeft = x; + node.scrollTop = y; + return _Utils_Tuple0; + }); +}); + + + +// ELEMENT + + +function _Browser_getElement(id) +{ + return _Browser_withNode(id, function(node) + { + var rect = node.getBoundingClientRect(); + var x = _Browser_window.pageXOffset; + var y = _Browser_window.pageYOffset; + return { + scene: _Browser_getScene(), + viewport: { + x: x, + y: y, + width: _Browser_doc.documentElement.clientWidth, + height: _Browser_doc.documentElement.clientHeight + }, + element: { + x: x + rect.left, + y: y + rect.top, + width: rect.width, + height: rect.height + } + }; + }); +} + + + +// LOAD and RELOAD + + +function _Browser_reload(skipCache) +{ + return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function(callback) + { + _VirtualDom_doc.location.reload(skipCache); + })); } function _Browser_load(url) @@ -4382,6 +4859,52 @@ } })); } + + + +function _Time_now(millisToPosix) +{ + return _Scheduler_binding(function(callback) + { + callback(_Scheduler_succeed(millisToPosix(Date.now()))); + }); +} + +var _Time_setInterval = F2(function(interval, task) +{ + return _Scheduler_binding(function(callback) + { + var id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval); + return function() { clearInterval(id); }; + }); +}); + +function _Time_here() +{ + return _Scheduler_binding(function(callback) + { + callback(_Scheduler_succeed( + A2(elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil) + )); + }); +} + + +function _Time_getZoneName() +{ + return _Scheduler_binding(function(callback) + { + try + { + var name = elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone); + } + catch (e) + { + var name = elm$time$Time$Offset(new Date().getTimezoneOffset()); + } + callback(_Scheduler_succeed(name)); + }); +} var elm$core$Maybe$Nothing = {$: 'Nothing'}; var author$project$Lexicon$initialModel = {currentWord: elm$core$Maybe$Nothing, errorMessage: elm$core$Maybe$Nothing, wordList: elm$core$Maybe$Nothing}; var author$project$Main$SearchView = {$: 'SearchView'}; @@ -5092,7 +5615,6 @@ return elm$core$Platform$Cmd$none; } }); -var elm$core$Debug$log = _Debug_log; var author$project$Lexicon$update = F2( function (msg, model) { switch (msg.$) { @@ -5122,136 +5644,4343 @@ _Utils_update( model, { - wordList: elm$core$Maybe$Just( - A2(elm$core$Debug$log, 'wordlist:', results)) + wordList: elm$core$Maybe$Just(results) }), elm$core$Platform$Cmd$none); } else { - var error = result.a; - if (error.$ === 'BadPayload') { - var errMsg = error.a; + var error = result.a; + if (error.$ === 'BadPayload') { + var errMsg = error.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + errorMessage: elm$core$Maybe$Just(errMsg) + }), + elm$core$Platform$Cmd$none); + } else { + return _Utils_Tuple2( + _Utils_update( + model, + { + errorMessage: elm$core$Maybe$Just('something happened') + }), + elm$core$Platform$Cmd$none); + } + } + default: + var result = msg.a; + if (result.$ === 'Ok') { + var results = result.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + currentWord: elm$core$Maybe$Just(results) + }), + elm$core$Platform$Cmd$none); + } else { + var error = result.a; + if (error.$ === 'BadPayload') { + var errMsg = error.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + errorMessage: elm$core$Maybe$Just(errMsg) + }), + elm$core$Platform$Cmd$none); + } else { + return _Utils_Tuple2( + _Utils_update( + model, + { + errorMessage: elm$core$Maybe$Just('something happened') + }), + elm$core$Platform$Cmd$none); + } + } + } + }); +var elm$json$Json$Encode$list = F2( + function (func, entries) { + return _Json_wrap( + A3( + elm$core$List$foldl, + _Json_addEntry(func), + _Json_emptyArray(_Utils_Tuple0), + entries)); + }); +var elm$json$Json$Encode$object = function (pairs) { + return _Json_wrap( + A3( + elm$core$List$foldl, + F2( + function (_n0, obj) { + var k = _n0.a; + var v = _n0.b; + return A3(_Json_addField, k, v, obj); + }), + _Json_emptyObject(_Utils_Tuple0), + pairs)); +}; +var author$project$Lexicon$wordEncoder = function (word) { + return elm$json$Json$Encode$object( + _List_fromArray( + [ + _Utils_Tuple2( + 'id', + elm$json$Json$Encode$string(word.id)), + _Utils_Tuple2( + 'word', + elm$json$Json$Encode$string(word.word)), + _Utils_Tuple2( + 'definition', + elm$json$Json$Encode$string(word.definition)), + _Utils_Tuple2( + 'seeAlso', + A2(elm$json$Json$Encode$list, elm$json$Json$Encode$string, word.seeAlso)) + ])); +}; +var author$project$Main$DefinitionView = {$: 'DefinitionView'}; +var author$project$Main$LoadDefinitionByInt = function (a) { + return {$: 'LoadDefinitionByInt', a: a}; +}; +var author$project$Main$appGoHome = _Platform_outgoingPort( + 'appGoHome', + function ($) { + return elm$json$Json$Encode$null; + }); +var author$project$Main$appGoSettings = _Platform_outgoingPort( + 'appGoSettings', + function ($) { + return elm$json$Json$Encode$null; + }); +var elm$core$Basics$identity = function (x) { + return x; +}; +var author$project$Main$removeSavedWord = _Platform_outgoingPort('removeSavedWord', elm$core$Basics$identity); +var author$project$Main$saveWord = _Platform_outgoingPort('saveWord', elm$core$Basics$identity); +var author$project$Main$scrollTop = _Platform_outgoingPort( + 'scrollTop', + function ($) { + return elm$json$Json$Encode$null; + }); +var author$project$Main$NoOp = {$: 'NoOp'}; +var elm$browser$Browser$External = function (a) { + return {$: 'External', a: a}; +}; +var elm$browser$Browser$Internal = function (a) { + return {$: 'Internal', a: a}; +}; +var elm$browser$Browser$Dom$NotFound = function (a) { + return {$: 'NotFound', a: a}; +}; +var elm$core$Basics$never = function (_n0) { + never: + while (true) { + var nvr = _n0.a; + var $temp$_n0 = nvr; + _n0 = $temp$_n0; + continue never; + } +}; +var elm$core$Task$Perform = function (a) { + return {$: 'Perform', a: a}; +}; +var elm$core$Task$succeed = _Scheduler_succeed; +var elm$core$Task$init = elm$core$Task$succeed(_Utils_Tuple0); +var elm$core$List$map = F2( + function (f, xs) { + return A3( + elm$core$List$foldr, + F2( + function (x, acc) { + return A2( + elm$core$List$cons, + f(x), + acc); + }), + _List_Nil, + xs); + }); +var elm$core$Task$andThen = _Scheduler_andThen; +var elm$core$Task$map = F2( + function (func, taskA) { + return A2( + elm$core$Task$andThen, + function (a) { + return elm$core$Task$succeed( + func(a)); + }, + taskA); + }); +var elm$core$Task$map2 = F3( + function (func, taskA, taskB) { + return A2( + elm$core$Task$andThen, + function (a) { + return A2( + elm$core$Task$andThen, + function (b) { + return elm$core$Task$succeed( + A2(func, a, b)); + }, + taskB); + }, + taskA); + }); +var elm$core$Task$sequence = function (tasks) { + return A3( + elm$core$List$foldr, + elm$core$Task$map2(elm$core$List$cons), + elm$core$Task$succeed(_List_Nil), + tasks); +}; +var elm$core$Platform$sendToApp = _Platform_sendToApp; +var elm$core$Task$spawnCmd = F2( + function (router, _n0) { + var task = _n0.a; + return _Scheduler_spawn( + A2( + elm$core$Task$andThen, + elm$core$Platform$sendToApp(router), + task)); + }); +var elm$core$Task$onEffects = F3( + function (router, commands, state) { + return A2( + elm$core$Task$map, + function (_n0) { + return _Utils_Tuple0; + }, + elm$core$Task$sequence( + A2( + elm$core$List$map, + elm$core$Task$spawnCmd(router), + commands))); + }); +var elm$core$Task$onSelfMsg = F3( + function (_n0, _n1, _n2) { + return elm$core$Task$succeed(_Utils_Tuple0); + }); +var elm$core$Task$cmdMap = F2( + function (tagger, _n0) { + var task = _n0.a; + return elm$core$Task$Perform( + A2(elm$core$Task$map, tagger, task)); + }); +_Platform_effectManagers['Task'] = _Platform_createManager(elm$core$Task$init, elm$core$Task$onEffects, elm$core$Task$onSelfMsg, elm$core$Task$cmdMap); +var elm$core$Task$command = _Platform_leaf('Task'); +var elm$core$Task$perform = F2( + function (toMessage, task) { + return elm$core$Task$command( + elm$core$Task$Perform( + A2(elm$core$Task$map, toMessage, task))); + }); +var elm$json$Json$Decode$map = _Json_map1; +var elm$browser$Debugger$Expando$ArraySeq = {$: 'ArraySeq'}; +var elm$browser$Debugger$Expando$Constructor = F3( + function (a, b, c) { + return {$: 'Constructor', a: a, b: b, c: c}; + }); +var elm$browser$Debugger$Expando$Dictionary = F2( + function (a, b) { + return {$: 'Dictionary', a: a, b: b}; + }); +var elm$browser$Debugger$Expando$ListSeq = {$: 'ListSeq'}; +var elm$browser$Debugger$Expando$Primitive = function (a) { + return {$: 'Primitive', a: a}; +}; +var elm$browser$Debugger$Expando$Record = F2( + function (a, b) { + return {$: 'Record', a: a, b: b}; + }); +var elm$browser$Debugger$Expando$S = function (a) { + return {$: 'S', a: a}; +}; +var elm$browser$Debugger$Expando$Sequence = F3( + function (a, b, c) { + return {$: 'Sequence', a: a, b: b, c: c}; + }); +var elm$browser$Debugger$Expando$SetSeq = {$: 'SetSeq'}; +var elm$browser$Debugger$Main$Down = {$: 'Down'}; +var elm$browser$Debugger$Main$NoOp = {$: 'NoOp'}; +var elm$browser$Debugger$Main$Up = {$: 'Up'}; +var elm$browser$Debugger$Main$UserMsg = function (a) { + return {$: 'UserMsg', a: a}; +}; +var elm$browser$Debugger$History$size = function (history) { + return history.numMessages; +}; +var elm$browser$Debugger$Main$Export = {$: 'Export'}; +var elm$browser$Debugger$Main$Import = {$: 'Import'}; +var elm$browser$Debugger$Main$Open = {$: 'Open'}; +var elm$browser$Debugger$Main$OverlayMsg = function (a) { + return {$: 'OverlayMsg', a: a}; +}; +var elm$browser$Debugger$Main$Resume = {$: 'Resume'}; +var elm$browser$Debugger$Main$isPaused = function (state) { + if (state.$ === 'Running') { + return false; + } else { + return true; + } +}; +var elm$browser$Debugger$Overlay$Accept = function (a) { + return {$: 'Accept', a: a}; +}; +var elm$browser$Debugger$Overlay$Choose = F2( + function (a, b) { + return {$: 'Choose', a: a, b: b}; + }); +var elm$browser$Debugger$Overlay$goodNews1 = '\nThe good news is that having values like this in your message type is not\nso great in the long run. You are better off using simpler data, like\n'; +var elm$browser$Debugger$Overlay$goodNews2 = '\nfunction can pattern match on that data and call whatever functions, JSON\ndecoders, etc. you need. This makes the code much more explicit and easy to\nfollow for other readers (or you in a few months!)\n'; +var elm$json$Json$Decode$map2 = _Json_map2; +var elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) { + switch (handler.$) { + case 'Normal': + return 0; + case 'MayStopPropagation': + return 1; + case 'MayPreventDefault': + return 2; + default: + return 3; + } +}; +var elm$html$Html$code = _VirtualDom_node('code'); +var elm$virtual_dom$VirtualDom$text = _VirtualDom_text; +var elm$html$Html$text = elm$virtual_dom$VirtualDom$text; +var elm$browser$Debugger$Overlay$viewCode = function (name) { + return A2( + elm$html$Html$code, + _List_Nil, + _List_fromArray( + [ + elm$html$Html$text(name) + ])); +}; +var elm$browser$Debugger$Overlay$addCommas = function (items) { + if (!items.b) { + return ''; + } else { + if (!items.b.b) { + var item = items.a; + return item; + } else { + if (!items.b.b.b) { + var item1 = items.a; + var _n1 = items.b; + var item2 = _n1.a; + return item1 + (' and ' + item2); + } else { + var lastItem = items.a; + var otherItems = items.b; + return A2( + elm$core$String$join, + ', ', + _Utils_ap( + otherItems, + _List_fromArray( + [' and ' + lastItem]))); + } + } + } +}; +var elm$browser$Debugger$Overlay$problemToString = function (problem) { + switch (problem.$) { + case 'Function': + return 'functions'; + case 'Decoder': + return 'JSON decoders'; + case 'Task': + return 'tasks'; + case 'Process': + return 'processes'; + case 'Socket': + return 'web sockets'; + case 'Request': + return 'HTTP requests'; + case 'Program': + return 'programs'; + default: + return 'virtual DOM values'; + } +}; +var elm$html$Html$li = _VirtualDom_node('li'); +var elm$browser$Debugger$Overlay$viewProblemType = function (_n0) { + var name = _n0.name; + var problems = _n0.problems; + return A2( + elm$html$Html$li, + _List_Nil, + _List_fromArray( + [ + elm$browser$Debugger$Overlay$viewCode(name), + elm$html$Html$text( + ' can contain ' + (elm$browser$Debugger$Overlay$addCommas( + A2(elm$core$List$map, elm$browser$Debugger$Overlay$problemToString, problems)) + '.')) + ])); +}; +var elm$html$Html$a = _VirtualDom_node('a'); +var elm$html$Html$p = _VirtualDom_node('p'); +var elm$html$Html$ul = _VirtualDom_node('ul'); +var elm$html$Html$Attributes$stringProperty = F2( + function (key, string) { + return A2( + _VirtualDom_property, + key, + elm$json$Json$Encode$string(string)); + }); +var elm$html$Html$Attributes$href = function (url) { + return A2( + elm$html$Html$Attributes$stringProperty, + 'href', + _VirtualDom_noJavaScriptUri(url)); +}; +var elm$browser$Debugger$Overlay$viewBadMetadata = function (_n0) { + var message = _n0.message; + var problems = _n0.problems; + return _List_fromArray( + [ + A2( + elm$html$Html$p, + _List_Nil, + _List_fromArray( + [ + elm$html$Html$text('The '), + elm$browser$Debugger$Overlay$viewCode(message), + elm$html$Html$text(' type of your program cannot be reliably serialized for history files.') + ])), + A2( + elm$html$Html$p, + _List_Nil, + _List_fromArray( + [ + elm$html$Html$text('Functions cannot be serialized, nor can values that contain functions. This is a problem in these places:') + ])), + A2( + elm$html$Html$ul, + _List_Nil, + A2(elm$core$List$map, elm$browser$Debugger$Overlay$viewProblemType, problems)), + A2( + elm$html$Html$p, + _List_Nil, + _List_fromArray( + [ + elm$html$Html$text(elm$browser$Debugger$Overlay$goodNews1), + A2( + elm$html$Html$a, + _List_fromArray( + [ + elm$html$Html$Attributes$href('https://guide.elm-lang.org/types/union_types.html') + ]), + _List_fromArray( + [ + elm$html$Html$text('union types') + ])), + elm$html$Html$text(', in your messages. From there, your '), + elm$browser$Debugger$Overlay$viewCode('update'), + elm$html$Html$text(elm$browser$Debugger$Overlay$goodNews2) + ])) + ]); +}; +var elm$browser$Debugger$Overlay$Cancel = {$: 'Cancel'}; +var elm$browser$Debugger$Overlay$Proceed = {$: 'Proceed'}; +var elm$html$Html$button = _VirtualDom_node('button'); +var elm$html$Html$div = _VirtualDom_node('div'); +var elm$virtual_dom$VirtualDom$style = _VirtualDom_style; +var elm$html$Html$Attributes$style = elm$virtual_dom$VirtualDom$style; +var elm$virtual_dom$VirtualDom$Normal = function (a) { + return {$: 'Normal', a: a}; +}; +var elm$virtual_dom$VirtualDom$on = _VirtualDom_on; +var elm$html$Html$Events$on = F2( + function (event, decoder) { + return A2( + elm$virtual_dom$VirtualDom$on, + event, + elm$virtual_dom$VirtualDom$Normal(decoder)); + }); +var elm$html$Html$Events$onClick = function (msg) { + return A2( + elm$html$Html$Events$on, + 'click', + elm$json$Json$Decode$succeed(msg)); +}; +var elm$browser$Debugger$Overlay$viewButtons = function (buttons) { + var btn = F2( + function (msg, string) { + return A2( + elm$html$Html$button, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'margin-right', '20px'), + elm$html$Html$Events$onClick(msg) + ]), + _List_fromArray( + [ + elm$html$Html$text(string) + ])); + }); + var buttonNodes = function () { + if (buttons.$ === 'Accept') { + var proceed = buttons.a; + return _List_fromArray( + [ + A2(btn, elm$browser$Debugger$Overlay$Proceed, proceed) + ]); + } else { + var cancel = buttons.a; + var proceed = buttons.b; + return _List_fromArray( + [ + A2(btn, elm$browser$Debugger$Overlay$Cancel, cancel), + A2(btn, elm$browser$Debugger$Overlay$Proceed, proceed) + ]); + } + }(); + return A2( + elm$html$Html$div, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'height', '60px'), + A2(elm$html$Html$Attributes$style, 'line-height', '60px'), + A2(elm$html$Html$Attributes$style, 'text-align', 'right'), + A2(elm$html$Html$Attributes$style, 'background-color', 'rgb(50, 50, 50)') + ]), + buttonNodes); +}; +var elm$virtual_dom$VirtualDom$map = _VirtualDom_map; +var elm$html$Html$map = elm$virtual_dom$VirtualDom$map; +var elm$html$Html$Attributes$id = elm$html$Html$Attributes$stringProperty('id'); +var elm$browser$Debugger$Overlay$viewMessage = F4( + function (config, title, details, buttons) { + return A2( + elm$html$Html$div, + _List_fromArray( + [ + elm$html$Html$Attributes$id('elm-debugger-overlay'), + A2(elm$html$Html$Attributes$style, 'position', 'fixed'), + A2(elm$html$Html$Attributes$style, 'top', '0'), + A2(elm$html$Html$Attributes$style, 'left', '0'), + A2(elm$html$Html$Attributes$style, 'width', '100%'), + A2(elm$html$Html$Attributes$style, 'height', '100%'), + A2(elm$html$Html$Attributes$style, 'color', 'white'), + A2(elm$html$Html$Attributes$style, 'pointer-events', 'none'), + A2(elm$html$Html$Attributes$style, 'font-family', '\'Trebuchet MS\', \'Lucida Grande\', \'Bitstream Vera Sans\', \'Helvetica Neue\', sans-serif'), + A2(elm$html$Html$Attributes$style, 'z-index', '2147483647') + ]), + _List_fromArray( + [ + A2( + elm$html$Html$div, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'position', 'absolute'), + A2(elm$html$Html$Attributes$style, 'width', '600px'), + A2(elm$html$Html$Attributes$style, 'height', '100%'), + A2(elm$html$Html$Attributes$style, 'padding-left', 'calc(50% - 300px)'), + A2(elm$html$Html$Attributes$style, 'padding-right', 'calc(50% - 300px)'), + A2(elm$html$Html$Attributes$style, 'background-color', 'rgba(200, 200, 200, 0.7)'), + A2(elm$html$Html$Attributes$style, 'pointer-events', 'auto') + ]), + _List_fromArray( + [ + A2( + elm$html$Html$div, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'font-size', '36px'), + A2(elm$html$Html$Attributes$style, 'height', '80px'), + A2(elm$html$Html$Attributes$style, 'background-color', 'rgb(50, 50, 50)'), + A2(elm$html$Html$Attributes$style, 'padding-left', '22px'), + A2(elm$html$Html$Attributes$style, 'vertical-align', 'middle'), + A2(elm$html$Html$Attributes$style, 'line-height', '80px') + ]), + _List_fromArray( + [ + elm$html$Html$text(title) + ])), + A2( + elm$html$Html$div, + _List_fromArray( + [ + elm$html$Html$Attributes$id('elm-debugger-details'), + A2(elm$html$Html$Attributes$style, 'padding', ' 8px 20px'), + A2(elm$html$Html$Attributes$style, 'overflow-y', 'auto'), + A2(elm$html$Html$Attributes$style, 'max-height', 'calc(100% - 156px)'), + A2(elm$html$Html$Attributes$style, 'background-color', 'rgb(61, 61, 61)') + ]), + details), + A2( + elm$html$Html$map, + config.wrap, + elm$browser$Debugger$Overlay$viewButtons(buttons)) + ])) + ])); + }); +var elm$html$Html$span = _VirtualDom_node('span'); +var elm$browser$Debugger$Overlay$button = F2( + function (msg, label) { + return A2( + elm$html$Html$span, + _List_fromArray( + [ + elm$html$Html$Events$onClick(msg), + A2(elm$html$Html$Attributes$style, 'cursor', 'pointer') + ]), + _List_fromArray( + [ + elm$html$Html$text(label) + ])); + }); +var elm$browser$Debugger$Overlay$viewImportExport = F3( + function (props, importMsg, exportMsg) { + return A2( + elm$html$Html$div, + props, + _List_fromArray( + [ + A2(elm$browser$Debugger$Overlay$button, importMsg, 'Import'), + elm$html$Html$text(' / '), + A2(elm$browser$Debugger$Overlay$button, exportMsg, 'Export') + ])); + }); +var elm$browser$Debugger$Overlay$viewMiniControls = F2( + function (config, numMsgs) { + return A2( + elm$html$Html$div, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'position', 'fixed'), + A2(elm$html$Html$Attributes$style, 'bottom', '0'), + A2(elm$html$Html$Attributes$style, 'right', '6px'), + A2(elm$html$Html$Attributes$style, 'border-radius', '4px'), + A2(elm$html$Html$Attributes$style, 'background-color', 'rgb(61, 61, 61)'), + A2(elm$html$Html$Attributes$style, 'color', 'white'), + A2(elm$html$Html$Attributes$style, 'font-family', 'monospace'), + A2(elm$html$Html$Attributes$style, 'pointer-events', 'auto'), + A2(elm$html$Html$Attributes$style, 'z-index', '2147483647') + ]), + _List_fromArray( + [ + A2( + elm$html$Html$div, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'padding', '6px'), + A2(elm$html$Html$Attributes$style, 'cursor', 'pointer'), + A2(elm$html$Html$Attributes$style, 'text-align', 'center'), + A2(elm$html$Html$Attributes$style, 'min-width', '24ch'), + elm$html$Html$Events$onClick(config.open) + ]), + _List_fromArray( + [ + elm$html$Html$text( + 'Explore History (' + (elm$core$String$fromInt(numMsgs) + ')')) + ])), + A3( + elm$browser$Debugger$Overlay$viewImportExport, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'padding', '4px 0'), + A2(elm$html$Html$Attributes$style, 'font-size', '0.8em'), + A2(elm$html$Html$Attributes$style, 'text-align', 'center'), + A2(elm$html$Html$Attributes$style, 'background-color', 'rgb(50, 50, 50)') + ]), + config.importHistory, + config.exportHistory) + ])); + }); +var elm$browser$Debugger$Overlay$explanationBad = '\nThe messages in this history do not match the messages handled by your\nprogram. I noticed changes in the following types:\n'; +var elm$browser$Debugger$Overlay$explanationRisky = '\nThis history seems old. It will work with this program, but some\nmessages have been added since the history was created:\n'; +var elm$core$List$intersperse = F2( + function (sep, xs) { + if (!xs.b) { + return _List_Nil; + } else { + var hd = xs.a; + var tl = xs.b; + var step = F2( + function (x, rest) { + return A2( + elm$core$List$cons, + sep, + A2(elm$core$List$cons, x, rest)); + }); + var spersed = A3(elm$core$List$foldr, step, _List_Nil, tl); + return A2(elm$core$List$cons, hd, spersed); + } + }); +var elm$browser$Debugger$Overlay$viewMention = F2( + function (tags, verbed) { + var _n0 = A2( + elm$core$List$map, + elm$browser$Debugger$Overlay$viewCode, + elm$core$List$reverse(tags)); + if (!_n0.b) { + return elm$html$Html$text(''); + } else { + if (!_n0.b.b) { + var tag = _n0.a; + return A2( + elm$html$Html$li, + _List_Nil, + _List_fromArray( + [ + elm$html$Html$text(verbed), + tag, + elm$html$Html$text('.') + ])); + } else { + if (!_n0.b.b.b) { + var tag2 = _n0.a; + var _n1 = _n0.b; + var tag1 = _n1.a; + return A2( + elm$html$Html$li, + _List_Nil, + _List_fromArray( + [ + elm$html$Html$text(verbed), + tag1, + elm$html$Html$text(' and '), + tag2, + elm$html$Html$text('.') + ])); + } else { + var lastTag = _n0.a; + var otherTags = _n0.b; + return A2( + elm$html$Html$li, + _List_Nil, + A2( + elm$core$List$cons, + elm$html$Html$text(verbed), + _Utils_ap( + A2( + elm$core$List$intersperse, + elm$html$Html$text(', '), + elm$core$List$reverse(otherTags)), + _List_fromArray( + [ + elm$html$Html$text(', and '), + lastTag, + elm$html$Html$text('.') + ])))); + } + } + } + }); +var elm$browser$Debugger$Overlay$viewChange = function (change) { + return A2( + elm$html$Html$li, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'margin', '8px 0') + ]), + function () { + if (change.$ === 'AliasChange') { + var name = change.a; + return _List_fromArray( + [ + A2( + elm$html$Html$span, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'font-size', '1.5em') + ]), + _List_fromArray( + [ + elm$browser$Debugger$Overlay$viewCode(name) + ])) + ]); + } else { + var name = change.a; + var removed = change.b.removed; + var changed = change.b.changed; + var added = change.b.added; + var argsMatch = change.b.argsMatch; + return _List_fromArray( + [ + A2( + elm$html$Html$span, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'font-size', '1.5em') + ]), + _List_fromArray( + [ + elm$browser$Debugger$Overlay$viewCode(name) + ])), + A2( + elm$html$Html$ul, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'list-style-type', 'disc'), + A2(elm$html$Html$Attributes$style, 'padding-left', '2em') + ]), + _List_fromArray( + [ + A2(elm$browser$Debugger$Overlay$viewMention, removed, 'Removed '), + A2(elm$browser$Debugger$Overlay$viewMention, changed, 'Changed '), + A2(elm$browser$Debugger$Overlay$viewMention, added, 'Added ') + ])), + argsMatch ? elm$html$Html$text('') : elm$html$Html$text('This may be due to the fact that the type variable names changed.') + ]); + } + }()); +}; +var elm$browser$Debugger$Overlay$viewReport = F2( + function (isBad, report) { + switch (report.$) { + case 'CorruptHistory': + return _List_fromArray( + [ + elm$html$Html$text('Looks like this history file is corrupt. I cannot understand it.') + ]); + case 'VersionChanged': + var old = report.a; + var _new = report.b; + return _List_fromArray( + [ + elm$html$Html$text('This history was created with Elm ' + (old + (', but you are using Elm ' + (_new + ' right now.')))) + ]); + case 'MessageChanged': + var old = report.a; + var _new = report.b; + return _List_fromArray( + [ + elm$html$Html$text('To import some other history, the overall message type must' + ' be the same. The old history has '), + elm$browser$Debugger$Overlay$viewCode(old), + elm$html$Html$text(' messages, but the new program works with '), + elm$browser$Debugger$Overlay$viewCode(_new), + elm$html$Html$text(' messages.') + ]); + default: + var changes = report.a; + return _List_fromArray( + [ + A2( + elm$html$Html$p, + _List_Nil, + _List_fromArray( + [ + elm$html$Html$text( + isBad ? elm$browser$Debugger$Overlay$explanationBad : elm$browser$Debugger$Overlay$explanationRisky) + ])), + A2( + elm$html$Html$ul, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'list-style-type', 'none'), + A2(elm$html$Html$Attributes$style, 'padding-left', '20px') + ]), + A2(elm$core$List$map, elm$browser$Debugger$Overlay$viewChange, changes)) + ]); + } + }); +var elm$browser$Debugger$Overlay$view = F5( + function (config, isPaused, isOpen, numMsgs, state) { + switch (state.$) { + case 'None': + return isOpen ? elm$html$Html$text('') : (isPaused ? A2( + elm$html$Html$div, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'width', '100%'), + A2(elm$html$Html$Attributes$style, 'height', '100%'), + A2(elm$html$Html$Attributes$style, 'cursor', 'pointer'), + A2(elm$html$Html$Attributes$style, 'text-align', 'center'), + A2(elm$html$Html$Attributes$style, 'pointer-events', 'auto'), + A2(elm$html$Html$Attributes$style, 'background-color', 'rgba(200, 200, 200, 0.7)'), + A2(elm$html$Html$Attributes$style, 'color', 'white'), + A2(elm$html$Html$Attributes$style, 'font-family', '\'Trebuchet MS\', \'Lucida Grande\', \'Bitstream Vera Sans\', \'Helvetica Neue\', sans-serif'), + A2(elm$html$Html$Attributes$style, 'z-index', '2147483646'), + elm$html$Html$Events$onClick(config.resume) + ]), + _List_fromArray( + [ + A2( + elm$html$Html$div, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'position', 'absolute'), + A2(elm$html$Html$Attributes$style, 'top', 'calc(50% - 40px)'), + A2(elm$html$Html$Attributes$style, 'font-size', '80px'), + A2(elm$html$Html$Attributes$style, 'line-height', '80px'), + A2(elm$html$Html$Attributes$style, 'height', '80px'), + A2(elm$html$Html$Attributes$style, 'width', '100%') + ]), + _List_fromArray( + [ + elm$html$Html$text('Click to Resume') + ])), + A2(elm$browser$Debugger$Overlay$viewMiniControls, config, numMsgs) + ])) : A2(elm$browser$Debugger$Overlay$viewMiniControls, config, numMsgs)); + case 'BadMetadata': + var badMetadata_ = state.a; + return A4( + elm$browser$Debugger$Overlay$viewMessage, + config, + 'Cannot use Import or Export', + elm$browser$Debugger$Overlay$viewBadMetadata(badMetadata_), + elm$browser$Debugger$Overlay$Accept('Ok')); + case 'BadImport': + var report = state.a; + return A4( + elm$browser$Debugger$Overlay$viewMessage, + config, + 'Cannot Import History', + A2(elm$browser$Debugger$Overlay$viewReport, true, report), + elm$browser$Debugger$Overlay$Accept('Ok')); + default: + var report = state.a; + return A4( + elm$browser$Debugger$Overlay$viewMessage, + config, + 'Warning', + A2(elm$browser$Debugger$Overlay$viewReport, false, report), + A2(elm$browser$Debugger$Overlay$Choose, 'Cancel', 'Import Anyway')); + } + }); +var elm$browser$Debugger$Main$cornerView = function (model) { + return A5( + elm$browser$Debugger$Overlay$view, + {exportHistory: elm$browser$Debugger$Main$Export, importHistory: elm$browser$Debugger$Main$Import, open: elm$browser$Debugger$Main$Open, resume: elm$browser$Debugger$Main$Resume, wrap: elm$browser$Debugger$Main$OverlayMsg}, + elm$browser$Debugger$Main$isPaused(model.state), + _Debugger_isOpen(model.popout), + elm$browser$Debugger$History$size(model.history), + model.overlay); +}; +var elm$browser$Debugger$Main$getCurrentModel = function (state) { + if (state.$ === 'Running') { + var model = state.a; + return model; + } else { + var model = state.b; + return model; + } +}; +var elm$browser$Debugger$Main$getUserModel = function (model) { + return elm$browser$Debugger$Main$getCurrentModel(model.state); +}; +var elm$browser$Debugger$Expando$Field = F2( + function (a, b) { + return {$: 'Field', a: a, b: b}; + }); +var elm$browser$Debugger$Expando$Index = F3( + function (a, b, c) { + return {$: 'Index', a: a, b: b, c: c}; + }); +var elm$browser$Debugger$Expando$Key = {$: 'Key'}; +var elm$browser$Debugger$Expando$None = {$: 'None'}; +var elm$browser$Debugger$Expando$Toggle = {$: 'Toggle'}; +var elm$browser$Debugger$Expando$Value = {$: 'Value'}; +var elm$browser$Debugger$Expando$blue = A2(elm$html$Html$Attributes$style, 'color', 'rgb(28, 0, 207)'); +var elm$browser$Debugger$Expando$leftPad = function (maybeKey) { + if (maybeKey.$ === 'Nothing') { + return _List_Nil; + } else { + return _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'padding-left', '4ch') + ]); + } +}; +var elm$browser$Debugger$Expando$makeArrow = function (arrow) { + return A2( + elm$html$Html$span, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'color', '#777'), + A2(elm$html$Html$Attributes$style, 'padding-left', '2ch'), + A2(elm$html$Html$Attributes$style, 'width', '2ch'), + A2(elm$html$Html$Attributes$style, 'display', 'inline-block') + ]), + _List_fromArray( + [ + elm$html$Html$text(arrow) + ])); +}; +var elm$browser$Debugger$Expando$purple = A2(elm$html$Html$Attributes$style, 'color', 'rgb(136, 19, 145)'); +var elm$browser$Debugger$Expando$lineStarter = F3( + function (maybeKey, maybeIsClosed, description) { + var arrow = function () { + if (maybeIsClosed.$ === 'Nothing') { + return elm$browser$Debugger$Expando$makeArrow(''); + } else { + if (maybeIsClosed.a) { + return elm$browser$Debugger$Expando$makeArrow('▸'); + } else { + return elm$browser$Debugger$Expando$makeArrow('▾'); + } + } + }(); + if (maybeKey.$ === 'Nothing') { + return A2(elm$core$List$cons, arrow, description); + } else { + var key = maybeKey.a; + return A2( + elm$core$List$cons, + arrow, + A2( + elm$core$List$cons, + A2( + elm$html$Html$span, + _List_fromArray( + [elm$browser$Debugger$Expando$purple]), + _List_fromArray( + [ + elm$html$Html$text(key) + ])), + A2( + elm$core$List$cons, + elm$html$Html$text(' = '), + description))); + } + }); +var elm$browser$Debugger$Expando$red = A2(elm$html$Html$Attributes$style, 'color', 'rgb(196, 26, 22)'); +var elm$browser$Debugger$Expando$seqTypeToString = F2( + function (n, seqType) { + switch (seqType.$) { + case 'ListSeq': + return 'List(' + (elm$core$String$fromInt(n) + ')'); + case 'SetSeq': + return 'Set(' + (elm$core$String$fromInt(n) + ')'); + default: + return 'Array(' + (elm$core$String$fromInt(n) + ')'); + } + }); +var elm$core$String$slice = _String_slice; +var elm$core$String$left = F2( + function (n, string) { + return (n < 1) ? '' : A3(elm$core$String$slice, 0, n, string); + }); +var elm$core$String$length = _String_length; +var elm$core$Basics$negate = function (n) { + return -n; +}; +var elm$core$String$right = F2( + function (n, string) { + return (n < 1) ? '' : A3( + elm$core$String$slice, + -n, + elm$core$String$length(string), + string); + }); +var elm$browser$Debugger$Expando$elideMiddle = function (str) { + return (elm$core$String$length(str) <= 18) ? str : (A2(elm$core$String$left, 8, str) + ('...' + A2(elm$core$String$right, 8, str))); +}; +var elm$browser$Debugger$Expando$viewExtraTinyRecord = F3( + function (length, starter, entries) { + if (!entries.b) { + return _Utils_Tuple2( + length + 1, + _List_fromArray( + [ + elm$html$Html$text('}') + ])); + } else { + var field = entries.a; + var rest = entries.b; + var nextLength = (length + elm$core$String$length(field)) + 1; + if (nextLength > 18) { + return _Utils_Tuple2( + length + 2, + _List_fromArray( + [ + elm$html$Html$text('…}') + ])); + } else { + var _n1 = A3(elm$browser$Debugger$Expando$viewExtraTinyRecord, nextLength, ',', rest); + var finalLength = _n1.a; + var otherHtmls = _n1.b; + return _Utils_Tuple2( + finalLength, + A2( + elm$core$List$cons, + elm$html$Html$text(starter), + A2( + elm$core$List$cons, + A2( + elm$html$Html$span, + _List_fromArray( + [elm$browser$Debugger$Expando$purple]), + _List_fromArray( + [ + elm$html$Html$text(field) + ])), + otherHtmls))); + } + } + }); +var elm$browser$Debugger$Expando$viewTinyHelp = function (str) { + return _Utils_Tuple2( + elm$core$String$length(str), + _List_fromArray( + [ + elm$html$Html$text(str) + ])); +}; +var elm$core$Dict$isEmpty = function (dict) { + if (dict.$ === 'RBEmpty_elm_builtin') { + return true; + } else { + return false; + } +}; +var elm$core$Maybe$withDefault = F2( + function (_default, maybe) { + if (maybe.$ === 'Just') { + var value = maybe.a; + return value; + } else { + return _default; + } + }); +var elm$browser$Debugger$Expando$viewExtraTiny = function (value) { + if (value.$ === 'Record') { + var record = value.b; + return A3( + elm$browser$Debugger$Expando$viewExtraTinyRecord, + 0, + '{', + elm$core$Dict$keys(record)); + } else { + return elm$browser$Debugger$Expando$viewTiny(value); + } +}; +var elm$browser$Debugger$Expando$viewTiny = function (value) { + switch (value.$) { + case 'S': + var stringRep = value.a; + var str = elm$browser$Debugger$Expando$elideMiddle(stringRep); + return _Utils_Tuple2( + elm$core$String$length(str), + _List_fromArray( + [ + A2( + elm$html$Html$span, + _List_fromArray( + [elm$browser$Debugger$Expando$red]), + _List_fromArray( + [ + elm$html$Html$text(str) + ])) + ])); + case 'Primitive': + var stringRep = value.a; + return _Utils_Tuple2( + elm$core$String$length(stringRep), + _List_fromArray( + [ + A2( + elm$html$Html$span, + _List_fromArray( + [elm$browser$Debugger$Expando$blue]), + _List_fromArray( + [ + elm$html$Html$text(stringRep) + ])) + ])); + case 'Sequence': + var seqType = value.a; + var valueList = value.c; + return elm$browser$Debugger$Expando$viewTinyHelp( + A2( + elm$browser$Debugger$Expando$seqTypeToString, + elm$core$List$length(valueList), + seqType)); + case 'Dictionary': + var keyValuePairs = value.b; + return elm$browser$Debugger$Expando$viewTinyHelp( + 'Dict(' + (elm$core$String$fromInt( + elm$core$List$length(keyValuePairs)) + ')')); + case 'Record': + var record = value.b; + return elm$browser$Debugger$Expando$viewTinyRecord(record); + default: + if (!value.c.b) { + var maybeName = value.a; + return elm$browser$Debugger$Expando$viewTinyHelp( + A2(elm$core$Maybe$withDefault, 'Unit', maybeName)); + } else { + var maybeName = value.a; + var valueList = value.c; + return elm$browser$Debugger$Expando$viewTinyHelp( + function () { + if (maybeName.$ === 'Nothing') { + return 'Tuple(' + (elm$core$String$fromInt( + elm$core$List$length(valueList)) + ')'); + } else { + var name = maybeName.a; + return name + ' …'; + } + }()); + } + } +}; +var elm$browser$Debugger$Expando$viewTinyRecord = function (record) { + return elm$core$Dict$isEmpty(record) ? _Utils_Tuple2( + 2, + _List_fromArray( + [ + elm$html$Html$text('{}') + ])) : A3( + elm$browser$Debugger$Expando$viewTinyRecordHelp, + 0, + '{ ', + elm$core$Dict$toList(record)); +}; +var elm$browser$Debugger$Expando$viewTinyRecordHelp = F3( + function (length, starter, entries) { + if (!entries.b) { + return _Utils_Tuple2( + length + 2, + _List_fromArray( + [ + elm$html$Html$text(' }') + ])); + } else { + var _n1 = entries.a; + var field = _n1.a; + var value = _n1.b; + var rest = entries.b; + var fieldLen = elm$core$String$length(field); + var _n2 = elm$browser$Debugger$Expando$viewExtraTiny(value); + var valueLen = _n2.a; + var valueHtmls = _n2.b; + var newLength = ((length + fieldLen) + valueLen) + 5; + if (newLength > 60) { + return _Utils_Tuple2( + length + 4, + _List_fromArray( + [ + elm$html$Html$text(', … }') + ])); + } else { + var _n3 = A3(elm$browser$Debugger$Expando$viewTinyRecordHelp, newLength, ', ', rest); + var finalLength = _n3.a; + var otherHtmls = _n3.b; + return _Utils_Tuple2( + finalLength, + A2( + elm$core$List$cons, + elm$html$Html$text(starter), + A2( + elm$core$List$cons, + A2( + elm$html$Html$span, + _List_fromArray( + [elm$browser$Debugger$Expando$purple]), + _List_fromArray( + [ + elm$html$Html$text(field) + ])), + A2( + elm$core$List$cons, + elm$html$Html$text(' = '), + A2( + elm$core$List$cons, + A2(elm$html$Html$span, _List_Nil, valueHtmls), + otherHtmls))))); + } + } + }); +var elm$core$Basics$composeL = F3( + function (g, f, x) { + return g( + f(x)); + }); +var elm$core$Tuple$second = function (_n0) { + var y = _n0.b; + return y; +}; +var elm$browser$Debugger$Expando$view = F2( + function (maybeKey, expando) { + switch (expando.$) { + case 'S': + var stringRep = expando.a; + return A2( + elm$html$Html$div, + elm$browser$Debugger$Expando$leftPad(maybeKey), + A3( + elm$browser$Debugger$Expando$lineStarter, + maybeKey, + elm$core$Maybe$Nothing, + _List_fromArray( + [ + A2( + elm$html$Html$span, + _List_fromArray( + [elm$browser$Debugger$Expando$red]), + _List_fromArray( + [ + elm$html$Html$text(stringRep) + ])) + ]))); + case 'Primitive': + var stringRep = expando.a; + return A2( + elm$html$Html$div, + elm$browser$Debugger$Expando$leftPad(maybeKey), + A3( + elm$browser$Debugger$Expando$lineStarter, + maybeKey, + elm$core$Maybe$Nothing, + _List_fromArray( + [ + A2( + elm$html$Html$span, + _List_fromArray( + [elm$browser$Debugger$Expando$blue]), + _List_fromArray( + [ + elm$html$Html$text(stringRep) + ])) + ]))); + case 'Sequence': + var seqType = expando.a; + var isClosed = expando.b; + var valueList = expando.c; + return A4(elm$browser$Debugger$Expando$viewSequence, maybeKey, seqType, isClosed, valueList); + case 'Dictionary': + var isClosed = expando.a; + var keyValuePairs = expando.b; + return A3(elm$browser$Debugger$Expando$viewDictionary, maybeKey, isClosed, keyValuePairs); + case 'Record': + var isClosed = expando.a; + var valueDict = expando.b; + return A3(elm$browser$Debugger$Expando$viewRecord, maybeKey, isClosed, valueDict); + default: + var maybeName = expando.a; + var isClosed = expando.b; + var valueList = expando.c; + return A4(elm$browser$Debugger$Expando$viewConstructor, maybeKey, maybeName, isClosed, valueList); + } + }); +var elm$browser$Debugger$Expando$viewConstructor = F4( + function (maybeKey, maybeName, isClosed, valueList) { + var tinyArgs = A2( + elm$core$List$map, + A2(elm$core$Basics$composeL, elm$core$Tuple$second, elm$browser$Debugger$Expando$viewExtraTiny), + valueList); + var description = function () { + var _n7 = _Utils_Tuple2(maybeName, tinyArgs); + if (_n7.a.$ === 'Nothing') { + if (!_n7.b.b) { + var _n8 = _n7.a; + return _List_fromArray( + [ + elm$html$Html$text('()') + ]); + } else { + var _n9 = _n7.a; + var _n10 = _n7.b; + var x = _n10.a; + var xs = _n10.b; + return A2( + elm$core$List$cons, + elm$html$Html$text('( '), + A2( + elm$core$List$cons, + A2(elm$html$Html$span, _List_Nil, x), + A3( + elm$core$List$foldr, + F2( + function (args, rest) { + return A2( + elm$core$List$cons, + elm$html$Html$text(', '), + A2( + elm$core$List$cons, + A2(elm$html$Html$span, _List_Nil, args), + rest)); + }), + _List_fromArray( + [ + elm$html$Html$text(' )') + ]), + xs))); + } + } else { + if (!_n7.b.b) { + var name = _n7.a.a; + return _List_fromArray( + [ + elm$html$Html$text(name) + ]); + } else { + var name = _n7.a.a; + var _n11 = _n7.b; + var x = _n11.a; + var xs = _n11.b; + return A2( + elm$core$List$cons, + elm$html$Html$text(name + ' '), + A2( + elm$core$List$cons, + A2(elm$html$Html$span, _List_Nil, x), + A3( + elm$core$List$foldr, + F2( + function (args, rest) { + return A2( + elm$core$List$cons, + elm$html$Html$text(' '), + A2( + elm$core$List$cons, + A2(elm$html$Html$span, _List_Nil, args), + rest)); + }), + _List_Nil, + xs))); + } + } + }(); + var _n4 = function () { + if (!valueList.b) { + return _Utils_Tuple2( + elm$core$Maybe$Nothing, + A2(elm$html$Html$div, _List_Nil, _List_Nil)); + } else { + if (!valueList.b.b) { + var entry = valueList.a; + switch (entry.$) { + case 'S': + return _Utils_Tuple2( + elm$core$Maybe$Nothing, + A2(elm$html$Html$div, _List_Nil, _List_Nil)); + case 'Primitive': + return _Utils_Tuple2( + elm$core$Maybe$Nothing, + A2(elm$html$Html$div, _List_Nil, _List_Nil)); + case 'Sequence': + var subValueList = entry.c; + return _Utils_Tuple2( + elm$core$Maybe$Just(isClosed), + isClosed ? A2(elm$html$Html$div, _List_Nil, _List_Nil) : A2( + elm$html$Html$map, + A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$None, 0), + elm$browser$Debugger$Expando$viewSequenceOpen(subValueList))); + case 'Dictionary': + var keyValuePairs = entry.b; + return _Utils_Tuple2( + elm$core$Maybe$Just(isClosed), + isClosed ? A2(elm$html$Html$div, _List_Nil, _List_Nil) : A2( + elm$html$Html$map, + A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$None, 0), + elm$browser$Debugger$Expando$viewDictionaryOpen(keyValuePairs))); + case 'Record': + var record = entry.b; + return _Utils_Tuple2( + elm$core$Maybe$Just(isClosed), + isClosed ? A2(elm$html$Html$div, _List_Nil, _List_Nil) : A2( + elm$html$Html$map, + A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$None, 0), + elm$browser$Debugger$Expando$viewRecordOpen(record))); + default: + var subValueList = entry.c; + return _Utils_Tuple2( + elm$core$Maybe$Just(isClosed), + isClosed ? A2(elm$html$Html$div, _List_Nil, _List_Nil) : A2( + elm$html$Html$map, + A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$None, 0), + elm$browser$Debugger$Expando$viewConstructorOpen(subValueList))); + } + } else { + return _Utils_Tuple2( + elm$core$Maybe$Just(isClosed), + isClosed ? A2(elm$html$Html$div, _List_Nil, _List_Nil) : elm$browser$Debugger$Expando$viewConstructorOpen(valueList)); + } + } + }(); + var maybeIsClosed = _n4.a; + var openHtml = _n4.b; + return A2( + elm$html$Html$div, + elm$browser$Debugger$Expando$leftPad(maybeKey), + _List_fromArray( + [ + A2( + elm$html$Html$div, + _List_fromArray( + [ + elm$html$Html$Events$onClick(elm$browser$Debugger$Expando$Toggle) + ]), + A3(elm$browser$Debugger$Expando$lineStarter, maybeKey, maybeIsClosed, description)), + openHtml + ])); + }); +var elm$browser$Debugger$Expando$viewConstructorEntry = F2( + function (index, value) { + return A2( + elm$html$Html$map, + A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$None, index), + A2( + elm$browser$Debugger$Expando$view, + elm$core$Maybe$Just( + elm$core$String$fromInt(index)), + value)); + }); +var elm$browser$Debugger$Expando$viewConstructorOpen = function (valueList) { + return A2( + elm$html$Html$div, + _List_Nil, + A2(elm$core$List$indexedMap, elm$browser$Debugger$Expando$viewConstructorEntry, valueList)); +}; +var elm$browser$Debugger$Expando$viewDictionary = F3( + function (maybeKey, isClosed, keyValuePairs) { + var starter = 'Dict(' + (elm$core$String$fromInt( + elm$core$List$length(keyValuePairs)) + ')'); + return A2( + elm$html$Html$div, + elm$browser$Debugger$Expando$leftPad(maybeKey), + _List_fromArray( + [ + A2( + elm$html$Html$div, + _List_fromArray( + [ + elm$html$Html$Events$onClick(elm$browser$Debugger$Expando$Toggle) + ]), + A3( + elm$browser$Debugger$Expando$lineStarter, + maybeKey, + elm$core$Maybe$Just(isClosed), + _List_fromArray( + [ + elm$html$Html$text(starter) + ]))), + isClosed ? elm$html$Html$text('') : elm$browser$Debugger$Expando$viewDictionaryOpen(keyValuePairs) + ])); + }); +var elm$browser$Debugger$Expando$viewDictionaryEntry = F2( + function (index, _n2) { + var key = _n2.a; + var value = _n2.b; + switch (key.$) { + case 'S': + var stringRep = key.a; + return A2( + elm$html$Html$map, + A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$Value, index), + A2( + elm$browser$Debugger$Expando$view, + elm$core$Maybe$Just(stringRep), + value)); + case 'Primitive': + var stringRep = key.a; + return A2( + elm$html$Html$map, + A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$Value, index), + A2( + elm$browser$Debugger$Expando$view, + elm$core$Maybe$Just(stringRep), + value)); + default: + return A2( + elm$html$Html$div, + _List_Nil, + _List_fromArray( + [ + A2( + elm$html$Html$map, + A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$Key, index), + A2( + elm$browser$Debugger$Expando$view, + elm$core$Maybe$Just('key'), + key)), + A2( + elm$html$Html$map, + A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$Value, index), + A2( + elm$browser$Debugger$Expando$view, + elm$core$Maybe$Just('value'), + value)) + ])); + } + }); +var elm$browser$Debugger$Expando$viewDictionaryOpen = function (keyValuePairs) { + return A2( + elm$html$Html$div, + _List_Nil, + A2(elm$core$List$indexedMap, elm$browser$Debugger$Expando$viewDictionaryEntry, keyValuePairs)); +}; +var elm$browser$Debugger$Expando$viewRecord = F3( + function (maybeKey, isClosed, record) { + var _n1 = isClosed ? _Utils_Tuple3( + elm$browser$Debugger$Expando$viewTinyRecord(record).b, + elm$html$Html$text(''), + elm$html$Html$text('')) : _Utils_Tuple3( + _List_fromArray( + [ + elm$html$Html$text('{') + ]), + elm$browser$Debugger$Expando$viewRecordOpen(record), + A2( + elm$html$Html$div, + elm$browser$Debugger$Expando$leftPad( + elm$core$Maybe$Just(_Utils_Tuple0)), + _List_fromArray( + [ + elm$html$Html$text('}') + ]))); + var start = _n1.a; + var middle = _n1.b; + var end = _n1.c; + return A2( + elm$html$Html$div, + elm$browser$Debugger$Expando$leftPad(maybeKey), + _List_fromArray( + [ + A2( + elm$html$Html$div, + _List_fromArray( + [ + elm$html$Html$Events$onClick(elm$browser$Debugger$Expando$Toggle) + ]), + A3( + elm$browser$Debugger$Expando$lineStarter, + maybeKey, + elm$core$Maybe$Just(isClosed), + start)), + middle, + end + ])); + }); +var elm$browser$Debugger$Expando$viewRecordEntry = function (_n0) { + var field = _n0.a; + var value = _n0.b; + return A2( + elm$html$Html$map, + elm$browser$Debugger$Expando$Field(field), + A2( + elm$browser$Debugger$Expando$view, + elm$core$Maybe$Just(field), + value)); +}; +var elm$browser$Debugger$Expando$viewRecordOpen = function (record) { + return A2( + elm$html$Html$div, + _List_Nil, + A2( + elm$core$List$map, + elm$browser$Debugger$Expando$viewRecordEntry, + elm$core$Dict$toList(record))); +}; +var elm$browser$Debugger$Expando$viewSequence = F4( + function (maybeKey, seqType, isClosed, valueList) { + var starter = A2( + elm$browser$Debugger$Expando$seqTypeToString, + elm$core$List$length(valueList), + seqType); + return A2( + elm$html$Html$div, + elm$browser$Debugger$Expando$leftPad(maybeKey), + _List_fromArray( + [ + A2( + elm$html$Html$div, + _List_fromArray( + [ + elm$html$Html$Events$onClick(elm$browser$Debugger$Expando$Toggle) + ]), + A3( + elm$browser$Debugger$Expando$lineStarter, + maybeKey, + elm$core$Maybe$Just(isClosed), + _List_fromArray( + [ + elm$html$Html$text(starter) + ]))), + isClosed ? elm$html$Html$text('') : elm$browser$Debugger$Expando$viewSequenceOpen(valueList) + ])); + }); +var elm$browser$Debugger$Expando$viewSequenceOpen = function (values) { + return A2( + elm$html$Html$div, + _List_Nil, + A2(elm$core$List$indexedMap, elm$browser$Debugger$Expando$viewConstructorEntry, values)); +}; +var elm$browser$Debugger$Main$ExpandoMsg = function (a) { + return {$: 'ExpandoMsg', a: a}; +}; +var elm$html$Html$Attributes$class = elm$html$Html$Attributes$stringProperty('className'); +var elm$html$Html$Attributes$title = elm$html$Html$Attributes$stringProperty('title'); +var elm$browser$Debugger$History$viewMessage = F3( + function (currentIndex, index, msg) { + var messageName = _Debugger_messageToString(msg); + var className = _Utils_eq(currentIndex, index) ? 'elm-debugger-entry elm-debugger-entry-selected' : 'elm-debugger-entry'; + return A2( + elm$html$Html$div, + _List_fromArray( + [ + elm$html$Html$Attributes$class(className), + elm$html$Html$Events$onClick(index) + ]), + _List_fromArray( + [ + A2( + elm$html$Html$span, + _List_fromArray( + [ + elm$html$Html$Attributes$title(messageName), + elm$html$Html$Attributes$class('elm-debugger-entry-content') + ]), + _List_fromArray( + [ + elm$html$Html$text(messageName) + ])), + A2( + elm$html$Html$span, + _List_fromArray( + [ + elm$html$Html$Attributes$class('elm-debugger-entry-index') + ]), + _List_fromArray( + [ + elm$html$Html$text( + elm$core$String$fromInt(index)) + ])) + ])); + }); +var elm$virtual_dom$VirtualDom$lazy3 = _VirtualDom_lazy3; +var elm$html$Html$Lazy$lazy3 = elm$virtual_dom$VirtualDom$lazy3; +var elm$browser$Debugger$History$consMsg = F3( + function (currentIndex, msg, _n0) { + var index = _n0.a; + var rest = _n0.b; + return _Utils_Tuple2( + index - 1, + A2( + elm$core$List$cons, + A4(elm$html$Html$Lazy$lazy3, elm$browser$Debugger$History$viewMessage, currentIndex, index, msg), + rest)); + }); +var elm$virtual_dom$VirtualDom$node = function (tag) { + return _VirtualDom_node( + _VirtualDom_noScript(tag)); +}; +var elm$html$Html$node = elm$virtual_dom$VirtualDom$node; +var elm$browser$Debugger$History$styles = A3( + elm$html$Html$node, + 'style', + _List_Nil, + _List_fromArray( + [ + elm$html$Html$text('\n\n.elm-debugger-entry {\n cursor: pointer;\n width: 100%;\n}\n\n.elm-debugger-entry:hover {\n background-color: rgb(41, 41, 41);\n}\n\n.elm-debugger-entry-selected, .elm-debugger-entry-selected:hover {\n background-color: rgb(10, 10, 10);\n}\n\n.elm-debugger-entry-content {\n width: calc(100% - 7ch);\n padding-top: 4px;\n padding-bottom: 4px;\n padding-left: 1ch;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n display: inline-block;\n}\n\n.elm-debugger-entry-index {\n color: #666;\n width: 5ch;\n padding-top: 4px;\n padding-bottom: 4px;\n padding-right: 1ch;\n text-align: right;\n display: block;\n float: right;\n}\n\n') + ])); +var elm$browser$Debugger$History$maxSnapshotSize = 64; +var elm$core$Elm$JsArray$foldl = _JsArray_foldl; +var elm$core$Array$foldl = F3( + function (func, baseCase, _n0) { + var tree = _n0.c; + var tail = _n0.d; + var helper = F2( + function (node, acc) { + if (node.$ === 'SubTree') { + var subTree = node.a; + return A3(elm$core$Elm$JsArray$foldl, helper, acc, subTree); + } else { + var values = node.a; + return A3(elm$core$Elm$JsArray$foldl, func, acc, values); + } + }); + return A3( + elm$core$Elm$JsArray$foldl, + func, + A3(elm$core$Elm$JsArray$foldl, helper, baseCase, tree), + tail); + }); +var elm$browser$Debugger$History$viewSnapshot = F3( + function (currentIndex, index, _n0) { + var messages = _n0.messages; + return A2( + elm$html$Html$div, + _List_Nil, + A3( + elm$core$Array$foldl, + elm$browser$Debugger$History$consMsg(currentIndex), + _Utils_Tuple2(index - 1, _List_Nil), + messages).b); + }); +var elm$browser$Debugger$History$consSnapshot = F3( + function (currentIndex, snapshot, _n0) { + var index = _n0.a; + var rest = _n0.b; + var nextIndex = index - elm$browser$Debugger$History$maxSnapshotSize; + var currentIndexHelp = ((_Utils_cmp(nextIndex, currentIndex) < 1) && (_Utils_cmp(currentIndex, index) < 0)) ? currentIndex : (-1); + return _Utils_Tuple2( + index - elm$browser$Debugger$History$maxSnapshotSize, + A2( + elm$core$List$cons, + A4(elm$html$Html$Lazy$lazy3, elm$browser$Debugger$History$viewSnapshot, currentIndexHelp, index, snapshot), + rest)); + }); +var elm$core$Array$length = function (_n0) { + var len = _n0.a; + return len; +}; +var elm$browser$Debugger$History$viewSnapshots = F2( + function (currentIndex, snapshots) { + var highIndex = elm$browser$Debugger$History$maxSnapshotSize * elm$core$Array$length(snapshots); + return A2( + elm$html$Html$div, + _List_Nil, + A3( + elm$core$Array$foldr, + elm$browser$Debugger$History$consSnapshot(currentIndex), + _Utils_Tuple2(highIndex, _List_Nil), + snapshots).b); + }); +var elm$virtual_dom$VirtualDom$lazy2 = _VirtualDom_lazy2; +var elm$html$Html$Lazy$lazy2 = elm$virtual_dom$VirtualDom$lazy2; +var elm$browser$Debugger$History$view = F2( + function (maybeIndex, _n0) { + var snapshots = _n0.snapshots; + var recent = _n0.recent; + var numMessages = _n0.numMessages; + var _n1 = function () { + if (maybeIndex.$ === 'Nothing') { + return _Utils_Tuple2(-1, 'calc(100% - 24px)'); + } else { + var i = maybeIndex.a; + return _Utils_Tuple2(i, 'calc(100% - 54px)'); + } + }(); + var index = _n1.a; + var height = _n1.b; + var newStuff = A3( + elm$core$List$foldl, + elm$browser$Debugger$History$consMsg(index), + _Utils_Tuple2(numMessages - 1, _List_Nil), + recent.messages).b; + var oldStuff = A3(elm$html$Html$Lazy$lazy2, elm$browser$Debugger$History$viewSnapshots, index, snapshots); + return A2( + elm$html$Html$div, + _List_fromArray( + [ + elm$html$Html$Attributes$id('elm-debugger-sidebar'), + A2(elm$html$Html$Attributes$style, 'width', '100%'), + A2(elm$html$Html$Attributes$style, 'overflow-y', 'auto'), + A2(elm$html$Html$Attributes$style, 'height', height) + ]), + A2( + elm$core$List$cons, + elm$browser$Debugger$History$styles, + A2(elm$core$List$cons, oldStuff, newStuff))); + }); +var elm$browser$Debugger$Main$Jump = function (a) { + return {$: 'Jump', a: a}; +}; +var elm$browser$Debugger$Main$resumeStyle = '\n\n.elm-debugger-resume {\n width: 100%;\n height: 30px;\n line-height: 30px;\n cursor: pointer;\n}\n\n.elm-debugger-resume:hover {\n background-color: rgb(41, 41, 41);\n}\n\n'; +var elm$browser$Debugger$Main$viewResumeButton = function (maybeIndex) { + if (maybeIndex.$ === 'Nothing') { + return elm$html$Html$text(''); + } else { + return A2( + elm$html$Html$div, + _List_fromArray( + [ + elm$html$Html$Events$onClick(elm$browser$Debugger$Main$Resume), + elm$html$Html$Attributes$class('elm-debugger-resume') + ]), + _List_fromArray( + [ + elm$html$Html$text('Resume'), + A3( + elm$html$Html$node, + 'style', + _List_Nil, + _List_fromArray( + [ + elm$html$Html$text(elm$browser$Debugger$Main$resumeStyle) + ])) + ])); + } +}; +var elm$browser$Debugger$Main$viewTextButton = F2( + function (msg, label) { + return A2( + elm$html$Html$span, + _List_fromArray( + [ + elm$html$Html$Events$onClick(msg), + A2(elm$html$Html$Attributes$style, 'cursor', 'pointer') + ]), + _List_fromArray( + [ + elm$html$Html$text(label) + ])); + }); +var elm$browser$Debugger$Main$playButton = function (maybeIndex) { + return A2( + elm$html$Html$div, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'width', '100%'), + A2(elm$html$Html$Attributes$style, 'text-align', 'center'), + A2(elm$html$Html$Attributes$style, 'background-color', 'rgb(50, 50, 50)') + ]), + _List_fromArray( + [ + elm$browser$Debugger$Main$viewResumeButton(maybeIndex), + A2( + elm$html$Html$div, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'width', '100%'), + A2(elm$html$Html$Attributes$style, 'height', '24px'), + A2(elm$html$Html$Attributes$style, 'line-height', '24px'), + A2(elm$html$Html$Attributes$style, 'font-size', '12px') + ]), + _List_fromArray( + [ + A2(elm$browser$Debugger$Main$viewTextButton, elm$browser$Debugger$Main$Import, 'Import'), + elm$html$Html$text(' / '), + A2(elm$browser$Debugger$Main$viewTextButton, elm$browser$Debugger$Main$Export, 'Export') + ])) + ])); +}; +var elm$browser$Debugger$Main$viewSidebar = F2( + function (state, history) { + var maybeIndex = function () { + if (state.$ === 'Running') { + return elm$core$Maybe$Nothing; + } else { + var index = state.a; + return elm$core$Maybe$Just(index); + } + }(); + return A2( + elm$html$Html$div, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'display', 'block'), + A2(elm$html$Html$Attributes$style, 'float', 'left'), + A2(elm$html$Html$Attributes$style, 'width', '30ch'), + A2(elm$html$Html$Attributes$style, 'height', '100%'), + A2(elm$html$Html$Attributes$style, 'color', 'white'), + A2(elm$html$Html$Attributes$style, 'background-color', 'rgb(61, 61, 61)') + ]), + _List_fromArray( + [ + A2( + elm$html$Html$map, + elm$browser$Debugger$Main$Jump, + A2(elm$browser$Debugger$History$view, maybeIndex, history)), + elm$browser$Debugger$Main$playButton(maybeIndex) + ])); + }); +var elm$browser$Debugger$Main$popoutView = function (_n0) { + var history = _n0.history; + var state = _n0.state; + var expando = _n0.expando; + return A3( + elm$html$Html$node, + 'body', + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'margin', '0'), + A2(elm$html$Html$Attributes$style, 'padding', '0'), + A2(elm$html$Html$Attributes$style, 'width', '100%'), + A2(elm$html$Html$Attributes$style, 'height', '100%'), + A2(elm$html$Html$Attributes$style, 'font-family', 'monospace'), + A2(elm$html$Html$Attributes$style, 'overflow', 'auto') + ]), + _List_fromArray( + [ + A2(elm$browser$Debugger$Main$viewSidebar, state, history), + A2( + elm$html$Html$map, + elm$browser$Debugger$Main$ExpandoMsg, + A2( + elm$html$Html$div, + _List_fromArray( + [ + A2(elm$html$Html$Attributes$style, 'display', 'block'), + A2(elm$html$Html$Attributes$style, 'float', 'left'), + A2(elm$html$Html$Attributes$style, 'height', '100%'), + A2(elm$html$Html$Attributes$style, 'width', 'calc(100% - 30ch)'), + A2(elm$html$Html$Attributes$style, 'margin', '0'), + A2(elm$html$Html$Attributes$style, 'overflow', 'auto'), + A2(elm$html$Html$Attributes$style, 'cursor', 'default') + ]), + _List_fromArray( + [ + A2(elm$browser$Debugger$Expando$view, elm$core$Maybe$Nothing, expando) + ]))) + ])); +}; +var elm$browser$Debugger$Overlay$BlockAll = {$: 'BlockAll'}; +var elm$browser$Debugger$Overlay$BlockMost = {$: 'BlockMost'}; +var elm$browser$Debugger$Overlay$BlockNone = {$: 'BlockNone'}; +var elm$browser$Debugger$Overlay$toBlockerType = F2( + function (isPaused, state) { + switch (state.$) { + case 'None': + return isPaused ? elm$browser$Debugger$Overlay$BlockAll : elm$browser$Debugger$Overlay$BlockNone; + case 'BadMetadata': + return elm$browser$Debugger$Overlay$BlockMost; + case 'BadImport': + return elm$browser$Debugger$Overlay$BlockMost; + default: + return elm$browser$Debugger$Overlay$BlockMost; + } + }); +var elm$browser$Debugger$Main$toBlockerType = function (model) { + return A2( + elm$browser$Debugger$Overlay$toBlockerType, + elm$browser$Debugger$Main$isPaused(model.state), + model.overlay); +}; +var elm$core$Dict$RBEmpty_elm_builtin = {$: 'RBEmpty_elm_builtin'}; +var elm$core$Dict$RBNode_elm_builtin = F5( + function (a, b, c, d, e) { + return {$: 'RBNode_elm_builtin', a: a, b: b, c: c, d: d, e: e}; + }); +var elm$core$Dict$map = F2( + function (func, dict) { + if (dict.$ === 'RBEmpty_elm_builtin') { + return elm$core$Dict$RBEmpty_elm_builtin; + } else { + var color = dict.a; + var key = dict.b; + var value = dict.c; + var left = dict.d; + var right = dict.e; + return A5( + elm$core$Dict$RBNode_elm_builtin, + color, + key, + A2(func, key, value), + A2(elm$core$Dict$map, func, left), + A2(elm$core$Dict$map, func, right)); + } + }); +var elm$core$Dict$sizeHelp = F2( + function (n, dict) { + sizeHelp: + while (true) { + if (dict.$ === 'RBEmpty_elm_builtin') { + return n; + } else { + var left = dict.d; + var right = dict.e; + var $temp$n = A2(elm$core$Dict$sizeHelp, n + 1, right), + $temp$dict = left; + n = $temp$n; + dict = $temp$dict; + continue sizeHelp; + } + } + }); +var elm$core$Dict$size = function (dict) { + return A2(elm$core$Dict$sizeHelp, 0, dict); +}; +var elm$browser$Debugger$Expando$initHelp = F2( + function (isOuter, expando) { + switch (expando.$) { + case 'S': + return expando; + case 'Primitive': + return expando; + case 'Sequence': + var seqType = expando.a; + var isClosed = expando.b; + var items = expando.c; + return isOuter ? A3( + elm$browser$Debugger$Expando$Sequence, + seqType, + false, + A2( + elm$core$List$map, + elm$browser$Debugger$Expando$initHelp(false), + items)) : ((elm$core$List$length(items) <= 8) ? A3(elm$browser$Debugger$Expando$Sequence, seqType, false, items) : expando); + case 'Dictionary': + var isClosed = expando.a; + var keyValuePairs = expando.b; + return isOuter ? A2( + elm$browser$Debugger$Expando$Dictionary, + false, + A2( + elm$core$List$map, + function (_n1) { + var k = _n1.a; + var v = _n1.b; + return _Utils_Tuple2( + k, + A2(elm$browser$Debugger$Expando$initHelp, false, v)); + }, + keyValuePairs)) : ((elm$core$List$length(keyValuePairs) <= 8) ? A2(elm$browser$Debugger$Expando$Dictionary, false, keyValuePairs) : expando); + case 'Record': + var isClosed = expando.a; + var entries = expando.b; + return isOuter ? A2( + elm$browser$Debugger$Expando$Record, + false, + A2( + elm$core$Dict$map, + F2( + function (_n2, v) { + return A2(elm$browser$Debugger$Expando$initHelp, false, v); + }), + entries)) : ((elm$core$Dict$size(entries) <= 4) ? A2(elm$browser$Debugger$Expando$Record, false, entries) : expando); + default: + var maybeName = expando.a; + var isClosed = expando.b; + var args = expando.c; + return isOuter ? A3( + elm$browser$Debugger$Expando$Constructor, + maybeName, + false, + A2( + elm$core$List$map, + elm$browser$Debugger$Expando$initHelp(false), + args)) : ((elm$core$List$length(args) <= 4) ? A3(elm$browser$Debugger$Expando$Constructor, maybeName, false, args) : expando); + } + }); +var elm$browser$Debugger$Expando$init = function (value) { + return A2( + elm$browser$Debugger$Expando$initHelp, + true, + _Debugger_init(value)); +}; +var elm$browser$Debugger$History$History = F3( + function (snapshots, recent, numMessages) { + return {numMessages: numMessages, recent: recent, snapshots: snapshots}; + }); +var elm$browser$Debugger$History$RecentHistory = F3( + function (model, messages, numMessages) { + return {messages: messages, model: model, numMessages: numMessages}; + }); +var elm$browser$Debugger$History$empty = function (model) { + return A3( + elm$browser$Debugger$History$History, + elm$core$Array$empty, + A3(elm$browser$Debugger$History$RecentHistory, model, _List_Nil, 0), + 0); +}; +var elm$browser$Debugger$Main$Running = function (a) { + return {$: 'Running', a: a}; +}; +var elm$browser$Debugger$Metadata$Error = F2( + function (message, problems) { + return {message: message, problems: problems}; + }); +var elm$browser$Debugger$Metadata$Metadata = F2( + function (versions, types) { + return {types: types, versions: versions}; + }); +var elm$browser$Debugger$Metadata$Types = F3( + function (message, aliases, unions) { + return {aliases: aliases, message: message, unions: unions}; + }); +var elm$browser$Debugger$Metadata$Alias = F2( + function (args, tipe) { + return {args: args, tipe: tipe}; + }); +var elm$browser$Debugger$Metadata$decodeAlias = A3( + elm$json$Json$Decode$map2, + elm$browser$Debugger$Metadata$Alias, + A2( + elm$json$Json$Decode$field, + 'args', + elm$json$Json$Decode$list(elm$json$Json$Decode$string)), + A2(elm$json$Json$Decode$field, 'type', elm$json$Json$Decode$string)); +var elm$browser$Debugger$Metadata$Union = F2( + function (args, tags) { + return {args: args, tags: tags}; + }); +var elm$core$Dict$empty = elm$core$Dict$RBEmpty_elm_builtin; +var elm$core$Dict$Black = {$: 'Black'}; +var elm$core$Basics$compare = _Utils_compare; +var elm$core$Dict$Red = {$: 'Red'}; +var elm$core$Dict$balance = F5( + function (color, key, value, left, right) { + if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Red')) { + var _n1 = right.a; + var rK = right.b; + var rV = right.c; + var rLeft = right.d; + var rRight = right.e; + if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) { + var _n3 = left.a; + var lK = left.b; + var lV = left.c; + var lLeft = left.d; + var lRight = left.e; + return A5( + elm$core$Dict$RBNode_elm_builtin, + elm$core$Dict$Red, + key, + value, + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, lK, lV, lLeft, lRight), + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, rK, rV, rLeft, rRight)); + } else { + return A5( + elm$core$Dict$RBNode_elm_builtin, + color, + rK, + rV, + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, key, value, left, rLeft), + rRight); + } + } else { + if ((((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) && (left.d.$ === 'RBNode_elm_builtin')) && (left.d.a.$ === 'Red')) { + var _n5 = left.a; + var lK = left.b; + var lV = left.c; + var _n6 = left.d; + var _n7 = _n6.a; + var llK = _n6.b; + var llV = _n6.c; + var llLeft = _n6.d; + var llRight = _n6.e; + var lRight = left.e; + return A5( + elm$core$Dict$RBNode_elm_builtin, + elm$core$Dict$Red, + lK, + lV, + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, llK, llV, llLeft, llRight), + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, key, value, lRight, right)); + } else { + return A5(elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right); + } + } + }); +var elm$core$Dict$insertHelp = F3( + function (key, value, dict) { + if (dict.$ === 'RBEmpty_elm_builtin') { + return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, key, value, elm$core$Dict$RBEmpty_elm_builtin, elm$core$Dict$RBEmpty_elm_builtin); + } else { + var nColor = dict.a; + var nKey = dict.b; + var nValue = dict.c; + var nLeft = dict.d; + var nRight = dict.e; + var _n1 = A2(elm$core$Basics$compare, key, nKey); + switch (_n1.$) { + case 'LT': + return A5( + elm$core$Dict$balance, + nColor, + nKey, + nValue, + A3(elm$core$Dict$insertHelp, key, value, nLeft), + nRight); + case 'EQ': + return A5(elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight); + default: + return A5( + elm$core$Dict$balance, + nColor, + nKey, + nValue, + nLeft, + A3(elm$core$Dict$insertHelp, key, value, nRight)); + } + } + }); +var elm$core$Dict$insert = F3( + function (key, value, dict) { + var _n0 = A3(elm$core$Dict$insertHelp, key, value, dict); + if ((_n0.$ === 'RBNode_elm_builtin') && (_n0.a.$ === 'Red')) { + var _n1 = _n0.a; + var k = _n0.b; + var v = _n0.c; + var l = _n0.d; + var r = _n0.e; + return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, k, v, l, r); + } else { + var x = _n0; + return x; + } + }); +var elm$core$Dict$fromList = function (assocs) { + return A3( + elm$core$List$foldl, + F2( + function (_n0, dict) { + var key = _n0.a; + var value = _n0.b; + return A3(elm$core$Dict$insert, key, value, dict); + }), + elm$core$Dict$empty, + assocs); +}; +var elm$json$Json$Decode$keyValuePairs = _Json_decodeKeyValuePairs; +var elm$json$Json$Decode$dict = function (decoder) { + return A2( + elm$json$Json$Decode$map, + elm$core$Dict$fromList, + elm$json$Json$Decode$keyValuePairs(decoder)); +}; +var elm$browser$Debugger$Metadata$decodeUnion = A3( + elm$json$Json$Decode$map2, + elm$browser$Debugger$Metadata$Union, + A2( + elm$json$Json$Decode$field, + 'args', + elm$json$Json$Decode$list(elm$json$Json$Decode$string)), + A2( + elm$json$Json$Decode$field, + 'tags', + elm$json$Json$Decode$dict( + elm$json$Json$Decode$list(elm$json$Json$Decode$string)))); +var elm$json$Json$Decode$map3 = _Json_map3; +var elm$browser$Debugger$Metadata$decodeTypes = A4( + elm$json$Json$Decode$map3, + elm$browser$Debugger$Metadata$Types, + A2(elm$json$Json$Decode$field, 'message', elm$json$Json$Decode$string), + A2( + elm$json$Json$Decode$field, + 'aliases', + elm$json$Json$Decode$dict(elm$browser$Debugger$Metadata$decodeAlias)), + A2( + elm$json$Json$Decode$field, + 'unions', + elm$json$Json$Decode$dict(elm$browser$Debugger$Metadata$decodeUnion))); +var elm$browser$Debugger$Metadata$Versions = function (elm) { + return {elm: elm}; +}; +var elm$browser$Debugger$Metadata$decodeVersions = A2( + elm$json$Json$Decode$map, + elm$browser$Debugger$Metadata$Versions, + A2(elm$json$Json$Decode$field, 'elm', elm$json$Json$Decode$string)); +var elm$browser$Debugger$Metadata$decoder = A3( + elm$json$Json$Decode$map2, + elm$browser$Debugger$Metadata$Metadata, + A2(elm$json$Json$Decode$field, 'versions', elm$browser$Debugger$Metadata$decodeVersions), + A2(elm$json$Json$Decode$field, 'types', elm$browser$Debugger$Metadata$decodeTypes)); +var elm$browser$Debugger$Metadata$ProblemType = F2( + function (name, problems) { + return {name: name, problems: problems}; + }); +var elm$core$String$contains = _String_contains; +var elm$browser$Debugger$Metadata$hasProblem = F2( + function (tipe, _n0) { + var problem = _n0.a; + var token = _n0.b; + return A2(elm$core$String$contains, token, tipe) ? elm$core$Maybe$Just(problem) : elm$core$Maybe$Nothing; + }); +var elm$browser$Debugger$Metadata$Decoder = {$: 'Decoder'}; +var elm$browser$Debugger$Metadata$Function = {$: 'Function'}; +var elm$browser$Debugger$Metadata$Process = {$: 'Process'}; +var elm$browser$Debugger$Metadata$Program = {$: 'Program'}; +var elm$browser$Debugger$Metadata$Request = {$: 'Request'}; +var elm$browser$Debugger$Metadata$Socket = {$: 'Socket'}; +var elm$browser$Debugger$Metadata$Task = {$: 'Task'}; +var elm$browser$Debugger$Metadata$VirtualDom = {$: 'VirtualDom'}; +var elm$browser$Debugger$Metadata$problemTable = _List_fromArray( + [ + _Utils_Tuple2(elm$browser$Debugger$Metadata$Function, '->'), + _Utils_Tuple2(elm$browser$Debugger$Metadata$Decoder, 'Json.Decode.Decoder'), + _Utils_Tuple2(elm$browser$Debugger$Metadata$Task, 'Task.Task'), + _Utils_Tuple2(elm$browser$Debugger$Metadata$Process, 'Process.Id'), + _Utils_Tuple2(elm$browser$Debugger$Metadata$Socket, 'WebSocket.LowLevel.WebSocket'), + _Utils_Tuple2(elm$browser$Debugger$Metadata$Request, 'Http.Request'), + _Utils_Tuple2(elm$browser$Debugger$Metadata$Program, 'Platform.Program'), + _Utils_Tuple2(elm$browser$Debugger$Metadata$VirtualDom, 'VirtualDom.Node'), + _Utils_Tuple2(elm$browser$Debugger$Metadata$VirtualDom, 'VirtualDom.Attribute') + ]); +var elm$core$List$maybeCons = F3( + function (f, mx, xs) { + var _n0 = f(mx); + if (_n0.$ === 'Just') { + var x = _n0.a; + return A2(elm$core$List$cons, x, xs); + } else { + return xs; + } + }); +var elm$core$List$filterMap = F2( + function (f, xs) { + return A3( + elm$core$List$foldr, + elm$core$List$maybeCons(f), + _List_Nil, + xs); + }); +var elm$browser$Debugger$Metadata$findProblems = function (tipe) { + return A2( + elm$core$List$filterMap, + elm$browser$Debugger$Metadata$hasProblem(tipe), + elm$browser$Debugger$Metadata$problemTable); +}; +var elm$browser$Debugger$Metadata$collectBadAliases = F3( + function (name, _n0, list) { + var tipe = _n0.tipe; + var _n1 = elm$browser$Debugger$Metadata$findProblems(tipe); + if (!_n1.b) { + return list; + } else { + var problems = _n1; + return A2( + elm$core$List$cons, + A2(elm$browser$Debugger$Metadata$ProblemType, name, problems), + list); + } + }); +var elm$core$Dict$values = function (dict) { + return A3( + elm$core$Dict$foldr, + F3( + function (key, value, valueList) { + return A2(elm$core$List$cons, value, valueList); + }), + _List_Nil, + dict); +}; +var elm$core$List$append = F2( + function (xs, ys) { + if (!ys.b) { + return xs; + } else { + return A3(elm$core$List$foldr, elm$core$List$cons, ys, xs); + } + }); +var elm$core$List$concat = function (lists) { + return A3(elm$core$List$foldr, elm$core$List$append, _List_Nil, lists); +}; +var elm$core$List$concatMap = F2( + function (f, list) { + return elm$core$List$concat( + A2(elm$core$List$map, f, list)); + }); +var elm$browser$Debugger$Metadata$collectBadUnions = F3( + function (name, _n0, list) { + var tags = _n0.tags; + var _n1 = A2( + elm$core$List$concatMap, + elm$browser$Debugger$Metadata$findProblems, + elm$core$List$concat( + elm$core$Dict$values(tags))); + if (!_n1.b) { + return list; + } else { + var problems = _n1; + return A2( + elm$core$List$cons, + A2(elm$browser$Debugger$Metadata$ProblemType, name, problems), + list); + } + }); +var elm$core$Dict$foldl = F3( + function (func, acc, dict) { + foldl: + while (true) { + if (dict.$ === 'RBEmpty_elm_builtin') { + return acc; + } else { + var key = dict.b; + var value = dict.c; + var left = dict.d; + var right = dict.e; + var $temp$func = func, + $temp$acc = A3( + func, + key, + value, + A3(elm$core$Dict$foldl, func, acc, left)), + $temp$dict = right; + func = $temp$func; + acc = $temp$acc; + dict = $temp$dict; + continue foldl; + } + } + }); +var elm$browser$Debugger$Metadata$isPortable = function (_n0) { + var types = _n0.types; + var badAliases = A3(elm$core$Dict$foldl, elm$browser$Debugger$Metadata$collectBadAliases, _List_Nil, types.aliases); + var _n1 = A3(elm$core$Dict$foldl, elm$browser$Debugger$Metadata$collectBadUnions, badAliases, types.unions); + if (!_n1.b) { + return elm$core$Maybe$Nothing; + } else { + var problems = _n1; + return elm$core$Maybe$Just( + A2(elm$browser$Debugger$Metadata$Error, types.message, problems)); + } +}; +var elm$json$Json$Decode$decodeValue = _Json_run; +var elm$browser$Debugger$Metadata$decode = function (value) { + var _n0 = A2(elm$json$Json$Decode$decodeValue, elm$browser$Debugger$Metadata$decoder, value); + if (_n0.$ === 'Err') { + return elm$core$Result$Err( + A2(elm$browser$Debugger$Metadata$Error, 'The compiler is generating bad metadata. This is a compiler bug!', _List_Nil)); + } else { + var metadata = _n0.a; + var _n1 = elm$browser$Debugger$Metadata$isPortable(metadata); + if (_n1.$ === 'Nothing') { + return elm$core$Result$Ok(metadata); + } else { + var error = _n1.a; + return elm$core$Result$Err(error); + } + } +}; +var elm$browser$Debugger$Overlay$None = {$: 'None'}; +var elm$browser$Debugger$Overlay$none = elm$browser$Debugger$Overlay$None; +var elm$browser$Debugger$Main$wrapInit = F4( + function (metadata, popout, init, flags) { + var _n0 = init(flags); + var userModel = _n0.a; + var userCommands = _n0.b; + return _Utils_Tuple2( + { + expando: elm$browser$Debugger$Expando$init(userModel), + history: elm$browser$Debugger$History$empty(userModel), + metadata: elm$browser$Debugger$Metadata$decode(metadata), + overlay: elm$browser$Debugger$Overlay$none, + popout: popout, + state: elm$browser$Debugger$Main$Running(userModel) + }, + A2(elm$core$Platform$Cmd$map, elm$browser$Debugger$Main$UserMsg, userCommands)); + }); +var elm$browser$Debugger$Main$getLatestModel = function (state) { + if (state.$ === 'Running') { + var model = state.a; + return model; + } else { + var model = state.c; + return model; + } +}; +var elm$browser$Debugger$Main$wrapSubs = F2( + function (subscriptions, model) { + return A2( + elm$core$Platform$Sub$map, + elm$browser$Debugger$Main$UserMsg, + subscriptions( + elm$browser$Debugger$Main$getLatestModel(model.state))); + }); +var elm$core$Dict$get = F2( + function (targetKey, dict) { + get: + while (true) { + if (dict.$ === 'RBEmpty_elm_builtin') { + return elm$core$Maybe$Nothing; + } else { + var key = dict.b; + var value = dict.c; + var left = dict.d; + var right = dict.e; + var _n1 = A2(elm$core$Basics$compare, targetKey, key); + switch (_n1.$) { + case 'LT': + var $temp$targetKey = targetKey, + $temp$dict = left; + targetKey = $temp$targetKey; + dict = $temp$dict; + continue get; + case 'EQ': + return elm$core$Maybe$Just(value); + default: + var $temp$targetKey = targetKey, + $temp$dict = right; + targetKey = $temp$targetKey; + dict = $temp$dict; + continue get; + } + } + } + }); +var elm$browser$Debugger$Expando$mergeDictHelp = F3( + function (oldDict, key, value) { + var _n12 = A2(elm$core$Dict$get, key, oldDict); + if (_n12.$ === 'Nothing') { + return value; + } else { + var oldValue = _n12.a; + return A2(elm$browser$Debugger$Expando$mergeHelp, oldValue, value); + } + }); +var elm$browser$Debugger$Expando$mergeHelp = F2( + function (old, _new) { + var _n3 = _Utils_Tuple2(old, _new); + _n3$6: + while (true) { + switch (_n3.b.$) { + case 'S': + return _new; + case 'Primitive': + return _new; + case 'Sequence': + if (_n3.a.$ === 'Sequence') { + var _n4 = _n3.a; + var isClosed = _n4.b; + var oldValues = _n4.c; + var _n5 = _n3.b; + var seqType = _n5.a; + var newValues = _n5.c; + return A3( + elm$browser$Debugger$Expando$Sequence, + seqType, + isClosed, + A2(elm$browser$Debugger$Expando$mergeListHelp, oldValues, newValues)); + } else { + break _n3$6; + } + case 'Dictionary': + if (_n3.a.$ === 'Dictionary') { + var _n6 = _n3.a; + var isClosed = _n6.a; + var _n7 = _n3.b; + var keyValuePairs = _n7.b; + return A2(elm$browser$Debugger$Expando$Dictionary, isClosed, keyValuePairs); + } else { + break _n3$6; + } + case 'Record': + if (_n3.a.$ === 'Record') { + var _n8 = _n3.a; + var isClosed = _n8.a; + var oldDict = _n8.b; + var _n9 = _n3.b; + var newDict = _n9.b; + return A2( + elm$browser$Debugger$Expando$Record, + isClosed, + A2( + elm$core$Dict$map, + elm$browser$Debugger$Expando$mergeDictHelp(oldDict), + newDict)); + } else { + break _n3$6; + } + default: + if (_n3.a.$ === 'Constructor') { + var _n10 = _n3.a; + var isClosed = _n10.b; + var oldValues = _n10.c; + var _n11 = _n3.b; + var maybeName = _n11.a; + var newValues = _n11.c; + return A3( + elm$browser$Debugger$Expando$Constructor, + maybeName, + isClosed, + A2(elm$browser$Debugger$Expando$mergeListHelp, oldValues, newValues)); + } else { + break _n3$6; + } + } + } + return _new; + }); +var elm$browser$Debugger$Expando$mergeListHelp = F2( + function (olds, news) { + var _n0 = _Utils_Tuple2(olds, news); + if (!_n0.a.b) { + return news; + } else { + if (!_n0.b.b) { + return news; + } else { + var _n1 = _n0.a; + var x = _n1.a; + var xs = _n1.b; + var _n2 = _n0.b; + var y = _n2.a; + var ys = _n2.b; + return A2( + elm$core$List$cons, + A2(elm$browser$Debugger$Expando$mergeHelp, x, y), + A2(elm$browser$Debugger$Expando$mergeListHelp, xs, ys)); + } + } + }); +var elm$browser$Debugger$Expando$merge = F2( + function (value, expando) { + return A2( + elm$browser$Debugger$Expando$mergeHelp, + expando, + _Debugger_init(value)); + }); +var elm$browser$Debugger$Expando$updateIndex = F3( + function (n, func, list) { + if (!list.b) { + return _List_Nil; + } else { + var x = list.a; + var xs = list.b; + return (n <= 0) ? A2( + elm$core$List$cons, + func(x), + xs) : A2( + elm$core$List$cons, + x, + A3(elm$browser$Debugger$Expando$updateIndex, n - 1, func, xs)); + } + }); +var elm$core$Basics$not = _Basics_not; +var elm$core$Dict$getMin = function (dict) { + getMin: + while (true) { + if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) { + var left = dict.d; + var $temp$dict = left; + dict = $temp$dict; + continue getMin; + } else { + return dict; + } + } +}; +var elm$core$Dict$moveRedLeft = function (dict) { + if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) { + if ((dict.e.d.$ === 'RBNode_elm_builtin') && (dict.e.d.a.$ === 'Red')) { + var clr = dict.a; + var k = dict.b; + var v = dict.c; + var _n1 = dict.d; + var lClr = _n1.a; + var lK = _n1.b; + var lV = _n1.c; + var lLeft = _n1.d; + var lRight = _n1.e; + var _n2 = dict.e; + var rClr = _n2.a; + var rK = _n2.b; + var rV = _n2.c; + var rLeft = _n2.d; + var _n3 = rLeft.a; + var rlK = rLeft.b; + var rlV = rLeft.c; + var rlL = rLeft.d; + var rlR = rLeft.e; + var rRight = _n2.e; + return A5( + elm$core$Dict$RBNode_elm_builtin, + elm$core$Dict$Red, + rlK, + rlV, + A5( + elm$core$Dict$RBNode_elm_builtin, + elm$core$Dict$Black, + k, + v, + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, lK, lV, lLeft, lRight), + rlL), + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, rK, rV, rlR, rRight)); + } else { + var clr = dict.a; + var k = dict.b; + var v = dict.c; + var _n4 = dict.d; + var lClr = _n4.a; + var lK = _n4.b; + var lV = _n4.c; + var lLeft = _n4.d; + var lRight = _n4.e; + var _n5 = dict.e; + var rClr = _n5.a; + var rK = _n5.b; + var rV = _n5.c; + var rLeft = _n5.d; + var rRight = _n5.e; + if (clr.$ === 'Black') { + return A5( + elm$core$Dict$RBNode_elm_builtin, + elm$core$Dict$Black, + k, + v, + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, lK, lV, lLeft, lRight), + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, rK, rV, rLeft, rRight)); + } else { + return A5( + elm$core$Dict$RBNode_elm_builtin, + elm$core$Dict$Black, + k, + v, + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, lK, lV, lLeft, lRight), + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, rK, rV, rLeft, rRight)); + } + } + } else { + return dict; + } +}; +var elm$core$Dict$moveRedRight = function (dict) { + if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) { + if ((dict.d.d.$ === 'RBNode_elm_builtin') && (dict.d.d.a.$ === 'Red')) { + var clr = dict.a; + var k = dict.b; + var v = dict.c; + var _n1 = dict.d; + var lClr = _n1.a; + var lK = _n1.b; + var lV = _n1.c; + var _n2 = _n1.d; + var _n3 = _n2.a; + var llK = _n2.b; + var llV = _n2.c; + var llLeft = _n2.d; + var llRight = _n2.e; + var lRight = _n1.e; + var _n4 = dict.e; + var rClr = _n4.a; + var rK = _n4.b; + var rV = _n4.c; + var rLeft = _n4.d; + var rRight = _n4.e; + return A5( + elm$core$Dict$RBNode_elm_builtin, + elm$core$Dict$Red, + lK, + lV, + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, llK, llV, llLeft, llRight), + A5( + elm$core$Dict$RBNode_elm_builtin, + elm$core$Dict$Black, + k, + v, + lRight, + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, rK, rV, rLeft, rRight))); + } else { + var clr = dict.a; + var k = dict.b; + var v = dict.c; + var _n5 = dict.d; + var lClr = _n5.a; + var lK = _n5.b; + var lV = _n5.c; + var lLeft = _n5.d; + var lRight = _n5.e; + var _n6 = dict.e; + var rClr = _n6.a; + var rK = _n6.b; + var rV = _n6.c; + var rLeft = _n6.d; + var rRight = _n6.e; + if (clr.$ === 'Black') { + return A5( + elm$core$Dict$RBNode_elm_builtin, + elm$core$Dict$Black, + k, + v, + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, lK, lV, lLeft, lRight), + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, rK, rV, rLeft, rRight)); + } else { + return A5( + elm$core$Dict$RBNode_elm_builtin, + elm$core$Dict$Black, + k, + v, + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, lK, lV, lLeft, lRight), + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, rK, rV, rLeft, rRight)); + } + } + } else { + return dict; + } +}; +var elm$core$Dict$removeHelpPrepEQGT = F7( + function (targetKey, dict, color, key, value, left, right) { + if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) { + var _n1 = left.a; + var lK = left.b; + var lV = left.c; + var lLeft = left.d; + var lRight = left.e; + return A5( + elm$core$Dict$RBNode_elm_builtin, + color, + lK, + lV, + lLeft, + A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, key, value, lRight, right)); + } else { + _n2$2: + while (true) { + if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Black')) { + if (right.d.$ === 'RBNode_elm_builtin') { + if (right.d.a.$ === 'Black') { + var _n3 = right.a; + var _n4 = right.d; + var _n5 = _n4.a; + return elm$core$Dict$moveRedRight(dict); + } else { + break _n2$2; + } + } else { + var _n6 = right.a; + var _n7 = right.d; + return elm$core$Dict$moveRedRight(dict); + } + } else { + break _n2$2; + } + } + return dict; + } + }); +var elm$core$Dict$removeMin = function (dict) { + if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) { + var color = dict.a; + var key = dict.b; + var value = dict.c; + var left = dict.d; + var lColor = left.a; + var lLeft = left.d; + var right = dict.e; + if (lColor.$ === 'Black') { + if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) { + var _n3 = lLeft.a; + return A5( + elm$core$Dict$RBNode_elm_builtin, + color, + key, + value, + elm$core$Dict$removeMin(left), + right); + } else { + var _n4 = elm$core$Dict$moveRedLeft(dict); + if (_n4.$ === 'RBNode_elm_builtin') { + var nColor = _n4.a; + var nKey = _n4.b; + var nValue = _n4.c; + var nLeft = _n4.d; + var nRight = _n4.e; + return A5( + elm$core$Dict$balance, + nColor, + nKey, + nValue, + elm$core$Dict$removeMin(nLeft), + nRight); + } else { + return elm$core$Dict$RBEmpty_elm_builtin; + } + } + } else { + return A5( + elm$core$Dict$RBNode_elm_builtin, + color, + key, + value, + elm$core$Dict$removeMin(left), + right); + } + } else { + return elm$core$Dict$RBEmpty_elm_builtin; + } +}; +var elm$core$Dict$removeHelp = F2( + function (targetKey, dict) { + if (dict.$ === 'RBEmpty_elm_builtin') { + return elm$core$Dict$RBEmpty_elm_builtin; + } else { + var color = dict.a; + var key = dict.b; + var value = dict.c; + var left = dict.d; + var right = dict.e; + if (_Utils_cmp(targetKey, key) < 0) { + if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Black')) { + var _n4 = left.a; + var lLeft = left.d; + if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) { + var _n6 = lLeft.a; + return A5( + elm$core$Dict$RBNode_elm_builtin, + color, + key, + value, + A2(elm$core$Dict$removeHelp, targetKey, left), + right); + } else { + var _n7 = elm$core$Dict$moveRedLeft(dict); + if (_n7.$ === 'RBNode_elm_builtin') { + var nColor = _n7.a; + var nKey = _n7.b; + var nValue = _n7.c; + var nLeft = _n7.d; + var nRight = _n7.e; + return A5( + elm$core$Dict$balance, + nColor, + nKey, + nValue, + A2(elm$core$Dict$removeHelp, targetKey, nLeft), + nRight); + } else { + return elm$core$Dict$RBEmpty_elm_builtin; + } + } + } else { + return A5( + elm$core$Dict$RBNode_elm_builtin, + color, + key, + value, + A2(elm$core$Dict$removeHelp, targetKey, left), + right); + } + } else { + return A2( + elm$core$Dict$removeHelpEQGT, + targetKey, + A7(elm$core$Dict$removeHelpPrepEQGT, targetKey, dict, color, key, value, left, right)); + } + } + }); +var elm$core$Dict$removeHelpEQGT = F2( + function (targetKey, dict) { + if (dict.$ === 'RBNode_elm_builtin') { + var color = dict.a; + var key = dict.b; + var value = dict.c; + var left = dict.d; + var right = dict.e; + if (_Utils_eq(targetKey, key)) { + var _n1 = elm$core$Dict$getMin(right); + if (_n1.$ === 'RBNode_elm_builtin') { + var minKey = _n1.b; + var minValue = _n1.c; + return A5( + elm$core$Dict$balance, + color, + minKey, + minValue, + left, + elm$core$Dict$removeMin(right)); + } else { + return elm$core$Dict$RBEmpty_elm_builtin; + } + } else { + return A5( + elm$core$Dict$balance, + color, + key, + value, + left, + A2(elm$core$Dict$removeHelp, targetKey, right)); + } + } else { + return elm$core$Dict$RBEmpty_elm_builtin; + } + }); +var elm$core$Dict$remove = F2( + function (key, dict) { + var _n0 = A2(elm$core$Dict$removeHelp, key, dict); + if ((_n0.$ === 'RBNode_elm_builtin') && (_n0.a.$ === 'Red')) { + var _n1 = _n0.a; + var k = _n0.b; + var v = _n0.c; + var l = _n0.d; + var r = _n0.e; + return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, k, v, l, r); + } else { + var x = _n0; + return x; + } + }); +var elm$core$Dict$update = F3( + function (targetKey, alter, dictionary) { + var _n0 = alter( + A2(elm$core$Dict$get, targetKey, dictionary)); + if (_n0.$ === 'Just') { + var value = _n0.a; + return A3(elm$core$Dict$insert, targetKey, value, dictionary); + } else { + return A2(elm$core$Dict$remove, targetKey, dictionary); + } + }); +var elm$browser$Debugger$Expando$update = F2( + function (msg, value) { + switch (value.$) { + case 'S': + return value; + case 'Primitive': + return value; + case 'Sequence': + var seqType = value.a; + var isClosed = value.b; + var valueList = value.c; + switch (msg.$) { + case 'Toggle': + return A3(elm$browser$Debugger$Expando$Sequence, seqType, !isClosed, valueList); + case 'Index': + if (msg.a.$ === 'None') { + var _n3 = msg.a; + var index = msg.b; + var subMsg = msg.c; + return A3( + elm$browser$Debugger$Expando$Sequence, + seqType, + isClosed, + A3( + elm$browser$Debugger$Expando$updateIndex, + index, + elm$browser$Debugger$Expando$update(subMsg), + valueList)); + } else { + return value; + } + default: + return value; + } + case 'Dictionary': + var isClosed = value.a; + var keyValuePairs = value.b; + switch (msg.$) { + case 'Toggle': + return A2(elm$browser$Debugger$Expando$Dictionary, !isClosed, keyValuePairs); + case 'Index': + var redirect = msg.a; + var index = msg.b; + var subMsg = msg.c; + switch (redirect.$) { + case 'None': + return value; + case 'Key': + return A2( + elm$browser$Debugger$Expando$Dictionary, + isClosed, + A3( + elm$browser$Debugger$Expando$updateIndex, + index, + function (_n6) { + var k = _n6.a; + var v = _n6.b; + return _Utils_Tuple2( + A2(elm$browser$Debugger$Expando$update, subMsg, k), + v); + }, + keyValuePairs)); + default: + return A2( + elm$browser$Debugger$Expando$Dictionary, + isClosed, + A3( + elm$browser$Debugger$Expando$updateIndex, + index, + function (_n7) { + var k = _n7.a; + var v = _n7.b; + return _Utils_Tuple2( + k, + A2(elm$browser$Debugger$Expando$update, subMsg, v)); + }, + keyValuePairs)); + } + default: + return value; + } + case 'Record': + var isClosed = value.a; + var valueDict = value.b; + switch (msg.$) { + case 'Toggle': + return A2(elm$browser$Debugger$Expando$Record, !isClosed, valueDict); + case 'Index': + return value; + default: + var field = msg.a; + var subMsg = msg.b; + return A2( + elm$browser$Debugger$Expando$Record, + isClosed, + A3( + elm$core$Dict$update, + field, + elm$browser$Debugger$Expando$updateField(subMsg), + valueDict)); + } + default: + var maybeName = value.a; + var isClosed = value.b; + var valueList = value.c; + switch (msg.$) { + case 'Toggle': + return A3(elm$browser$Debugger$Expando$Constructor, maybeName, !isClosed, valueList); + case 'Index': + if (msg.a.$ === 'None') { + var _n10 = msg.a; + var index = msg.b; + var subMsg = msg.c; + return A3( + elm$browser$Debugger$Expando$Constructor, + maybeName, + isClosed, + A3( + elm$browser$Debugger$Expando$updateIndex, + index, + elm$browser$Debugger$Expando$update(subMsg), + valueList)); + } else { + return value; + } + default: + return value; + } + } + }); +var elm$browser$Debugger$Expando$updateField = F2( + function (msg, maybeExpando) { + if (maybeExpando.$ === 'Nothing') { + return maybeExpando; + } else { + var expando = maybeExpando.a; + return elm$core$Maybe$Just( + A2(elm$browser$Debugger$Expando$update, msg, expando)); + } + }); +var elm$browser$Debugger$History$Snapshot = F2( + function (model, messages) { + return {messages: messages, model: model}; + }); +var elm$core$Array$fromListHelp = F3( + function (list, nodeList, nodeListSize) { + fromListHelp: + while (true) { + var _n0 = A2(elm$core$Elm$JsArray$initializeFromList, elm$core$Array$branchFactor, list); + var jsArray = _n0.a; + var remainingItems = _n0.b; + if (_Utils_cmp( + elm$core$Elm$JsArray$length(jsArray), + elm$core$Array$branchFactor) < 0) { + return A2( + elm$core$Array$builderToArray, + true, + {nodeList: nodeList, nodeListSize: nodeListSize, tail: jsArray}); + } else { + var $temp$list = remainingItems, + $temp$nodeList = A2( + elm$core$List$cons, + elm$core$Array$Leaf(jsArray), + nodeList), + $temp$nodeListSize = nodeListSize + 1; + list = $temp$list; + nodeList = $temp$nodeList; + nodeListSize = $temp$nodeListSize; + continue fromListHelp; + } + } + }); +var elm$core$Array$fromList = function (list) { + if (!list.b) { + return elm$core$Array$empty; + } else { + return A3(elm$core$Array$fromListHelp, list, _List_Nil, 0); + } +}; +var elm$browser$Debugger$History$addRecent = F3( + function (msg, newModel, _n0) { + var model = _n0.model; + var messages = _n0.messages; + var numMessages = _n0.numMessages; + return _Utils_eq(numMessages, elm$browser$Debugger$History$maxSnapshotSize) ? _Utils_Tuple2( + elm$core$Maybe$Just( + A2( + elm$browser$Debugger$History$Snapshot, + model, + elm$core$Array$fromList(messages))), + A3( + elm$browser$Debugger$History$RecentHistory, + newModel, + _List_fromArray( + [msg]), + 1)) : _Utils_Tuple2( + elm$core$Maybe$Nothing, + A3( + elm$browser$Debugger$History$RecentHistory, + model, + A2(elm$core$List$cons, msg, messages), + numMessages + 1)); + }); +var elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy; +var elm$core$Array$bitMask = 4294967295 >>> (32 - elm$core$Array$shiftStep); +var elm$core$Basics$ge = _Utils_ge; +var elm$core$Bitwise$and = _Bitwise_and; +var elm$core$Elm$JsArray$push = _JsArray_push; +var elm$core$Elm$JsArray$singleton = _JsArray_singleton; +var elm$core$Elm$JsArray$unsafeGet = _JsArray_unsafeGet; +var elm$core$Elm$JsArray$unsafeSet = _JsArray_unsafeSet; +var elm$core$Array$insertTailInTree = F4( + function (shift, index, tail, tree) { + var pos = elm$core$Array$bitMask & (index >>> shift); + if (_Utils_cmp( + pos, + elm$core$Elm$JsArray$length(tree)) > -1) { + if (shift === 5) { + return A2( + elm$core$Elm$JsArray$push, + elm$core$Array$Leaf(tail), + tree); + } else { + var newSub = elm$core$Array$SubTree( + A4(elm$core$Array$insertTailInTree, shift - elm$core$Array$shiftStep, index, tail, elm$core$Elm$JsArray$empty)); + return A2(elm$core$Elm$JsArray$push, newSub, tree); + } + } else { + var value = A2(elm$core$Elm$JsArray$unsafeGet, pos, tree); + if (value.$ === 'SubTree') { + var subTree = value.a; + var newSub = elm$core$Array$SubTree( + A4(elm$core$Array$insertTailInTree, shift - elm$core$Array$shiftStep, index, tail, subTree)); + return A3(elm$core$Elm$JsArray$unsafeSet, pos, newSub, tree); + } else { + var newSub = elm$core$Array$SubTree( + A4( + elm$core$Array$insertTailInTree, + shift - elm$core$Array$shiftStep, + index, + tail, + elm$core$Elm$JsArray$singleton(value))); + return A3(elm$core$Elm$JsArray$unsafeSet, pos, newSub, tree); + } + } + }); +var elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy; +var elm$core$Array$unsafeReplaceTail = F2( + function (newTail, _n0) { + var len = _n0.a; + var startShift = _n0.b; + var tree = _n0.c; + var tail = _n0.d; + var originalTailLen = elm$core$Elm$JsArray$length(tail); + var newTailLen = elm$core$Elm$JsArray$length(newTail); + var newArrayLen = len + (newTailLen - originalTailLen); + if (_Utils_eq(newTailLen, elm$core$Array$branchFactor)) { + var overflow = _Utils_cmp(newArrayLen >>> elm$core$Array$shiftStep, 1 << startShift) > 0; + if (overflow) { + var newShift = startShift + elm$core$Array$shiftStep; + var newTree = A4( + elm$core$Array$insertTailInTree, + newShift, + len, + newTail, + elm$core$Elm$JsArray$singleton( + elm$core$Array$SubTree(tree))); + return A4(elm$core$Array$Array_elm_builtin, newArrayLen, newShift, newTree, elm$core$Elm$JsArray$empty); + } else { + return A4( + elm$core$Array$Array_elm_builtin, + newArrayLen, + startShift, + A4(elm$core$Array$insertTailInTree, startShift, len, newTail, tree), + elm$core$Elm$JsArray$empty); + } + } else { + return A4(elm$core$Array$Array_elm_builtin, newArrayLen, startShift, tree, newTail); + } + }); +var elm$core$Array$push = F2( + function (a, array) { + var tail = array.d; + return A2( + elm$core$Array$unsafeReplaceTail, + A2(elm$core$Elm$JsArray$push, a, tail), + array); + }); +var elm$browser$Debugger$History$add = F3( + function (msg, model, _n0) { + var snapshots = _n0.snapshots; + var recent = _n0.recent; + var numMessages = _n0.numMessages; + var _n1 = A3(elm$browser$Debugger$History$addRecent, msg, model, recent); + if (_n1.a.$ === 'Just') { + var snapshot = _n1.a.a; + var newRecent = _n1.b; + return A3( + elm$browser$Debugger$History$History, + A2(elm$core$Array$push, snapshot, snapshots), + newRecent, + numMessages + 1); + } else { + var _n2 = _n1.a; + var newRecent = _n1.b; + return A3(elm$browser$Debugger$History$History, snapshots, newRecent, numMessages + 1); + } + }); +var elm$browser$Debugger$History$Stepping = F2( + function (a, b) { + return {$: 'Stepping', a: a, b: b}; + }); +var elm$browser$Debugger$History$Done = F2( + function (a, b) { + return {$: 'Done', a: a, b: b}; + }); +var elm$browser$Debugger$History$getHelp = F3( + function (update, msg, getResult) { + if (getResult.$ === 'Done') { + return getResult; + } else { + var n = getResult.a; + var model = getResult.b; + return (!n) ? A2( + elm$browser$Debugger$History$Done, + msg, + A2(update, msg, model).a) : A2( + elm$browser$Debugger$History$Stepping, + n - 1, + A2(update, msg, model).a); + } + }); +var elm$browser$Debugger$History$undone = function (getResult) { + undone: + while (true) { + if (getResult.$ === 'Done') { + var msg = getResult.a; + var model = getResult.b; + return _Utils_Tuple2(model, msg); + } else { + var $temp$getResult = getResult; + getResult = $temp$getResult; + continue undone; + } + } +}; +var elm$core$Array$getHelp = F3( + function (shift, index, tree) { + getHelp: + while (true) { + var pos = elm$core$Array$bitMask & (index >>> shift); + var _n0 = A2(elm$core$Elm$JsArray$unsafeGet, pos, tree); + if (_n0.$ === 'SubTree') { + var subTree = _n0.a; + var $temp$shift = shift - elm$core$Array$shiftStep, + $temp$index = index, + $temp$tree = subTree; + shift = $temp$shift; + index = $temp$index; + tree = $temp$tree; + continue getHelp; + } else { + var values = _n0.a; + return A2(elm$core$Elm$JsArray$unsafeGet, elm$core$Array$bitMask & index, values); + } + } + }); +var elm$core$Array$tailIndex = function (len) { + return (len >>> 5) << 5; +}; +var elm$core$Array$get = F2( + function (index, _n0) { + var len = _n0.a; + var startShift = _n0.b; + var tree = _n0.c; + var tail = _n0.d; + return ((index < 0) || (_Utils_cmp(index, len) > -1)) ? elm$core$Maybe$Nothing : ((_Utils_cmp( + index, + elm$core$Array$tailIndex(len)) > -1) ? elm$core$Maybe$Just( + A2(elm$core$Elm$JsArray$unsafeGet, elm$core$Array$bitMask & index, tail)) : elm$core$Maybe$Just( + A3(elm$core$Array$getHelp, startShift, index, tree))); + }); +var elm$browser$Debugger$History$get = F3( + function (update, index, history) { + get: + while (true) { + var recent = history.recent; + var snapshotMax = history.numMessages - recent.numMessages; + if (_Utils_cmp(index, snapshotMax) > -1) { + return elm$browser$Debugger$History$undone( + A3( + elm$core$List$foldr, + elm$browser$Debugger$History$getHelp(update), + A2(elm$browser$Debugger$History$Stepping, index - snapshotMax, recent.model), + recent.messages)); + } else { + var _n0 = A2(elm$core$Array$get, (index / elm$browser$Debugger$History$maxSnapshotSize) | 0, history.snapshots); + if (_n0.$ === 'Nothing') { + var $temp$update = update, + $temp$index = index, + $temp$history = history; + update = $temp$update; + index = $temp$index; + history = $temp$history; + continue get; + } else { + var model = _n0.a.model; + var messages = _n0.a.messages; + return elm$browser$Debugger$History$undone( + A3( + elm$core$Array$foldr, + elm$browser$Debugger$History$getHelp(update), + A2(elm$browser$Debugger$History$Stepping, index % elm$browser$Debugger$History$maxSnapshotSize, model), + messages)); + } + } + } + }); +var elm$browser$Debugger$Main$Paused = F3( + function (a, b, c) { + return {$: 'Paused', a: a, b: b, c: c}; + }); +var elm$browser$Debugger$History$elmToJs = _Debugger_unsafeCoerce; +var elm$browser$Debugger$History$encodeHelp = F2( + function (snapshot, allMessages) { + return A3(elm$core$Array$foldl, elm$core$List$cons, allMessages, snapshot.messages); + }); +var elm$browser$Debugger$History$encode = function (_n0) { + var snapshots = _n0.snapshots; + var recent = _n0.recent; + return A2( + elm$json$Json$Encode$list, + elm$browser$Debugger$History$elmToJs, + A3( + elm$core$Array$foldr, + elm$browser$Debugger$History$encodeHelp, + elm$core$List$reverse(recent.messages), + snapshots)); +}; +var elm$browser$Debugger$Metadata$encodeAlias = function (_n0) { + var args = _n0.args; + var tipe = _n0.tipe; + return elm$json$Json$Encode$object( + _List_fromArray( + [ + _Utils_Tuple2( + 'args', + A2(elm$json$Json$Encode$list, elm$json$Json$Encode$string, args)), + _Utils_Tuple2( + 'type', + elm$json$Json$Encode$string(tipe)) + ])); +}; +var elm$browser$Debugger$Metadata$encodeDict = F2( + function (f, dict) { + return elm$json$Json$Encode$object( + elm$core$Dict$toList( + A2( + elm$core$Dict$map, + F2( + function (key, value) { + return f(value); + }), + dict))); + }); +var elm$browser$Debugger$Metadata$encodeUnion = function (_n0) { + var args = _n0.args; + var tags = _n0.tags; + return elm$json$Json$Encode$object( + _List_fromArray( + [ + _Utils_Tuple2( + 'args', + A2(elm$json$Json$Encode$list, elm$json$Json$Encode$string, args)), + _Utils_Tuple2( + 'tags', + A2( + elm$browser$Debugger$Metadata$encodeDict, + elm$json$Json$Encode$list(elm$json$Json$Encode$string), + tags)) + ])); +}; +var elm$browser$Debugger$Metadata$encodeTypes = function (_n0) { + var message = _n0.message; + var unions = _n0.unions; + var aliases = _n0.aliases; + return elm$json$Json$Encode$object( + _List_fromArray( + [ + _Utils_Tuple2( + 'message', + elm$json$Json$Encode$string(message)), + _Utils_Tuple2( + 'aliases', + A2(elm$browser$Debugger$Metadata$encodeDict, elm$browser$Debugger$Metadata$encodeAlias, aliases)), + _Utils_Tuple2( + 'unions', + A2(elm$browser$Debugger$Metadata$encodeDict, elm$browser$Debugger$Metadata$encodeUnion, unions)) + ])); +}; +var elm$browser$Debugger$Metadata$encodeVersions = function (_n0) { + var elm = _n0.elm; + return elm$json$Json$Encode$object( + _List_fromArray( + [ + _Utils_Tuple2( + 'elm', + elm$json$Json$Encode$string(elm)) + ])); +}; +var elm$browser$Debugger$Metadata$encode = function (_n0) { + var versions = _n0.versions; + var types = _n0.types; + return elm$json$Json$Encode$object( + _List_fromArray( + [ + _Utils_Tuple2( + 'versions', + elm$browser$Debugger$Metadata$encodeVersions(versions)), + _Utils_Tuple2( + 'types', + elm$browser$Debugger$Metadata$encodeTypes(types)) + ])); +}; +var elm$browser$Debugger$Main$download = F2( + function (metadata, history) { + var json = elm$json$Json$Encode$object( + _List_fromArray( + [ + _Utils_Tuple2( + 'metadata', + elm$browser$Debugger$Metadata$encode(metadata)), + _Utils_Tuple2( + 'history', + elm$browser$Debugger$History$encode(history)) + ])); + var historyLength = elm$browser$Debugger$History$size(history); + return A2( + elm$core$Task$perform, + function (_n0) { + return elm$browser$Debugger$Main$NoOp; + }, + A2(_Debugger_download, historyLength, json)); + }); +var elm$browser$Debugger$History$jsToElm = _Debugger_unsafeCoerce; +var elm$json$Json$Decode$value = _Json_decodeValue; +var elm$browser$Debugger$History$decoder = F2( + function (initialModel, update) { + var addMessage = F2( + function (rawMsg, _n0) { + var model = _n0.a; + var history = _n0.b; + var msg = elm$browser$Debugger$History$jsToElm(rawMsg); + return _Utils_Tuple2( + A2(update, msg, model), + A3(elm$browser$Debugger$History$add, msg, model, history)); + }); + var updateModel = function (rawMsgs) { + return A3( + elm$core$List$foldl, + addMessage, + _Utils_Tuple2( + initialModel, + elm$browser$Debugger$History$empty(initialModel)), + rawMsgs); + }; + return A2( + elm$json$Json$Decode$map, + updateModel, + elm$json$Json$Decode$list(elm$json$Json$Decode$value)); + }); +var elm$browser$Debugger$History$getInitialModel = function (_n0) { + var snapshots = _n0.snapshots; + var recent = _n0.recent; + var _n1 = A2(elm$core$Array$get, 0, snapshots); + if (_n1.$ === 'Just') { + var model = _n1.a.model; + return model; + } else { + return recent.model; + } +}; +var elm$browser$Debugger$Overlay$BadImport = function (a) { + return {$: 'BadImport', a: a}; +}; +var elm$browser$Debugger$Report$CorruptHistory = {$: 'CorruptHistory'}; +var elm$browser$Debugger$Overlay$corruptImport = elm$browser$Debugger$Overlay$BadImport(elm$browser$Debugger$Report$CorruptHistory); +var elm$browser$Debugger$Main$loadNewHistory = F3( + function (rawHistory, update, model) { + var pureUserUpdate = F2( + function (msg, userModel) { + return A2(update, msg, userModel).a; + }); + var initialUserModel = elm$browser$Debugger$History$getInitialModel(model.history); + var decoder = A2(elm$browser$Debugger$History$decoder, initialUserModel, pureUserUpdate); + var _n0 = A2(elm$json$Json$Decode$decodeValue, decoder, rawHistory); + if (_n0.$ === 'Err') { + return _Utils_Tuple2( + _Utils_update( + model, + {overlay: elm$browser$Debugger$Overlay$corruptImport}), + elm$core$Platform$Cmd$none); + } else { + var _n1 = _n0.a; + var latestUserModel = _n1.a; + var newHistory = _n1.b; + return _Utils_Tuple2( + _Utils_update( + model, + { + expando: elm$browser$Debugger$Expando$init(latestUserModel), + history: newHistory, + overlay: elm$browser$Debugger$Overlay$none, + state: elm$browser$Debugger$Main$Running(latestUserModel) + }), + elm$core$Platform$Cmd$none); + } + }); +var elm$core$Basics$always = F2( + function (a, _n0) { + return a; + }); +var elm$browser$Debugger$Main$scroll = function (popout) { + return A2( + elm$core$Task$perform, + elm$core$Basics$always(elm$browser$Debugger$Main$NoOp), + _Debugger_scroll(popout)); +}; +var elm$browser$Debugger$Main$Upload = function (a) { + return {$: 'Upload', a: a}; +}; +var elm$browser$Debugger$Main$upload = A2( + elm$core$Task$perform, + elm$browser$Debugger$Main$Upload, + _Debugger_upload(_Utils_Tuple0)); +var elm$browser$Debugger$Overlay$BadMetadata = function (a) { + return {$: 'BadMetadata', a: a}; +}; +var elm$browser$Debugger$Overlay$badMetadata = elm$browser$Debugger$Overlay$BadMetadata; +var elm$browser$Debugger$Main$withGoodMetadata = F2( + function (model, func) { + var _n0 = model.metadata; + if (_n0.$ === 'Ok') { + var metadata = _n0.a; + return func(metadata); + } else { + var error = _n0.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + overlay: elm$browser$Debugger$Overlay$badMetadata(error) + }), + elm$core$Platform$Cmd$none); + } + }); +var elm$browser$Debugger$Report$AliasChange = function (a) { + return {$: 'AliasChange', a: a}; +}; +var elm$browser$Debugger$Metadata$checkAlias = F4( + function (name, old, _new, changes) { + return (_Utils_eq(old.tipe, _new.tipe) && _Utils_eq(old.args, _new.args)) ? changes : A2( + elm$core$List$cons, + elm$browser$Debugger$Report$AliasChange(name), + changes); + }); +var elm$browser$Debugger$Metadata$addTag = F3( + function (tag, _n0, changes) { + return _Utils_update( + changes, + { + added: A2(elm$core$List$cons, tag, changes.added) + }); + }); +var elm$browser$Debugger$Metadata$checkTag = F4( + function (tag, old, _new, changes) { + return _Utils_eq(old, _new) ? changes : _Utils_update( + changes, + { + changed: A2(elm$core$List$cons, tag, changes.changed) + }); + }); +var elm$browser$Debugger$Metadata$removeTag = F3( + function (tag, _n0, changes) { + return _Utils_update( + changes, + { + removed: A2(elm$core$List$cons, tag, changes.removed) + }); + }); +var elm$browser$Debugger$Report$UnionChange = F2( + function (a, b) { + return {$: 'UnionChange', a: a, b: b}; + }); +var elm$browser$Debugger$Report$TagChanges = F4( + function (removed, changed, added, argsMatch) { + return {added: added, argsMatch: argsMatch, changed: changed, removed: removed}; + }); +var elm$browser$Debugger$Report$emptyTagChanges = function (argsMatch) { + return A4(elm$browser$Debugger$Report$TagChanges, _List_Nil, _List_Nil, _List_Nil, argsMatch); +}; +var elm$browser$Debugger$Report$hasTagChanges = function (tagChanges) { + return _Utils_eq( + tagChanges, + A4(elm$browser$Debugger$Report$TagChanges, _List_Nil, _List_Nil, _List_Nil, true)); +}; +var elm$core$Dict$merge = F6( + function (leftStep, bothStep, rightStep, leftDict, rightDict, initialResult) { + var stepState = F3( + function (rKey, rValue, _n0) { + stepState: + while (true) { + var list = _n0.a; + var result = _n0.b; + if (!list.b) { + return _Utils_Tuple2( + list, + A3(rightStep, rKey, rValue, result)); + } else { + var _n2 = list.a; + var lKey = _n2.a; + var lValue = _n2.b; + var rest = list.b; + if (_Utils_cmp(lKey, rKey) < 0) { + var $temp$rKey = rKey, + $temp$rValue = rValue, + $temp$_n0 = _Utils_Tuple2( + rest, + A3(leftStep, lKey, lValue, result)); + rKey = $temp$rKey; + rValue = $temp$rValue; + _n0 = $temp$_n0; + continue stepState; + } else { + if (_Utils_cmp(lKey, rKey) > 0) { + return _Utils_Tuple2( + list, + A3(rightStep, rKey, rValue, result)); + } else { + return _Utils_Tuple2( + rest, + A4(bothStep, lKey, lValue, rValue, result)); + } + } + } + } + }); + var _n3 = A3( + elm$core$Dict$foldl, + stepState, + _Utils_Tuple2( + elm$core$Dict$toList(leftDict), + initialResult), + rightDict); + var leftovers = _n3.a; + var intermediateResult = _n3.b; + return A3( + elm$core$List$foldl, + F2( + function (_n4, result) { + var k = _n4.a; + var v = _n4.b; + return A3(leftStep, k, v, result); + }), + intermediateResult, + leftovers); + }); +var elm$browser$Debugger$Metadata$checkUnion = F4( + function (name, old, _new, changes) { + var tagChanges = A6( + elm$core$Dict$merge, + elm$browser$Debugger$Metadata$removeTag, + elm$browser$Debugger$Metadata$checkTag, + elm$browser$Debugger$Metadata$addTag, + old.tags, + _new.tags, + elm$browser$Debugger$Report$emptyTagChanges( + _Utils_eq(old.args, _new.args))); + return elm$browser$Debugger$Report$hasTagChanges(tagChanges) ? changes : A2( + elm$core$List$cons, + A2(elm$browser$Debugger$Report$UnionChange, name, tagChanges), + changes); + }); +var elm$browser$Debugger$Metadata$ignore = F3( + function (key, value, report) { + return report; + }); +var elm$browser$Debugger$Report$MessageChanged = F2( + function (a, b) { + return {$: 'MessageChanged', a: a, b: b}; + }); +var elm$browser$Debugger$Report$SomethingChanged = function (a) { + return {$: 'SomethingChanged', a: a}; +}; +var elm$core$Basics$neq = _Utils_notEqual; +var elm$browser$Debugger$Metadata$checkTypes = F2( + function (old, _new) { + return (!_Utils_eq(old.message, _new.message)) ? A2(elm$browser$Debugger$Report$MessageChanged, old.message, _new.message) : elm$browser$Debugger$Report$SomethingChanged( + A6( + elm$core$Dict$merge, + elm$browser$Debugger$Metadata$ignore, + elm$browser$Debugger$Metadata$checkUnion, + elm$browser$Debugger$Metadata$ignore, + old.unions, + _new.unions, + A6(elm$core$Dict$merge, elm$browser$Debugger$Metadata$ignore, elm$browser$Debugger$Metadata$checkAlias, elm$browser$Debugger$Metadata$ignore, old.aliases, _new.aliases, _List_Nil))); + }); +var elm$browser$Debugger$Report$VersionChanged = F2( + function (a, b) { + return {$: 'VersionChanged', a: a, b: b}; + }); +var elm$browser$Debugger$Metadata$check = F2( + function (old, _new) { + return (!_Utils_eq(old.versions.elm, _new.versions.elm)) ? A2(elm$browser$Debugger$Report$VersionChanged, old.versions.elm, _new.versions.elm) : A2(elm$browser$Debugger$Metadata$checkTypes, old.types, _new.types); + }); +var elm$browser$Debugger$Overlay$RiskyImport = F2( + function (a, b) { + return {$: 'RiskyImport', a: a, b: b}; + }); +var elm$browser$Debugger$Overlay$uploadDecoder = A3( + elm$json$Json$Decode$map2, + F2( + function (x, y) { + return _Utils_Tuple2(x, y); + }), + A2(elm$json$Json$Decode$field, 'metadata', elm$browser$Debugger$Metadata$decoder), + A2(elm$json$Json$Decode$field, 'history', elm$json$Json$Decode$value)); +var elm$browser$Debugger$Report$Fine = {$: 'Fine'}; +var elm$browser$Debugger$Report$Impossible = {$: 'Impossible'}; +var elm$browser$Debugger$Report$Risky = {$: 'Risky'}; +var elm$browser$Debugger$Report$some = function (list) { + return !elm$core$List$isEmpty(list); +}; +var elm$browser$Debugger$Report$evaluateChange = function (change) { + if (change.$ === 'AliasChange') { + return elm$browser$Debugger$Report$Impossible; + } else { + var removed = change.b.removed; + var changed = change.b.changed; + var added = change.b.added; + var argsMatch = change.b.argsMatch; + return ((!argsMatch) || (elm$browser$Debugger$Report$some(changed) || elm$browser$Debugger$Report$some(removed))) ? elm$browser$Debugger$Report$Impossible : (elm$browser$Debugger$Report$some(added) ? elm$browser$Debugger$Report$Risky : elm$browser$Debugger$Report$Fine); + } +}; +var elm$browser$Debugger$Report$worstCase = F2( + function (status, statusList) { + worstCase: + while (true) { + if (!statusList.b) { + return status; + } else { + switch (statusList.a.$) { + case 'Impossible': + var _n1 = statusList.a; + return elm$browser$Debugger$Report$Impossible; + case 'Risky': + var _n2 = statusList.a; + var rest = statusList.b; + var $temp$status = elm$browser$Debugger$Report$Risky, + $temp$statusList = rest; + status = $temp$status; + statusList = $temp$statusList; + continue worstCase; + default: + var _n3 = statusList.a; + var rest = statusList.b; + var $temp$status = status, + $temp$statusList = rest; + status = $temp$status; + statusList = $temp$statusList; + continue worstCase; + } + } + } + }); +var elm$browser$Debugger$Report$evaluate = function (report) { + switch (report.$) { + case 'CorruptHistory': + return elm$browser$Debugger$Report$Impossible; + case 'VersionChanged': + return elm$browser$Debugger$Report$Impossible; + case 'MessageChanged': + return elm$browser$Debugger$Report$Impossible; + default: + var changes = report.a; + return A2( + elm$browser$Debugger$Report$worstCase, + elm$browser$Debugger$Report$Fine, + A2(elm$core$List$map, elm$browser$Debugger$Report$evaluateChange, changes)); + } +}; +var elm$json$Json$Decode$decodeString = _Json_runOnString; +var elm$browser$Debugger$Overlay$assessImport = F2( + function (metadata, jsonString) { + var _n0 = A2(elm$json$Json$Decode$decodeString, elm$browser$Debugger$Overlay$uploadDecoder, jsonString); + if (_n0.$ === 'Err') { + return elm$core$Result$Err(elm$browser$Debugger$Overlay$corruptImport); + } else { + var _n1 = _n0.a; + var foreignMetadata = _n1.a; + var rawHistory = _n1.b; + var report = A2(elm$browser$Debugger$Metadata$check, foreignMetadata, metadata); + var _n2 = elm$browser$Debugger$Report$evaluate(report); + switch (_n2.$) { + case 'Impossible': + return elm$core$Result$Err( + elm$browser$Debugger$Overlay$BadImport(report)); + case 'Risky': + return elm$core$Result$Err( + A2(elm$browser$Debugger$Overlay$RiskyImport, report, rawHistory)); + default: + return elm$core$Result$Ok(rawHistory); + } + } + }); +var elm$browser$Debugger$Overlay$close = F2( + function (msg, state) { + switch (state.$) { + case 'None': + return elm$core$Maybe$Nothing; + case 'BadMetadata': + return elm$core$Maybe$Nothing; + case 'BadImport': + return elm$core$Maybe$Nothing; + default: + var rawHistory = state.b; + if (msg.$ === 'Cancel') { + return elm$core$Maybe$Nothing; + } else { + return elm$core$Maybe$Just(rawHistory); + } + } + }); +var elm$browser$Debugger$Main$wrapUpdate = F3( + function (update, msg, model) { + wrapUpdate: + while (true) { + switch (msg.$) { + case 'NoOp': + return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); + case 'UserMsg': + var userMsg = msg.a; + var userModel = elm$browser$Debugger$Main$getLatestModel(model.state); + var newHistory = A3(elm$browser$Debugger$History$add, userMsg, userModel, model.history); + var _n1 = A2(update, userMsg, userModel); + var newUserModel = _n1.a; + var userCmds = _n1.b; + var commands = A2(elm$core$Platform$Cmd$map, elm$browser$Debugger$Main$UserMsg, userCmds); + var _n2 = model.state; + if (_n2.$ === 'Running') { return _Utils_Tuple2( _Utils_update( model, { - errorMessage: elm$core$Maybe$Just(errMsg) + expando: A2(elm$browser$Debugger$Expando$merge, newUserModel, model.expando), + history: newHistory, + state: elm$browser$Debugger$Main$Running(newUserModel) }), - elm$core$Platform$Cmd$none); + elm$core$Platform$Cmd$batch( + _List_fromArray( + [ + commands, + elm$browser$Debugger$Main$scroll(model.popout) + ]))); } else { + var index = _n2.a; + var indexModel = _n2.b; return _Utils_Tuple2( _Utils_update( model, { - errorMessage: elm$core$Maybe$Just('something happened') + history: newHistory, + state: A3(elm$browser$Debugger$Main$Paused, index, indexModel, newUserModel) }), - elm$core$Platform$Cmd$none); + commands); } - } - default: - var result = msg.a; - if (result.$ === 'Ok') { - var results = result.a; + case 'ExpandoMsg': + var eMsg = msg.a; return _Utils_Tuple2( _Utils_update( model, { - currentWord: elm$core$Maybe$Just( - A2(elm$core$Debug$log, 'currentWord:', results)) + expando: A2(elm$browser$Debugger$Expando$update, eMsg, model.expando) }), elm$core$Platform$Cmd$none); - } else { - var error = result.a; - if (error.$ === 'BadPayload') { - var errMsg = error.a; + case 'Resume': + var _n3 = model.state; + if (_n3.$ === 'Running') { + return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); + } else { + var userModel = _n3.c; return _Utils_Tuple2( _Utils_update( model, { - errorMessage: elm$core$Maybe$Just(errMsg) + expando: A2(elm$browser$Debugger$Expando$merge, userModel, model.expando), + state: elm$browser$Debugger$Main$Running(userModel) }), - elm$core$Platform$Cmd$none); + elm$browser$Debugger$Main$scroll(model.popout)); + } + case 'Jump': + var index = msg.a; + var _n4 = A3(elm$browser$Debugger$History$get, update, index, model.history); + var indexModel = _n4.a; + var indexMsg = _n4.b; + return _Utils_Tuple2( + _Utils_update( + model, + { + expando: A2(elm$browser$Debugger$Expando$merge, indexModel, model.expando), + state: A3( + elm$browser$Debugger$Main$Paused, + index, + indexModel, + elm$browser$Debugger$Main$getLatestModel(model.state)) + }), + elm$core$Platform$Cmd$none); + case 'Open': + return _Utils_Tuple2( + model, + A2( + elm$core$Task$perform, + function (_n5) { + return elm$browser$Debugger$Main$NoOp; + }, + _Debugger_open(model.popout))); + case 'Up': + var index = function () { + var _n6 = model.state; + if (_n6.$ === 'Paused') { + var i = _n6.a; + return i; + } else { + return elm$browser$Debugger$History$size(model.history); + } + }(); + if (index > 0) { + var $temp$update = update, + $temp$msg = elm$browser$Debugger$Main$Jump(index - 1), + $temp$model = model; + update = $temp$update; + msg = $temp$msg; + model = $temp$model; + continue wrapUpdate; + } else { + return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); + } + case 'Down': + var _n7 = model.state; + if (_n7.$ === 'Running') { + return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); } else { + var index = _n7.a; + var userModel = _n7.c; + if (_Utils_eq( + index, + elm$browser$Debugger$History$size(model.history) - 1)) { + var $temp$update = update, + $temp$msg = elm$browser$Debugger$Main$Resume, + $temp$model = model; + update = $temp$update; + msg = $temp$msg; + model = $temp$model; + continue wrapUpdate; + } else { + var $temp$update = update, + $temp$msg = elm$browser$Debugger$Main$Jump(index + 1), + $temp$model = model; + update = $temp$update; + msg = $temp$msg; + model = $temp$model; + continue wrapUpdate; + } + } + case 'Import': + return A2( + elm$browser$Debugger$Main$withGoodMetadata, + model, + function (_n8) { + return _Utils_Tuple2(model, elm$browser$Debugger$Main$upload); + }); + case 'Export': + return A2( + elm$browser$Debugger$Main$withGoodMetadata, + model, + function (metadata) { + return _Utils_Tuple2( + model, + A2(elm$browser$Debugger$Main$download, metadata, model.history)); + }); + case 'Upload': + var jsonString = msg.a; + return A2( + elm$browser$Debugger$Main$withGoodMetadata, + model, + function (metadata) { + var _n9 = A2(elm$browser$Debugger$Overlay$assessImport, metadata, jsonString); + if (_n9.$ === 'Err') { + var newOverlay = _n9.a; + return _Utils_Tuple2( + _Utils_update( + model, + {overlay: newOverlay}), + elm$core$Platform$Cmd$none); + } else { + var rawHistory = _n9.a; + return A3(elm$browser$Debugger$Main$loadNewHistory, rawHistory, update, model); + } + }); + default: + var overlayMsg = msg.a; + var _n10 = A2(elm$browser$Debugger$Overlay$close, overlayMsg, model.overlay); + if (_n10.$ === 'Nothing') { return _Utils_Tuple2( _Utils_update( model, - { - errorMessage: elm$core$Maybe$Just('something happened') - }), + {overlay: elm$browser$Debugger$Overlay$none}), elm$core$Platform$Cmd$none); + } else { + var rawHistory = _n10.a; + return A3(elm$browser$Debugger$Main$loadNewHistory, rawHistory, update, model); } - } + } } }); -var elm$json$Json$Encode$list = F2( - function (func, entries) { - return _Json_wrap( - A3( - elm$core$List$foldl, - _Json_addEntry(func), - _Json_emptyArray(_Utils_Tuple0), - entries)); - }); -var elm$json$Json$Encode$object = function (pairs) { - return _Json_wrap( - A3( - elm$core$List$foldl, - F2( - function (_n0, obj) { - var k = _n0.a; - var v = _n0.b; - return A3(_Json_addField, k, v, obj); +var elm$core$Set$foldr = F3( + function (func, initialState, _n0) { + var dict = _n0.a; + return A3( + elm$core$Dict$foldr, + F3( + function (key, _n1, state) { + return A2(func, key, state); }), - _Json_emptyObject(_Utils_Tuple0), - pairs)); -}; -var author$project$Lexicon$wordEncoder = function (word) { - return elm$json$Json$Encode$object( - _List_fromArray( - [ - _Utils_Tuple2( - 'id', - elm$json$Json$Encode$string(word.id)), - _Utils_Tuple2( - 'word', - elm$json$Json$Encode$string(word.word)), - _Utils_Tuple2( - 'definition', - elm$json$Json$Encode$string(word.definition)), - _Utils_Tuple2( - 'seeAlso', - A2(elm$json$Json$Encode$list, elm$json$Json$Encode$string, word.seeAlso)) - ])); -}; -var author$project$Main$DefinitionView = {$: 'DefinitionView'}; -var author$project$Main$LoadDefinitionByInt = function (a) { - return {$: 'LoadDefinitionByInt', a: a}; -}; -var author$project$Main$appGoHome = _Platform_outgoingPort( - 'appGoHome', - function ($) { - return elm$json$Json$Encode$null; + initialState, + dict); }); -var author$project$Main$appGoSettings = _Platform_outgoingPort( - 'appGoSettings', - function ($) { - return elm$json$Json$Encode$null; +var elm$core$String$dropLeft = F2( + function (n, string) { + return (n < 1) ? string : A3( + elm$core$String$slice, + n, + elm$core$String$length(string), + string); }); -var elm$core$Basics$identity = function (x) { - return x; +var elm$core$String$startsWith = _String_startsWith; +var elm$url$Url$Http = {$: 'Http'}; +var elm$url$Url$Https = {$: 'Https'}; +var elm$core$String$indexes = _String_indexes; +var elm$core$String$isEmpty = function (string) { + return string === ''; }; -var author$project$Main$removeSavedWord = _Platform_outgoingPort('removeSavedWord', elm$core$Basics$identity); -var author$project$Main$saveWord = _Platform_outgoingPort('saveWord', elm$core$Basics$identity); -var author$project$Main$scrollTop = _Platform_outgoingPort( - 'scrollTop', - function ($) { - return elm$json$Json$Encode$null; +var elm$core$String$toInt = _String_toInt; +var elm$url$Url$Url = F6( + function (protocol, host, port_, path, query, fragment) { + return {fragment: fragment, host: host, path: path, port_: port_, protocol: protocol, query: query}; + }); +var elm$url$Url$chompBeforePath = F5( + function (protocol, path, params, frag, str) { + if (elm$core$String$isEmpty(str) || A2(elm$core$String$contains, '@', str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, ':', str); + if (!_n0.b) { + return elm$core$Maybe$Just( + A6(elm$url$Url$Url, protocol, str, elm$core$Maybe$Nothing, path, params, frag)); + } else { + if (!_n0.b.b) { + var i = _n0.a; + var _n1 = elm$core$String$toInt( + A2(elm$core$String$dropLeft, i + 1, str)); + if (_n1.$ === 'Nothing') { + return elm$core$Maybe$Nothing; + } else { + var port_ = _n1; + return elm$core$Maybe$Just( + A6( + elm$url$Url$Url, + protocol, + A2(elm$core$String$left, i, str), + port_, + path, + params, + frag)); + } + } else { + return elm$core$Maybe$Nothing; + } + } + } + }); +var elm$url$Url$chompBeforeQuery = F4( + function (protocol, params, frag, str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, '/', str); + if (!_n0.b) { + return A5(elm$url$Url$chompBeforePath, protocol, '/', params, frag, str); + } else { + var i = _n0.a; + return A5( + elm$url$Url$chompBeforePath, + protocol, + A2(elm$core$String$dropLeft, i, str), + params, + frag, + A2(elm$core$String$left, i, str)); + } + } + }); +var elm$url$Url$chompBeforeFragment = F3( + function (protocol, frag, str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, '?', str); + if (!_n0.b) { + return A4(elm$url$Url$chompBeforeQuery, protocol, elm$core$Maybe$Nothing, frag, str); + } else { + var i = _n0.a; + return A4( + elm$url$Url$chompBeforeQuery, + protocol, + elm$core$Maybe$Just( + A2(elm$core$String$dropLeft, i + 1, str)), + frag, + A2(elm$core$String$left, i, str)); + } + } + }); +var elm$url$Url$chompAfterProtocol = F2( + function (protocol, str) { + if (elm$core$String$isEmpty(str)) { + return elm$core$Maybe$Nothing; + } else { + var _n0 = A2(elm$core$String$indexes, '#', str); + if (!_n0.b) { + return A3(elm$url$Url$chompBeforeFragment, protocol, elm$core$Maybe$Nothing, str); + } else { + var i = _n0.a; + return A3( + elm$url$Url$chompBeforeFragment, + protocol, + elm$core$Maybe$Just( + A2(elm$core$String$dropLeft, i + 1, str)), + A2(elm$core$String$left, i, str)); + } + } }); +var elm$url$Url$fromString = function (str) { + return A2(elm$core$String$startsWith, 'http://', str) ? A2( + elm$url$Url$chompAfterProtocol, + elm$url$Url$Http, + A2(elm$core$String$dropLeft, 7, str)) : (A2(elm$core$String$startsWith, 'https://', str) ? A2( + elm$url$Url$chompAfterProtocol, + elm$url$Url$Https, + A2(elm$core$String$dropLeft, 8, str)) : elm$core$Maybe$Nothing); +}; +var elm$browser$Browser$Dom$blur = _Browser_call('blur'); +var elm$core$Task$onError = _Scheduler_onError; +var elm$core$Task$attempt = F2( + function (resultToMessage, task) { + return elm$core$Task$command( + elm$core$Task$Perform( + A2( + elm$core$Task$onError, + A2( + elm$core$Basics$composeL, + A2(elm$core$Basics$composeL, elm$core$Task$succeed, resultToMessage), + elm$core$Result$Err), + A2( + elm$core$Task$andThen, + A2( + elm$core$Basics$composeL, + A2(elm$core$Basics$composeL, elm$core$Task$succeed, resultToMessage), + elm$core$Result$Ok), + task)))); + }); +var author$project$Main$unfocusSearchBox = A2( + elm$core$Task$attempt, + function (_n0) { + return author$project$Main$NoOp; + }, + elm$browser$Browser$Dom$blur('search-box')); var elm$random$Random$Generate = function (a) { return {$: 'Generate', a: a}; }; -var elm$core$Task$andThen = _Scheduler_andThen; -var elm$core$Task$succeed = _Scheduler_succeed; -var elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy; var elm$random$Random$Seed = F2( function (a, b) { return {$: 'Seed', a: a, b: b}; @@ -5298,7 +10027,6 @@ elm$time$Time$posixToMillis(time))); }, elm$time$Time$now); -var elm$core$Platform$sendToApp = _Platform_sendToApp; var elm$random$Random$step = F2( function (_n0, seed) { var generator = _n0.a; @@ -5356,10 +10084,6 @@ elm$random$Random$Generate( A2(elm$random$Random$map, tagger, generator))); }); -var elm$core$Basics$negate = function (n) { - return -n; -}; -var elm$core$Bitwise$and = _Bitwise_and; var elm$core$Bitwise$xor = _Bitwise_xor; var elm$random$Random$peel = function (_n0) { var state = _n0.a; @@ -5511,8 +10235,10 @@ savedWords: elm$core$Maybe$Just(swl) }), elm$core$Platform$Cmd$none); - default: + case 'NoOp': return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); + default: + return _Utils_Tuple2(model, author$project$Main$unfocusSearchBox); } }); var author$project$Main$LoadDefinitionByWord = function (a) { @@ -5520,17 +10246,6 @@ }; var author$project$Main$GoHome = {$: 'GoHome'}; var author$project$Main$GoSettings = {$: 'GoSettings'}; -var elm$core$String$length = _String_length; -var elm$core$String$slice = _String_slice; -var elm$core$String$dropLeft = F2( - function (n, string) { - return (n < 1) ? string : A3( - elm$core$String$slice, - n, - elm$core$String$length(string), - string); - }); -var elm$core$String$startsWith = _String_startsWith; var elm$core$String$foldr = _String_foldr; var elm$core$String$toList = function (string) { return A3(elm$core$String$foldr, elm$core$List$cons, _List_Nil, string); @@ -5569,15 +10284,6 @@ return elm$core$Maybe$Nothing; } }; -var elm$core$Maybe$withDefault = F2( - function (_default, maybe) { - if (maybe.$ === 'Just') { - var value = maybe.a; - return value; - } else { - return _default; - } - }); var elm$core$Result$map = F2( function (func, ra) { if (ra.$ === 'Ok') { @@ -5600,9 +10306,6 @@ f(e)); } }); -var elm$core$String$isEmpty = function (string) { - return string === ''; -}; var elm$core$Basics$pow = _Basics_pow; var elm$core$String$fromChar = function (_char) { return A2(elm$core$String$cons, _char, ''); @@ -5937,20 +10640,6 @@ } return rtfeldman$elm_css$Css$erroneousHex(str); }; -var elm$core$List$map = F2( - function (f, xs) { - return A3( - elm$core$List$foldr, - F2( - function (x, acc) { - return A2( - elm$core$List$cons, - f(x), - acc); - }), - _List_Nil, - xs); - }); var rtfeldman$elm_css$Css$cssFunction = F2( function (funcName, args) { return funcName + ('(' + (A2(elm$core$String$join, ', ', args) + ')')); @@ -5997,24 +10686,6 @@ var rtfeldman$elm_css$VirtualDom$Styled$node = rtfeldman$elm_css$VirtualDom$Styled$Node; var rtfeldman$elm_css$Html$Styled$node = rtfeldman$elm_css$VirtualDom$Styled$node; var rtfeldman$elm_css$Html$Styled$i = rtfeldman$elm_css$Html$Styled$node('i'); -var elm$core$Tuple$second = function (_n0) { - var y = _n0.b; - return y; -}; -var elm$json$Json$Decode$map = _Json_map1; -var elm$json$Json$Decode$map2 = _Json_map2; -var elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) { - switch (handler.$) { - case 'Normal': - return 0; - case 'MayStopPropagation': - return 1; - case 'MayPreventDefault': - return 2; - default: - return 3; - } -}; var elm$virtual_dom$VirtualDom$property = F2( function (key, value) { return A2( @@ -6115,7 +10786,6 @@ function (shift, seed, hash, charsProcessed) { return {charsProcessed: charsProcessed, hash: hash, seed: seed, shift: shift}; }); -var elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy; var Skinney$murmur3$Murmur3$mur = F2( function (c, h) { return 4294967295 & (((h & 65535) * c) + ((65535 & ((h >>> 16) * c)) << 16)); @@ -6126,7 +10796,6 @@ var k1 = A2(Skinney$murmur3$Murmur3$mur, 3432918353, h2); return h1 ^ A2(Skinney$murmur3$Murmur3$mur, 461845907, (k1 >>> 17) | (k1 << 15)); }); -var elm$core$Basics$neq = _Utils_notEqual; var Skinney$murmur3$Murmur3$finalize = function (data) { var acc = data.hash ? A2(Skinney$murmur3$Murmur3$mix, data.seed, data.hash) : data.seed; var h1 = acc ^ data.charsProcessed; @@ -6150,7 +10819,6 @@ return {charsProcessed: data.charsProcessed + 1, hash: res, seed: data.seed, shift: data.shift + 8}; } }); -var elm$core$Basics$ge = _Utils_ge; var Skinney$murmur3$UTF8$accumulate = F3( function (add, _char, _n0) { var acc = _n0.a; @@ -6224,22 +10892,6 @@ var rtfeldman$elm_css$Css$Preprocess$stylesheet = function (snippets) { return {charset: elm$core$Maybe$Nothing, imports: _List_Nil, namespaces: _List_Nil, snippets: snippets}; }; -var elm$core$List$append = F2( - function (xs, ys) { - if (!ys.b) { - return xs; - } else { - return A3(elm$core$List$foldr, elm$core$List$cons, ys, xs); - } - }); -var elm$core$List$concat = function (lists) { - return A3(elm$core$List$foldr, elm$core$List$append, _List_Nil, lists); -}; -var elm$core$List$concatMap = F2( - function (f, list) { - return elm$core$List$concat( - A2(elm$core$List$map, f, list)); - }); var rtfeldman$elm_css$Css$Preprocess$unwrapSnippet = function (_n0) { var declarations = _n0.a; return declarations; @@ -7327,157 +11979,40 @@ var properties = snippetDeclaration.b; return _List_fromArray( [ - A2(rtfeldman$elm_css$Css$Structure$PageRule, str, properties) - ]); - case 'FontFace': - var properties = snippetDeclaration.a; - return _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$FontFace(properties) - ]); - case 'Viewport': - var properties = snippetDeclaration.a; - return _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$Viewport(properties) - ]); - case 'CounterStyle': - var properties = snippetDeclaration.a; - return _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$CounterStyle(properties) - ]); - default: - var tuples = snippetDeclaration.a; - return rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues(tuples); - } -}; -var rtfeldman$elm_css$Css$Preprocess$Resolve$toStructure = function (_n0) { - var charset = _n0.charset; - var imports = _n0.imports; - var namespaces = _n0.namespaces; - var snippets = _n0.snippets; - var declarations = rtfeldman$elm_css$Css$Preprocess$Resolve$extract( - A2(elm$core$List$concatMap, rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)); - return {charset: charset, declarations: declarations, imports: imports, namespaces: namespaces}; -}; -var elm$core$Dict$RBEmpty_elm_builtin = {$: 'RBEmpty_elm_builtin'}; -var elm$core$Dict$empty = elm$core$Dict$RBEmpty_elm_builtin; -var elm$core$Dict$Black = {$: 'Black'}; -var elm$core$Dict$RBNode_elm_builtin = F5( - function (a, b, c, d, e) { - return {$: 'RBNode_elm_builtin', a: a, b: b, c: c, d: d, e: e}; - }); -var elm$core$Basics$compare = _Utils_compare; -var elm$core$Dict$Red = {$: 'Red'}; -var elm$core$Dict$balance = F5( - function (color, key, value, left, right) { - if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Red')) { - var _n1 = right.a; - var rK = right.b; - var rV = right.c; - var rLeft = right.d; - var rRight = right.e; - if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) { - var _n3 = left.a; - var lK = left.b; - var lV = left.c; - var lLeft = left.d; - var lRight = left.e; - return A5( - elm$core$Dict$RBNode_elm_builtin, - elm$core$Dict$Red, - key, - value, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, lK, lV, lLeft, lRight), - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, rK, rV, rLeft, rRight)); - } else { - return A5( - elm$core$Dict$RBNode_elm_builtin, - color, - rK, - rV, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, key, value, left, rLeft), - rRight); - } - } else { - if ((((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) && (left.d.$ === 'RBNode_elm_builtin')) && (left.d.a.$ === 'Red')) { - var _n5 = left.a; - var lK = left.b; - var lV = left.c; - var _n6 = left.d; - var _n7 = _n6.a; - var llK = _n6.b; - var llV = _n6.c; - var llLeft = _n6.d; - var llRight = _n6.e; - var lRight = left.e; - return A5( - elm$core$Dict$RBNode_elm_builtin, - elm$core$Dict$Red, - lK, - lV, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, llK, llV, llLeft, llRight), - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, key, value, lRight, right)); - } else { - return A5(elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right); - } - } - }); -var elm$core$Dict$insertHelp = F3( - function (key, value, dict) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, key, value, elm$core$Dict$RBEmpty_elm_builtin, elm$core$Dict$RBEmpty_elm_builtin); - } else { - var nColor = dict.a; - var nKey = dict.b; - var nValue = dict.c; - var nLeft = dict.d; - var nRight = dict.e; - var _n1 = A2(elm$core$Basics$compare, key, nKey); - switch (_n1.$) { - case 'LT': - return A5( - elm$core$Dict$balance, - nColor, - nKey, - nValue, - A3(elm$core$Dict$insertHelp, key, value, nLeft), - nRight); - case 'EQ': - return A5(elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight); - default: - return A5( - elm$core$Dict$balance, - nColor, - nKey, - nValue, - nLeft, - A3(elm$core$Dict$insertHelp, key, value, nRight)); - } - } - }); -var elm$core$Dict$insert = F3( - function (key, value, dict) { - var _n0 = A3(elm$core$Dict$insertHelp, key, value, dict); - if ((_n0.$ === 'RBNode_elm_builtin') && (_n0.a.$ === 'Red')) { - var _n1 = _n0.a; - var k = _n0.b; - var v = _n0.c; - var l = _n0.d; - var r = _n0.e; - return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, k, v, l, r); - } else { - var x = _n0; - return x; - } - }); -var elm$core$Basics$composeL = F3( - function (g, f, x) { - return g( - f(x)); - }); -var elm$core$Basics$not = _Basics_not; + A2(rtfeldman$elm_css$Css$Structure$PageRule, str, properties) + ]); + case 'FontFace': + var properties = snippetDeclaration.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$FontFace(properties) + ]); + case 'Viewport': + var properties = snippetDeclaration.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$Viewport(properties) + ]); + case 'CounterStyle': + var properties = snippetDeclaration.a; + return _List_fromArray( + [ + rtfeldman$elm_css$Css$Structure$CounterStyle(properties) + ]); + default: + var tuples = snippetDeclaration.a; + return rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues(tuples); + } +}; +var rtfeldman$elm_css$Css$Preprocess$Resolve$toStructure = function (_n0) { + var charset = _n0.charset; + var imports = _n0.imports; + var namespaces = _n0.namespaces; + var snippets = _n0.snippets; + var declarations = rtfeldman$elm_css$Css$Preprocess$Resolve$extract( + A2(elm$core$List$concatMap, rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)); + return {charset: charset, declarations: declarations, imports: imports, namespaces: namespaces}; +}; var elm$core$List$any = F2( function (isOkay, list) { any: @@ -7962,10 +12497,6 @@ return A3(rtfeldman$elm_css$VirtualDom$Styled$Attribute, classProperty, styles, classname); }; var rtfeldman$elm_css$Html$Styled$Attributes$css = rtfeldman$elm_css$Html$Styled$Internal$css; -var elm$virtual_dom$VirtualDom$Normal = function (a) { - return {$: 'Normal', a: a}; -}; -var elm$virtual_dom$VirtualDom$on = _VirtualDom_on; var rtfeldman$elm_css$VirtualDom$Styled$on = F2( function (eventName, handler) { return A3( @@ -8218,7 +12749,6 @@ var rtfeldman$elm_css$Css$none = {backgroundImage: rtfeldman$elm_css$Css$Structure$Compatible, blockAxisOverflow: rtfeldman$elm_css$Css$Structure$Compatible, borderStyle: rtfeldman$elm_css$Css$Structure$Compatible, cursor: rtfeldman$elm_css$Css$Structure$Compatible, display: rtfeldman$elm_css$Css$Structure$Compatible, hoverCapability: rtfeldman$elm_css$Css$Structure$Compatible, inlineAxisOverflow: rtfeldman$elm_css$Css$Structure$Compatible, keyframes: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNone: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNoneOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNumberOrAutoOrNoneOrContent: rtfeldman$elm_css$Css$Structure$Compatible, listStyleType: rtfeldman$elm_css$Css$Structure$Compatible, listStyleTypeOrPositionOrImage: rtfeldman$elm_css$Css$Structure$Compatible, none: rtfeldman$elm_css$Css$Structure$Compatible, outline: rtfeldman$elm_css$Css$Structure$Compatible, pointerDevice: rtfeldman$elm_css$Css$Structure$Compatible, pointerEvents: rtfeldman$elm_css$Css$Structure$Compatible, resize: rtfeldman$elm_css$Css$Structure$Compatible, scriptingSupport: rtfeldman$elm_css$Css$Structure$Compatible, textDecorationLine: rtfeldman$elm_css$Css$Structure$Compatible, textTransform: rtfeldman$elm_css$Css$Structure$Compatible, touchAction: rtfeldman$elm_css$Css$Structure$Compatible, transform: rtfeldman$elm_css$Css$Structure$Compatible, updateFrequency: rtfeldman$elm_css$Css$Structure$Compatible, value: 'none'}; var rtfeldman$elm_css$Html$Styled$button = rtfeldman$elm_css$Html$Styled$node('button'); var rtfeldman$elm_css$Html$Styled$span = rtfeldman$elm_css$Html$Styled$node('span'); -var elm$virtual_dom$VirtualDom$text = _VirtualDom_text; var rtfeldman$elm_css$VirtualDom$Styled$Unstyled = function (a) { return {$: 'Unstyled', a: a}; }; @@ -8503,6 +13033,7 @@ var author$project$Main$Navigate = function (a) { return {$: 'Navigate', a: a}; }; +var author$project$Main$Search = {$: 'Search'}; var author$project$Main$LoadDefinition = function (a) { return {$: 'LoadDefinition', a: a}; }; @@ -8520,7 +13051,6 @@ rtfeldman$elm_css$Html$Styled$text(word.word) ])); }; -var elm$core$String$contains = _String_contains; var author$project$Main$filterWordList = F2( function (word, list) { return elm$core$String$isEmpty(word) ? list : A2( @@ -8600,8 +13130,21 @@ ]), _List_Nil) ])); +var elm$json$Json$Decode$fail = _Json_fail; +var elm$json$Json$Decode$int = _Json_decodeInt; +var rtfeldman$elm_css$Html$Styled$Events$keyCode = A2(elm$json$Json$Decode$field, 'keyCode', elm$json$Json$Decode$int); +var author$project$Theme$Elements$onEnter = function (msg) { + var isEnter = function (code) { + return (code === 13) ? elm$json$Json$Decode$succeed(msg) : elm$json$Json$Decode$fail('not ENTER'); + }; + return A2( + rtfeldman$elm_css$Html$Styled$Events$on, + 'keydown', + A2(elm$json$Json$Decode$andThen, isEnter, rtfeldman$elm_css$Html$Styled$Events$keyCode)); +}; var rtfeldman$elm_css$Css$transparent = {color: rtfeldman$elm_css$Css$Structure$Compatible, value: 'transparent'}; var rtfeldman$elm_css$Html$Styled$input = rtfeldman$elm_css$Html$Styled$node('input'); +var rtfeldman$elm_css$Html$Styled$Attributes$id = rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('id'); var rtfeldman$elm_css$Html$Styled$Attributes$value = rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('value'); var rtfeldman$elm_css$Html$Styled$Events$alwaysStop = function (x) { return _Utils_Tuple2(x, true); @@ -8634,8 +13177,8 @@ rtfeldman$elm_css$Html$Styled$Events$alwaysStop, A2(elm$json$Json$Decode$map, tagger, rtfeldman$elm_css$Html$Styled$Events$targetValue))); }; -var author$project$Theme$Elements$searchBox = F2( - function (changed, query) { +var author$project$Theme$Elements$searchBox = F3( + function (changed, search, query) { return A2( rtfeldman$elm_css$Html$Styled$div, _List_fromArray( @@ -8664,7 +13207,9 @@ rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white) ])), rtfeldman$elm_css$Html$Styled$Events$onInput(changed), - rtfeldman$elm_css$Html$Styled$Attributes$value(query) + author$project$Theme$Elements$onEnter(search), + rtfeldman$elm_css$Html$Styled$Attributes$value(query), + rtfeldman$elm_css$Html$Styled$Attributes$id('search-box') ]), _List_Nil), A2( @@ -8760,7 +13305,7 @@ [ author$project$Theme$Elements$searchHeader( author$project$Main$Navigate(author$project$Main$HelpView)), - A2(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, model.query), + A3(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, author$project$Main$Search, model.query), author$project$Theme$Elements$listHeader, A2( rtfeldman$elm_css$Html$Styled$ul, @@ -8961,7 +13506,7 @@ [ author$project$Theme$Elements$searchHeader( author$project$Main$Navigate(author$project$Main$HelpView)), - A2(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, model.query), + A3(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, author$project$Main$Search, model.query), author$project$Theme$Elements$listHeader, A2( rtfeldman$elm_css$Html$Styled$ul, @@ -9136,219 +13681,7 @@ author$project$Main$appNavigation ])); }; -var elm$browser$Browser$External = function (a) { - return {$: 'External', a: a}; -}; -var elm$browser$Browser$Internal = function (a) { - return {$: 'Internal', a: a}; -}; -var elm$browser$Browser$Dom$NotFound = function (a) { - return {$: 'NotFound', a: a}; -}; -var elm$core$Basics$never = function (_n0) { - never: - while (true) { - var nvr = _n0.a; - var $temp$_n0 = nvr; - _n0 = $temp$_n0; - continue never; - } -}; -var elm$core$Task$Perform = function (a) { - return {$: 'Perform', a: a}; -}; -var elm$core$Task$init = elm$core$Task$succeed(_Utils_Tuple0); -var elm$core$Task$map = F2( - function (func, taskA) { - return A2( - elm$core$Task$andThen, - function (a) { - return elm$core$Task$succeed( - func(a)); - }, - taskA); - }); -var elm$core$Task$map2 = F3( - function (func, taskA, taskB) { - return A2( - elm$core$Task$andThen, - function (a) { - return A2( - elm$core$Task$andThen, - function (b) { - return elm$core$Task$succeed( - A2(func, a, b)); - }, - taskB); - }, - taskA); - }); -var elm$core$Task$sequence = function (tasks) { - return A3( - elm$core$List$foldr, - elm$core$Task$map2(elm$core$List$cons), - elm$core$Task$succeed(_List_Nil), - tasks); -}; -var elm$core$Task$spawnCmd = F2( - function (router, _n0) { - var task = _n0.a; - return _Scheduler_spawn( - A2( - elm$core$Task$andThen, - elm$core$Platform$sendToApp(router), - task)); - }); -var elm$core$Task$onEffects = F3( - function (router, commands, state) { - return A2( - elm$core$Task$map, - function (_n0) { - return _Utils_Tuple0; - }, - elm$core$Task$sequence( - A2( - elm$core$List$map, - elm$core$Task$spawnCmd(router), - commands))); - }); -var elm$core$Task$onSelfMsg = F3( - function (_n0, _n1, _n2) { - return elm$core$Task$succeed(_Utils_Tuple0); - }); -var elm$core$Task$cmdMap = F2( - function (tagger, _n0) { - var task = _n0.a; - return elm$core$Task$Perform( - A2(elm$core$Task$map, tagger, task)); - }); -_Platform_effectManagers['Task'] = _Platform_createManager(elm$core$Task$init, elm$core$Task$onEffects, elm$core$Task$onSelfMsg, elm$core$Task$cmdMap); -var elm$core$Task$command = _Platform_leaf('Task'); -var elm$core$Task$perform = F2( - function (toMessage, task) { - return elm$core$Task$command( - elm$core$Task$Perform( - A2(elm$core$Task$map, toMessage, task))); - }); -var elm$url$Url$Http = {$: 'Http'}; -var elm$url$Url$Https = {$: 'Https'}; -var elm$core$String$indexes = _String_indexes; -var elm$core$String$left = F2( - function (n, string) { - return (n < 1) ? '' : A3(elm$core$String$slice, 0, n, string); - }); -var elm$core$String$toInt = _String_toInt; -var elm$url$Url$Url = F6( - function (protocol, host, port_, path, query, fragment) { - return {fragment: fragment, host: host, path: path, port_: port_, protocol: protocol, query: query}; - }); -var elm$url$Url$chompBeforePath = F5( - function (protocol, path, params, frag, str) { - if (elm$core$String$isEmpty(str) || A2(elm$core$String$contains, '@', str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, ':', str); - if (!_n0.b) { - return elm$core$Maybe$Just( - A6(elm$url$Url$Url, protocol, str, elm$core$Maybe$Nothing, path, params, frag)); - } else { - if (!_n0.b.b) { - var i = _n0.a; - var _n1 = elm$core$String$toInt( - A2(elm$core$String$dropLeft, i + 1, str)); - if (_n1.$ === 'Nothing') { - return elm$core$Maybe$Nothing; - } else { - var port_ = _n1; - return elm$core$Maybe$Just( - A6( - elm$url$Url$Url, - protocol, - A2(elm$core$String$left, i, str), - port_, - path, - params, - frag)); - } - } else { - return elm$core$Maybe$Nothing; - } - } - } - }); -var elm$url$Url$chompBeforeQuery = F4( - function (protocol, params, frag, str) { - if (elm$core$String$isEmpty(str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, '/', str); - if (!_n0.b) { - return A5(elm$url$Url$chompBeforePath, protocol, '/', params, frag, str); - } else { - var i = _n0.a; - return A5( - elm$url$Url$chompBeforePath, - protocol, - A2(elm$core$String$dropLeft, i, str), - params, - frag, - A2(elm$core$String$left, i, str)); - } - } - }); -var elm$url$Url$chompBeforeFragment = F3( - function (protocol, frag, str) { - if (elm$core$String$isEmpty(str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, '?', str); - if (!_n0.b) { - return A4(elm$url$Url$chompBeforeQuery, protocol, elm$core$Maybe$Nothing, frag, str); - } else { - var i = _n0.a; - return A4( - elm$url$Url$chompBeforeQuery, - protocol, - elm$core$Maybe$Just( - A2(elm$core$String$dropLeft, i + 1, str)), - frag, - A2(elm$core$String$left, i, str)); - } - } - }); -var elm$url$Url$chompAfterProtocol = F2( - function (protocol, str) { - if (elm$core$String$isEmpty(str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, '#', str); - if (!_n0.b) { - return A3(elm$url$Url$chompBeforeFragment, protocol, elm$core$Maybe$Nothing, str); - } else { - var i = _n0.a; - return A3( - elm$url$Url$chompBeforeFragment, - protocol, - elm$core$Maybe$Just( - A2(elm$core$String$dropLeft, i + 1, str)), - A2(elm$core$String$left, i, str)); - } - } - }); -var elm$url$Url$fromString = function (str) { - return A2(elm$core$String$startsWith, 'http://', str) ? A2( - elm$url$Url$chompAfterProtocol, - elm$url$Url$Http, - A2(elm$core$String$dropLeft, 7, str)) : (A2(elm$core$String$startsWith, 'https://', str) ? A2( - elm$url$Url$chompAfterProtocol, - elm$url$Url$Https, - A2(elm$core$String$dropLeft, 8, str)) : elm$core$Maybe$Nothing); -}; var elm$browser$Browser$element = _Browser_element; -var elm$virtual_dom$VirtualDom$node = function (tag) { - return _VirtualDom_node( - _VirtualDom_noScript(tag)); -}; var elm$virtual_dom$VirtualDom$keyedNode = function (tag) { return _VirtualDom_keyedNode( _VirtualDom_noScript(tag)); @@ -9846,7 +14179,7 @@ }, A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); }, - A2(elm$json$Json$Decode$field, 'word', elm$json$Json$Decode$string))))(0)}});}(this)); + A2(elm$json$Json$Decode$field, 'word', elm$json$Json$Decode$string))))({"versions":{"elm":"0.19.0"},"types":{"message":"Main.Msg","aliases":{"Lexicon.Word":{"args":[],"type":"{ id : String.String, word : String.String }"},"Lexicon.WordDefinition":{"args":[],"type":"{ id : String.String, word : String.String, definition : String.String, seeAlso : List.List String.String }"},"Lexicon.WordList":{"args":[],"type":"List.List Lexicon.Word"},"Http.Response":{"args":["body"],"type":"{ url : String.String, status : { code : Basics.Int, message : String.String }, headers : Dict.Dict String.String String.String, body : body }"}},"unions":{"Main.Msg":{"args":[],"tags":{"LexiconMsg":["Lexicon.Msg"],"Navigate":["Main.PageId"],"LoadDefinition":["String.String"],"LoadDefinitionByInt":["Basics.Int"],"LoadDefinitionByWord":["String.String"],"LoadRandomDefinition":[],"FilterWordList":["String.String"],"SaveWord":["Lexicon.WordDefinition"],"RemoveSavedWord":["Lexicon.WordDefinition"],"SavedWordListChanged":["Lexicon.WordList"],"GoHome":[],"GoSettings":[],"NoOp":[],"Search":[]}},"Lexicon.Msg":{"args":[],"tags":{"HandleWordListResponse":["Result.Result Http.Error Lexicon.WordList"],"HandleWordDefinitionResponse":["Result.Result Http.Error Lexicon.WordDefinition"],"WordListReceived":["Lexicon.WordList"],"WordDefinitionReceived":["Lexicon.WordDefinition"]}},"Main.PageId":{"args":[],"tags":{"LoadingView":[],"SearchView":[],"SurpriseView":[],"MyWordsView":[],"DefinitionView":[],"HelpView":[]}},"Basics.Int":{"args":[],"tags":{"Int":[]}},"List.List":{"args":["a"],"tags":{}},"String.String":{"args":[],"tags":{"String":[]}},"Result.Result":{"args":["error","value"],"tags":{"Ok":["value"],"Err":["error"]}},"Http.Error":{"args":[],"tags":{"BadUrl":["String.String"],"Timeout":[],"NetworkError":[],"BadStatus":["Http.Response String.String"],"BadPayload":["String.String","Http.Response String.String"]}},"Dict.Dict":{"args":["k","v"],"tags":{"RBNode_elm_builtin":["Dict.NColor","k","v","Dict.Dict k v","Dict.Dict k v"],"RBEmpty_elm_builtin":[]}},"Dict.NColor":{"args":[],"tags":{"Red":[],"Black":[]}}}}})}});}(this)); var app = Elm.Main.init({ node: document.getElementById("elm-f0111bc4e658d0f98db96260c16f7e49") }); if (document.getElementById("elm-f0111bc4e658d0f98db96260c16f7e49")) diff --git a/web-modules/lexicon/live_server.bat b/web-modules/lexicon/live_server.bat index da200fb9..ac3e714e 100755 --- a/web-modules/lexicon/live_server.bat +++ b/web-modules/lexicon/live_server.bat @@ -1,3 +1,3 @@ @echo off -elm-live src/Main.elm --output=build/bundle.js --dir=build/ --open \ No newline at end of file +elm-live src/Main.elm --dir=build/ --open -- --output=build/bundle.js --debug \ No newline at end of file diff --git a/web-modules/lexicon/src/Main.elm b/web-modules/lexicon/src/Main.elm index 1d22dd4c..9bd2bbea 100755 --- a/web-modules/lexicon/src/Main.elm +++ b/web-modules/lexicon/src/Main.elm @@ -43,6 +43,7 @@ import Task import Theme.Colors exposing (..) import Theme.Elements exposing (..) import Browser +import Browser.Dom as Dom @@ -161,6 +162,7 @@ type Msg | GoHome | GoSettings | NoOp + | Search filterWordList : String -> WordList -> WordList @@ -253,6 +255,9 @@ update msg model = NoOp -> ( model, Cmd.none ) + Search -> + ( model, unfocusSearchBox) + ---- VIEW ---- @@ -465,6 +470,11 @@ addWordItem word = li [ onClick (LoadDefinition word.id) ] [ text word.word ] + +unfocusSearchBox : Cmd Msg +unfocusSearchBox = + Task.attempt (\_ -> NoOp) (Dom.blur "search-box") + searchView : Model -> Html Msg searchView model = case model.lexiconModel.wordList of @@ -474,7 +484,7 @@ searchView model = [ marginTop (px 125) ] ] [ searchHeader (Navigate HelpView) - , searchBox FilterWordList model.query + , searchBox FilterWordList Search model.query , listHeader , ul [ css @@ -508,7 +518,7 @@ myWordsView model = [ marginTop (px 125) ] ] [ searchHeader (Navigate HelpView) - , searchBox FilterWordList model.query + , searchBox FilterWordList Search model.query , listHeader , ul [ css diff --git a/web-modules/lexicon/src/Theme/Elements.elm b/web-modules/lexicon/src/Theme/Elements.elm index c0d031a6..cdd53df8 100755 --- a/web-modules/lexicon/src/Theme/Elements.elm +++ b/web-modules/lexicon/src/Theme/Elements.elm @@ -2,11 +2,24 @@ module Theme.Elements exposing (bodyStyle, fontAwesomeIcon, headerStyle, headerT import Css exposing (..) import Html.Styled exposing (..) -import Html.Styled.Attributes exposing (classList, css, value) +import Html.Styled.Attributes exposing (classList, css, value, id) import Html.Styled.Events exposing (..) import Theme.Colors exposing (..) +import Json.Decode as Decode + +onEnter : msg -> Attribute msg +onEnter msg = + let + isEnter code = + if code == 13 then + Decode.succeed msg + else + Decode.fail "not ENTER" + in + on "keydown" (Decode.andThen isEnter keyCode) + navButton : Bool -> List (Attribute msg) -> List (Html msg) -> Html msg navButton isCurrentPage = let @@ -108,8 +121,8 @@ searchHeader click = ] -searchBox : (String -> msg) -> String -> Html msg -searchBox changed query = +searchBox : (String -> msg) -> msg -> String -> Html msg +searchBox changed search query = div [ css [ marginTop (px 10) ] @@ -123,7 +136,9 @@ searchBox changed query = , color theme.palette.white ] , onInput changed + , onEnter search , value query + , id "search-box" ] [] , hr From daad2019c060c13a036284474dd5862670ce68c4 Mon Sep 17 00:00:00 2001 From: andre alves garzia Date: Wed, 19 Sep 2018 15:16:58 +0100 Subject: [PATCH 4/4] fix for #175 --- modules/lexicon/lexicon.livecode | Bin 7308 -> 7005 bytes modules/lexicon/web/elm-package.json | 15 + .../web/fontawesome/css/font-awesome.css | 2337 +++ .../web/fontawesome/css/font-awesome.min.css | 4 + .../web/fontawesome/fonts/FontAwesome.otf | Bin 0 -> 134808 bytes .../fontawesome/fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes .../fontawesome/fonts/fontawesome-webfont.svg | 2671 +++ .../fontawesome/fonts/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes .../fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes modules/lexicon/web/index.html | 17 +- modules/lexicon/web/index.js | 12 +- .../noto-sans/NotoSans-Regular-webfont.woff | Bin 0 -> 22288 bytes modules/lexicon/web/noto-sans/stylesheet.css | 13 + .../build/fontawesome/css/font-awesome.css | 2337 +++ .../fontawesome/css/font-awesome.min.css | 4 + .../build/fontawesome/fonts/FontAwesome.otf | Bin 0 -> 134808 bytes .../fontawesome/fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes .../fontawesome/fonts/fontawesome-webfont.svg | 2671 +++ .../fontawesome/fonts/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes .../fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes web-modules/lexicon/build/index.html | 17 +- web-modules/lexicon/build/index.js | 12 +- .../noto-sans/NotoSans-Regular-webfont.woff | Bin 0 -> 22288 bytes .../lexicon/build/noto-sans/stylesheet.css | 13 + web-modules/lexicon/build/test.html | 30 - web-modules/lexicon/index.html | 14210 +--------------- 28 files changed, 10128 insertions(+), 14235 deletions(-) create mode 100644 modules/lexicon/web/elm-package.json create mode 100644 modules/lexicon/web/fontawesome/css/font-awesome.css create mode 100644 modules/lexicon/web/fontawesome/css/font-awesome.min.css create mode 100644 modules/lexicon/web/fontawesome/fonts/FontAwesome.otf create mode 100644 modules/lexicon/web/fontawesome/fonts/fontawesome-webfont.eot create mode 100644 modules/lexicon/web/fontawesome/fonts/fontawesome-webfont.svg create mode 100644 modules/lexicon/web/fontawesome/fonts/fontawesome-webfont.ttf create mode 100644 modules/lexicon/web/fontawesome/fonts/fontawesome-webfont.woff create mode 100644 modules/lexicon/web/fontawesome/fonts/fontawesome-webfont.woff2 create mode 100644 modules/lexicon/web/noto-sans/NotoSans-Regular-webfont.woff create mode 100644 modules/lexicon/web/noto-sans/stylesheet.css create mode 100644 web-modules/lexicon/build/fontawesome/css/font-awesome.css create mode 100644 web-modules/lexicon/build/fontawesome/css/font-awesome.min.css create mode 100644 web-modules/lexicon/build/fontawesome/fonts/FontAwesome.otf create mode 100644 web-modules/lexicon/build/fontawesome/fonts/fontawesome-webfont.eot create mode 100644 web-modules/lexicon/build/fontawesome/fonts/fontawesome-webfont.svg create mode 100644 web-modules/lexicon/build/fontawesome/fonts/fontawesome-webfont.ttf create mode 100644 web-modules/lexicon/build/fontawesome/fonts/fontawesome-webfont.woff create mode 100644 web-modules/lexicon/build/fontawesome/fonts/fontawesome-webfont.woff2 create mode 100644 web-modules/lexicon/build/noto-sans/NotoSans-Regular-webfont.woff create mode 100644 web-modules/lexicon/build/noto-sans/stylesheet.css delete mode 100644 web-modules/lexicon/build/test.html diff --git a/modules/lexicon/lexicon.livecode b/modules/lexicon/lexicon.livecode index ffbcc99a128f513a2402b9e7eb3e742400f0c854..2b23aa2ad78cd0deb7ac64640c6dead76451c3e7 100644 GIT binary patch delta 275 zcmeCNylbWqQ9+DRx}dZ~L8&Ao zvseL$3W`$w3sUofOA?c_mAEF0avN+;W@KVyVK!u_pPb2L$SDwNa@?m+j>9Y!aJ8*hHBow{u8NPT-K+ynut9X|fcXvMhUY zX;E>0Q85PtYg%GXaViVYRSFD1z!|{hzuA#Tnu{+#Pa!2WsWe@oK%qo|YjU2L)?=v<6_C7O#5GBGn7nHx;L#VRGnz+If2n3I~8m|T)y#KHguAM7W8VRf7Q zh)a3$7EbZa{cNI4laFzTPM*!7wD~p%JCgu=a%oXFTU3$>NTrDSF?(%jU%l4AY% X&F{pLSa=v17<(93FbFUj*fRhCJMCd= diff --git a/modules/lexicon/web/elm-package.json b/modules/lexicon/web/elm-package.json new file mode 100644 index 00000000..f5ba1c5a --- /dev/null +++ b/modules/lexicon/web/elm-package.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "summary": "helpful summary of your project, less than 80 characters", + "repository": "https://github.com/user/project.git", + "license": "BSD3", + "source-directories": [ + "." + ], + "exposed-modules": [], + "dependencies": { + "elm-lang/core": "5.1.1 <= v < 6.0.0", + "elm-lang/html": "2.0.0 <= v < 3.0.0" + }, + "elm-version": "0.18.0 <= v < 0.19.0" +} diff --git a/modules/lexicon/web/fontawesome/css/font-awesome.css b/modules/lexicon/web/fontawesome/css/font-awesome.css new file mode 100644 index 00000000..ee906a81 --- /dev/null +++ b/modules/lexicon/web/fontawesome/css/font-awesome.css @@ -0,0 +1,2337 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #ffffff; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: "\f000"; +} +.fa-music:before { + content: "\f001"; +} +.fa-search:before { + content: "\f002"; +} +.fa-envelope-o:before { + content: "\f003"; +} +.fa-heart:before { + content: "\f004"; +} +.fa-star:before { + content: "\f005"; +} +.fa-star-o:before { + content: "\f006"; +} +.fa-user:before { + content: "\f007"; +} +.fa-film:before { + content: "\f008"; +} +.fa-th-large:before { + content: "\f009"; +} +.fa-th:before { + content: "\f00a"; +} +.fa-th-list:before { + content: "\f00b"; +} +.fa-check:before { + content: "\f00c"; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} +.fa-search-plus:before { + content: "\f00e"; +} +.fa-search-minus:before { + content: "\f010"; +} +.fa-power-off:before { + content: "\f011"; +} +.fa-signal:before { + content: "\f012"; +} +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} +.fa-trash-o:before { + content: "\f014"; +} +.fa-home:before { + content: "\f015"; +} +.fa-file-o:before { + content: "\f016"; +} +.fa-clock-o:before { + content: "\f017"; +} +.fa-road:before { + content: "\f018"; +} +.fa-download:before { + content: "\f019"; +} +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} +.fa-inbox:before { + content: "\f01c"; +} +.fa-play-circle-o:before { + content: "\f01d"; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} +.fa-refresh:before { + content: "\f021"; +} +.fa-list-alt:before { + content: "\f022"; +} +.fa-lock:before { + content: "\f023"; +} +.fa-flag:before { + content: "\f024"; +} +.fa-headphones:before { + content: "\f025"; +} +.fa-volume-off:before { + content: "\f026"; +} +.fa-volume-down:before { + content: "\f027"; +} +.fa-volume-up:before { + content: "\f028"; +} +.fa-qrcode:before { + content: "\f029"; +} +.fa-barcode:before { + content: "\f02a"; +} +.fa-tag:before { + content: "\f02b"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-bookmark:before { + content: "\f02e"; +} +.fa-print:before { + content: "\f02f"; +} +.fa-camera:before { + content: "\f030"; +} +.fa-font:before { + content: "\f031"; +} +.fa-bold:before { + content: "\f032"; +} +.fa-italic:before { + content: "\f033"; +} +.fa-text-height:before { + content: "\f034"; +} +.fa-text-width:before { + content: "\f035"; +} +.fa-align-left:before { + content: "\f036"; +} +.fa-align-center:before { + content: "\f037"; +} +.fa-align-right:before { + content: "\f038"; +} +.fa-align-justify:before { + content: "\f039"; +} +.fa-list:before { + content: "\f03a"; +} +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} +.fa-indent:before { + content: "\f03c"; +} +.fa-video-camera:before { + content: "\f03d"; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} +.fa-pencil:before { + content: "\f040"; +} +.fa-map-marker:before { + content: "\f041"; +} +.fa-adjust:before { + content: "\f042"; +} +.fa-tint:before { + content: "\f043"; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} +.fa-share-square-o:before { + content: "\f045"; +} +.fa-check-square-o:before { + content: "\f046"; +} +.fa-arrows:before { + content: "\f047"; +} +.fa-step-backward:before { + content: "\f048"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-times-circle-o:before { + content: "\f05c"; +} +.fa-check-circle-o:before { + content: "\f05d"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-calendar:before { + content: "\f073"; +} +.fa-random:before { + content: "\f074"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-retweet:before { + content: "\f079"; +} +.fa-shopping-cart:before { + content: "\f07a"; +} +.fa-folder:before { + content: "\f07b"; +} +.fa-folder-open:before { + content: "\f07c"; +} +.fa-arrows-v:before { + content: "\f07d"; +} +.fa-arrows-h:before { + content: "\f07e"; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} +.fa-twitter-square:before { + content: "\f081"; +} +.fa-facebook-square:before { + content: "\f082"; +} +.fa-camera-retro:before { + content: "\f083"; +} +.fa-key:before { + content: "\f084"; +} +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} +.fa-comments:before { + content: "\f086"; +} +.fa-thumbs-o-up:before { + content: "\f087"; +} +.fa-thumbs-o-down:before { + content: "\f088"; +} +.fa-star-half:before { + content: "\f089"; +} +.fa-heart-o:before { + content: "\f08a"; +} +.fa-sign-out:before { + content: "\f08b"; +} +.fa-linkedin-square:before { + content: "\f08c"; +} +.fa-thumb-tack:before { + content: "\f08d"; +} +.fa-external-link:before { + content: "\f08e"; +} +.fa-sign-in:before { + content: "\f090"; +} +.fa-trophy:before { + content: "\f091"; +} +.fa-github-square:before { + content: "\f092"; +} +.fa-upload:before { + content: "\f093"; +} +.fa-lemon-o:before { + content: "\f094"; +} +.fa-phone:before { + content: "\f095"; +} +.fa-square-o:before { + content: "\f096"; +} +.fa-bookmark-o:before { + content: "\f097"; +} +.fa-phone-square:before { + content: "\f098"; +} +.fa-twitter:before { + content: "\f099"; +} +.fa-facebook-f:before, +.fa-facebook:before { + content: "\f09a"; +} +.fa-github:before { + content: "\f09b"; +} +.fa-unlock:before { + content: "\f09c"; +} +.fa-credit-card:before { + content: "\f09d"; +} +.fa-feed:before, +.fa-rss:before { + content: "\f09e"; +} +.fa-hdd-o:before { + content: "\f0a0"; +} +.fa-bullhorn:before { + content: "\f0a1"; +} +.fa-bell:before { + content: "\f0f3"; +} +.fa-certificate:before { + content: "\f0a3"; +} +.fa-hand-o-right:before { + content: "\f0a4"; +} +.fa-hand-o-left:before { + content: "\f0a5"; +} +.fa-hand-o-up:before { + content: "\f0a6"; +} +.fa-hand-o-down:before { + content: "\f0a7"; +} +.fa-arrow-circle-left:before { + content: "\f0a8"; +} +.fa-arrow-circle-right:before { + content: "\f0a9"; +} +.fa-arrow-circle-up:before { + content: "\f0aa"; +} +.fa-arrow-circle-down:before { + content: "\f0ab"; +} +.fa-globe:before { + content: "\f0ac"; +} +.fa-wrench:before { + content: "\f0ad"; +} +.fa-tasks:before { + content: "\f0ae"; +} +.fa-filter:before { + content: "\f0b0"; +} +.fa-briefcase:before { + content: "\f0b1"; +} +.fa-arrows-alt:before { + content: "\f0b2"; +} +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} +.fa-cloud:before { + content: "\f0c2"; +} +.fa-flask:before { + content: "\f0c3"; +} +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} +.fa-paperclip:before { + content: "\f0c6"; +} +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} +.fa-square:before { + content: "\f0c8"; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} +.fa-list-ul:before { + content: "\f0ca"; +} +.fa-list-ol:before { + content: "\f0cb"; +} +.fa-strikethrough:before { + content: "\f0cc"; +} +.fa-underline:before { + content: "\f0cd"; +} +.fa-table:before { + content: "\f0ce"; +} +.fa-magic:before { + content: "\f0d0"; +} +.fa-truck:before { + content: "\f0d1"; +} +.fa-pinterest:before { + content: "\f0d2"; +} +.fa-pinterest-square:before { + content: "\f0d3"; +} +.fa-google-plus-square:before { + content: "\f0d4"; +} +.fa-google-plus:before { + content: "\f0d5"; +} +.fa-money:before { + content: "\f0d6"; +} +.fa-caret-down:before { + content: "\f0d7"; +} +.fa-caret-up:before { + content: "\f0d8"; +} +.fa-caret-left:before { + content: "\f0d9"; +} +.fa-caret-right:before { + content: "\f0da"; +} +.fa-columns:before { + content: "\f0db"; +} +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} +.fa-envelope:before { + content: "\f0e0"; +} +.fa-linkedin:before { + content: "\f0e1"; +} +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} +.fa-comment-o:before { + content: "\f0e5"; +} +.fa-comments-o:before { + content: "\f0e6"; +} +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} +.fa-sitemap:before { + content: "\f0e8"; +} +.fa-umbrella:before { + content: "\f0e9"; +} +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} +.fa-lightbulb-o:before { + content: "\f0eb"; +} +.fa-exchange:before { + content: "\f0ec"; +} +.fa-cloud-download:before { + content: "\f0ed"; +} +.fa-cloud-upload:before { + content: "\f0ee"; +} +.fa-user-md:before { + content: "\f0f0"; +} +.fa-stethoscope:before { + content: "\f0f1"; +} +.fa-suitcase:before { + content: "\f0f2"; +} +.fa-bell-o:before { + content: "\f0a2"; +} +.fa-coffee:before { + content: "\f0f4"; +} +.fa-cutlery:before { + content: "\f0f5"; +} +.fa-file-text-o:before { + content: "\f0f6"; +} +.fa-building-o:before { + content: "\f0f7"; +} +.fa-hospital-o:before { + content: "\f0f8"; +} +.fa-ambulance:before { + content: "\f0f9"; +} +.fa-medkit:before { + content: "\f0fa"; +} +.fa-fighter-jet:before { + content: "\f0fb"; +} +.fa-beer:before { + content: "\f0fc"; +} +.fa-h-square:before { + content: "\f0fd"; +} +.fa-plus-square:before { + content: "\f0fe"; +} +.fa-angle-double-left:before { + content: "\f100"; +} +.fa-angle-double-right:before { + content: "\f101"; +} +.fa-angle-double-up:before { + content: "\f102"; +} +.fa-angle-double-down:before { + content: "\f103"; +} +.fa-angle-left:before { + content: "\f104"; +} +.fa-angle-right:before { + content: "\f105"; +} +.fa-angle-up:before { + content: "\f106"; +} +.fa-angle-down:before { + content: "\f107"; +} +.fa-desktop:before { + content: "\f108"; +} +.fa-laptop:before { + content: "\f109"; +} +.fa-tablet:before { + content: "\f10a"; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} +.fa-circle-o:before { + content: "\f10c"; +} +.fa-quote-left:before { + content: "\f10d"; +} +.fa-quote-right:before { + content: "\f10e"; +} +.fa-spinner:before { + content: "\f110"; +} +.fa-circle:before { + content: "\f111"; +} +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} +.fa-github-alt:before { + content: "\f113"; +} +.fa-folder-o:before { + content: "\f114"; +} +.fa-folder-open-o:before { + content: "\f115"; +} +.fa-smile-o:before { + content: "\f118"; +} +.fa-frown-o:before { + content: "\f119"; +} +.fa-meh-o:before { + content: "\f11a"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-keyboard-o:before { + content: "\f11c"; +} +.fa-flag-o:before { + content: "\f11d"; +} +.fa-flag-checkered:before { + content: "\f11e"; +} +.fa-terminal:before { + content: "\f120"; +} +.fa-code:before { + content: "\f121"; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} +.fa-location-arrow:before { + content: "\f124"; +} +.fa-crop:before { + content: "\f125"; +} +.fa-code-fork:before { + content: "\f126"; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} +.fa-question:before { + content: "\f128"; +} +.fa-info:before { + content: "\f129"; +} +.fa-exclamation:before { + content: "\f12a"; +} +.fa-superscript:before { + content: "\f12b"; +} +.fa-subscript:before { + content: "\f12c"; +} +.fa-eraser:before { + content: "\f12d"; +} +.fa-puzzle-piece:before { + content: "\f12e"; +} +.fa-microphone:before { + content: "\f130"; +} +.fa-microphone-slash:before { + content: "\f131"; +} +.fa-shield:before { + content: "\f132"; +} +.fa-calendar-o:before { + content: "\f133"; +} +.fa-fire-extinguisher:before { + content: "\f134"; +} +.fa-rocket:before { + content: "\f135"; +} +.fa-maxcdn:before { + content: "\f136"; +} +.fa-chevron-circle-left:before { + content: "\f137"; +} +.fa-chevron-circle-right:before { + content: "\f138"; +} +.fa-chevron-circle-up:before { + content: "\f139"; +} +.fa-chevron-circle-down:before { + content: "\f13a"; +} +.fa-html5:before { + content: "\f13b"; +} +.fa-css3:before { + content: "\f13c"; +} +.fa-anchor:before { + content: "\f13d"; +} +.fa-unlock-alt:before { + content: "\f13e"; +} +.fa-bullseye:before { + content: "\f140"; +} +.fa-ellipsis-h:before { + content: "\f141"; +} +.fa-ellipsis-v:before { + content: "\f142"; +} +.fa-rss-square:before { + content: "\f143"; +} +.fa-play-circle:before { + content: "\f144"; +} +.fa-ticket:before { + content: "\f145"; +} +.fa-minus-square:before { + content: "\f146"; +} +.fa-minus-square-o:before { + content: "\f147"; +} +.fa-level-up:before { + content: "\f148"; +} +.fa-level-down:before { + content: "\f149"; +} +.fa-check-square:before { + content: "\f14a"; +} +.fa-pencil-square:before { + content: "\f14b"; +} +.fa-external-link-square:before { + content: "\f14c"; +} +.fa-share-square:before { + content: "\f14d"; +} +.fa-compass:before { + content: "\f14e"; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} +.fa-gbp:before { + content: "\f154"; +} +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} +.fa-file:before { + content: "\f15b"; +} +.fa-file-text:before { + content: "\f15c"; +} +.fa-sort-alpha-asc:before { + content: "\f15d"; +} +.fa-sort-alpha-desc:before { + content: "\f15e"; +} +.fa-sort-amount-asc:before { + content: "\f160"; +} +.fa-sort-amount-desc:before { + content: "\f161"; +} +.fa-sort-numeric-asc:before { + content: "\f162"; +} +.fa-sort-numeric-desc:before { + content: "\f163"; +} +.fa-thumbs-up:before { + content: "\f164"; +} +.fa-thumbs-down:before { + content: "\f165"; +} +.fa-youtube-square:before { + content: "\f166"; +} +.fa-youtube:before { + content: "\f167"; +} +.fa-xing:before { + content: "\f168"; +} +.fa-xing-square:before { + content: "\f169"; +} +.fa-youtube-play:before { + content: "\f16a"; +} +.fa-dropbox:before { + content: "\f16b"; +} +.fa-stack-overflow:before { + content: "\f16c"; +} +.fa-instagram:before { + content: "\f16d"; +} +.fa-flickr:before { + content: "\f16e"; +} +.fa-adn:before { + content: "\f170"; +} +.fa-bitbucket:before { + content: "\f171"; +} +.fa-bitbucket-square:before { + content: "\f172"; +} +.fa-tumblr:before { + content: "\f173"; +} +.fa-tumblr-square:before { + content: "\f174"; +} +.fa-long-arrow-down:before { + content: "\f175"; +} +.fa-long-arrow-up:before { + content: "\f176"; +} +.fa-long-arrow-left:before { + content: "\f177"; +} +.fa-long-arrow-right:before { + content: "\f178"; +} +.fa-apple:before { + content: "\f179"; +} +.fa-windows:before { + content: "\f17a"; +} +.fa-android:before { + content: "\f17b"; +} +.fa-linux:before { + content: "\f17c"; +} +.fa-dribbble:before { + content: "\f17d"; +} +.fa-skype:before { + content: "\f17e"; +} +.fa-foursquare:before { + content: "\f180"; +} +.fa-trello:before { + content: "\f181"; +} +.fa-female:before { + content: "\f182"; +} +.fa-male:before { + content: "\f183"; +} +.fa-gittip:before, +.fa-gratipay:before { + content: "\f184"; +} +.fa-sun-o:before { + content: "\f185"; +} +.fa-moon-o:before { + content: "\f186"; +} +.fa-archive:before { + content: "\f187"; +} +.fa-bug:before { + content: "\f188"; +} +.fa-vk:before { + content: "\f189"; +} +.fa-weibo:before { + content: "\f18a"; +} +.fa-renren:before { + content: "\f18b"; +} +.fa-pagelines:before { + content: "\f18c"; +} +.fa-stack-exchange:before { + content: "\f18d"; +} +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} +.fa-arrow-circle-o-left:before { + content: "\f190"; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} +.fa-dot-circle-o:before { + content: "\f192"; +} +.fa-wheelchair:before { + content: "\f193"; +} +.fa-vimeo-square:before { + content: "\f194"; +} +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} +.fa-plus-square-o:before { + content: "\f196"; +} +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-pied-piper-pp:before { + content: "\f1a7"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-spoon:before { + content: "\f1b1"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa-file-word-o:before { + content: "\f1c2"; +} +.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} +.fa-file-code-o:before { + content: "\f1c9"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: "\f1d0"; +} +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-circle-thin:before { + content: "\f1db"; +} +.fa-header:before { + content: "\f1dc"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-sliders:before { + content: "\f1de"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bell-slash-o:before { + content: "\f1f7"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-eyedropper:before { + content: "\f1fb"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-area-chart:before { + content: "\f1fe"; +} +.fa-pie-chart:before { + content: "\f200"; +} +.fa-line-chart:before { + content: "\f201"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-cc:before { + content: "\f20a"; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} +.fa-meanpath:before { + content: "\f20c"; +} +.fa-buysellads:before { + content: "\f20d"; +} +.fa-connectdevelop:before { + content: "\f20e"; +} +.fa-dashcube:before { + content: "\f210"; +} +.fa-forumbee:before { + content: "\f211"; +} +.fa-leanpub:before { + content: "\f212"; +} +.fa-sellsy:before { + content: "\f213"; +} +.fa-shirtsinbulk:before { + content: "\f214"; +} +.fa-simplybuilt:before { + content: "\f215"; +} +.fa-skyatlas:before { + content: "\f216"; +} +.fa-cart-plus:before { + content: "\f217"; +} +.fa-cart-arrow-down:before { + content: "\f218"; +} +.fa-diamond:before { + content: "\f219"; +} +.fa-ship:before { + content: "\f21a"; +} +.fa-user-secret:before { + content: "\f21b"; +} +.fa-motorcycle:before { + content: "\f21c"; +} +.fa-street-view:before { + content: "\f21d"; +} +.fa-heartbeat:before { + content: "\f21e"; +} +.fa-venus:before { + content: "\f221"; +} +.fa-mars:before { + content: "\f222"; +} +.fa-mercury:before { + content: "\f223"; +} +.fa-intersex:before, +.fa-transgender:before { + content: "\f224"; +} +.fa-transgender-alt:before { + content: "\f225"; +} +.fa-venus-double:before { + content: "\f226"; +} +.fa-mars-double:before { + content: "\f227"; +} +.fa-venus-mars:before { + content: "\f228"; +} +.fa-mars-stroke:before { + content: "\f229"; +} +.fa-mars-stroke-v:before { + content: "\f22a"; +} +.fa-mars-stroke-h:before { + content: "\f22b"; +} +.fa-neuter:before { + content: "\f22c"; +} +.fa-genderless:before { + content: "\f22d"; +} +.fa-facebook-official:before { + content: "\f230"; +} +.fa-pinterest-p:before { + content: "\f231"; +} +.fa-whatsapp:before { + content: "\f232"; +} +.fa-server:before { + content: "\f233"; +} +.fa-user-plus:before { + content: "\f234"; +} +.fa-user-times:before { + content: "\f235"; +} +.fa-hotel:before, +.fa-bed:before { + content: "\f236"; +} +.fa-viacoin:before { + content: "\f237"; +} +.fa-train:before { + content: "\f238"; +} +.fa-subway:before { + content: "\f239"; +} +.fa-medium:before { + content: "\f23a"; +} +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b"; +} +.fa-optin-monster:before { + content: "\f23c"; +} +.fa-opencart:before { + content: "\f23d"; +} +.fa-expeditedssl:before { + content: "\f23e"; +} +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: "\f240"; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241"; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242"; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243"; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244"; +} +.fa-mouse-pointer:before { + content: "\f245"; +} +.fa-i-cursor:before { + content: "\f246"; +} +.fa-object-group:before { + content: "\f247"; +} +.fa-object-ungroup:before { + content: "\f248"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-sticky-note-o:before { + content: "\f24a"; +} +.fa-cc-jcb:before { + content: "\f24b"; +} +.fa-cc-diners-club:before { + content: "\f24c"; +} +.fa-clone:before { + content: "\f24d"; +} +.fa-balance-scale:before { + content: "\f24e"; +} +.fa-hourglass-o:before { + content: "\f250"; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251"; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252"; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253"; +} +.fa-hourglass:before { + content: "\f254"; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255"; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256"; +} +.fa-hand-scissors-o:before { + content: "\f257"; +} +.fa-hand-lizard-o:before { + content: "\f258"; +} +.fa-hand-spock-o:before { + content: "\f259"; +} +.fa-hand-pointer-o:before { + content: "\f25a"; +} +.fa-hand-peace-o:before { + content: "\f25b"; +} +.fa-trademark:before { + content: "\f25c"; +} +.fa-registered:before { + content: "\f25d"; +} +.fa-creative-commons:before { + content: "\f25e"; +} +.fa-gg:before { + content: "\f260"; +} +.fa-gg-circle:before { + content: "\f261"; +} +.fa-tripadvisor:before { + content: "\f262"; +} +.fa-odnoklassniki:before { + content: "\f263"; +} +.fa-odnoklassniki-square:before { + content: "\f264"; +} +.fa-get-pocket:before { + content: "\f265"; +} +.fa-wikipedia-w:before { + content: "\f266"; +} +.fa-safari:before { + content: "\f267"; +} +.fa-chrome:before { + content: "\f268"; +} +.fa-firefox:before { + content: "\f269"; +} +.fa-opera:before { + content: "\f26a"; +} +.fa-internet-explorer:before { + content: "\f26b"; +} +.fa-tv:before, +.fa-television:before { + content: "\f26c"; +} +.fa-contao:before { + content: "\f26d"; +} +.fa-500px:before { + content: "\f26e"; +} +.fa-amazon:before { + content: "\f270"; +} +.fa-calendar-plus-o:before { + content: "\f271"; +} +.fa-calendar-minus-o:before { + content: "\f272"; +} +.fa-calendar-times-o:before { + content: "\f273"; +} +.fa-calendar-check-o:before { + content: "\f274"; +} +.fa-industry:before { + content: "\f275"; +} +.fa-map-pin:before { + content: "\f276"; +} +.fa-map-signs:before { + content: "\f277"; +} +.fa-map-o:before { + content: "\f278"; +} +.fa-map:before { + content: "\f279"; +} +.fa-commenting:before { + content: "\f27a"; +} +.fa-commenting-o:before { + content: "\f27b"; +} +.fa-houzz:before { + content: "\f27c"; +} +.fa-vimeo:before { + content: "\f27d"; +} +.fa-black-tie:before { + content: "\f27e"; +} +.fa-fonticons:before { + content: "\f280"; +} +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-credit-card-alt:before { + content: "\f283"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-pause-circle-o:before { + content: "\f28c"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stop-circle-o:before { + content: "\f28e"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-percent:before { + content: "\f295"; +} +.fa-gitlab:before { + content: "\f296"; +} +.fa-wpbeginner:before { + content: "\f297"; +} +.fa-wpforms:before { + content: "\f298"; +} +.fa-envira:before { + content: "\f299"; +} +.fa-universal-access:before { + content: "\f29a"; +} +.fa-wheelchair-alt:before { + content: "\f29b"; +} +.fa-question-circle-o:before { + content: "\f29c"; +} +.fa-blind:before { + content: "\f29d"; +} +.fa-audio-description:before { + content: "\f29e"; +} +.fa-volume-control-phone:before { + content: "\f2a0"; +} +.fa-braille:before { + content: "\f2a1"; +} +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: "\f2a4"; +} +.fa-glide:before { + content: "\f2a5"; +} +.fa-glide-g:before { + content: "\f2a6"; +} +.fa-signing:before, +.fa-sign-language:before { + content: "\f2a7"; +} +.fa-low-vision:before { + content: "\f2a8"; +} +.fa-viadeo:before { + content: "\f2a9"; +} +.fa-viadeo-square:before { + content: "\f2aa"; +} +.fa-snapchat:before { + content: "\f2ab"; +} +.fa-snapchat-ghost:before { + content: "\f2ac"; +} +.fa-snapchat-square:before { + content: "\f2ad"; +} +.fa-pied-piper:before { + content: "\f2ae"; +} +.fa-first-order:before { + content: "\f2b0"; +} +.fa-yoast:before { + content: "\f2b1"; +} +.fa-themeisle:before { + content: "\f2b2"; +} +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: "\f2b3"; +} +.fa-fa:before, +.fa-font-awesome:before { + content: "\f2b4"; +} +.fa-handshake-o:before { + content: "\f2b5"; +} +.fa-envelope-open:before { + content: "\f2b6"; +} +.fa-envelope-open-o:before { + content: "\f2b7"; +} +.fa-linode:before { + content: "\f2b8"; +} +.fa-address-book:before { + content: "\f2b9"; +} +.fa-address-book-o:before { + content: "\f2ba"; +} +.fa-vcard:before, +.fa-address-card:before { + content: "\f2bb"; +} +.fa-vcard-o:before, +.fa-address-card-o:before { + content: "\f2bc"; +} +.fa-user-circle:before { + content: "\f2bd"; +} +.fa-user-circle-o:before { + content: "\f2be"; +} +.fa-user-o:before { + content: "\f2c0"; +} +.fa-id-badge:before { + content: "\f2c1"; +} +.fa-drivers-license:before, +.fa-id-card:before { + content: "\f2c2"; +} +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: "\f2c3"; +} +.fa-quora:before { + content: "\f2c4"; +} +.fa-free-code-camp:before { + content: "\f2c5"; +} +.fa-telegram:before { + content: "\f2c6"; +} +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: "\f2c7"; +} +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: "\f2c8"; +} +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: "\f2c9"; +} +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: "\f2ca"; +} +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: "\f2cb"; +} +.fa-shower:before { + content: "\f2cc"; +} +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: "\f2cd"; +} +.fa-podcast:before { + content: "\f2ce"; +} +.fa-window-maximize:before { + content: "\f2d0"; +} +.fa-window-minimize:before { + content: "\f2d1"; +} +.fa-window-restore:before { + content: "\f2d2"; +} +.fa-times-rectangle:before, +.fa-window-close:before { + content: "\f2d3"; +} +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: "\f2d4"; +} +.fa-bandcamp:before { + content: "\f2d5"; +} +.fa-grav:before { + content: "\f2d6"; +} +.fa-etsy:before { + content: "\f2d7"; +} +.fa-imdb:before { + content: "\f2d8"; +} +.fa-ravelry:before { + content: "\f2d9"; +} +.fa-eercast:before { + content: "\f2da"; +} +.fa-microchip:before { + content: "\f2db"; +} +.fa-snowflake-o:before { + content: "\f2dc"; +} +.fa-superpowers:before { + content: "\f2dd"; +} +.fa-wpexplorer:before { + content: "\f2de"; +} +.fa-meetup:before { + content: "\f2e0"; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} diff --git a/modules/lexicon/web/fontawesome/css/font-awesome.min.css b/modules/lexicon/web/fontawesome/css/font-awesome.min.css new file mode 100644 index 00000000..540440ce --- /dev/null +++ b/modules/lexicon/web/fontawesome/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/modules/lexicon/web/fontawesome/fonts/FontAwesome.otf b/modules/lexicon/web/fontawesome/fonts/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..401ec0f36e4f73b8efa40bd6f604fe80d286db70 GIT binary patch literal 134808 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 literal 0 HcmV?d00001 diff --git a/modules/lexicon/web/fontawesome/fonts/fontawesome-webfont.eot b/modules/lexicon/web/fontawesome/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..e9f60ca953f93e35eab4108bd414bc02ddcf3928 GIT binary patch literal 165742 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 G*yFsbY~cLNXLP73aA74Mq6M9f^&YV`isWW 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

5q!RY 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 + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/lexicon/web/fontawesome/fonts/fontawesome-webfont.ttf b/modules/lexicon/web/fontawesome/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..35acda2fa1196aad98c2adf4378a7611dd713aa3 GIT binary patch literal 165548 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 z zq1_(l4SX+ekaM;bY|YgEqv2RAEE}e-Im8<@oEZ?Z81Y?3(z-@nRbq?!xD9Hyn|7Gx z-NUw`yOor_DJLC1aqkf2(!i=2$ULNfg|s8bV^xB!_rY+bHA;KsWR@aB=!7n&LJq(} z!pqD3Wkvo-Goy zx1edGgnc}u5V8cw&nvWyWU+wXqwinB#x7(uc>H44lXZQkk*w_q#i2O!s_A?a*?`Rx zoZW6Qtj)L1T^4kDeD7;%G5dS816OPqAqPx~(_-jZ`bo-MR_kd&sJv{A^ zs@18qv!kD;U z5Evv$C*bD~m z+x@>Oo>;7%QCxfp-rOkNgx4j-(o*e5`6lW^X^{qpQo~SMWD`Gxyv6)+k)c@o6j`Yd z8c&XSiYbcmoCKe+82}>^CPM+?p@o&i(J*j0zsk}!P?!W%T5`ppk%)?&GxA`%4>0VX zKu?YB6Z)hFtj@u-icb&t5A1}BX!;~SqG5ARpVB>FEWPLW+C+QOf~G-Jj0r`0D6|0w zQUs5sE6PYc)!HWi))NeRvSZB3kWIW|R^A%RfamB2jCbVX(Fn>y%#b1W%}W%qc)XVrwuvM!>Qur!Ooy2`n@?qMe3$`F2vx z9<=L}wP7@diWhCYTD?x)LZ>F6F?z8naL18P%1T9&P_d4p;u=(XW1LO3-< z`{|5@&Y=}7sx3t1Zs zr9ZBmp}YpHLq7lwu?CXL8$Q65$Q29AlDCBJSxu5;p0({^4skD z+4se#9)xg8qnEh|WnPdgQ&+te7@`9WlzAwMit$Julp+d80n+VM1JxwqS5H6*MPKA` zlJ*Z77B;K~;4JkO5eq(@D}tezez*w6g3ZSn?J1d9Z~&MKbf=b6F9;8H22TxRl%y1r z<-6(lJiLAw>r^-=F-AIEd1y|Aq2MggNo&>7Ln)S~iAF1;-4`A*9KlL*vleLO3vhEd(@RsIWp~O@>N4p91SI zb~+*jP?8B~MwmI0W$>ksF8DC*2y8K0o#te?D$z8nrfK{|B1L^TR5hlugr|o=-;>Yn zmL6Yt=NZ2%cAsysPA)D^gkz2Vvh|Z9RJdoH$L$+6a^|>UO=3fBBH0UidA&_JQz9K~ zuo1Z_(cB7CiQ}4loOL3DsdC<+wYysw@&UMl21+LY-(z=6j8fu5%ZQg-z6Bor^M}LX z9hxH}aVC%rodtoGcTh)zEd=yDfCu5mE)qIjw~K+zwn&5c!L-N+E=kwxVEewN#vvx2WGCf^;C9^mmTlYc*kz$NUdQ=gDzLmf z!LXG7{N$Mi3n}?5L&f9TlCzzrgGR*6>MhWBR=lS)qP$&OMAQ2 z`$23{zM%a@9EPdjV|Y1zVVGf?mINO)i-q6;_Ev|n_JQ^Zy&BnUgV>NbY9xba1DlY@ zrg$_Kn?+^_+4V4^xS94tX2oLKAEiuU0<2S#v$WSDt0P^A+d-+M?XlR**u_Xdre&aY zNi~zJk9aLQUqaFZxCNRmu*wnxB_u*M6V0xVCtBhtpGUK)#Dob6DWm-n^~Vy)m~?Yg zO0^+v~`x6Vqtjl4I5;=^o2jyOb~m+ER;lNwO$iN ziH4vk>E`OTRx~v#B|ifef|ceH)%hgqOy|#f=Q|VlN6i{!0CRndN~x8wS6Ppqq7NSH zO5hX{k5T{4ib@&8t)u=V9nY+2RC^75jU%TRix}FDTB%>t;5jpNRv;(KB|%{AI7Jc= zd%t9-AjNUAs?8m40SLOhrjbC_yZoznU$(rnT2);Rr`2e6$k!zwlz!d|sZ3%x@$Nw? zVn?i%t!J+9SF@^ zO&TGun2&?VIygfH5ePk|!e&G3Zm-GUP(imiWzZu$9JU)Wot`}*RHV<-)vUhc6J6{w&PQIaSZ_N<(d>`C$yo#Ly&0Sr5gCkDY(4f@fY5!fLe57sH54#FF4 zg&hda`KjtJ8cTzz;DwFa#{$!}j~g$9zqFBC@To^}i#`b~xhU;p{x{^f1krbEFNqV^ zEq5c!C5XT0o_q{%p&0F@!I;9ejbs#P4q?R!i$?vl3~|GSyq4@q#3=wgsz+zkrIB<< z=HMWEBz?z??GvvT54YsDSnRLcEf!n>^0eKf4(CIT{qs4y$7_4e=JoIkq%~H9$z-r* zZ?`xgwL+DNAJE`VB;S+w#NvBT{3;}{CD&@Ig*Ka2Acx)2Qx zL)V#$n@%vf1Zzms4Th~fS|(DKDT`?BKfX3tkCBvKZLg^hUh|_Gz8?%#d(ANnY`5U1 zo;qjq=5tn!OQ*-JqA&iG-Tg#6Ka|O64eceRrSgggD%%QBX$t=6?hPEK2|lL1{?|>I^Toc>rQU7a_`RSM^EPVl{_&OG-P;|z0?v{3o#pkl zC6Y;&J7;#5N#+H2J-4RqiSK^rj<_Z6t%?`N$A_FUESt{TcayIew5oWi=jxT*aPIP6 z?MG`?k5p%-x>D73irru{R?lu7<54DCT9Q}%=4%@wZij4+M=fzzz`SJ3I%*#AikLUh zn>k=5%IKUP4TrvZ!A{&Oh;BR}6r3t3cpzS(&|cEe&e{MQby|1#X`?17e9?|=i`sPG zL|OOsh`j@PD4sc6&Y3rT`r?-EH0QPR*IobE@_fkB8*(886ZkjkcO{K8Sz$H`^D-8P zjKG9G9A`O!>|!ivAeteRVIcyIGa#O<6I$^O7}9&*8mHd@Gw!WDU*@;*L;SYvlV#p( zzFSsPw&^UdyxO}%i)W8$@f}|84*mz&i2q@SlzMOd%B!BHOJ<(FYUTR(Ui$DuX>?85 zcdzl5m3hzFr2S@c_20C2x&N)|$<=RhzxI!}NN+yS16X^(_mtqY)g*Q%Fux5}bP3q$ zxQD|TB{+4C1gL>zI>g~-ajKMb{2s_cFhN2(I(q^X!$H(GFxpc6oCV9#maj|OhFZaI z;umX6E*fQVTQ@lyZauuv>%E)5z-?zQZne18V5A}}JEQmCz>7^h0r)!zhinBG6 zMQghGt!Do5h%HmAQl~%m+!pr-&wlrcwW;qw)S$6*f}ZvXd;cHw=xm|y~mHbT3yX>?hoYKfy--h+6w9%@_4ukf0Et^zr-DbPwFdyj0VJHi}4bqRetSNR`DoWd( z(%n5>8MQl+>3SeL-DB@IaM{NDwd{{v_HMIO)PKO}v{{##c@ihB0w$aaPTSP4^>n3Z zC8Il%(3dCLLX$-|SwWx1u7KVztXpzNhrOZQ78c$jd{B9lqsNHLr*9h;N9$i+vsrM1 zKzLB_gVdMCfxceejpIZat!MbR)GNZ%^n|fEQo?Xtq#Qa_gEWKTFxSL4b{g}kJNd{QcoQ}HUP-A)Rq;U(***IA*V_0B5mr}Xp$q{YSYs-b2q~DHh z?+muRGn~std!VXuT>P9TL_8Km9G{doqRb-W0B&%d> z^3@hs6y5jaEq%P}dmr(8=f}x~^ z*{I{tkBgYk@Td|Z{csd23pziZlPYt2RJW7D_C#&)OONEWyN`I19_cM;`Aa=y_)ldH z^co(O-xWIN0{y|@?wx@Y!MeVg3Ln%4ORu5~Dl6$h>AGSXrK3!pH%cpM?D|6#*6+A# zlsj;J0_~^?DHIceRC~0iMq)SJ&?R&if{fsdIb>y;H@M4AE`z8~dvz)(e}BqUWK^U~ zFy`PX+z*Bmv9VxAN;%CvMk(#kGBEMP;a-GgGZf~r$(ei(%yGqHa2dS3hxdTT!r>La zUrW2dCTZ!SjD_D(?9$SK02e_#ZOxdAhO%hgVhq54U=2$Hm+1^O^nH<>wS|&<)2TtD zN_MN@O>?A@_&l;U)*GY*5F_a~cgQb_3p`#77ax1iRxIx!r0HkDnA2G*{l|*}g_yI% zZdHt2`Hx^MA#VH7@BEN68Y_;sAcCNgCY7S&dcQsp*$+uW7Dm@$Vl7!YA^51bi} z*Vy8uTj{neIhIL|PhditfC1Jeub(uy}w|wV5 zsQz)04y;BY2$7U4$~P{k)b`hZb>gv1RkD)L#g~$*N^1N1GfNMS)4r|pT*V<&KE1M9 zTh}rzSW#Kcci_#(^qf0gTW3&QN&zsW%VAQ+AZ%-3?E)kMdgL)kY~@mC>l?RH28u;Y zt-@_u^5(W>mDdtqoe){#t;3NA7c@{WoY9bYFNoq+sj&ru;Z`x>4ddY0y*`HRtHFEN% z@mFkp=x0C6zDGgA0s|mP^WNEwE4O}S?%DOtce3At%?ThxRp@`zCH6MyzM)dA9C7IP zI}t;YUV(Jcnw$4LoD4H(EM#!{L-Z|&fhNYnBlKcQ$UScR#HH>scYBTf2u|7Fd8q$R zy5Cbt=Pvf^e}m4?VVL@#Pi3z*q-Q0MG8pGTcbS|eeW%R5bRzKsHSH#G(#$9hj9}0O7lXsC zbZ7#UjJM^FcvdKK3MOEl+Pb-93Px}F$ID&jcvZdJ{d(D)x|*`=vi%1hdg(dd-1E>& zoB4U&a${9!xyxoT%$7gFp{M<_q z9oVnk*Dcp$k#jA#7-pZbXd=L8nDhe<*t_*%gj^Vx>(~KyEY~i&(?@R~L_e^txnUyh z64-dU=Lc;eQ}vPX;g{GitTVZben7||wttapene^dB|oSGB~tmAGqE^`1Jxt$4uXUL zz5?7GEqvmLa{#mgN6la^gYO#}`eXyUJ)lFyTO8*iL~P z$A`A_X^V#!SJyU8Dl%J*6&s9;Jl54CiyfA`ExxmjrZ1P8E%rJ7hFCFo6%{5mRa|LY zk^x76W8M0tQBa1Q(&L`|!e zrczv>+#&b2bt zuD1Bfoe>oW0&!ju$-LI)$URptI!inJ^Dz|<@S1hk+!(n2PWfi-AMb5*F03&_^29MB zgJP7yn#Fw4n&Rod*>LlF+qPx5ZT$80;+m*0X5ffa3d-;F72#5un;L$}RfmR5&xbOf(KNeD|gT1x6bw5t;~j}(oMHcSzkCgcpbd>5UN z7e8CV*di9kpyJAo1YyE9XtfV1Q8^?ViwrKgtK$H60 z%~xgAifVV#>j>4SN10>bP9OV9m`EA-H{bzMimEQ_3@VZH%@KZzjDu` zRCG*Ax6B^%%dyLs2Cw{bePFWM9750@SIoZoff4mJvyxIeIjeZ{tYpbmTk4_{wy!_uygk4J;wwSiK&OpZWguG$O082g z^a3rw)F1Q!*)rNy!Sqz9bk0u-kftk^q{FPl4N+eS@0p1= zhaBFdyShSMz97B%x3GE|Sst~8Le6+?q@g6HwE1hJ#X)o^?{1!x-m`LlQ+4%?^IPIo zHATgqrm-s`+6SW3LjHB>=Pp{i<6FE#j+sX(Vl-kJt6sug<4UG9SH_|( zOb(+Vn|4R4lc8pHa-japR|c0ZAN$KOvzss6bKW^uPM$I$8eTr{EMN2N%{Yrl{Z`Y^ zaQ`-S_6omm((Fih26~Bjf^W$wm1J`8N+(=0ET@KFDy;S%{mF@!2&1UMxk>jTk49;@ z*g#0?*iga;P7abx1bh^d3MoAy*XQp{Hl*t(buU@DamDmvcc;5}`ihM!mvm36|GqRu zn*3}UmnOSUai6mM*y&f#XmqyBo>b=dmra`8;%uC8_33-RpM6;x`Rrc0RM~y9>y~ry zVnGanZLDD_lC%6!F%Jzk##j%?nW>JEaJ#U89t`?mGJS_kO5+5U1Gh;Lb3`{w<-DW; z;USPAm%*aQJ)UeYnLVb2V3MJ2vrxAZ@&#?W$vW)7$+L7~7HSzuF&0V95FC4H6Dy<( z!#o7mJKLMHTNn5)Lyn5l4oh2$s~VI~tlIjn09jE~8C#Ooei=J?K;D+-<8Cb>8RPx8 z-~O0ST{mOeXg+qjG~?}E8@JAo-j?OJjgF3nb^K5v>$yq#-Ybd8lM^jdru2WE-*V6W z>sL(7?%-Qu?&?wZNmmqdn?$FXlE!>2BAa^bWfD69lP0?L3kopYkc4>{m#H6t2dLIEE47|jcI$tEuWzwjmRgqBPkzk zM+(?6)=);W6q<2z95fHMDFKxbhPD-r0IjdX_3EH*BFL|t3))c7d~8v;{wU5p8nHUz9I?>l zVfn$bENo_I3JOh1^^ z+un~MSwCyixbj%C?y{G@G7mSZg_cf~&@djVX_vn8;IF&q?ESd=*AJHOJ(!-hbKPlb zYi-r+me!ezr_eCiQ&SetY;BocRokkbwr=ONGzW2U@X=AUvS^E9eM^w~aztd4h$Q&kF;6EJ1O*M7tJfFi}R1 z6X@asDjL5w+#QEKQE5V48#ASm?H7u5j%nDqi)iO@a1@F z*^R+bGpEOs#pRx9CBZQ}#uQa|dCH5EW%a3Xv1;ye-}5|Yh4g~YH5gI1(b#B|6_ZI; zMkxwTjmkKoZIp~AqhXp+k&SSQ)9C=jCWTKCM?(&MUHex;c3Knl(A%3UgJT_BEixIE zQh!;Q(J<0)C`q0-^|UdaGYzFqr^{vZR~Tk?jyY}gf@H+0RHkZ{OID|x;6>6+g)|BK zs6zLY0U>bcbRd6kU;cgkomCZdBSC8$a1H`pcu;XqH=5 z+$oO3i&T_WpcYnVu*lchi>wxt#iE!!bG#kzjIFqb)`s?|OclRAnzUyW5*Py!P@srDXI}&s2lVYf2ZCG`F`H-9;60 zb<=6weckNk=DC&Q6QxU*uJ9FkaT>}qb##eRS8n%qG`G9WrS>Xm+w)!AXSASfd%5fg z#fqxk(5L9@fM};~Gk^Sgb;7|krF-an$kIROPt4HLqq6+EL+62d@~4Hsy9nIU?=Ue4 zJ69;q+5+73nU|TQu}$>#v(M&Vx1RD=6Lu`d?>zHN?P7J&XWwsvwJt|rr?CZu+l>m4 zTi^VLh6Uu2s392u(5DLaM%)Dr$%h3hRB>V7a9XG`B{ZsWgh4IyTO9R~TAR^h^~>ko z(k|Hy#@bP}7OyN92TKE%qNZfyWL32p-BJf1{jj0QU0V`yj=tRospvSewxGxoC=C|N zve$zAMuSaiyY)QTk9!VmwUK&<#b2fxMl_DX|5x$dKH3>6sdYCQ9@c)^A-Rn9vG?s)0)lCR76kgoR>S;B=kl(v zzM}o+G41dh)%9=ezv$7*a9Mrb+S@13nK-B6D!%vy(}5dzbg$`-UUZJKa`_Z{*$rCu zga2G}o3dTHW|>+P_>c8UOm4Vk-ojaTeAg0-+<4#u-{>pGTYz(%ojZ`0e*nHo=)XZS zpp=$zi4|RBMGJDX{Db?>>fq71rX3t$122E;cJ(9elj+kBXs>3?(tq=s*PeL^<(M$8 zUl;u9e6|EP5Us-A>Lzvr+ln|?*}wt;+gUmd>%?@Wl@m%Qm{>Q0JqTcxtB`ROhd6TB z$VY<7t$^N6IC(s*Z@x2?Gi%eB8%(hYaC zKfY5M-9MeR-@5h zZ?V`qr%%FlPQlW5v_Bp^Q?^)S*%Y#Z$|{!Lpju=$s702T z(P}foXu(uuHN!cJRK*W-8=F*QlYB*zT#WI-SmQ_VYEgKw+>wHhm`ECQS`r3VKw`wi zxlcnn26L*U;F-BC9u{Csy#e%+2uD$He5?mc55)ot>1w`?lr$J zsrI^qGB@!5dglADaHlvWto@|S>kF5>#i#hCNXbp*ZkO$*%P-Sjf3Vc+tuFaJ-^|Ou zW8=}1TOlafUitnrTA2D0<3}&zZz^%y5+t2`Tk`vBI93FqU`W!zY;M%AUoN1V1-I2I zPTVFqaw3Pr-`5HcEFWuD?!8Ybw)Y>g7c0tt=soTHiEBxlY;RlQ`iYY-qdd94zWjyD zFcskM^S{_!E?f3mEh9waR7tb6G&yl%GW%e&Sc5i;y@N)U5ZFLcAsma^K?Cg^%d{PO z=SHQq4a|l`AakzEY;A{n6Rn1u`7v~#ufV*6GZ$`Ef)d2%6apsU6^>QJl0@U& zq|wIBlBAgf0j!YaozAgmhAy0uy;AjRA2%(!`#&e>`V` zg`MfSf5gWvJY#?8%&|`Aj0<@aZ;-q#tCx=-zkGE|_C4)TqKjr-SE6po?cX?Z^B%62 zdA!75;$my<*q)n@eB<^dfFGwRaWB25UL#~PNEV>F^c+e2Be*Df(-rIVBJo2o*an$1*1 zD$bsUC-BvObdmkKlhW<59G9{d=@bAu8a05VWCO=@_~oP=G3SmO91AK_F`#5 zwXLRVay<~JYok|rdQM-~C?dcq?Yfz_*)fIte zkE_g4CeLj1oza=9zH!s!4k%H@-n{6aB&Z;Cs8MK?#Jxl`?wD>^{fTL&eQHAQFtJ_% zNEfs|gGYh+39S{-@#MrPA!XpgWD;NLlne0-Vey1n0?=ww18{L)7G|$1kjI(sjs z@|alUMcx*04*>=BWHv_W-t=rCAy0q6&*;kW&ImkwWTe$lzHJRZJ{-{ zl-mK6+j}V`wobm^^B&2Tl?1r=yWbz;v-F<#y!(CT?-4K(($wWtmD631MN9?trDG zMI7;9U7|UsC;urLP%eH1h%U`LJxT3oM4=gpi%X@lpVR9N6Q(uhJ00RWXeL-Z*V(O8 zsIyyVUvf=RXLBKX`!peifjIMvMs1YT0n$0*B;K^yZf&HN8$N%e=EgOejqihLPBT|< zs)z`nNU}BOdT7wYLy}R10eXUksn9o)jG)&=qteGc|XNI~h5R6UBfaPeIHbA32@*>orZsCB4`Q79}A=z@najfekt-_eTg7a}Mcas^D1ELlN6(y28c{ur|tmueFvIDOQxXs1)_lKrA`L2-^^VNC#miFvO%l6w5uK2bFyu?hyNLCjTCNRRVW^i+GX``giwc&TpV~OHu(yN&o)r2$K$1kjh@>iP z^&`?sCk#?xdFX+ilAb(;I7<$BQ#6j*jKsu%LEhQKe=>ki^ZICepr3#_2#pE`32i4Z zu%eXsgL)3x3Q-^OPPRhm<^!TEPoek6?O^j+qLQ*~#TBw4Aq~M2>U{>{jfojVPADAi zurKpW{7Ii5yqy6_1iXw3$aa!GLn|$~cnvQnv7{LMIFn!&d6K=3kH8+e90Zq5K%6YfdLv}ZdQmTk7SZ7}>rJ9TW)6>NY{uEZ zY^9PI1UqUFm|h0Vqe60Ny=wCFBtKb zXtqOa3M?2OEN=zDX7z}2$Y{2@WJjr?N`auMDVG9kSH~FjfJRNfsR@yJQp4cQ8zaFkT4>5XQqSVt5c}`-A#Z=3-_mGZ^)Hqayei zhJ}wgZ5UDln%)!;Wz@u=m(6C_P@r9*IMPe7Db`CSqad3ky-5-EcG=*v8J&{RtLJ(E zw2h-ghGYcDtqj4Z^nU7ChgEXO0kox=oGaY;0EPqeW89T6htbZg4z!uU1hi;omVj+3 z0B%$+k$`oH5*SeoG`Ay&BAA%nAUjQxsMlNdq8%;SbEAPVC#qm!r7j75W=A)&a6)3% zdQq$fCN;@RqI!KPfl9l=vmBFSFpD1cAxb@~K-$ZIlIL3W}?#3+|2p{|vZVq`YA zMbx|Xl57kJVwoetAo+opiewCkCIO=uBLEaG+!0U$MRdReNsx>+PIJWN6dW)pfeZ(u zQ8ei-Ht69)ZV`qv=vmorhOkF)Squ;)8AUfh<7A_xI8FGHMRW>~%o`1Wt3|8IMrM%& z8)|@=#ssro9=f9HtN0F#O085{Bf6PJnurfzS_yg?qqszmnQIYDP{N=xqPfvl;VNsK^qpoy2&App~Fe(MB7KCI)$p1!&YEB&%$9gTk zmvlt?t7!>_paNt_fYJvw^~LCqX{4opLy!n)md7}<_s?`gytfSAdoScQWTy&Tbr&~( zg9myGVv)l|4-umFBL0)Y(d}Rvt11)(O4ij#zeao~K$vh~JDn0_@3RjP2M0|79T&9+ z?>Vx&M30Sb15&<{RtpeYUf|n7n5GHyc+-FtA=7H$p6Mh=&M0O!so)tze7#WT>pp|x zfWae>0++DfscU2%>|@oiCQj+6O827)1}KsN^a>NSI*4?#ylfG-{q?3MMXX$dUH^S6Ni=Ve1d0(janpz@WqGJ?cG&sewpq294Qa zL{huwuoARdt5F4Dbh#?<2ruzSS{VeDAOtY+52t^xJW=!(0f3P&G3Cs^%~Q~~Wq{YA z!QrEk#>oXK{sc&Z7VB1_>fA1^#YyU1Ff<^9G(!V0!JW`n@EDdj$$2SVK6*7$!BvXP zmAC;h-W75(Nnzpro3CE9eV=~Lp7yS(vXnk@$g3{R`!(UG013==W*Hj{-*F!ujl+np%IX?E0*I&-K^u zY1z1I!`iOu+Ll`UtL|F6Vb?~vk=x9w6}eE^*<)O?pZQ#8YKE#b($x>w$3E*F0Kfk zfnyCo#zOpX1(P2yeHG@fP7}}~GB|&S27%6=@G^V=rmeTB$(w9rC6J@uQmcAMq zQ=Ce?Z0RkF_gu30<;5#jEW32il2?}$-6PZ?au16Y)?kUFy3L?ia1A@%S3G-M`{qn8 ze+|6jh0vqfkhdSb0MvIr!;;*AL}QX^gkc+q0RJ4i9IyOo+qAyHblI+$VuZ3UT7&iIG7640a)fe&>NOVU@xZ*YE`oy!JGMY%j}bGq!= z`R5xY(8TK&AH4b6WoKCo>lPh6vbfu1yYy02g^t9bDbexN!A`*$M5`u&}WqF?+*m?ZoW85&MFmXqQ1J{i;_Oz>3*#0?lWa zf?{tv`_JzP7D3x2gX&ICRn(aR$#>;ciH#pO?<*}!<}cYh_r{hb6*kkXSteV>l9n6i zwx63=u%!9MdE>@2X)3$YXh=DuRh~mN2bQFEH&_nHWfU{q+4=t07pt+Jfj90Or;6JX{BCQrE8bZe&wi3fwEXHRp zz8{VAmxsWU)3nT;;77X7@GCm7_fL1p_xKEG&6G~luO;Bc3ZIa?2b(*uH7qJ!es71c z{Buj4(;Jds$o78u<3df_2~DLq`e9*$SGmrR9p2OoVB5Q(KL3M{1>eq+;+lHK9N?xvyBPHni<#j$sZK{QrKEcdR9+eQD0V? zGPaq!#<-c#a>t4bt+R#Hu_|}dlIGeve@SR!d((u)Ga45+BuhHfA88G0cPrw>>(`ID zZ;aIyn|qmhuDXBthoW{J(WN+`Yud=y(wvd0rm&1*4>6?#8&)Fz z&@V=a0w4)F{^!&W_l6<5xg|-0F!~>aCALbeVsZTd*)M*^tr*!)O8w)mzKThWyQW@X zw%BFs5_@CIic5EPcTJu8=CmynV;``)3}gJ`Vl#VY_3Yib@P-KvBk_%!9OVu#8tG|Nc4I~A>8ch-~X%M@!>yk~ERI|QEcwzgI66IaaY>gx0~lm<@f z5-k^OY#SGC80Yr-tDRP(-FEJ{@_4LHsGJ=)PKZ@`eW75-r0ylN%0Q>&*M;@uZLdJ$ z)rw7Dt5ajr;P;~1P>jID!><(7R;w|Yf}qI&8klT?1dTfc@us5mKEe;qw;YKR(cp-D z6NmUMP8x7cM%~ytE@l*Mp^oN*mCF`gRNhw3gpO1PVi_^JzCJo>#mX(q+iJ(Ts$5=! z13b45gILEULS!=)SmZ{qsC1)$8-4eADGR?v z>~4k_SvdvPHAC}=4(!I^OLgQ@9EMDE7d$PvJbi+K%-HTh`P0#Ea|Jm6zj> z?R)(YWtZoIRx>AqzlG1UjT@6ba>yE z{Wf<5moh^-hu;ptAtPG}`h$4PWcOn>vy`#bH#Ss>OoAEE1gIbQwH#eG8+RHG0~TJ$ z>`C`c7KyM^gqsVNDXxT|1s;nTR&cCg6kd<-msrdE5Ofk=1BGDMlP2!93%0c@rg~4` zq)UFVW%s|`xb>;aR@L^*D>nkSLGNmM?cv)WzHZy3*>+*xAJSX;>))*XRT0r9<#zIpug(}{rSC9T$42@gb zy8eb6)~}wl<=or)2L}4T{vum>-g)QaKjtnp5fyd^;|BxHtx~2W^YbKq1HfB7@>Hw@U5)?b^H=uNOpli?w6O#~V`eG;`irLcC(&Uxz`L_Cl zS8r24e*U71o@dV6Soupo-}Ttu*Dk&EwY`h4KdY-k55DSqR&o7nufO)%>%s-Es^5Q_ z60#cReEy=$4|nW)bLh=|4bxW4j}A?qOle+wjn88oAeYb~!eA+EQ;8Ggp-UldAt$3M z7*E590amz>YB9L(z?Xx&?I37XYw?Os-t+05x6Z4vkzBE6-hrbB=GAB?p{DQXV4CKg zls@_wh*&XC<3R(CEZxg8*Y(6a>cIOq9Nss7{=UQ7Nv%O_WxSyBqnH{@(<>A&2on@z zn57W4Dh*E)o#rJ2#tyxV2;C5#rl8%%As$4qB=IbMt-z|jnWi>>7Ymq37;AW!6Y4nx z1Ogx#!WVdA92mEipgUxzy_?ddg|x)KOCyK)P5v@usc;0sN3{=0slt4CuwaxK@20eO zhdp~Z8iJ7GWrkq_-X`~(eBpthn9|`tZEUCIGiFpJjjxPVE9I)#z3Q$3tw`a69qxjuf+~ z*?v>d5~pcH-AQ~0)8PyIjumD^?SM8!Wb>KZoD7hOlc2nA0_(eG!in>}Ru}>6)>5 z@*}T`Hw{I^-?PS9>(#UFBQpW72* zsfj(2+_9@5x+57aN!`e`f(Mp_I(D>}p8)@&g^g+X1%d{ z%X5boE?hEoj0CiwTh9)#8^?~;|wgor_=Z1BI9_dI{ z&t*f95n?ZgZ5CnQa!v(p|JT?y0%KKgi`Smi9k5r!+!Mkz=&Z$%CFl;?AOzV`YBKrY z0#Y6~J6&dA=m>T@TYb8ukaV4z^Z?VX*MCKcp13-ye1*`gAj_Tm@r{fpm?K!U@Xg2AfndEo6jZN} z=XK0GRNXVLW2c?}B)rH^yR>u}b?|p(W$!TkQTAgu1AIG>MFfNchMQB_^-AQxRE$Th5-E_tBP@v(Cy|ojjP5LEU|JrM8 zVF5;$>Hl^jlHWDPChrTH(vh%bARyj5#TPb>omAs-)4zN z9?9(wybd0$Z5s+}Fiytv}-8U`IC<{6U2_NqEAkv;7lys5Qcq3EKt z0-!^Xy3idllgZ~qX^QTe=i*oGUCJNk>Y26?+9U(Ks|C81S{-v+6ebc`c(yibQbuB% zxM7mk>}dI-TfUi5Jqdu6b`4SqF)y5humuCaHhssdcR(jKf5ZGprx;Oe7VG#G6TA1+ z8oZLl<+ey(L+$Qsck^4fi{I|)p15MX73gHFUU!l${lN{)Ht_Wb%j#UE6cZ9}Wq^>+1wz z9TBA@%f~tby^0YWafmn&8Ppjn1Ng{d;S01WImtMzV<`!zU7;+8e-Xko>qM^OfOZ`Y zEZG#vcm>EGF??&G6+v(3l`X(xMn8ESv=@LdMfdcxFi%g1?0HDPG>blldR`OLlWN80 zz<$t+MM9%1K~JT@#aBZjOu9*G{W$u7cqTM|&a1)0wR8R^*r$<&AhuCq1Z{-aUhc5P zdyaaK{$P=Y6R{40FrWmLbDOCijqB(1PrKlnL)Tm|t=l}toVLAZOXJ*~-dx|_A&o65 zskcpT@bs+d@ia`f)t8ivl{(t%H?O?;=^s3O^GXqopx7E3kz06f^UQq<>gyNmo4Ij; zrOxuzn{WOqP75~PwPXC;3mZ#YW1xy&DEXsl~)u4`-v_{*B%R6xNH3* zJElz8@d#i4`#JV(ko%x;u{LMqLEEDmwD*(ccB9Wp;u*9I?=sC7g>%L{%$4m#zhbjm z)gK{LWQvE1>_yl|4T$nYKNVZ<)vza7FKU5*W~4)KNgN@;SA<9&ERxIfA&UZnB=r%N z5YD4fY$9Mkzy}!G+`KUy>3l(FSi1 zw)t)*w$E4#ZSxfm3cZLC(o3aQQ7uHk>_@fMTHoM0=quh%mfN6%{`O($pyzg0kPf=2 zjA%M7bRl4BhV5{{d4HbnTh`HM&YKw@N~47e7NFGr*9Yzi(7XQl-FJb4hPEKOC!K2x$nWy>8=PJYE)T$=Cqe(n*ChZE zklF{Ms}h0Jd|@o;Gz(~b;9d&c#0O^j{1?tF5dtMj9dG`|j0qZi^aF1r{<7KC5hZ`E zNX2nxJYEr@>u86|tPjTDet;fLn1R+IOm6&3b*}TOyNpIaid@W9c9!jIfiJOgK-aw=xb5Kpb)`E9x%CU82 zEQg_v`e+tWYClJHl=_EsSW?LZO3)o#ox(#2UW9|V7I8fYnz5fRtph`u)dywWL9}UV z*hdU9-BBK5G&}j~O6&dSdWDIpFX;&Or5wNbm^Y+A-x6(K$$Of6JTVl9n0gFY&=T5p zZX?pCxA&w{J)eDSfb?Zh*LT#AdiPlB;A%p|-`Aw6RP2mYTh zLmL~zM^VS0V@*4LkOEG~nQR)HyRB+;*KWli%QqKt&%16HWyMXRhtwdCgyoTm*5#itgp(Wap66 zyr-dgKgjl&t?JLMuw}!Boz)TOa2|37p^FAcPmxX0apWmfp$B1WF_@-dsK+?1F6~yY zEwi!-))Q_CbOP%?p%bx|=d^nLBig-_$e!nh19^Ps`s{SNq{nnW)V-qnz3y+Ipd7HS zsb}z%!+}y8izoy>Nyyj4m_br&8TGFcze#gP4?v*NEdl zzGBLM4qpvdu;5vCFi9^zXU;sW`>pPi|NFD# ze=$xI@7q9B4WPsw4CAO~UJ(S)s@u41E>#9D>!?=*N5m$%^0E` z<0RjkAj02TN9RLX3Js+GArg=Nu>E5z zPa!vMuMV06#7$1dLbwv+VGT(5V_&A~Uy3T^+|y~Q2>lA|=hZZ)ex%G`rhkN54C5gq z>w?qN=A+LgB0-@s{OJs7Da|z%dK)uDH4?m5Y=K(N5KWL)uqDxwBt>QmOk(h~1u6_s z>9x>G_+@bJhBQ;(Rr?20>Tjn}^Y`|rQvI3Ua5$aGq{HFf4BhwAFVk2oHNbk)hmAri zjQ_!g*-c^AKM>A@je&H)i1PsJ5929F<8bLXvONK4;-n6d;Zm7Q=G|k6Fp*AY!b1a`eoS*c zF413z6`x;!NZV1k5)sv;-Dqjt?t&|JLNGSA2yWhU-RYC^oiWI1+idw;6*>m1&Io`^iPgF6c$sN zw9j3KFYs@%*HNz1Jr?F^RiLV%@DyQ^Dnc1h&59pWKhD#AMQV~3k7}>c@gdw=dyRf5 zHGNU7bA_hHWUnI-9SXtjM~LT>U5!uS#{ zKSOhB>l^nUa&S8kEFoAUIDG}(Lr#|uJCGb%29Xr>1S4yk0d)9hoJ7#4xNbi?5Dt?N zBp45evje1L)A;&Smy9J8MJe@1#HwBFoYPv$=k%GOaq!kd58)tzBI~EkGG3Rqy>GOTce-p>jH0rb~c(K z1|9q=$3)Vdgcwyvy&>S3p(f~O;~?XK{)Kch&2!gs=%kNH#-Ee-i}S+a@DNWR(Xnv< zv7kIUUD(c?RS|JmPeXBC6cbxUl6qRxl;fFAiK%!>EzFa zJ$-mz?G%WqC+P-l!DLX&nfxzGAnLaFsOg^Vq~gaW2QQ<(qixj#J=;Y{m`?kHkfO)i zdxQ*`2Jr3iXdj4QE%|AlQ;|Wx~pKrr7xuNnTe=t-AO)iha6xDYpH}>yZ z+FD^H2VS0x4us;Wo_95^kElZ$>j2HW@wyeLi3i%Q28NXxQT7V1{iHY}Llc~!Dkv8* zM><6X$}-pv0N#?+N%W`5%}K0Is%8kCOC~LuR6+;gtHYPi9=dqUoin~Q^MhE;TSIe$6dEI=Xs(`oTlj_C-3c4KT+wJvpu4Kkn_RZVg5jE+RF`XNx?0xmaV~bW?v}wVTXn4{5 zO&2X+*pF%!%qu@3SLRk-npU5?`f_cV9;|pa#ktlD9VuvRx;TK+fWUv_$vC8-@TcO4 zN_-D6?7|-4!VWMEgQ}TUe(c3w4{eyxe8C5t7pS0MFe;X@U&B?sVDIGR;u>?mPyb2F zV5WLiQ2mX&1v=E#B`oe9yk4Y2^CFRk8*rV6k1!uW{m47&7E!m%(ANz&+ixrB^ng(;#RLHnX%tfsjJWM- zyBo5Of=eNl8*;gm`ozE0weGdP7~Iz5$$pI`$C5 z`U46T|8cnpt;J+VO?%~H_`Ph??bcn%Jzu`2`z~tc^PoA?r znJlfFuxIeRC?a>J?C!EC2Bn;dnhn3XeZ}sbjb-10*a7A?aS00$P{m0wm zO_v_`nJOwO*k6S$tHR@xmt`N`;fR%l>^^ZvbfRm}PUBtryK5pTwRdIZgj<#_irORP zr7I?yj7m&+KkD(;PKtLXmF-s9=>`j_AFjI$YN7_w1g7hD(md1~ysZj9;u_Y4i3Ssz zgRH~g_UH9AHR4A!67Z@2zch=Odh*4WzWc2=ekK0-ueW&=xy{z7Gz9CSbv}Pk+4ST# z#ZxnW&!Z1tS0A}`@LT_*wh{sv=f-Dy+2cPoUi{nzYTGjx)eit9s#G5^D0+(|iNBlJ zV$vUX35MrZ8K19VAN|i75_}Z#DO`R~MZQy~2$6gqOvN0Js%d70SzJm|ER&Jy5k>-I z!fh9^fC*zr22w0EG6&Uqo`eqC7_L8gi(#?!A>;y86ak0F7|oHQIhmW!15hHkZ(*|o zF+vd5r!A(imA-b0}qc4-&FS58}j>!?PW$SEg*;W8H~a^e%b?2`O8 z*`i%!x17FmIo=X;^83K2Y3Hja(b_rMns6%ts^>=(bA-9V<9O1I>564?R3a}v1yYtH z*l6T7AY0T66-95WtZgaP8(}|MBGlfNdh@=~Y1m!IA7($BPUtE`qT@h@;M3Hd z;_dtQw^?1x7-WaPK4XDxuqd5+qVz|PQlALGw|x}&MFa4RtVSK`(e|RtFN=u%s&M?) z7+HD3$diG_iYZuX{0ijc(*2C7cTX)p*3LRRtn3r@wq>%<@A9jY)yX*dv zSq7pIH0)jCA$)wa^7RfPVlWXzzoH}vzHmu4?W&f|zEC#fi<;dYS!Z*G+=!O(wLx7} zkfS~!6{@R-(Uw86L(mJl7`6&&tfKDx<)c+WIlqL)3pSX=7*`N5ysyr`8ap$bd^E3w89)ZgPiCBi|f{Ji^U)|AMCk%95n_gVk3|_XmE_Z6(keo8NCgI|@0sfZs3_s1} z$KK|ZCF;AE#cQiOrv*z^HWTBHM`H8Hwdx20FDq8lu^{(Q!@5s%Urrmi_ZX=7)j%7* z2x#|wO+pMI^e#2DpLkU+erWUorFxiNlu1s>XIg^5wIEm|joek2Rd2IsPtNkBRLQTFsnoh4v_<(`f@uV0I_G*I9RD+?L~j{1bx`#0ta zEeZiTNBzhh^|GEN+1vl7{w)Wm!`yhLKAuC&Ve`GhjRo0c|E^`tZXfkQW;&_kBLS|M z7!XYb?!E&&=u`h5Ld{_dyivFMQHW{aI!yVS7oS=ttZ_4U4sb{P=wmO6wCrO3g8Cir zRxN0ht{}^=kNOy`2fdgiLzr_8?$^fWMSdbcHb<)&+4+$`i%$>mB*aF7fv0tiFWhcK zRThLy0Mtx?A6Q34Vn$tJOcHkv?-ldg8_%9Jr8YX#=C;}%u*pWq^?L5VVi61EUkC^@ zTi3LAgna%bC9aB?Qos0?XlUZtnp9cISx)1AbGeO~JGb1<*DpHId@iRrT4e7+!$h07 zWDZ4FAXQ;*hdB%9)8U`#Aq1XW1`G)sm$Ol@ZCv2#2r5~I^BXuYJm%NgOkCQOAufat z)Mo2&C`TDc7EDz1sE;V{`=Bx<#5gYrDb+@@FE3>Yx=pZB79-7UjD-g%Z#qc&td6cl zI`S1u2Q2b!m^1LOg{LEV_eV*@cFW|i{!+a94itA#8 z2;?I%3?C8LQn5B+Ac|?$1Ejde^`AH_B}3`>#H=np*@XDR^y^=fZDd~Fz;wS>e@!M7JaPvv zPU?=U|2$6iw_+;&j{0oiARgl1!2p}_PMTg!Yxs?H%{HmJgU62_ghA}_;}{7x*brZc z@>!rSz|M}1YPdKizI;?B3~2O%LY`8A1SF;-m z+Oxu{+PYOU-V9O}bVd$T!;AU2M<2*KtciMEC29!H9V-u9ZUJ$M-4#Nb$5QVy@LP8HyfiyK->WR(e1g77J;isq@ zxu$>@C(@*mf}RY@L8hJXBrWMOEKDqt3i8iwFSwpR$W>G_j=iMN>(!1>S7GdmXt%UH zpfdn%XxP3S<>d1=1{yBn9c@?(YZkyNN1 zQx^M4-32#mo8SKR;r8t_CV3=RwbSNzS!Jbd%GS0L=qT*0!ERw05x~DzSsUKHYQ||Y zuwKD!+2nux!l3~g>0-F=;qnW{w$F|jqXuhZz#N`4WtzLDj_MYvu(*X@fb3G;s!oPE z?QMW|e7J7#=?C#3QWQRp-~(1;_=?J(Y^}oNmHRoN$^y4Pv2Z8cL)EmwWVNJh@>2ER z)el6y-IQ`!2h2{kx3}jwTf$_!N75)(mi|n=?Ylj_>QzqjfMiO67Wc4{rOcF4JS+{j z&z%duf1`r(U@ZlI{F=sZFnCGJv}cN<(cA|5AP8m+HUK z@vG9%#_zOu)ChxFSxmKsBSSO9XX%g4SU79e4=G!|Cgo(;VeA8dsRxIZ$Eqhj(brh0 z>Jh)P2`<<#u_i^?L>%2jxXAxZX%?<7l073C+~1p!t{Dj_9ZxL$sz|_G{C#{Hv@t=B zP}EsMr62u$;U#=d%MRJHCiNv=5OI3(_o-A=G_9B~AsrRui@pzUDE@tHg#6PmWEuT^ ziPt|@8=kjTNmkqdOlyJS!m{E9I87hqn;%9rT0<0-L99QeURoyK-&OxH^mcao3^t~WeS^K zH`XC|VCLo6*duA78O!ugN@5Elxkhd!CmdSX&*f=utfmDFD9PkBHMk3&aFB&)R8NL4 zD&i)OQLO z(Z_o2Zs~o#^$zu`{XU~$I{T&vAH3;ofJ*ZpJ&JR~s{J0}8cw}`t#a3NvWA?#tMY67 zLG}{Q{#6^CipQ$*V2|W$g2v->Y9+4=(K+K`;I4$BFUb9!Nrk0B*fL+v z_lcdO1uEs@|8I@xoKCB{68@q=)}90JCVF33Lb?M@bC5mog<2~vPXXzk7B$|75Lya& zL)t=%E&Pk`S-PznN<)4iAI;NU!@f0_V&wOND{4!~b@1&pAN$Goqzvq>;o=lr=43Xx{tUtEaN3B>CWZ)Uac%%Y9--wFCA~Ek7aAC_APm}b zpXAnlNOIF+;t%pPlAxIkvv1neXa8*XxNLX6ZDDR(+U5bi-=^>US$+3TyUFaf{gSPI z&A@*!TUbRQ-p-3$KUDc=Hp9j|c+t%)Z{KNid2DyGia&p6lgtpOkDeM{Qy=)H&22V` zFBRKM=Etf98a&;o2pD`R2ctkyWxz`aTDZXBjY52aOspy*2=?xDIZi>&&))8y?Pe*( zt;DkFm|`@cFI!Kx=wFn7fh&cqy-f1RZb2KRCK7JNBsApYHWk=M5J&|wBQOdb+2_^g z*;b(s3o^wX$sWZHhUhNh^+UU2+hPaWw)eN~kHy66akHOp4#cDm_4zDetK1Mqx+sR1`nMz9wwQP*hL>=&Kei3+FtV>|yg%{T(6f`N5BR!MdXj8xHG^3) zqCJiEswQF>ZLP}3Hs3ciKciD63}0Z^MFL6+`V473sGm^=U1^Mx3`Y|Mrl>H0pEcT6 zg^H5MH*WeRUNMs9VN5fcZQ=>}GHBs};LS}+P-y~P#IlYJ0P8ym@R(0L;jYe*1D4ll zwDy~vES0HtyCCI2411OeiC>SA#1wX;8DRXzVihdy^T9BjrZUmN_=b)~n*!R4%Wps~ zkbFH!%W;I*pJZ#8%)c_#RUtKlOksrV!Y3i%vh>?b076sjL-)-NtH_t7E8;OBZOPa@ zAofQ3jdT&<%k!kzaG)7qW3j4HcvQe1&&jd+f8}J3!f+>UDx7H_B8^6hA&r*!PDQ-B za5jys`+BVIUd>7lmgi)Y&fyh!`yosPQAwyIh?7D-h2#b7);pTpdfDrCm->#&W_JPe zRvi?=>OgitOs_62y`!|JbhXf5STOdjJDPjj*#EK7D|Q>bl1&L=hPkN@2)(QE#vP@l zt9uJeTG&n{WG78N)aYu19%#`y%8i44oVsSwNLRxgR6hF`tsw;8VRy)COB4`B4i4SsLAa4`Y(WRazi3X`Vv!fMiDilJX?r1a{9%U3-*f6J-iKJh{i^La~ z$yJ?ASG(MP>=IKImh$g9bD7xJqR}YghlfIHszUwEmoF2yQ`Xet0HgZCGNmYge2TvH z+d^IF=q3{GD`-m8K+R-7AdPA64e{l|c4AofbmD)4hUvwM1bw^%@mXLok{H%R#q;qz z+gU3h@JZH-G^8$-2?T_&a!E51(fhSa5Q$w^j>=mA9b7)O1^G1VKyM1v8fOAgDLfFwlSN7aDkBbh=1Vofi; z{_|sQ`!zOY>fWC264~Y0Y;ZbE!j3Cqv4wlfV?E8SiTe3tr;ceTaXo*JV!Oufp0KT} z!>xB&7aARQo9It=F0Wa;$5j)X(=fKBtv5LhYKFC6eJA)BwZ>zny85O7zI6@a-&ln8 zLF2LorHz$i{9dO!8mb#Jp?&t4L$8*9&!)KTkLxQVHBP8FA!bZwX zC$1xtlqa{pU|8*e#v_V+#E4OT zjwi(7(vGZ$V!mG>tD`=FtRvSqWZ9$*B?GPmVd1ek!0@{$s=gg&_gx>I&W_E$e<7Y+ z5K(_sDS$qH^8rKPSita&*B->#;u88_rMf;Axsguitwh`|=XF8(EVlU^L*PKbu#TN~ zwj8|9X*SENE}$egSAG|3#!^5By}_`$$?RM3+{=QMMid7b`V01GIvvI+&E63R2wQNp zn}sc$*2c&2oUL%!tO4~7wk4n)tpFT)D3<_3R0r=|=}&0KCf!VqIpm|jC(z<~qb-#Q zZxk@2wJZtt%hiN1;J9w_Hzt9B+S-HzVkb8@NIl-+0XLm`=_dDWyDqXB zn&w}0*`hmpYVLH;R9>jKpbgr%Tssmku7 zB4?i;DJ=yE$6)n>a-tiWd=_(RksK=Y6Abz5;b5mLI|>)(FA9o zGzACes-Q@1Vend}5C)iY7*G)}1M%Udge?eW(1HnSXri;yq(~2bXQq`x;Yrz#0k&ke zS%JGlk~lDWC_ny*-Pvc@4#dzy&@`+2PkV%% zOIv<3)+u>drFF184*~^AoZL$_J<;#J>d$8hF1HEz)8d7HT$%mI=(a%Fw_CitukY~T zzCPh-wvU#V(e-YoddEiUO$O~Gr_8a91@$Jc+rpZOpW6;!qTct6s-1GiRv51Kzn!ku z>d;8_q{~ie0yF5Z-59^#vLXATUx*cq!zD=G$XZeu&u5Te*HqWE4IIDJ=3 z;X=s*MnE=AeJ9|E8#P5YEW>Y3>i7+gy{D`72zWgEJ6_;p$$k1u>hqEMJ4WhXT+1`J z2UoHdw1-mEKE?MEYBN#+HGKNk5c-SiJgPNDBrxIO3hq2zQ?Q-Gzn`%I_?VYp&dv2M zvIvf0jiNBnpf1lm=3_A6ApuPS)>4!*8O26GMgpxwaM6T-up7}x$fShgk;qe5v^RIo z>TaB#z4r{2{wUbivuj#sL%^MIIAif88=Zo8VO`(VhtJ#lK)G7`AVbhecjuza-rrB| zo4s>x>$20;IoY}UyhY=kM#Bz+WZSjeUwYHVtw){{#_rt79ybJJr`6`3xa`^N&f)n! zT=yimh90T==dW``)l)vNIle^QUoEWPPd=w1q+I0(zj?aa4;5EaZaQsy5FJ4LeF}5{ z$zg##sP#GwKG2!Ph}IYe2=jqBViZeEZy;=DiXR5O3_2O25Y~Q9y=cg)D}9l1=&&Xw&3l?g{8))$`(k@{a1p3a{ens7utuI^2=vshxrlD-kY-br`D+hAM=))3(PZ zpyB3*357l{^D%K-(OTUkjEoJ4X>x<^UfmPAA7hlXG?QgK21ybCZk1lxS0Sifv<291 zEjcA#Q%-#E!a(4PJtQIWk)#atL{s*GU*JZt07Zc#S!1%fwV7fXkwZu$LI=?Jii9b& z9N7&))d3Vh8fPHy4GD@Ijl7yD&?%NGuJ_OccYXkIaDN7{Ux?ntALbeUyb?sbz03s# zLfJD@r)GcJGkZS!PFErpG3low5RJ#jCL63{qLHqyaMc*AVNejQp_b+{ucvHN$a_^~ zK+n|6Qz^l#n5WiWi;#UEURyWC?C}74{5m0i9bm^jS=(82np)-?!p5j&Hj8-6#y5q$ z-cZx{GVhaJT^!E3OK(B$?9)Oq;h*nmgonr@l}$~5ny#*74^BUz-dtT@>WZ;S_3r_} zQNaQi9BKB}jHzND-dA1Yeacj3_qnU%q4vw$L-Baogt=3ig3Ri*h;4T_HQn8u6~D8% zu3dIGR>z7KUO$}07IDA zm>ULZ#zLtQpB=zl`Xly=k@2w#_&57?*Xi!kJ;wQT>Y(diU_s7c9> zJt9NLo6(QTdY?<&%(7s~gGuhxX6Ia@TxNd)1c%NSn z1vg!?!9F%t+BbteRT}T^ikFtgySn40Y{9CQ#s-^l6%*Z|a#r=PT|QRt>uzZ1KDuU2 z_UG&)_39e07-r|Hmy8d@CawADtYBN~ud`dnC6l4WwkC7cwB?%@#G0C73m(O(B@{A= zKYo4MwAZI+m;dFW_8z_0tM6&w{t;apJRSqCB|8-3|G^xy4{cteem4EFg?KyO^H>jM zvPiWhJ7a++c1XQBBKT_Aev;X1adZCx?O6i7i}=MPVM!{DFhM1no>Vgi=FJObSSzE4 z!cz06q4?jt9&?tl`>Ym||8Lbn@fQ|L_G8v#F`IpVs|l!&x&>B}_z$1B(XGyIsHAWY znA8qOJ=@^)4xPoaU-h^g^}_jK@kTQ7$?aFf|5I6D)sIC2%qiC(coF8shYu$ie*)ue ze%G2{U`NRIn<&=&^cNmI;H`MZjd~?#3I1s@KF{obqiu%g9@l{o^DS=Z{*u!j)-EktzHk%L~ zUeueNeuutfbuxAHnCfe9zB#!P8?xVF){CM-QK}``94{Bxq4Q=lI*@*(t$ z0*llTSuC3*FY_i0Esz=DU(#!`f?@wi{if=Z>r@~3asMrB8H6RvvkTcW)vbP8ZeWX4 zzxps+&i<@^TXl<*)K}C$u*vFs=c>O<uva_OepgZ3^mp(p%~u)K{5Z{k!@f>W^5N zctHJ;`gb-C%!>u<(kED#4A{XPx$+SHa}?%+(O6P8P)JhxL-2PKS-#1p!TbB=d;5nL zMMOs=yP`{Yvn%^wn}ki9e$C!VtI_NeVz`$Lz%L_RchA@F7J^6AM{gFM+M7MOSKOPu ztXH`F#C^w(VO);r;56Hd1-i|6n#b*T>ceqoYd9adu&Oc+x`?PF5k{oi7$_HEV@K2z zymA4)N+`DI{|3bN<-4D@&N)YxIVoqR5q@8N=Kc5COtz?XZfomYb%y==nU^drYn>b!5Ctr?PZ$sZJGC4(Lx<*GmYK3@9};69v2?xCz*86!x1fq z9-^Oe{|eU+0lSwM-%%oRlZiDYBcsgabpN8BFSM>vThx{{TLd#395z2-=dkJ; zUPumj_0A`QOXa%S$dG#HKaV)PHrXJUqTZlMEURp*D&K#c?PX)`>TojQ>yzh(U5ggE z+}3v2ww-mQmrPrgHX82`E)7LZ#9*S)OrYMVHZ2*%Ix2 z-f6n^R()lg_{@W9puD-%bs!$vZY>)VYBn{#u=iUtgZ1U*4oibOw!C4kr;~&cIo+d? zul5rmlh}%uY=)i|^mJ>IyR&mweFZIu_7x~{W-C@zr5Q1cK^!y+OU~frPEZqXZ04#L0$|tY}D-NPT^J>z!>2 zLk;VdDSg7vTYSmLjc%I1lCVSm>+G7BEY6w@(XH|*G{ zSt~)o`-!M-5J4aV2N@%gOd!0FRFIBn|vW}Drt z-eWVGJOi3H9hf$!nudR8+Nmhg011-@!@NC3DA2QVhVsnWtq@_vVUsn7Lgo{)!})lf zHnxUxXX|Z}q6~&9Cutz=WXN1iJCP;&D8)pBPR#N=xfBTp2pd7-lFF5XXBc!;f}%nR z1Ca6zjC^CAo!5Zpsbiu(lgpE2dZaZQmR3Pl1Nu#$p&}HOO1KhD0hr0cDxiUoC%PDR zz2y;b(?1FUenyXAUfrc`fgeIi%?Q>s#3O>1`S`d7)!ab-ztxcdp zi(oNgfzqrSy+Qa-h~$kCFl>tV#u zT0yo>Sj8|%X=Z5eLYl_j3H$wFA3GlQ`NIC8!J3ZtWgQ*Tf>iySj%6K(I%;b=*zAUs z@a=8sq4nu=XBezD!_2jBtet7FSqQn zIF@m`p^X#2_+Y@)f(;Nc7NdxOl%T-$NRFKpzZ*Diiyv-9$byI~Y_VA7@fF$z4H|Dx5g*3@-my-zW{NS^+s=4LU=S;5ULvFYRU7E$thNp8*A(h3CX5s zqQ~5@=c+ot#VX*Ndavjg1ef4*RI#r4+51F`-Xy>#L9~eMYl6w8mrb%>5bZT?ljVD6 ztEdNv0*uOqR@o*xU>7I~%q&O{-x-#ny*Sp3}O21M?Rd(O98C84<|F{P!iYQi+&Y*nsLu5^Ihu$V)k)=GECZL$l#xZCMb z%xz~?w@;eYGR~3+M_}0ce(?P zl902^TxqD4$DQx-Ouql3YC)>Mv?0+^0b7X9MdejK@03cTh{%+U%}ktHqQF-^C6`xw zO``FD0}P~L0z_&PDjancf@m?ZGR0TUYN{lM-RfudpltLzU;yJ{R+GzQ*P|q&zCuzY zP@pguLKr`*Q*oFilK?v&y$CF+j-b`jSz!_lC6mW>m+2px;ND~mcq=BCmMTz-PuXY< zOa5z2j)rQ{(LTN*&~0=Yh5whf_W+NhI=_eaPTAgjUu|FYx>|LuiX}^yT;wh{;oiU% z_p&Z@Y`}m`FN5C~v?rUXJU2@qOB4H#QH{+~N5*}@@#Jm2%V%+B2D zcW!yhdC$u$WMz8Y@Q7Sm;An!nZCaUSSuojY3}>m>9D|bq{)XtxPsx!lnpMKJ$>l0=VE#0Q${LhbVQ?(avB~M5H(A<6VIs~Hmen|XCr57cj;wDg~y7PjIZR* zau8CZLCaPfRJMsKeNi~1P;*LSAkgMF^Q=afBekooDqXYIppZJ`(kv}2%`0n&8lEg` z4=C(+1ET{^|A%kM#z zXK7m|9Wcfc3=~;>1jcJfX#rU|Ppz!j;7pMyJxd%-z##=(QTY&BIZl!@lVSAb*KE2t zsC)F&?X{LH;g7;@GHGHi9oIy36f@s3g3 zRt#I$TBG}b-9;4UrV$&5Ij9vP)Y;Np6VLT3k-c!=P<<;z&y-p^C+_T2?PjhnuA3&) zZg_w4iMx50MTey|GHd-~Qvv|JOonzEpncEx-PZbcYu(#|MF)Yep>~>mY?NK)j*MDlofYp2?IA zdWFjqQYB^@4u{F4kONMK_E=?Xxs$LThk3UpU19S{Nzmr?e_{2qb`9sV2yanqH0d@5 zKGJp8aZ;((RpJ-E(g5Ey-P)#3bab(6W+bgQb9J5E$fs<9fcfNuxIvFo=h1Dgwcy+w zPuTU(HesXi2ZPm;XEiGog3BROSUdQwi5UwQ_J3+1m1G-UYluB@01JOMr|AGf`7CDG z0ig`8Ee4)kL6qbPGy~CNdwL7bt`jNhr{b~f<0Mqx@25+$lS$DH(Vxp|&m0t?&qQTw z7?k*9V*W>p{DU=}4O&dJVTtJY(^>`^lPL~F6O|IFf&j!DWck6E9}tqnNz(gl(B;1+U04#Mx7H@PM!jr;8}`p8X5AFzRgZ z`H&lBbVagpDgs^cAL}3%1zD$XOne$PNmH;OFF;TKQt?TS2u1Xly;A5E%X>i&LS8)c z94WDnS|omqYiN=XeK3B}x+|c@HmfZ(WQ<~YG9AvJ!q|jbd#I*5WUrl&T>ys=H|eYa z=2P;fwY|sZguD`qxdX)M>uI;{{E0Cl55B`!K{}wLHeN|4VH*YnBfJf$tm5E77<2U`gq>@HG1qNC7Hcyb!M;d687pf$B(PUZ=T|xM7)L(EmRVw z;~E{-q~ZvOOr2pdE3KGuy*wmJ%9P@R0*A2yuAhIFS3E2{e{lXEPa&La>y?-W>-8zjMwKGjQ$BzcAdCp)p^-It?U!LP5Hxpchm^Keq$?$57$5a!Z+()BJRD{ z6WgCQN}23z-^iC&TytVqsnMs6p-*RQ(ixw2F8vzfP=&GB|8F?{vwhrLatNCSGk0hY z#-0-r+MT6XGIxqGf<)4vq(!0^mfU%UhXXyCkz}3fmG;0s&`8l>X!W^JfDuz9HUo@{ zuuFqpp>Uv)!psk76{RqQDF$&!v^n_ECT`}V@{zZoqC)oA7_w~`M~N|5Q|_k zJ;Up>vyh*=Kjn%>HQJW}(v6${w!9Z%lq8ZlF>@K=Ek<&|IT4DB~B~Y_O;v9%9bdID;FI$4}a;O}@l!+Yy zZ67)fU;`NEa8WOT7DH7N_&*q17&?q>qwQXMcFgOOnF<0N*-^sEWbzzvC)kr_vv+i5 zgPm2{O*$B>IAd@{>+WUK><(pc@%$Y%QkK)@5Tn}4^Ln|tOsDsh=f>O`Mru?jc?N+S zjv9?oZ;e0J6*s%IG6n*@)S#6c137i!nnDgDIU_YINmjH(${tUCloc<{sdVK)q-C~s z^SX%F!SQCb+A?8SAq-ab;ILesL&}?2F1w-0Zdb;3_7dq1y_J`mAZv20%2Kk(?Wvhm z?BgJojYahs`X@A7)HA9Qm5P}EkW30FIDr{C1ON{u z1g5dIMr=}b5GjQLE~kiOEsekhAqGW;iWew{c8QDP()f-j!!>b}0<_?aiq6~yI>*3B zi`CdXW~Cg76+JS8SL=N!|F26HjVUaAW#N(;&=GruQ@h?1{-Ra%60++(*a{-;SN={& z3m*yJzP9zU)P6F#y&<2IYIRcSWv>_H=QF%ksji&bymFkwB+s?s!OWBD?KvFpwAYaF z6HB9tl5(fq9jdFlXQI1E?Q^gHxncuVOg#lH7*|HYd$Tnnm)HD6gV_v+Ekb4 zp_-m+TC}!*?8^M?Y`$XK{JN&qk1Sq6xYYg&+mlym)o2Awb#46$jTWSN#;OI(jOptu zaCbaIeUAorw`cR3Q9bDuE~l}?)pf9WSllS}RTN5{AmKP8TP%l##64O+ z<9w~)>KD$L^#-v&PKLdn&JjL-V;0%hPd@a%E}(nDen@49b&%5#O-QsX6;-7Ym_{)3 zVl37&u%3X?ma&!7b)K&CFgV2vcWds-QvlU}1h5qyxV^(mlpUfHjzhVqKa?A?iY8<~>_=ad! zk8dO`rvOwQj>Y9oP2*Ot9wKK_hBC~WVtf!r`yU%(p%oD8e+cg4QUi%h2a{}O5}EG* zZ-HLS&Y#FkWd<|*0G}o#4taLmE^k0-iGxUlg8Xl6I@jpH*%~?tx@JuRJn#pu1 z@%_I=rNM%Y&`YFTCG|8jY9=GAaO%H4EqhwG9gJlaZKg1oi{db>rau>VdE^b)^5%>b8}?cL9itw!Y(Bor%WpI?%Pj4J{j!bwjl?n=A z?##%PqWmuA8zS)5vCxk(#bC(9jFU0xQk5C=7R7TRzMFn&JpLe}gI6mL{C!MbWW0*I zJeV8RWO=t%FK{h(m362pOLR55=AN7W`u2&T{v&qlpQUo)8&gl^+xyG^_=H+E&E8{g zDtj>Tm&AiGOuNYD{?mSBc+fDm!jX{TQ=#IZQaQll|>^G`1^D^SV zM+ZBRqk?)b(96%pKAv6kG#;Gx_9RUJOrL=Ch#REmXQRXa?RfD@|1DZPOH<>K-+Z~L-ZeSdCe_=8y zv$DFgjbD+f$Xn5p?QtF#T$_pgT|@$@QGPJGo8D>TeAt8fg6onA*w0M>p@iDdM_^a=-IIAa==ijmLcDs$P+!j}iuEj;;q_SK-hF(6t&u*(3 zU!LE)pqCz!$h##W9aWv*rYjeIUm+JxEFjgC8ezyBN-_G-vS}?09R$E(jR6BMU5U^@ z(V0P0B}3^eADjeW+@$S6T2jX+!gXXQh=c{DMBthD%*Muwk`k2(;0!J{>|O2$aekt_pC0cNlWBQj*NqU$H3%h)ui z?qoV$6o>@NL$D;;M02ATJ{}%ng;dfcXd{fw1p6fDH854f8 zL_5c+rAD;odO-?4m`z)jE@0QsIP#m%s{3yxi%G|qJ9mC592Bk*4$?J5vvrf&4==v> zL*Z%RPT^^~#-wiB-EW#fR>F=Qt#Nm25b;_CbGzR|l<+O7jV3LT3y%tNHaS?@`}o41 zF$uNZFw7Y~77Aa>jb2bAph2cqyb2hF{`0@kc^4I@JroH*5@Ck{3%HA7J ze{=QfTZrXPG(~C3e0zG=<=@}#yeD$(it9e|@}t3Eyl(l}7SBEY4FhdhBIcb^!*gCl znFlPvfq4vU4akQLkM!yPH0F@Xp4CK5WGsrIY#-Z~%66Yny0cS6LL^vZ{#CoPf547v zDOQeSMJf?e5Ldtea!LXg_#yu@^rU^*gZ%^VuaIC)(1`K^c$#TLNtk$0pons6AR0!$ zLUWQKxeJ{spst%xMbvmTKy*u_|1@&<2(Jsb3$Ne98JRk3nUx!DJ=x2tx%A513Tb^+ z6{A$>`g952ZR_y#^#BMQ;Q?NEWr8Kwqc!wGt6zh&EFKrvp{{ zN~{S=Y!iu^0Jos91XK~^De&WAO?3BQ!NF<=uyq~mg=ar(~#oOa0#k@s$PSzc6DGpZY zT%MiJKfg1}p{soS^vIIw;22}*cuMOjV++=yo`T|dD%z@Ov!(S!t0^oRsA=_x^+YR- zRun2H5=~%|fM4gQs|vMD>7n5f8#?tsN@5RaH1W^l8V#@Kb6(2f^@31PSCF5~CtaD} zHvqx#ExV!o0Lk}Jze|zj2?JMi!xC>^ZcUbx|8oD`UrHT5QaV&bC3|pDTvIB|$&v2% z6%>eP4*a&})c8hn-$b+WaF^U1-Y9%4?aZpl@s?;DwsrU3yUt6`1&HKhr(r4L3qt&ZY~Ue$d;q9YOJv}hM+5p1Omb%T%HEakh-=S^t}!cIW|NCt zvYY;N*Q~sC1sQXeEuA^!svEU*$tdANv&&^(v#x9Tve5*SsoPZk-nva@m)o@7>0Un? z!Atj^ZD6Nk^lh>fKMh(sMon0&1|FKqIv6qslh=z6Ed%72Dy!IIOJsI&k(zNe{r5j` zk_^X6`ZxFWKTWP6!%seNfB&|pQNmWNqVSmX-rpQQ`2bN0Cje~8WfmX!`rCUhuDV6| z?tzm(+(*>4Rl?Uf)zvuzW2UIDP+k<|WI}{Ib%x>RC*r31(n%p}+BT+-9GkW+IrRJX zl4DHYwrN6EI=PMW4E<6fuero2mvA4UMJq5i)7)epXyn;=e>z3@9f-LGcf5hMl*Uci zj^i)l8w{96&a4mrQ~GllC9!c~%TH#{M$B;EW?N3ttH6-F_R*bkE z%xs+9eK>1JJlEyUi3|T4SYbBZx6y2}B_?h-TH3hruKPE(H$8SVQM-|~4Xr_@In|BW zVgnhInnHim#YFuiJF;qqG`&6hB@?p%o1y+ku}Y5rxPFzA>{ANaiBNe-q$cmhZ(g6f}5CD+Sf>5JC1{YNhE(3F0!pqbX3(RwM@_N|c zFzw=ol!l+B7sM0Mdy|AsMx{HQl(76 z$#hO*p?1?0eXP0O(<)bIWm(nM?>D&fvK;|!P?al}G1;T~4{9s&3~cWA(L?15m&fK{ z)~>Hj3O^K`+eU6-gO#NfAS4*o;1-7UNR|0&(@~!?n_WwQKqAZxwyrJL|JM&?c06U%ORPS!-dO@oAf`H*?OVR=v)~F4S5z zN+5)YCd&}E8gy1RrguKlTO10oX1m^K%4>6G=~)DM_>yi%EXJsGuk#kUP6`2@0mFH& z*Y7NFja4Y}-Gp?I88a-Qs4d@6Y3k4^;uG$8HkVZ>6{d2Ts(+j_*H>Op!RM>kkox{2 z;Rsw5Iu&f8xr|1}tTY4tlHM>@EiDGFo?bbl;~Fu({1Z6Pa>+DgRgwURk+FuLorv&p zv=R76sC6XM%S1>W=qad%1G_wM3Sh6nDM0zsc0|E!6pSFE;zY!kd0?&wr8l1tn`~l0 zKjN<7P2T10Tav&7>10G6STwUFdt$Ckoo6!J;)Qlku~Vxs*jOESa`jr1$`w?}mAukM zx|OzkuRpal^rsm`;TczAm!Ag(3+p`9y^Z2s;Xjy+&E`xnc2|LnIxpPt&XsPg6uUf-7ft7w~JT& zfw+4o-?d@ch@?j;51V6l_vA4*Mm!^38vC%}t2Q0LXa*LS0U5%JS+ZNQ2IGMa4z4Ku z1XMXlM4({XWT3mXmejMX4KfvQpFUQG=p6zh1P(#hx0TaeK{z8y&FKjo3kEhe;iDcE zfcF9NrmRd+z#75I#zyOzI${$C4z8egkGJ98@%p80)mt99&dA=tEGF*_>L9oaR=CWYsR-P*G_o6S+z$z#(P~a{(6#ymX0~h z+zw|!lNvkPaUB%ja-FB?(Fv**Bgd~HFZW*OO%_;My4Q{$zEnTq*A43HRN?uNFg=hl z(mS>Jp)!boM~Ci|rMz6Z8QFl};xW z+VC;%K?kAOOY{Zm7ozQ4hK7!RFs`B9d6c9mQ-&9ZPv@IOdauhoi;5;SiiX_ zWHK;M)?aq=IP-A2oqKccL$m)pH~*+mz|;ySZZ3~)-BsluH|nc;xl+!#{ao9QcRBNG&Y@@wdtJbh8!GYyZ)Aw zzW!rQ{z;Ot{z+k{O^#r%wLyJLxwd z^XJOJx5eNf7|~5`*>4^z8HR_EXsbFq6_{Qh=&*U_cl%k zwM=iU2Q-PXbe70@^dA>Q@*j7JJAQ6|4-hly6bGu#Guf4I3#=NJmMq+jRMnDLMGTM8 z6FZqoQTr`j5OI0-s_>JgLyrB~1ISJSSW>S5iIM8Fd`kT8G)kmiG74kB5_qw%knBSo z@oyzBOWuPdb_$`9K7a)3Pq%~9W`D>*IUiM@0O!f@)4ww;cr6QD5gESP1B%!6;MicH!*-Y@P77+wB?U{(vm~ z0JN-bp*I7tds}$B|2Yv_ml9GUw621L=mG8zKA?tYOyL8Y$OA*gF20al| zE!BG;U}OpgXwsPQkfX7WgsEmUAWlI(Q%5G%c5JA@ zvU7cnaQC>*j%_XCf?T?a7#|JPH|92fQQw$ue`M)hN67HnNs*fMopiZ@%w_PtA1jc&hb32b{w#B}vxOro)&kk4QYrL#`LlzCOWDbu%nMm`flvZfG|KV$j$ z-FNRE&whE;GvWRhXt!eH;b*Q&eRI=I-{8}UJ`2g|xFh(1d6<`@`9woMA|kP%%i+S5 zK1F0WhSZW`Qt4EZc`V(MZsAXaeCedS(Vb5ELclEaS@QrmjTB5H)0hpPEE5EQNlSt? z21ITlh|EwEWF@giEs@COAQx(+_op}^iJXqHgKDa5asPlpLpVlbgj@6s?#6S zYL9`li=n^zx)AA&B=wJxE3xcTD*N=wh_LiAeKO-y5#$mc`A=Xw@xj(!AZfrCg?F2! z%%%|*5?(3e55O%Be>hdJWqz|Y>@NYc35+My#uxNsQ%rG0cZ281FRKs`l-S?BR7$Qh z-dVrO@Xl=E(CcZ!zjWz~bC~pbD^8Y^*o%J<{*O3DPI*%37d~UUCSH7g{XNT97LQ$? zYDwS3-Mc~fzXjb-ryofsKuafo;|MWb{O%5q#oGdD3s3+{Gu!C$mzxRqo(e`nj_uaPooI_7+V3f_n$&KXNEvegYzVOAmOI2;f z%Txl_vJgS~zx%NlOt`B5A1jvKoKv>6a#W5%cB9YQE}Ng#F-&RRe*ZmNFS`A= zffzY&T}2~NcH;d+T}$M2l)?WJg&c4iEkTi+0V>Z^9RNlas=*@uckms`6J|+}MwkVl zE*N-dTsD!&Rw6C9;`uACcs{*j*L;_2erJQvcU_02%bc~Ubv}FK!A+YVd~oxo2X_nq zIxLJ(Kec`BV~&r=1*4{GtdwIw_4r|;;(YY{D^5OnWS2C@x2K~s>682AHEryBn;yjZ z4?M8>3E?~8cUvB~Zsk;R?@dJv+4DFYRsX`H578avc%LRj22up7SnVaEaV$dP+@Mb2 zq4CIrhOkSI?M#gOW_%ee~$=YyOXUUtta- z@3Q5iMlTbdyK_ZVk=cxE)U2`ldFI@H5%zHXu&HYiR*LHY$S&l*@|^Pwk?pbS!QI|E{fuLT9l>Vn41g5I@&W>ri?f&GFo z2Mvui(Ha1iNH}VO&gaA?EjuED!@2g}wMSvNZckt@^ zbBcT{_aqY7%7ddWm!=M@i%rJXYvdmtmEHZ<%5=2wE#Ya?`{vOxdvUPHUc~Hq)u^&+ zVxd}piz@JUQn_L0+rqRxfv#aS1_Qa)SFTn?$r9m8tB0)&yDHj4Q)OzVO1NO^@T(S# zL(0QB&KiTUe&dAnr^5A~AR?Oh+sP8L@Ls*u%05spT>iM4%=WoC#%#@Vlnc)Y*M>(1 z%>k=bX=I0!#ZUiZtZ{s3P3^i(18oF$Y@`P&pb7q@ zvO&%Rinll&IO>Nvk;2BP83HY%nxOt@^RQ6}1388?OVhV+Wsgs0?25ERVP|+&EE0^` z9;D*zmtfJOHEx^cUSPX*CM%hFt8IaM+BUL@o;Mw^gE?}ONuG9OHsL}9goCExOl6k9 zcBF9hZPPbzo-Rz=Cbo417-4=XMb6q`w5^}k)dn8)rye-Nvy7(}Gh*3HgK@Lu%)3+n z3oI%!*v)_P(IJ#lCcqSZfges}9(VST_vZX!8Iyu_9WRljFOkeF&%DGjD#;zAuOeiL z)kL;tDxm*yaTD@D7Ic(j;`>P;SyBFLyqBneU^?`pM<(c}IK9OD2nZ!U*T9lL1{g;P zQHC5spChCsLWwhCBD+2mm(S2;iqgWTOcCcZWEYknl3hS(8+Jq-!Js3u!vGXFx%%`X z1GZyXL7}pT{gaax|rmpxnPf6C{R0 zTib|2S=j5#k%yaW)!9?dat0A=*X;8^v`SQ&KeDAp3DgrAcLuh@xA;PZBR zg`=d<4p03_tdo51mGomi;T*5W zBR30JjLniAk}JV|c8{b_@+!PN3ED$3pu<0a5gVJRMq0Nr)(md5j3YKqt%Cs={mM&V zt(QUujwTQ>MqnxgM4FbD0^omUM`j%X;ov|kMM@GAVteUvCTv*~XK!V8i8e-rGO=_w zoddypK}UkYEyU(oO|oKfA7hGR%Au_RIi%5mMX8P!NNn^DF#hO?MyUXe5YZ^CBuAyz zAaoLmQ4tEOMf%#4pPP{;jWHM)?Ifp@kt=LAg`7AKI~*z{W3ezw)pVPUQEMy~jk*Wh zTB*WpR!FsEi}0SsqLk?wqmj|el+#Tnl^ko>maAr>%xuC2=oZxEl4o@~9aI9XR%h1D z(rWcqJyENP-l}^|YjhfkRH_Dq0Csag*5}@Ne*Zr;M)&xhr-|1PuRQ|g&-ss8aV zHQ)cOM)PgI#`o!W$Vm6yr&5JrWzH40eATw{n%~Tk@(&l_f~OwphL< zCqVa}HZY$G%oj?XR`mrDRG?uJ%%7|Dde!ITbG2SC$p5Y}8a2z$XEq>ISjNkZ>1)ov zgE4B@ZHNjMe(1B_iMB^&AdI3IXEcx*Chj7 zB70ZAgoM~V!p$$OCVPKo`w;0RGhZ4!{v}p2VcgvrJjUJQ`tKgHL2`y{a5*?8l{pSS zVw`E_9ZV7@{DRZbcUGeBT!b+Rqb4RXao8LXXKXTqpXO606l_ghxNxwE%@d7RW#3 z3UEXjf7lI6*9ic+0Pae`^tPR>QL2SMsL3oEYnGOP$E&ou>S`~7xQVo(=)(GU4qQK3 zr?C@W$tk9f*D9E@M03cl(WrbDVpAIxG#Fl;5L{*BOWVj61YAL>qYM>lvf-j@87tpW z>ZJvtU!o^7M2?;aC>6H~*pz?_@A_f43oiSGu}SQ@oNif|jUiqc=UP!8 z=>_F32*pk3PFPZ*vcpA%CN-p;Wxmn4U-oTG7E0BO+K-oF$b+b15-I&yI4^>TevPA| z*`O%f1ySQ{Y5ZqvdO^$W`%*F%#Lt9hQ~Pdj5nk<{#WM`}1&EZna`}}EkJxL5;b(RK zf@)(^i_(k8hi0cS63J zs|Oki5QJx-ntFo~>>H%pY^E}xqM$b5MkoYvA@~kW?9WyLsNftU=J84%FU=uI1-qz& z1e^PwZW2CepU0^YenL2@YGH@)Zu1jQ{eo)vbm78VWF|Q$<=}w5W#K|%AkIaL_Q^~f zi|eTOp-#ROKBVnH#1e_)P3HY8s08{;dZ}0gP%Po!hLQr;BV~334uMWAl-Bd--#Lr4 zPP?Qdr)gAseNmTiQDw`*c6`PC1Bk z|3&YFAt(-S5J%N3gxme>D{!fPNgp+SjP6|uarzfLH$e)iK6*+D$1m-L*m8QjAGFH^ z!4#H29_}tYGe9>0-gpLnEkFNVf|O((Fhz0>mN{pkLJV{|+nAL!+nm@Nc5q(1;$0 zM^XlI4futW(0Z&+Dmx`;z%>=+F$`--08{c%b07caoO2rfcx&P4E_cI%*(-V`x`@j; zY3;gE`&aF}^~k{oo~)8NnyMR&zN(UV^8aqFW1e}|cCqmFEzbNRLwxxa?}InfKOla<+Aw3N@!C?SkfJo8^8o_ zI-fw6;_#rs8M>Q+4?{*lf6ip$gGD1_2)F*3nIb$OJoLNYv87o1MtGo;=rMVHc^Mg* zzJq)5cfvzNlfHv34fMZg$+Pso7znVXSU~|SIp>ji?}fH(>3^H-I{4m&4?q0ywD-t7 z&`*A`g)pImWS4M#Zu;G9Tl!s%h6&iR8RREo0+8h2rQ~oF4^Cf%UjrF-Vx~<}RSZ*I zE(2MIVn4)+wu!iV_&KCBJ7WozHtAvFJ})oAL?hICnfWHzmC33lUvkOkcX2xQWGg~> z@BaL}sp{L$pV2vjL?679*l!~z{`9L2m(0`GtD8C#ot^Q#F%1oEW0p0nz3W%&ub4Tl zv7>Bsdu8sZhQ_w8CH3p>X8H^MuC2*;raREK{(9zN$DD5BT3H_a=?1Nud0!pn*^pUZupA z00^Tj5tSm3ES7<&%$QX!=9c9_0)sU3X6E^ShyF8t!uA7Cb=}?d)XA@&a=V}EW*W(c zOu_RclPZ>-{Zx1NQ$Vf%1X5Uw9d3Fmy}|)ud-_SSfJENUoGgFpK<0AjCt1h|evE%Z z;>VXe18_1@Fu#N{v}Dy$lYcahh+FBgOa3nO3B5w!-!FNJjDG1I;T;eXh*@fdciwr4 zjDCtq-A8v`@^_NF?=`aGOWz0iLhnbEgMcy@d_;QkKk$7ipcWA}i23ZFsLEMr>E*^m zNiljMCxS`D0CtQRk`;cwZFtH2PC&AwZk-Esg4y{wTFw0ENVACmqI*lPKgx2}QEvCVye^Z; z7cdw4Cy!~hT58(tTvkqTwpOE+DP#Ggikowbz?sCpE1Y-gkZ|y`3z*$+64-JWdFkBM z*Ij#OYe`h^Gw4gVEuZc6IEwvFsdR;*#pxI9Sj47n+C_64wj)Xcy{3t;pT-^ zp1g)@-ZnI(|2o#{s+>8q(rfAp^75*M!p%o28Vqk=(~!6B6Rq}RU(=z=?xM1(WkubU zhnjpJYqg*F8xK`aD#}}&S2U^mP@|C3P(crm1S=Pk9!@{A(q$bR3U-;imDb8&gx;j0 z;T429XfFCd_&s7}e*eKm7kxl#5W7Zh_&9LS%OJK_PssaKWeGE7bk2mF(NjBbZ8CnPRDNY_y0vqvSTwEU)@I|E zO68Zv=36_MNF$?~kh8xcr^0{F%jpBc+=KqI8uz?&m(F%qRQMx)?AV_(LB-(KX^Hq` zc*ZkN%k29pbUyV*rbJ(s3^CW0uoy3ptf1(|FpOf9QHdS+wI<@yAcjwBu(VmQ6c=8m z6b?EH45R20DOnSoM;S*<`PnH@ znU-mbX3h<@cXoy%caE$qshO~gkdgW$q6rpc|}mM zfW4fn2@zHg?ak<`h$MyQiiQ`Lv=lS5hhmgJXsl0?YsZi4E)8$=c$QBnnXh9F&2c*$ zo}1qk)E{n2YI&bMPp&&}lpO)v=eQDNTY=41B&;b>thIE#&z#?7w)+at2l>OB;qvN; zop}qqD&bJPd~C*5L)|+2Gh=x(#-YO)hiLs$8|GplsgTtp7@+wT*fLZpU7J+vUEW}w38eItqmZNf`rIh|C45G*4gvtuv2ThuDXc4 z_`F(~o4xr#n>-TrA-kYAe{7|2#8J7Z{f-(gd;Ga>&c1)lWrqs;pUj`koHIS(pOU_D z^8LS$#%g*dRg)QD^LVnOJea-VNlv(W8>d}4abi{VBvc^g{(<%>=A~8;kSobx+W^dd z&`(FbE}}m!n<$swWH;yBxQ58)FmSG&`4)_se1oQtH6u;oagR#y4*UV% z$RlzEQQ?Bxx~KCmCdnIwnIbM2*apCK_K0`0o;qZC^gB zrnD~peLitnc+7HIOQfYaR@=5i$KjSiQ`sTL}ZLR4Z5zHCAtN>{bMsjN!6PEI-ku9@ESMg(;v}J0-^JMuS7w0b5 znX@cD7-?=8W)2tRaCYfAMyrX35sT!5f6!STjzv9;6_lBvK768%HD@<*NHttQXnIdk z?y7^F`IN{L?uU%rCUVHqK1zo@akLs-EoXkZnBZUz#7i_Tpn#3a5+TYeLYd_#dc{U1 z(h#`k#S*5uBs;gUF*loal*U~7`L0;$=f#;4=AN=BEs2&1-}$2Zg%57C1^v#VI#-t> zJzRMAY0~-3eWdazv*eQV6Mxve+y^*iS4kA#R|fn- zu&3e;qG3vLMn`=l-=NG{P!dW@q#yXDaL&2329-vr{@Uo%C`>lC=j2i0{4mP|q$wR{ zgn!v%CnO%Y0uBjp+Bjf5$TTk4KkHU)cFe@~QB_pz^SCGfJ*?JQKf0@!=#AcW;GQ7N zoi;maX8SBB zw0v&=GnX)%`~NoZ44HYcOdJ!a{DCi*(Pc}iWH`|I(H=k{g-Q{v<}ma?m=r%QWf!J} z8H0%E83q-u1cZqn?7c^L{#>B=FH!3BvbI-O&wt|5F=H-$V*bp7Etk-A)B;d}v8Z?J zB4WCFFCq`qCkDZL$3!R|>lU7)++0^}S32aEDj4OA`8fRuuF~3gDH32)EFsOzy=Bgl zbuV3)$8@b(Z6hmq6?u zdXVtQzxf91Fn&M9rzk%aFfXVsQ6;NGq(q#$=}<**)WJ{ZWib+A-;a)nqTVnf6_5cn z4t)>}4PzEXog;w~#$Z1ki{Lk<(qh}xw}&MofCb9!BjRB5?P=tIsR5L1!lWmvIA=!w|rhUdd}Y5$nj z@Zd2XuQLzdk4WtBzY3^hY>D1*R4J-QL@7{T4h1Gs&|F;1!b2qrcn-4Ri{yl`y@Yd0 z*^pzgBXmX3x!4)Jdgi9aQKc`rW~P=gL~>^9sMO=stc>u zp1E|DPH z1|+>G%%}<4&@;lb7~m`>2842kdFnKRX;3oaB^xJ=tNn^$zN#HJY2(KGHZfn-jm65O zv2|Y|sE=$MDk`P#+f=niuhp-qLb%_?NizMK%8mDJtX!j)P1?vF8!9)6SVmEIG{8bp z2aE9}WF=dHrxwk=qJ>vZKCOv%Yh zo)At7f2FjnBAx2PwiC{psVaa#f^a&N&m&A4FlmWM^^S9%ZFIKlfmIcYLA zle~cwab?#R3c6H?C69~O?j5+5(Ku}I{&=DcPF1X14!C@Ld06RKKXaA|hyZ9WLm+u1 zYU9HRsSL0LRFN&gn`8*8j+(;EIWTVc&J}Lr|J??}oqO%vFY7Pd{Y6}OUwA+M#qNvh zzMOllm$Y2A^8D}4UwIj6VU8R*BHYKNenP=LIsAo_?BrvlN&QmChJE`sbiAY%o;Ws{ zJ^8}+nDF|rXml9KiJ>Kc>Yu7U7@IPDQ1zHiY1R;GVYn5!>kiY=A@hYZ6D5!jXKm9F zjgDUbX@8jR^5dZ3&mH;m`~C4Uo)bA9>NwaLyc_};espuXotf1sT)&St6D)?TGRdDT zPCw<2Figb7ochV#|KTi>N(;hPVQX42l#brCNgD1 zvWp5s5{;f&-4$_d+2V?%|A$k^r5fdYhRjiF3}qc7I;+Crs?HH`C`>$a*KxQcE=)hS z=pzx^E@g3}=pCRZL~ZT#1ON~Xut5lx&eUcc*{uON08|U3d`6q&Pp<)B?F42E1NRRy zJM%GAHH^}96C?Sr?6UqhDb*1YaDnW1aE>TLszQtvMYxNSj>v)_3QAO@Im7ql1+=foE6>vkVT=e zML-E2DW}+g0qxjgNR(UI1)Cq(jDO_2P2H0>Z=T$}>HXxWlfN2Uojavei`8=j+%dd!-BCV*E({dFq=jrOQYQES*I7_41O!tkCj<#5M2QaG8ryvdqK7=gu9TZr8csspKTHAy4i_ol!q6 z<&!|m64QwpObHr;Z$XeC@yn?D)x@T*VtiL!l|DIvw7dzSd8F_dSYno+%Z(I9k_YJj zv|M0aC;$HDo7~;~Dq$pkFC_j<8=icM@OSfRWQ@v%95YffhmKT`I%QJSENWZSf?);l z!poo|oEX;_!8Rr%>f(a^n0^QrUm-z17`_DZ-=T;mxdE-G&1&Sa35xRsy&xnq5mJN0 zK!wb!qvfZ98jkQ>%^p&%D|XmjyV>G3!aoc_lNykvoS^23*1T~x2U{uIUmA95?=I9L z*Jlw~^}!~T5!peeSTkrd+Vf# zRppW?oSGxi$X>^L&`5?#8hsNQ=(QGe0tSE&-C`W$&(dQ$TdnBh+>We?VZv27Gv#S`x zZY2OyBt_P2SMC;6st1M5LWQvTL6yp|2gJf0<7BwUm3uT-o3rxrvdkMw@MpJCqwJhC zsZ*&j?k0Nqf?0WWb$PpuYUTD_yS6LUDAXx#+PCi}1wHVwKmF-3dLTu?Q9A&nV6oSo z@k-UhPdpYrmPL~F=$s-#*jh4}6K)VM{Y!r-HzX`A;+Gyg=WM=6{lGoW=DZ`R5fm3e zUJ!qT%nyqa{2SQ%$wGES$NUcb69&&849DX!S%_!9&{1|m^t$s{#zpXjSU!ThAZ`em zpMkBPEKH+)mURqx;F(k6X~?W8PDi4?A>1LBv62%KdYqIl(To)^r+k4rkHRibtuKrp z+A+}kFuI9BP}DF9=o3}v!~q124L~~#QGm2Yp#;K80}BN8x{HW(2&G>btrLYno+H9@ z35Jh4PFn1&B4`XL_{g>k=KW^r+_+su5K}zr`hwB#F1xI|d$y4oOH{&}z~X<*=X;n5 zfz3sWma*%`tr432PLpt_&gu7BDvm9EuOiIYq6=p1X{ncj7rFYuMO!}UiUBs)BTs*) z1o`Z5JrSoV`*u2pM+f-Tl<-D7;B|slWs{gddl4xwg@uU$RM2QL(h>#HgZf$A;YVLG zl0$wIQT7Opo4-^W&Ft;P9i#4#aYx_(jN}G|+H66>&7adGyzLmnne=3yCCIN}dz^55 z%q53NnLa4o_=l&E4%Pk62f{t%3gK|tBrIdDXQSypVUnQ#)ZYSK&Dbq7n*`JDF?m)27D?iLX(kMOA%T@ zfiG0Ffqf_p6^<=Uz=~9Qb}N=Wa;dfq39?xAiLF(tr0^|+?3lV+4bD}=FZvDP!*|ZV zleuo#==FO+)Lay)iB4#-+S-?Fy@|QJIIp+>9J{11)nNVZ*TGkL-3_oO9~YaG97`l8 z*{J|YePRu82%1q-h4#rUt33k4Y)Nlow(4E0rq3O23t7Bbe$|x$vS#+eW=Ftc^%IBu z#`5&R9&0=M)JgGTyx2DFr|X7BOXMQjAPG%>5=Me~z-OXC8J2#zo#gSvuEokmLq13>Ks;moLJ;z3yyYjIm? zg0+BGvYJ>*qa~#P6T$wBIE>PGX-G8vh!q|}3>8NeL~*NpU@c$^L@~tDK^DVraY>x& z?bc$O#cGkc2@KvrDU$WVlNFHR@nrPQ)cb{S2>N5OmC_7h^vhB+a6Q4DaVe_5(lU!# zw4+1&r_Wz*i%LbWS3HQz&{u#fCNW?^PSAZ(dZ*GecfnPx^t#xIhor9}Uia*q{^*2( zor4b~3k1>VM86!(%Z+PMc6V6DU}B5XdIGL@P}a@}*xZcN_4A&%c+8lK56{0owQc&0 z+cr&|vU&5AsnfR3n7%D_{rtmp-xKq$XXeNZGSNw8Bf?kHe2W-ikXB#O|-cKR7uZ5(TT(GVQ1;IKD*BA^?N;j z@0}ix!ATR1xOEQ{YHbdiSq;J%Z=uHSbC@*_zsJ8-uF;r^io9-jp=FLI67~A6TB9W( zn-kh*Q+vJO4pAtKQNPEeH5!aIo6)4#n%(}Fki*jDi6SSb_5z#QlcAS z@#%&1i23tyME{#Ci!?+UvreNCDv`Mgsb5hG8a^*#cNk6fiCMnPiX-Hp+aBztPl4Oh zyHn6D*0IHn$3DB=tiNbPC^UlpZ*J0?V|6jJJs@Q`rA}qn+Rc8tYS7vYi29IOYhBsd zuG*5FF<(~HWYziASy7zd5#-z)PSo2q#2&G$?fT0GFSTxP_hrrNTFu!t*=E!SBi0Cg z2=SRH$2YzncHm7u96A(;d=Z&(Qi-??nsK-hIGvf`4q1jA~oib#XKO7tb8)6w1$r@c;e$bb_`&F~Ni2jzvZn2Fw$ zz~B)d_)khjggJGS~kwcJ`S$EEhn$FG)b)C?Be?Rg4{?f);@1;dk*(~!#;TB_6ue~koujG{(Beh zUbt{KVXkcLp4__g$fK)QtXTahxoGr)j=G9-8WhCenK&*7rYIphp6F!0FZDa$cKI}A zbC$PH6CR9|P9~in$MVcdqgHQm<%JWmV76W(Ra?!jyjZd}yEEKSQq&abG|$;JC;bSc zi%r_Ko|C*fHU5MMZZ-d!_K;<@%9@Wx|6OFrky`ijgBLxNotf;yC;P z19KdM9L-wjp>Ck8BG5)h!T0r&0%+sf$hTN2Lv zkjxKXirD2~To#O4g3+K1RK6xdDPT%wEeGp9$`BglwrgN{jB|EL-iaRh)`YmW(^uJ7uLBa*m(&$7XGI-Ke zN;nA09{>_C7UNiom=;}hVi~*+tXPQjh2p-!$Alh2G7T7~LDWZk#B@Y`_||eS0j5c8 z+}MXS8)x<*jNC9-9f5cm&Im-bpfa@rDJ#}aeD&mfrlGy%ww*gk?W`wa$f&eubjT!agn2CWzTsF$9FQLv-MyCyzdwe%0(XgSv}M>Fy@F$&>plh^`XnrC<3lF=|wT zxwE#mprEjD7ST?yA%cmit*xpe>+d> ze4^cc(iT%F0-o}GzhxHDd0~0Nw%;391a(%WY$gC>p7cuGwE}l#_6uJTU3%q&Du-Sv z1BNQ6(xHc+GOV2wta51Ju2zM;w9pK?-$vo<7hb5Tx!}@jjIK(9#}tXZhOa3(4AZCt zeR8mWs=yNvM86y>IS;5hz*qP;0}qHi0D~PqBaSeil!iUQlCV3>8lbEi7?siLw38X7Ay0^wp7>Q~U9X90Kmz9u zGh;-Yf!@kam`UQaU~ zKC^g{E;aY>7jX`w7r}f$FY=D2T_qmcXkvb7<8v^QFe+0lBwIdIEMQiJi?iI}QvaG9 zFIlAGEc-(x;`Yw!xJj5VRhrI|!-jRvUkNW&`eTdRs$1-4wL%XTJcV-aZoPtMmT%{l z$~8)|v|`{C&B}j2h3Jt^>K>w12|Y-kXd!bQUbiuM2zE$ z5%+bOo?z+mdio*1I#~xKh1Nl9@bD{9rvijuq<*AxPY@W|#D%3Lf z|LDW95-oJ%uc7PzKjz*$Fsdr;AD?r})J$)wlbIwl6Vlsc5+KPWKp=z?2qjWO?+|(s zVdyBJ6hQ>RtcW5iifb1!x@%WfU2)a5#9eiDS6yFsbs@=IzMtn#5`yBo@BZFDewoaj z+wVE&p7WfiejXa4W`Z0o=tf#%Y#8W@tEJz+IKR>U~HRPH7}){FA_g z2@RTRpp84qzJ|6Tbl~m%2s1O8`iyqZ5(?E!d*MNCf_fBIp0pN>Y$)^p^{g6c-qdT) z2G|`q!rdp`_EOQ1xd-;oeZW1skI7UsOBvE8XfB>qbJ|9n@GEyp#)N$*zuR$;iHTMl zMb6o*mJJixJe)xE3Q6_4>)`+&0VYGZT=+r_+-_y*&qQ=9TDu^?KY|vD9{9zI3DK(5 zME=Du$arMS#9PPZ2`ya}-Oqi0SJ|R6){pAu>P}GuxC!H>S(E&)JRvc zK(%pLIt!%_Ggh;J!P3mN(C&zQ%b!{2zgdp>O3i+p(=nue_40cDaryCg10&jdx17tO z(^oG`_H-m)1cDqwb`64b;Smyx)_@t0hzGhdMCC4<9`|!TD8jm$rK?L{m%e7ES5xX| zjVv*(Fl`#N^Ymjk_TQ;du2gC}db*#$3;ZWOD(u{Xf?=5$H@|z8nKTK#24ycWnW{7M zAKQD&^LZK7DvgHE{3S1zo_>f1NH&P+M;%Csfl8EPu7x`aIkw>Sb*g?XAd3zsX^HUS z;UC1y6~<^aDLl9k{x&4~;8i-HtfOnX;mQ^KYx5>mteILiZ%SkHXs&4RwL5E-R@LO( zM6u}hNxwS1`A=KMZudb^r4d&kLjbo*jB_XUZm7xw()$Npp75WZModdD;0bDHwr`R1 z_{sVCpn^HUU7WwBZ2nzSn$~Q2(Y)xssf8Q^yiQfaGpCL)?csqTYl$*OC+Z@HVq^XB zOye(GF$~=Qgsvvqt>JX}F)?~g{W!WMD}jH~8i`yrp|6CFShk_1l1@(nOjnF*SpCVK zPZ>c(Klp(l_zKcZz|T@YCZ0yA0EZ^D{lW`$b84Z^U^;j-tpQBvB00=t(w>;jRGNw zHbmPcyBkeUMyN*Dp&<=!4Z*9_kr2sB-A2w*DIcMAtDSr>qu8;Cw5OT*sv9K9fcGOK zSm!4y(a2K=dfsK5;!ihJii?WuI$xqIGc`8d;YdoW%gL@wbJ?B#*wjo{qOWdT^k9m- zk==Ptc1~SdlEaZs=lt{%`6zA(m=DT}5dFZ2(yka(5~#H%rX*T@>g=_aAidv5RVz4Y)D3sGFSTS2r^}yJIAKH`4lg%ntx|R z@g|#cj@ugfX#OhfWp`jJqBtUbHkZ4DSHKDHin0O4ELt|2GH9gHaP!L}3}X%RMu9^v zuS(%Jt&VKN;Q3N&Y~gBXg}t%bWVW+k1Gq)5L#s5@ZkEsLIw^XNABqBodZ8Z+V-=0W zNfK@`WLS{B9Hl>p2R#J6Cms(mA4-IIVD5qlOg);Cpn%vztqY4NIw=`LQ{iB&^7#Wa z7a&uV)>V||WdnY{zt5auLkdb=`8s!>hE*dQPt81kI ziO)fk1BII*_SGJx{lTuOLY^sHz={3|Pb?n%Yie4$M&R<(ilKI}PV{R%0}AWba;7QM zlhO+kSbd)<)y`7?fZ^f#8IR88g^8yYJUP*(>zlFUnxzNtoZYl6N1f{El@=@+k}>b# z?4Dj;?9= zS6nw@ob*rWHR+$@M%;ibXjl5MM&Dm&83`?45etEsp3Zfah6&wn{SbZWiSl#g2s8QF z!b4X)kx8BIv0a|9d#)&qO#jKn1JeLSU&g}PO{iQL9$?_n`%N@9{Doli;kV#$3Nk1^ z#U4_1qX>;tNcxH3ovQtK_!)Q;noSJxssaap?qI9Elad>s5bi2j#ytCs3 za>OCS+>#mBw~`ecHs)WC{zzU^cx+5Je#R3lToHj6;g(tCOO%@6wkpq&GX4R1 zbtJ>0R7-sa=3topyX?tUg83mJE@(3F#$*?KY=Y=`;PXg{F}hsA=r60uXOmHR?c0m~v#F!u!V#*&AI! zFCAz1AzPG%yv`L)O!?wt1!(?ra)UJ3BIHo!{9Yy?_5{>Guyf`FChX$Fc_I zzkl<0r)IOI1!D?xv z|1Xy@#d)U%ppGeWtaJ{l2B)wBCoHNdN?uM*O~xylSFjm1X(4SGMWdi;NKxSuf(5t$ z(yq)xWA3qIH}GW;dPcJn8YKu5f;{oiO;wizg-JCFwS~i3j<8^y&6ATjN8`%xe@W3ZTPIsDF&xo?<=iJvK1bU>vQqQpAR2|98e;? zywn>Lli7c4!^k9)D%NBa68o3AL)UnD;d+hQ!;L5&d5@<^J+vey>4Buo;w7UeC9Ww; z>UC`7uuab)c08w7zw+VUfg^7(8}2hqI@xh>QPckSg{{)#cJ`ZoB^^z5>Wnx}rQ)|t zm9Bv?Y4QiD9p9(jwKLujJIq}-HB>Ae=~c1k&Xe~rE;Db4B|o4OT`5J0Rv@-mt!atz zj@X>-1Cp1zVgT55j#C)|HMfmO@q}V#n`2Twx+XYdZTw(Y`5GfTH>Yk!#zc-pZW=AdnU&ctSGLmPRA#Yl%*st2 zE5@3|99PQ)1!p??$QLg?_qS8cq3YGk^9J=x+wtQaLmvIzOJ(X93s+Gg81?GDFTVN4 zi)CtqLG-vQfkdF``vU)J8+thXfiD0dYXo1A1iUiY;}P;M1b7IG9)w;9FLlWY2N_j$6R}D_C#tuFLyR zQg?8Y>?h+f4n;=rDT>*O1&SreUa?-W86MDk6bIlb(X6-=xcVo7u>QE>DaBdEvx-;o zHejCOiI7E?piCY_R(m?>8YV(eH+fkc1o9v@DE}J~P!EEwJy^lDDl0jm&=M6(WjI1} zhsug1OnxZaJWem}2`>S^DmBPMa~QOGSg}|L3CHQ+J#ajM_k+p-7#qsBCaS65;S<0J2iW7)(J59wVcB6%k{?6%EJ!OsS@Utz_$(y8; zY_=t%V?5*DFrIlzZ{ki!YtM2>w{6Pe9$-Sq>~eHS?^dvtrb=lv8>;ST64@AOhk#MC zHzd7!sHq55P!v@j9C-9X0WZ0+LTk2bC|f@z1F_*7DLz zruI=vvH$QnNO|>oNZOsqiluu5BhEgp6xpgOR(aQlPoGxv0hs4a`qNCWlU_c;dVlqi zTDma!WiF=mlT6^9KFbP?yQEJ)%wpTyIW&YF?FBzULCQyRsUJR;KJU0*`iv#~`OnpC z4l-gG(E_)Pgd|FRRmT4(%sYi_RPEM6;$3%-Z%5%{n>c_iJhrLhpPL>N-gq#SBPHg9 zDzo{9P0z5IZB?7kp52`GFuR8^%q3e+zbL)g1bTBFEEJU4yBB)6py1I-C^!=N&1nNd zCbKBK(G8K1;))gUZ+7rVPAR3Vw7t$6-x$fJPaG&+8+m@w#PTMtSUR>8IWwlE8>A1U z(8^i-@18xi?eGFN_%(Z7r8sxBlq5ZS&Db~Cl-F;l9Je^~taR<5acm>kyS*=)&e>K> zn6*kON8)>1LFFjt>#TO+!OahJ(gx)D`j_ncOO%}4G{JPx7gXF@3{UmqLN~)yN9>Bc zpC>`rSsX-oGVPMHLph6`su_njt$XR&Kiz!upPqdwyjDEi%D68N9r}`S(*JBYcVz9o z&$k{p(E9wnYv-(faNH~R-S=Ja_ctH>=)vYCYu{Y{=JESp5mvRUOUK`Q^Y~KX!uq*$ z+wUr^XJ)0&pP$0-5Nl^v=I{ zJj$bjzVt*|k!cGIjUTvd6KyVeA${ty&7gHGB<#Q1y14zTyV}$4`fA-A?XMQk9G1;8 zp5EWF&#>*jJebfrN6kWh2{r0A9OgK6uv*5?N2oX#x;mx`pR@Uo*GrC8yA6OX273VP`NcBT5$Qr0j?G(M{{P7piqRt*) zN=el73s(VL`SV{oUT6>g%o)xA9Yvu3PritOk*PmT7!2X&#aO|Vk=pG~2a{1WGXR_p zgE>l4UMm$H7b0r$wzikJ{oJv(mqs9+QS`6EILDZbuS@=&Z5%$wIA;~Ut2=)?DwiM7V8y|a2de7gte_wyolz2Y5-{hoV zNoufec(7NxJ*CD7ZahunGQ>M#l7ayb)Ka^pQ*2}^2^dYOPAi<uj~;F1rK7F4-`>hvE3z-Vn_W?n%^t`Kao>fq*aO)WY&#u0N+&ig zJ}Q*7oyn@G$P)Y0@>jpY5>F&PG#&KoJ^YRX^+K*%Ss=<$$y_-}L{UXErgc(E5-&jp znr?_BbPwuI#L%IiL?tQGQxhLhEFNIO&2PPbbo8M$OJ>hnvg%;{q2Ii5`}B85i|$0V z!QOX<^!@rRpKN0Z=T@CRx@XJQI$o|_piwYoJ1MS+k z4@{;Nph^J0Rz&vw*R{6pWnO9y>5qG@xbr22mF}0)L#gr~)}4H_qp>6$<~$925GmFS z&0^K?9>3KCfKji9ml=9*)MPGa_6R~d<|%laTO_^BzGM?4)z`l!wMngf1bd$Dc#b>y zn)D5~h>eq4r8agA3&T>^5wi5Qbc9S$4}>iqA?)E5ky+fW9UZ(72IOS8<1gH;@(K&j zloXa+bBDra6BOoL3kUoHL_@>&^ECv-8f4FE#sp1A{n>?AMziib z$qd)|3UYAtV1Drc0u&k(6_1!N+06DIJd)YHfVjlPDl1-ccwBwGrPxwmkM*Bj&`JO9 zczs)T=dI|h&|7Ak>vWhY=o3EevYFqaC&{Tq z)3qak!8J0(ysUS8nYK5}M38q_I^SDc7B9UZ{n3JhIN{&iL_m^m`s*5hGQUi*X#Er` z6bg?OrWdP`5fltDi&4H2EUat@&_IR9LpUa5W4Rg%4tUpe(;Ger9WZ1j`qB}QTf#b^ z3yJPJRD~)R&xINrsUgCROu=#5G1XI4iK;2pV}O@}KOO%07*Vf-`?EeR$EwxqVsv_~ zH78B)v;dStjN$1NIP~7JcXh{s)q6EbIU@q&-f?ixy=5Md=FW1>?>pa>4E#k(Gs<^oc+1PZ8N16fN=wp54FANlzWFAaH=&b{ zfQAnN$J&Hh3yED}MWOIH7)ogV@}!cEsZ;SyN(m5WYD~`QDI`rOS`C|IRmP8uznuy3 z6YU4j3nT_Wj2)#Thq^tT0U!@=r>Blx9f|3`@u^wA`q~sTeE7h|h2DfqiUHkf@F7ED zuYDvW)BRyvr)4E^ilw7Jav_Gs7aQ@|s+U+3X3)W3FWt2JrdKY!z4Sq+^g^o5V&0dV z1qHkqhFbheojd#ItY@|lQRzNyUi9L?d3B#|Oz?MU#uKs^g5D++Bss#_E~hJT&JrXc zz?^emMMC_0k@h`{lHJLW=t%Jn&Ha_?_9*|MfFDXLc--MM6MEpA;3i*GXw={t1haxc zP`O~@;Da)-23idkDiZUq^f)0+6fq@S=PW6PuYLV{sqOpMudQ0PYG8bpASTE6ZY)hl zG*aHwjnBOO%*LsCJTs=3HujEB7KN<%fvc8PNnxb6k3uS-^=bnQO7TWH*Hy)gvgG8l z85Q}%i&JB8E8I|<5bHDvy5v-s&E`r=ju8y8&IB#)g!{#$77yo#OK1lAl0AaH(6h4> z(VSQ$yN2aB^90#@%0m!-u!JJq(ht2_FagGX;(L(h1it7V^eiZib?`=sRIu_INiKC4V|*i)2yOAx9uOS);1I@Ox3+wfauYF3K4 zOuA;4)LOn_QC(VE-J%WUtrDkDYIq@X0)YDCI7@<^#YJY=;(>PkSyL*zZ_nWm%{ET# zC5_}x+2RxIQr_V`A6&?+38kflYBDbn563}g9u_;~*cxbq6e@C1CRBO&B}a9MFmZHg z>&!U}3RApc!IDO{B7B9g^xk`|r1yg^5$eF`>Vbc3h|%r%WXnmGaS946*%m{#AHL;7 z=?R!_dYl?{EfP$pnC0-+&-WUwd!@fx$VwEwO6D^=?VyBEslcEkgpa6}lN3z`4yHZX z0PJK?bdvJ0Fj_W+No&{9n%>9*>{puinPiN$s+-au%71qGl-(Z(C}l zy-X=>xb4;D(X;8Ib!?q{o3`-fx)3Rmbs0h!^KMx*b`G$h3KiVGf3^t&K3Le`N(YJq z`T??m-Xc>Hm9neQeEFW!XjHi*jq+ootM5tgo!)c20)egr?CPwRuUfLyNo8iMvLbTl z7wD>#prGjauD7x7YW3UykBu=V=6-d>2Mvl# zTMd@Tw#(HL(Xa4!u(TMqUOM{n)hmcjWIp^F%XAv5s*(Aoy|L%plHZjaTRM->L;jn( z(Yu2hvm0`_bA)sevFNaIg4T5+6&Jg&Yy|O_8v!qQUC|6pyf#nEG;`oi7ov(2?tsOx zW$u{H1LI1Mvb{(D%T}Up@bb~XA}v#AsS~tIo6y!hUe3Hpod>3stXub!RwUgIXogZk z%z6oQ`n9kwl4ZuhA>I2=`@QF9hzRu%%$g3QTQ>nzmM@SQ5=@t%DGc~QxEVaeP4Jqc zE{Alb9FSjsl+J($zLMM^QvCIE_uhN%b>{Eb2iB!!>8wMCW-XNs%-qH6SFXIC z3q3(Y{R#O1|M$bvH>XTjkfI*9XHkN54q(mprAzIAYmU6KiOt`%2|=Delpg<6>)oYM zq5=0I!8m-lQR)EeDAT#pyIcQs9D(S9f?ZOoh&EIM?{pHpqp#BEz&v%nL&nrW6Gbh|z9nE=Zz&d4Rf@@`|1|q{5LbefQW~ z(y@Na-`H2D*4*%?Z7cqGjog2Fym_fl%A@S)Jyb3{)5Cj6+>5ufz_Gs;=VK3ci$ultSBF&OH3*5JvSrRY&ov&|RRcDKAZ z(cw&Ty~QfLtM*D4J5(^?V^3o8Thg=GgEmxl+BF8F4JW{^@$+qnKJ#x0Zx>;LPPL%3 zDdoN=vwA^5&Z75q_c;@~T)1b`pb6d5zaIJc$>lpxad^4*pst56UgwNs`X^hT+WSqu4jr1Y{0Y7^+WF+oE2$aU?qR7TA!Y3_<4M?r;FMCY> z>^ypYr$&JXSqv) zJkOTO`5Ya&wv_O*k&sroHp^$Wtud4XmQ7u&@r=;Yy;MG736DQB|-Wj=&+b6p7iRe>0zW&L)D!&`j4@G&%F8+)rOvC}XxURy=?4n#mJfM>!i*&PxL}F-W zkK9IO;HJ||)yaiLUj5NCL14o|7!omTpTvmD-|p^AUS5hQg_f_|cA5JFKL-naH`m7n zI=RB=4=O-BzC3o)xxBqV0Xqb!Tu66N_d)rAQ6f+M;=QQ_1*y{N7hRv__Fq%6 zbo;TFUW#~VpBOGkZ9AD-z}0_ob4dyNou+y3yBady!b zsk!m-lN*MHO8omWr)7?;DG;?sk|%t|#pff(gj0?OGPsDT8jDC;_neTvuR;&>6WRxhYVu;z}Q4(tjcOss|yB*Dg8?( z$7qdB>%TlPefo(nCH$-!{@qcKb>@6!)v8ydFK_+LNon%-`Kw;x3K}$`)|2TElxOd4 znm1NGzMq5F+ilxb_8P59T@woAsifhZH^I;PSC4-=bhbE?ZX%tNzIxlhm1xPGGD9ey)#?$3zhFH_?bxWu38Tp`)Pc?nRWaOu>(v7H@ zlDf9o9vj%k|G|rRTJ#G<8O$^XX>W<(?povI(@G+4a&HDuP4}|f?kLjO$)v~`g&X*S zz!hZRIEaPq;YHFl4|uw~M=0fi$Bt7-bx&?hoe~UINb3*u)8{@Rbbc6V9X8E&&~9{n*uB*L8l|I+P0y*hf| zNK4U>ZwhW$9hk9v`s9A;<}&=58;4Mm8R~;!)xYHW6)Fhbu&aL56A>mLqh-iT)S*Hi zVh9wVw0xuvlQ9-lBDsDgKH@D7cZu={LF`@K&_guDLmGUhP(n_=q-cY(TUG*b23?^S5*O33rKQWp`|kc5{)N;`2O~X&znq+_Ev|3VnupxP#M8lT)F{tXa(Ls#n=<(4Vni86uEij zxr*|XIyD@2Vjt;y08EWu4f$gMAVxChP$i+o2Wl3vT ze{-rKhD#EJ@$K`FxbsVGu2WcMOEg|m@UuFOGA&o#{-?NP{RjMKe8)2bxiy?IQ7L@~ zEfdOxcE*?_JT62j^u$+(_uY>$)saQ&N+fmRWYqgDRx#?5Qhg_K4@cvaa~1tzS?^#< zW`Xyt7j(Wa8^}hmNx-38$$rhAWADKLBXMvj6bUJf)Gkm>Ad7i46SLo^49e>yI{B2* zb1>K990uf+PH-K6bk+q9Dnu<+IR{;@1H7{%dPl))ptQ$`M*zGUTr;9ez`u}u>kM>G zdt?g*8%I+e)b4ngzX&&rURUgJB1?hOLAO9)H9pXprr|v~f`#QgMR(BzNda6c;P(@r z03L%p=H<{f(h)kKOoh=j`b@ino(y9E)c&-jn&BEcOpjEmQv41l;wO9}o`;I#a@++C zlTUGFbVU%HM*z_j)J`r69t!#tAQWWU3>5J`RR9)gdB0CAhvqY&gwCAycq!YK3^4~= zgvuc}i__2?MdiRTvCB_ZqTYCjI#r4M&?vJKP&BlM1bzo!Ovr*hl!mHR9HfHCSApxH z_%)>}6=iY?K;_1Ud`+soz)RIq6(jc}KB$j;D-mGp)GFlBi{i77)ILjGfMX*QP^lu7 z&l(5Uruqbjqf|dOC42C;y!70*CHgVZ)g10+)+;q3rPx=LC^ij82I1Ce|5%%_=(-gn zxbM_f6&oKe&TDW)Mnrz=9GeeJT~4&Bm2rjyl}4ACISiqiVXrP|R(u;|{6mGadqmF3^XjRN+iBC;*8a(j{I;}cU z@07mRjC2VJi8lAJ)Hr=VmtN#c3XOwZh76tEVRBtO>l&%?SQ8V{lltr9QoY8)prCou z(8rpVof99&zo$0yyxyFi#bTw_FYdbQi@S>F%w;NV(uQP>AWGk<0n_p}Cn%M=l&#W1 zQ?F8^1u*a8faiGcX6C%>K4w4c0nm)O${1f#2u;08%PBRg8040<3Uf<^7?%ksjlYiN zigUAK)MicZBsK!MG5oz&H;Abliwno-ox*RPpL%?X(#a)jVzRVWpmSMAb2e^;|)N>Gz+l?B(pIZGYpz!&J^?7uV3IA#fDWGz5!-lJEpLB;|`NorHQjTszjmC z-ebKXp;DtqKHLSOI69@rx=>|QXD6fq?ta z-5z8G>m>ry0eLfV$5^$`?5;@f6{yy5`LRZHqQn?YqRFDyXcJv_HU9u$kEVOCO|l9r zGPd;AyA6iW43kmImagUdZ_S_Xj!Uu#)}(89BpZ5f$xs?i(<{xDYZnP<%WLNGe%~&u zMWwcF>dSGPjxSq&{P^-^k`Em*VFd=2jvv(TNui+u&2AetQZ#Ze^;sFGR$5FqCvh8{ z`du#s^Pjs_ZwGu6VGOC*xC{(QwLV`|1K0^SVH%s+ssr4bxwJx~&e7|W($FlC%?8uJ z6}p(fyy8F|$MyZ7qGWMd(e^1woB-f1t5c`f)%Qzz-EQBPpX%Uwdt%=(%Pp?*dDze) z=s&SGi-0^1XD9X9Sv)Tgqgz>RGUTK9NQ_N9Lq83GlELp9$zvM%ysz-gU@o*P>@ot8 zBvrYXgP*h~k1U+C^6S?vCHzG9{bO7&w3J&?jaj zO`h0T?TZV?l6?;3_||BI3Sl44qHHcOwkQ$U=jhB-M2LSD|0j}cLI< z(l?ECuyNw1O%tPQd(WNgxDj3x#L3bUEsH+V89N2YUfIe7UX1~7qNg`14158Zng(zOWHZZB`0%GAORjEQ%lLEDZf_T|T3sl8!I;#U` zLC?`F!N%B3r}6U1%@mY$MVS)1%M?`#QxHb|q%`cV#bNea923nMVrzz3v?}Ns3Lcz1d|VaGZ6{zYv(1C0 z+pqM%ZPX1Mi9n&bNM3gq;|L#;TA-r{g+kJ|O$amzg;)r_FfI5sH8n9)NDQ}1jp0aZ zYk2S8a4Y8yvu1fU+MIZv9M{m5?SZ7OAgFjHo=>Bx?N1NlS0B$s*YYK&MZ+^&$qq(y;2J`Akhi`c2ew>|nRVJ|Sf!+aP6 z1uA_3C6dCF3pjd}fa9HiZMXut9k>Xpb%|a}7jksHyp5k|E3{*c{y2Oi_|PAG zh`OFh4RBc&G$TqC@@WrJis+;irPD*bRt2ROlCzhji^!QyY1+f=I%C1(1tSq(+8Eti zlHSo+GH4`rLZ(DJcgdJa%=4rhKoU48cD#7g_!Jcr?WTl_Jqf3{>OxY?6EV_v%-xQT zUBX^UPkbEd+B+0ok7kMsTAXo&M~7hU^b)=q#~N`GGPzUHO7LiUnVon@I@HOJ-Z=_6 zDirXC>;@!6f{D&`N1+2C+EK9_`LL3i+Z(_!_!&XEfd~XsfPsT%7pdMLl?I|2w}EMg zTKqJ4TXlP~Q?0%AR;}8pcRBf(9XpU=*4aMi(;@xluMTYQmB9vauS}aUf6bctGp6Ou zPE1_?*wn17sgJFn!PktbDh-XS0y`;{vcC6PhqjmsMA(v`xE#REiM-7hCt#Y66{;ft@pA0iz} zSjM^~tb=&Orj}C=FhH${=v%+Jm=XiYNEry&a0^Th zBfXyf>(lt}6&c)%y(v8>eTO@|xAJyoIC4Z9vg7-^8t;(adGcQAk0)o`^A)eWqB?S) zQ*`rc;4Q@;&B8y9Oe4?x%k#91=@+#jfR9jyt@?H-ORah#q_>7ARkh39fB@D3W3KC1 zv&<;a&PF<|bGI<`^2w7}d9$oZp~+O} zUY+{il&BYt2mU@3DjYROmt#gF2W44BEOhDDq81nEf`JhYWw1aXHH381y+hdo+Nrn* zGQlg@BZi7}u929YwicQ7X-uy$NOoFff3r_rJJrtqMjMfes@&YFTw(Xb8~1JAcjLtB zCDUgMmLV2l_Vgvy?TV}I6+)DKArj)lxMkb-GKVQIL>(R~uayoQSSqiWaPQozjwvmWi`5;Z$A2@%HvTz`RJQFbywZnQ^%PNos)tAUBF@Ka(SRW84X)B!CJ#z22<*6 zFILV6JQ&l^M}Q6(c)JH(8`__uVljNax%qswO+r-n#_nxVZllNzLw7H&?od=O-96Om zbXsXk=-Lv)$T_oU?p$e+)PA|jkP`P`MC@VW<$aO9N$Vf_Zu92v9$KHI@}zrIS8hh> zCproGM>Y@@;Nkzjs$nMc*boqi&}q(}iu(OxwOTtA8vYwi|HV6pd_H97;{N}6O{&Vv z+WKw$`|0(`$?H%5eIwCdqWzc4PO((~o43=5~p6-pOh*OVS)S?o$2~{+?jdTqg(ywmH0_V zD%`WDkb2Y=@4*P`b`9v^k4Q=o4#_!czsI0fAd?iXC@_o9#e0#hy+pL-V29`mXdqPPkfAXtkqjNQ(vnVrWf-TBTXy%VpThV+J86Ln zRRp#Xoy1s_v=%@m47R+Ohj8Q$<>ge#i&R$ZM_w6-#oGB=d2fN=puxe)0#QAxvb3tt z?34ue^qu+z%BH$Vc+`C9wIREv=|ts@$wfJXgfPG%Cg$}+WMsYTKKgCVO_kpDSCH5n z*DH-ZoYw0H+U>qBy;99p<%HK14i#CrAf-58b<^}83QMISvAK0k%SW;FnwhQBcCpDD z?E`46QTr&Aji3|xKw?*rVpx`w@f!#AEj1H04z&!L1u};mB|_q9*O}dIf%q}x+2Err znV;|_NIW5zU}}w{6RO-*6RHmRLV;Rx#SL)}rWC7&h}cK_-4AbHnrwAW+coDF^$^2# zBO-Nu7op@XQJ@X$hVgiuNT$^GE*c)VO9#;?@nOf$#J9K zcAdcO&UtQNnXqe`S-EqLWJu4H<`178%;gmQ$ILyD!XBEoODLoI%RG#1>xFj%ydpNI*<~C9GFl(tM$4k0N>uX1e^R$82$DfY?lLM-#^|M8<&5`68_?lI zW}+zONRW(_aFD}MYD}OJQ}BB<$_SQq*+!ufh5XaUDxBptqSQY3z=64ovj&epFgGWg zTZWn7!2B`N{S$6Fe9V^`4k@*!YL~GJViIz;0siMG!tc|X;FCr^q9f8_xFK39z z5-I2WGH22Jku|J7vluFZ*S4ooyO$OX$ni<9gm>i!MAz~GJ}qp4=EO~Pa}SvReqe57 zdczL;XeamLz`=%~C#On#NLyEMNr9EkdUd?r>nI3mnhinTd_i3sNUt)y6hfHK+!rb` zXLcy8qjdwaxZ47?>pc0=yE*06Id8mCouwWT$QWb>#q8{RvOJh3vil}EG_c8|{0VqtyR!Zfb$ zil#aV30s_eQu;?G-UNINjDl>lDw0u-0?ouQGHIr^Rfa<9+R@KVF55$ zL9={*3VN0oWRD^8lK`fee&v8#z7vuJ@%hSBp1jjjG5tlyuC>Q18Vqs$7|RH0l1ZNm zcn$F|c17tRF2fKn^08NkuC~t5i_27NCz>~nt>0*?pJm%vf6W%dgjK3*wLwQ-N`Bm& z1EmF$*nf1suS|32`aPO5UtWmc96wD{?#r#>m#GBxbaj!3do&}3wU^WuVW_?y8pI2s zTz{EnS^NRM;*w%=E!$ICnC)O6Cb%YU*N&b)YlL(syKls-rDL@>OpHyH6sk;-CEeXEy{d`^M~UA#LiWpps$zpKvy!{UCw86PWiw7no zP1=|^!8E%nQV=DC`{xYobKtLT=B9rU^MRz0!mkt$p_Ww?B37WOaq4@$`j(`Z(L4|u z7aU$2XykeahldZ(`+yr@AFJ9n>AhtOq}`zrQ8GB^mQ*fv?g2RGft&C8cD51mja~(1 zv7Mp-OGapv@?00KVgP|-Q5U9UB8o&0sS$u?X_TP|8;v#u+1bLLF4)iOV(`qOG z_+Z!c5$&Z+J^^45xIOwhq5%T9hKM7@C1MbZ>b|+VoTKeK8Y0u@9{9WYz}&h`iDnS0 z1p9#HPkMre!2^Q@b)ZdE4>-K`c(s1Bwkij^n>C^KO7(@AnH4X9D%FNwGE}8QZ=0Ak zKsVaD%RDF}FhZSG{l*(P)#W+TyZN4VwE=#$v*Ot4NfV^|$IL$frkh)qoiq2q_`z9= zi4aTeVofm3b?k6OJ{xI^&#BsGGG$s4rH^Pm&BYomHehAXa>Pbf3|N%&CFdmlC=^Bp zZ+30l--!od%UJJtpe*)(UenI&eMUaJ{~-y3b3542idFMO!6?b2KL*5!Ij$J_G7Sr+|rgT<=t zsL<=Q<``~>G#0^__eLIyF>AF3{@EC_HF6;~L6xdO(3hF2gbH=ySZWa2+&dbFKp^3e zwTe+xxh{U56e!Uk5YTuaB}C^z2aFt77)hW|=r)j$!9=k1^^Cgqj;cXLuOmT+^`K4t z++l9Xd(sZG!DMC& zq&w(71cMWseA~_!yk3%~qR#;naQ4Kj;5Z<%w`pUifwy#_ugmdESS=N;VdElD$UO9S3EG< z^u$wyF14y!M7QiyqR!sd&7JEVJjVu68>}5{r%k;7QkgHVkQADXZ z8=k=_bYU2mRIwLu>Hpw%&){~rumKQyKkbyHtNsA`x-_(n6?TPamdyb`avHBdMaWsO zt54Qu4p-qWPhP7B zf;c!c(gu=82Sjrs^=VKnkxz(6PJYhqfFn&1ZtFo|V{lk7IIP3JxOp-Dg$;}AhA&y% z+%e$T(q+f){QQ`(@z}DZ$FR}yvGhOBT=(|cwQpbd41cdAAGJjgY=W z7F48EVCw|7KC4`_@Q`%j@Rl#?a!2Y$yX(H(a#*@>XrZP&i!IpCZu?U!yMarHK0e6N z(~Bq3GZ!yrav56W2OndfA3OH>F)5v`W5%`T+s>~Qbc+^_KlJwUrEeab1kY#e#%sW1 z1)*?#;Vn+n&4y`=>8%LZ6ul2fRa=XEk^i@E2CN;a!ad zLb7BsK+ZYv2%?eA~Kv}WS~~$IVP{89HcxWKO`4m{y;*=fr#%bZI^yvS|Imm zr2~&|+VuD)mZcZ;>Dm6JFV!%e%N3J6Cb{2B()Y<@u$s(tgI-N9 zYAPLnm)GYB<)v}Ukzx7_?)1Z%r`X|56DMriG+|=o?u6{LUY@ub`ylx)dY7v|{EuBO zy=x5J&t4Pf>6Mn9U~?HP@q!^W-hrIw@fL$io(saV-c6`NQhcNa(eFK6<(5t8fviTe2ViJK=*+{_BKX?>ElzO@@yBqSvF zNz*#g`_dQso>?*!OO31{6cAu<(q3FiE&KoQp620ZwB10gn54_f5&eGl37agIM_uR9RZ^068 zmiYOw@^LW?KR)u|lLbf_jS&FekOCpqT;|9%GQOuQbSsl8$8G;idiH?_rDs3iJ|VBZkLUMlL=mwS2y9+vhCwAg2mVXn)s30E_tpJkl$y z*fSu%FhyERIvs|x90U!RMSV_0WD!gih+;(WMJf=%Jaz-H^c2Xf2DK-8TR^l&9k}3@ za?<-kgq;!0Yef+X4#trn3C^E&f>#~#I zcUa#^@*U$?-+p$_eD}hN*#47Q==?rw`4Z20{bwrngkfNxc=j4&JIW*9d1i5sSO+*FW&%vPA*H>)gG#i^0hLJ*21Q<1YGUj9u$uxPlPzLa=~j;p(&6w0j|L+ zS^q(P!zq4BFh?|wXqPN68A-trBv@WZOt~0*LGpUX%neqUQlCHr0C5Y_z0Fa9fobB% z!=ooNa|I*AKjMjt_oWnoH<+YZzIDfBUOJ{)wRz_x?uOZXVw|AwGx)7Q(WgKmaY(sufE+i9hOTeI~Wzvk|}?8NQ&OYpx(+-~s6w>BC6< z76Z3v6RTLE#1*I8Xj~zV5_+VUWov?40ZdQ`)3ig zD>3e{*bD1=6;7)0mX&HCJ~?{D_r2%3!Ka(|&r8Tu_sbqTJ;Au=dIpjraHH>dSNigj zf@NRW#740JEOVmt7Xxn|v4qS1U0*eLL?(_%RXOvtPxs3lS_1FKLO&<;PUBP-y_%mq zLRXfVTr)E;{?$`HU;V(7Y}}%u(md(;^_LVM+&8V0#-aY0&r)I0R}c{s$Y&EKQGjz| zFc4@EU|0#>8?duTKq@c*n$yrK2BItHr(uKi#^;YecUbyrX6-eCa82z@W;^`c@zv7n z_aqq}kbe8=R^qWALW^|ox{6UHZ0e_fW>ZV+E3cF8L%B&lG2y*^3onlV>?GAh z6;vKl>Hz=(uK@)_A<5SwXz?m}ivrRK(C1|69|uod5tMf1oQo@D2Uq6FA=L|rV*7?a z-aPI80(N)FXVSS7Pu=tBU0-LLC%njPkN=|rsYT;lM#ZIvLbFHb)y}A%J8J&k)vpdH zy!gVDF-vb*^H|PQc7c0WeD|i^f8fTJra!*Haxu&~K& zd3Uj4$PD=Lq^=Jk;J18h({2%8Y6Ds~_sB6=z^7_BUrp?G6 zT%8{iUzO1R?6G4n4fFL1>0@-x+sQbsIx~uaN~w| zd9+gKA|&h41|$UX>Y>0*d5PJCqE~_#2Nb#j&t^)>Yal@%pFk=(qQm9f+!=92Mh841 zSWLm`=&O{olfYx_X7odvtfHF`HL0~aU!x5w1^AiMGf)EHb%IKE6_qZg`_Vx>e6@1% z-b2TZAG~?d;_{3bp{P(~mc)XYQ^T8g-?Sw>MX5E$*wZ9?RfRp#Y}9JXt3<8Q#97o; zRVJ53uT)i5T3iY2#hmOBb?B0DEpqtnIf zHLAHY!Z&Z(kYEAn({H@z&V$$Ml#9zlp^B!ay|cz7s?~{%A2(p_%&EmCB|(%};H_S6 zq+DWcS(Rwwj0TmqvdWZX5vwZAu7trW7S0(_H(^5E$k`rMg4vWftv{>hwl~f?w|Czg zCS5_Hn&*`_&6-g?ux?O;G_7CF)(0oQuxsbeKnjQS=W5Yucy7%YzsSdmLWT!Ev3+G(b#j%Fj>TBSu>f^ zpw__F0smj++=867(&hxO&!GQv`Y@|iXYj4uzI)T`@{)$@R_&ZtU{4vVwD&FQYmwg1 z8n^EB%;|Sbsf>#>R#(-GavA!}UQpRrsZ6q(f+PCnmycgQv6sdOggjw+{)1!E-!je1 zukU5hTC;C;s5Cr)iK5A3InI=)RK>7+lB)_bbh=jWP@7HX=rcB5nOA?)_)$A2*7Qo$ zaO*4G0nXta8BFNAV*bedf|`lLQzA#lGi!P#y-z zl9w(wls=@q58ZI?bE1^#wBlgX7XKVt@AV>*=n26tghev}h|K z49Acbsu>qTZYYI_ssb#nyBT=J<#h&UrmM7CxM&D##>LSSBX0?cmY>wwAlHA`)f=OXtB?`4oRisQZ4=|BwuRxG^w2{Z{!MGYh`{_h${bV>?josn9j zE%O13HdTA$f7dKrUr7PbWp}i_aX0z4k>3ABV~{Kz<$04j=?Dpb;8r?+FhzHU z-72GEc6M{Q9QHYionTo|*EUFRa|#+Hd(T-CE%&e%V`MQsn!8EJj~<3v{KOC(JGYlk zTS+PlJll(L@ke=%@=}~dR0Y*tAx}4P1V41{3Y zb3@UnR7HAX#~FtDqpEy}jiG8i15RE?NGR0)(x9MQ3GA`4H;@>?i%F*Q6un*M8VW`$=60JJjrr3({3V6f+6E?_ zXIK%zv(tMgdB_cUh$2^v;LFJ&wo?b(l~JYZ7aDC@IueOP0qa<er^N)+%bc*@!y_d=@)A1hV&Y`*M#|WlEr?!!7C(z4)c>-EE zpq9Zhrvcs%0%=!;NKYN`75gBWmy6Ja!2^<^UM_akntdtFmX5r6)5ft0u{j5?%`6>I z_8Ob^=9_E;Rk*tL1*t8+QZ&X2yojLM7*3UE?-lFP9eL!k$%uQTM~$PkXW<=RUElQT z;DW~SBP!~LDB9cdLiEuuqtzg9Xc{ra;Tr)D(_ z8f{rHH1A@gRZ519o0R9v4Ahw=+5h5r*Q^hr$K^pAYa45O%)_JW!dBpq#2?hMh1s_ zNS)-d1Kf}l;-q2RVAu!lE@1XRlIuK=%E9l9sZEZXH!m)^HfD0b9gq&V#`}VRPuER2}!z+-;9AM#K$N(^$dr~Cf#Vz za2h}+P~E4?x|v+~@r{7BhipAjgAC%wWFrj7Ir%bpVMBI`Q1V6Rmv&2a(w_6W!t!PHqx-(kdM)E)4Q#Px zP-b~U!`iXZL$g`dAA66kU)FZV*tHD}#*n6!@*Q>d?xtGqR)#);Cnba`p7RTDL z4Q1sG+(W%5$K@2jXmcy{0MJ0?lQJ~u#~R3rEIzM7x^I# zQlrkL(`qx)(=)VMZL%)2K%*(RKo1+c7JY+ElPhpPBBke;u550~+o(>)t6n8i#jmf8nW1XBHhB>5lJLC~XT4=89`r<8QxX zqo(%VG->F%p(XKvpA?60yrrwZ%D(kcH2MUE0zD1Ak!E1(kZ^knV785N)rA@bqOc%O zP!I=&sVE@{{0sZsTw|meq5(^x*bM>FMr&&o+{dHyl3e#>)E@J@7ph2zpCI6rl)!;} zbZJoGMHSW{k6`f>o*oHDoqQ^Sg`fw6_kl9+{lVYw+IM01=shnk-1Oy;KP;4Pf8|%w z`){vX_crtW>O5O4g}6tS!BGCqqg|HrN0IE}_;t7Y8@Ic&W3<^nELwHL?hAVtzPM-f z>iO5*)3WYu>3vWS+~OUsT566+u-JE**QM{jl$JF!1d)`aqi?&xr?lc75>`tm9zoE< z{APq=n1Sfb#C?%N6Zo-hk325iZrd06icOGWI__c90jj(4mX42>@#7+Kjgvd>V#B%h z9UpOM3VF^}hM^NAd+v4UC~`(}NOzE4kg^8SU36W<8;LqX;upt~5M_!Mid`J8y?hPsg=j2!n+uy7P56f~wevR;29`yHc6Wcp z7?p{+Jy{-iw$DD)WbUgnRVP?#tmy^Jq>2%{&!hX8T1}V#BPJFihc&5%`_^P?;+n9K zze*Ja{BAR*{=e$p13ZrE>KosCXJ&hocD1XnRa^D8+FcdfvYO>?%e`AxSrw~V#f@Tt zu?;rW*bdEw&|3&4)Iba*Ku9Pdv_L|PA%!HAkP5cO-|x(fY}t^!$@f0r^MC%fcIM8V z+veVL&pr3tQ@lQ(H{B5hU3cf}4x7V@V;L~v)I?6_*wq6t@dtRqF(&Zxdh`_-87jFo zg{9(bQc^a6km*oxBtb82j0+|3Gt$9d#X?J%2b?W%t;(wOlfeAIqtZ25;A4nbqKVe@ z8qq%asL^OLI8WZ5S?G*P@uv8q)`9n^>;UDX_ULuK%KXB_tZ0`vF~1;IzRt6IISK77 z-|gv)Eyz#wx}viZ3-c>|-7zgy^wCu`W4o?X0{{rKZ1(}3OoJ%xgbRfJ&Tt)B>$;bt~Ya)oH02^A> z?zHL{FI=YWUC4L_u%Zs96<+WowQSBTzrv!*aGs7Lwv$2y=zHr!2B#q>)@n^jG<&zc ze%{XG;hsiMezkXY7Y&E#ncsi?kFPxOhr2$1aeo!7dhU;Gm3R31ubRC%u~1x$o<2R= z8k`#4%yc`wIbK)1ExM;C+7=&Q70n)*)D%-t6q_iRE0U+rIPYg$_ijm?=dI57%-;XT z{{DGazWCW)*MH=B>?8TP-^D$-<^HQvZBbL>I~nhcugb8+Us*55zK~{%u8P0)+2_6; zKQ$`angE(21O97%3H)Kw^?{5e3Q?J>K!-R4#1|JrMzTtP{cS}&H-*?hL0I&l<9B)i z6o@xu<10Ov6^e?+7tRS`%uDbl8>L@f`0%!E4`2B4(2c2kKkj|(ycU=)HYFA;TE8$q z!RSrw$;uu&5M2;nyJlvhWBAIBoSaoVU)Z|&#fw(@lk>v)QC#ne4`vi5x*f|iGwWM( z&Hnlem(96g&CKF7mzmpEY}>YC<+g1 z-E18(f+jMBv@km*uT?$Ws`}>>XgO8h2Io!Cra!F>uk%$gXCXL2%;_N?C)hp_*NI3p zLO*9c^P;nL+SwtN{ng&RU&-&_%08v`D05%sR4GB}+=id{&fc$1=bESTv%dZrXyY0B zl{^}LttWv8RCRvzoLD`v1a|b__0`w<=ggRC@<{)xcgob>IE|eDZEy5ZXQ)H;UvvRJ zdjbx$K;{Ty_n9R3hq1t>(ZxW(1Ldb;KSs(Ir|$s|xUMuAwG~zi!?c^=p=Xxp=9N5eEhR^|KX^olF;(A#aC4bl_-Q$^6);{6eB9CdQM8S1*_Np2I_X^o_%P!ZYABl3X2mGHCDR>zQW zM&Suv;SA%DgXBtCBtD({cutV6nQ`n0z7>Datx)gle30qL!MpT$DK7KGg=;Q}xGrCL zhbpgr$I8oHkxSNCrWGK9?4#dNFioHy99v&Fd2%5?fZ)kv93s_6;?u<(n9`0*t40`| zB(GDt>P$EW@i}5Ty~yEd;=6Jidwh96CF)-;PiHsfms7YL@Sh4?@@vou0_@DgLsq&# zhhK2HffFY(<(4WC=bWG-{d9<+MByX3&V*<_x!eGAnboY! zVK$59QoQ{50z>REr`aUTlM(s=hgAsum~KePrdLx~Ny(-!FvJ~G-=7XqIVNI9;pqII z$6`h} zUU)nZq6Cr^WSIYowj~UDC{{Lwnfvzd-?yE;CcnZ0a`CA(tXe+0Mt6$8THSy5Gk<^P z?*8iW0Q+#?e&O={`%X5q*H{4mUmH89JGBO)3O_&wHUI?r!jI1{DLMbgtO5wHLJg~P zGaEJlV5LoKmoBp`3*P!%#3>-bN!W00}QqoFh(U5 z_I3)fCvSpLkO+H)?~@-H`}}!1@Vqe~6-Nv>$hb*}RUVB()kzcIXv>RX!ILKas?#Y8)jb>rWA^~=6v($U zWv7;bzCwQyw=J5D9yuaR>)f;J%XMt|KlfcEXDhZ1Mq5|NV~=fprP4LWRr$)+$KUT=ltlgu{Ty{aMm#cPR0)3*R$@YWTsR5O zIA6&3uq7mxJGM^9vKoEz&eva;clwN0t5JN%h%MXW@_N4KSGXKsT6H43YU$D{@tvxr ze8cFd?$owzGFd;+so|5iQjSx)d+x!UG@i&t8RFUl2M)N;WFt$Gv>s#A2-r`dRf$Bi z>AxOF>X6ofSS6jCQVeH>63_Bk5f4s)J_ddop~SgAl^4$0uxL_c;p{9-qi0y?N@4$dG>VPyZ;IP+7B1L zH0+AXb|$CfMJ`#pILf$q_uUtd_-ge+T1HGIX8whfFFttPFP~?DOJ@u`aOZFC{&3Uc z#a=jNOyaR{(}54sc%S$VvZg_HCpz$Th0GxOa8#?DCEGdhE2#WZ5~D0D1?v+*oGL@y z5~4St@wFK#p0gJL8!tbqFgW?1{-==hxP0QN{{E++Ft;7OwL)25*Re+~}0H_}6{CX*0oRXs#@+*Y&tIGCWw(8|;cD7%( z`BrA!|Gm`Zm6GqX`1)k_`wVMT-pgz#XJ2RMzOIw+u3x!l?^F9u>>b`S`DOn1hN7`w zU@^4~_>H@!av%5N}n6I9m zvS)bjSNp!dZ_o1HYhK1z(VlUf-X{s&m6#W&542T6n!zXlB-zx%Zsmv@<^mME79>ML zJ3cXrLWL~$buQ;TKC1C5o*G0`w)>7%&%^hp`% zPFq|?O75ft_f)HXp&{OU^dVM<;wBa=KYGqq1O1V8N|07y+)a?xn6F!hKB9F>;pTuu zgG6>AWXypxT=3$F|H{5PfuwtsIfqT6p!g_fblgBT7%}xo@&{5J>HaLZjs@h9%YqV%e4vbA=;aBYfUvbgnw@=pZFuUNz%ud1nDwW_*iEIp78 zsneHMX_ zOssGM6bn=xAm$numq;aA5H6YM&=B$gPUVSqYj_0A35IkspBaRNOlh)^@*l)_*+1`L z!t%(vaBx-6*t5)Kf5+~Ue^q9Vmj4#xvhjRVG@E003zJT~Ab(+ZyY0;SBD;<`5~t*q z`YYmL8HL&7%l&ydRY_6&al}`hiH{qPhcZr+qvu&HZRLV_`A)#~k&iZ*wwh>!m-}4xID_ zG^|!*hXR=*3CtZ5mh)o)CdLgc0m4fdEPG&&LCBw^P{FgO_mH~-?9zsr#KP#mvO2hc zvxrHAjG%kK*wcGJjUx&SASDKl6_f~UxKWN0g>ATjcg2IUFv4DDhIegjnoVz(j4U&g z86~scmKM9#o8d5-jErZ*FY~#vuc(+mH7P|el=%H6I9dNlEq>- zCKQOK&1)^5DOO{2RMC>MI;)}kUHOZ5ySHYo%3v(oXq_V50rfescC*N3;p{hNyS_($ z<_6j1L5esaFF)`iMXdS*)BRx;MfGCI`>FhUYz4v5ql z6V~H?*!H|}6V`n|7DZcb6R+jmIa+B5D*-w%hIi}vUr*BND`6?@Q1GX~hzUw=5E#tG_8d-|q?Y7r{^tJ9yvIzVGg7UAc>DpVJI{$37J zKpTy)c84=_2JI+igw)j%EJDmdjF=*-sZBi{Y5Ne1L-ndKJ{HihqBxqi+G{X96iGlL z|G{@8Be)RJB-ucc0UeJ}_x-rqMQFffI}}py(;M-K+BG>`$TJwnFg_$_(V_dU zLeDGQZ8H51d)NtVcac%BMhudDsp>4h$Wvc*%4@ zB_<3{JjklBxfQ`oWI|$avv5WXcfRUy;5Gb@BO}I239C$V8ZsbNLdEKfQiTN%)(V`vnnc%4~>T=X>a7EQFGF(W|S5SHevO_?5Ko{=$M%3jD)D{ zgRAvU=plb*cVtH$vDiI7+ZVNeOUnF!A*G?{ysNXPic)d*;@O3vp^l7r;epdB;?oO~ z;?y*vF{5l^s_1`H6|*O@bgGM2bJ)b59V$;XrevjsF4pc`iDl90@lh#JtZh-o>?o5d zYIeq=HqH|^8`4>|x5T!IS#D%eZE=RGdGV8`EsjD9(N1%LIS@VjeEBG)kpFh0{8^hP zJw;8yiZf29$oLm!1Gf?ltM2PuuqZx{B-E7iYs@JhQQXAA2mQw3r&xPZW+JwBFm*)p zlny~C5zSLD`3o7iGvs22^zN_>I^cC4q*_4q(FB3rQ`|0j?2=CMIf5W2Km3toWM!vi zlzI=WCm25bfy1AalAaOtuDWsT+2dnRS<|d{TCMtOTt1GUUVG81S8Zwhs0QwPHSlL2 zl6yOPQ0GZmbFeV0cu8}`dWEfdIH$JCpPo~+ymb<0&)DTuEJ{tY>h-wVK8~Ayeb=g2 z!F@Wz4|c=GODFXP0G$2^7||CBNkB(Kevkr?=O9%lQ26Ma(f}5Hq)bnvvkt6}G@~@5 zCpaQkML$Sj9Q}2!bu^*H27(Y&q1#d!Y^YE4CPuN}&a=hXR_)?K$rrKtYxmE(`Pw)p zdhD|ca$}N`J%-q6Dd`n)9m^K(T@j;qNrGi#Z}EI4NT$cmQqCJos0+Lpu)rd9YxVMb z{q|J3!hW7)oXb7OYd+RTUGx2>y@&KXZBekLD7MHKhskO1B-JlWTi&yNZ=+|0$Eu$k z%}m^J@+>tyP^pl4lir0r`Z&<3I4dJT5Q855Kx$qdKm#EG;>&`pqBlw}67LtCL#LKr zP^n6%fyx4~<*FiG1V-UfAAC0&yp#+mgZ~~%Q{JqsuAZojX+>h9)otd^YNv~T;V|kw zjnyf4Jm%1wlZ@WA+aFxF>u}bxu>V$;T3G1A0dHd{&m$Qi&%i$XYT9{E^}!V4#yOG@ zxn-#*#kEy@H8v^5;jNVaaasPNc}0*Xu$t$x(A-sHcNlC;aGKT_T^V~)Ry}at+B+@{ zjds-~GH+I3hCelX>Y9z~a!p)de>>iD{Mjp9Ci%J+`P&&nMU~C)1Hcf&Ir}!q*G++s zxLxQS5{1Pd?SfIV21sPH1yE61Ks!KUYfG?yMm_;z`P__1pOuD?$VxJ=s`*pE`x!CslJ5wr>oJ+y}lyT%s!BB_805*;dH&79sLC)5WEie6Y2K2gqSDZl`=kM z0*kfyQf4Jw$@R<^E!^f19mUqN^*m>9sQUf1+|tZH#@W+S=f*-K_N$nf%=FprKVRyI zNz0rU^-RQ=91A7V@|>)4p(%P_cE#O=ljT-lo>=ZH&xX9AZ*opnkX1|7Iq3zH*P5qh zW)$#snXJ%ufpGPsoaB|xGLx<#c9?O}`6n}NPQ^}BrYr$x(!G2%> zr!KVMK$Rp|rN>f;J5Bo(?6!P5qU|vT%3c)Pch0badE&A0SC%xadgP)DLtKPqj?|r8 z?o4ln3%Y;A8_*G&Kvo5>0)u2`c_B+7F1@WH1_DY3yFQvf#;ko&!`5i?`K#NYoc!vw zZuhEF-$IndWj?=Jt~XTX2><-lWSdk0{(V+nEIZ#~zf4?zEI*C=4Br)kB`oTJhvkp! zW~`O_65UI;CT1r-cp*$5nG6r}itnyY&N8{3ZmY-W6;2F3Z*!TeoxgF(pZq>$PRf

|iJ)rNwdGr)EOmirSOj@aI>%6ZNkal&y#akd%Z!h9PH=pX zunSE4#rHx6xEAD*#{#Db`j(nTHb$rq( z`SIDCw`IE4UK1Cdl({%QKiRpYvTI-Ol)2E3n83%6*X4lQTMw!im@x|=F;1LfZo~Bi zz8NanVFA(DOnN3USPvw4gNFtrRu0qgkpyHaDRvGISd351$@kpw`x|c>3KfXn$u&2; z`YH>)`XD!_1eR6A#F*dni;b15*+r!}i>5Wk&f1YAUQr*cES(1_$e9xt2lm;#X>q1N z^~f!^j11l7%FB=Wh5XVRZ?du2qN$s&8EW$xAD=en{wJ`EcLpk)nsQzwbcYS z`Gd1Uxu1V+O&I5g%~#~+ly9P;rmZu+8N?k8GcAjx>r1RXidKDjVTGVLT0Jn;=%&b4 z;Rg2DM0S{X%2U^#WXLMY%5+<^EuvA1%GkN&g*j1>MX_d^W76@)P`%T0883Go2a({ALKF?KFD>=KXUSYGYYJ3Q7Tk1Ni}n_TnL=PkP}eZH%SJ7V22 zNmh?T@7kRtc?vyJuFI61o{T@EJ6rOw6X){5n9c#d;0Ek*S7H2tlnGpED3z&Cv;vSa zF%Afdu{fd=#`T$~KS;8SP>%}g=rPh(qP!r9DH^uY8h5@~kzlghqids+!c%8YwPtRg zpBPMh53UQm?!}(WIA2w`YGpXMVoJCwB|bBDQB<7UXm}4v=IzL^PMtF~nB=H+N83#a z)$d57Y|nX>TZ*nWBxEG|@?BYpj>LtRrdlofq=r;Wd8SR0(sQyC60&pBCCQOlX-REJ z(p#*)-3yQ~%bk~!kQr~dvUqFdWm_=^&YauN$6lVGU&EvSYZy4!f`Oz{;h+$3V9B;B zaIj;o02H~N=!ESD}J8h-5^cocoYSL{%o5NvbyP58+$p9d*FRvk~X$=Ub z2Ipk}2>f&XbGS231p}FPi6cOn+?AjyX?&<~CXM`ez-!(c^n%-K7h6Hs)HHe)q>mS?`Y}S4F6yJZNv{ z{?h5q!P@gT)#`PHs~cwK7U`ouDNLH`&)28CXumgfp)=WFNSN)*w59lQ;%<@eNHWB( z;4HB)EeiZSeHrV6mm!lQtzc&11LE9u=UrX1aMP?*^-M*vpV|PLc`fWelWZH9{J`%M zerZ`{23RdQ^CPZ4aQlQG&?DU6o%IWH$X3#vA(W62?Na2jp^HF=uF6HqmHu?hmG#yG z`BM*eOqoC5?w{kg&zn`-ad1+}gKuTIj(s9YpMF3I3a1?EsGAAop5<3l9GX)2z?+#d zNRfO{{>!0F?;Kpc`rtd84l&!onPdH9{rnpK!?DR@lcgVy>BxTpA1z3+&zo7_acD}> zgKuYgKKfj*|Ma*k`|StwY7TWyn=#*>3&|$?{F!x~hbaXr|C3(-$p^0Nw;n8-a=5c< z{yck1;SuJ5q2+fsZ+e$3HamFo7?&?%+qlfOefbl1lTgOs9qiBK}bP zSV!N%Eo;293od`*1>x8KkdwXXWuZBXda7=zaJ%IXKYCJFdh$1!Mt*y1V_f6{$v@*z z-^sD2{Vr+7ijV`Y20{@JRSICq&Z6Yl^wHK%S;Vm{VXvZ4>(mBX$~nkA!t_dmJi_9%^0c(_i*qJt=OiWP z+?zc)Cnq^6=Q}yLPaeN9>tgwx`_Fsx>V+|#7jI6UQl9K9!>`YmT%K5B8@Tw&8Bxhi z;p54R9^BjCYLgqPTdJqFP30rAztuAL>ayZh?V%MJ5PlVBFJa!g$(8b_tHeopS^;G! zq^Nvl&&D<3;D%|wtQE757RN>x)b!L&^0>U*EtunDoy)$wG(BO`vPBh=)dq0!I}c{Z zr5BW~6n|e?R8(2?)#AbAyu9SWkZxNYBoUo{l-2Ltox2TJG9myfNxy{BQ);oi>mE`510-d+FPV88sw+UkSx zY%s4{&0kks-^g4k>kNfQ2g^GvF1zW%#X%hGK+&Mk@9w`utges@Qk28R^sz9avHSDn zlE#U9_&CUpkd#0$3$77pXRdG+A+HS>aAHI;VM6I}830cLF{KlU3}L@sKJW|c1&ytj zU*5WAa%a!}Bgc*%x$P%xMQ?8({;}wDNC>_uHRX~yE3SI}s!5SHlCOAu6Q%288_%T< z&>TfyjLy=t@Bnotz!;F60oD&mrd&BL(<{=?pc4Rg1Y{n)uH-wn&Xhk~a_cKcrp_6C zWOUBdr>}2qwLce}yWFzd9q)&}>f^=s;G|;tJJRyFf%;XWqpRu%;_CAqJSUoyvllx1 zUH}AA53Fm5s9PM$y8v{hG1t?dc1>}O1U%O@ z`h1N(y~$h=A4o6sT(IawV+E^xz*Cty$FjQi(2bJMnqZGHvYerTc|{fdQL{pBABPLm z`V_+@>((5s?YLt_#m^EG@^ayI-(yx(4*81yDu%FC@$8S$Z%8YhNJ zp`~;R4$V~dPG`0O5dH>X04mvw4)m}Lj1BP$Kwj7dAV=`I{a_A|5QCH~2C4)D)EmBn z%7evN71PkL^|n5#skpJSF|bBy8&r!3Er2im7X|g ziAS7ZSqK+sje&V{XU$zuyigcCSx8FM!s`x`p)9I0v}Q}AI3qPPGp#{t+_ENA8C7O5 zjotZ!DaJTU5QW~gK%lp&GlZSPC@W}*Gfw$|adKLL$5Z5+O6vvj-PCU_fxmO?zyV75 z8XTSrd1O{!wPc}r1WXntL63%)Wq{-1io(Zc7E&ro4K!}h1ZXDk*sy~@e<2g~7_2r) z&t@3~bKV^nidnhyXJs;$Icr|NU)p>}78;vrOt7qdLz;_UBRLp!(2j`r}o`(yqxwEOv*>ejs@{S*0p2Pb~@x^Hu zH48pp!0Qd9rig1UN>=(tG|jw4tV&5sOQ{l{&o>HVe&NWX@>##-waMw}$+i6U!zBT$ z;p9594|3nhbxNlnDfbVuW+^$nBsR7rJvrmvM-~#e;M_O{Jh?vtuZ+tb#p{w`2gr}T zXh63STn#UnT$x!C^9ork6B>4Sb`wJ$FeC|?tPIxED7q{QNAi%vD0A>E16flmB8hfr zD)>WLegPte{;ct9Sthtuo*0*+=pExF8yjV$%Sxs;Xd{cvY}QL@?|@MdZGj5yrymyo z4MgM=JJ>Q;H1Q7DE||B(Fg6u#apjN2cE@k|*avLHC9e=}a3AMa0Ho1%B?H(n@7TO|ErL3%|m{Y~T!xA+4+ zd+Sec%BAoA?QOR6O*Z|fW5?fOFvE6B<7e}k!z2V7^!(6^>}U6#c<2wee$F>M%O1bw zGKiT=^{mMt6|@=I>tls>ga$z-7bssm@rlIo6pf7EF({ zRm^N|<~R0ScU@2Sb=S%BkJ_V;QFaO0p(3RSeUEBa?L0yGMiV67R^ZeRI|1d44$B%a zmPiy9Ed-#WCc*z)pbEB)=qu0q7VWFFq!Yh9=3JS2QB*&zxNv5X&uN%nJ9e~oKC}iF zgd{^CrXVTDpOaJ&6W|ZIZ0l$ijbG2|1)J*>^ng!P(|ZxKSvVh`+Ko?^A4{7ubH$vT zx{i*z;#KSC2E`PM*MxswO9~S)?G-o8>UCnTP+^1?NR=2@%})+=u1CQyPX$d<1Kq+A z%vs`_k3#@g0Dx=aWuOH7=&5nj+~KJI;aOdBkq8SjGNqmgjW4?p6wyWJG*;+~6Y_I& zbMq65^%add(X*g29bUBK`#W}gUrd`QN+07Gd(jaSu_U1x;E<0H zEa(9dY{_VMYlWETaGOkSN1|BK+C932Po=_l$iJ;7aH9*0Mwu}Vx-iR`*m(q*>n6aY z3Z+oO14HrD=-2vh2YOHi5-^!cm8Gr>YIa=PT`1%{fNk6!M@R#{fA#FbPKml)6~P20 z1`0*f8q`8xKe-Wgv%<12JnQQnyXU{?Qb5p`3iPpcN(X5cJ;>$v=-S#Z(JNZ_zB#(& zYdy@KRJwO;-RX|}^mOn3?R4D907142$qzqz zTB}j9g!`i#Uv|z~v}l&|IamZg&|n@y+5C0C-@AF;Dly%K3Yn4d|@i} zw0S@>)vg&21d}bg6rRfie$4_Ve@V5ydj;9v-77!*8A=y>_n#4K++X|ocGk1~^SiVL z>vbec`N;R6hI!SMe`d3l>?fwb{MAjWtflFCm> zqdjdEvu9U88A1W&6Gxw%8{gnN#=VHsa?*bB4?V>_AimbaQ4Kn53gAksICqyTN5su zJD1&}$mz((kWj;@r>z00&nlWd6UqA4QPPQ1{onQD=~bGSDuBTM6;91O2d7F3(W2s9 zLYn8|T-Uz|(uGlC$j(HT1b)7sgrKj;IXEZj>WT+fM&LD1J_OR4Ls*l*q z(0*St?x?Cn66Xlq2=RBXfAIcmuf0F3!jl#b&CDrGE$O=Fk~`|^*v=7bS7u(Zditi- zwW-ZL2jmZbwQJY=ENTCiKfZAN(wlb|t*M++%RhlqRfYV#{G9wl`NvUtlN<7qoXx9x zBKzeX35|WLYW%Zc^=lYDzVEu5<-IgK1gx>U`KST(A29 z7zKa>5}U&3kmea3T`C7PP8?q(!vL&C%aPcrM^Mg1kzT=ZU_koGHY{==3Tvr$@}meu z(76{7H1?;&I71DJEHUJbY5U7kF&c?($w^%6EDR3)04!Cc>mjVaVxT%7K77Y zh?pqBk>{-y%(hC8Bnm!1{Hf0!vV!feb#LkwVyxaMx5<@y*LL}%dvho98^~G} zG!Mgm12%DxTp%-y23ElgP>F!e<8u@r#M`blW%*7XNs4jC{))30i@_o{144R^Rr8*2 z&`0p*=TzY~ufG2^DI z;q(2Q)BlV7uRm}~M}+kHr>C!dWnn&ErK*Cu zE0x>r%5_Y=!9E*3GS~n^U_5eSLiybZxnwPulF6?oQ?HO%i>G#=8S&=)RljeYeqj9x z@a&1IUpOl(sV3iSmhVvVt^C?Gs8pfKH-G)@yI)IBZS@Byro?W5#*eMGzbgOS`0-~wIj{%qH??L=S2NXR ztHxf1SHsRpw0yA>v zFz!3P#c0_0114N`D=T_$``GdAPi)`*1iPhsjS;ks*I=%!9eIAkj-xhnU5(igD{-f> zshbOzynpf4|Gb7RU)uk6%gU84Z}%;`lj%N}&tEE7O~uhZ@RAp>z+(@yf;-KIp8I}x z!DI5P^955(tf|OqvWk_zW+iuA#iVDpn#>zsli$mvI=7$FZGCgP-e?YHo6X_93;UmF zwmN>eWA&Yr&E}k-$*7<8?giVAU#2(g{Ie=s13AS}aA?3%B=_Db)9(y}j{!}bz<8*~ zJ?g%B6!NI+Chq$f<~O#PjBK3i&fUL_9~G&2j~%7mH(fB+3jam%K`7{~!1cNu7L~(+ zy=h;dw&bj>vBtMm9KnNrBUkX)?+a+$*pYEY0AHsXIp-+-6y9(hF$h$CqJVmdLqK&a zaz)CwldWB7-owEOwgIH1fMZBlS);Sa6aa|k1qDt}&g~oVTYJssk3Tk>_X4fr9*@9T z&wOZNx4r$Zl4;pQ*Tg=hzCoX2Y{;`c@qPYdySUmWO6x80W2*PAyVU04t~7VT^GVy+ zhnU@kPx*$lr}N4$i@LL5fcjI#@d_-FBkZq{^@S`jHYmR$t@{QVp0)EJjtpP>CVHKC zwK@aG`T{8vN%%r}=W%B$ z(_Hb|gBcG?AUFkN5Y~VkE(GrtKO*q7;wN+fJOUo29}*gAigXo;osss59xv!U`MCtT z0Y-7tL3UXoH<G9z{;ZqrR6sUVoNd1cHI&I+7p&q;$?!N3uAwtrmOGDX%no4MwBE zYcw26x2D_tR;zm3LQw{z$I14jT^sfninHcc`?<&9(%S_|Fgz!CeQEma<*PGWbp4^j|Y{)20DOhSxob0p(vRs8Wo6THMV&gai%S?{*q({Z?zGt@82bgi}jd`<0OI%h}?mLwImJ5vIN5RxqA_FrH zs@2572~8G=#8x69z5(NV=>~rmtP)1KN?i~;E|k*J)1YM>DD}XM1K28x)-O3(Ze>l-?J=9$=Cy(7F3C?I= zOiomcQC#KDxT_pC^QMT7w4}n6kv>CmQNZ``#3MQW;Ul8Q=rkAw7UD+1DS2AAFt5=8 zA(0!o*B50lJByg6e69S~^~sLO zw|{F_PIhXxNfa*p$t_zOL`Qkrd0#$!O=hMi9nQo;ugPP(9?98#=>=I?S8aao(^>ZT zhF`y0oHk=sMkaa7nFW=1eN=iTkVoP4?m&{jrHbrYIKMKwrruJ`EsJt?C59YnzC*C! zQE}jx$A82GV{%*XJUltl`DgiwiySp_^I88y9q~t86c=iP4J! zOUleNTViVGPR`iymr8w3ZGBv<)8vY4j&06#i|cM)Q)97u{jKbLX4*CPHTjQ2sg`&c zEnW%xe1QwPR>j9#8~m4DwLLeN$2j6+6B4ZEl*vZl{wrR(WvDeV%`t1Tf8LPXfbq*b zW!1kU{S_xw#h^f!DHf-&ED-(&wMYUV2B-?j z6~eSPWM;Y7&#Oer#)Pmg3sa{oS+olnaA``?^re-%BGFb@dQ7QI$e5a!8S92~PqrcW z%%9*w@2k%r?vR+n>=#QrVX2g@V=IT<{4WbG{r+p;zjT3mV*@q6gZa~+$nVMWBaO)= z(wr-w`rxy_AAe~0qngDl_DX%?Ehd@uOH~qD* zwHg;Z@OSyv7j9++e|`O1ksR-mTZaNy$`}2WEw7hQ^6Gt0{p{86?_I%@+xEVSsR4Ns z&@>7TC3|*7(9tHD?tbWIUj@DF`(gVBa;IdW66dL8xw72&(=`%gnh zzCs1%*%DQD!bmw$!sq|PoyLagim<*d!1{JI(VBo(P%#kG@j!@A$c(}>yt)?AcAAc2 z@J=zY5+y+c4O{4OQ9sO*D%dbC07Zs_2{OW>#H3(>#ID;VMJbP904q|7Nu-?yyrbMn~K9OnSo4Fk@c z)L8C(P5yJcZF;~~_JlV8LqFap?nsI^<-%FC;u!KJ(Ug!T#wSog@j;JP4s(1%Im~fR zISKJ%T7pTGUs8NphLdtl@$8n=Zd<7rjaq-iUuw=|`8UZgd>Wmb;xa~$zD2TtZ;eJ9 zT`9TIpR$UZaXdqZN7Igq5s^!a3Kj~lCj;(!JkeM~M1#cqv_}Ts%8;Hh zH12(EWcaYY~)7fzL!mxZ`r)XYE+ zt0PLtbgAx?I7Pm7M1JY^N97k^h`WTX8fIm;KgP;mi1REbqDk8un00no0QaC}BysLa zx3F|qR+-lT;-vs4*|IY6gBc`0&i*HwK019KPci|*!?%>)e^1Fn^I|@ak*BfZi{;nY zyPtP_#j9P|C%d zIzDS(x!~yqYn5Ecf2Jh9=^Lm*>{(AS!%FC^F4wi_dSGSZB6y*CRQIgzW!*cvk942n z8zGA2hoCFA71%OBmJ$;}uWT`($E@x(gc!ZDg-~`0;6^B1i7*L+hrI!1y{AYTqa2d@@6zTCo1Q!H`o@u428IC!p?{x+;^E?Y0l5?UBS4;X7dxD;~Fnwu*TU^wrhboN7w;8N~lBoLGfs-|Qr^6m6 z2+l;l%xXx>v088$i^-UZMLaqhS4nhP%WM4Bgv6RlriFS|_PQ@RG{wp~{yIG%EZUUo zugVZZ>+5|x4?i${#-&@97wLlyF}@Rnc9YvxVpFd7iqUC_a7yKjN)&H{44Es<7~^)Q zj`cVli3wAjPDi+ket?a>MUOv_72z=D&!M?0i14E< znc=Akr;1+YFkp|BV2duyO}yg#tJ$WZ$8Pq0S2##myV-&$Vlc3FA#2Kmc5Q-#L0 z5dz+Ga;S1VUEFbVF#@!6v5 zh!ce$wCeIJWPazJe&>?M~T7=80Km%%z<$p*1`g0SAVL7MV*HckBHJs zx(s}m8rCDeNedfv-)7sjuu&Jww`gIL&drZ#VT&%8Kcj{1y2*k7-b6p-jkmzhX%}o^ zbi&7&51O0JIJbx(G##NnXf$m>H~1emZ8;TqtN9^B958d9Djx*_BnRC2c=rLL}j zV9Q`vN9VAwzIkKBH@&&9ZHq5ZToNwy)%5iElvhK(!N^c#aATwm85+=@KD43+_=!sE z2Spn}bbsG)&8Emue=i;uBBlfKE3@Y{^Evd%Nyq}q^SR(#-++v4WW;ybv|7X-&TfSF~Z~hqFWjn z9O~-t^92jb3X7GG{Lcz+#D_%iDb#h;r4bw)Q78J)4gJcsQ+e}ELq&O7k#4+U?Z~0# zRP)d?btjcIh&tMkzE|nCZp1Ysmg2jxAdDb1UP>Qw(Nil@5796-_C%V8A{eLk$e?ey z-#6SD@tqmkp-Ag6eRz96UgAwV2Fo`**xVNBZ656QH4hIDcD0NsN&5PSyILbd+CUGY z76PVohI(+=cY3V92^Mu{U`eNd>@YyM5+r&NdQSb`=CjHyRK85tIXpZ7y&h^_vkFUv zUH$(}2}KwwwO9I-(JDgbZz{8>2Orrt6v2Ci#-ZE4`p2Kc8wN^9z$xJ#-EN#QU9GzY zwu1KRu406);cgXD1+m@36aLx@U1YH&13UfBU`{0vPIbGEn!R9GPWFkVOFwLY&BcM z*0Lt-|C(6~@Y!cN8*624EW+AZ2kT^AY(47+^Q{;9l>KagZGa7wAvO$?up8MXcq8A! zwzBiEF}?ueliS!RyNF%PwzEs%c5o-#1xb?2pt`z;UCypxSF)?v)$AI!mtD*DvHk1- z`xcC{UC(Y{H^N8IL0ITM%#N^|*|*s(>{fOgyPe$uPgi%byV*VLUUnb*4!fUymp#B9 zWDl{2+4tBZ>{0d@+^s&ro@C!=PqC-j57<#y<9wDq$9~9u#GYp_uou~n*-Pvv@Id`C zdxgCUBf39hud|=CH`tr(E%r8hhy8-R%id$ZWWQqXvtP4g>;rb3eaJpyzkxN?-@$Xy z$LtU6kL*wE6ZR?ljD61j%)VfMVSix4=7)jl*ytck(D6&0XBhW4MQVc`T3P@jQVi@+1y^3#>Y)@-&{#GdL_q z@GPFqb9gS#c`5L~KH}Q46nYZv( z-o_)m9ZCR% zG2hNF;XC+FzKdVVFXOxU9)3B$f?vt6;#WgcbuYh`@8kRV0sbw19lsuQ|Bd`6evlvH zhxrkHGygWfh2P3=F#jHZgg?q3=tm{3-r4{{cVBpW)B)=lBo#kNETa1^y!cF@K5wg#VPk%wOTJ^4Iv!`0M=V{0;sl ze~Z7(-{HUD@ACKfFZr+d`~27Z82^AD=O6Nq_;2`c`S1Ae`N#YZ{Ez%k{1g5u|BQdm z|IEMOf8l@Sf8&4W|KR`RU-GZ`34W48H>a)ewVPskSv z1n}a7VxdF`2&F<07AV6)nNTiN2$jMlVX`nqs1l|M)k2L>E7S?~!Ze{lm@do^W(u=} z*}@!Qt}suSFEk1ZgoVN)VX?48SSlMn~gl3^dXcgLoh|n%{ z2%SQguwLjEdW2q~Pv{p0gbl)=FeD5MBf>^uldxIXB5W1T6V4YdfD*|zVN|$CxLDXO zTq5icb_%a^VW$O5rNuYT+7TuW+rfPuMRU5WXc`CtNSwAlxY2BpehD z35SIv!p*|Bg2=@!$6&}#-lRA2uhlZryk)f_u z{ZOQNu(i_|>Dw6T=^uzlop>G=hlZO6&2(vs^bQPf5l29^i0xfHy~g3rCQu+95kA~$ zpm5jFFz@fy4@P?XH%1Iw`}=#Fy84XDy?8^<5?BLfsCb@jFMZ?+8dG;e8Y?HX+DiJ;Db zNb|4(OEsvfP9rr%DX^!%wOefOY3?xNW7-Bf`}-n8=8gS5BfXI(w8x?asREN09vRSY z7;Notix^ta9k>g_%^f0sLt;yRf47k?w8BdRgI#^Y`qt*&$Y8Tb%PZdZwCTHso3RjD zh9jGYn>r&z1)7!crmnW(PBY$h^fmQF+J~)b5KHE8WYD5MD3qa14X+;=8t!V}BGR{5 zy87CXPR*xW!>{q|sHvXV|f@z>l%BMx zL8TQ&H9Rt4Rs#w|C|yKwgysx&ZH+XwkM#6dweV1Hb5D;mvbnXVxwrXrv&4?B_F)l( zV>{-^V8j^N0zkuPm?+TN(?1lkqQCmO`Z|=hOX$zOh_SV~C(_r}Jg6VUR-wPw(AwYI zi}BX?Hh1(zhRx&sH8OCzAE|u+_u);E$gmBcJ}^Ku?5h8&g&CfB0W8p zR_fMvbnI}%+=*dqQlVQ3(tI~4p^*WTa;FZ7Qh~GS3`9ns6{8g3I4f#o;OtCP3~+dV zOGLkE5Ocm$8g3ry9?}D&qR&h%gI$sKR%~L-1i9)wkvazZM+Sga`nn|mS5 z$Z!*VDdq_UF-g?`b*n`UDt(1{1I*qxBo6ft0@QF(vKf>RCeQfFMj(PULWMOE?d}J_ zbO8R_uq3tgV~i~tI8#dNIB3%Y;rL;|>o9hC14cmlAjZBK7!f$n4BXxcq&d>lVgz2m zICn(sN*625pry;IKB|yvpry2_x6OjQ!=3#@==_LrXrybHM$AY+MK$VMu~0=KSYi5s zm1(6^mJ|AfmXWR=%$5!#G7r$YV`}b2?ah6y5q)o@t-EX3(oRi6E$bs_dIal0r_%3Y zdvSXts;z$n1J#6f;!2$veO8PLe`iGj{?2-)Q8Ay%Z&8CvMxz=gjH;ARNeyk0p>8Z2 z`kv+ix+#D%Z0+rDq3=>=qg8`<1>VdXM*4@ z*#IiVra)PRWx~p085+Ti#PsbN09cQ-s39aPFSQPgY~4zI*A;1vU;(89iOR8`2@;{B zAL{Ii^t9Q>7aFxSQM5!g0lfl-M!JSN(W8Svb`e^5Hn+9`L20YDf&ml&IV(m5kh7u) zK~2o0AgIpa-ky-yIy6+O2W$dmnpLby9jRc^A*_xrzrj<OOZWXSXNDEchhc(j6pqt1Gw_b9G3NSBax3s%#S zmWaBvX%FIN46}(YO7!V8)R~4hzzv9MpmY#`n|t-`plQ1Yh32+CvAv|M z#NN_1+ycZ7Y^)9gFk#Q2Wmvf>QI4K|RCI=zvQ2m%8JPH%;L17Stvbawfz0jSG-SXu z9qjLFlQ1zxHlvwcEwr`_b#EEKqSik$IJ98|ivq|2fJ(o<9cZ~HBGQEx@ZqijVQ7Sg zHXJt4=B8_7L}(f5;2XQ8O_8paerz22@P`Ct0lV_;m<}rDrnq2?`T^r>aF0rY)2pz( ztsnG&vi;CHzpUK45u`Y%Ql(8uRbFgUS2iW0sh^?(bSb3^ja7MwE@8Tq(WRU&6^4<% zu7;ADV)S)$31TWJQ$;B~Ql<*ZR6&_4C{qPxs;Cf~g2hUX778Ipuo%?@i-T%uwJ0c9 zj7-5|WC|7|Q?Qsal@!y3-j-0N63SG9YJw%GCRjo_N+?GOI4p?)>g>sZ?&8yc6tS?auu2)h})>5rX_)S#0r9Q0P zsqi3`5u{p!RBMoG4Jt1vYf#HNjVcaN#UUy-M43XADMXnfL=X`ohzJoxgo-PqjS=8d1PLTUR91*UB19k&B9I6XNQ4L^ zLIe__5~?IXl>{gU0Yiv@Aw<9sB47v+FoXygLIeyU0)`L)Lx_MOM8FUtU#BTP9k=(tdha0PlBIdGvI7<7av2Mv0N z20es9$AxmxpoeJCLp10i8uSnidWZ%+M1vlpK@ZWOhiK44H0U83^biethz31GgC3$m z4`I-8p&Wz>LWBuIzy$4qvWPN20_EzA3Q$d98u~B|eOSW>fpT>^1*pC-0YI1lAWSGB zOt2KD@ekAZhiUx7H2z^4|1gbzn8rU$;~%E+57YREY5c=9{$U#bFpYnh#y?EsAExmS z)A)x2>a+~hXf3Q!=X{_hptiiGRJ*GaE>NR2wML!!ftoVyeYtiYFRw;>uGQ{!+Pz-8 zPgC!;TD`Sey|r4swOYNkTD`Sey|r4swOYNkTD`Sey|r4swOYNkTD`Sey|r4s8qy5Z zY4z4=_10?v$(?k d0mRO}xo^G_%I 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 SdSQM28?+M|D(2r_;{O0|uQ74} literal 0 HcmV?d00001 diff --git a/modules/lexicon/web/fontawesome/fonts/fontawesome-webfont.woff2 b/modules/lexicon/web/fontawesome/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4d13fc60404b91e398a37200c4a77b645cfd9586 GIT binary patch literal 77160 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 literal 0 HcmV?d00001 diff --git a/modules/lexicon/web/index.html b/modules/lexicon/web/index.html index ef1da215..b0f46580 100755 --- a/modules/lexicon/web/index.html +++ b/modules/lexicon/web/index.html @@ -5,9 +5,8 @@ - - + + Lexicon @@ -17,14 +16,24 @@ padding: 0; margin: 0; background-color: #03697d; + + } + + h3.msg { + color: #fff; } + + -

+
+

Loading word list...

+
+ diff --git a/modules/lexicon/web/index.js b/modules/lexicon/web/index.js index 83f4ae9b..403fbcdf 100755 --- a/modules/lexicon/web/index.js +++ b/modules/lexicon/web/index.js @@ -24,7 +24,7 @@ function boot() { // Ports related code below window.app.ports.saveWord.subscribe(function (definition) { - liveCode.debug("saving word", definition) + console.log("saving word", definition) list.push({ word: definition.word, id: definition.id }) localStorage.setItem("saved_words", JSON.stringify(list)) window.app.ports.savedWordListChanged.send(list) @@ -32,7 +32,7 @@ function boot() { window.app.ports.removeSavedWord.subscribe(function (definition) { - liveCode.debug("removing word", definition.word) + console.log("removing word", definition.word) list = list.filter((item) => item.word !== definition.word) localStorage.setItem("saved_words", JSON.stringify(list)) window.app.ports.savedWordListChanged.send(list) @@ -48,9 +48,9 @@ function boot() { }) window.app.ports.getWordList.subscribe(function () { - liveCode.debug("getting word list") + console.log("getting word list") if (wordlist) { - liveCode.debug("using saved one") + console.log("using saved one") window.app.ports.wordListReceived.send(wordlist) } else { liveCode.getWordList() @@ -63,14 +63,14 @@ function boot() { window.app.ports.getWordDefinition.subscribe(function (d) { - liveCode.debug("getting word definition for " + d) + console.log("getting word definition for " + d) liveCode.getWordDefinition(d) }) window.app.ports.lcDebug.subscribe(function (data) { - liveCode.debug("[ELM] " + data) + console.log("[ELM] " + data) }) } diff --git a/modules/lexicon/web/noto-sans/NotoSans-Regular-webfont.woff b/modules/lexicon/web/noto-sans/NotoSans-Regular-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..2ac0f4c604105fbdad49253394ec2da16fc61411 GIT binary patch literal 22288 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 t)!=mi0000000961007h^n7RM}007etdVc@_007olU1 li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #ffffff; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: "\f000"; +} +.fa-music:before { + content: "\f001"; +} +.fa-search:before { + content: "\f002"; +} +.fa-envelope-o:before { + content: "\f003"; +} +.fa-heart:before { + content: "\f004"; +} +.fa-star:before { + content: "\f005"; +} +.fa-star-o:before { + content: "\f006"; +} +.fa-user:before { + content: "\f007"; +} +.fa-film:before { + content: "\f008"; +} +.fa-th-large:before { + content: "\f009"; +} +.fa-th:before { + content: "\f00a"; +} +.fa-th-list:before { + content: "\f00b"; +} +.fa-check:before { + content: "\f00c"; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} +.fa-search-plus:before { + content: "\f00e"; +} +.fa-search-minus:before { + content: "\f010"; +} +.fa-power-off:before { + content: "\f011"; +} +.fa-signal:before { + content: "\f012"; +} +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} +.fa-trash-o:before { + content: "\f014"; +} +.fa-home:before { + content: "\f015"; +} +.fa-file-o:before { + content: "\f016"; +} +.fa-clock-o:before { + content: "\f017"; +} +.fa-road:before { + content: "\f018"; +} +.fa-download:before { + content: "\f019"; +} +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} +.fa-inbox:before { + content: "\f01c"; +} +.fa-play-circle-o:before { + content: "\f01d"; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} +.fa-refresh:before { + content: "\f021"; +} +.fa-list-alt:before { + content: "\f022"; +} +.fa-lock:before { + content: "\f023"; +} +.fa-flag:before { + content: "\f024"; +} +.fa-headphones:before { + content: "\f025"; +} +.fa-volume-off:before { + content: "\f026"; +} +.fa-volume-down:before { + content: "\f027"; +} +.fa-volume-up:before { + content: "\f028"; +} +.fa-qrcode:before { + content: "\f029"; +} +.fa-barcode:before { + content: "\f02a"; +} +.fa-tag:before { + content: "\f02b"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-bookmark:before { + content: "\f02e"; +} +.fa-print:before { + content: "\f02f"; +} +.fa-camera:before { + content: "\f030"; +} +.fa-font:before { + content: "\f031"; +} +.fa-bold:before { + content: "\f032"; +} +.fa-italic:before { + content: "\f033"; +} +.fa-text-height:before { + content: "\f034"; +} +.fa-text-width:before { + content: "\f035"; +} +.fa-align-left:before { + content: "\f036"; +} +.fa-align-center:before { + content: "\f037"; +} +.fa-align-right:before { + content: "\f038"; +} +.fa-align-justify:before { + content: "\f039"; +} +.fa-list:before { + content: "\f03a"; +} +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} +.fa-indent:before { + content: "\f03c"; +} +.fa-video-camera:before { + content: "\f03d"; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} +.fa-pencil:before { + content: "\f040"; +} +.fa-map-marker:before { + content: "\f041"; +} +.fa-adjust:before { + content: "\f042"; +} +.fa-tint:before { + content: "\f043"; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} +.fa-share-square-o:before { + content: "\f045"; +} +.fa-check-square-o:before { + content: "\f046"; +} +.fa-arrows:before { + content: "\f047"; +} +.fa-step-backward:before { + content: "\f048"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-times-circle-o:before { + content: "\f05c"; +} +.fa-check-circle-o:before { + content: "\f05d"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-calendar:before { + content: "\f073"; +} +.fa-random:before { + content: "\f074"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-retweet:before { + content: "\f079"; +} +.fa-shopping-cart:before { + content: "\f07a"; +} +.fa-folder:before { + content: "\f07b"; +} +.fa-folder-open:before { + content: "\f07c"; +} +.fa-arrows-v:before { + content: "\f07d"; +} +.fa-arrows-h:before { + content: "\f07e"; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} +.fa-twitter-square:before { + content: "\f081"; +} +.fa-facebook-square:before { + content: "\f082"; +} +.fa-camera-retro:before { + content: "\f083"; +} +.fa-key:before { + content: "\f084"; +} +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} +.fa-comments:before { + content: "\f086"; +} +.fa-thumbs-o-up:before { + content: "\f087"; +} +.fa-thumbs-o-down:before { + content: "\f088"; +} +.fa-star-half:before { + content: "\f089"; +} +.fa-heart-o:before { + content: "\f08a"; +} +.fa-sign-out:before { + content: "\f08b"; +} +.fa-linkedin-square:before { + content: "\f08c"; +} +.fa-thumb-tack:before { + content: "\f08d"; +} +.fa-external-link:before { + content: "\f08e"; +} +.fa-sign-in:before { + content: "\f090"; +} +.fa-trophy:before { + content: "\f091"; +} +.fa-github-square:before { + content: "\f092"; +} +.fa-upload:before { + content: "\f093"; +} +.fa-lemon-o:before { + content: "\f094"; +} +.fa-phone:before { + content: "\f095"; +} +.fa-square-o:before { + content: "\f096"; +} +.fa-bookmark-o:before { + content: "\f097"; +} +.fa-phone-square:before { + content: "\f098"; +} +.fa-twitter:before { + content: "\f099"; +} +.fa-facebook-f:before, +.fa-facebook:before { + content: "\f09a"; +} +.fa-github:before { + content: "\f09b"; +} +.fa-unlock:before { + content: "\f09c"; +} +.fa-credit-card:before { + content: "\f09d"; +} +.fa-feed:before, +.fa-rss:before { + content: "\f09e"; +} +.fa-hdd-o:before { + content: "\f0a0"; +} +.fa-bullhorn:before { + content: "\f0a1"; +} +.fa-bell:before { + content: "\f0f3"; +} +.fa-certificate:before { + content: "\f0a3"; +} +.fa-hand-o-right:before { + content: "\f0a4"; +} +.fa-hand-o-left:before { + content: "\f0a5"; +} +.fa-hand-o-up:before { + content: "\f0a6"; +} +.fa-hand-o-down:before { + content: "\f0a7"; +} +.fa-arrow-circle-left:before { + content: "\f0a8"; +} +.fa-arrow-circle-right:before { + content: "\f0a9"; +} +.fa-arrow-circle-up:before { + content: "\f0aa"; +} +.fa-arrow-circle-down:before { + content: "\f0ab"; +} +.fa-globe:before { + content: "\f0ac"; +} +.fa-wrench:before { + content: "\f0ad"; +} +.fa-tasks:before { + content: "\f0ae"; +} +.fa-filter:before { + content: "\f0b0"; +} +.fa-briefcase:before { + content: "\f0b1"; +} +.fa-arrows-alt:before { + content: "\f0b2"; +} +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} +.fa-cloud:before { + content: "\f0c2"; +} +.fa-flask:before { + content: "\f0c3"; +} +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} +.fa-paperclip:before { + content: "\f0c6"; +} +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} +.fa-square:before { + content: "\f0c8"; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} +.fa-list-ul:before { + content: "\f0ca"; +} +.fa-list-ol:before { + content: "\f0cb"; +} +.fa-strikethrough:before { + content: "\f0cc"; +} +.fa-underline:before { + content: "\f0cd"; +} +.fa-table:before { + content: "\f0ce"; +} +.fa-magic:before { + content: "\f0d0"; +} +.fa-truck:before { + content: "\f0d1"; +} +.fa-pinterest:before { + content: "\f0d2"; +} +.fa-pinterest-square:before { + content: "\f0d3"; +} +.fa-google-plus-square:before { + content: "\f0d4"; +} +.fa-google-plus:before { + content: "\f0d5"; +} +.fa-money:before { + content: "\f0d6"; +} +.fa-caret-down:before { + content: "\f0d7"; +} +.fa-caret-up:before { + content: "\f0d8"; +} +.fa-caret-left:before { + content: "\f0d9"; +} +.fa-caret-right:before { + content: "\f0da"; +} +.fa-columns:before { + content: "\f0db"; +} +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} +.fa-envelope:before { + content: "\f0e0"; +} +.fa-linkedin:before { + content: "\f0e1"; +} +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} +.fa-comment-o:before { + content: "\f0e5"; +} +.fa-comments-o:before { + content: "\f0e6"; +} +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} +.fa-sitemap:before { + content: "\f0e8"; +} +.fa-umbrella:before { + content: "\f0e9"; +} +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} +.fa-lightbulb-o:before { + content: "\f0eb"; +} +.fa-exchange:before { + content: "\f0ec"; +} +.fa-cloud-download:before { + content: "\f0ed"; +} +.fa-cloud-upload:before { + content: "\f0ee"; +} +.fa-user-md:before { + content: "\f0f0"; +} +.fa-stethoscope:before { + content: "\f0f1"; +} +.fa-suitcase:before { + content: "\f0f2"; +} +.fa-bell-o:before { + content: "\f0a2"; +} +.fa-coffee:before { + content: "\f0f4"; +} +.fa-cutlery:before { + content: "\f0f5"; +} +.fa-file-text-o:before { + content: "\f0f6"; +} +.fa-building-o:before { + content: "\f0f7"; +} +.fa-hospital-o:before { + content: "\f0f8"; +} +.fa-ambulance:before { + content: "\f0f9"; +} +.fa-medkit:before { + content: "\f0fa"; +} +.fa-fighter-jet:before { + content: "\f0fb"; +} +.fa-beer:before { + content: "\f0fc"; +} +.fa-h-square:before { + content: "\f0fd"; +} +.fa-plus-square:before { + content: "\f0fe"; +} +.fa-angle-double-left:before { + content: "\f100"; +} +.fa-angle-double-right:before { + content: "\f101"; +} +.fa-angle-double-up:before { + content: "\f102"; +} +.fa-angle-double-down:before { + content: "\f103"; +} +.fa-angle-left:before { + content: "\f104"; +} +.fa-angle-right:before { + content: "\f105"; +} +.fa-angle-up:before { + content: "\f106"; +} +.fa-angle-down:before { + content: "\f107"; +} +.fa-desktop:before { + content: "\f108"; +} +.fa-laptop:before { + content: "\f109"; +} +.fa-tablet:before { + content: "\f10a"; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} +.fa-circle-o:before { + content: "\f10c"; +} +.fa-quote-left:before { + content: "\f10d"; +} +.fa-quote-right:before { + content: "\f10e"; +} +.fa-spinner:before { + content: "\f110"; +} +.fa-circle:before { + content: "\f111"; +} +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} +.fa-github-alt:before { + content: "\f113"; +} +.fa-folder-o:before { + content: "\f114"; +} +.fa-folder-open-o:before { + content: "\f115"; +} +.fa-smile-o:before { + content: "\f118"; +} +.fa-frown-o:before { + content: "\f119"; +} +.fa-meh-o:before { + content: "\f11a"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-keyboard-o:before { + content: "\f11c"; +} +.fa-flag-o:before { + content: "\f11d"; +} +.fa-flag-checkered:before { + content: "\f11e"; +} +.fa-terminal:before { + content: "\f120"; +} +.fa-code:before { + content: "\f121"; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} +.fa-location-arrow:before { + content: "\f124"; +} +.fa-crop:before { + content: "\f125"; +} +.fa-code-fork:before { + content: "\f126"; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} +.fa-question:before { + content: "\f128"; +} +.fa-info:before { + content: "\f129"; +} +.fa-exclamation:before { + content: "\f12a"; +} +.fa-superscript:before { + content: "\f12b"; +} +.fa-subscript:before { + content: "\f12c"; +} +.fa-eraser:before { + content: "\f12d"; +} +.fa-puzzle-piece:before { + content: "\f12e"; +} +.fa-microphone:before { + content: "\f130"; +} +.fa-microphone-slash:before { + content: "\f131"; +} +.fa-shield:before { + content: "\f132"; +} +.fa-calendar-o:before { + content: "\f133"; +} +.fa-fire-extinguisher:before { + content: "\f134"; +} +.fa-rocket:before { + content: "\f135"; +} +.fa-maxcdn:before { + content: "\f136"; +} +.fa-chevron-circle-left:before { + content: "\f137"; +} +.fa-chevron-circle-right:before { + content: "\f138"; +} +.fa-chevron-circle-up:before { + content: "\f139"; +} +.fa-chevron-circle-down:before { + content: "\f13a"; +} +.fa-html5:before { + content: "\f13b"; +} +.fa-css3:before { + content: "\f13c"; +} +.fa-anchor:before { + content: "\f13d"; +} +.fa-unlock-alt:before { + content: "\f13e"; +} +.fa-bullseye:before { + content: "\f140"; +} +.fa-ellipsis-h:before { + content: "\f141"; +} +.fa-ellipsis-v:before { + content: "\f142"; +} +.fa-rss-square:before { + content: "\f143"; +} +.fa-play-circle:before { + content: "\f144"; +} +.fa-ticket:before { + content: "\f145"; +} +.fa-minus-square:before { + content: "\f146"; +} +.fa-minus-square-o:before { + content: "\f147"; +} +.fa-level-up:before { + content: "\f148"; +} +.fa-level-down:before { + content: "\f149"; +} +.fa-check-square:before { + content: "\f14a"; +} +.fa-pencil-square:before { + content: "\f14b"; +} +.fa-external-link-square:before { + content: "\f14c"; +} +.fa-share-square:before { + content: "\f14d"; +} +.fa-compass:before { + content: "\f14e"; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} +.fa-gbp:before { + content: "\f154"; +} +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} +.fa-file:before { + content: "\f15b"; +} +.fa-file-text:before { + content: "\f15c"; +} +.fa-sort-alpha-asc:before { + content: "\f15d"; +} +.fa-sort-alpha-desc:before { + content: "\f15e"; +} +.fa-sort-amount-asc:before { + content: "\f160"; +} +.fa-sort-amount-desc:before { + content: "\f161"; +} +.fa-sort-numeric-asc:before { + content: "\f162"; +} +.fa-sort-numeric-desc:before { + content: "\f163"; +} +.fa-thumbs-up:before { + content: "\f164"; +} +.fa-thumbs-down:before { + content: "\f165"; +} +.fa-youtube-square:before { + content: "\f166"; +} +.fa-youtube:before { + content: "\f167"; +} +.fa-xing:before { + content: "\f168"; +} +.fa-xing-square:before { + content: "\f169"; +} +.fa-youtube-play:before { + content: "\f16a"; +} +.fa-dropbox:before { + content: "\f16b"; +} +.fa-stack-overflow:before { + content: "\f16c"; +} +.fa-instagram:before { + content: "\f16d"; +} +.fa-flickr:before { + content: "\f16e"; +} +.fa-adn:before { + content: "\f170"; +} +.fa-bitbucket:before { + content: "\f171"; +} +.fa-bitbucket-square:before { + content: "\f172"; +} +.fa-tumblr:before { + content: "\f173"; +} +.fa-tumblr-square:before { + content: "\f174"; +} +.fa-long-arrow-down:before { + content: "\f175"; +} +.fa-long-arrow-up:before { + content: "\f176"; +} +.fa-long-arrow-left:before { + content: "\f177"; +} +.fa-long-arrow-right:before { + content: "\f178"; +} +.fa-apple:before { + content: "\f179"; +} +.fa-windows:before { + content: "\f17a"; +} +.fa-android:before { + content: "\f17b"; +} +.fa-linux:before { + content: "\f17c"; +} +.fa-dribbble:before { + content: "\f17d"; +} +.fa-skype:before { + content: "\f17e"; +} +.fa-foursquare:before { + content: "\f180"; +} +.fa-trello:before { + content: "\f181"; +} +.fa-female:before { + content: "\f182"; +} +.fa-male:before { + content: "\f183"; +} +.fa-gittip:before, +.fa-gratipay:before { + content: "\f184"; +} +.fa-sun-o:before { + content: "\f185"; +} +.fa-moon-o:before { + content: "\f186"; +} +.fa-archive:before { + content: "\f187"; +} +.fa-bug:before { + content: "\f188"; +} +.fa-vk:before { + content: "\f189"; +} +.fa-weibo:before { + content: "\f18a"; +} +.fa-renren:before { + content: "\f18b"; +} +.fa-pagelines:before { + content: "\f18c"; +} +.fa-stack-exchange:before { + content: "\f18d"; +} +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} +.fa-arrow-circle-o-left:before { + content: "\f190"; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} +.fa-dot-circle-o:before { + content: "\f192"; +} +.fa-wheelchair:before { + content: "\f193"; +} +.fa-vimeo-square:before { + content: "\f194"; +} +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} +.fa-plus-square-o:before { + content: "\f196"; +} +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-pied-piper-pp:before { + content: "\f1a7"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-spoon:before { + content: "\f1b1"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa-file-word-o:before { + content: "\f1c2"; +} +.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} +.fa-file-code-o:before { + content: "\f1c9"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: "\f1d0"; +} +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-circle-thin:before { + content: "\f1db"; +} +.fa-header:before { + content: "\f1dc"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-sliders:before { + content: "\f1de"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bell-slash-o:before { + content: "\f1f7"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-eyedropper:before { + content: "\f1fb"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-area-chart:before { + content: "\f1fe"; +} +.fa-pie-chart:before { + content: "\f200"; +} +.fa-line-chart:before { + content: "\f201"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-cc:before { + content: "\f20a"; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} +.fa-meanpath:before { + content: "\f20c"; +} +.fa-buysellads:before { + content: "\f20d"; +} +.fa-connectdevelop:before { + content: "\f20e"; +} +.fa-dashcube:before { + content: "\f210"; +} +.fa-forumbee:before { + content: "\f211"; +} +.fa-leanpub:before { + content: "\f212"; +} +.fa-sellsy:before { + content: "\f213"; +} +.fa-shirtsinbulk:before { + content: "\f214"; +} +.fa-simplybuilt:before { + content: "\f215"; +} +.fa-skyatlas:before { + content: "\f216"; +} +.fa-cart-plus:before { + content: "\f217"; +} +.fa-cart-arrow-down:before { + content: "\f218"; +} +.fa-diamond:before { + content: "\f219"; +} +.fa-ship:before { + content: "\f21a"; +} +.fa-user-secret:before { + content: "\f21b"; +} +.fa-motorcycle:before { + content: "\f21c"; +} +.fa-street-view:before { + content: "\f21d"; +} +.fa-heartbeat:before { + content: "\f21e"; +} +.fa-venus:before { + content: "\f221"; +} +.fa-mars:before { + content: "\f222"; +} +.fa-mercury:before { + content: "\f223"; +} +.fa-intersex:before, +.fa-transgender:before { + content: "\f224"; +} +.fa-transgender-alt:before { + content: "\f225"; +} +.fa-venus-double:before { + content: "\f226"; +} +.fa-mars-double:before { + content: "\f227"; +} +.fa-venus-mars:before { + content: "\f228"; +} +.fa-mars-stroke:before { + content: "\f229"; +} +.fa-mars-stroke-v:before { + content: "\f22a"; +} +.fa-mars-stroke-h:before { + content: "\f22b"; +} +.fa-neuter:before { + content: "\f22c"; +} +.fa-genderless:before { + content: "\f22d"; +} +.fa-facebook-official:before { + content: "\f230"; +} +.fa-pinterest-p:before { + content: "\f231"; +} +.fa-whatsapp:before { + content: "\f232"; +} +.fa-server:before { + content: "\f233"; +} +.fa-user-plus:before { + content: "\f234"; +} +.fa-user-times:before { + content: "\f235"; +} +.fa-hotel:before, +.fa-bed:before { + content: "\f236"; +} +.fa-viacoin:before { + content: "\f237"; +} +.fa-train:before { + content: "\f238"; +} +.fa-subway:before { + content: "\f239"; +} +.fa-medium:before { + content: "\f23a"; +} +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b"; +} +.fa-optin-monster:before { + content: "\f23c"; +} +.fa-opencart:before { + content: "\f23d"; +} +.fa-expeditedssl:before { + content: "\f23e"; +} +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: "\f240"; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241"; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242"; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243"; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244"; +} +.fa-mouse-pointer:before { + content: "\f245"; +} +.fa-i-cursor:before { + content: "\f246"; +} +.fa-object-group:before { + content: "\f247"; +} +.fa-object-ungroup:before { + content: "\f248"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-sticky-note-o:before { + content: "\f24a"; +} +.fa-cc-jcb:before { + content: "\f24b"; +} +.fa-cc-diners-club:before { + content: "\f24c"; +} +.fa-clone:before { + content: "\f24d"; +} +.fa-balance-scale:before { + content: "\f24e"; +} +.fa-hourglass-o:before { + content: "\f250"; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251"; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252"; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253"; +} +.fa-hourglass:before { + content: "\f254"; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255"; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256"; +} +.fa-hand-scissors-o:before { + content: "\f257"; +} +.fa-hand-lizard-o:before { + content: "\f258"; +} +.fa-hand-spock-o:before { + content: "\f259"; +} +.fa-hand-pointer-o:before { + content: "\f25a"; +} +.fa-hand-peace-o:before { + content: "\f25b"; +} +.fa-trademark:before { + content: "\f25c"; +} +.fa-registered:before { + content: "\f25d"; +} +.fa-creative-commons:before { + content: "\f25e"; +} +.fa-gg:before { + content: "\f260"; +} +.fa-gg-circle:before { + content: "\f261"; +} +.fa-tripadvisor:before { + content: "\f262"; +} +.fa-odnoklassniki:before { + content: "\f263"; +} +.fa-odnoklassniki-square:before { + content: "\f264"; +} +.fa-get-pocket:before { + content: "\f265"; +} +.fa-wikipedia-w:before { + content: "\f266"; +} +.fa-safari:before { + content: "\f267"; +} +.fa-chrome:before { + content: "\f268"; +} +.fa-firefox:before { + content: "\f269"; +} +.fa-opera:before { + content: "\f26a"; +} +.fa-internet-explorer:before { + content: "\f26b"; +} +.fa-tv:before, +.fa-television:before { + content: "\f26c"; +} +.fa-contao:before { + content: "\f26d"; +} +.fa-500px:before { + content: "\f26e"; +} +.fa-amazon:before { + content: "\f270"; +} +.fa-calendar-plus-o:before { + content: "\f271"; +} +.fa-calendar-minus-o:before { + content: "\f272"; +} +.fa-calendar-times-o:before { + content: "\f273"; +} +.fa-calendar-check-o:before { + content: "\f274"; +} +.fa-industry:before { + content: "\f275"; +} +.fa-map-pin:before { + content: "\f276"; +} +.fa-map-signs:before { + content: "\f277"; +} +.fa-map-o:before { + content: "\f278"; +} +.fa-map:before { + content: "\f279"; +} +.fa-commenting:before { + content: "\f27a"; +} +.fa-commenting-o:before { + content: "\f27b"; +} +.fa-houzz:before { + content: "\f27c"; +} +.fa-vimeo:before { + content: "\f27d"; +} +.fa-black-tie:before { + content: "\f27e"; +} +.fa-fonticons:before { + content: "\f280"; +} +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-credit-card-alt:before { + content: "\f283"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-pause-circle-o:before { + content: "\f28c"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stop-circle-o:before { + content: "\f28e"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-percent:before { + content: "\f295"; +} +.fa-gitlab:before { + content: "\f296"; +} +.fa-wpbeginner:before { + content: "\f297"; +} +.fa-wpforms:before { + content: "\f298"; +} +.fa-envira:before { + content: "\f299"; +} +.fa-universal-access:before { + content: "\f29a"; +} +.fa-wheelchair-alt:before { + content: "\f29b"; +} +.fa-question-circle-o:before { + content: "\f29c"; +} +.fa-blind:before { + content: "\f29d"; +} +.fa-audio-description:before { + content: "\f29e"; +} +.fa-volume-control-phone:before { + content: "\f2a0"; +} +.fa-braille:before { + content: "\f2a1"; +} +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: "\f2a4"; +} +.fa-glide:before { + content: "\f2a5"; +} +.fa-glide-g:before { + content: "\f2a6"; +} +.fa-signing:before, +.fa-sign-language:before { + content: "\f2a7"; +} +.fa-low-vision:before { + content: "\f2a8"; +} +.fa-viadeo:before { + content: "\f2a9"; +} +.fa-viadeo-square:before { + content: "\f2aa"; +} +.fa-snapchat:before { + content: "\f2ab"; +} +.fa-snapchat-ghost:before { + content: "\f2ac"; +} +.fa-snapchat-square:before { + content: "\f2ad"; +} +.fa-pied-piper:before { + content: "\f2ae"; +} +.fa-first-order:before { + content: "\f2b0"; +} +.fa-yoast:before { + content: "\f2b1"; +} +.fa-themeisle:before { + content: "\f2b2"; +} +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: "\f2b3"; +} +.fa-fa:before, +.fa-font-awesome:before { + content: "\f2b4"; +} +.fa-handshake-o:before { + content: "\f2b5"; +} +.fa-envelope-open:before { + content: "\f2b6"; +} +.fa-envelope-open-o:before { + content: "\f2b7"; +} +.fa-linode:before { + content: "\f2b8"; +} +.fa-address-book:before { + content: "\f2b9"; +} +.fa-address-book-o:before { + content: "\f2ba"; +} +.fa-vcard:before, +.fa-address-card:before { + content: "\f2bb"; +} +.fa-vcard-o:before, +.fa-address-card-o:before { + content: "\f2bc"; +} +.fa-user-circle:before { + content: "\f2bd"; +} +.fa-user-circle-o:before { + content: "\f2be"; +} +.fa-user-o:before { + content: "\f2c0"; +} +.fa-id-badge:before { + content: "\f2c1"; +} +.fa-drivers-license:before, +.fa-id-card:before { + content: "\f2c2"; +} +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: "\f2c3"; +} +.fa-quora:before { + content: "\f2c4"; +} +.fa-free-code-camp:before { + content: "\f2c5"; +} +.fa-telegram:before { + content: "\f2c6"; +} +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: "\f2c7"; +} +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: "\f2c8"; +} +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: "\f2c9"; +} +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: "\f2ca"; +} +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: "\f2cb"; +} +.fa-shower:before { + content: "\f2cc"; +} +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: "\f2cd"; +} +.fa-podcast:before { + content: "\f2ce"; +} +.fa-window-maximize:before { + content: "\f2d0"; +} +.fa-window-minimize:before { + content: "\f2d1"; +} +.fa-window-restore:before { + content: "\f2d2"; +} +.fa-times-rectangle:before, +.fa-window-close:before { + content: "\f2d3"; +} +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: "\f2d4"; +} +.fa-bandcamp:before { + content: "\f2d5"; +} +.fa-grav:before { + content: "\f2d6"; +} +.fa-etsy:before { + content: "\f2d7"; +} +.fa-imdb:before { + content: "\f2d8"; +} +.fa-ravelry:before { + content: "\f2d9"; +} +.fa-eercast:before { + content: "\f2da"; +} +.fa-microchip:before { + content: "\f2db"; +} +.fa-snowflake-o:before { + content: "\f2dc"; +} +.fa-superpowers:before { + content: "\f2dd"; +} +.fa-wpexplorer:before { + content: "\f2de"; +} +.fa-meetup:before { + content: "\f2e0"; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} diff --git a/web-modules/lexicon/build/fontawesome/css/font-awesome.min.css b/web-modules/lexicon/build/fontawesome/css/font-awesome.min.css new file mode 100644 index 00000000..540440ce --- /dev/null +++ b/web-modules/lexicon/build/fontawesome/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/web-modules/lexicon/build/fontawesome/fonts/FontAwesome.otf b/web-modules/lexicon/build/fontawesome/fonts/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..401ec0f36e4f73b8efa40bd6f604fe80d286db70 GIT binary patch literal 134808 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 literal 0 HcmV?d00001 diff --git a/web-modules/lexicon/build/fontawesome/fonts/fontawesome-webfont.eot b/web-modules/lexicon/build/fontawesome/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..e9f60ca953f93e35eab4108bd414bc02ddcf3928 GIT binary patch literal 165742 zcmd443w)Ht)jvM-T=tf|Uz5#kH`z;W1W0z103j^*Tev7F2#5hiQ9w~aka}5_DkxP1 zRJ3Y?7YePlysh?CD|XvjdsAv#YOS?>W2@EHO9NV8h3u2x_sp}KECIB>@9+Qn{FBV{ zJTr4<=FH5QnRCvZnOu5{#2&j@Vw_3r#2?PKa|-F4dtx{Ptp0P(#$Rn88poKQO<|X@ zOW8U$o^4<&*p=|D!J9EVI}`7V*m|~_En`<8B*M-{$Q6LOSfmND1Z!lia3ffVHQ_mu zwE*t)c_Na~v9UCh+1x2p=FeL7+|;L;bTeUAHg(eEDN-*};9m=WXwJOhO^lgVEPBX5Gh_bo8QSSFY{vM^4hsD-mzHX!X?>-tpg$&tfe27?V1mUAbb} z1dVewCjIN7C5$=lXROG% zX4%HIa)VTc_%^_YE?u@}#b58a4S8RL@|2s`UUucWZ{P9NJxp5Fi!#@Xx+(mZ+kdt3 zobw#*|6)Z(BxCGw^Gi+ncRvs|a|3xz=tRA9@HDV~1eqD)`^`KTPEg`UdXhq18})-@}JTHp30^)`L{?* z;c)alkYAc@67|W!7RDPu6Tsy@xJCK8{2T9-fJw6?@=A(w^}KCVjwlOd=JTO=3Zr+< zIdd?1zo-M^76}Jf!cpLfH`+2q=}d5id5XLcPw#xVocH5RVG7;@@%R>Sxpy8{(H9JH zY1V)?J1-AIeIxKhoG1%;AWq7C50ok3DSe?!Gatbry_zpS*VoS6`$~lK9E?(!mcrm1 z^cLZ1fmx5Ds`-ethCvMtDTz zMd=G1)gR$jic|1SaTLaL-{ePJOFkUs%j634IMp}dnR5yGMtsXmA$+JDyxRuSq*)bk zt3tSN2(J<@ooh3|!(R%VsE#5%U{m-mB7fcy&h(8kC(#>yA(JCmQ6|O1<=_U=0+$AY zC)@~M`UboR6Xm2?$e8Z$r#u8)TEP0~`viw@@+){#874R?kHRP|IU4&!?+9Cy52v^I zPV4Xd{9yc;)#l?0VS#6g@ z`#y))03Laq@^6Z#Z*uvzpl{$JzFJgn&xHlNBS|Eb!E@}~Z$^m!a9k34KX zT|VETZ;B_E$Ai8J#t5#kATCAUlqbr&P~-s)k^FfWyz}iK@`B$FI6L0u1uz5fgfqgU zRBmB>F8s_qp1HWm1!aXOEbpf`U?X|>{F`8Md500U3i;Mh9Kvbd(CeuC>077ww4g^h zKgM(A48W`XEDE~N*Th^NqP#S7&^w2Vpq+df2#@A*&4u~I+>t)9&GYcop9OtUo=;2d zGSq?IMBAYZffMC1v^|Z|AWdQ38UdJS4(H(nFI<|%=>0iAn3lvcSjIR(^7r7QuQI0a zm+@Z9QXmf!efG1**%Ryq_G-AQs-mi^*WO#v+tE9_cWLjXz1Q{L-uqzh z-Vb`UBlaT|M;ecG9GQJ&>5)s1TzBO5BM%;V{K#`h4juXPkq?e&N9{)|j&>ZKeRS#3 zOOIZ6^!B3<9)0}ib4L#y{qxZe{ss8}C5PC)Atkb2XK%PS)jPMht9Na0x_5hTckhAT zOz+FRJ-xk0*b(QE(2)^GQb*<<={mCZNczb3Bi%<19LXGc`AE-^-lOcO^Jw^J>ge2~ zT}Rg*O&{HUwEO6RqnV>GAMK$M`~TX%q<>-my#5LOBmex)pWgq|V@{jX>a;k`PLtE< zG&ohK;*_0|<6n-C93MK4I*vGc9shKE;CSEhp5tA|KOBE|yyJM=@i)g?jyD~Db^OKg zhNH*vXUCr$uRH$ec+K$#$E%LtJ6>`8&T-iBTicKH)SNMZS zB8UG!{1{Y=QL&oLMgLzR(}0Y>sN0TqgG|kLqv_VcVSLD)aJ?AC^D!bLa6K5Ut1)YA zghRXq;YBrYhrzOK23vXorq6v~v*CBb?*bYw$l-3J@cY5H}8Gr;t8{e8!J}L*5e>!hOQnM3g=8eoXDiYZBlmBW?=(Qvo;ib;hP4-|5>J zo6*MD%*UW90?aI=ncV;fJZB$fY|a73<^rd=!0(I%TsLE9TH#hRHV<&~b~82~@n<2= z1-*oTQL{zWh}4H zGjX>}SbW{R;(k^VBouiebp<&Q9S1P`GIlM(uLaz7TNt~37h`FJ-B1j-jj@}iF}B$Yhy1^cv|oM`3X|20-GXwq z0QapK#%@FUZ9ik|D}cWpad#li_7EK6?wrrq4l5kOc5H@2*p5ENc6Pxb%`OEl1=q{i zU1`Sdjxcu562^8fWbEEDi1(A=o?`5)DC_=i#vVX^45ZpSrpE35`g>WA+_QYDo!1%Byk?;4A*Y^%H_McC{^)mJp(mf6Mr$1rr8Klp< z@9$&m+0Bd{OfmMH!q^XxU*>tneq@E)#@LU6-}5Nz`DYpXi4*QA#$MRP*w045^)U8x zl=XAu_Y36n%QPIqUi^r$mjH7JWgdEmv0oiv>}BNj>jtO;GSSiGr=LO--M;f3$4%-kcdA5=kp1;?w1)iU%_3WyqWQmjf@AcVZ3xc<7I~# zFHgbYU4b-}3LN4>NEZft6=17@TlH$jBZ!NjjQC2%Yu;hJu9NWwZ@DynQp=tBj8Wjw$e9<5A{>pD{iW zZqogXPX_!HxT$LypN98z;4>ox_a@^r4>R7`&G@Wh#%HG(p9^;e{AczsK5r7^^FxfE z1>DZ=f&=UVl(8@Y2be_)+!n?cUjPUAC8+bcuQI+Aab3F@Uxu=lJpt$oQq38DE=X{7U3=m6P!eKVy6&>UK5q-?WYKFCon} zcwbuv_Xy+HBi;48;XYwJy_)eGknfFvzbOHS_{~WFRt)zJ zijpU?=0x zkwe%IkXL3J<39wBKYX6?A1iQgGX8uw<3E|t_zN{~?=k)}E8{7uHGX6%I@xLJ5o5hU3g}A@9GyXR4dV3$^??m7ZGyeD0jQ;~={sZ6d0>}3fa8JQ~ z#Q6Kj>z^jLM;Px_;9g|>2lp6?Oy32JW8UD|ZH#LugXW9=mzl&9Ov2uUBsVZgS;-{zFeKKwOfnbOFe$i&Nu~HMe}YLB^Wk1(Qs^2cg^_pF zV@!&4GARo9*fb`^0bBDClWMmysSaUvuQREB7n2(BZbV*M)y$0@8CXG!nX&m5FyO}f|^_bYrq)EtQ3jEW$ z;E;a$iwt`}|2xOlf`@fNIFLzjYz@1@vMcQB;TbKpR_b1>hK{W@uw#sVI6JqW86H;C ztQ;P%k-Nf8ey^cATop^SG>2V0mP~Z;=5SL5H#}UQ-NIABSS;9=rYBEjx70^!0%|%? z6H%vBBRb1si5UK{xwWyrI#6mdl~NhlB{DFSQ4f#HYnQ4Tr9_9++!S!BCwdbtt-PhV z2|9^MD=%7f(aK494ZCcz4t6dY`X;_62ywrIPovV+sT0pH?+{mwxjh%^> zh_?T`uiv2^KX}>z4HVY!Y%V1QDcBvi>!sD@MEbj99(bg@lcBxTD9~gYzfIm>7jFFl;^hEgOD8Clhu+6jw>0z&OhJ=2DoJ42R3QaA zWOOLCseE6;o!xG!?ra~f^>o~D+1yBE?qxT0^k{Eo?@YU;MW)Dk7u-Ja^-t=jry`Nm z^!iU;|I=I9eR|&CLf`eUDtM5Q2iZ}-MO8dOpsgMv)7Ge`r77T1(I!FduCuw%>+xyh zv~lQApLDjitE7#8{D!C9^9KL8O}^S6)E?BVMw_qP`rdoia-YG@KjOf%Qh4Bnt8Mcoi9h#JRYY3kEvn*UVbReO50BrmV+ z;MZw4c4)uX7XS38vL%mZ(`R5ww4GL|?R_+gqd5vmpyBRdmy(bdo1(0=sB8@yxdn)~lxbJjigu9=)pPhNBHJ@OCr@Hfy7 zMKpelG=3bck_~6$*c^5qw$ra?cd)OqZ$smlOvLJWm7$z_{bM*t_;dW+m52!n&yhSI z0)LYKbKpO(yrBb!r(;1ei=F17uvjq5XquDp?1L{4s1~Hu@I46id3j>UeJTcx0fQ!$ z&o9RBJJn}4D52n3P@|_Z2y%SzQ!WJ22E$LC;WNiX*{T?@;Pj!}DC|#~nZ>-HpIS<2 za>P22_kUiz%sLYqOLTT7B=H>lmeZ$;kr+*xoe54)>BRz1U!muO7@@$$G=552gn*!9 zJ(lYeq-%(OX#D?e|IqRz)>flsYTDXrc#58b-%`5Jmp#FEV%&+o&w?z>k%vUF^x&@! zd}aqf<-yN_(1OoX0~BNi5+XV}sW1Mo_rky5sw&#MPqeg*Iv+ow^-qi|g!>=1)d@|( zIJ=tJ4Yw%YfhiFbenxIIR1N1mmKeveFq!eFI?k+2%4<3`YlV3hM zS45R<;g^uVtW5iZbSGet@1^}8sBUEktA@_c>)?i}IE-EQTR@N-j%b9$Syc1{S3U?8e~d3B1?Lij0H27USiF&gR}A>wG-vBGIPuh*4ry;{Khxekv}wCTm%_>vhFZSJ)Pw2iv6Q4YVoQ`J2w?yCkiavVTWeVa)j|q=T9@J0pTtcQX!VHnIM6Al- z^*7Og!1y$xN4)5fYK&2X5x-Om4A;1k20|=O+$wl^1T}IRHkcq<^P$a{C0fAii(ypB z{ef1n(U1a&g|>5}zY?N{!tOqN_uYr3yPejjJ>KeR7IW!#ztw(g!*Hj~SpH|bkC%t5kd^Q2w*f{D8tJPwQ z++kT&2yEHVY_jXXBg!P7SUbSC;y1@rj$sqoMWF2=y$%ua1S%Nn_dvGwR*;O^!Fd?1 z8#WkKL1{>+GcdW?sX2^RC#k8D;~{~1M4#fpPxGDbOWPf?oRS^(Y!}arFj}-9Ta5B$ zZhP0#34P$Fx`;w}a*AU%t?#oPQ+U$umO}+(WIxS!wnBcQuM;%yiYhbKnNwXa7LiRjmf+(2(ZG}wiz%sgWJi>jgGIsPnZ=KfX?8mJ2^L!4-hBx#UR zZa((80+3k2t!n9h@La(dm&Qrs_teRTeB}Y= zShqm6zJdPGS+juA6^_Mu3_1sz1Hvx#*|M6pnqz`jk<&F@Wt;g%i&gunm7lM5)wE@q zvbn6Q=6IU;C_@UMWs|fmylAcBqr(MowarQT7@9BsXzyH534G z1e0`Rlnqb_RAIW{M7dQoxdg$ z;&VZRA?1jrgF9nN0lg?)7VU>c#YI}iVKVtMV&I^SUL2sA9Xn2<8mY@_)qZF;^OV!$ z;QVMjZTMUtC^eDXuo)DkX75sJ*#d6g{w?U1!Fbwid(nlSiF_z zStRqVrV`8MJBg{|ZM^Kzrps2`fI(Eq&qUZ%VCjWLQn)GthGkFz0LcT(tUy)_i~PWb ze1obC@Hu0-n}r4LO@8%lp3+uoAMDWnx#|WFhG&pQo@eXSCzjp(&Xl4$kfY60LiIx^ zs+SA=sm(K<-^V>WxOdf!NXC0qN&86q?xh#r;L)>)B|KXvOuO+4*98HO?4jfcxpk`^ zU^8+npM|PWn*7Nj9O_U%@pt)^gcu2m|17^}h}J6KWCJ>t zv@Qsc2z0711@V0%PDVqW?i)a)=GC>nC+Kx~*FeS}p5iNes=&dpY_lv9^<|K`GOJMG zE5^7&yqgjFK*qz6I-su3QFo4`PbRSbk|gNIa3+>jPUVH}5I6C)+!U&5lUe4HyYIe4 z>&a$lqL(n;XP)9F?USc6ZA6!;oE+i8ksYGTfe8;xbPFg9e&VVdrRpkO9Zch#cxJH7 z%@Bt~=_%2;shO9|R5K-|zrSznwM%ZBp3!<;&S0$4H~PJ&S3PrGtf}StbLZKDF_le= z9k)|^Do10}k~3$n&#EP*_H_-3h8^ZuQ2JXaU@zY|dW@$oQAY%Z@s0V8+F~YQ=#aqp z=je#~nV5}oI1J`wLIQ^&`Mj01oDZ;O`V>BvWCRJd%56g!((T@-{aY6fa;a0Vs+v@O z0IK2dXum&DKB?-ese^F~xB8#t6TFirdTy3(-MedKc;2cI&D}ztv4^I%ThCj* ziyQ90UpuyI`FYm%sUlWqP(!Qcg-7n%dk-&uY15{cw0HD+gbuz}CQP*u8*(+KCYFiz80m1pT=kmx0(q(xrCPMsUH1k{mefDSp) zD5G^q?m1N%Jbl&_iz65-uBs{~7YjNpQ%+H^=H7i%nHnwimHSGDPZ(Z;cWG1wcZw|v z%*juq&!(bo!`O7T>Wkon^QZ-rLvkd_^z#)5Hg zxufObryg!`lzZc#{xRRv6592P5fce0Hl-xEm^*nBcP$v z0`KR64y6=xK{a*oNxW9jv+9)$I9SxN-Oig_c%UK7hZDj_WEb$BDlO#*M?@b>eU7 zxN!%UE+w#Wg$bqFfc# zeDOpwnoY)%(93rx(=q9nQKg6?XKJZrRP#oo(u>h_l6NOMld)_IF( zs6M+iRmTC+ALc}C7V>JEuRjk9o)*YO8Y}oKQNl2t?D;qFLv4U`StSyoFzFYuq>i@C zEa1!N?B0BK0gjTwsL04McVmu=$6B!!-4bi1u_j7ZpCQm-l2u7AlYMmx zH!4a*@eEhENs{b-gUMy{c*AjMjcwAWGv@lW4YQtoQvvf*jQ2wL8+EGF4rQjAc;uiEzG%4uf z9wX{X3(U5*s$>6M z)n+q=_&#l6nEa|4ez8YOb9q{(?8h1|AYN<53x+g()8?U_N+)sEV;tdoV{pJ^DTD)ZvO|;^t&(V6L2z~TSiWu zI&#bLG#NGMHVY^mJXXH_jBGA?Np1q;)EYzS3U=1VKn3aXyU}xGihu`L8($R|e#HpJ zzo`QozgXO&25>bM*l>oHk|GV&2I+U-2>)u7C$^yP7gAuth~}8}eO^2>X_8+G@2GX0 zUG8;wZgm*=I4#ww{Ufg2!~-Uu*`{`!$+eE)in1}WPMJ%i|32CjmFLR8);bg^+jrF* zW0A!Zuas6whwVl!G+Vp(ysAHq9%glv8)6>Sr8w=pzPe1s`fRb9oO^yGOQW^-OZ=5? zNNaJk+iSAxa}{PtjC&tu_+{8J_cw=JiFhMqFC!}FHB@j}@Q$b&*h-^U)Y&U$fDWad zC!K&D&RZgww6M(~`@DA92;#vDM1_`->Ss*g8*57^PdIP-=;>u#;wD4g#4|T7ZytTY zx(Q8lO+5Ris0v-@GZXC@|&A*DPrZ51ZeSyziwc>%X>dNyCAL zOSDTJAwK7d2@UOGmtsjCPM9{#I9Gbb7#z25{*;Tyl-Zho(Oh~-u(5CLQl;2ot%#Nl z_cf{VEA=LuSylKv$-{%A=U+QBv0&8bP;vDOcU|zc3n!Nu{9=5j6^6DL&6tm-J4|~) z9#1w(@m3N|G3n9Xf)O<|NO+P)+F(TgqN3E#F8`eIrDZn0=@MQ%cDBb8e*D_eBUXH+ zOtn|s5j9y2W~uaQm*j{3fV=j|wxar?@^xjmPHKMYy0eTPkG*<=QA$Wf)g`tfRlZ0v ztEyRwH(8<%&+zbQ+pg>z^Ucf8Jj>x$N*h{buawh;61^S+&ZX>H^j?#nw!}!~35^Z# zqU|=INy-tBD+E^RCJdtvC_M2+Bx*2%C6nTfGS!1b*MJvhKZZPkBfkjIFf@kLBCdo) zszai4sxmBgklbZ>Iqddc=N%2_4$qxi==t>5E!Ll+-y(NJc+^l)uMgMZH+KM<|+cUS^t~AUy&z{UpW?AA~QO;;xntfuA^Rj7SU%j)& zVs~)K>u%=e(ooP|$In{9cdb}2l?KYZinZ8o+i;N-baM#CG$-JMDcX1$y9-L(TsuaT zfPY9MCb3xN8WGxNDB@4sjvZ10JTUS1Snvy5l9QPbZJ1#AG@_xCVXxndg&0Cz99x`Z zKvV%^1YbB2L)tU+ww(e6EZYzc6gI5g;!?*}TsL=hotb0Mow8kxW*HVdXfdVep4yL` zdfTcM*7nwv5)3M-)^@ASp~`(sR`IsMgXV>xPx0&5!lR8(L&vn@?_Oi2EXy)sj?Q8S$Mm zP{=PsbQ)rJtxy*+R9EqNek1fupF(7d1z|uHBZdEQMm`l!QnDTsJ_DX2E=_R?o*D5) z4}Rh2eEvVeTQ^UXfsDXgAf@6dtaXG>!t?(&-a~B^KF@z*dl$BLVOt|yVElz!`rm5n z&%<$O{7{?+>7|f%3ctTlD}Sc0Zs_hY;YO-&eOIT+Kh%FJdM|_@8b7qIL;aj#^MhF1 z(>x4_KPKYTl+AOj0Q$t3La4&;o`HP%m8bgb`*0vs83ZT@J#{j%7e8dKm;){k%rMw* zG9eKbw_mh1PHLUB$7VNcJ=oL;nV~#W;r|rv;ISD5+Q-FH5g~=&gD`RrnNm>lGJ1GE zw`K+PW!P*uxsEyAzhLvBOEUkj>)1sV6q-RhP*nGS(JD%Z$|wijTm)a5S+oj03MzBz zPjp$XjyM!3`cFtv`8wrA`EpL(8Soof9J(X7wr2l^Y-+>){TrmrhW&h}yVPonlai>; zrF!_zz4@5^8y@95z(7+GLY@+~o<>}!RDp|@N4vi4Y-r@AF@6Q7ET8d9j~&O$3l#Yuo`voKB12v8pK*p3sJO+k{- zak5sNppfOFju-S9tC#^&UI}&^S-3TB^fmi<0$e%==MK3AqBrn!K@ZCzuah-}pRZc{ z?&7p`mEU5_{>6x=RAFr4-F+FYOMN%GSL@mvX-UT3jRI;_TJH7}l*La_ztFn+GQ3;r zNk;eb?nh&>e?Z$I<$LDON!e1tJ26yLILq`~hFYrCA|rj2uGJHxzz@8b<} z&bETBnbLPG9E*iz!<03Ld4q;C140%fzRO5j*Ql#XY*C-ELCtp24zs*#$X0ZhlF~Qj zq$4Nq9U@=qSTzHghxD(IcI0@hO0e}l7_PKLX|J5jQe+67(8W~90a!?QdAYyLs6f^$ zgAUsZ6%aIOhqZ;;;WG@EpL1!Mxhc_XD!cTY%MEAnbR^8{!>s|QGte5Y=ivx6=T9Ei zP_M&x-e`XKwm+O(fpg~P{^7QV&DZPW)$j@GX#kClVjXN6u+n=I$K0{Y-O4?f;0vgV zY+%5cgK;dNK1}{#_x-Zyaw9sN`r9jST(^5&m&8IY?IBml#h0G3e?uSWfByzKHLe8) z9oCU{cfd~u97`w2ATe{wQPagk*)FX|S+YdySpplm-DSKB*|c>@nSp$=zj{v3WyAgw zqtk_K3c5J|0pC zSpww86>3JZSitYm_b*{%7cv?=elhCFy1v6m)^n?211803vG_;TRU3WPV`g7=>ywvsW6B76c-kXXYuS7~J+@Lc zSf%7^`HIJ4D|VX9{BlBG~IV;M->JId%#U?}jR@kQ&o5A3HyYDx}6Nc^pMjj0Jeun)M=&7-NLZ9@2 z)j60}@#z8oft^qhO`qgPG;Gf4Q@Zbq!Fx_DP1GkX<}_%EF`!5fg*xCsir}$yMH#85 zT3Y4bdV)bucC=X;w24>D>XjaA@K`En^++$6E!jmvauA$rc9F%b=P&f^I7M+{{--HM z0JXFl21+}*Oz8zr@T8JQp9Td0TZ7rr0+&rWePPKdaG}l-^)$@O*ON;2pkAjf4ZSg# zy{PLo>hhTUUK_q5L{o!vKb^7AIkbXB zm3BG{rbFE>fKfZsL4iKVYubQMO_AvYWH<3F_@;7*b}ss*4!r5a-5Mr{qoVbpXW1cja+YCd!nQ3xt*CEBq_FNhDc93rhj=>>F59=AN5 zoRmKmL))oDox0VF;gltwNSdcF9cb*OX3{Gx?X{Q-krC~b9}_3yG8Bn{`W6m}6YD#q zAkEzk)zB|ZA2Ao`dW^gC77j#kXk7>zOYg~2Y0NyG9@9L)X=yRL!=`tj7; z^S=K3l)dWTz%eniebMP!Z)q@7d(l_cR;2OvPv7I~Va{X>R@4XXh- zOMOMef=}m)U?`>^E`qUO(+Ng$xKwZ1|FQ|>X41&zvAf`(9 zj3GGCzGHqa8_lMGV+Q3A(d5seacFHJ92meB0vj+?SfQ~dL#3UE!1{}wjz|HPWCEHI zW{zYTeA(UwAEq6F%|@%!oD5ebM$D`kG45gkQ6COfjjk-==^@y6=Tp0-#~0px=I@H# z7Z|LQii;EBSfjse{lo}m?iuTG`$i6*F?L9m*kGMV_JUqsuT##HNJkrNL~cklwZK&3 zgesq4oycISoHuCg>Jo;0K(3&I(n-j7+uaf)NPK7+@p8+z!=r!xa45cmV`Mna1hT=i zAkgv-=xDHofR+dHn7FZvghtoxVqmi^U=Tk5i*(?UbiEGt9|mBN4tXfwT0b zIQSzTbod84Y<){2C!IJja=k65vqPM|!xFS?-HOK!3%&6=!T(Z$<>g6+rTpioPBf57 z$!8fVo=}&Z?KB-UB4$>vfxffiJ*^StPHhnl@7Fw@3-N|6BAyp|HhmV#(r=Ll2Y3af zNJ44J*!nZfs0Z5o%Qy|_7UzOtMt~9CA*sTy5=4c0Q9mP-JJ+p-7G&*PyD$6sj+4b>6a~%2eXf~A?KRzL4v_GQ!SRxsdZi`B(7Jx*fGf@DK z&P<|o9z*F!kX>I*;y78= z>JB#p1zld#NFeK3{?&UgU*1uzsxF7qYP34!>yr;jKktE5CNZ3N_W+965o=}3S?jx3 zv`#Wqn;l-4If#|AeD6_oY2Y||U?Fss}Sa>HvkP$9_KPcb_jB*Jc;M0XIE+qhbP$U2d z&;h?{>;H=Sp?W2>Uc{rF29ML>EiCy?fyim_mQtrgMA~^uv?&@WN@gUOPn(379I}U4Vg~Qo)jwJb7e_Pg^`Gmp+s5vF{tNzJVhBQ z$VB8M@`XJsXC!-){6wetDsTY94 G*yFsbY~cLNXLP73aA74Mq6M9f^&YV`isWW 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

5q!RY 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 + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web-modules/lexicon/build/fontawesome/fonts/fontawesome-webfont.ttf b/web-modules/lexicon/build/fontawesome/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..35acda2fa1196aad98c2adf4378a7611dd713aa3 GIT binary patch literal 165548 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 z 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

+
+

Loading word list...

+
+ diff --git a/web-modules/lexicon/build/index.js b/web-modules/lexicon/build/index.js index 83f4ae9b..403fbcdf 100644 --- a/web-modules/lexicon/build/index.js +++ b/web-modules/lexicon/build/index.js @@ -24,7 +24,7 @@ function boot() { // Ports related code below window.app.ports.saveWord.subscribe(function (definition) { - liveCode.debug("saving word", definition) + console.log("saving word", definition) list.push({ word: definition.word, id: definition.id }) localStorage.setItem("saved_words", JSON.stringify(list)) window.app.ports.savedWordListChanged.send(list) @@ -32,7 +32,7 @@ function boot() { window.app.ports.removeSavedWord.subscribe(function (definition) { - liveCode.debug("removing word", definition.word) + console.log("removing word", definition.word) list = list.filter((item) => item.word !== definition.word) localStorage.setItem("saved_words", JSON.stringify(list)) window.app.ports.savedWordListChanged.send(list) @@ -48,9 +48,9 @@ function boot() { }) window.app.ports.getWordList.subscribe(function () { - liveCode.debug("getting word list") + console.log("getting word list") if (wordlist) { - liveCode.debug("using saved one") + console.log("using saved one") window.app.ports.wordListReceived.send(wordlist) } else { liveCode.getWordList() @@ -63,14 +63,14 @@ function boot() { window.app.ports.getWordDefinition.subscribe(function (d) { - liveCode.debug("getting word definition for " + d) + console.log("getting word definition for " + d) liveCode.getWordDefinition(d) }) window.app.ports.lcDebug.subscribe(function (data) { - liveCode.debug("[ELM] " + data) + console.log("[ELM] " + data) }) } diff --git a/web-modules/lexicon/build/noto-sans/NotoSans-Regular-webfont.woff b/web-modules/lexicon/build/noto-sans/NotoSans-Regular-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..2ac0f4c604105fbdad49253394ec2da16fc61411 GIT binary patch literal 22288 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 t)!=mi0000000961007h^n7RM}007etdVc@_007olU1 - - - - - - - -

Demo Chromium bug

- - - - - - \ No newline at end of file diff --git a/web-modules/lexicon/index.html b/web-modules/lexicon/index.html index f4afb112..f171b63c 100644 --- a/web-modules/lexicon/index.html +++ b/web-modules/lexicon/index.html @@ -1,14191 +1,31 @@ - + + - - Main + + + + + + + + Lexicon + + + - -
- + - -// DECODE - -var _Json_runOnString = F2(function(decoder, string) -{ - try - { - var value = JSON.parse(string); - return _Json_runHelp(decoder, value); - } - catch (e) - { - return elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string))); - } -}); - -var _Json_run = F2(function(decoder, value) -{ - return _Json_runHelp(decoder, _Json_unwrap(value)); -}); - -function _Json_runHelp(decoder, value) -{ - switch (decoder.$) - { - case 3: - return (typeof value === 'boolean') - ? elm$core$Result$Ok(value) - : _Json_expecting('a BOOL', value); - - case 2: - if (typeof value !== 'number') { - return _Json_expecting('an INT', value); - } - - if (-2147483647 < value && value < 2147483647 && (value | 0) === value) { - return elm$core$Result$Ok(value); - } - - if (isFinite(value) && !(value % 1)) { - return elm$core$Result$Ok(value); - } - - return _Json_expecting('an INT', value); - - case 4: - return (typeof value === 'number') - ? elm$core$Result$Ok(value) - : _Json_expecting('a FLOAT', value); - - case 6: - return (typeof value === 'string') - ? elm$core$Result$Ok(value) - : (value instanceof String) - ? elm$core$Result$Ok(value + '') - : _Json_expecting('a STRING', value); - - case 9: - return (value === null) - ? elm$core$Result$Ok(decoder.c) - : _Json_expecting('null', value); - - case 5: - return elm$core$Result$Ok(_Json_wrap(value)); - - case 7: - if (!Array.isArray(value)) - { - return _Json_expecting('a LIST', value); - } - return _Json_runArrayDecoder(decoder.b, value, _List_fromArray); - - case 8: - if (!Array.isArray(value)) - { - return _Json_expecting('an ARRAY', value); - } - return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray); - - case 10: - var field = decoder.d; - if (typeof value !== 'object' || value === null || !(field in value)) - { - return _Json_expecting('an OBJECT with a field named `' + field + '`', value); - } - var result = _Json_runHelp(decoder.b, value[field]); - return (elm$core$Result$isOk(result)) ? result : elm$core$Result$Err(A2(elm$json$Json$Decode$Field, field, result.a)); - - case 11: - var index = decoder.e; - if (!Array.isArray(value)) - { - return _Json_expecting('an ARRAY', value); - } - if (index >= value.length) - { - return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value); - } - var result = _Json_runHelp(decoder.b, value[index]); - return (elm$core$Result$isOk(result)) ? result : elm$core$Result$Err(A2(elm$json$Json$Decode$Index, index, result.a)); - - case 12: - if (typeof value !== 'object' || value === null || Array.isArray(value)) - { - return _Json_expecting('an OBJECT', value); - } - - var keyValuePairs = _List_Nil; - // TODO test perf of Object.keys and switch when support is good enough - for (var key in value) - { - if (value.hasOwnProperty(key)) - { - var result = _Json_runHelp(decoder.b, value[key]); - if (!elm$core$Result$isOk(result)) - { - return elm$core$Result$Err(A2(elm$json$Json$Decode$Field, key, result.a)); - } - keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs); - } - } - return elm$core$Result$Ok(elm$core$List$reverse(keyValuePairs)); - - case 13: - var answer = decoder.f; - var decoders = decoder.g; - for (var i = 0; i < decoders.length; i++) - { - var result = _Json_runHelp(decoders[i], value); - if (!elm$core$Result$isOk(result)) - { - return result; - } - answer = answer(result.a); - } - return elm$core$Result$Ok(answer); - - case 14: - var result = _Json_runHelp(decoder.b, value); - return (!elm$core$Result$isOk(result)) - ? result - : _Json_runHelp(decoder.h(result.a), value); - - case 15: - var errors = _List_Nil; - for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS - { - var result = _Json_runHelp(temp.a, value); - if (elm$core$Result$isOk(result)) - { - return result; - } - errors = _List_Cons(result.a, errors); - } - return elm$core$Result$Err(elm$json$Json$Decode$OneOf(elm$core$List$reverse(errors))); - - case 1: - return elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value))); - - case 0: - return elm$core$Result$Ok(decoder.a); - } -} - -function _Json_runArrayDecoder(decoder, value, toElmValue) -{ - var len = value.length; - var array = new Array(len); - for (var i = 0; i < len; i++) - { - var result = _Json_runHelp(decoder, value[i]); - if (!elm$core$Result$isOk(result)) - { - return elm$core$Result$Err(A2(elm$json$Json$Decode$Index, i, result.a)); - } - array[i] = result.a; - } - return elm$core$Result$Ok(toElmValue(array)); -} - -function _Json_toElmArray(array) -{ - return A2(elm$core$Array$initialize, array.length, function(i) { return array[i]; }); -} - -function _Json_expecting(type, value) -{ - return elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value))); -} - - -// EQUALITY - -function _Json_equality(x, y) -{ - if (x === y) - { - return true; - } - - if (x.$ !== y.$) - { - return false; - } - - switch (x.$) - { - case 0: - case 1: - return x.a === y.a; - - case 3: - case 2: - case 4: - case 6: - case 5: - return true; - - case 9: - return x.c === y.c; - - case 7: - case 8: - case 12: - return _Json_equality(x.b, y.b); - - case 10: - return x.d === y.d && _Json_equality(x.b, y.b); - - case 11: - return x.e === y.e && _Json_equality(x.b, y.b); - - case 13: - return x.f === y.f && _Json_listEquality(x.g, y.g); - - case 14: - return x.h === y.h && _Json_equality(x.b, y.b); - - case 15: - return _Json_listEquality(x.g, y.g); - } -} - -function _Json_listEquality(aDecoders, bDecoders) -{ - var len = aDecoders.length; - if (len !== bDecoders.length) - { - return false; - } - for (var i = 0; i < len; i++) - { - if (!_Json_equality(aDecoders[i], bDecoders[i])) - { - return false; - } - } - return true; -} - - -// ENCODE - -var _Json_encode = F2(function(indentLevel, value) -{ - return JSON.stringify(_Json_unwrap(value), null, indentLevel) + ''; -}); - -function _Json_wrap(value) { return { $: 0, a: value }; } -function _Json_unwrap(value) { return value.a; } - -function _Json_wrap_UNUSED(value) { return value; } -function _Json_unwrap_UNUSED(value) { return value; } - -function _Json_emptyArray() { return []; } -function _Json_emptyObject() { return {}; } - -var _Json_addField = F3(function(key, value, object) -{ - object[key] = _Json_unwrap(value); - return object; -}); - -function _Json_addEntry(func) -{ - return F2(function(entry, array) - { - array.push(_Json_unwrap(func(entry))); - return array; - }); -} - -var _Json_encodeNull = _Json_wrap(null); - - - -// TASKS - -function _Scheduler_succeed(value) -{ - return { - $: 0, - a: value - }; -} - -function _Scheduler_fail(error) -{ - return { - $: 1, - a: error - }; -} - -function _Scheduler_binding(callback) -{ - return { - $: 2, - b: callback, - c: null - }; -} - -var _Scheduler_andThen = F2(function(callback, task) -{ - return { - $: 3, - b: callback, - d: task - }; -}); - -var _Scheduler_onError = F2(function(callback, task) -{ - return { - $: 4, - b: callback, - d: task - }; -}); - -function _Scheduler_receive(callback) -{ - return { - $: 5, - b: callback - }; -} - - -// PROCESSES - -var _Scheduler_guid = 0; - -function _Scheduler_rawSpawn(task) -{ - var proc = { - $: 0, - e: _Scheduler_guid++, - f: task, - g: null, - h: [] - }; - - _Scheduler_enqueue(proc); - - return proc; -} - -function _Scheduler_spawn(task) -{ - return _Scheduler_binding(function(callback) { - callback(_Scheduler_succeed(_Scheduler_rawSpawn(task))); - }); -} - -function _Scheduler_rawSend(proc, msg) -{ - proc.h.push(msg); - _Scheduler_enqueue(proc); -} - -var _Scheduler_send = F2(function(proc, msg) -{ - return _Scheduler_binding(function(callback) { - _Scheduler_rawSend(proc, msg); - callback(_Scheduler_succeed(_Utils_Tuple0)); - }); -}); - -function _Scheduler_kill(proc) -{ - return _Scheduler_binding(function(callback) { - var task = proc.f; - if (task.$ === 2 && task.c) - { - task.c(); - } - - proc.f = null; - - callback(_Scheduler_succeed(_Utils_Tuple0)); - }); -} - - -/* STEP PROCESSES - -type alias Process = - { $ : tag - , id : unique_id - , root : Task - , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack } - , mailbox : [msg] - } - -*/ - - -var _Scheduler_working = false; -var _Scheduler_queue = []; - - -function _Scheduler_enqueue(proc) -{ - _Scheduler_queue.push(proc); - if (_Scheduler_working) - { - return; - } - _Scheduler_working = true; - while (proc = _Scheduler_queue.shift()) - { - _Scheduler_step(proc); - } - _Scheduler_working = false; -} - - -function _Scheduler_step(proc) -{ - while (proc.f) - { - var rootTag = proc.f.$; - if (rootTag === 0 || rootTag === 1) - { - while (proc.g && proc.g.$ !== rootTag) - { - proc.g = proc.g.i; - } - if (!proc.g) - { - return; - } - proc.f = proc.g.b(proc.f.a); - proc.g = proc.g.i; - } - else if (rootTag === 2) - { - proc.f.c = proc.f.b(function(newRoot) { - proc.f = newRoot; - _Scheduler_enqueue(proc); - }); - return; - } - else if (rootTag === 5) - { - if (proc.h.length === 0) - { - return; - } - proc.f = proc.f.b(proc.h.shift()); - } - else // if (rootTag === 3 || rootTag === 4) - { - proc.g = { - $: rootTag === 3 ? 0 : 1, - b: proc.f.b, - i: proc.g - }; - proc.f = proc.f.d; - } - } -} - - - -function _Process_sleep(time) -{ - return _Scheduler_binding(function(callback) { - var id = setTimeout(function() { - callback(_Scheduler_succeed(_Utils_Tuple0)); - }, time); - - return function() { clearTimeout(id); }; - }); -} - - - - -// PROGRAMS - - -var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args) -{ - return _Platform_initialize( - flagDecoder, - args, - impl.init, - impl.update, - impl.subscriptions, - function() { return function() {} } - ); -}); - - - -// INITIALIZE A PROGRAM - - -function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder) -{ - var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined)); - elm$core$Result$isOk(result) || _Debug_crash(2 /**/, _Json_errorToString(result.a) /**/); - var managers = {}; - result = init(result.a); - var model = result.a; - var stepper = stepperBuilder(sendToApp, model); - var ports = _Platform_setupEffects(managers, sendToApp); - - function sendToApp(msg, viewMetadata) - { - result = A2(update, msg, model); - stepper(model = result.a, viewMetadata); - _Platform_dispatchEffects(managers, result.b, subscriptions(model)); - } - - _Platform_dispatchEffects(managers, result.b, subscriptions(model)); - - return ports ? { ports: ports } : {}; -} - - - -// TRACK PRELOADS -// -// This is used by code in elm/browser and elm/http -// to register any HTTP requests that are triggered by init. -// - - -var _Platform_preload; - - -function _Platform_registerPreload(url) -{ - _Platform_preload.add(url); -} - - - -// EFFECT MANAGERS - - -var _Platform_effectManagers = {}; - - -function _Platform_setupEffects(managers, sendToApp) -{ - var ports; - - // setup all necessary effect managers - for (var key in _Platform_effectManagers) - { - var manager = _Platform_effectManagers[key]; - - if (manager.a) - { - ports = ports || {}; - ports[key] = manager.a(key, sendToApp); - } - - managers[key] = _Platform_instantiateManager(manager, sendToApp); - } - - return ports; -} - - -function _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap) -{ - return { - b: init, - c: onEffects, - d: onSelfMsg, - e: cmdMap, - f: subMap - }; -} - - -function _Platform_instantiateManager(info, sendToApp) -{ - var router = { - g: sendToApp, - h: undefined - }; - - var onEffects = info.c; - var onSelfMsg = info.d; - var cmdMap = info.e; - var subMap = info.f; - - function loop(state) - { - return A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg) - { - var value = msg.a; - - if (msg.$ === 0) - { - return A3(onSelfMsg, router, value, state); - } - - return cmdMap && subMap - ? A4(onEffects, router, value.i, value.j, state) - : A3(onEffects, router, cmdMap ? value.i : value.j, state); - })); - } - - return router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b)); -} - - - -// ROUTING - - -var _Platform_sendToApp = F2(function(router, msg) -{ - return _Scheduler_binding(function(callback) - { - router.g(msg); - callback(_Scheduler_succeed(_Utils_Tuple0)); - }); -}); - - -var _Platform_sendToSelf = F2(function(router, msg) -{ - return A2(_Scheduler_send, router.h, { - $: 0, - a: msg - }); -}); - - - -// BAGS - - -function _Platform_leaf(home) -{ - return function(value) - { - return { - $: 1, - k: home, - l: value - }; - }; -} - - -function _Platform_batch(list) -{ - return { - $: 2, - m: list - }; -} - - -var _Platform_map = F2(function(tagger, bag) -{ - return { - $: 3, - n: tagger, - o: bag - } -}); - - - -// PIPE BAGS INTO EFFECT MANAGERS - - -function _Platform_dispatchEffects(managers, cmdBag, subBag) -{ - var effectsDict = {}; - _Platform_gatherEffects(true, cmdBag, effectsDict, null); - _Platform_gatherEffects(false, subBag, effectsDict, null); - - for (var home in managers) - { - _Scheduler_rawSend(managers[home], { - $: 'fx', - a: effectsDict[home] || { i: _List_Nil, j: _List_Nil } - }); - } -} - - -function _Platform_gatherEffects(isCmd, bag, effectsDict, taggers) -{ - switch (bag.$) - { - case 1: - var home = bag.k; - var effect = _Platform_toEffect(isCmd, home, taggers, bag.l); - effectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]); - return; - - case 2: - for (var list = bag.m; list.b; list = list.b) // WHILE_CONS - { - _Platform_gatherEffects(isCmd, list.a, effectsDict, taggers); - } - return; - - case 3: - _Platform_gatherEffects(isCmd, bag.o, effectsDict, { - p: bag.n, - q: taggers - }); - return; - } -} - - -function _Platform_toEffect(isCmd, home, taggers, value) -{ - function applyTaggers(x) - { - for (var temp = taggers; temp; temp = temp.q) - { - x = temp.p(x); - } - return x; - } - - var map = isCmd - ? _Platform_effectManagers[home].e - : _Platform_effectManagers[home].f; - - return A2(map, applyTaggers, value) -} - - -function _Platform_insert(isCmd, newEffect, effects) -{ - effects = effects || { i: _List_Nil, j: _List_Nil }; - - isCmd - ? (effects.i = _List_Cons(newEffect, effects.i)) - : (effects.j = _List_Cons(newEffect, effects.j)); - - return effects; -} - - - -// PORTS - - -function _Platform_checkPortName(name) -{ - if (_Platform_effectManagers[name]) - { - _Debug_crash(3, name) - } -} - - - -// OUTGOING PORTS - - -function _Platform_outgoingPort(name, converter) -{ - _Platform_checkPortName(name); - _Platform_effectManagers[name] = { - e: _Platform_outgoingPortMap, - r: converter, - a: _Platform_setupOutgoingPort - }; - return _Platform_leaf(name); -} - - -var _Platform_outgoingPortMap = F2(function(tagger, value) { return value; }); - - -function _Platform_setupOutgoingPort(name) -{ - var subs = []; - var converter = _Platform_effectManagers[name].r; - - // CREATE MANAGER - - var init = _Process_sleep(0); - - _Platform_effectManagers[name].b = init; - _Platform_effectManagers[name].c = F3(function(router, cmdList, state) - { - for ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS - { - // grab a separate reference to subs in case unsubscribe is called - var currentSubs = subs; - var value = _Json_unwrap(converter(cmdList.a)); - for (var i = 0; i < currentSubs.length; i++) - { - currentSubs[i](value); - } - } - return init; - }); - - // PUBLIC API - - function subscribe(callback) - { - subs.push(callback); - } - - function unsubscribe(callback) - { - // copy subs into a new array in case unsubscribe is called within a - // subscribed callback - subs = subs.slice(); - var index = subs.indexOf(callback); - if (index >= 0) - { - subs.splice(index, 1); - } - } - - return { - subscribe: subscribe, - unsubscribe: unsubscribe - }; -} - - - -// INCOMING PORTS - - -function _Platform_incomingPort(name, converter) -{ - _Platform_checkPortName(name); - _Platform_effectManagers[name] = { - f: _Platform_incomingPortMap, - r: converter, - a: _Platform_setupIncomingPort - }; - return _Platform_leaf(name); -} - - -var _Platform_incomingPortMap = F2(function(tagger, finalTagger) -{ - return function(value) - { - return tagger(finalTagger(value)); - }; -}); - - -function _Platform_setupIncomingPort(name, sendToApp) -{ - var subs = _List_Nil; - var converter = _Platform_effectManagers[name].r; - - // CREATE MANAGER - - var init = _Scheduler_succeed(null); - - _Platform_effectManagers[name].b = init; - _Platform_effectManagers[name].c = F3(function(router, subList, state) - { - subs = subList; - return init; - }); - - // PUBLIC API - - function send(incomingValue) - { - var result = A2(_Json_run, converter, _Json_wrap(incomingValue)); - - elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a); - - var value = result.a; - for (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS - { - sendToApp(temp.a(value)); - } - } - - return { send: send }; -} - - - -// EXPORT ELM MODULES -// -// Have DEBUG and PROD versions so that we can (1) give nicer errors in -// debug mode and (2) not pay for the bits needed for that in prod mode. -// - - -function _Platform_export_UNUSED(exports) -{ - scope['Elm'] - ? _Platform_mergeExportsProd(scope['Elm'], exports) - : scope['Elm'] = exports; -} - - -function _Platform_mergeExportsProd(obj, exports) -{ - for (var name in exports) - { - (name in obj) - ? (name == 'init') - ? _Debug_crash(6) - : _Platform_mergeExportsProd(obj[name], exports[name]) - : (obj[name] = exports[name]); - } -} - - -function _Platform_export(exports) -{ - scope['Elm'] - ? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports) - : scope['Elm'] = exports; -} - - -function _Platform_mergeExportsDebug(moduleName, obj, exports) -{ - for (var name in exports) - { - (name in obj) - ? (name == 'init') - ? _Debug_crash(6, moduleName) - : _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name]) - : (obj[name] = exports[name]); - } -} - - - - -// HELPERS - - -var _VirtualDom_divertHrefToApp; - -var _VirtualDom_doc = typeof document !== 'undefined' ? document : {}; - - -function _VirtualDom_appendChild(parent, child) -{ - parent.appendChild(child); -} - -var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args) -{ - // NOTE: this function needs _Platform_export available to work - - /**_UNUSED/ - var node = args['node']; - //*/ - /**/ - var node = args && args['node'] ? args['node'] : _Debug_crash(0); - //*/ - - node.parentNode.replaceChild( - _VirtualDom_render(virtualNode, function() {}), - node - ); - - return {}; -}); - - - -// TEXT - - -function _VirtualDom_text(string) -{ - return { - $: 0, - a: string - }; -} - - - -// NODE - - -var _VirtualDom_nodeNS = F2(function(namespace, tag) -{ - return F2(function(factList, kidList) - { - for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS - { - var kid = kidList.a; - descendantsCount += (kid.b || 0); - kids.push(kid); - } - descendantsCount += kids.length; - - return { - $: 1, - c: tag, - d: _VirtualDom_organizeFacts(factList), - e: kids, - f: namespace, - b: descendantsCount - }; - }); -}); - - -var _VirtualDom_node = _VirtualDom_nodeNS(undefined); - - - -// KEYED NODE - - -var _VirtualDom_keyedNodeNS = F2(function(namespace, tag) -{ - return F2(function(factList, kidList) - { - for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS - { - var kid = kidList.a; - descendantsCount += (kid.b.b || 0); - kids.push(kid); - } - descendantsCount += kids.length; - - return { - $: 2, - c: tag, - d: _VirtualDom_organizeFacts(factList), - e: kids, - f: namespace, - b: descendantsCount - }; - }); -}); - - -var _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined); - - - -// CUSTOM - - -function _VirtualDom_custom(factList, model, render, diff) -{ - return { - $: 3, - d: _VirtualDom_organizeFacts(factList), - g: model, - h: render, - i: diff - }; -} - - - -// MAP - - -var _VirtualDom_map = F2(function(tagger, node) -{ - return { - $: 4, - j: tagger, - k: node, - b: 1 + (node.b || 0) - }; -}); - - - -// LAZY - - -function _VirtualDom_thunk(refs, thunk) -{ - return { - $: 5, - l: refs, - m: thunk, - k: undefined - }; -} - -var _VirtualDom_lazy = F2(function(func, a) -{ - return _VirtualDom_thunk([func, a], function() { - return func(a); - }); -}); - -var _VirtualDom_lazy2 = F3(function(func, a, b) -{ - return _VirtualDom_thunk([func, a, b], function() { - return A2(func, a, b); - }); -}); - -var _VirtualDom_lazy3 = F4(function(func, a, b, c) -{ - return _VirtualDom_thunk([func, a, b, c], function() { - return A3(func, a, b, c); - }); -}); - -var _VirtualDom_lazy4 = F5(function(func, a, b, c, d) -{ - return _VirtualDom_thunk([func, a, b, c, d], function() { - return A4(func, a, b, c, d); - }); -}); - -var _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e) -{ - return _VirtualDom_thunk([func, a, b, c, d, e], function() { - return A5(func, a, b, c, d, e); - }); -}); - -var _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f) -{ - return _VirtualDom_thunk([func, a, b, c, d, e, f], function() { - return A6(func, a, b, c, d, e, f); - }); -}); - -var _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g) -{ - return _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() { - return A7(func, a, b, c, d, e, f, g); - }); -}); - -var _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h) -{ - return _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() { - return A8(func, a, b, c, d, e, f, g, h); - }); -}); - - - -// FACTS - - -var _VirtualDom_on = F2(function(key, handler) -{ - return { - $: 'a0', - n: key, - o: handler - }; -}); -var _VirtualDom_style = F2(function(key, value) -{ - return { - $: 'a1', - n: key, - o: value - }; -}); -var _VirtualDom_property = F2(function(key, value) -{ - return { - $: 'a2', - n: key, - o: value - }; -}); -var _VirtualDom_attribute = F2(function(key, value) -{ - return { - $: 'a3', - n: key, - o: value - }; -}); -var _VirtualDom_attributeNS = F3(function(namespace, key, value) -{ - return { - $: 'a4', - n: key, - o: { f: namespace, o: value } - }; -}); - - - -// XSS ATTACK VECTOR CHECKS - - -function _VirtualDom_noScript(tag) -{ - return tag == 'script' ? 'p' : tag; -} - -function _VirtualDom_noOnOrFormAction(key) -{ - return /^(on|formAction$)/i.test(key) ? 'data-' + key : key; -} - -function _VirtualDom_noInnerHtmlOrFormAction(key) -{ - return key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key; -} - -function _VirtualDom_noJavaScriptUri_UNUSED(value) -{ - return /^javascript:/i.test(value.replace(/\s/g,'')) ? '' : value; -} - -function _VirtualDom_noJavaScriptUri(value) -{ - return /^javascript:/i.test(value.replace(/\s/g,'')) - ? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")' - : value; -} - -function _VirtualDom_noJavaScriptOrHtmlUri_UNUSED(value) -{ - return /^\s*(javascript:|data:text\/html)/i.test(value) ? '' : value; -} - -function _VirtualDom_noJavaScriptOrHtmlUri(value) -{ - return /^\s*(javascript:|data:text\/html)/i.test(value) - ? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")' - : value; -} - - - -// MAP FACTS - - -var _VirtualDom_mapAttribute = F2(function(func, attr) -{ - return (attr.$ === 'a0') - ? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o)) - : attr; -}); - -function _VirtualDom_mapHandler(func, handler) -{ - var tag = elm$virtual_dom$VirtualDom$toHandlerInt(handler); - - // 0 = Normal - // 1 = MayStopPropagation - // 2 = MayPreventDefault - // 3 = Custom - - return { - $: handler.$, - a: - !tag - ? A2(elm$json$Json$Decode$map, func, handler.a) - : - A3(elm$json$Json$Decode$map2, - tag < 3 - ? _VirtualDom_mapEventTuple - : _VirtualDom_mapEventRecord, - elm$json$Json$Decode$succeed(func), - handler.a - ) - }; -} - -var _VirtualDom_mapEventTuple = F2(function(func, tuple) -{ - return _Utils_Tuple2(func(tuple.a), tuple.b); -}); - -var _VirtualDom_mapEventRecord = F2(function(func, record) -{ - return { - message: func(record.message), - stopPropagation: record.stopPropagation, - preventDefault: record.preventDefault - } -}); - - - -// ORGANIZE FACTS - - -function _VirtualDom_organizeFacts(factList) -{ - for (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS - { - var entry = factList.a; - - var tag = entry.$; - var key = entry.n; - var value = entry.o; - - if (tag === 'a2') - { - (key === 'className') - ? _VirtualDom_addClass(facts, key, _Json_unwrap(value)) - : facts[key] = _Json_unwrap(value); - - continue; - } - - var subFacts = facts[tag] || (facts[tag] = {}); - (tag === 'a3' && key === 'class') - ? _VirtualDom_addClass(subFacts, key, value) - : subFacts[key] = value; - } - - return facts; -} - -function _VirtualDom_addClass(object, key, newClass) -{ - var classes = object[key]; - object[key] = classes ? classes + ' ' + newClass : newClass; -} - - - -// RENDER - - -function _VirtualDom_render(vNode, eventNode) -{ - var tag = vNode.$; - - if (tag === 5) - { - return _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode); - } - - if (tag === 0) - { - return _VirtualDom_doc.createTextNode(vNode.a); - } - - if (tag === 4) - { - var subNode = vNode.k; - var tagger = vNode.j; - - while (subNode.$ === 4) - { - typeof tagger !== 'object' - ? tagger = [tagger, subNode.j] - : tagger.push(subNode.j); - - subNode = subNode.k; - } - - var subEventRoot = { j: tagger, p: eventNode }; - var domNode = _VirtualDom_render(subNode, subEventRoot); - domNode.elm_event_node_ref = subEventRoot; - return domNode; - } - - if (tag === 3) - { - var domNode = vNode.h(vNode.g); - _VirtualDom_applyFacts(domNode, eventNode, vNode.d); - return domNode; - } - - // at this point `tag` must be 1 or 2 - - var domNode = vNode.f - ? _VirtualDom_doc.createElementNS(vNode.f, vNode.c) - : _VirtualDom_doc.createElement(vNode.c); - - if (_VirtualDom_divertHrefToApp && vNode.c == 'a') - { - domNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode)); - } - - _VirtualDom_applyFacts(domNode, eventNode, vNode.d); - - for (var kids = vNode.e, i = 0; i < kids.length; i++) - { - _VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode)); - } - - return domNode; -} - - - -// APPLY FACTS - - -function _VirtualDom_applyFacts(domNode, eventNode, facts) -{ - for (var key in facts) - { - var value = facts[key]; - - key === 'a1' - ? _VirtualDom_applyStyles(domNode, value) - : - key === 'a0' - ? _VirtualDom_applyEvents(domNode, eventNode, value) - : - key === 'a3' - ? _VirtualDom_applyAttrs(domNode, value) - : - key === 'a4' - ? _VirtualDom_applyAttrsNS(domNode, value) - : - ((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value); - } -} - - - -// APPLY STYLES - - -function _VirtualDom_applyStyles(domNode, styles) -{ - var domNodeStyle = domNode.style; - - for (var key in styles) - { - domNodeStyle[key] = styles[key]; - } -} - - - -// APPLY ATTRS - - -function _VirtualDom_applyAttrs(domNode, attrs) -{ - for (var key in attrs) - { - var value = attrs[key]; - typeof value !== 'undefined' - ? domNode.setAttribute(key, value) - : domNode.removeAttribute(key); - } -} - - - -// APPLY NAMESPACED ATTRS - - -function _VirtualDom_applyAttrsNS(domNode, nsAttrs) -{ - for (var key in nsAttrs) - { - var pair = nsAttrs[key]; - var namespace = pair.f; - var value = pair.o; - - typeof value !== 'undefined' - ? domNode.setAttributeNS(namespace, key, value) - : domNode.removeAttributeNS(namespace, key); - } -} - - - -// APPLY EVENTS - - -function _VirtualDom_applyEvents(domNode, eventNode, events) -{ - var allCallbacks = domNode.elmFs || (domNode.elmFs = {}); - - for (var key in events) - { - var newHandler = events[key]; - var oldCallback = allCallbacks[key]; - - if (!newHandler) - { - domNode.removeEventListener(key, oldCallback); - allCallbacks[key] = undefined; - continue; - } - - if (oldCallback) - { - var oldHandler = oldCallback.q; - if (oldHandler.$ === newHandler.$) - { - oldCallback.q = newHandler; - continue; - } - domNode.removeEventListener(key, oldCallback); - } - - oldCallback = _VirtualDom_makeCallback(eventNode, newHandler); - domNode.addEventListener(key, oldCallback, - _VirtualDom_passiveSupported - && { passive: elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 } - ); - allCallbacks[key] = oldCallback; - } -} - - - -// PASSIVE EVENTS - - -var _VirtualDom_passiveSupported; - -try -{ - window.addEventListener('t', null, Object.defineProperty({}, 'passive', { - get: function() { _VirtualDom_passiveSupported = true; } - })); -} -catch(e) {} - - - -// EVENT HANDLERS - - -function _VirtualDom_makeCallback(eventNode, initialHandler) -{ - function callback(event) - { - var handler = callback.q; - var result = _Json_runHelp(handler.a, event); - - if (!elm$core$Result$isOk(result)) - { - return; - } - - var tag = elm$virtual_dom$VirtualDom$toHandlerInt(handler); - - // 0 = Normal - // 1 = MayStopPropagation - // 2 = MayPreventDefault - // 3 = Custom - - var value = result.a; - var message = !tag ? value : tag < 3 ? value.a : value.message; - var stopPropagation = tag == 1 ? value.b : tag == 3 && value.stopPropagation; - var currentEventNode = ( - stopPropagation && event.stopPropagation(), - (tag == 2 ? value.b : tag == 3 && value.preventDefault) && event.preventDefault(), - eventNode - ); - var tagger; - var i; - while (tagger = currentEventNode.j) - { - if (typeof tagger == 'function') - { - message = tagger(message); - } - else - { - for (var i = tagger.length; i--; ) - { - message = tagger[i](message); - } - } - currentEventNode = currentEventNode.p; - } - currentEventNode(message, stopPropagation); // stopPropagation implies isSync - } - - callback.q = initialHandler; - - return callback; -} - -function _VirtualDom_equalEvents(x, y) -{ - return x.$ == y.$ && _Json_equality(x.a, y.a); -} - - - -// DIFF - - -// TODO: Should we do patches like in iOS? -// -// type Patch -// = At Int Patch -// | Batch (List Patch) -// | Change ... -// -// How could it not be better? -// -function _VirtualDom_diff(x, y) -{ - var patches = []; - _VirtualDom_diffHelp(x, y, patches, 0); - return patches; -} - - -function _VirtualDom_pushPatch(patches, type, index, data) -{ - var patch = { - $: type, - r: index, - s: data, - t: undefined, - u: undefined - }; - patches.push(patch); - return patch; -} - - -function _VirtualDom_diffHelp(x, y, patches, index) -{ - if (x === y) - { - return; - } - - var xType = x.$; - var yType = y.$; - - // Bail if you run into different types of nodes. Implies that the - // structure has changed significantly and it's not worth a diff. - if (xType !== yType) - { - if (xType === 1 && yType === 2) - { - y = _VirtualDom_dekey(y); - yType = 1; - } - else - { - _VirtualDom_pushPatch(patches, 0, index, y); - return; - } - } - - // Now we know that both nodes are the same $. - switch (yType) - { - case 5: - var xRefs = x.l; - var yRefs = y.l; - var i = xRefs.length; - var same = i === yRefs.length; - while (same && i--) - { - same = xRefs[i] === yRefs[i]; - } - if (same) - { - y.k = x.k; - return; - } - y.k = y.m(); - var subPatches = []; - _VirtualDom_diffHelp(x.k, y.k, subPatches, 0); - subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches); - return; - - case 4: - // gather nested taggers - var xTaggers = x.j; - var yTaggers = y.j; - var nesting = false; - - var xSubNode = x.k; - while (xSubNode.$ === 4) - { - nesting = true; - - typeof xTaggers !== 'object' - ? xTaggers = [xTaggers, xSubNode.j] - : xTaggers.push(xSubNode.j); - - xSubNode = xSubNode.k; - } - - var ySubNode = y.k; - while (ySubNode.$ === 4) - { - nesting = true; - - typeof yTaggers !== 'object' - ? yTaggers = [yTaggers, ySubNode.j] - : yTaggers.push(ySubNode.j); - - ySubNode = ySubNode.k; - } - - // Just bail if different numbers of taggers. This implies the - // structure of the virtual DOM has changed. - if (nesting && xTaggers.length !== yTaggers.length) - { - _VirtualDom_pushPatch(patches, 0, index, y); - return; - } - - // check if taggers are "the same" - if (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers) - { - _VirtualDom_pushPatch(patches, 2, index, yTaggers); - } - - // diff everything below the taggers - _VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1); - return; - - case 0: - if (x.a !== y.a) - { - _VirtualDom_pushPatch(patches, 3, index, y.a); - } - return; - - case 1: - _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids); - return; - - case 2: - _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids); - return; - - case 3: - if (x.h !== y.h) - { - _VirtualDom_pushPatch(patches, 0, index, y); - return; - } - - var factsDiff = _VirtualDom_diffFacts(x.d, y.d); - factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff); - - var patch = y.i(x.g, y.g); - patch && _VirtualDom_pushPatch(patches, 5, index, patch); - - return; - } -} - -// assumes the incoming arrays are the same length -function _VirtualDom_pairwiseRefEqual(as, bs) -{ - for (var i = 0; i < as.length; i++) - { - if (as[i] !== bs[i]) - { - return false; - } - } - - return true; -} - -function _VirtualDom_diffNodes(x, y, patches, index, diffKids) -{ - // Bail if obvious indicators have changed. Implies more serious - // structural changes such that it's not worth it to diff. - if (x.c !== y.c || x.f !== y.f) - { - _VirtualDom_pushPatch(patches, 0, index, y); - return; - } - - var factsDiff = _VirtualDom_diffFacts(x.d, y.d); - factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff); - - diffKids(x, y, patches, index); -} - - - -// DIFF FACTS - - -// TODO Instead of creating a new diff object, it's possible to just test if -// there *is* a diff. During the actual patch, do the diff again and make the -// modifications directly. This way, there's no new allocations. Worth it? -function _VirtualDom_diffFacts(x, y, category) -{ - var diff; - - // look for changes and removals - for (var xKey in x) - { - if (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4') - { - var subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey); - if (subDiff) - { - diff = diff || {}; - diff[xKey] = subDiff; - } - continue; - } - - // remove if not in the new facts - if (!(xKey in y)) - { - diff = diff || {}; - diff[xKey] = - !category - ? (typeof x[xKey] === 'string' ? '' : null) - : - (category === 'a1') - ? '' - : - (category === 'a0' || category === 'a3') - ? undefined - : - { f: x[xKey].f, o: undefined }; - - continue; - } - - var xValue = x[xKey]; - var yValue = y[xKey]; - - // reference equal, so don't worry about it - if (xValue === yValue && xKey !== 'value' && xKey !== 'checked' - || category === 'a0' && _VirtualDom_equalEvents(xValue, yValue)) - { - continue; - } - - diff = diff || {}; - diff[xKey] = yValue; - } - - // add new stuff - for (var yKey in y) - { - if (!(yKey in x)) - { - diff = diff || {}; - diff[yKey] = y[yKey]; - } - } - - return diff; -} - - - -// DIFF KIDS - - -function _VirtualDom_diffKids(xParent, yParent, patches, index) -{ - var xKids = xParent.e; - var yKids = yParent.e; - - var xLen = xKids.length; - var yLen = yKids.length; - - // FIGURE OUT IF THERE ARE INSERTS OR REMOVALS - - if (xLen > yLen) - { - _VirtualDom_pushPatch(patches, 6, index, { - v: yLen, - i: xLen - yLen - }); - } - else if (xLen < yLen) - { - _VirtualDom_pushPatch(patches, 7, index, { - v: xLen, - e: yKids - }); - } - - // PAIRWISE DIFF EVERYTHING ELSE - - for (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++) - { - var xKid = xKids[i]; - _VirtualDom_diffHelp(xKid, yKids[i], patches, ++index); - index += xKid.b || 0; - } -} - - - -// KEYED DIFF - - -function _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex) -{ - var localPatches = []; - - var changes = {}; // Dict String Entry - var inserts = []; // Array { index : Int, entry : Entry } - // type Entry = { tag : String, vnode : VNode, index : Int, data : _ } - - var xKids = xParent.e; - var yKids = yParent.e; - var xLen = xKids.length; - var yLen = yKids.length; - var xIndex = 0; - var yIndex = 0; - - var index = rootIndex; - - while (xIndex < xLen && yIndex < yLen) - { - var x = xKids[xIndex]; - var y = yKids[yIndex]; - - var xKey = x.a; - var yKey = y.a; - var xNode = x.b; - var yNode = y.b; - - var newMatch = undefined; - var oldMatch = undefined; - - // check if keys match - - if (xKey === yKey) - { - index++; - _VirtualDom_diffHelp(xNode, yNode, localPatches, index); - index += xNode.b || 0; - - xIndex++; - yIndex++; - continue; - } - - // look ahead 1 to detect insertions and removals. - - var xNext = xKids[xIndex + 1]; - var yNext = yKids[yIndex + 1]; - - if (xNext) - { - var xNextKey = xNext.a; - var xNextNode = xNext.b; - oldMatch = yKey === xNextKey; - } - - if (yNext) - { - var yNextKey = yNext.a; - var yNextNode = yNext.b; - newMatch = xKey === yNextKey; - } - - - // swap x and y - if (newMatch && oldMatch) - { - index++; - _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index); - _VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts); - index += xNode.b || 0; - - index++; - _VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index); - index += xNextNode.b || 0; - - xIndex += 2; - yIndex += 2; - continue; - } - - // insert y - if (newMatch) - { - index++; - _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts); - _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index); - index += xNode.b || 0; - - xIndex += 1; - yIndex += 2; - continue; - } - - // remove x - if (oldMatch) - { - index++; - _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index); - index += xNode.b || 0; - - index++; - _VirtualDom_diffHelp(xNextNode, yNode, localPatches, index); - index += xNextNode.b || 0; - - xIndex += 2; - yIndex += 1; - continue; - } - - // remove x, insert y - if (xNext && xNextKey === yNextKey) - { - index++; - _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index); - _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts); - index += xNode.b || 0; - - index++; - _VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index); - index += xNextNode.b || 0; - - xIndex += 2; - yIndex += 2; - continue; - } - - break; - } - - // eat up any remaining nodes with removeNode and insertNode - - while (xIndex < xLen) - { - index++; - var x = xKids[xIndex]; - var xNode = x.b; - _VirtualDom_removeNode(changes, localPatches, x.a, xNode, index); - index += xNode.b || 0; - xIndex++; - } - - while (yIndex < yLen) - { - var endInserts = endInserts || []; - var y = yKids[yIndex]; - _VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts); - yIndex++; - } - - if (localPatches.length > 0 || inserts.length > 0 || endInserts) - { - _VirtualDom_pushPatch(patches, 8, rootIndex, { - w: localPatches, - x: inserts, - y: endInserts - }); - } -} - - - -// CHANGES FROM KEYED DIFF - - -var _VirtualDom_POSTFIX = '_elmW6BL'; - - -function _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts) -{ - var entry = changes[key]; - - // never seen this key before - if (!entry) - { - entry = { - c: 0, - z: vnode, - r: yIndex, - s: undefined - }; - - inserts.push({ r: yIndex, A: entry }); - changes[key] = entry; - - return; - } - - // this key was removed earlier, a match! - if (entry.c === 1) - { - inserts.push({ r: yIndex, A: entry }); - - entry.c = 2; - var subPatches = []; - _VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r); - entry.r = yIndex; - entry.s.s = { - w: subPatches, - A: entry - }; - - return; - } - - // this key has already been inserted or moved, a duplicate! - _VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts); -} - - -function _VirtualDom_removeNode(changes, localPatches, key, vnode, index) -{ - var entry = changes[key]; - - // never seen this key before - if (!entry) - { - var patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined); - - changes[key] = { - c: 1, - z: vnode, - r: index, - s: patch - }; - - return; - } - - // this key was inserted earlier, a match! - if (entry.c === 0) - { - entry.c = 2; - var subPatches = []; - _VirtualDom_diffHelp(vnode, entry.z, subPatches, index); - - _VirtualDom_pushPatch(localPatches, 9, index, { - w: subPatches, - A: entry - }); - - return; - } - - // this key has already been removed or moved, a duplicate! - _VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index); -} - - - -// ADD DOM NODES -// -// Each DOM node has an "index" assigned in order of traversal. It is important -// to minimize our crawl over the actual DOM, so these indexes (along with the -// descendantsCount of virtual nodes) let us skip touching entire subtrees of -// the DOM if we know there are no patches there. - - -function _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode) -{ - _VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode); -} - - -// assumes `patches` is non-empty and indexes increase monotonically. -function _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode) -{ - var patch = patches[i]; - var index = patch.r; - - while (index === low) - { - var patchType = patch.$; - - if (patchType === 1) - { - _VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode); - } - else if (patchType === 8) - { - patch.t = domNode; - patch.u = eventNode; - - var subPatches = patch.s.w; - if (subPatches.length > 0) - { - _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); - } - } - else if (patchType === 9) - { - patch.t = domNode; - patch.u = eventNode; - - var data = patch.s; - if (data) - { - data.A.s = domNode; - var subPatches = data.w; - if (subPatches.length > 0) - { - _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); - } - } - } - else - { - patch.t = domNode; - patch.u = eventNode; - } - - i++; - - if (!(patch = patches[i]) || (index = patch.r) > high) - { - return i; - } - } - - var tag = vNode.$; - - if (tag === 4) - { - var subNode = vNode.k; - - while (subNode.$ === 4) - { - subNode = subNode.k; - } - - return _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref); - } - - // tag must be 1 or 2 at this point - - var vKids = vNode.e; - var childNodes = domNode.childNodes; - for (var j = 0; j < vKids.length; j++) - { - low++; - var vKid = tag === 1 ? vKids[j] : vKids[j].b; - var nextLow = low + (vKid.b || 0); - if (low <= index && index <= nextLow) - { - i = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode); - if (!(patch = patches[i]) || (index = patch.r) > high) - { - return i; - } - } - low = nextLow; - } - return i; -} - - - -// APPLY PATCHES - - -function _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode) -{ - if (patches.length === 0) - { - return rootDomNode; - } - - _VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode); - return _VirtualDom_applyPatchesHelp(rootDomNode, patches); -} - -function _VirtualDom_applyPatchesHelp(rootDomNode, patches) -{ - for (var i = 0; i < patches.length; i++) - { - var patch = patches[i]; - var localDomNode = patch.t - var newNode = _VirtualDom_applyPatch(localDomNode, patch); - if (localDomNode === rootDomNode) - { - rootDomNode = newNode; - } - } - return rootDomNode; -} - -function _VirtualDom_applyPatch(domNode, patch) -{ - switch (patch.$) - { - case 0: - return _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u); - - case 4: - _VirtualDom_applyFacts(domNode, patch.u, patch.s); - return domNode; - - case 3: - domNode.replaceData(0, domNode.length, patch.s); - return domNode; - - case 1: - return _VirtualDom_applyPatchesHelp(domNode, patch.s); - - case 2: - if (domNode.elm_event_node_ref) - { - domNode.elm_event_node_ref.j = patch.s; - } - else - { - domNode.elm_event_node_ref = { j: patch.s, p: patch.u }; - } - return domNode; - - case 6: - var data = patch.s; - for (var i = 0; i < data.i; i++) - { - domNode.removeChild(domNode.childNodes[data.v]); - } - return domNode; - - case 7: - var data = patch.s; - var kids = data.e; - var i = data.v; - var theEnd = domNode.childNodes[i]; - for (; i < kids.length; i++) - { - domNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd); - } - return domNode; - - case 9: - var data = patch.s; - if (!data) - { - domNode.parentNode.removeChild(domNode); - return domNode; - } - var entry = data.A; - if (typeof entry.r !== 'undefined') - { - domNode.parentNode.removeChild(domNode); - } - entry.s = _VirtualDom_applyPatchesHelp(domNode, data.w); - return domNode; - - case 8: - return _VirtualDom_applyPatchReorder(domNode, patch); - - case 5: - return patch.s(domNode); - - default: - _Debug_crash(10); // 'Ran into an unknown patch!' - } -} - - -function _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode) -{ - var parentNode = domNode.parentNode; - var newNode = _VirtualDom_render(vNode, eventNode); - - if (!newNode.elm_event_node_ref) - { - newNode.elm_event_node_ref = domNode.elm_event_node_ref; - } - - if (parentNode && newNode !== domNode) - { - parentNode.replaceChild(newNode, domNode); - } - return newNode; -} - - -function _VirtualDom_applyPatchReorder(domNode, patch) -{ - var data = patch.s; - - // remove end inserts - var frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch); - - // removals - domNode = _VirtualDom_applyPatchesHelp(domNode, data.w); - - // inserts - var inserts = data.x; - for (var i = 0; i < inserts.length; i++) - { - var insert = inserts[i]; - var entry = insert.A; - var node = entry.c === 2 - ? entry.s - : _VirtualDom_render(entry.z, patch.u); - domNode.insertBefore(node, domNode.childNodes[insert.r]); - } - - // add end inserts - if (frag) - { - _VirtualDom_appendChild(domNode, frag); - } - - return domNode; -} - - -function _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch) -{ - if (!endInserts) - { - return; - } - - var frag = _VirtualDom_doc.createDocumentFragment(); - for (var i = 0; i < endInserts.length; i++) - { - var insert = endInserts[i]; - var entry = insert.A; - _VirtualDom_appendChild(frag, entry.c === 2 - ? entry.s - : _VirtualDom_render(entry.z, patch.u) - ); - } - return frag; -} - - -function _VirtualDom_virtualize(node) -{ - // TEXT NODES - - if (node.nodeType === 3) - { - return _VirtualDom_text(node.textContent); - } - - - // WEIRD NODES - - if (node.nodeType !== 1) - { - return _VirtualDom_text(''); - } - - - // ELEMENT NODES - - var attrList = _List_Nil; - var attrs = node.attributes; - for (var i = attrs.length; i--; ) - { - var attr = attrs[i]; - var name = attr.name; - var value = attr.value; - attrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList ); - } - - var tag = node.tagName.toLowerCase(); - var kidList = _List_Nil; - var kids = node.childNodes; - - for (var i = kids.length; i--; ) - { - kidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList); - } - return A3(_VirtualDom_node, tag, attrList, kidList); -} - -function _VirtualDom_dekey(keyedNode) -{ - var keyedKids = keyedNode.e; - var len = keyedKids.length; - var kids = new Array(len); - for (var i = 0; i < len; i++) - { - kids[i] = keyedKids[i].b; - } - - return { - $: 1, - c: keyedNode.c, - d: keyedNode.d, - e: kids, - f: keyedNode.f, - b: keyedNode.b - }; -} - - - -var _Bitwise_and = F2(function(a, b) -{ - return a & b; -}); - -var _Bitwise_or = F2(function(a, b) -{ - return a | b; -}); - -var _Bitwise_xor = F2(function(a, b) -{ - return a ^ b; -}); - -function _Bitwise_complement(a) -{ - return ~a; -}; - -var _Bitwise_shiftLeftBy = F2(function(offset, a) -{ - return a << offset; -}); - -var _Bitwise_shiftRightBy = F2(function(offset, a) -{ - return a >> offset; -}); - -var _Bitwise_shiftRightZfBy = F2(function(offset, a) -{ - return a >>> offset; -}); - - - - -// HELPERS - - -function _Debugger_unsafeCoerce(value) -{ - return value; -} - - - -// PROGRAMS - - -var _Debugger_element = F4(function(impl, flagDecoder, debugMetadata, args) -{ - return _Platform_initialize( - flagDecoder, - args, - A3(elm$browser$Debugger$Main$wrapInit, _Json_wrap(debugMetadata), _Debugger_popout(), impl.init), - elm$browser$Debugger$Main$wrapUpdate(impl.update), - elm$browser$Debugger$Main$wrapSubs(impl.subscriptions), - function(sendToApp, initialModel) - { - var view = impl.view; - var title = _VirtualDom_doc.title; - var domNode = args && args['node'] ? args['node'] : _Debug_crash(0); - var currNode = _VirtualDom_virtualize(domNode); - var currBlocker = elm$browser$Debugger$Main$toBlockerType(initialModel); - var currPopout; - - var cornerNode = _VirtualDom_doc.createElement('div'); - domNode.parentNode.insertBefore(cornerNode, domNode.nextSibling); - var cornerCurr = _VirtualDom_virtualize(cornerNode); - - initialModel.popout.a = sendToApp; - - return _Browser_makeAnimator(initialModel, function(model) - { - var nextNode = A2(_VirtualDom_map, elm$browser$Debugger$Main$UserMsg, view(elm$browser$Debugger$Main$getUserModel(model))); - var patches = _VirtualDom_diff(currNode, nextNode); - domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp); - currNode = nextNode; - - // update blocker - - var nextBlocker = elm$browser$Debugger$Main$toBlockerType(model); - _Debugger_updateBlocker(currBlocker, nextBlocker); - currBlocker = nextBlocker; - - // view corner - - if (!model.popout.b) - { - var cornerNext = elm$browser$Debugger$Main$cornerView(model); - var cornerPatches = _VirtualDom_diff(cornerCurr, cornerNext); - cornerNode = _VirtualDom_applyPatches(cornerNode, cornerCurr, cornerPatches, sendToApp); - cornerCurr = cornerNext; - currPopout = undefined; - return; - } - - // view popout - - _VirtualDom_doc = model.popout.b; // SWITCH TO POPOUT DOC - currPopout || (currPopout = _VirtualDom_virtualize(model.popout.b)); - var nextPopout = elm$browser$Debugger$Main$popoutView(model); - var popoutPatches = _VirtualDom_diff(currPopout, nextPopout); - _VirtualDom_applyPatches(model.popout.b.body, currPopout, popoutPatches, sendToApp); - currPopout = nextPopout; - _VirtualDom_doc = document; // SWITCH BACK TO NORMAL DOC - }); - } - ); -}); - - -var _Debugger_document = F4(function(impl, flagDecoder, debugMetadata, args) -{ - return _Platform_initialize( - flagDecoder, - args, - A3(elm$browser$Debugger$Main$wrapInit, _Json_wrap(debugMetadata), _Debugger_popout(), impl.init), - elm$browser$Debugger$Main$wrapUpdate(impl.update), - elm$browser$Debugger$Main$wrapSubs(impl.subscriptions), - function(sendToApp, initialModel) - { - var divertHrefToApp = impl.setup && impl.setup(function(x) { return sendToApp(elm$browser$Debugger$Main$UserMsg(x)); }); - var view = impl.view; - var title = _VirtualDom_doc.title; - var bodyNode = _VirtualDom_doc.body; - var currNode = _VirtualDom_virtualize(bodyNode); - var currBlocker = elm$browser$Debugger$Main$toBlockerType(initialModel); - var currPopout; - - initialModel.popout.a = sendToApp; - - return _Browser_makeAnimator(initialModel, function(model) - { - _VirtualDom_divertHrefToApp = divertHrefToApp; - var doc = view(elm$browser$Debugger$Main$getUserModel(model)); - var nextNode = _VirtualDom_node('body')(_List_Nil)( - _Utils_ap( - A2(elm$core$List$map, _VirtualDom_map(elm$browser$Debugger$Main$UserMsg), doc.body), - _List_Cons(elm$browser$Debugger$Main$cornerView(model), _List_Nil) - ) - ); - var patches = _VirtualDom_diff(currNode, nextNode); - bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp); - currNode = nextNode; - _VirtualDom_divertHrefToApp = 0; - (title !== doc.title) && (_VirtualDom_doc.title = title = doc.title); - - // update blocker - - var nextBlocker = elm$browser$Debugger$Main$toBlockerType(model); - _Debugger_updateBlocker(currBlocker, nextBlocker); - currBlocker = nextBlocker; - - // view popout - - if (!model.popout.b) { currPopout = undefined; return; } - - _VirtualDom_doc = model.popout.b; // SWITCH TO POPOUT DOC - currPopout || (currPopout = _VirtualDom_virtualize(model.popout.b)); - var nextPopout = elm$browser$Debugger$Main$popoutView(model); - var popoutPatches = _VirtualDom_diff(currPopout, nextPopout); - _VirtualDom_applyPatches(model.popout.b.body, currPopout, popoutPatches, sendToApp); - currPopout = nextPopout; - _VirtualDom_doc = document; // SWITCH BACK TO NORMAL DOC - }); - } - ); -}); - - -function _Debugger_popout() -{ - return { - b: undefined, - a: undefined - }; -} - -function _Debugger_isOpen(popout) -{ - return !!popout.b; -} - -function _Debugger_open(popout) -{ - return _Scheduler_binding(function(callback) - { - _Debugger_openWindow(popout); - callback(_Scheduler_succeed(_Utils_Tuple0)); - }); -} - -function _Debugger_openWindow(popout) -{ - var w = 900, h = 360, x = screen.width - w, y = screen.height - h; - var debuggerWindow = window.open('', '', 'width=' + w + ',height=' + h + ',left=' + x + ',top=' + y); - var doc = debuggerWindow.document; - doc.title = 'Elm Debugger'; - - // handle arrow keys - doc.addEventListener('keydown', function(event) { - event.metaKey && event.which === 82 && window.location.reload(); - event.which === 38 && (popout.a(elm$browser$Debugger$Main$Up), event.preventDefault()); - event.which === 40 && (popout.a(elm$browser$Debugger$Main$Down), event.preventDefault()); - }); - - // handle window close - window.addEventListener('unload', close); - debuggerWindow.addEventListener('unload', function() { - popout.b = undefined; - popout.a(elm$browser$Debugger$Main$NoOp); - window.removeEventListener('unload', close); - }); - function close() { - popout.b = undefined; - popout.a(elm$browser$Debugger$Main$NoOp); - debuggerWindow.close(); - } - - // register new window - popout.b = doc; -} - - - -// SCROLL - - -function _Debugger_scroll(popout) -{ - return _Scheduler_binding(function(callback) - { - if (popout.b) - { - var msgs = popout.b.getElementById('elm-debugger-sidebar'); - if (msgs) - { - msgs.scrollTop = msgs.scrollHeight; - } - } - callback(_Scheduler_succeed(_Utils_Tuple0)); - }); -} - - - -// UPLOAD - - -function _Debugger_upload() -{ - return _Scheduler_binding(function(callback) - { - var element = document.createElement('input'); - element.setAttribute('type', 'file'); - element.setAttribute('accept', 'text/json'); - element.style.display = 'none'; - element.addEventListener('change', function(event) - { - var fileReader = new FileReader(); - fileReader.onload = function(e) - { - callback(_Scheduler_succeed(e.target.result)); - }; - fileReader.readAsText(event.target.files[0]); - document.body.removeChild(element); - }); - document.body.appendChild(element); - element.click(); - }); -} - - - -// DOWNLOAD - - -var _Debugger_download = F2(function(historyLength, json) -{ - return _Scheduler_binding(function(callback) - { - var fileName = 'history-' + historyLength + '.txt'; - var jsonString = JSON.stringify(json); - var mime = 'text/plain;charset=utf-8'; - var done = _Scheduler_succeed(_Utils_Tuple0); - - // for IE10+ - if (navigator.msSaveBlob) - { - navigator.msSaveBlob(new Blob([jsonString], {type: mime}), fileName); - return callback(done); - } - - // for HTML5 - var element = document.createElement('a'); - element.setAttribute('href', 'data:' + mime + ',' + encodeURIComponent(jsonString)); - element.setAttribute('download', fileName); - element.style.display = 'none'; - document.body.appendChild(element); - element.click(); - document.body.removeChild(element); - callback(done); - }); -}); - - - -// POPOUT CONTENT - - -function _Debugger_messageToString(value) -{ - if (typeof value === 'boolean') - { - return value ? 'True' : 'False'; - } - - if (typeof value === 'number') - { - return value + ''; - } - - if (typeof value === 'string') - { - return '"' + _Debugger_addSlashes(value, false) + '"'; - } - - if (value instanceof String) - { - return "'" + _Debugger_addSlashes(value, true) + "'"; - } - - if (typeof value !== 'object' || value === null || !('$' in value)) - { - return '…'; - } - - if (typeof value.$ === 'number') - { - return '…'; - } - - var code = value.$.charCodeAt(0); - if (code === 0x23 /* # */ || /* a */ 0x61 <= code && code <= 0x7A /* z */) - { - return '…'; - } - - if (['Array_elm_builtin', 'Set_elm_builtin', 'RBNode_elm_builtin', 'RBEmpty_elm_builtin'].indexOf(value.$) >= 0) - { - return '…'; - } - - var keys = Object.keys(value); - switch (keys.length) - { - case 1: - return value.$; - case 2: - return value.$ + ' ' + _Debugger_messageToString(value.a); - default: - return value.$ + ' … ' + _Debugger_messageToString(value[keys[keys.length - 1]]); - } -} - - -function _Debugger_init(value) -{ - if (typeof value === 'boolean') - { - return A3(elm$browser$Debugger$Expando$Constructor, elm$core$Maybe$Just(value ? 'True' : 'False'), true, _List_Nil); - } - - if (typeof value === 'number') - { - return elm$browser$Debugger$Expando$Primitive(value + ''); - } - - if (typeof value === 'string') - { - return elm$browser$Debugger$Expando$S('"' + _Debugger_addSlashes(value, false) + '"'); - } - - if (value instanceof String) - { - return elm$browser$Debugger$Expando$S("'" + _Debugger_addSlashes(value, true) + "'"); - } - - if (typeof value === 'object' && '$' in value) - { - var tag = value.$; - - if (tag === '::' || tag === '[]') - { - return A3(elm$browser$Debugger$Expando$Sequence, elm$browser$Debugger$Expando$ListSeq, true, - A2(elm$core$List$map, _Debugger_init, value) - ); - } - - if (tag === 'Set_elm_builtin') - { - return A3(elm$browser$Debugger$Expando$Sequence, elm$browser$Debugger$Expando$SetSeq, true, - A3(elm$core$Set$foldr, _Debugger_initCons, _List_Nil, value) - ); - } - - if (tag === 'RBNode_elm_builtin' || tag == 'RBEmpty_elm_builtin') - { - return A2(elm$browser$Debugger$Expando$Dictionary, true, - A3(elm$core$Dict$foldr, _Debugger_initKeyValueCons, _List_Nil, value) - ); - } - - if (tag === 'Array_elm_builtin') - { - return A3(elm$browser$Debugger$Expando$Sequence, elm$browser$Debugger$Expando$ArraySeq, true, - A3(elm$core$Array$foldr, _Debugger_initCons, _List_Nil, value) - ); - } - - if (typeof tag === 'number') - { - return elm$browser$Debugger$Expando$Primitive(''); - } - - var char = tag.charCodeAt(0); - if (char === 35 || 65 <= char && char <= 90) - { - var list = _List_Nil; - for (var i in value) - { - if (i === '$') continue; - list = _List_Cons(_Debugger_init(value[i]), list); - } - return A3(elm$browser$Debugger$Expando$Constructor, char === 35 ? elm$core$Maybe$Nothing : elm$core$Maybe$Just(tag), true, elm$core$List$reverse(list)); - } - - return elm$browser$Debugger$Expando$Primitive(''); - } - - if (typeof value === 'object') - { - var dict = elm$core$Dict$empty; - for (var i in value) - { - dict = A3(elm$core$Dict$insert, i, _Debugger_init(value[i]), dict); - } - return A2(elm$browser$Debugger$Expando$Record, true, dict); - } - - return elm$browser$Debugger$Expando$Primitive(''); -} - -var _Debugger_initCons = F2(function initConsHelp(value, list) -{ - return _List_Cons(_Debugger_init(value), list); -}); - -var _Debugger_initKeyValueCons = F3(function(key, value, list) -{ - return _List_Cons( - _Utils_Tuple2(_Debugger_init(key), _Debugger_init(value)), - list - ); -}); - -function _Debugger_addSlashes(str, isChar) -{ - var s = str - .replace(/\\/g, '\\\\') - .replace(/\n/g, '\\n') - .replace(/\t/g, '\\t') - .replace(/\r/g, '\\r') - .replace(/\v/g, '\\v') - .replace(/\0/g, '\\0'); - if (isChar) - { - return s.replace(/\'/g, '\\\''); - } - else - { - return s.replace(/\"/g, '\\"'); - } -} - - - -// BLOCK EVENTS - - -function _Debugger_updateBlocker(oldBlocker, newBlocker) -{ - if (oldBlocker === newBlocker) return; - - var oldEvents = _Debugger_blockerToEvents(oldBlocker); - var newEvents = _Debugger_blockerToEvents(newBlocker); - - // remove old blockers - for (var i = 0; i < oldEvents.length; i++) - { - document.removeEventListener(oldEvents[i], _Debugger_blocker, true); - } - - // add new blockers - for (var i = 0; i < newEvents.length; i++) - { - document.addEventListener(newEvents[i], _Debugger_blocker, true); - } -} - - -function _Debugger_blocker(event) -{ - if (event.type === 'keydown' && event.metaKey && event.which === 82) - { - return; - } - - var isScroll = event.type === 'scroll' || event.type === 'wheel'; - for (var node = event.target; node; node = node.parentNode) - { - if (isScroll ? node.id === 'elm-debugger-details' : node.id === 'elm-debugger-overlay') - { - return; - } - } - - event.stopPropagation(); - event.preventDefault(); -} - -function _Debugger_blockerToEvents(blocker) -{ - return blocker === elm$browser$Debugger$Overlay$BlockNone - ? [] - : blocker === elm$browser$Debugger$Overlay$BlockMost - ? _Debugger_mostEvents - : _Debugger_allEvents; -} - -var _Debugger_mostEvents = [ - 'click', 'dblclick', 'mousemove', - 'mouseup', 'mousedown', 'mouseenter', 'mouseleave', - 'touchstart', 'touchend', 'touchcancel', 'touchmove', - 'pointerdown', 'pointerup', 'pointerover', 'pointerout', - 'pointerenter', 'pointerleave', 'pointermove', 'pointercancel', - 'dragstart', 'drag', 'dragend', 'dragenter', 'dragover', 'dragleave', 'drop', - 'keyup', 'keydown', 'keypress', - 'input', 'change', - 'focus', 'blur' -]; - -var _Debugger_allEvents = _Debugger_mostEvents.concat('wheel', 'scroll'); - - - - - -// ELEMENT - - -var _Debugger_element; - -var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args) -{ - return _Platform_initialize( - flagDecoder, - args, - impl.init, - impl.update, - impl.subscriptions, - function(sendToApp, initialModel) { - var view = impl.view; - /**_UNUSED/ - var domNode = args['node']; - //*/ - /**/ - var domNode = args && args['node'] ? args['node'] : _Debug_crash(0); - //*/ - var currNode = _VirtualDom_virtualize(domNode); - - return _Browser_makeAnimator(initialModel, function(model) - { - var nextNode = view(model); - var patches = _VirtualDom_diff(currNode, nextNode); - domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp); - currNode = nextNode; - }); - } - ); -}); - - - -// DOCUMENT - - -var _Debugger_document; - -var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args) -{ - return _Platform_initialize( - flagDecoder, - args, - impl.init, - impl.update, - impl.subscriptions, - function(sendToApp, initialModel) { - var divertHrefToApp = impl.setup && impl.setup(sendToApp) - var view = impl.view; - var title = _VirtualDom_doc.title; - var bodyNode = _VirtualDom_doc.body; - var currNode = _VirtualDom_virtualize(bodyNode); - return _Browser_makeAnimator(initialModel, function(model) - { - _VirtualDom_divertHrefToApp = divertHrefToApp; - var doc = view(model); - var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.body); - var patches = _VirtualDom_diff(currNode, nextNode); - bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp); - currNode = nextNode; - _VirtualDom_divertHrefToApp = 0; - (title !== doc.title) && (_VirtualDom_doc.title = title = doc.title); - }); - } - ); -}); - - - -// ANIMATION - - -var _Browser_requestAnimationFrame = - typeof requestAnimationFrame !== 'undefined' - ? requestAnimationFrame - : function(callback) { setTimeout(callback, 1000 / 60); }; - - -function _Browser_makeAnimator(model, draw) -{ - draw(model); - - var state = 0; - - function updateIfNeeded() - { - state = state === 1 - ? 0 - : ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 ); - } - - return function(nextModel, isSync) - { - model = nextModel; - - isSync - ? ( draw(model), - state === 2 && (state = 1) - ) - : ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded), - state = 2 - ); - }; -} - - - -// APPLICATION - - -function _Browser_application(impl) -{ - var onUrlChange = impl.onUrlChange; - var onUrlRequest = impl.onUrlRequest; - var key = function() { key.a(onUrlChange(_Browser_getUrl())); }; - - return _Browser_document({ - setup: function(sendToApp) - { - key.a = sendToApp; - _Browser_window.addEventListener('popstate', key); - _Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key); - - return F2(function(domNode, event) - { - if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.download) - { - event.preventDefault(); - var href = domNode.href; - var curr = _Browser_getUrl(); - var next = elm$url$Url$fromString(href).a; - sendToApp(onUrlRequest( - (next - && curr.protocol === next.protocol - && curr.host === next.host - && curr.port_.a === next.port_.a - ) - ? elm$browser$Browser$Internal(next) - : elm$browser$Browser$External(href) - )); - } - }); - }, - init: function(flags) - { - return A3(impl.init, flags, _Browser_getUrl(), key); - }, - view: impl.view, - update: impl.update, - subscriptions: impl.subscriptions - }); -} - -function _Browser_getUrl() -{ - return elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1); -} - -var _Browser_go = F2(function(key, n) -{ - return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { - n && history.go(n); - key(); - })); -}); - -var _Browser_pushUrl = F2(function(key, url) -{ - return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { - history.pushState({}, '', url); - key(); - })); -}); - -var _Browser_replaceUrl = F2(function(key, url) -{ - return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { - history.replaceState({}, '', url); - key(); - })); -}); - - - -// GLOBAL EVENTS - - -var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} }; -var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode; -var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode; - -var _Browser_on = F3(function(node, eventName, sendToSelf) -{ - return _Scheduler_spawn(_Scheduler_binding(function(callback) - { - function handler(event) { _Scheduler_rawSpawn(sendToSelf(event)); } - node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true }); - return function() { node.removeEventListener(eventName, handler); }; - })); -}); - -var _Browser_decodeEvent = F2(function(decoder, event) -{ - var result = _Json_runHelp(decoder, event); - return elm$core$Result$isOk(result) ? elm$core$Maybe$Just(result.a) : elm$core$Maybe$Nothing; -}); - - - -// PAGE VISIBILITY - - -function _Browser_visibilityInfo() -{ - return (typeof _VirtualDom_doc.hidden !== 'undefined') - ? { hidden: 'hidden', change: 'visibilitychange' } - : - (typeof _VirtualDom_doc.mozHidden !== 'undefined') - ? { hidden: 'mozHidden', change: 'mozvisibilitychange' } - : - (typeof _VirtualDom_doc.msHidden !== 'undefined') - ? { hidden: 'msHidden', change: 'msvisibilitychange' } - : - (typeof _VirtualDom_doc.webkitHidden !== 'undefined') - ? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' } - : { hidden: 'hidden', change: 'visibilitychange' }; -} - - - -// ANIMATION FRAMES - - -function _Browser_rAF() -{ - return _Scheduler_binding(function(callback) - { - var id = requestAnimationFrame(function() { - callback(_Scheduler_succeed(Date.now())); - }); - - return function() { - cancelAnimationFrame(id); - }; - }); -} - - -function _Browser_now() -{ - return _Scheduler_binding(function(callback) - { - callback(_Scheduler_succeed(Date.now())); - }); -} - - - -// DOM STUFF - - -function _Browser_withNode(id, doStuff) -{ - return _Scheduler_binding(function(callback) - { - _Browser_requestAnimationFrame(function() { - var node = document.getElementById(id); - callback(node - ? _Scheduler_succeed(doStuff(node)) - : _Scheduler_fail(elm$browser$Browser$Dom$NotFound(id)) - ); - }); - }); -} - - -function _Browser_withWindow(doStuff) -{ - return _Scheduler_binding(function(callback) - { - _Browser_requestAnimationFrame(function() { - callback(_Scheduler_succeed(doStuff())); - }); - }); -} - - -// FOCUS and BLUR - - -var _Browser_call = F2(function(functionName, id) -{ - return _Browser_withNode(id, function(node) { - node[functionName](); - return _Utils_Tuple0; - }); -}); - - - -// WINDOW VIEWPORT - - -function _Browser_getViewport() -{ - return { - scene: _Browser_getScene(), - viewport: { - x: _Browser_window.pageXOffset, - y: _Browser_window.pageYOffset, - width: _Browser_doc.documentElement.clientWidth, - height: _Browser_doc.documentElement.clientHeight - } - }; -} - -function _Browser_getScene() -{ - var body = _Browser_doc.body; - var elem = _Browser_doc.documentElement; - return { - width: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth), - height: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight) - }; -} - -var _Browser_setViewport = F2(function(x, y) -{ - return _Browser_withWindow(function() - { - _Browser_window.scroll(x, y); - return _Utils_Tuple0; - }); -}); - - - -// ELEMENT VIEWPORT - - -function _Browser_getViewportOf(id) -{ - return _Browser_withNode(id, function(node) - { - return { - scene: { - width: node.scrollWidth, - height: node.scrollHeight - }, - viewport: { - x: node.scrollLeft, - y: node.scrollTop, - width: node.clientWidth, - height: node.clientHeight - } - }; - }); -} - - -var _Browser_setViewportOf = F3(function(id, x, y) -{ - return _Browser_withNode(id, function(node) - { - node.scrollLeft = x; - node.scrollTop = y; - return _Utils_Tuple0; - }); -}); - - - -// ELEMENT - - -function _Browser_getElement(id) -{ - return _Browser_withNode(id, function(node) - { - var rect = node.getBoundingClientRect(); - var x = _Browser_window.pageXOffset; - var y = _Browser_window.pageYOffset; - return { - scene: _Browser_getScene(), - viewport: { - x: x, - y: y, - width: _Browser_doc.documentElement.clientWidth, - height: _Browser_doc.documentElement.clientHeight - }, - element: { - x: x + rect.left, - y: y + rect.top, - width: rect.width, - height: rect.height - } - }; - }); -} - - - -// LOAD and RELOAD - - -function _Browser_reload(skipCache) -{ - return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function(callback) - { - _VirtualDom_doc.location.reload(skipCache); - })); -} - -function _Browser_load(url) -{ - return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function(callback) - { - try - { - _Browser_window.location = url; - } - catch(err) - { - // Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here. - // Other browsers reload the page, so let's be consistent about that. - _VirtualDom_doc.location.reload(false); - } - })); -} - - - -function _Time_now(millisToPosix) -{ - return _Scheduler_binding(function(callback) - { - callback(_Scheduler_succeed(millisToPosix(Date.now()))); - }); -} - -var _Time_setInterval = F2(function(interval, task) -{ - return _Scheduler_binding(function(callback) - { - var id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval); - return function() { clearInterval(id); }; - }); -}); - -function _Time_here() -{ - return _Scheduler_binding(function(callback) - { - callback(_Scheduler_succeed( - A2(elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil) - )); - }); -} - - -function _Time_getZoneName() -{ - return _Scheduler_binding(function(callback) - { - try - { - var name = elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone); - } - catch (e) - { - var name = elm$time$Time$Offset(new Date().getTimezoneOffset()); - } - callback(_Scheduler_succeed(name)); - }); -} -var elm$core$Maybe$Nothing = {$: 'Nothing'}; -var author$project$Lexicon$initialModel = {currentWord: elm$core$Maybe$Nothing, errorMessage: elm$core$Maybe$Nothing, wordList: elm$core$Maybe$Nothing}; -var author$project$Main$SearchView = {$: 'SearchView'}; -var author$project$Main$initialModel = {currentPage: author$project$Main$SearchView, errorMessage: elm$core$Maybe$Nothing, lexiconModel: author$project$Lexicon$initialModel, query: '', savedWords: elm$core$Maybe$Nothing, searchInput: elm$core$Maybe$Nothing}; -var elm$core$Array$branchFactor = 32; -var elm$core$Array$Array_elm_builtin = F4( - function (a, b, c, d) { - return {$: 'Array_elm_builtin', a: a, b: b, c: c, d: d}; - }); -var elm$core$Basics$EQ = {$: 'EQ'}; -var elm$core$Basics$GT = {$: 'GT'}; -var elm$core$Basics$LT = {$: 'LT'}; -var elm$core$Dict$foldr = F3( - function (func, acc, t) { - foldr: - while (true) { - if (t.$ === 'RBEmpty_elm_builtin') { - return acc; - } else { - var key = t.b; - var value = t.c; - var left = t.d; - var right = t.e; - var $temp$func = func, - $temp$acc = A3( - func, - key, - value, - A3(elm$core$Dict$foldr, func, acc, right)), - $temp$t = left; - func = $temp$func; - acc = $temp$acc; - t = $temp$t; - continue foldr; - } - } - }); -var elm$core$List$cons = _List_cons; -var elm$core$Dict$toList = function (dict) { - return A3( - elm$core$Dict$foldr, - F3( - function (key, value, list) { - return A2( - elm$core$List$cons, - _Utils_Tuple2(key, value), - list); - }), - _List_Nil, - dict); -}; -var elm$core$Dict$keys = function (dict) { - return A3( - elm$core$Dict$foldr, - F3( - function (key, value, keyList) { - return A2(elm$core$List$cons, key, keyList); - }), - _List_Nil, - dict); -}; -var elm$core$Set$toList = function (_n0) { - var dict = _n0.a; - return elm$core$Dict$keys(dict); -}; -var elm$core$Elm$JsArray$foldr = _JsArray_foldr; -var elm$core$Array$foldr = F3( - function (func, baseCase, _n0) { - var tree = _n0.c; - var tail = _n0.d; - var helper = F2( - function (node, acc) { - if (node.$ === 'SubTree') { - var subTree = node.a; - return A3(elm$core$Elm$JsArray$foldr, helper, acc, subTree); - } else { - var values = node.a; - return A3(elm$core$Elm$JsArray$foldr, func, acc, values); - } - }); - return A3( - elm$core$Elm$JsArray$foldr, - helper, - A3(elm$core$Elm$JsArray$foldr, func, baseCase, tail), - tree); - }); -var elm$core$Array$toList = function (array) { - return A3(elm$core$Array$foldr, elm$core$List$cons, _List_Nil, array); -}; -var elm$core$Basics$ceiling = _Basics_ceiling; -var elm$core$Basics$fdiv = _Basics_fdiv; -var elm$core$Basics$logBase = F2( - function (base, number) { - return _Basics_log(number) / _Basics_log(base); - }); -var elm$core$Basics$toFloat = _Basics_toFloat; -var elm$core$Array$shiftStep = elm$core$Basics$ceiling( - A2(elm$core$Basics$logBase, 2, elm$core$Array$branchFactor)); -var elm$core$Elm$JsArray$empty = _JsArray_empty; -var elm$core$Array$empty = A4(elm$core$Array$Array_elm_builtin, 0, elm$core$Array$shiftStep, elm$core$Elm$JsArray$empty, elm$core$Elm$JsArray$empty); -var elm$core$Array$Leaf = function (a) { - return {$: 'Leaf', a: a}; -}; -var elm$core$Array$SubTree = function (a) { - return {$: 'SubTree', a: a}; -}; -var elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList; -var elm$core$List$foldl = F3( - function (func, acc, list) { - foldl: - while (true) { - if (!list.b) { - return acc; - } else { - var x = list.a; - var xs = list.b; - var $temp$func = func, - $temp$acc = A2(func, x, acc), - $temp$list = xs; - func = $temp$func; - acc = $temp$acc; - list = $temp$list; - continue foldl; - } - } - }); -var elm$core$List$reverse = function (list) { - return A3(elm$core$List$foldl, elm$core$List$cons, _List_Nil, list); -}; -var elm$core$Array$compressNodes = F2( - function (nodes, acc) { - compressNodes: - while (true) { - var _n0 = A2(elm$core$Elm$JsArray$initializeFromList, elm$core$Array$branchFactor, nodes); - var node = _n0.a; - var remainingNodes = _n0.b; - var newAcc = A2( - elm$core$List$cons, - elm$core$Array$SubTree(node), - acc); - if (!remainingNodes.b) { - return elm$core$List$reverse(newAcc); - } else { - var $temp$nodes = remainingNodes, - $temp$acc = newAcc; - nodes = $temp$nodes; - acc = $temp$acc; - continue compressNodes; - } - } - }); -var elm$core$Basics$apR = F2( - function (x, f) { - return f(x); - }); -var elm$core$Basics$eq = _Utils_equal; -var elm$core$Tuple$first = function (_n0) { - var x = _n0.a; - return x; -}; -var elm$core$Array$treeFromBuilder = F2( - function (nodeList, nodeListSize) { - treeFromBuilder: - while (true) { - var newNodeSize = elm$core$Basics$ceiling(nodeListSize / elm$core$Array$branchFactor); - if (newNodeSize === 1) { - return A2(elm$core$Elm$JsArray$initializeFromList, elm$core$Array$branchFactor, nodeList).a; - } else { - var $temp$nodeList = A2(elm$core$Array$compressNodes, nodeList, _List_Nil), - $temp$nodeListSize = newNodeSize; - nodeList = $temp$nodeList; - nodeListSize = $temp$nodeListSize; - continue treeFromBuilder; - } - } - }); -var elm$core$Basics$add = _Basics_add; -var elm$core$Basics$apL = F2( - function (f, x) { - return f(x); - }); -var elm$core$Basics$floor = _Basics_floor; -var elm$core$Basics$gt = _Utils_gt; -var elm$core$Basics$max = F2( - function (x, y) { - return (_Utils_cmp(x, y) > 0) ? x : y; - }); -var elm$core$Basics$mul = _Basics_mul; -var elm$core$Basics$sub = _Basics_sub; -var elm$core$Elm$JsArray$length = _JsArray_length; -var elm$core$Array$builderToArray = F2( - function (reverseNodeList, builder) { - if (!builder.nodeListSize) { - return A4( - elm$core$Array$Array_elm_builtin, - elm$core$Elm$JsArray$length(builder.tail), - elm$core$Array$shiftStep, - elm$core$Elm$JsArray$empty, - builder.tail); - } else { - var treeLen = builder.nodeListSize * elm$core$Array$branchFactor; - var depth = elm$core$Basics$floor( - A2(elm$core$Basics$logBase, elm$core$Array$branchFactor, treeLen - 1)); - var correctNodeList = reverseNodeList ? elm$core$List$reverse(builder.nodeList) : builder.nodeList; - var tree = A2(elm$core$Array$treeFromBuilder, correctNodeList, builder.nodeListSize); - return A4( - elm$core$Array$Array_elm_builtin, - elm$core$Elm$JsArray$length(builder.tail) + treeLen, - A2(elm$core$Basics$max, 5, depth * elm$core$Array$shiftStep), - tree, - builder.tail); - } - }); -var elm$core$Basics$False = {$: 'False'}; -var elm$core$Basics$idiv = _Basics_idiv; -var elm$core$Basics$lt = _Utils_lt; -var elm$core$Elm$JsArray$initialize = _JsArray_initialize; -var elm$core$Array$initializeHelp = F5( - function (fn, fromIndex, len, nodeList, tail) { - initializeHelp: - while (true) { - if (fromIndex < 0) { - return A2( - elm$core$Array$builderToArray, - false, - {nodeList: nodeList, nodeListSize: (len / elm$core$Array$branchFactor) | 0, tail: tail}); - } else { - var leaf = elm$core$Array$Leaf( - A3(elm$core$Elm$JsArray$initialize, elm$core$Array$branchFactor, fromIndex, fn)); - var $temp$fn = fn, - $temp$fromIndex = fromIndex - elm$core$Array$branchFactor, - $temp$len = len, - $temp$nodeList = A2(elm$core$List$cons, leaf, nodeList), - $temp$tail = tail; - fn = $temp$fn; - fromIndex = $temp$fromIndex; - len = $temp$len; - nodeList = $temp$nodeList; - tail = $temp$tail; - continue initializeHelp; - } - } - }); -var elm$core$Basics$le = _Utils_le; -var elm$core$Basics$remainderBy = _Basics_remainderBy; -var elm$core$Array$initialize = F2( - function (len, fn) { - if (len <= 0) { - return elm$core$Array$empty; - } else { - var tailLen = len % elm$core$Array$branchFactor; - var tail = A3(elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn); - var initialFromIndex = (len - tailLen) - elm$core$Array$branchFactor; - return A5(elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail); - } - }); -var elm$core$Maybe$Just = function (a) { - return {$: 'Just', a: a}; -}; -var elm$core$Result$Err = function (a) { - return {$: 'Err', a: a}; -}; -var elm$core$Result$Ok = function (a) { - return {$: 'Ok', a: a}; -}; -var elm$core$Basics$True = {$: 'True'}; -var elm$core$Result$isOk = function (result) { - if (result.$ === 'Ok') { - return true; - } else { - return false; - } -}; -var elm$json$Json$Decode$Failure = F2( - function (a, b) { - return {$: 'Failure', a: a, b: b}; - }); -var elm$json$Json$Decode$Field = F2( - function (a, b) { - return {$: 'Field', a: a, b: b}; - }); -var elm$json$Json$Decode$Index = F2( - function (a, b) { - return {$: 'Index', a: a, b: b}; - }); -var elm$json$Json$Decode$OneOf = function (a) { - return {$: 'OneOf', a: a}; -}; -var elm$core$Basics$and = _Basics_and; -var elm$core$Basics$append = _Utils_append; -var elm$core$Basics$or = _Basics_or; -var elm$core$Char$toCode = _Char_toCode; -var elm$core$Char$isLower = function (_char) { - var code = elm$core$Char$toCode(_char); - return (97 <= code) && (code <= 122); -}; -var elm$core$Char$isUpper = function (_char) { - var code = elm$core$Char$toCode(_char); - return (code <= 90) && (65 <= code); -}; -var elm$core$Char$isAlpha = function (_char) { - return elm$core$Char$isLower(_char) || elm$core$Char$isUpper(_char); -}; -var elm$core$Char$isDigit = function (_char) { - var code = elm$core$Char$toCode(_char); - return (code <= 57) && (48 <= code); -}; -var elm$core$Char$isAlphaNum = function (_char) { - return elm$core$Char$isLower(_char) || (elm$core$Char$isUpper(_char) || elm$core$Char$isDigit(_char)); -}; -var elm$core$List$length = function (xs) { - return A3( - elm$core$List$foldl, - F2( - function (_n0, i) { - return i + 1; - }), - 0, - xs); -}; -var elm$core$List$map2 = _List_map2; -var elm$core$List$rangeHelp = F3( - function (lo, hi, list) { - rangeHelp: - while (true) { - if (_Utils_cmp(lo, hi) < 1) { - var $temp$lo = lo, - $temp$hi = hi - 1, - $temp$list = A2(elm$core$List$cons, hi, list); - lo = $temp$lo; - hi = $temp$hi; - list = $temp$list; - continue rangeHelp; - } else { - return list; - } - } - }); -var elm$core$List$range = F2( - function (lo, hi) { - return A3(elm$core$List$rangeHelp, lo, hi, _List_Nil); - }); -var elm$core$List$indexedMap = F2( - function (f, xs) { - return A3( - elm$core$List$map2, - f, - A2( - elm$core$List$range, - 0, - elm$core$List$length(xs) - 1), - xs); - }); -var elm$core$String$all = _String_all; -var elm$core$String$fromInt = _String_fromNumber; -var elm$core$String$join = F2( - function (sep, chunks) { - return A2( - _String_join, - sep, - _List_toArray(chunks)); - }); -var elm$core$String$uncons = _String_uncons; -var elm$core$String$split = F2( - function (sep, string) { - return _List_fromArray( - A2(_String_split, sep, string)); - }); -var elm$json$Json$Decode$indent = function (str) { - return A2( - elm$core$String$join, - '\n ', - A2(elm$core$String$split, '\n', str)); -}; -var elm$json$Json$Encode$encode = _Json_encode; -var elm$json$Json$Decode$errorOneOf = F2( - function (i, error) { - return '\n\n(' + (elm$core$String$fromInt(i + 1) + (') ' + elm$json$Json$Decode$indent( - elm$json$Json$Decode$errorToString(error)))); - }); -var elm$json$Json$Decode$errorToString = function (error) { - return A2(elm$json$Json$Decode$errorToStringHelp, error, _List_Nil); -}; -var elm$json$Json$Decode$errorToStringHelp = F2( - function (error, context) { - errorToStringHelp: - while (true) { - switch (error.$) { - case 'Field': - var f = error.a; - var err = error.b; - var isSimple = function () { - var _n1 = elm$core$String$uncons(f); - if (_n1.$ === 'Nothing') { - return false; - } else { - var _n2 = _n1.a; - var _char = _n2.a; - var rest = _n2.b; - return elm$core$Char$isAlpha(_char) && A2(elm$core$String$all, elm$core$Char$isAlphaNum, rest); - } - }(); - var fieldName = isSimple ? ('.' + f) : ('[\'' + (f + '\']')); - var $temp$error = err, - $temp$context = A2(elm$core$List$cons, fieldName, context); - error = $temp$error; - context = $temp$context; - continue errorToStringHelp; - case 'Index': - var i = error.a; - var err = error.b; - var indexName = '[' + (elm$core$String$fromInt(i) + ']'); - var $temp$error = err, - $temp$context = A2(elm$core$List$cons, indexName, context); - error = $temp$error; - context = $temp$context; - continue errorToStringHelp; - case 'OneOf': - var errors = error.a; - if (!errors.b) { - return 'Ran into a Json.Decode.oneOf with no possibilities' + function () { - if (!context.b) { - return '!'; - } else { - return ' at json' + A2( - elm$core$String$join, - '', - elm$core$List$reverse(context)); - } - }(); - } else { - if (!errors.b.b) { - var err = errors.a; - var $temp$error = err, - $temp$context = context; - error = $temp$error; - context = $temp$context; - continue errorToStringHelp; - } else { - var starter = function () { - if (!context.b) { - return 'Json.Decode.oneOf'; - } else { - return 'The Json.Decode.oneOf at json' + A2( - elm$core$String$join, - '', - elm$core$List$reverse(context)); - } - }(); - var introduction = starter + (' failed in the following ' + (elm$core$String$fromInt( - elm$core$List$length(errors)) + ' ways:')); - return A2( - elm$core$String$join, - '\n\n', - A2( - elm$core$List$cons, - introduction, - A2(elm$core$List$indexedMap, elm$json$Json$Decode$errorOneOf, errors))); - } - } - default: - var msg = error.a; - var json = error.b; - var introduction = function () { - if (!context.b) { - return 'Problem with the given value:\n\n'; - } else { - return 'Problem with the value at json' + (A2( - elm$core$String$join, - '', - elm$core$List$reverse(context)) + ':\n\n '); - } - }(); - return introduction + (elm$json$Json$Decode$indent( - A2(elm$json$Json$Encode$encode, 4, json)) + ('\n\n' + msg)); - } - } - }); -var elm$json$Json$Encode$null = _Json_encodeNull; -var author$project$Lexicon$getWordList = _Platform_outgoingPort( - 'getWordList', - function ($) { - return elm$json$Json$Encode$null; - }); -var author$project$Lexicon$loadWordList = author$project$Lexicon$getWordList(_Utils_Tuple0); -var author$project$Main$LexiconMsg = function (a) { - return {$: 'LexiconMsg', a: a}; -}; -var elm$core$Platform$Cmd$map = _Platform_map; -var author$project$Main$startApplication = A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, author$project$Lexicon$loadWordList); -var elm$core$List$isEmpty = function (xs) { - if (!xs.b) { - return true; - } else { - return false; - } -}; -var author$project$Main$init = function (wl) { - return elm$core$List$isEmpty(wl) ? _Utils_Tuple2(author$project$Main$initialModel, author$project$Main$startApplication) : _Utils_Tuple2( - _Utils_update( - author$project$Main$initialModel, - { - savedWords: elm$core$Maybe$Just(wl) - }), - author$project$Main$startApplication); -}; -var author$project$Lexicon$WordDefinitionReceived = function (a) { - return {$: 'WordDefinitionReceived', a: a}; -}; -var author$project$Lexicon$WordListReceived = function (a) { - return {$: 'WordListReceived', a: a}; -}; -var elm$json$Json$Decode$andThen = _Json_andThen; -var elm$json$Json$Decode$field = _Json_decodeField; -var elm$json$Json$Decode$list = _Json_decodeList; -var elm$json$Json$Decode$string = _Json_decodeString; -var elm$json$Json$Decode$succeed = _Json_succeed; -var author$project$Lexicon$wordDefinitionReceived = _Platform_incomingPort( - 'wordDefinitionReceived', - A2( - elm$json$Json$Decode$andThen, - function (word) { - return A2( - elm$json$Json$Decode$andThen, - function (seeAlso) { - return A2( - elm$json$Json$Decode$andThen, - function (id) { - return A2( - elm$json$Json$Decode$andThen, - function (definition) { - return elm$json$Json$Decode$succeed( - {definition: definition, id: id, seeAlso: seeAlso, word: word}); - }, - A2(elm$json$Json$Decode$field, 'definition', elm$json$Json$Decode$string)); - }, - A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); - }, - A2( - elm$json$Json$Decode$field, - 'seeAlso', - elm$json$Json$Decode$list(elm$json$Json$Decode$string))); - }, - A2(elm$json$Json$Decode$field, 'word', elm$json$Json$Decode$string))); -var author$project$Lexicon$wordListReceived = _Platform_incomingPort( - 'wordListReceived', - elm$json$Json$Decode$list( - A2( - elm$json$Json$Decode$andThen, - function (word) { - return A2( - elm$json$Json$Decode$andThen, - function (id) { - return elm$json$Json$Decode$succeed( - {id: id, word: word}); - }, - A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); - }, - A2(elm$json$Json$Decode$field, 'word', elm$json$Json$Decode$string)))); -var elm$core$Platform$Sub$batch = _Platform_batch; -var author$project$Lexicon$subscriptions = elm$core$Platform$Sub$batch( - _List_fromArray( - [ - author$project$Lexicon$wordListReceived( - function (wl) { - return author$project$Lexicon$WordListReceived(wl); - }), - author$project$Lexicon$wordDefinitionReceived( - function (w) { - return author$project$Lexicon$WordDefinitionReceived(w); - }) - ])); -var author$project$Main$SavedWordListChanged = function (a) { - return {$: 'SavedWordListChanged', a: a}; -}; -var elm$json$Json$Encode$string = _Json_wrap; -var author$project$Main$lcDebug = _Platform_outgoingPort('lcDebug', elm$json$Json$Encode$string); -var author$project$Main$savedWordListChanged = _Platform_incomingPort( - 'savedWordListChanged', - elm$json$Json$Decode$list( - A2( - elm$json$Json$Decode$andThen, - function (word) { - return A2( - elm$json$Json$Decode$andThen, - function (id) { - return elm$json$Json$Decode$succeed( - {id: id, word: word}); - }, - A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); - }, - A2(elm$json$Json$Decode$field, 'word', elm$json$Json$Decode$string)))); -var elm$core$Platform$Sub$map = _Platform_map; -var author$project$Main$subscriptions = function (model) { - var d = author$project$Main$lcDebug('subscription arrived'); - return elm$core$Platform$Sub$batch( - _List_fromArray( - [ - author$project$Main$savedWordListChanged( - function (wl) { - return author$project$Main$SavedWordListChanged(wl); - }), - A2(elm$core$Platform$Sub$map, author$project$Main$LexiconMsg, author$project$Lexicon$subscriptions) - ])); -}; -var author$project$Lexicon$getWordDefinition = _Platform_outgoingPort('getWordDefinition', elm$json$Json$Encode$string); -var author$project$Lexicon$loadWordDefinition = function (id) { - return author$project$Lexicon$getWordDefinition(id); -}; -var elm$core$List$foldrHelper = F4( - function (fn, acc, ctr, ls) { - if (!ls.b) { - return acc; - } else { - var a = ls.a; - var r1 = ls.b; - if (!r1.b) { - return A2(fn, a, acc); - } else { - var b = r1.a; - var r2 = r1.b; - if (!r2.b) { - return A2( - fn, - a, - A2(fn, b, acc)); - } else { - var c = r2.a; - var r3 = r2.b; - if (!r3.b) { - return A2( - fn, - a, - A2( - fn, - b, - A2(fn, c, acc))); - } else { - var d = r3.a; - var r4 = r3.b; - var res = (ctr > 500) ? A3( - elm$core$List$foldl, - fn, - acc, - elm$core$List$reverse(r4)) : A4(elm$core$List$foldrHelper, fn, acc, ctr + 1, r4); - return A2( - fn, - a, - A2( - fn, - b, - A2( - fn, - c, - A2(fn, d, res)))); - } - } - } - } - }); -var elm$core$List$foldr = F3( - function (fn, acc, ls) { - return A4(elm$core$List$foldrHelper, fn, acc, 0, ls); - }); -var elm$core$List$filter = F2( - function (isGood, list) { - return A3( - elm$core$List$foldr, - F2( - function (x, xs) { - return isGood(x) ? A2(elm$core$List$cons, x, xs) : xs; - }), - _List_Nil, - list); - }); -var elm$core$List$head = function (list) { - if (list.b) { - var x = list.a; - var xs = list.b; - return elm$core$Maybe$Just(x); - } else { - return elm$core$Maybe$Nothing; - } -}; -var elm$core$Platform$Cmd$batch = _Platform_batch; -var elm$core$Platform$Cmd$none = elm$core$Platform$Cmd$batch(_List_Nil); -var author$project$Lexicon$loadWordDefinitionByWord = F2( - function (word, wordList) { - var list = function () { - if (wordList.$ === 'Just') { - var l = wordList.a; - return l; - } else { - return _List_Nil; - } - }(); - var found = elm$core$List$head( - A2( - elm$core$List$filter, - function (i) { - return _Utils_eq(i.word, word); - }, - list)); - if (found.$ === 'Just') { - var f = found.a; - return author$project$Lexicon$loadWordDefinition(f.id); - } else { - return elm$core$Platform$Cmd$none; - } - }); -var author$project$Lexicon$update = F2( - function (msg, model) { - switch (msg.$) { - case 'WordListReceived': - var wl = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - { - wordList: elm$core$Maybe$Just(wl) - }), - elm$core$Platform$Cmd$none); - case 'WordDefinitionReceived': - var w = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - { - currentWord: elm$core$Maybe$Just(w) - }), - elm$core$Platform$Cmd$none); - case 'HandleWordListResponse': - var result = msg.a; - if (result.$ === 'Ok') { - var results = result.a; - return _Utils_Tuple2( - _Utils_update( - model, - { - wordList: elm$core$Maybe$Just(results) - }), - elm$core$Platform$Cmd$none); - } else { - var error = result.a; - if (error.$ === 'BadPayload') { - var errMsg = error.a; - return _Utils_Tuple2( - _Utils_update( - model, - { - errorMessage: elm$core$Maybe$Just(errMsg) - }), - elm$core$Platform$Cmd$none); - } else { - return _Utils_Tuple2( - _Utils_update( - model, - { - errorMessage: elm$core$Maybe$Just('something happened') - }), - elm$core$Platform$Cmd$none); - } - } - default: - var result = msg.a; - if (result.$ === 'Ok') { - var results = result.a; - return _Utils_Tuple2( - _Utils_update( - model, - { - currentWord: elm$core$Maybe$Just(results) - }), - elm$core$Platform$Cmd$none); - } else { - var error = result.a; - if (error.$ === 'BadPayload') { - var errMsg = error.a; - return _Utils_Tuple2( - _Utils_update( - model, - { - errorMessage: elm$core$Maybe$Just(errMsg) - }), - elm$core$Platform$Cmd$none); - } else { - return _Utils_Tuple2( - _Utils_update( - model, - { - errorMessage: elm$core$Maybe$Just('something happened') - }), - elm$core$Platform$Cmd$none); - } - } - } - }); -var elm$json$Json$Encode$list = F2( - function (func, entries) { - return _Json_wrap( - A3( - elm$core$List$foldl, - _Json_addEntry(func), - _Json_emptyArray(_Utils_Tuple0), - entries)); - }); -var elm$json$Json$Encode$object = function (pairs) { - return _Json_wrap( - A3( - elm$core$List$foldl, - F2( - function (_n0, obj) { - var k = _n0.a; - var v = _n0.b; - return A3(_Json_addField, k, v, obj); - }), - _Json_emptyObject(_Utils_Tuple0), - pairs)); -}; -var author$project$Lexicon$wordEncoder = function (word) { - return elm$json$Json$Encode$object( - _List_fromArray( - [ - _Utils_Tuple2( - 'id', - elm$json$Json$Encode$string(word.id)), - _Utils_Tuple2( - 'word', - elm$json$Json$Encode$string(word.word)), - _Utils_Tuple2( - 'definition', - elm$json$Json$Encode$string(word.definition)), - _Utils_Tuple2( - 'seeAlso', - A2(elm$json$Json$Encode$list, elm$json$Json$Encode$string, word.seeAlso)) - ])); -}; -var author$project$Main$DefinitionView = {$: 'DefinitionView'}; -var author$project$Main$LoadDefinitionByInt = function (a) { - return {$: 'LoadDefinitionByInt', a: a}; -}; -var author$project$Main$appGoHome = _Platform_outgoingPort( - 'appGoHome', - function ($) { - return elm$json$Json$Encode$null; - }); -var author$project$Main$appGoSettings = _Platform_outgoingPort( - 'appGoSettings', - function ($) { - return elm$json$Json$Encode$null; - }); -var elm$core$Basics$identity = function (x) { - return x; -}; -var author$project$Main$removeSavedWord = _Platform_outgoingPort('removeSavedWord', elm$core$Basics$identity); -var author$project$Main$saveWord = _Platform_outgoingPort('saveWord', elm$core$Basics$identity); -var author$project$Main$scrollTop = _Platform_outgoingPort( - 'scrollTop', - function ($) { - return elm$json$Json$Encode$null; - }); -var author$project$Main$NoOp = {$: 'NoOp'}; -var elm$browser$Browser$External = function (a) { - return {$: 'External', a: a}; -}; -var elm$browser$Browser$Internal = function (a) { - return {$: 'Internal', a: a}; -}; -var elm$browser$Browser$Dom$NotFound = function (a) { - return {$: 'NotFound', a: a}; -}; -var elm$core$Basics$never = function (_n0) { - never: - while (true) { - var nvr = _n0.a; - var $temp$_n0 = nvr; - _n0 = $temp$_n0; - continue never; - } -}; -var elm$core$Task$Perform = function (a) { - return {$: 'Perform', a: a}; -}; -var elm$core$Task$succeed = _Scheduler_succeed; -var elm$core$Task$init = elm$core$Task$succeed(_Utils_Tuple0); -var elm$core$List$map = F2( - function (f, xs) { - return A3( - elm$core$List$foldr, - F2( - function (x, acc) { - return A2( - elm$core$List$cons, - f(x), - acc); - }), - _List_Nil, - xs); - }); -var elm$core$Task$andThen = _Scheduler_andThen; -var elm$core$Task$map = F2( - function (func, taskA) { - return A2( - elm$core$Task$andThen, - function (a) { - return elm$core$Task$succeed( - func(a)); - }, - taskA); - }); -var elm$core$Task$map2 = F3( - function (func, taskA, taskB) { - return A2( - elm$core$Task$andThen, - function (a) { - return A2( - elm$core$Task$andThen, - function (b) { - return elm$core$Task$succeed( - A2(func, a, b)); - }, - taskB); - }, - taskA); - }); -var elm$core$Task$sequence = function (tasks) { - return A3( - elm$core$List$foldr, - elm$core$Task$map2(elm$core$List$cons), - elm$core$Task$succeed(_List_Nil), - tasks); -}; -var elm$core$Platform$sendToApp = _Platform_sendToApp; -var elm$core$Task$spawnCmd = F2( - function (router, _n0) { - var task = _n0.a; - return _Scheduler_spawn( - A2( - elm$core$Task$andThen, - elm$core$Platform$sendToApp(router), - task)); - }); -var elm$core$Task$onEffects = F3( - function (router, commands, state) { - return A2( - elm$core$Task$map, - function (_n0) { - return _Utils_Tuple0; - }, - elm$core$Task$sequence( - A2( - elm$core$List$map, - elm$core$Task$spawnCmd(router), - commands))); - }); -var elm$core$Task$onSelfMsg = F3( - function (_n0, _n1, _n2) { - return elm$core$Task$succeed(_Utils_Tuple0); - }); -var elm$core$Task$cmdMap = F2( - function (tagger, _n0) { - var task = _n0.a; - return elm$core$Task$Perform( - A2(elm$core$Task$map, tagger, task)); - }); -_Platform_effectManagers['Task'] = _Platform_createManager(elm$core$Task$init, elm$core$Task$onEffects, elm$core$Task$onSelfMsg, elm$core$Task$cmdMap); -var elm$core$Task$command = _Platform_leaf('Task'); -var elm$core$Task$perform = F2( - function (toMessage, task) { - return elm$core$Task$command( - elm$core$Task$Perform( - A2(elm$core$Task$map, toMessage, task))); - }); -var elm$json$Json$Decode$map = _Json_map1; -var elm$browser$Debugger$Expando$ArraySeq = {$: 'ArraySeq'}; -var elm$browser$Debugger$Expando$Constructor = F3( - function (a, b, c) { - return {$: 'Constructor', a: a, b: b, c: c}; - }); -var elm$browser$Debugger$Expando$Dictionary = F2( - function (a, b) { - return {$: 'Dictionary', a: a, b: b}; - }); -var elm$browser$Debugger$Expando$ListSeq = {$: 'ListSeq'}; -var elm$browser$Debugger$Expando$Primitive = function (a) { - return {$: 'Primitive', a: a}; -}; -var elm$browser$Debugger$Expando$Record = F2( - function (a, b) { - return {$: 'Record', a: a, b: b}; - }); -var elm$browser$Debugger$Expando$S = function (a) { - return {$: 'S', a: a}; -}; -var elm$browser$Debugger$Expando$Sequence = F3( - function (a, b, c) { - return {$: 'Sequence', a: a, b: b, c: c}; - }); -var elm$browser$Debugger$Expando$SetSeq = {$: 'SetSeq'}; -var elm$browser$Debugger$Main$Down = {$: 'Down'}; -var elm$browser$Debugger$Main$NoOp = {$: 'NoOp'}; -var elm$browser$Debugger$Main$Up = {$: 'Up'}; -var elm$browser$Debugger$Main$UserMsg = function (a) { - return {$: 'UserMsg', a: a}; -}; -var elm$browser$Debugger$History$size = function (history) { - return history.numMessages; -}; -var elm$browser$Debugger$Main$Export = {$: 'Export'}; -var elm$browser$Debugger$Main$Import = {$: 'Import'}; -var elm$browser$Debugger$Main$Open = {$: 'Open'}; -var elm$browser$Debugger$Main$OverlayMsg = function (a) { - return {$: 'OverlayMsg', a: a}; -}; -var elm$browser$Debugger$Main$Resume = {$: 'Resume'}; -var elm$browser$Debugger$Main$isPaused = function (state) { - if (state.$ === 'Running') { - return false; - } else { - return true; - } -}; -var elm$browser$Debugger$Overlay$Accept = function (a) { - return {$: 'Accept', a: a}; -}; -var elm$browser$Debugger$Overlay$Choose = F2( - function (a, b) { - return {$: 'Choose', a: a, b: b}; - }); -var elm$browser$Debugger$Overlay$goodNews1 = '\nThe good news is that having values like this in your message type is not\nso great in the long run. You are better off using simpler data, like\n'; -var elm$browser$Debugger$Overlay$goodNews2 = '\nfunction can pattern match on that data and call whatever functions, JSON\ndecoders, etc. you need. This makes the code much more explicit and easy to\nfollow for other readers (or you in a few months!)\n'; -var elm$json$Json$Decode$map2 = _Json_map2; -var elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) { - switch (handler.$) { - case 'Normal': - return 0; - case 'MayStopPropagation': - return 1; - case 'MayPreventDefault': - return 2; - default: - return 3; - } -}; -var elm$html$Html$code = _VirtualDom_node('code'); -var elm$virtual_dom$VirtualDom$text = _VirtualDom_text; -var elm$html$Html$text = elm$virtual_dom$VirtualDom$text; -var elm$browser$Debugger$Overlay$viewCode = function (name) { - return A2( - elm$html$Html$code, - _List_Nil, - _List_fromArray( - [ - elm$html$Html$text(name) - ])); -}; -var elm$browser$Debugger$Overlay$addCommas = function (items) { - if (!items.b) { - return ''; - } else { - if (!items.b.b) { - var item = items.a; - return item; - } else { - if (!items.b.b.b) { - var item1 = items.a; - var _n1 = items.b; - var item2 = _n1.a; - return item1 + (' and ' + item2); - } else { - var lastItem = items.a; - var otherItems = items.b; - return A2( - elm$core$String$join, - ', ', - _Utils_ap( - otherItems, - _List_fromArray( - [' and ' + lastItem]))); - } - } - } -}; -var elm$browser$Debugger$Overlay$problemToString = function (problem) { - switch (problem.$) { - case 'Function': - return 'functions'; - case 'Decoder': - return 'JSON decoders'; - case 'Task': - return 'tasks'; - case 'Process': - return 'processes'; - case 'Socket': - return 'web sockets'; - case 'Request': - return 'HTTP requests'; - case 'Program': - return 'programs'; - default: - return 'virtual DOM values'; - } -}; -var elm$html$Html$li = _VirtualDom_node('li'); -var elm$browser$Debugger$Overlay$viewProblemType = function (_n0) { - var name = _n0.name; - var problems = _n0.problems; - return A2( - elm$html$Html$li, - _List_Nil, - _List_fromArray( - [ - elm$browser$Debugger$Overlay$viewCode(name), - elm$html$Html$text( - ' can contain ' + (elm$browser$Debugger$Overlay$addCommas( - A2(elm$core$List$map, elm$browser$Debugger$Overlay$problemToString, problems)) + '.')) - ])); -}; -var elm$html$Html$a = _VirtualDom_node('a'); -var elm$html$Html$p = _VirtualDom_node('p'); -var elm$html$Html$ul = _VirtualDom_node('ul'); -var elm$html$Html$Attributes$stringProperty = F2( - function (key, string) { - return A2( - _VirtualDom_property, - key, - elm$json$Json$Encode$string(string)); - }); -var elm$html$Html$Attributes$href = function (url) { - return A2( - elm$html$Html$Attributes$stringProperty, - 'href', - _VirtualDom_noJavaScriptUri(url)); -}; -var elm$browser$Debugger$Overlay$viewBadMetadata = function (_n0) { - var message = _n0.message; - var problems = _n0.problems; - return _List_fromArray( - [ - A2( - elm$html$Html$p, - _List_Nil, - _List_fromArray( - [ - elm$html$Html$text('The '), - elm$browser$Debugger$Overlay$viewCode(message), - elm$html$Html$text(' type of your program cannot be reliably serialized for history files.') - ])), - A2( - elm$html$Html$p, - _List_Nil, - _List_fromArray( - [ - elm$html$Html$text('Functions cannot be serialized, nor can values that contain functions. This is a problem in these places:') - ])), - A2( - elm$html$Html$ul, - _List_Nil, - A2(elm$core$List$map, elm$browser$Debugger$Overlay$viewProblemType, problems)), - A2( - elm$html$Html$p, - _List_Nil, - _List_fromArray( - [ - elm$html$Html$text(elm$browser$Debugger$Overlay$goodNews1), - A2( - elm$html$Html$a, - _List_fromArray( - [ - elm$html$Html$Attributes$href('https://guide.elm-lang.org/types/union_types.html') - ]), - _List_fromArray( - [ - elm$html$Html$text('union types') - ])), - elm$html$Html$text(', in your messages. From there, your '), - elm$browser$Debugger$Overlay$viewCode('update'), - elm$html$Html$text(elm$browser$Debugger$Overlay$goodNews2) - ])) - ]); -}; -var elm$browser$Debugger$Overlay$Cancel = {$: 'Cancel'}; -var elm$browser$Debugger$Overlay$Proceed = {$: 'Proceed'}; -var elm$html$Html$button = _VirtualDom_node('button'); -var elm$html$Html$div = _VirtualDom_node('div'); -var elm$virtual_dom$VirtualDom$style = _VirtualDom_style; -var elm$html$Html$Attributes$style = elm$virtual_dom$VirtualDom$style; -var elm$virtual_dom$VirtualDom$Normal = function (a) { - return {$: 'Normal', a: a}; -}; -var elm$virtual_dom$VirtualDom$on = _VirtualDom_on; -var elm$html$Html$Events$on = F2( - function (event, decoder) { - return A2( - elm$virtual_dom$VirtualDom$on, - event, - elm$virtual_dom$VirtualDom$Normal(decoder)); - }); -var elm$html$Html$Events$onClick = function (msg) { - return A2( - elm$html$Html$Events$on, - 'click', - elm$json$Json$Decode$succeed(msg)); -}; -var elm$browser$Debugger$Overlay$viewButtons = function (buttons) { - var btn = F2( - function (msg, string) { - return A2( - elm$html$Html$button, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'margin-right', '20px'), - elm$html$Html$Events$onClick(msg) - ]), - _List_fromArray( - [ - elm$html$Html$text(string) - ])); - }); - var buttonNodes = function () { - if (buttons.$ === 'Accept') { - var proceed = buttons.a; - return _List_fromArray( - [ - A2(btn, elm$browser$Debugger$Overlay$Proceed, proceed) - ]); - } else { - var cancel = buttons.a; - var proceed = buttons.b; - return _List_fromArray( - [ - A2(btn, elm$browser$Debugger$Overlay$Cancel, cancel), - A2(btn, elm$browser$Debugger$Overlay$Proceed, proceed) - ]); - } - }(); - return A2( - elm$html$Html$div, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'height', '60px'), - A2(elm$html$Html$Attributes$style, 'line-height', '60px'), - A2(elm$html$Html$Attributes$style, 'text-align', 'right'), - A2(elm$html$Html$Attributes$style, 'background-color', 'rgb(50, 50, 50)') - ]), - buttonNodes); -}; -var elm$virtual_dom$VirtualDom$map = _VirtualDom_map; -var elm$html$Html$map = elm$virtual_dom$VirtualDom$map; -var elm$html$Html$Attributes$id = elm$html$Html$Attributes$stringProperty('id'); -var elm$browser$Debugger$Overlay$viewMessage = F4( - function (config, title, details, buttons) { - return A2( - elm$html$Html$div, - _List_fromArray( - [ - elm$html$Html$Attributes$id('elm-debugger-overlay'), - A2(elm$html$Html$Attributes$style, 'position', 'fixed'), - A2(elm$html$Html$Attributes$style, 'top', '0'), - A2(elm$html$Html$Attributes$style, 'left', '0'), - A2(elm$html$Html$Attributes$style, 'width', '100%'), - A2(elm$html$Html$Attributes$style, 'height', '100%'), - A2(elm$html$Html$Attributes$style, 'color', 'white'), - A2(elm$html$Html$Attributes$style, 'pointer-events', 'none'), - A2(elm$html$Html$Attributes$style, 'font-family', '\'Trebuchet MS\', \'Lucida Grande\', \'Bitstream Vera Sans\', \'Helvetica Neue\', sans-serif'), - A2(elm$html$Html$Attributes$style, 'z-index', '2147483647') - ]), - _List_fromArray( - [ - A2( - elm$html$Html$div, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'position', 'absolute'), - A2(elm$html$Html$Attributes$style, 'width', '600px'), - A2(elm$html$Html$Attributes$style, 'height', '100%'), - A2(elm$html$Html$Attributes$style, 'padding-left', 'calc(50% - 300px)'), - A2(elm$html$Html$Attributes$style, 'padding-right', 'calc(50% - 300px)'), - A2(elm$html$Html$Attributes$style, 'background-color', 'rgba(200, 200, 200, 0.7)'), - A2(elm$html$Html$Attributes$style, 'pointer-events', 'auto') - ]), - _List_fromArray( - [ - A2( - elm$html$Html$div, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'font-size', '36px'), - A2(elm$html$Html$Attributes$style, 'height', '80px'), - A2(elm$html$Html$Attributes$style, 'background-color', 'rgb(50, 50, 50)'), - A2(elm$html$Html$Attributes$style, 'padding-left', '22px'), - A2(elm$html$Html$Attributes$style, 'vertical-align', 'middle'), - A2(elm$html$Html$Attributes$style, 'line-height', '80px') - ]), - _List_fromArray( - [ - elm$html$Html$text(title) - ])), - A2( - elm$html$Html$div, - _List_fromArray( - [ - elm$html$Html$Attributes$id('elm-debugger-details'), - A2(elm$html$Html$Attributes$style, 'padding', ' 8px 20px'), - A2(elm$html$Html$Attributes$style, 'overflow-y', 'auto'), - A2(elm$html$Html$Attributes$style, 'max-height', 'calc(100% - 156px)'), - A2(elm$html$Html$Attributes$style, 'background-color', 'rgb(61, 61, 61)') - ]), - details), - A2( - elm$html$Html$map, - config.wrap, - elm$browser$Debugger$Overlay$viewButtons(buttons)) - ])) - ])); - }); -var elm$html$Html$span = _VirtualDom_node('span'); -var elm$browser$Debugger$Overlay$button = F2( - function (msg, label) { - return A2( - elm$html$Html$span, - _List_fromArray( - [ - elm$html$Html$Events$onClick(msg), - A2(elm$html$Html$Attributes$style, 'cursor', 'pointer') - ]), - _List_fromArray( - [ - elm$html$Html$text(label) - ])); - }); -var elm$browser$Debugger$Overlay$viewImportExport = F3( - function (props, importMsg, exportMsg) { - return A2( - elm$html$Html$div, - props, - _List_fromArray( - [ - A2(elm$browser$Debugger$Overlay$button, importMsg, 'Import'), - elm$html$Html$text(' / '), - A2(elm$browser$Debugger$Overlay$button, exportMsg, 'Export') - ])); - }); -var elm$browser$Debugger$Overlay$viewMiniControls = F2( - function (config, numMsgs) { - return A2( - elm$html$Html$div, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'position', 'fixed'), - A2(elm$html$Html$Attributes$style, 'bottom', '0'), - A2(elm$html$Html$Attributes$style, 'right', '6px'), - A2(elm$html$Html$Attributes$style, 'border-radius', '4px'), - A2(elm$html$Html$Attributes$style, 'background-color', 'rgb(61, 61, 61)'), - A2(elm$html$Html$Attributes$style, 'color', 'white'), - A2(elm$html$Html$Attributes$style, 'font-family', 'monospace'), - A2(elm$html$Html$Attributes$style, 'pointer-events', 'auto'), - A2(elm$html$Html$Attributes$style, 'z-index', '2147483647') - ]), - _List_fromArray( - [ - A2( - elm$html$Html$div, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'padding', '6px'), - A2(elm$html$Html$Attributes$style, 'cursor', 'pointer'), - A2(elm$html$Html$Attributes$style, 'text-align', 'center'), - A2(elm$html$Html$Attributes$style, 'min-width', '24ch'), - elm$html$Html$Events$onClick(config.open) - ]), - _List_fromArray( - [ - elm$html$Html$text( - 'Explore History (' + (elm$core$String$fromInt(numMsgs) + ')')) - ])), - A3( - elm$browser$Debugger$Overlay$viewImportExport, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'padding', '4px 0'), - A2(elm$html$Html$Attributes$style, 'font-size', '0.8em'), - A2(elm$html$Html$Attributes$style, 'text-align', 'center'), - A2(elm$html$Html$Attributes$style, 'background-color', 'rgb(50, 50, 50)') - ]), - config.importHistory, - config.exportHistory) - ])); - }); -var elm$browser$Debugger$Overlay$explanationBad = '\nThe messages in this history do not match the messages handled by your\nprogram. I noticed changes in the following types:\n'; -var elm$browser$Debugger$Overlay$explanationRisky = '\nThis history seems old. It will work with this program, but some\nmessages have been added since the history was created:\n'; -var elm$core$List$intersperse = F2( - function (sep, xs) { - if (!xs.b) { - return _List_Nil; - } else { - var hd = xs.a; - var tl = xs.b; - var step = F2( - function (x, rest) { - return A2( - elm$core$List$cons, - sep, - A2(elm$core$List$cons, x, rest)); - }); - var spersed = A3(elm$core$List$foldr, step, _List_Nil, tl); - return A2(elm$core$List$cons, hd, spersed); - } - }); -var elm$browser$Debugger$Overlay$viewMention = F2( - function (tags, verbed) { - var _n0 = A2( - elm$core$List$map, - elm$browser$Debugger$Overlay$viewCode, - elm$core$List$reverse(tags)); - if (!_n0.b) { - return elm$html$Html$text(''); - } else { - if (!_n0.b.b) { - var tag = _n0.a; - return A2( - elm$html$Html$li, - _List_Nil, - _List_fromArray( - [ - elm$html$Html$text(verbed), - tag, - elm$html$Html$text('.') - ])); - } else { - if (!_n0.b.b.b) { - var tag2 = _n0.a; - var _n1 = _n0.b; - var tag1 = _n1.a; - return A2( - elm$html$Html$li, - _List_Nil, - _List_fromArray( - [ - elm$html$Html$text(verbed), - tag1, - elm$html$Html$text(' and '), - tag2, - elm$html$Html$text('.') - ])); - } else { - var lastTag = _n0.a; - var otherTags = _n0.b; - return A2( - elm$html$Html$li, - _List_Nil, - A2( - elm$core$List$cons, - elm$html$Html$text(verbed), - _Utils_ap( - A2( - elm$core$List$intersperse, - elm$html$Html$text(', '), - elm$core$List$reverse(otherTags)), - _List_fromArray( - [ - elm$html$Html$text(', and '), - lastTag, - elm$html$Html$text('.') - ])))); - } - } - } - }); -var elm$browser$Debugger$Overlay$viewChange = function (change) { - return A2( - elm$html$Html$li, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'margin', '8px 0') - ]), - function () { - if (change.$ === 'AliasChange') { - var name = change.a; - return _List_fromArray( - [ - A2( - elm$html$Html$span, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'font-size', '1.5em') - ]), - _List_fromArray( - [ - elm$browser$Debugger$Overlay$viewCode(name) - ])) - ]); - } else { - var name = change.a; - var removed = change.b.removed; - var changed = change.b.changed; - var added = change.b.added; - var argsMatch = change.b.argsMatch; - return _List_fromArray( - [ - A2( - elm$html$Html$span, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'font-size', '1.5em') - ]), - _List_fromArray( - [ - elm$browser$Debugger$Overlay$viewCode(name) - ])), - A2( - elm$html$Html$ul, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'list-style-type', 'disc'), - A2(elm$html$Html$Attributes$style, 'padding-left', '2em') - ]), - _List_fromArray( - [ - A2(elm$browser$Debugger$Overlay$viewMention, removed, 'Removed '), - A2(elm$browser$Debugger$Overlay$viewMention, changed, 'Changed '), - A2(elm$browser$Debugger$Overlay$viewMention, added, 'Added ') - ])), - argsMatch ? elm$html$Html$text('') : elm$html$Html$text('This may be due to the fact that the type variable names changed.') - ]); - } - }()); -}; -var elm$browser$Debugger$Overlay$viewReport = F2( - function (isBad, report) { - switch (report.$) { - case 'CorruptHistory': - return _List_fromArray( - [ - elm$html$Html$text('Looks like this history file is corrupt. I cannot understand it.') - ]); - case 'VersionChanged': - var old = report.a; - var _new = report.b; - return _List_fromArray( - [ - elm$html$Html$text('This history was created with Elm ' + (old + (', but you are using Elm ' + (_new + ' right now.')))) - ]); - case 'MessageChanged': - var old = report.a; - var _new = report.b; - return _List_fromArray( - [ - elm$html$Html$text('To import some other history, the overall message type must' + ' be the same. The old history has '), - elm$browser$Debugger$Overlay$viewCode(old), - elm$html$Html$text(' messages, but the new program works with '), - elm$browser$Debugger$Overlay$viewCode(_new), - elm$html$Html$text(' messages.') - ]); - default: - var changes = report.a; - return _List_fromArray( - [ - A2( - elm$html$Html$p, - _List_Nil, - _List_fromArray( - [ - elm$html$Html$text( - isBad ? elm$browser$Debugger$Overlay$explanationBad : elm$browser$Debugger$Overlay$explanationRisky) - ])), - A2( - elm$html$Html$ul, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'list-style-type', 'none'), - A2(elm$html$Html$Attributes$style, 'padding-left', '20px') - ]), - A2(elm$core$List$map, elm$browser$Debugger$Overlay$viewChange, changes)) - ]); - } - }); -var elm$browser$Debugger$Overlay$view = F5( - function (config, isPaused, isOpen, numMsgs, state) { - switch (state.$) { - case 'None': - return isOpen ? elm$html$Html$text('') : (isPaused ? A2( - elm$html$Html$div, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'width', '100%'), - A2(elm$html$Html$Attributes$style, 'height', '100%'), - A2(elm$html$Html$Attributes$style, 'cursor', 'pointer'), - A2(elm$html$Html$Attributes$style, 'text-align', 'center'), - A2(elm$html$Html$Attributes$style, 'pointer-events', 'auto'), - A2(elm$html$Html$Attributes$style, 'background-color', 'rgba(200, 200, 200, 0.7)'), - A2(elm$html$Html$Attributes$style, 'color', 'white'), - A2(elm$html$Html$Attributes$style, 'font-family', '\'Trebuchet MS\', \'Lucida Grande\', \'Bitstream Vera Sans\', \'Helvetica Neue\', sans-serif'), - A2(elm$html$Html$Attributes$style, 'z-index', '2147483646'), - elm$html$Html$Events$onClick(config.resume) - ]), - _List_fromArray( - [ - A2( - elm$html$Html$div, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'position', 'absolute'), - A2(elm$html$Html$Attributes$style, 'top', 'calc(50% - 40px)'), - A2(elm$html$Html$Attributes$style, 'font-size', '80px'), - A2(elm$html$Html$Attributes$style, 'line-height', '80px'), - A2(elm$html$Html$Attributes$style, 'height', '80px'), - A2(elm$html$Html$Attributes$style, 'width', '100%') - ]), - _List_fromArray( - [ - elm$html$Html$text('Click to Resume') - ])), - A2(elm$browser$Debugger$Overlay$viewMiniControls, config, numMsgs) - ])) : A2(elm$browser$Debugger$Overlay$viewMiniControls, config, numMsgs)); - case 'BadMetadata': - var badMetadata_ = state.a; - return A4( - elm$browser$Debugger$Overlay$viewMessage, - config, - 'Cannot use Import or Export', - elm$browser$Debugger$Overlay$viewBadMetadata(badMetadata_), - elm$browser$Debugger$Overlay$Accept('Ok')); - case 'BadImport': - var report = state.a; - return A4( - elm$browser$Debugger$Overlay$viewMessage, - config, - 'Cannot Import History', - A2(elm$browser$Debugger$Overlay$viewReport, true, report), - elm$browser$Debugger$Overlay$Accept('Ok')); - default: - var report = state.a; - return A4( - elm$browser$Debugger$Overlay$viewMessage, - config, - 'Warning', - A2(elm$browser$Debugger$Overlay$viewReport, false, report), - A2(elm$browser$Debugger$Overlay$Choose, 'Cancel', 'Import Anyway')); - } - }); -var elm$browser$Debugger$Main$cornerView = function (model) { - return A5( - elm$browser$Debugger$Overlay$view, - {exportHistory: elm$browser$Debugger$Main$Export, importHistory: elm$browser$Debugger$Main$Import, open: elm$browser$Debugger$Main$Open, resume: elm$browser$Debugger$Main$Resume, wrap: elm$browser$Debugger$Main$OverlayMsg}, - elm$browser$Debugger$Main$isPaused(model.state), - _Debugger_isOpen(model.popout), - elm$browser$Debugger$History$size(model.history), - model.overlay); -}; -var elm$browser$Debugger$Main$getCurrentModel = function (state) { - if (state.$ === 'Running') { - var model = state.a; - return model; - } else { - var model = state.b; - return model; - } -}; -var elm$browser$Debugger$Main$getUserModel = function (model) { - return elm$browser$Debugger$Main$getCurrentModel(model.state); -}; -var elm$browser$Debugger$Expando$Field = F2( - function (a, b) { - return {$: 'Field', a: a, b: b}; - }); -var elm$browser$Debugger$Expando$Index = F3( - function (a, b, c) { - return {$: 'Index', a: a, b: b, c: c}; - }); -var elm$browser$Debugger$Expando$Key = {$: 'Key'}; -var elm$browser$Debugger$Expando$None = {$: 'None'}; -var elm$browser$Debugger$Expando$Toggle = {$: 'Toggle'}; -var elm$browser$Debugger$Expando$Value = {$: 'Value'}; -var elm$browser$Debugger$Expando$blue = A2(elm$html$Html$Attributes$style, 'color', 'rgb(28, 0, 207)'); -var elm$browser$Debugger$Expando$leftPad = function (maybeKey) { - if (maybeKey.$ === 'Nothing') { - return _List_Nil; - } else { - return _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'padding-left', '4ch') - ]); - } -}; -var elm$browser$Debugger$Expando$makeArrow = function (arrow) { - return A2( - elm$html$Html$span, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'color', '#777'), - A2(elm$html$Html$Attributes$style, 'padding-left', '2ch'), - A2(elm$html$Html$Attributes$style, 'width', '2ch'), - A2(elm$html$Html$Attributes$style, 'display', 'inline-block') - ]), - _List_fromArray( - [ - elm$html$Html$text(arrow) - ])); -}; -var elm$browser$Debugger$Expando$purple = A2(elm$html$Html$Attributes$style, 'color', 'rgb(136, 19, 145)'); -var elm$browser$Debugger$Expando$lineStarter = F3( - function (maybeKey, maybeIsClosed, description) { - var arrow = function () { - if (maybeIsClosed.$ === 'Nothing') { - return elm$browser$Debugger$Expando$makeArrow(''); - } else { - if (maybeIsClosed.a) { - return elm$browser$Debugger$Expando$makeArrow('▸'); - } else { - return elm$browser$Debugger$Expando$makeArrow('▾'); - } - } - }(); - if (maybeKey.$ === 'Nothing') { - return A2(elm$core$List$cons, arrow, description); - } else { - var key = maybeKey.a; - return A2( - elm$core$List$cons, - arrow, - A2( - elm$core$List$cons, - A2( - elm$html$Html$span, - _List_fromArray( - [elm$browser$Debugger$Expando$purple]), - _List_fromArray( - [ - elm$html$Html$text(key) - ])), - A2( - elm$core$List$cons, - elm$html$Html$text(' = '), - description))); - } - }); -var elm$browser$Debugger$Expando$red = A2(elm$html$Html$Attributes$style, 'color', 'rgb(196, 26, 22)'); -var elm$browser$Debugger$Expando$seqTypeToString = F2( - function (n, seqType) { - switch (seqType.$) { - case 'ListSeq': - return 'List(' + (elm$core$String$fromInt(n) + ')'); - case 'SetSeq': - return 'Set(' + (elm$core$String$fromInt(n) + ')'); - default: - return 'Array(' + (elm$core$String$fromInt(n) + ')'); - } - }); -var elm$core$String$slice = _String_slice; -var elm$core$String$left = F2( - function (n, string) { - return (n < 1) ? '' : A3(elm$core$String$slice, 0, n, string); - }); -var elm$core$String$length = _String_length; -var elm$core$Basics$negate = function (n) { - return -n; -}; -var elm$core$String$right = F2( - function (n, string) { - return (n < 1) ? '' : A3( - elm$core$String$slice, - -n, - elm$core$String$length(string), - string); - }); -var elm$browser$Debugger$Expando$elideMiddle = function (str) { - return (elm$core$String$length(str) <= 18) ? str : (A2(elm$core$String$left, 8, str) + ('...' + A2(elm$core$String$right, 8, str))); -}; -var elm$browser$Debugger$Expando$viewExtraTinyRecord = F3( - function (length, starter, entries) { - if (!entries.b) { - return _Utils_Tuple2( - length + 1, - _List_fromArray( - [ - elm$html$Html$text('}') - ])); - } else { - var field = entries.a; - var rest = entries.b; - var nextLength = (length + elm$core$String$length(field)) + 1; - if (nextLength > 18) { - return _Utils_Tuple2( - length + 2, - _List_fromArray( - [ - elm$html$Html$text('…}') - ])); - } else { - var _n1 = A3(elm$browser$Debugger$Expando$viewExtraTinyRecord, nextLength, ',', rest); - var finalLength = _n1.a; - var otherHtmls = _n1.b; - return _Utils_Tuple2( - finalLength, - A2( - elm$core$List$cons, - elm$html$Html$text(starter), - A2( - elm$core$List$cons, - A2( - elm$html$Html$span, - _List_fromArray( - [elm$browser$Debugger$Expando$purple]), - _List_fromArray( - [ - elm$html$Html$text(field) - ])), - otherHtmls))); - } - } - }); -var elm$browser$Debugger$Expando$viewTinyHelp = function (str) { - return _Utils_Tuple2( - elm$core$String$length(str), - _List_fromArray( - [ - elm$html$Html$text(str) - ])); -}; -var elm$core$Dict$isEmpty = function (dict) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return true; - } else { - return false; - } -}; -var elm$core$Maybe$withDefault = F2( - function (_default, maybe) { - if (maybe.$ === 'Just') { - var value = maybe.a; - return value; - } else { - return _default; - } - }); -var elm$browser$Debugger$Expando$viewExtraTiny = function (value) { - if (value.$ === 'Record') { - var record = value.b; - return A3( - elm$browser$Debugger$Expando$viewExtraTinyRecord, - 0, - '{', - elm$core$Dict$keys(record)); - } else { - return elm$browser$Debugger$Expando$viewTiny(value); - } -}; -var elm$browser$Debugger$Expando$viewTiny = function (value) { - switch (value.$) { - case 'S': - var stringRep = value.a; - var str = elm$browser$Debugger$Expando$elideMiddle(stringRep); - return _Utils_Tuple2( - elm$core$String$length(str), - _List_fromArray( - [ - A2( - elm$html$Html$span, - _List_fromArray( - [elm$browser$Debugger$Expando$red]), - _List_fromArray( - [ - elm$html$Html$text(str) - ])) - ])); - case 'Primitive': - var stringRep = value.a; - return _Utils_Tuple2( - elm$core$String$length(stringRep), - _List_fromArray( - [ - A2( - elm$html$Html$span, - _List_fromArray( - [elm$browser$Debugger$Expando$blue]), - _List_fromArray( - [ - elm$html$Html$text(stringRep) - ])) - ])); - case 'Sequence': - var seqType = value.a; - var valueList = value.c; - return elm$browser$Debugger$Expando$viewTinyHelp( - A2( - elm$browser$Debugger$Expando$seqTypeToString, - elm$core$List$length(valueList), - seqType)); - case 'Dictionary': - var keyValuePairs = value.b; - return elm$browser$Debugger$Expando$viewTinyHelp( - 'Dict(' + (elm$core$String$fromInt( - elm$core$List$length(keyValuePairs)) + ')')); - case 'Record': - var record = value.b; - return elm$browser$Debugger$Expando$viewTinyRecord(record); - default: - if (!value.c.b) { - var maybeName = value.a; - return elm$browser$Debugger$Expando$viewTinyHelp( - A2(elm$core$Maybe$withDefault, 'Unit', maybeName)); - } else { - var maybeName = value.a; - var valueList = value.c; - return elm$browser$Debugger$Expando$viewTinyHelp( - function () { - if (maybeName.$ === 'Nothing') { - return 'Tuple(' + (elm$core$String$fromInt( - elm$core$List$length(valueList)) + ')'); - } else { - var name = maybeName.a; - return name + ' …'; - } - }()); - } - } -}; -var elm$browser$Debugger$Expando$viewTinyRecord = function (record) { - return elm$core$Dict$isEmpty(record) ? _Utils_Tuple2( - 2, - _List_fromArray( - [ - elm$html$Html$text('{}') - ])) : A3( - elm$browser$Debugger$Expando$viewTinyRecordHelp, - 0, - '{ ', - elm$core$Dict$toList(record)); -}; -var elm$browser$Debugger$Expando$viewTinyRecordHelp = F3( - function (length, starter, entries) { - if (!entries.b) { - return _Utils_Tuple2( - length + 2, - _List_fromArray( - [ - elm$html$Html$text(' }') - ])); - } else { - var _n1 = entries.a; - var field = _n1.a; - var value = _n1.b; - var rest = entries.b; - var fieldLen = elm$core$String$length(field); - var _n2 = elm$browser$Debugger$Expando$viewExtraTiny(value); - var valueLen = _n2.a; - var valueHtmls = _n2.b; - var newLength = ((length + fieldLen) + valueLen) + 5; - if (newLength > 60) { - return _Utils_Tuple2( - length + 4, - _List_fromArray( - [ - elm$html$Html$text(', … }') - ])); - } else { - var _n3 = A3(elm$browser$Debugger$Expando$viewTinyRecordHelp, newLength, ', ', rest); - var finalLength = _n3.a; - var otherHtmls = _n3.b; - return _Utils_Tuple2( - finalLength, - A2( - elm$core$List$cons, - elm$html$Html$text(starter), - A2( - elm$core$List$cons, - A2( - elm$html$Html$span, - _List_fromArray( - [elm$browser$Debugger$Expando$purple]), - _List_fromArray( - [ - elm$html$Html$text(field) - ])), - A2( - elm$core$List$cons, - elm$html$Html$text(' = '), - A2( - elm$core$List$cons, - A2(elm$html$Html$span, _List_Nil, valueHtmls), - otherHtmls))))); - } - } - }); -var elm$core$Basics$composeL = F3( - function (g, f, x) { - return g( - f(x)); - }); -var elm$core$Tuple$second = function (_n0) { - var y = _n0.b; - return y; -}; -var elm$browser$Debugger$Expando$view = F2( - function (maybeKey, expando) { - switch (expando.$) { - case 'S': - var stringRep = expando.a; - return A2( - elm$html$Html$div, - elm$browser$Debugger$Expando$leftPad(maybeKey), - A3( - elm$browser$Debugger$Expando$lineStarter, - maybeKey, - elm$core$Maybe$Nothing, - _List_fromArray( - [ - A2( - elm$html$Html$span, - _List_fromArray( - [elm$browser$Debugger$Expando$red]), - _List_fromArray( - [ - elm$html$Html$text(stringRep) - ])) - ]))); - case 'Primitive': - var stringRep = expando.a; - return A2( - elm$html$Html$div, - elm$browser$Debugger$Expando$leftPad(maybeKey), - A3( - elm$browser$Debugger$Expando$lineStarter, - maybeKey, - elm$core$Maybe$Nothing, - _List_fromArray( - [ - A2( - elm$html$Html$span, - _List_fromArray( - [elm$browser$Debugger$Expando$blue]), - _List_fromArray( - [ - elm$html$Html$text(stringRep) - ])) - ]))); - case 'Sequence': - var seqType = expando.a; - var isClosed = expando.b; - var valueList = expando.c; - return A4(elm$browser$Debugger$Expando$viewSequence, maybeKey, seqType, isClosed, valueList); - case 'Dictionary': - var isClosed = expando.a; - var keyValuePairs = expando.b; - return A3(elm$browser$Debugger$Expando$viewDictionary, maybeKey, isClosed, keyValuePairs); - case 'Record': - var isClosed = expando.a; - var valueDict = expando.b; - return A3(elm$browser$Debugger$Expando$viewRecord, maybeKey, isClosed, valueDict); - default: - var maybeName = expando.a; - var isClosed = expando.b; - var valueList = expando.c; - return A4(elm$browser$Debugger$Expando$viewConstructor, maybeKey, maybeName, isClosed, valueList); - } - }); -var elm$browser$Debugger$Expando$viewConstructor = F4( - function (maybeKey, maybeName, isClosed, valueList) { - var tinyArgs = A2( - elm$core$List$map, - A2(elm$core$Basics$composeL, elm$core$Tuple$second, elm$browser$Debugger$Expando$viewExtraTiny), - valueList); - var description = function () { - var _n7 = _Utils_Tuple2(maybeName, tinyArgs); - if (_n7.a.$ === 'Nothing') { - if (!_n7.b.b) { - var _n8 = _n7.a; - return _List_fromArray( - [ - elm$html$Html$text('()') - ]); - } else { - var _n9 = _n7.a; - var _n10 = _n7.b; - var x = _n10.a; - var xs = _n10.b; - return A2( - elm$core$List$cons, - elm$html$Html$text('( '), - A2( - elm$core$List$cons, - A2(elm$html$Html$span, _List_Nil, x), - A3( - elm$core$List$foldr, - F2( - function (args, rest) { - return A2( - elm$core$List$cons, - elm$html$Html$text(', '), - A2( - elm$core$List$cons, - A2(elm$html$Html$span, _List_Nil, args), - rest)); - }), - _List_fromArray( - [ - elm$html$Html$text(' )') - ]), - xs))); - } - } else { - if (!_n7.b.b) { - var name = _n7.a.a; - return _List_fromArray( - [ - elm$html$Html$text(name) - ]); - } else { - var name = _n7.a.a; - var _n11 = _n7.b; - var x = _n11.a; - var xs = _n11.b; - return A2( - elm$core$List$cons, - elm$html$Html$text(name + ' '), - A2( - elm$core$List$cons, - A2(elm$html$Html$span, _List_Nil, x), - A3( - elm$core$List$foldr, - F2( - function (args, rest) { - return A2( - elm$core$List$cons, - elm$html$Html$text(' '), - A2( - elm$core$List$cons, - A2(elm$html$Html$span, _List_Nil, args), - rest)); - }), - _List_Nil, - xs))); - } - } - }(); - var _n4 = function () { - if (!valueList.b) { - return _Utils_Tuple2( - elm$core$Maybe$Nothing, - A2(elm$html$Html$div, _List_Nil, _List_Nil)); - } else { - if (!valueList.b.b) { - var entry = valueList.a; - switch (entry.$) { - case 'S': - return _Utils_Tuple2( - elm$core$Maybe$Nothing, - A2(elm$html$Html$div, _List_Nil, _List_Nil)); - case 'Primitive': - return _Utils_Tuple2( - elm$core$Maybe$Nothing, - A2(elm$html$Html$div, _List_Nil, _List_Nil)); - case 'Sequence': - var subValueList = entry.c; - return _Utils_Tuple2( - elm$core$Maybe$Just(isClosed), - isClosed ? A2(elm$html$Html$div, _List_Nil, _List_Nil) : A2( - elm$html$Html$map, - A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$None, 0), - elm$browser$Debugger$Expando$viewSequenceOpen(subValueList))); - case 'Dictionary': - var keyValuePairs = entry.b; - return _Utils_Tuple2( - elm$core$Maybe$Just(isClosed), - isClosed ? A2(elm$html$Html$div, _List_Nil, _List_Nil) : A2( - elm$html$Html$map, - A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$None, 0), - elm$browser$Debugger$Expando$viewDictionaryOpen(keyValuePairs))); - case 'Record': - var record = entry.b; - return _Utils_Tuple2( - elm$core$Maybe$Just(isClosed), - isClosed ? A2(elm$html$Html$div, _List_Nil, _List_Nil) : A2( - elm$html$Html$map, - A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$None, 0), - elm$browser$Debugger$Expando$viewRecordOpen(record))); - default: - var subValueList = entry.c; - return _Utils_Tuple2( - elm$core$Maybe$Just(isClosed), - isClosed ? A2(elm$html$Html$div, _List_Nil, _List_Nil) : A2( - elm$html$Html$map, - A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$None, 0), - elm$browser$Debugger$Expando$viewConstructorOpen(subValueList))); - } - } else { - return _Utils_Tuple2( - elm$core$Maybe$Just(isClosed), - isClosed ? A2(elm$html$Html$div, _List_Nil, _List_Nil) : elm$browser$Debugger$Expando$viewConstructorOpen(valueList)); - } - } - }(); - var maybeIsClosed = _n4.a; - var openHtml = _n4.b; - return A2( - elm$html$Html$div, - elm$browser$Debugger$Expando$leftPad(maybeKey), - _List_fromArray( - [ - A2( - elm$html$Html$div, - _List_fromArray( - [ - elm$html$Html$Events$onClick(elm$browser$Debugger$Expando$Toggle) - ]), - A3(elm$browser$Debugger$Expando$lineStarter, maybeKey, maybeIsClosed, description)), - openHtml - ])); - }); -var elm$browser$Debugger$Expando$viewConstructorEntry = F2( - function (index, value) { - return A2( - elm$html$Html$map, - A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$None, index), - A2( - elm$browser$Debugger$Expando$view, - elm$core$Maybe$Just( - elm$core$String$fromInt(index)), - value)); - }); -var elm$browser$Debugger$Expando$viewConstructorOpen = function (valueList) { - return A2( - elm$html$Html$div, - _List_Nil, - A2(elm$core$List$indexedMap, elm$browser$Debugger$Expando$viewConstructorEntry, valueList)); -}; -var elm$browser$Debugger$Expando$viewDictionary = F3( - function (maybeKey, isClosed, keyValuePairs) { - var starter = 'Dict(' + (elm$core$String$fromInt( - elm$core$List$length(keyValuePairs)) + ')'); - return A2( - elm$html$Html$div, - elm$browser$Debugger$Expando$leftPad(maybeKey), - _List_fromArray( - [ - A2( - elm$html$Html$div, - _List_fromArray( - [ - elm$html$Html$Events$onClick(elm$browser$Debugger$Expando$Toggle) - ]), - A3( - elm$browser$Debugger$Expando$lineStarter, - maybeKey, - elm$core$Maybe$Just(isClosed), - _List_fromArray( - [ - elm$html$Html$text(starter) - ]))), - isClosed ? elm$html$Html$text('') : elm$browser$Debugger$Expando$viewDictionaryOpen(keyValuePairs) - ])); - }); -var elm$browser$Debugger$Expando$viewDictionaryEntry = F2( - function (index, _n2) { - var key = _n2.a; - var value = _n2.b; - switch (key.$) { - case 'S': - var stringRep = key.a; - return A2( - elm$html$Html$map, - A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$Value, index), - A2( - elm$browser$Debugger$Expando$view, - elm$core$Maybe$Just(stringRep), - value)); - case 'Primitive': - var stringRep = key.a; - return A2( - elm$html$Html$map, - A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$Value, index), - A2( - elm$browser$Debugger$Expando$view, - elm$core$Maybe$Just(stringRep), - value)); - default: - return A2( - elm$html$Html$div, - _List_Nil, - _List_fromArray( - [ - A2( - elm$html$Html$map, - A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$Key, index), - A2( - elm$browser$Debugger$Expando$view, - elm$core$Maybe$Just('key'), - key)), - A2( - elm$html$Html$map, - A2(elm$browser$Debugger$Expando$Index, elm$browser$Debugger$Expando$Value, index), - A2( - elm$browser$Debugger$Expando$view, - elm$core$Maybe$Just('value'), - value)) - ])); - } - }); -var elm$browser$Debugger$Expando$viewDictionaryOpen = function (keyValuePairs) { - return A2( - elm$html$Html$div, - _List_Nil, - A2(elm$core$List$indexedMap, elm$browser$Debugger$Expando$viewDictionaryEntry, keyValuePairs)); -}; -var elm$browser$Debugger$Expando$viewRecord = F3( - function (maybeKey, isClosed, record) { - var _n1 = isClosed ? _Utils_Tuple3( - elm$browser$Debugger$Expando$viewTinyRecord(record).b, - elm$html$Html$text(''), - elm$html$Html$text('')) : _Utils_Tuple3( - _List_fromArray( - [ - elm$html$Html$text('{') - ]), - elm$browser$Debugger$Expando$viewRecordOpen(record), - A2( - elm$html$Html$div, - elm$browser$Debugger$Expando$leftPad( - elm$core$Maybe$Just(_Utils_Tuple0)), - _List_fromArray( - [ - elm$html$Html$text('}') - ]))); - var start = _n1.a; - var middle = _n1.b; - var end = _n1.c; - return A2( - elm$html$Html$div, - elm$browser$Debugger$Expando$leftPad(maybeKey), - _List_fromArray( - [ - A2( - elm$html$Html$div, - _List_fromArray( - [ - elm$html$Html$Events$onClick(elm$browser$Debugger$Expando$Toggle) - ]), - A3( - elm$browser$Debugger$Expando$lineStarter, - maybeKey, - elm$core$Maybe$Just(isClosed), - start)), - middle, - end - ])); - }); -var elm$browser$Debugger$Expando$viewRecordEntry = function (_n0) { - var field = _n0.a; - var value = _n0.b; - return A2( - elm$html$Html$map, - elm$browser$Debugger$Expando$Field(field), - A2( - elm$browser$Debugger$Expando$view, - elm$core$Maybe$Just(field), - value)); -}; -var elm$browser$Debugger$Expando$viewRecordOpen = function (record) { - return A2( - elm$html$Html$div, - _List_Nil, - A2( - elm$core$List$map, - elm$browser$Debugger$Expando$viewRecordEntry, - elm$core$Dict$toList(record))); -}; -var elm$browser$Debugger$Expando$viewSequence = F4( - function (maybeKey, seqType, isClosed, valueList) { - var starter = A2( - elm$browser$Debugger$Expando$seqTypeToString, - elm$core$List$length(valueList), - seqType); - return A2( - elm$html$Html$div, - elm$browser$Debugger$Expando$leftPad(maybeKey), - _List_fromArray( - [ - A2( - elm$html$Html$div, - _List_fromArray( - [ - elm$html$Html$Events$onClick(elm$browser$Debugger$Expando$Toggle) - ]), - A3( - elm$browser$Debugger$Expando$lineStarter, - maybeKey, - elm$core$Maybe$Just(isClosed), - _List_fromArray( - [ - elm$html$Html$text(starter) - ]))), - isClosed ? elm$html$Html$text('') : elm$browser$Debugger$Expando$viewSequenceOpen(valueList) - ])); - }); -var elm$browser$Debugger$Expando$viewSequenceOpen = function (values) { - return A2( - elm$html$Html$div, - _List_Nil, - A2(elm$core$List$indexedMap, elm$browser$Debugger$Expando$viewConstructorEntry, values)); -}; -var elm$browser$Debugger$Main$ExpandoMsg = function (a) { - return {$: 'ExpandoMsg', a: a}; -}; -var elm$html$Html$Attributes$class = elm$html$Html$Attributes$stringProperty('className'); -var elm$html$Html$Attributes$title = elm$html$Html$Attributes$stringProperty('title'); -var elm$browser$Debugger$History$viewMessage = F3( - function (currentIndex, index, msg) { - var messageName = _Debugger_messageToString(msg); - var className = _Utils_eq(currentIndex, index) ? 'elm-debugger-entry elm-debugger-entry-selected' : 'elm-debugger-entry'; - return A2( - elm$html$Html$div, - _List_fromArray( - [ - elm$html$Html$Attributes$class(className), - elm$html$Html$Events$onClick(index) - ]), - _List_fromArray( - [ - A2( - elm$html$Html$span, - _List_fromArray( - [ - elm$html$Html$Attributes$title(messageName), - elm$html$Html$Attributes$class('elm-debugger-entry-content') - ]), - _List_fromArray( - [ - elm$html$Html$text(messageName) - ])), - A2( - elm$html$Html$span, - _List_fromArray( - [ - elm$html$Html$Attributes$class('elm-debugger-entry-index') - ]), - _List_fromArray( - [ - elm$html$Html$text( - elm$core$String$fromInt(index)) - ])) - ])); - }); -var elm$virtual_dom$VirtualDom$lazy3 = _VirtualDom_lazy3; -var elm$html$Html$Lazy$lazy3 = elm$virtual_dom$VirtualDom$lazy3; -var elm$browser$Debugger$History$consMsg = F3( - function (currentIndex, msg, _n0) { - var index = _n0.a; - var rest = _n0.b; - return _Utils_Tuple2( - index - 1, - A2( - elm$core$List$cons, - A4(elm$html$Html$Lazy$lazy3, elm$browser$Debugger$History$viewMessage, currentIndex, index, msg), - rest)); - }); -var elm$virtual_dom$VirtualDom$node = function (tag) { - return _VirtualDom_node( - _VirtualDom_noScript(tag)); -}; -var elm$html$Html$node = elm$virtual_dom$VirtualDom$node; -var elm$browser$Debugger$History$styles = A3( - elm$html$Html$node, - 'style', - _List_Nil, - _List_fromArray( - [ - elm$html$Html$text('\n\n.elm-debugger-entry {\n cursor: pointer;\n width: 100%;\n}\n\n.elm-debugger-entry:hover {\n background-color: rgb(41, 41, 41);\n}\n\n.elm-debugger-entry-selected, .elm-debugger-entry-selected:hover {\n background-color: rgb(10, 10, 10);\n}\n\n.elm-debugger-entry-content {\n width: calc(100% - 7ch);\n padding-top: 4px;\n padding-bottom: 4px;\n padding-left: 1ch;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n display: inline-block;\n}\n\n.elm-debugger-entry-index {\n color: #666;\n width: 5ch;\n padding-top: 4px;\n padding-bottom: 4px;\n padding-right: 1ch;\n text-align: right;\n display: block;\n float: right;\n}\n\n') - ])); -var elm$browser$Debugger$History$maxSnapshotSize = 64; -var elm$core$Elm$JsArray$foldl = _JsArray_foldl; -var elm$core$Array$foldl = F3( - function (func, baseCase, _n0) { - var tree = _n0.c; - var tail = _n0.d; - var helper = F2( - function (node, acc) { - if (node.$ === 'SubTree') { - var subTree = node.a; - return A3(elm$core$Elm$JsArray$foldl, helper, acc, subTree); - } else { - var values = node.a; - return A3(elm$core$Elm$JsArray$foldl, func, acc, values); - } - }); - return A3( - elm$core$Elm$JsArray$foldl, - func, - A3(elm$core$Elm$JsArray$foldl, helper, baseCase, tree), - tail); - }); -var elm$browser$Debugger$History$viewSnapshot = F3( - function (currentIndex, index, _n0) { - var messages = _n0.messages; - return A2( - elm$html$Html$div, - _List_Nil, - A3( - elm$core$Array$foldl, - elm$browser$Debugger$History$consMsg(currentIndex), - _Utils_Tuple2(index - 1, _List_Nil), - messages).b); - }); -var elm$browser$Debugger$History$consSnapshot = F3( - function (currentIndex, snapshot, _n0) { - var index = _n0.a; - var rest = _n0.b; - var nextIndex = index - elm$browser$Debugger$History$maxSnapshotSize; - var currentIndexHelp = ((_Utils_cmp(nextIndex, currentIndex) < 1) && (_Utils_cmp(currentIndex, index) < 0)) ? currentIndex : (-1); - return _Utils_Tuple2( - index - elm$browser$Debugger$History$maxSnapshotSize, - A2( - elm$core$List$cons, - A4(elm$html$Html$Lazy$lazy3, elm$browser$Debugger$History$viewSnapshot, currentIndexHelp, index, snapshot), - rest)); - }); -var elm$core$Array$length = function (_n0) { - var len = _n0.a; - return len; -}; -var elm$browser$Debugger$History$viewSnapshots = F2( - function (currentIndex, snapshots) { - var highIndex = elm$browser$Debugger$History$maxSnapshotSize * elm$core$Array$length(snapshots); - return A2( - elm$html$Html$div, - _List_Nil, - A3( - elm$core$Array$foldr, - elm$browser$Debugger$History$consSnapshot(currentIndex), - _Utils_Tuple2(highIndex, _List_Nil), - snapshots).b); - }); -var elm$virtual_dom$VirtualDom$lazy2 = _VirtualDom_lazy2; -var elm$html$Html$Lazy$lazy2 = elm$virtual_dom$VirtualDom$lazy2; -var elm$browser$Debugger$History$view = F2( - function (maybeIndex, _n0) { - var snapshots = _n0.snapshots; - var recent = _n0.recent; - var numMessages = _n0.numMessages; - var _n1 = function () { - if (maybeIndex.$ === 'Nothing') { - return _Utils_Tuple2(-1, 'calc(100% - 24px)'); - } else { - var i = maybeIndex.a; - return _Utils_Tuple2(i, 'calc(100% - 54px)'); - } - }(); - var index = _n1.a; - var height = _n1.b; - var newStuff = A3( - elm$core$List$foldl, - elm$browser$Debugger$History$consMsg(index), - _Utils_Tuple2(numMessages - 1, _List_Nil), - recent.messages).b; - var oldStuff = A3(elm$html$Html$Lazy$lazy2, elm$browser$Debugger$History$viewSnapshots, index, snapshots); - return A2( - elm$html$Html$div, - _List_fromArray( - [ - elm$html$Html$Attributes$id('elm-debugger-sidebar'), - A2(elm$html$Html$Attributes$style, 'width', '100%'), - A2(elm$html$Html$Attributes$style, 'overflow-y', 'auto'), - A2(elm$html$Html$Attributes$style, 'height', height) - ]), - A2( - elm$core$List$cons, - elm$browser$Debugger$History$styles, - A2(elm$core$List$cons, oldStuff, newStuff))); - }); -var elm$browser$Debugger$Main$Jump = function (a) { - return {$: 'Jump', a: a}; -}; -var elm$browser$Debugger$Main$resumeStyle = '\n\n.elm-debugger-resume {\n width: 100%;\n height: 30px;\n line-height: 30px;\n cursor: pointer;\n}\n\n.elm-debugger-resume:hover {\n background-color: rgb(41, 41, 41);\n}\n\n'; -var elm$browser$Debugger$Main$viewResumeButton = function (maybeIndex) { - if (maybeIndex.$ === 'Nothing') { - return elm$html$Html$text(''); - } else { - return A2( - elm$html$Html$div, - _List_fromArray( - [ - elm$html$Html$Events$onClick(elm$browser$Debugger$Main$Resume), - elm$html$Html$Attributes$class('elm-debugger-resume') - ]), - _List_fromArray( - [ - elm$html$Html$text('Resume'), - A3( - elm$html$Html$node, - 'style', - _List_Nil, - _List_fromArray( - [ - elm$html$Html$text(elm$browser$Debugger$Main$resumeStyle) - ])) - ])); - } -}; -var elm$browser$Debugger$Main$viewTextButton = F2( - function (msg, label) { - return A2( - elm$html$Html$span, - _List_fromArray( - [ - elm$html$Html$Events$onClick(msg), - A2(elm$html$Html$Attributes$style, 'cursor', 'pointer') - ]), - _List_fromArray( - [ - elm$html$Html$text(label) - ])); - }); -var elm$browser$Debugger$Main$playButton = function (maybeIndex) { - return A2( - elm$html$Html$div, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'width', '100%'), - A2(elm$html$Html$Attributes$style, 'text-align', 'center'), - A2(elm$html$Html$Attributes$style, 'background-color', 'rgb(50, 50, 50)') - ]), - _List_fromArray( - [ - elm$browser$Debugger$Main$viewResumeButton(maybeIndex), - A2( - elm$html$Html$div, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'width', '100%'), - A2(elm$html$Html$Attributes$style, 'height', '24px'), - A2(elm$html$Html$Attributes$style, 'line-height', '24px'), - A2(elm$html$Html$Attributes$style, 'font-size', '12px') - ]), - _List_fromArray( - [ - A2(elm$browser$Debugger$Main$viewTextButton, elm$browser$Debugger$Main$Import, 'Import'), - elm$html$Html$text(' / '), - A2(elm$browser$Debugger$Main$viewTextButton, elm$browser$Debugger$Main$Export, 'Export') - ])) - ])); -}; -var elm$browser$Debugger$Main$viewSidebar = F2( - function (state, history) { - var maybeIndex = function () { - if (state.$ === 'Running') { - return elm$core$Maybe$Nothing; - } else { - var index = state.a; - return elm$core$Maybe$Just(index); - } - }(); - return A2( - elm$html$Html$div, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'display', 'block'), - A2(elm$html$Html$Attributes$style, 'float', 'left'), - A2(elm$html$Html$Attributes$style, 'width', '30ch'), - A2(elm$html$Html$Attributes$style, 'height', '100%'), - A2(elm$html$Html$Attributes$style, 'color', 'white'), - A2(elm$html$Html$Attributes$style, 'background-color', 'rgb(61, 61, 61)') - ]), - _List_fromArray( - [ - A2( - elm$html$Html$map, - elm$browser$Debugger$Main$Jump, - A2(elm$browser$Debugger$History$view, maybeIndex, history)), - elm$browser$Debugger$Main$playButton(maybeIndex) - ])); - }); -var elm$browser$Debugger$Main$popoutView = function (_n0) { - var history = _n0.history; - var state = _n0.state; - var expando = _n0.expando; - return A3( - elm$html$Html$node, - 'body', - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'margin', '0'), - A2(elm$html$Html$Attributes$style, 'padding', '0'), - A2(elm$html$Html$Attributes$style, 'width', '100%'), - A2(elm$html$Html$Attributes$style, 'height', '100%'), - A2(elm$html$Html$Attributes$style, 'font-family', 'monospace'), - A2(elm$html$Html$Attributes$style, 'overflow', 'auto') - ]), - _List_fromArray( - [ - A2(elm$browser$Debugger$Main$viewSidebar, state, history), - A2( - elm$html$Html$map, - elm$browser$Debugger$Main$ExpandoMsg, - A2( - elm$html$Html$div, - _List_fromArray( - [ - A2(elm$html$Html$Attributes$style, 'display', 'block'), - A2(elm$html$Html$Attributes$style, 'float', 'left'), - A2(elm$html$Html$Attributes$style, 'height', '100%'), - A2(elm$html$Html$Attributes$style, 'width', 'calc(100% - 30ch)'), - A2(elm$html$Html$Attributes$style, 'margin', '0'), - A2(elm$html$Html$Attributes$style, 'overflow', 'auto'), - A2(elm$html$Html$Attributes$style, 'cursor', 'default') - ]), - _List_fromArray( - [ - A2(elm$browser$Debugger$Expando$view, elm$core$Maybe$Nothing, expando) - ]))) - ])); -}; -var elm$browser$Debugger$Overlay$BlockAll = {$: 'BlockAll'}; -var elm$browser$Debugger$Overlay$BlockMost = {$: 'BlockMost'}; -var elm$browser$Debugger$Overlay$BlockNone = {$: 'BlockNone'}; -var elm$browser$Debugger$Overlay$toBlockerType = F2( - function (isPaused, state) { - switch (state.$) { - case 'None': - return isPaused ? elm$browser$Debugger$Overlay$BlockAll : elm$browser$Debugger$Overlay$BlockNone; - case 'BadMetadata': - return elm$browser$Debugger$Overlay$BlockMost; - case 'BadImport': - return elm$browser$Debugger$Overlay$BlockMost; - default: - return elm$browser$Debugger$Overlay$BlockMost; - } - }); -var elm$browser$Debugger$Main$toBlockerType = function (model) { - return A2( - elm$browser$Debugger$Overlay$toBlockerType, - elm$browser$Debugger$Main$isPaused(model.state), - model.overlay); -}; -var elm$core$Dict$RBEmpty_elm_builtin = {$: 'RBEmpty_elm_builtin'}; -var elm$core$Dict$RBNode_elm_builtin = F5( - function (a, b, c, d, e) { - return {$: 'RBNode_elm_builtin', a: a, b: b, c: c, d: d, e: e}; - }); -var elm$core$Dict$map = F2( - function (func, dict) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return elm$core$Dict$RBEmpty_elm_builtin; - } else { - var color = dict.a; - var key = dict.b; - var value = dict.c; - var left = dict.d; - var right = dict.e; - return A5( - elm$core$Dict$RBNode_elm_builtin, - color, - key, - A2(func, key, value), - A2(elm$core$Dict$map, func, left), - A2(elm$core$Dict$map, func, right)); - } - }); -var elm$core$Dict$sizeHelp = F2( - function (n, dict) { - sizeHelp: - while (true) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return n; - } else { - var left = dict.d; - var right = dict.e; - var $temp$n = A2(elm$core$Dict$sizeHelp, n + 1, right), - $temp$dict = left; - n = $temp$n; - dict = $temp$dict; - continue sizeHelp; - } - } - }); -var elm$core$Dict$size = function (dict) { - return A2(elm$core$Dict$sizeHelp, 0, dict); -}; -var elm$browser$Debugger$Expando$initHelp = F2( - function (isOuter, expando) { - switch (expando.$) { - case 'S': - return expando; - case 'Primitive': - return expando; - case 'Sequence': - var seqType = expando.a; - var isClosed = expando.b; - var items = expando.c; - return isOuter ? A3( - elm$browser$Debugger$Expando$Sequence, - seqType, - false, - A2( - elm$core$List$map, - elm$browser$Debugger$Expando$initHelp(false), - items)) : ((elm$core$List$length(items) <= 8) ? A3(elm$browser$Debugger$Expando$Sequence, seqType, false, items) : expando); - case 'Dictionary': - var isClosed = expando.a; - var keyValuePairs = expando.b; - return isOuter ? A2( - elm$browser$Debugger$Expando$Dictionary, - false, - A2( - elm$core$List$map, - function (_n1) { - var k = _n1.a; - var v = _n1.b; - return _Utils_Tuple2( - k, - A2(elm$browser$Debugger$Expando$initHelp, false, v)); - }, - keyValuePairs)) : ((elm$core$List$length(keyValuePairs) <= 8) ? A2(elm$browser$Debugger$Expando$Dictionary, false, keyValuePairs) : expando); - case 'Record': - var isClosed = expando.a; - var entries = expando.b; - return isOuter ? A2( - elm$browser$Debugger$Expando$Record, - false, - A2( - elm$core$Dict$map, - F2( - function (_n2, v) { - return A2(elm$browser$Debugger$Expando$initHelp, false, v); - }), - entries)) : ((elm$core$Dict$size(entries) <= 4) ? A2(elm$browser$Debugger$Expando$Record, false, entries) : expando); - default: - var maybeName = expando.a; - var isClosed = expando.b; - var args = expando.c; - return isOuter ? A3( - elm$browser$Debugger$Expando$Constructor, - maybeName, - false, - A2( - elm$core$List$map, - elm$browser$Debugger$Expando$initHelp(false), - args)) : ((elm$core$List$length(args) <= 4) ? A3(elm$browser$Debugger$Expando$Constructor, maybeName, false, args) : expando); - } - }); -var elm$browser$Debugger$Expando$init = function (value) { - return A2( - elm$browser$Debugger$Expando$initHelp, - true, - _Debugger_init(value)); -}; -var elm$browser$Debugger$History$History = F3( - function (snapshots, recent, numMessages) { - return {numMessages: numMessages, recent: recent, snapshots: snapshots}; - }); -var elm$browser$Debugger$History$RecentHistory = F3( - function (model, messages, numMessages) { - return {messages: messages, model: model, numMessages: numMessages}; - }); -var elm$browser$Debugger$History$empty = function (model) { - return A3( - elm$browser$Debugger$History$History, - elm$core$Array$empty, - A3(elm$browser$Debugger$History$RecentHistory, model, _List_Nil, 0), - 0); -}; -var elm$browser$Debugger$Main$Running = function (a) { - return {$: 'Running', a: a}; -}; -var elm$browser$Debugger$Metadata$Error = F2( - function (message, problems) { - return {message: message, problems: problems}; - }); -var elm$browser$Debugger$Metadata$Metadata = F2( - function (versions, types) { - return {types: types, versions: versions}; - }); -var elm$browser$Debugger$Metadata$Types = F3( - function (message, aliases, unions) { - return {aliases: aliases, message: message, unions: unions}; - }); -var elm$browser$Debugger$Metadata$Alias = F2( - function (args, tipe) { - return {args: args, tipe: tipe}; - }); -var elm$browser$Debugger$Metadata$decodeAlias = A3( - elm$json$Json$Decode$map2, - elm$browser$Debugger$Metadata$Alias, - A2( - elm$json$Json$Decode$field, - 'args', - elm$json$Json$Decode$list(elm$json$Json$Decode$string)), - A2(elm$json$Json$Decode$field, 'type', elm$json$Json$Decode$string)); -var elm$browser$Debugger$Metadata$Union = F2( - function (args, tags) { - return {args: args, tags: tags}; - }); -var elm$core$Dict$empty = elm$core$Dict$RBEmpty_elm_builtin; -var elm$core$Dict$Black = {$: 'Black'}; -var elm$core$Basics$compare = _Utils_compare; -var elm$core$Dict$Red = {$: 'Red'}; -var elm$core$Dict$balance = F5( - function (color, key, value, left, right) { - if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Red')) { - var _n1 = right.a; - var rK = right.b; - var rV = right.c; - var rLeft = right.d; - var rRight = right.e; - if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) { - var _n3 = left.a; - var lK = left.b; - var lV = left.c; - var lLeft = left.d; - var lRight = left.e; - return A5( - elm$core$Dict$RBNode_elm_builtin, - elm$core$Dict$Red, - key, - value, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, lK, lV, lLeft, lRight), - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, rK, rV, rLeft, rRight)); - } else { - return A5( - elm$core$Dict$RBNode_elm_builtin, - color, - rK, - rV, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, key, value, left, rLeft), - rRight); - } - } else { - if ((((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) && (left.d.$ === 'RBNode_elm_builtin')) && (left.d.a.$ === 'Red')) { - var _n5 = left.a; - var lK = left.b; - var lV = left.c; - var _n6 = left.d; - var _n7 = _n6.a; - var llK = _n6.b; - var llV = _n6.c; - var llLeft = _n6.d; - var llRight = _n6.e; - var lRight = left.e; - return A5( - elm$core$Dict$RBNode_elm_builtin, - elm$core$Dict$Red, - lK, - lV, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, llK, llV, llLeft, llRight), - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, key, value, lRight, right)); - } else { - return A5(elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right); - } - } - }); -var elm$core$Dict$insertHelp = F3( - function (key, value, dict) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, key, value, elm$core$Dict$RBEmpty_elm_builtin, elm$core$Dict$RBEmpty_elm_builtin); - } else { - var nColor = dict.a; - var nKey = dict.b; - var nValue = dict.c; - var nLeft = dict.d; - var nRight = dict.e; - var _n1 = A2(elm$core$Basics$compare, key, nKey); - switch (_n1.$) { - case 'LT': - return A5( - elm$core$Dict$balance, - nColor, - nKey, - nValue, - A3(elm$core$Dict$insertHelp, key, value, nLeft), - nRight); - case 'EQ': - return A5(elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight); - default: - return A5( - elm$core$Dict$balance, - nColor, - nKey, - nValue, - nLeft, - A3(elm$core$Dict$insertHelp, key, value, nRight)); - } - } - }); -var elm$core$Dict$insert = F3( - function (key, value, dict) { - var _n0 = A3(elm$core$Dict$insertHelp, key, value, dict); - if ((_n0.$ === 'RBNode_elm_builtin') && (_n0.a.$ === 'Red')) { - var _n1 = _n0.a; - var k = _n0.b; - var v = _n0.c; - var l = _n0.d; - var r = _n0.e; - return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, k, v, l, r); - } else { - var x = _n0; - return x; - } - }); -var elm$core$Dict$fromList = function (assocs) { - return A3( - elm$core$List$foldl, - F2( - function (_n0, dict) { - var key = _n0.a; - var value = _n0.b; - return A3(elm$core$Dict$insert, key, value, dict); - }), - elm$core$Dict$empty, - assocs); -}; -var elm$json$Json$Decode$keyValuePairs = _Json_decodeKeyValuePairs; -var elm$json$Json$Decode$dict = function (decoder) { - return A2( - elm$json$Json$Decode$map, - elm$core$Dict$fromList, - elm$json$Json$Decode$keyValuePairs(decoder)); -}; -var elm$browser$Debugger$Metadata$decodeUnion = A3( - elm$json$Json$Decode$map2, - elm$browser$Debugger$Metadata$Union, - A2( - elm$json$Json$Decode$field, - 'args', - elm$json$Json$Decode$list(elm$json$Json$Decode$string)), - A2( - elm$json$Json$Decode$field, - 'tags', - elm$json$Json$Decode$dict( - elm$json$Json$Decode$list(elm$json$Json$Decode$string)))); -var elm$json$Json$Decode$map3 = _Json_map3; -var elm$browser$Debugger$Metadata$decodeTypes = A4( - elm$json$Json$Decode$map3, - elm$browser$Debugger$Metadata$Types, - A2(elm$json$Json$Decode$field, 'message', elm$json$Json$Decode$string), - A2( - elm$json$Json$Decode$field, - 'aliases', - elm$json$Json$Decode$dict(elm$browser$Debugger$Metadata$decodeAlias)), - A2( - elm$json$Json$Decode$field, - 'unions', - elm$json$Json$Decode$dict(elm$browser$Debugger$Metadata$decodeUnion))); -var elm$browser$Debugger$Metadata$Versions = function (elm) { - return {elm: elm}; -}; -var elm$browser$Debugger$Metadata$decodeVersions = A2( - elm$json$Json$Decode$map, - elm$browser$Debugger$Metadata$Versions, - A2(elm$json$Json$Decode$field, 'elm', elm$json$Json$Decode$string)); -var elm$browser$Debugger$Metadata$decoder = A3( - elm$json$Json$Decode$map2, - elm$browser$Debugger$Metadata$Metadata, - A2(elm$json$Json$Decode$field, 'versions', elm$browser$Debugger$Metadata$decodeVersions), - A2(elm$json$Json$Decode$field, 'types', elm$browser$Debugger$Metadata$decodeTypes)); -var elm$browser$Debugger$Metadata$ProblemType = F2( - function (name, problems) { - return {name: name, problems: problems}; - }); -var elm$core$String$contains = _String_contains; -var elm$browser$Debugger$Metadata$hasProblem = F2( - function (tipe, _n0) { - var problem = _n0.a; - var token = _n0.b; - return A2(elm$core$String$contains, token, tipe) ? elm$core$Maybe$Just(problem) : elm$core$Maybe$Nothing; - }); -var elm$browser$Debugger$Metadata$Decoder = {$: 'Decoder'}; -var elm$browser$Debugger$Metadata$Function = {$: 'Function'}; -var elm$browser$Debugger$Metadata$Process = {$: 'Process'}; -var elm$browser$Debugger$Metadata$Program = {$: 'Program'}; -var elm$browser$Debugger$Metadata$Request = {$: 'Request'}; -var elm$browser$Debugger$Metadata$Socket = {$: 'Socket'}; -var elm$browser$Debugger$Metadata$Task = {$: 'Task'}; -var elm$browser$Debugger$Metadata$VirtualDom = {$: 'VirtualDom'}; -var elm$browser$Debugger$Metadata$problemTable = _List_fromArray( - [ - _Utils_Tuple2(elm$browser$Debugger$Metadata$Function, '->'), - _Utils_Tuple2(elm$browser$Debugger$Metadata$Decoder, 'Json.Decode.Decoder'), - _Utils_Tuple2(elm$browser$Debugger$Metadata$Task, 'Task.Task'), - _Utils_Tuple2(elm$browser$Debugger$Metadata$Process, 'Process.Id'), - _Utils_Tuple2(elm$browser$Debugger$Metadata$Socket, 'WebSocket.LowLevel.WebSocket'), - _Utils_Tuple2(elm$browser$Debugger$Metadata$Request, 'Http.Request'), - _Utils_Tuple2(elm$browser$Debugger$Metadata$Program, 'Platform.Program'), - _Utils_Tuple2(elm$browser$Debugger$Metadata$VirtualDom, 'VirtualDom.Node'), - _Utils_Tuple2(elm$browser$Debugger$Metadata$VirtualDom, 'VirtualDom.Attribute') - ]); -var elm$core$List$maybeCons = F3( - function (f, mx, xs) { - var _n0 = f(mx); - if (_n0.$ === 'Just') { - var x = _n0.a; - return A2(elm$core$List$cons, x, xs); - } else { - return xs; - } - }); -var elm$core$List$filterMap = F2( - function (f, xs) { - return A3( - elm$core$List$foldr, - elm$core$List$maybeCons(f), - _List_Nil, - xs); - }); -var elm$browser$Debugger$Metadata$findProblems = function (tipe) { - return A2( - elm$core$List$filterMap, - elm$browser$Debugger$Metadata$hasProblem(tipe), - elm$browser$Debugger$Metadata$problemTable); -}; -var elm$browser$Debugger$Metadata$collectBadAliases = F3( - function (name, _n0, list) { - var tipe = _n0.tipe; - var _n1 = elm$browser$Debugger$Metadata$findProblems(tipe); - if (!_n1.b) { - return list; - } else { - var problems = _n1; - return A2( - elm$core$List$cons, - A2(elm$browser$Debugger$Metadata$ProblemType, name, problems), - list); - } - }); -var elm$core$Dict$values = function (dict) { - return A3( - elm$core$Dict$foldr, - F3( - function (key, value, valueList) { - return A2(elm$core$List$cons, value, valueList); - }), - _List_Nil, - dict); -}; -var elm$core$List$append = F2( - function (xs, ys) { - if (!ys.b) { - return xs; - } else { - return A3(elm$core$List$foldr, elm$core$List$cons, ys, xs); - } - }); -var elm$core$List$concat = function (lists) { - return A3(elm$core$List$foldr, elm$core$List$append, _List_Nil, lists); -}; -var elm$core$List$concatMap = F2( - function (f, list) { - return elm$core$List$concat( - A2(elm$core$List$map, f, list)); - }); -var elm$browser$Debugger$Metadata$collectBadUnions = F3( - function (name, _n0, list) { - var tags = _n0.tags; - var _n1 = A2( - elm$core$List$concatMap, - elm$browser$Debugger$Metadata$findProblems, - elm$core$List$concat( - elm$core$Dict$values(tags))); - if (!_n1.b) { - return list; - } else { - var problems = _n1; - return A2( - elm$core$List$cons, - A2(elm$browser$Debugger$Metadata$ProblemType, name, problems), - list); - } - }); -var elm$core$Dict$foldl = F3( - function (func, acc, dict) { - foldl: - while (true) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return acc; - } else { - var key = dict.b; - var value = dict.c; - var left = dict.d; - var right = dict.e; - var $temp$func = func, - $temp$acc = A3( - func, - key, - value, - A3(elm$core$Dict$foldl, func, acc, left)), - $temp$dict = right; - func = $temp$func; - acc = $temp$acc; - dict = $temp$dict; - continue foldl; - } - } - }); -var elm$browser$Debugger$Metadata$isPortable = function (_n0) { - var types = _n0.types; - var badAliases = A3(elm$core$Dict$foldl, elm$browser$Debugger$Metadata$collectBadAliases, _List_Nil, types.aliases); - var _n1 = A3(elm$core$Dict$foldl, elm$browser$Debugger$Metadata$collectBadUnions, badAliases, types.unions); - if (!_n1.b) { - return elm$core$Maybe$Nothing; - } else { - var problems = _n1; - return elm$core$Maybe$Just( - A2(elm$browser$Debugger$Metadata$Error, types.message, problems)); - } -}; -var elm$json$Json$Decode$decodeValue = _Json_run; -var elm$browser$Debugger$Metadata$decode = function (value) { - var _n0 = A2(elm$json$Json$Decode$decodeValue, elm$browser$Debugger$Metadata$decoder, value); - if (_n0.$ === 'Err') { - return elm$core$Result$Err( - A2(elm$browser$Debugger$Metadata$Error, 'The compiler is generating bad metadata. This is a compiler bug!', _List_Nil)); - } else { - var metadata = _n0.a; - var _n1 = elm$browser$Debugger$Metadata$isPortable(metadata); - if (_n1.$ === 'Nothing') { - return elm$core$Result$Ok(metadata); - } else { - var error = _n1.a; - return elm$core$Result$Err(error); - } - } -}; -var elm$browser$Debugger$Overlay$None = {$: 'None'}; -var elm$browser$Debugger$Overlay$none = elm$browser$Debugger$Overlay$None; -var elm$browser$Debugger$Main$wrapInit = F4( - function (metadata, popout, init, flags) { - var _n0 = init(flags); - var userModel = _n0.a; - var userCommands = _n0.b; - return _Utils_Tuple2( - { - expando: elm$browser$Debugger$Expando$init(userModel), - history: elm$browser$Debugger$History$empty(userModel), - metadata: elm$browser$Debugger$Metadata$decode(metadata), - overlay: elm$browser$Debugger$Overlay$none, - popout: popout, - state: elm$browser$Debugger$Main$Running(userModel) - }, - A2(elm$core$Platform$Cmd$map, elm$browser$Debugger$Main$UserMsg, userCommands)); - }); -var elm$browser$Debugger$Main$getLatestModel = function (state) { - if (state.$ === 'Running') { - var model = state.a; - return model; - } else { - var model = state.c; - return model; - } -}; -var elm$browser$Debugger$Main$wrapSubs = F2( - function (subscriptions, model) { - return A2( - elm$core$Platform$Sub$map, - elm$browser$Debugger$Main$UserMsg, - subscriptions( - elm$browser$Debugger$Main$getLatestModel(model.state))); - }); -var elm$core$Dict$get = F2( - function (targetKey, dict) { - get: - while (true) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return elm$core$Maybe$Nothing; - } else { - var key = dict.b; - var value = dict.c; - var left = dict.d; - var right = dict.e; - var _n1 = A2(elm$core$Basics$compare, targetKey, key); - switch (_n1.$) { - case 'LT': - var $temp$targetKey = targetKey, - $temp$dict = left; - targetKey = $temp$targetKey; - dict = $temp$dict; - continue get; - case 'EQ': - return elm$core$Maybe$Just(value); - default: - var $temp$targetKey = targetKey, - $temp$dict = right; - targetKey = $temp$targetKey; - dict = $temp$dict; - continue get; - } - } - } - }); -var elm$browser$Debugger$Expando$mergeDictHelp = F3( - function (oldDict, key, value) { - var _n12 = A2(elm$core$Dict$get, key, oldDict); - if (_n12.$ === 'Nothing') { - return value; - } else { - var oldValue = _n12.a; - return A2(elm$browser$Debugger$Expando$mergeHelp, oldValue, value); - } - }); -var elm$browser$Debugger$Expando$mergeHelp = F2( - function (old, _new) { - var _n3 = _Utils_Tuple2(old, _new); - _n3$6: - while (true) { - switch (_n3.b.$) { - case 'S': - return _new; - case 'Primitive': - return _new; - case 'Sequence': - if (_n3.a.$ === 'Sequence') { - var _n4 = _n3.a; - var isClosed = _n4.b; - var oldValues = _n4.c; - var _n5 = _n3.b; - var seqType = _n5.a; - var newValues = _n5.c; - return A3( - elm$browser$Debugger$Expando$Sequence, - seqType, - isClosed, - A2(elm$browser$Debugger$Expando$mergeListHelp, oldValues, newValues)); - } else { - break _n3$6; - } - case 'Dictionary': - if (_n3.a.$ === 'Dictionary') { - var _n6 = _n3.a; - var isClosed = _n6.a; - var _n7 = _n3.b; - var keyValuePairs = _n7.b; - return A2(elm$browser$Debugger$Expando$Dictionary, isClosed, keyValuePairs); - } else { - break _n3$6; - } - case 'Record': - if (_n3.a.$ === 'Record') { - var _n8 = _n3.a; - var isClosed = _n8.a; - var oldDict = _n8.b; - var _n9 = _n3.b; - var newDict = _n9.b; - return A2( - elm$browser$Debugger$Expando$Record, - isClosed, - A2( - elm$core$Dict$map, - elm$browser$Debugger$Expando$mergeDictHelp(oldDict), - newDict)); - } else { - break _n3$6; - } - default: - if (_n3.a.$ === 'Constructor') { - var _n10 = _n3.a; - var isClosed = _n10.b; - var oldValues = _n10.c; - var _n11 = _n3.b; - var maybeName = _n11.a; - var newValues = _n11.c; - return A3( - elm$browser$Debugger$Expando$Constructor, - maybeName, - isClosed, - A2(elm$browser$Debugger$Expando$mergeListHelp, oldValues, newValues)); - } else { - break _n3$6; - } - } - } - return _new; - }); -var elm$browser$Debugger$Expando$mergeListHelp = F2( - function (olds, news) { - var _n0 = _Utils_Tuple2(olds, news); - if (!_n0.a.b) { - return news; - } else { - if (!_n0.b.b) { - return news; - } else { - var _n1 = _n0.a; - var x = _n1.a; - var xs = _n1.b; - var _n2 = _n0.b; - var y = _n2.a; - var ys = _n2.b; - return A2( - elm$core$List$cons, - A2(elm$browser$Debugger$Expando$mergeHelp, x, y), - A2(elm$browser$Debugger$Expando$mergeListHelp, xs, ys)); - } - } - }); -var elm$browser$Debugger$Expando$merge = F2( - function (value, expando) { - return A2( - elm$browser$Debugger$Expando$mergeHelp, - expando, - _Debugger_init(value)); - }); -var elm$browser$Debugger$Expando$updateIndex = F3( - function (n, func, list) { - if (!list.b) { - return _List_Nil; - } else { - var x = list.a; - var xs = list.b; - return (n <= 0) ? A2( - elm$core$List$cons, - func(x), - xs) : A2( - elm$core$List$cons, - x, - A3(elm$browser$Debugger$Expando$updateIndex, n - 1, func, xs)); - } - }); -var elm$core$Basics$not = _Basics_not; -var elm$core$Dict$getMin = function (dict) { - getMin: - while (true) { - if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) { - var left = dict.d; - var $temp$dict = left; - dict = $temp$dict; - continue getMin; - } else { - return dict; - } - } -}; -var elm$core$Dict$moveRedLeft = function (dict) { - if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) { - if ((dict.e.d.$ === 'RBNode_elm_builtin') && (dict.e.d.a.$ === 'Red')) { - var clr = dict.a; - var k = dict.b; - var v = dict.c; - var _n1 = dict.d; - var lClr = _n1.a; - var lK = _n1.b; - var lV = _n1.c; - var lLeft = _n1.d; - var lRight = _n1.e; - var _n2 = dict.e; - var rClr = _n2.a; - var rK = _n2.b; - var rV = _n2.c; - var rLeft = _n2.d; - var _n3 = rLeft.a; - var rlK = rLeft.b; - var rlV = rLeft.c; - var rlL = rLeft.d; - var rlR = rLeft.e; - var rRight = _n2.e; - return A5( - elm$core$Dict$RBNode_elm_builtin, - elm$core$Dict$Red, - rlK, - rlV, - A5( - elm$core$Dict$RBNode_elm_builtin, - elm$core$Dict$Black, - k, - v, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, lK, lV, lLeft, lRight), - rlL), - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, rK, rV, rlR, rRight)); - } else { - var clr = dict.a; - var k = dict.b; - var v = dict.c; - var _n4 = dict.d; - var lClr = _n4.a; - var lK = _n4.b; - var lV = _n4.c; - var lLeft = _n4.d; - var lRight = _n4.e; - var _n5 = dict.e; - var rClr = _n5.a; - var rK = _n5.b; - var rV = _n5.c; - var rLeft = _n5.d; - var rRight = _n5.e; - if (clr.$ === 'Black') { - return A5( - elm$core$Dict$RBNode_elm_builtin, - elm$core$Dict$Black, - k, - v, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, lK, lV, lLeft, lRight), - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, rK, rV, rLeft, rRight)); - } else { - return A5( - elm$core$Dict$RBNode_elm_builtin, - elm$core$Dict$Black, - k, - v, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, lK, lV, lLeft, lRight), - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, rK, rV, rLeft, rRight)); - } - } - } else { - return dict; - } -}; -var elm$core$Dict$moveRedRight = function (dict) { - if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) { - if ((dict.d.d.$ === 'RBNode_elm_builtin') && (dict.d.d.a.$ === 'Red')) { - var clr = dict.a; - var k = dict.b; - var v = dict.c; - var _n1 = dict.d; - var lClr = _n1.a; - var lK = _n1.b; - var lV = _n1.c; - var _n2 = _n1.d; - var _n3 = _n2.a; - var llK = _n2.b; - var llV = _n2.c; - var llLeft = _n2.d; - var llRight = _n2.e; - var lRight = _n1.e; - var _n4 = dict.e; - var rClr = _n4.a; - var rK = _n4.b; - var rV = _n4.c; - var rLeft = _n4.d; - var rRight = _n4.e; - return A5( - elm$core$Dict$RBNode_elm_builtin, - elm$core$Dict$Red, - lK, - lV, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, llK, llV, llLeft, llRight), - A5( - elm$core$Dict$RBNode_elm_builtin, - elm$core$Dict$Black, - k, - v, - lRight, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, rK, rV, rLeft, rRight))); - } else { - var clr = dict.a; - var k = dict.b; - var v = dict.c; - var _n5 = dict.d; - var lClr = _n5.a; - var lK = _n5.b; - var lV = _n5.c; - var lLeft = _n5.d; - var lRight = _n5.e; - var _n6 = dict.e; - var rClr = _n6.a; - var rK = _n6.b; - var rV = _n6.c; - var rLeft = _n6.d; - var rRight = _n6.e; - if (clr.$ === 'Black') { - return A5( - elm$core$Dict$RBNode_elm_builtin, - elm$core$Dict$Black, - k, - v, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, lK, lV, lLeft, lRight), - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, rK, rV, rLeft, rRight)); - } else { - return A5( - elm$core$Dict$RBNode_elm_builtin, - elm$core$Dict$Black, - k, - v, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, lK, lV, lLeft, lRight), - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, rK, rV, rLeft, rRight)); - } - } - } else { - return dict; - } -}; -var elm$core$Dict$removeHelpPrepEQGT = F7( - function (targetKey, dict, color, key, value, left, right) { - if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) { - var _n1 = left.a; - var lK = left.b; - var lV = left.c; - var lLeft = left.d; - var lRight = left.e; - return A5( - elm$core$Dict$RBNode_elm_builtin, - color, - lK, - lV, - lLeft, - A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, key, value, lRight, right)); - } else { - _n2$2: - while (true) { - if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Black')) { - if (right.d.$ === 'RBNode_elm_builtin') { - if (right.d.a.$ === 'Black') { - var _n3 = right.a; - var _n4 = right.d; - var _n5 = _n4.a; - return elm$core$Dict$moveRedRight(dict); - } else { - break _n2$2; - } - } else { - var _n6 = right.a; - var _n7 = right.d; - return elm$core$Dict$moveRedRight(dict); - } - } else { - break _n2$2; - } - } - return dict; - } - }); -var elm$core$Dict$removeMin = function (dict) { - if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) { - var color = dict.a; - var key = dict.b; - var value = dict.c; - var left = dict.d; - var lColor = left.a; - var lLeft = left.d; - var right = dict.e; - if (lColor.$ === 'Black') { - if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) { - var _n3 = lLeft.a; - return A5( - elm$core$Dict$RBNode_elm_builtin, - color, - key, - value, - elm$core$Dict$removeMin(left), - right); - } else { - var _n4 = elm$core$Dict$moveRedLeft(dict); - if (_n4.$ === 'RBNode_elm_builtin') { - var nColor = _n4.a; - var nKey = _n4.b; - var nValue = _n4.c; - var nLeft = _n4.d; - var nRight = _n4.e; - return A5( - elm$core$Dict$balance, - nColor, - nKey, - nValue, - elm$core$Dict$removeMin(nLeft), - nRight); - } else { - return elm$core$Dict$RBEmpty_elm_builtin; - } - } - } else { - return A5( - elm$core$Dict$RBNode_elm_builtin, - color, - key, - value, - elm$core$Dict$removeMin(left), - right); - } - } else { - return elm$core$Dict$RBEmpty_elm_builtin; - } -}; -var elm$core$Dict$removeHelp = F2( - function (targetKey, dict) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return elm$core$Dict$RBEmpty_elm_builtin; - } else { - var color = dict.a; - var key = dict.b; - var value = dict.c; - var left = dict.d; - var right = dict.e; - if (_Utils_cmp(targetKey, key) < 0) { - if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Black')) { - var _n4 = left.a; - var lLeft = left.d; - if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) { - var _n6 = lLeft.a; - return A5( - elm$core$Dict$RBNode_elm_builtin, - color, - key, - value, - A2(elm$core$Dict$removeHelp, targetKey, left), - right); - } else { - var _n7 = elm$core$Dict$moveRedLeft(dict); - if (_n7.$ === 'RBNode_elm_builtin') { - var nColor = _n7.a; - var nKey = _n7.b; - var nValue = _n7.c; - var nLeft = _n7.d; - var nRight = _n7.e; - return A5( - elm$core$Dict$balance, - nColor, - nKey, - nValue, - A2(elm$core$Dict$removeHelp, targetKey, nLeft), - nRight); - } else { - return elm$core$Dict$RBEmpty_elm_builtin; - } - } - } else { - return A5( - elm$core$Dict$RBNode_elm_builtin, - color, - key, - value, - A2(elm$core$Dict$removeHelp, targetKey, left), - right); - } - } else { - return A2( - elm$core$Dict$removeHelpEQGT, - targetKey, - A7(elm$core$Dict$removeHelpPrepEQGT, targetKey, dict, color, key, value, left, right)); - } - } - }); -var elm$core$Dict$removeHelpEQGT = F2( - function (targetKey, dict) { - if (dict.$ === 'RBNode_elm_builtin') { - var color = dict.a; - var key = dict.b; - var value = dict.c; - var left = dict.d; - var right = dict.e; - if (_Utils_eq(targetKey, key)) { - var _n1 = elm$core$Dict$getMin(right); - if (_n1.$ === 'RBNode_elm_builtin') { - var minKey = _n1.b; - var minValue = _n1.c; - return A5( - elm$core$Dict$balance, - color, - minKey, - minValue, - left, - elm$core$Dict$removeMin(right)); - } else { - return elm$core$Dict$RBEmpty_elm_builtin; - } - } else { - return A5( - elm$core$Dict$balance, - color, - key, - value, - left, - A2(elm$core$Dict$removeHelp, targetKey, right)); - } - } else { - return elm$core$Dict$RBEmpty_elm_builtin; - } - }); -var elm$core$Dict$remove = F2( - function (key, dict) { - var _n0 = A2(elm$core$Dict$removeHelp, key, dict); - if ((_n0.$ === 'RBNode_elm_builtin') && (_n0.a.$ === 'Red')) { - var _n1 = _n0.a; - var k = _n0.b; - var v = _n0.c; - var l = _n0.d; - var r = _n0.e; - return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, k, v, l, r); - } else { - var x = _n0; - return x; - } - }); -var elm$core$Dict$update = F3( - function (targetKey, alter, dictionary) { - var _n0 = alter( - A2(elm$core$Dict$get, targetKey, dictionary)); - if (_n0.$ === 'Just') { - var value = _n0.a; - return A3(elm$core$Dict$insert, targetKey, value, dictionary); - } else { - return A2(elm$core$Dict$remove, targetKey, dictionary); - } - }); -var elm$browser$Debugger$Expando$update = F2( - function (msg, value) { - switch (value.$) { - case 'S': - return value; - case 'Primitive': - return value; - case 'Sequence': - var seqType = value.a; - var isClosed = value.b; - var valueList = value.c; - switch (msg.$) { - case 'Toggle': - return A3(elm$browser$Debugger$Expando$Sequence, seqType, !isClosed, valueList); - case 'Index': - if (msg.a.$ === 'None') { - var _n3 = msg.a; - var index = msg.b; - var subMsg = msg.c; - return A3( - elm$browser$Debugger$Expando$Sequence, - seqType, - isClosed, - A3( - elm$browser$Debugger$Expando$updateIndex, - index, - elm$browser$Debugger$Expando$update(subMsg), - valueList)); - } else { - return value; - } - default: - return value; - } - case 'Dictionary': - var isClosed = value.a; - var keyValuePairs = value.b; - switch (msg.$) { - case 'Toggle': - return A2(elm$browser$Debugger$Expando$Dictionary, !isClosed, keyValuePairs); - case 'Index': - var redirect = msg.a; - var index = msg.b; - var subMsg = msg.c; - switch (redirect.$) { - case 'None': - return value; - case 'Key': - return A2( - elm$browser$Debugger$Expando$Dictionary, - isClosed, - A3( - elm$browser$Debugger$Expando$updateIndex, - index, - function (_n6) { - var k = _n6.a; - var v = _n6.b; - return _Utils_Tuple2( - A2(elm$browser$Debugger$Expando$update, subMsg, k), - v); - }, - keyValuePairs)); - default: - return A2( - elm$browser$Debugger$Expando$Dictionary, - isClosed, - A3( - elm$browser$Debugger$Expando$updateIndex, - index, - function (_n7) { - var k = _n7.a; - var v = _n7.b; - return _Utils_Tuple2( - k, - A2(elm$browser$Debugger$Expando$update, subMsg, v)); - }, - keyValuePairs)); - } - default: - return value; - } - case 'Record': - var isClosed = value.a; - var valueDict = value.b; - switch (msg.$) { - case 'Toggle': - return A2(elm$browser$Debugger$Expando$Record, !isClosed, valueDict); - case 'Index': - return value; - default: - var field = msg.a; - var subMsg = msg.b; - return A2( - elm$browser$Debugger$Expando$Record, - isClosed, - A3( - elm$core$Dict$update, - field, - elm$browser$Debugger$Expando$updateField(subMsg), - valueDict)); - } - default: - var maybeName = value.a; - var isClosed = value.b; - var valueList = value.c; - switch (msg.$) { - case 'Toggle': - return A3(elm$browser$Debugger$Expando$Constructor, maybeName, !isClosed, valueList); - case 'Index': - if (msg.a.$ === 'None') { - var _n10 = msg.a; - var index = msg.b; - var subMsg = msg.c; - return A3( - elm$browser$Debugger$Expando$Constructor, - maybeName, - isClosed, - A3( - elm$browser$Debugger$Expando$updateIndex, - index, - elm$browser$Debugger$Expando$update(subMsg), - valueList)); - } else { - return value; - } - default: - return value; - } - } - }); -var elm$browser$Debugger$Expando$updateField = F2( - function (msg, maybeExpando) { - if (maybeExpando.$ === 'Nothing') { - return maybeExpando; - } else { - var expando = maybeExpando.a; - return elm$core$Maybe$Just( - A2(elm$browser$Debugger$Expando$update, msg, expando)); - } - }); -var elm$browser$Debugger$History$Snapshot = F2( - function (model, messages) { - return {messages: messages, model: model}; - }); -var elm$core$Array$fromListHelp = F3( - function (list, nodeList, nodeListSize) { - fromListHelp: - while (true) { - var _n0 = A2(elm$core$Elm$JsArray$initializeFromList, elm$core$Array$branchFactor, list); - var jsArray = _n0.a; - var remainingItems = _n0.b; - if (_Utils_cmp( - elm$core$Elm$JsArray$length(jsArray), - elm$core$Array$branchFactor) < 0) { - return A2( - elm$core$Array$builderToArray, - true, - {nodeList: nodeList, nodeListSize: nodeListSize, tail: jsArray}); - } else { - var $temp$list = remainingItems, - $temp$nodeList = A2( - elm$core$List$cons, - elm$core$Array$Leaf(jsArray), - nodeList), - $temp$nodeListSize = nodeListSize + 1; - list = $temp$list; - nodeList = $temp$nodeList; - nodeListSize = $temp$nodeListSize; - continue fromListHelp; - } - } - }); -var elm$core$Array$fromList = function (list) { - if (!list.b) { - return elm$core$Array$empty; - } else { - return A3(elm$core$Array$fromListHelp, list, _List_Nil, 0); - } -}; -var elm$browser$Debugger$History$addRecent = F3( - function (msg, newModel, _n0) { - var model = _n0.model; - var messages = _n0.messages; - var numMessages = _n0.numMessages; - return _Utils_eq(numMessages, elm$browser$Debugger$History$maxSnapshotSize) ? _Utils_Tuple2( - elm$core$Maybe$Just( - A2( - elm$browser$Debugger$History$Snapshot, - model, - elm$core$Array$fromList(messages))), - A3( - elm$browser$Debugger$History$RecentHistory, - newModel, - _List_fromArray( - [msg]), - 1)) : _Utils_Tuple2( - elm$core$Maybe$Nothing, - A3( - elm$browser$Debugger$History$RecentHistory, - model, - A2(elm$core$List$cons, msg, messages), - numMessages + 1)); - }); -var elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy; -var elm$core$Array$bitMask = 4294967295 >>> (32 - elm$core$Array$shiftStep); -var elm$core$Basics$ge = _Utils_ge; -var elm$core$Bitwise$and = _Bitwise_and; -var elm$core$Elm$JsArray$push = _JsArray_push; -var elm$core$Elm$JsArray$singleton = _JsArray_singleton; -var elm$core$Elm$JsArray$unsafeGet = _JsArray_unsafeGet; -var elm$core$Elm$JsArray$unsafeSet = _JsArray_unsafeSet; -var elm$core$Array$insertTailInTree = F4( - function (shift, index, tail, tree) { - var pos = elm$core$Array$bitMask & (index >>> shift); - if (_Utils_cmp( - pos, - elm$core$Elm$JsArray$length(tree)) > -1) { - if (shift === 5) { - return A2( - elm$core$Elm$JsArray$push, - elm$core$Array$Leaf(tail), - tree); - } else { - var newSub = elm$core$Array$SubTree( - A4(elm$core$Array$insertTailInTree, shift - elm$core$Array$shiftStep, index, tail, elm$core$Elm$JsArray$empty)); - return A2(elm$core$Elm$JsArray$push, newSub, tree); - } - } else { - var value = A2(elm$core$Elm$JsArray$unsafeGet, pos, tree); - if (value.$ === 'SubTree') { - var subTree = value.a; - var newSub = elm$core$Array$SubTree( - A4(elm$core$Array$insertTailInTree, shift - elm$core$Array$shiftStep, index, tail, subTree)); - return A3(elm$core$Elm$JsArray$unsafeSet, pos, newSub, tree); - } else { - var newSub = elm$core$Array$SubTree( - A4( - elm$core$Array$insertTailInTree, - shift - elm$core$Array$shiftStep, - index, - tail, - elm$core$Elm$JsArray$singleton(value))); - return A3(elm$core$Elm$JsArray$unsafeSet, pos, newSub, tree); - } - } - }); -var elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy; -var elm$core$Array$unsafeReplaceTail = F2( - function (newTail, _n0) { - var len = _n0.a; - var startShift = _n0.b; - var tree = _n0.c; - var tail = _n0.d; - var originalTailLen = elm$core$Elm$JsArray$length(tail); - var newTailLen = elm$core$Elm$JsArray$length(newTail); - var newArrayLen = len + (newTailLen - originalTailLen); - if (_Utils_eq(newTailLen, elm$core$Array$branchFactor)) { - var overflow = _Utils_cmp(newArrayLen >>> elm$core$Array$shiftStep, 1 << startShift) > 0; - if (overflow) { - var newShift = startShift + elm$core$Array$shiftStep; - var newTree = A4( - elm$core$Array$insertTailInTree, - newShift, - len, - newTail, - elm$core$Elm$JsArray$singleton( - elm$core$Array$SubTree(tree))); - return A4(elm$core$Array$Array_elm_builtin, newArrayLen, newShift, newTree, elm$core$Elm$JsArray$empty); - } else { - return A4( - elm$core$Array$Array_elm_builtin, - newArrayLen, - startShift, - A4(elm$core$Array$insertTailInTree, startShift, len, newTail, tree), - elm$core$Elm$JsArray$empty); - } - } else { - return A4(elm$core$Array$Array_elm_builtin, newArrayLen, startShift, tree, newTail); - } - }); -var elm$core$Array$push = F2( - function (a, array) { - var tail = array.d; - return A2( - elm$core$Array$unsafeReplaceTail, - A2(elm$core$Elm$JsArray$push, a, tail), - array); - }); -var elm$browser$Debugger$History$add = F3( - function (msg, model, _n0) { - var snapshots = _n0.snapshots; - var recent = _n0.recent; - var numMessages = _n0.numMessages; - var _n1 = A3(elm$browser$Debugger$History$addRecent, msg, model, recent); - if (_n1.a.$ === 'Just') { - var snapshot = _n1.a.a; - var newRecent = _n1.b; - return A3( - elm$browser$Debugger$History$History, - A2(elm$core$Array$push, snapshot, snapshots), - newRecent, - numMessages + 1); - } else { - var _n2 = _n1.a; - var newRecent = _n1.b; - return A3(elm$browser$Debugger$History$History, snapshots, newRecent, numMessages + 1); - } - }); -var elm$browser$Debugger$History$Stepping = F2( - function (a, b) { - return {$: 'Stepping', a: a, b: b}; - }); -var elm$browser$Debugger$History$Done = F2( - function (a, b) { - return {$: 'Done', a: a, b: b}; - }); -var elm$browser$Debugger$History$getHelp = F3( - function (update, msg, getResult) { - if (getResult.$ === 'Done') { - return getResult; - } else { - var n = getResult.a; - var model = getResult.b; - return (!n) ? A2( - elm$browser$Debugger$History$Done, - msg, - A2(update, msg, model).a) : A2( - elm$browser$Debugger$History$Stepping, - n - 1, - A2(update, msg, model).a); - } - }); -var elm$browser$Debugger$History$undone = function (getResult) { - undone: - while (true) { - if (getResult.$ === 'Done') { - var msg = getResult.a; - var model = getResult.b; - return _Utils_Tuple2(model, msg); - } else { - var $temp$getResult = getResult; - getResult = $temp$getResult; - continue undone; - } - } -}; -var elm$core$Array$getHelp = F3( - function (shift, index, tree) { - getHelp: - while (true) { - var pos = elm$core$Array$bitMask & (index >>> shift); - var _n0 = A2(elm$core$Elm$JsArray$unsafeGet, pos, tree); - if (_n0.$ === 'SubTree') { - var subTree = _n0.a; - var $temp$shift = shift - elm$core$Array$shiftStep, - $temp$index = index, - $temp$tree = subTree; - shift = $temp$shift; - index = $temp$index; - tree = $temp$tree; - continue getHelp; - } else { - var values = _n0.a; - return A2(elm$core$Elm$JsArray$unsafeGet, elm$core$Array$bitMask & index, values); - } - } - }); -var elm$core$Array$tailIndex = function (len) { - return (len >>> 5) << 5; -}; -var elm$core$Array$get = F2( - function (index, _n0) { - var len = _n0.a; - var startShift = _n0.b; - var tree = _n0.c; - var tail = _n0.d; - return ((index < 0) || (_Utils_cmp(index, len) > -1)) ? elm$core$Maybe$Nothing : ((_Utils_cmp( - index, - elm$core$Array$tailIndex(len)) > -1) ? elm$core$Maybe$Just( - A2(elm$core$Elm$JsArray$unsafeGet, elm$core$Array$bitMask & index, tail)) : elm$core$Maybe$Just( - A3(elm$core$Array$getHelp, startShift, index, tree))); - }); -var elm$browser$Debugger$History$get = F3( - function (update, index, history) { - get: - while (true) { - var recent = history.recent; - var snapshotMax = history.numMessages - recent.numMessages; - if (_Utils_cmp(index, snapshotMax) > -1) { - return elm$browser$Debugger$History$undone( - A3( - elm$core$List$foldr, - elm$browser$Debugger$History$getHelp(update), - A2(elm$browser$Debugger$History$Stepping, index - snapshotMax, recent.model), - recent.messages)); - } else { - var _n0 = A2(elm$core$Array$get, (index / elm$browser$Debugger$History$maxSnapshotSize) | 0, history.snapshots); - if (_n0.$ === 'Nothing') { - var $temp$update = update, - $temp$index = index, - $temp$history = history; - update = $temp$update; - index = $temp$index; - history = $temp$history; - continue get; - } else { - var model = _n0.a.model; - var messages = _n0.a.messages; - return elm$browser$Debugger$History$undone( - A3( - elm$core$Array$foldr, - elm$browser$Debugger$History$getHelp(update), - A2(elm$browser$Debugger$History$Stepping, index % elm$browser$Debugger$History$maxSnapshotSize, model), - messages)); - } - } - } - }); -var elm$browser$Debugger$Main$Paused = F3( - function (a, b, c) { - return {$: 'Paused', a: a, b: b, c: c}; - }); -var elm$browser$Debugger$History$elmToJs = _Debugger_unsafeCoerce; -var elm$browser$Debugger$History$encodeHelp = F2( - function (snapshot, allMessages) { - return A3(elm$core$Array$foldl, elm$core$List$cons, allMessages, snapshot.messages); - }); -var elm$browser$Debugger$History$encode = function (_n0) { - var snapshots = _n0.snapshots; - var recent = _n0.recent; - return A2( - elm$json$Json$Encode$list, - elm$browser$Debugger$History$elmToJs, - A3( - elm$core$Array$foldr, - elm$browser$Debugger$History$encodeHelp, - elm$core$List$reverse(recent.messages), - snapshots)); -}; -var elm$browser$Debugger$Metadata$encodeAlias = function (_n0) { - var args = _n0.args; - var tipe = _n0.tipe; - return elm$json$Json$Encode$object( - _List_fromArray( - [ - _Utils_Tuple2( - 'args', - A2(elm$json$Json$Encode$list, elm$json$Json$Encode$string, args)), - _Utils_Tuple2( - 'type', - elm$json$Json$Encode$string(tipe)) - ])); -}; -var elm$browser$Debugger$Metadata$encodeDict = F2( - function (f, dict) { - return elm$json$Json$Encode$object( - elm$core$Dict$toList( - A2( - elm$core$Dict$map, - F2( - function (key, value) { - return f(value); - }), - dict))); - }); -var elm$browser$Debugger$Metadata$encodeUnion = function (_n0) { - var args = _n0.args; - var tags = _n0.tags; - return elm$json$Json$Encode$object( - _List_fromArray( - [ - _Utils_Tuple2( - 'args', - A2(elm$json$Json$Encode$list, elm$json$Json$Encode$string, args)), - _Utils_Tuple2( - 'tags', - A2( - elm$browser$Debugger$Metadata$encodeDict, - elm$json$Json$Encode$list(elm$json$Json$Encode$string), - tags)) - ])); -}; -var elm$browser$Debugger$Metadata$encodeTypes = function (_n0) { - var message = _n0.message; - var unions = _n0.unions; - var aliases = _n0.aliases; - return elm$json$Json$Encode$object( - _List_fromArray( - [ - _Utils_Tuple2( - 'message', - elm$json$Json$Encode$string(message)), - _Utils_Tuple2( - 'aliases', - A2(elm$browser$Debugger$Metadata$encodeDict, elm$browser$Debugger$Metadata$encodeAlias, aliases)), - _Utils_Tuple2( - 'unions', - A2(elm$browser$Debugger$Metadata$encodeDict, elm$browser$Debugger$Metadata$encodeUnion, unions)) - ])); -}; -var elm$browser$Debugger$Metadata$encodeVersions = function (_n0) { - var elm = _n0.elm; - return elm$json$Json$Encode$object( - _List_fromArray( - [ - _Utils_Tuple2( - 'elm', - elm$json$Json$Encode$string(elm)) - ])); -}; -var elm$browser$Debugger$Metadata$encode = function (_n0) { - var versions = _n0.versions; - var types = _n0.types; - return elm$json$Json$Encode$object( - _List_fromArray( - [ - _Utils_Tuple2( - 'versions', - elm$browser$Debugger$Metadata$encodeVersions(versions)), - _Utils_Tuple2( - 'types', - elm$browser$Debugger$Metadata$encodeTypes(types)) - ])); -}; -var elm$browser$Debugger$Main$download = F2( - function (metadata, history) { - var json = elm$json$Json$Encode$object( - _List_fromArray( - [ - _Utils_Tuple2( - 'metadata', - elm$browser$Debugger$Metadata$encode(metadata)), - _Utils_Tuple2( - 'history', - elm$browser$Debugger$History$encode(history)) - ])); - var historyLength = elm$browser$Debugger$History$size(history); - return A2( - elm$core$Task$perform, - function (_n0) { - return elm$browser$Debugger$Main$NoOp; - }, - A2(_Debugger_download, historyLength, json)); - }); -var elm$browser$Debugger$History$jsToElm = _Debugger_unsafeCoerce; -var elm$json$Json$Decode$value = _Json_decodeValue; -var elm$browser$Debugger$History$decoder = F2( - function (initialModel, update) { - var addMessage = F2( - function (rawMsg, _n0) { - var model = _n0.a; - var history = _n0.b; - var msg = elm$browser$Debugger$History$jsToElm(rawMsg); - return _Utils_Tuple2( - A2(update, msg, model), - A3(elm$browser$Debugger$History$add, msg, model, history)); - }); - var updateModel = function (rawMsgs) { - return A3( - elm$core$List$foldl, - addMessage, - _Utils_Tuple2( - initialModel, - elm$browser$Debugger$History$empty(initialModel)), - rawMsgs); - }; - return A2( - elm$json$Json$Decode$map, - updateModel, - elm$json$Json$Decode$list(elm$json$Json$Decode$value)); - }); -var elm$browser$Debugger$History$getInitialModel = function (_n0) { - var snapshots = _n0.snapshots; - var recent = _n0.recent; - var _n1 = A2(elm$core$Array$get, 0, snapshots); - if (_n1.$ === 'Just') { - var model = _n1.a.model; - return model; - } else { - return recent.model; - } -}; -var elm$browser$Debugger$Overlay$BadImport = function (a) { - return {$: 'BadImport', a: a}; -}; -var elm$browser$Debugger$Report$CorruptHistory = {$: 'CorruptHistory'}; -var elm$browser$Debugger$Overlay$corruptImport = elm$browser$Debugger$Overlay$BadImport(elm$browser$Debugger$Report$CorruptHistory); -var elm$browser$Debugger$Main$loadNewHistory = F3( - function (rawHistory, update, model) { - var pureUserUpdate = F2( - function (msg, userModel) { - return A2(update, msg, userModel).a; - }); - var initialUserModel = elm$browser$Debugger$History$getInitialModel(model.history); - var decoder = A2(elm$browser$Debugger$History$decoder, initialUserModel, pureUserUpdate); - var _n0 = A2(elm$json$Json$Decode$decodeValue, decoder, rawHistory); - if (_n0.$ === 'Err') { - return _Utils_Tuple2( - _Utils_update( - model, - {overlay: elm$browser$Debugger$Overlay$corruptImport}), - elm$core$Platform$Cmd$none); - } else { - var _n1 = _n0.a; - var latestUserModel = _n1.a; - var newHistory = _n1.b; - return _Utils_Tuple2( - _Utils_update( - model, - { - expando: elm$browser$Debugger$Expando$init(latestUserModel), - history: newHistory, - overlay: elm$browser$Debugger$Overlay$none, - state: elm$browser$Debugger$Main$Running(latestUserModel) - }), - elm$core$Platform$Cmd$none); - } - }); -var elm$core$Basics$always = F2( - function (a, _n0) { - return a; - }); -var elm$browser$Debugger$Main$scroll = function (popout) { - return A2( - elm$core$Task$perform, - elm$core$Basics$always(elm$browser$Debugger$Main$NoOp), - _Debugger_scroll(popout)); -}; -var elm$browser$Debugger$Main$Upload = function (a) { - return {$: 'Upload', a: a}; -}; -var elm$browser$Debugger$Main$upload = A2( - elm$core$Task$perform, - elm$browser$Debugger$Main$Upload, - _Debugger_upload(_Utils_Tuple0)); -var elm$browser$Debugger$Overlay$BadMetadata = function (a) { - return {$: 'BadMetadata', a: a}; -}; -var elm$browser$Debugger$Overlay$badMetadata = elm$browser$Debugger$Overlay$BadMetadata; -var elm$browser$Debugger$Main$withGoodMetadata = F2( - function (model, func) { - var _n0 = model.metadata; - if (_n0.$ === 'Ok') { - var metadata = _n0.a; - return func(metadata); - } else { - var error = _n0.a; - return _Utils_Tuple2( - _Utils_update( - model, - { - overlay: elm$browser$Debugger$Overlay$badMetadata(error) - }), - elm$core$Platform$Cmd$none); - } - }); -var elm$browser$Debugger$Report$AliasChange = function (a) { - return {$: 'AliasChange', a: a}; -}; -var elm$browser$Debugger$Metadata$checkAlias = F4( - function (name, old, _new, changes) { - return (_Utils_eq(old.tipe, _new.tipe) && _Utils_eq(old.args, _new.args)) ? changes : A2( - elm$core$List$cons, - elm$browser$Debugger$Report$AliasChange(name), - changes); - }); -var elm$browser$Debugger$Metadata$addTag = F3( - function (tag, _n0, changes) { - return _Utils_update( - changes, - { - added: A2(elm$core$List$cons, tag, changes.added) - }); - }); -var elm$browser$Debugger$Metadata$checkTag = F4( - function (tag, old, _new, changes) { - return _Utils_eq(old, _new) ? changes : _Utils_update( - changes, - { - changed: A2(elm$core$List$cons, tag, changes.changed) - }); - }); -var elm$browser$Debugger$Metadata$removeTag = F3( - function (tag, _n0, changes) { - return _Utils_update( - changes, - { - removed: A2(elm$core$List$cons, tag, changes.removed) - }); - }); -var elm$browser$Debugger$Report$UnionChange = F2( - function (a, b) { - return {$: 'UnionChange', a: a, b: b}; - }); -var elm$browser$Debugger$Report$TagChanges = F4( - function (removed, changed, added, argsMatch) { - return {added: added, argsMatch: argsMatch, changed: changed, removed: removed}; - }); -var elm$browser$Debugger$Report$emptyTagChanges = function (argsMatch) { - return A4(elm$browser$Debugger$Report$TagChanges, _List_Nil, _List_Nil, _List_Nil, argsMatch); -}; -var elm$browser$Debugger$Report$hasTagChanges = function (tagChanges) { - return _Utils_eq( - tagChanges, - A4(elm$browser$Debugger$Report$TagChanges, _List_Nil, _List_Nil, _List_Nil, true)); -}; -var elm$core$Dict$merge = F6( - function (leftStep, bothStep, rightStep, leftDict, rightDict, initialResult) { - var stepState = F3( - function (rKey, rValue, _n0) { - stepState: - while (true) { - var list = _n0.a; - var result = _n0.b; - if (!list.b) { - return _Utils_Tuple2( - list, - A3(rightStep, rKey, rValue, result)); - } else { - var _n2 = list.a; - var lKey = _n2.a; - var lValue = _n2.b; - var rest = list.b; - if (_Utils_cmp(lKey, rKey) < 0) { - var $temp$rKey = rKey, - $temp$rValue = rValue, - $temp$_n0 = _Utils_Tuple2( - rest, - A3(leftStep, lKey, lValue, result)); - rKey = $temp$rKey; - rValue = $temp$rValue; - _n0 = $temp$_n0; - continue stepState; - } else { - if (_Utils_cmp(lKey, rKey) > 0) { - return _Utils_Tuple2( - list, - A3(rightStep, rKey, rValue, result)); - } else { - return _Utils_Tuple2( - rest, - A4(bothStep, lKey, lValue, rValue, result)); - } - } - } - } - }); - var _n3 = A3( - elm$core$Dict$foldl, - stepState, - _Utils_Tuple2( - elm$core$Dict$toList(leftDict), - initialResult), - rightDict); - var leftovers = _n3.a; - var intermediateResult = _n3.b; - return A3( - elm$core$List$foldl, - F2( - function (_n4, result) { - var k = _n4.a; - var v = _n4.b; - return A3(leftStep, k, v, result); - }), - intermediateResult, - leftovers); - }); -var elm$browser$Debugger$Metadata$checkUnion = F4( - function (name, old, _new, changes) { - var tagChanges = A6( - elm$core$Dict$merge, - elm$browser$Debugger$Metadata$removeTag, - elm$browser$Debugger$Metadata$checkTag, - elm$browser$Debugger$Metadata$addTag, - old.tags, - _new.tags, - elm$browser$Debugger$Report$emptyTagChanges( - _Utils_eq(old.args, _new.args))); - return elm$browser$Debugger$Report$hasTagChanges(tagChanges) ? changes : A2( - elm$core$List$cons, - A2(elm$browser$Debugger$Report$UnionChange, name, tagChanges), - changes); - }); -var elm$browser$Debugger$Metadata$ignore = F3( - function (key, value, report) { - return report; - }); -var elm$browser$Debugger$Report$MessageChanged = F2( - function (a, b) { - return {$: 'MessageChanged', a: a, b: b}; - }); -var elm$browser$Debugger$Report$SomethingChanged = function (a) { - return {$: 'SomethingChanged', a: a}; -}; -var elm$core$Basics$neq = _Utils_notEqual; -var elm$browser$Debugger$Metadata$checkTypes = F2( - function (old, _new) { - return (!_Utils_eq(old.message, _new.message)) ? A2(elm$browser$Debugger$Report$MessageChanged, old.message, _new.message) : elm$browser$Debugger$Report$SomethingChanged( - A6( - elm$core$Dict$merge, - elm$browser$Debugger$Metadata$ignore, - elm$browser$Debugger$Metadata$checkUnion, - elm$browser$Debugger$Metadata$ignore, - old.unions, - _new.unions, - A6(elm$core$Dict$merge, elm$browser$Debugger$Metadata$ignore, elm$browser$Debugger$Metadata$checkAlias, elm$browser$Debugger$Metadata$ignore, old.aliases, _new.aliases, _List_Nil))); - }); -var elm$browser$Debugger$Report$VersionChanged = F2( - function (a, b) { - return {$: 'VersionChanged', a: a, b: b}; - }); -var elm$browser$Debugger$Metadata$check = F2( - function (old, _new) { - return (!_Utils_eq(old.versions.elm, _new.versions.elm)) ? A2(elm$browser$Debugger$Report$VersionChanged, old.versions.elm, _new.versions.elm) : A2(elm$browser$Debugger$Metadata$checkTypes, old.types, _new.types); - }); -var elm$browser$Debugger$Overlay$RiskyImport = F2( - function (a, b) { - return {$: 'RiskyImport', a: a, b: b}; - }); -var elm$browser$Debugger$Overlay$uploadDecoder = A3( - elm$json$Json$Decode$map2, - F2( - function (x, y) { - return _Utils_Tuple2(x, y); - }), - A2(elm$json$Json$Decode$field, 'metadata', elm$browser$Debugger$Metadata$decoder), - A2(elm$json$Json$Decode$field, 'history', elm$json$Json$Decode$value)); -var elm$browser$Debugger$Report$Fine = {$: 'Fine'}; -var elm$browser$Debugger$Report$Impossible = {$: 'Impossible'}; -var elm$browser$Debugger$Report$Risky = {$: 'Risky'}; -var elm$browser$Debugger$Report$some = function (list) { - return !elm$core$List$isEmpty(list); -}; -var elm$browser$Debugger$Report$evaluateChange = function (change) { - if (change.$ === 'AliasChange') { - return elm$browser$Debugger$Report$Impossible; - } else { - var removed = change.b.removed; - var changed = change.b.changed; - var added = change.b.added; - var argsMatch = change.b.argsMatch; - return ((!argsMatch) || (elm$browser$Debugger$Report$some(changed) || elm$browser$Debugger$Report$some(removed))) ? elm$browser$Debugger$Report$Impossible : (elm$browser$Debugger$Report$some(added) ? elm$browser$Debugger$Report$Risky : elm$browser$Debugger$Report$Fine); - } -}; -var elm$browser$Debugger$Report$worstCase = F2( - function (status, statusList) { - worstCase: - while (true) { - if (!statusList.b) { - return status; - } else { - switch (statusList.a.$) { - case 'Impossible': - var _n1 = statusList.a; - return elm$browser$Debugger$Report$Impossible; - case 'Risky': - var _n2 = statusList.a; - var rest = statusList.b; - var $temp$status = elm$browser$Debugger$Report$Risky, - $temp$statusList = rest; - status = $temp$status; - statusList = $temp$statusList; - continue worstCase; - default: - var _n3 = statusList.a; - var rest = statusList.b; - var $temp$status = status, - $temp$statusList = rest; - status = $temp$status; - statusList = $temp$statusList; - continue worstCase; - } - } - } - }); -var elm$browser$Debugger$Report$evaluate = function (report) { - switch (report.$) { - case 'CorruptHistory': - return elm$browser$Debugger$Report$Impossible; - case 'VersionChanged': - return elm$browser$Debugger$Report$Impossible; - case 'MessageChanged': - return elm$browser$Debugger$Report$Impossible; - default: - var changes = report.a; - return A2( - elm$browser$Debugger$Report$worstCase, - elm$browser$Debugger$Report$Fine, - A2(elm$core$List$map, elm$browser$Debugger$Report$evaluateChange, changes)); - } -}; -var elm$json$Json$Decode$decodeString = _Json_runOnString; -var elm$browser$Debugger$Overlay$assessImport = F2( - function (metadata, jsonString) { - var _n0 = A2(elm$json$Json$Decode$decodeString, elm$browser$Debugger$Overlay$uploadDecoder, jsonString); - if (_n0.$ === 'Err') { - return elm$core$Result$Err(elm$browser$Debugger$Overlay$corruptImport); - } else { - var _n1 = _n0.a; - var foreignMetadata = _n1.a; - var rawHistory = _n1.b; - var report = A2(elm$browser$Debugger$Metadata$check, foreignMetadata, metadata); - var _n2 = elm$browser$Debugger$Report$evaluate(report); - switch (_n2.$) { - case 'Impossible': - return elm$core$Result$Err( - elm$browser$Debugger$Overlay$BadImport(report)); - case 'Risky': - return elm$core$Result$Err( - A2(elm$browser$Debugger$Overlay$RiskyImport, report, rawHistory)); - default: - return elm$core$Result$Ok(rawHistory); - } - } - }); -var elm$browser$Debugger$Overlay$close = F2( - function (msg, state) { - switch (state.$) { - case 'None': - return elm$core$Maybe$Nothing; - case 'BadMetadata': - return elm$core$Maybe$Nothing; - case 'BadImport': - return elm$core$Maybe$Nothing; - default: - var rawHistory = state.b; - if (msg.$ === 'Cancel') { - return elm$core$Maybe$Nothing; - } else { - return elm$core$Maybe$Just(rawHistory); - } - } - }); -var elm$browser$Debugger$Main$wrapUpdate = F3( - function (update, msg, model) { - wrapUpdate: - while (true) { - switch (msg.$) { - case 'NoOp': - return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); - case 'UserMsg': - var userMsg = msg.a; - var userModel = elm$browser$Debugger$Main$getLatestModel(model.state); - var newHistory = A3(elm$browser$Debugger$History$add, userMsg, userModel, model.history); - var _n1 = A2(update, userMsg, userModel); - var newUserModel = _n1.a; - var userCmds = _n1.b; - var commands = A2(elm$core$Platform$Cmd$map, elm$browser$Debugger$Main$UserMsg, userCmds); - var _n2 = model.state; - if (_n2.$ === 'Running') { - return _Utils_Tuple2( - _Utils_update( - model, - { - expando: A2(elm$browser$Debugger$Expando$merge, newUserModel, model.expando), - history: newHistory, - state: elm$browser$Debugger$Main$Running(newUserModel) - }), - elm$core$Platform$Cmd$batch( - _List_fromArray( - [ - commands, - elm$browser$Debugger$Main$scroll(model.popout) - ]))); - } else { - var index = _n2.a; - var indexModel = _n2.b; - return _Utils_Tuple2( - _Utils_update( - model, - { - history: newHistory, - state: A3(elm$browser$Debugger$Main$Paused, index, indexModel, newUserModel) - }), - commands); - } - case 'ExpandoMsg': - var eMsg = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - { - expando: A2(elm$browser$Debugger$Expando$update, eMsg, model.expando) - }), - elm$core$Platform$Cmd$none); - case 'Resume': - var _n3 = model.state; - if (_n3.$ === 'Running') { - return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); - } else { - var userModel = _n3.c; - return _Utils_Tuple2( - _Utils_update( - model, - { - expando: A2(elm$browser$Debugger$Expando$merge, userModel, model.expando), - state: elm$browser$Debugger$Main$Running(userModel) - }), - elm$browser$Debugger$Main$scroll(model.popout)); - } - case 'Jump': - var index = msg.a; - var _n4 = A3(elm$browser$Debugger$History$get, update, index, model.history); - var indexModel = _n4.a; - var indexMsg = _n4.b; - return _Utils_Tuple2( - _Utils_update( - model, - { - expando: A2(elm$browser$Debugger$Expando$merge, indexModel, model.expando), - state: A3( - elm$browser$Debugger$Main$Paused, - index, - indexModel, - elm$browser$Debugger$Main$getLatestModel(model.state)) - }), - elm$core$Platform$Cmd$none); - case 'Open': - return _Utils_Tuple2( - model, - A2( - elm$core$Task$perform, - function (_n5) { - return elm$browser$Debugger$Main$NoOp; - }, - _Debugger_open(model.popout))); - case 'Up': - var index = function () { - var _n6 = model.state; - if (_n6.$ === 'Paused') { - var i = _n6.a; - return i; - } else { - return elm$browser$Debugger$History$size(model.history); - } - }(); - if (index > 0) { - var $temp$update = update, - $temp$msg = elm$browser$Debugger$Main$Jump(index - 1), - $temp$model = model; - update = $temp$update; - msg = $temp$msg; - model = $temp$model; - continue wrapUpdate; - } else { - return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); - } - case 'Down': - var _n7 = model.state; - if (_n7.$ === 'Running') { - return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); - } else { - var index = _n7.a; - var userModel = _n7.c; - if (_Utils_eq( - index, - elm$browser$Debugger$History$size(model.history) - 1)) { - var $temp$update = update, - $temp$msg = elm$browser$Debugger$Main$Resume, - $temp$model = model; - update = $temp$update; - msg = $temp$msg; - model = $temp$model; - continue wrapUpdate; - } else { - var $temp$update = update, - $temp$msg = elm$browser$Debugger$Main$Jump(index + 1), - $temp$model = model; - update = $temp$update; - msg = $temp$msg; - model = $temp$model; - continue wrapUpdate; - } - } - case 'Import': - return A2( - elm$browser$Debugger$Main$withGoodMetadata, - model, - function (_n8) { - return _Utils_Tuple2(model, elm$browser$Debugger$Main$upload); - }); - case 'Export': - return A2( - elm$browser$Debugger$Main$withGoodMetadata, - model, - function (metadata) { - return _Utils_Tuple2( - model, - A2(elm$browser$Debugger$Main$download, metadata, model.history)); - }); - case 'Upload': - var jsonString = msg.a; - return A2( - elm$browser$Debugger$Main$withGoodMetadata, - model, - function (metadata) { - var _n9 = A2(elm$browser$Debugger$Overlay$assessImport, metadata, jsonString); - if (_n9.$ === 'Err') { - var newOverlay = _n9.a; - return _Utils_Tuple2( - _Utils_update( - model, - {overlay: newOverlay}), - elm$core$Platform$Cmd$none); - } else { - var rawHistory = _n9.a; - return A3(elm$browser$Debugger$Main$loadNewHistory, rawHistory, update, model); - } - }); - default: - var overlayMsg = msg.a; - var _n10 = A2(elm$browser$Debugger$Overlay$close, overlayMsg, model.overlay); - if (_n10.$ === 'Nothing') { - return _Utils_Tuple2( - _Utils_update( - model, - {overlay: elm$browser$Debugger$Overlay$none}), - elm$core$Platform$Cmd$none); - } else { - var rawHistory = _n10.a; - return A3(elm$browser$Debugger$Main$loadNewHistory, rawHistory, update, model); - } - } - } - }); -var elm$core$Set$foldr = F3( - function (func, initialState, _n0) { - var dict = _n0.a; - return A3( - elm$core$Dict$foldr, - F3( - function (key, _n1, state) { - return A2(func, key, state); - }), - initialState, - dict); - }); -var elm$core$String$dropLeft = F2( - function (n, string) { - return (n < 1) ? string : A3( - elm$core$String$slice, - n, - elm$core$String$length(string), - string); - }); -var elm$core$String$startsWith = _String_startsWith; -var elm$url$Url$Http = {$: 'Http'}; -var elm$url$Url$Https = {$: 'Https'}; -var elm$core$String$indexes = _String_indexes; -var elm$core$String$isEmpty = function (string) { - return string === ''; -}; -var elm$core$String$toInt = _String_toInt; -var elm$url$Url$Url = F6( - function (protocol, host, port_, path, query, fragment) { - return {fragment: fragment, host: host, path: path, port_: port_, protocol: protocol, query: query}; - }); -var elm$url$Url$chompBeforePath = F5( - function (protocol, path, params, frag, str) { - if (elm$core$String$isEmpty(str) || A2(elm$core$String$contains, '@', str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, ':', str); - if (!_n0.b) { - return elm$core$Maybe$Just( - A6(elm$url$Url$Url, protocol, str, elm$core$Maybe$Nothing, path, params, frag)); - } else { - if (!_n0.b.b) { - var i = _n0.a; - var _n1 = elm$core$String$toInt( - A2(elm$core$String$dropLeft, i + 1, str)); - if (_n1.$ === 'Nothing') { - return elm$core$Maybe$Nothing; - } else { - var port_ = _n1; - return elm$core$Maybe$Just( - A6( - elm$url$Url$Url, - protocol, - A2(elm$core$String$left, i, str), - port_, - path, - params, - frag)); - } - } else { - return elm$core$Maybe$Nothing; - } - } - } - }); -var elm$url$Url$chompBeforeQuery = F4( - function (protocol, params, frag, str) { - if (elm$core$String$isEmpty(str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, '/', str); - if (!_n0.b) { - return A5(elm$url$Url$chompBeforePath, protocol, '/', params, frag, str); - } else { - var i = _n0.a; - return A5( - elm$url$Url$chompBeforePath, - protocol, - A2(elm$core$String$dropLeft, i, str), - params, - frag, - A2(elm$core$String$left, i, str)); - } - } - }); -var elm$url$Url$chompBeforeFragment = F3( - function (protocol, frag, str) { - if (elm$core$String$isEmpty(str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, '?', str); - if (!_n0.b) { - return A4(elm$url$Url$chompBeforeQuery, protocol, elm$core$Maybe$Nothing, frag, str); - } else { - var i = _n0.a; - return A4( - elm$url$Url$chompBeforeQuery, - protocol, - elm$core$Maybe$Just( - A2(elm$core$String$dropLeft, i + 1, str)), - frag, - A2(elm$core$String$left, i, str)); - } - } - }); -var elm$url$Url$chompAfterProtocol = F2( - function (protocol, str) { - if (elm$core$String$isEmpty(str)) { - return elm$core$Maybe$Nothing; - } else { - var _n0 = A2(elm$core$String$indexes, '#', str); - if (!_n0.b) { - return A3(elm$url$Url$chompBeforeFragment, protocol, elm$core$Maybe$Nothing, str); - } else { - var i = _n0.a; - return A3( - elm$url$Url$chompBeforeFragment, - protocol, - elm$core$Maybe$Just( - A2(elm$core$String$dropLeft, i + 1, str)), - A2(elm$core$String$left, i, str)); - } - } - }); -var elm$url$Url$fromString = function (str) { - return A2(elm$core$String$startsWith, 'http://', str) ? A2( - elm$url$Url$chompAfterProtocol, - elm$url$Url$Http, - A2(elm$core$String$dropLeft, 7, str)) : (A2(elm$core$String$startsWith, 'https://', str) ? A2( - elm$url$Url$chompAfterProtocol, - elm$url$Url$Https, - A2(elm$core$String$dropLeft, 8, str)) : elm$core$Maybe$Nothing); -}; -var elm$browser$Browser$Dom$blur = _Browser_call('blur'); -var elm$core$Task$onError = _Scheduler_onError; -var elm$core$Task$attempt = F2( - function (resultToMessage, task) { - return elm$core$Task$command( - elm$core$Task$Perform( - A2( - elm$core$Task$onError, - A2( - elm$core$Basics$composeL, - A2(elm$core$Basics$composeL, elm$core$Task$succeed, resultToMessage), - elm$core$Result$Err), - A2( - elm$core$Task$andThen, - A2( - elm$core$Basics$composeL, - A2(elm$core$Basics$composeL, elm$core$Task$succeed, resultToMessage), - elm$core$Result$Ok), - task)))); - }); -var author$project$Main$unfocusSearchBox = A2( - elm$core$Task$attempt, - function (_n0) { - return author$project$Main$NoOp; - }, - elm$browser$Browser$Dom$blur('search-box')); -var elm$random$Random$Generate = function (a) { - return {$: 'Generate', a: a}; -}; -var elm$random$Random$Seed = F2( - function (a, b) { - return {$: 'Seed', a: a, b: b}; - }); -var elm$random$Random$next = function (_n0) { - var state0 = _n0.a; - var incr = _n0.b; - return A2(elm$random$Random$Seed, ((state0 * 1664525) + incr) >>> 0, incr); -}; -var elm$random$Random$initialSeed = function (x) { - var _n0 = elm$random$Random$next( - A2(elm$random$Random$Seed, 0, 1013904223)); - var state1 = _n0.a; - var incr = _n0.b; - var state2 = (state1 + x) >>> 0; - return elm$random$Random$next( - A2(elm$random$Random$Seed, state2, incr)); -}; -var elm$time$Time$Name = function (a) { - return {$: 'Name', a: a}; -}; -var elm$time$Time$Offset = function (a) { - return {$: 'Offset', a: a}; -}; -var elm$time$Time$Zone = F2( - function (a, b) { - return {$: 'Zone', a: a, b: b}; - }); -var elm$time$Time$customZone = elm$time$Time$Zone; -var elm$time$Time$Posix = function (a) { - return {$: 'Posix', a: a}; -}; -var elm$time$Time$millisToPosix = elm$time$Time$Posix; -var elm$time$Time$now = _Time_now(elm$time$Time$millisToPosix); -var elm$time$Time$posixToMillis = function (_n0) { - var millis = _n0.a; - return millis; -}; -var elm$random$Random$init = A2( - elm$core$Task$andThen, - function (time) { - return elm$core$Task$succeed( - elm$random$Random$initialSeed( - elm$time$Time$posixToMillis(time))); - }, - elm$time$Time$now); -var elm$random$Random$step = F2( - function (_n0, seed) { - var generator = _n0.a; - return generator(seed); - }); -var elm$random$Random$onEffects = F3( - function (router, commands, seed) { - if (!commands.b) { - return elm$core$Task$succeed(seed); - } else { - var generator = commands.a.a; - var rest = commands.b; - var _n1 = A2(elm$random$Random$step, generator, seed); - var value = _n1.a; - var newSeed = _n1.b; - return A2( - elm$core$Task$andThen, - function (_n2) { - return A3(elm$random$Random$onEffects, router, rest, newSeed); - }, - A2(elm$core$Platform$sendToApp, router, value)); - } - }); -var elm$random$Random$onSelfMsg = F3( - function (_n0, _n1, seed) { - return elm$core$Task$succeed(seed); - }); -var elm$random$Random$Generator = function (a) { - return {$: 'Generator', a: a}; -}; -var elm$random$Random$map = F2( - function (func, _n0) { - var genA = _n0.a; - return elm$random$Random$Generator( - function (seed0) { - var _n1 = genA(seed0); - var a = _n1.a; - var seed1 = _n1.b; - return _Utils_Tuple2( - func(a), - seed1); - }); - }); -var elm$random$Random$cmdMap = F2( - function (func, _n0) { - var generator = _n0.a; - return elm$random$Random$Generate( - A2(elm$random$Random$map, func, generator)); - }); -_Platform_effectManagers['Random'] = _Platform_createManager(elm$random$Random$init, elm$random$Random$onEffects, elm$random$Random$onSelfMsg, elm$random$Random$cmdMap); -var elm$random$Random$command = _Platform_leaf('Random'); -var elm$random$Random$generate = F2( - function (tagger, generator) { - return elm$random$Random$command( - elm$random$Random$Generate( - A2(elm$random$Random$map, tagger, generator))); - }); -var elm$core$Bitwise$xor = _Bitwise_xor; -var elm$random$Random$peel = function (_n0) { - var state = _n0.a; - var word = (state ^ (state >>> ((state >>> 28) + 4))) * 277803737; - return ((word >>> 22) ^ word) >>> 0; -}; -var elm$random$Random$int = F2( - function (a, b) { - return elm$random$Random$Generator( - function (seed0) { - var _n0 = (_Utils_cmp(a, b) < 0) ? _Utils_Tuple2(a, b) : _Utils_Tuple2(b, a); - var lo = _n0.a; - var hi = _n0.b; - var range = (hi - lo) + 1; - if (!((range - 1) & range)) { - return _Utils_Tuple2( - (((range - 1) & elm$random$Random$peel(seed0)) >>> 0) + lo, - elm$random$Random$next(seed0)); - } else { - var threshhold = (((-range) >>> 0) % range) >>> 0; - var accountForBias = function (seed) { - accountForBias: - while (true) { - var x = elm$random$Random$peel(seed); - var seedN = elm$random$Random$next(seed); - if (_Utils_cmp(x, threshhold) < 0) { - var $temp$seed = seedN; - seed = $temp$seed; - continue accountForBias; - } else { - return _Utils_Tuple2((x % range) + lo, seedN); - } - } - }; - return accountForBias(seed0); - } - }); - }); -var author$project$Main$update = F2( - function (msg, model) { - switch (msg.$) { - case 'GoHome': - return _Utils_Tuple2( - model, - author$project$Main$appGoHome(_Utils_Tuple0)); - case 'GoSettings': - return _Utils_Tuple2( - model, - author$project$Main$appGoSettings(_Utils_Tuple0)); - case 'LexiconMsg': - var subMsg = msg.a; - var _n1 = A2(author$project$Lexicon$update, subMsg, model.lexiconModel); - var updateLexiconModel = _n1.a; - var lexiconCmd = _n1.b; - switch (subMsg.$) { - case 'WordListReceived': - return _Utils_Tuple2( - _Utils_update( - model, - {currentPage: author$project$Main$SearchView, lexiconModel: updateLexiconModel}), - A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, lexiconCmd)); - case 'WordDefinitionReceived': - return _Utils_Tuple2( - _Utils_update( - model, - {currentPage: author$project$Main$DefinitionView, lexiconModel: updateLexiconModel}), - elm$core$Platform$Cmd$batch( - _List_fromArray( - [ - A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, lexiconCmd), - author$project$Main$scrollTop(_Utils_Tuple0) - ]))); - default: - return _Utils_Tuple2( - _Utils_update( - model, - {lexiconModel: updateLexiconModel}), - A2(elm$core$Platform$Cmd$map, author$project$Main$LexiconMsg, lexiconCmd)); - } - case 'Navigate': - var page = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - {currentPage: page}), - elm$core$Platform$Cmd$none); - case 'LoadRandomDefinition': - var _n3 = model.lexiconModel.wordList; - if (_n3.$ === 'Just') { - var wordList = _n3.a; - var lastItem = elm$core$List$length(wordList) - 1; - var gen = A2(elm$random$Random$int, 1, lastItem); - return _Utils_Tuple2( - model, - A2(elm$random$Random$generate, author$project$Main$LoadDefinitionByInt, gen)); - } else { - return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); - } - case 'LoadDefinition': - var id = msg.a; - return _Utils_Tuple2( - model, - A2( - elm$core$Platform$Cmd$map, - author$project$Main$LexiconMsg, - author$project$Lexicon$loadWordDefinition(id))); - case 'LoadDefinitionByWord': - var word = msg.a; - return _Utils_Tuple2( - model, - A2( - elm$core$Platform$Cmd$map, - author$project$Main$LexiconMsg, - A2(author$project$Lexicon$loadWordDefinitionByWord, word, model.lexiconModel.wordList))); - case 'LoadDefinitionByInt': - var id = msg.a; - return _Utils_Tuple2( - model, - A2( - elm$core$Platform$Cmd$map, - author$project$Main$LexiconMsg, - author$project$Lexicon$loadWordDefinition( - elm$core$String$fromInt(id)))); - case 'FilterWordList': - var wordOrPart = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - {query: wordOrPart}), - elm$core$Platform$Cmd$none); - case 'SaveWord': - var word = msg.a; - return _Utils_Tuple2( - model, - author$project$Main$saveWord( - author$project$Lexicon$wordEncoder(word))); - case 'RemoveSavedWord': - var word = msg.a; - return _Utils_Tuple2( - model, - author$project$Main$removeSavedWord( - author$project$Lexicon$wordEncoder(word))); - case 'SavedWordListChanged': - var swl = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - { - savedWords: elm$core$Maybe$Just(swl) - }), - elm$core$Platform$Cmd$none); - case 'NoOp': - return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); - default: - return _Utils_Tuple2(model, author$project$Main$unfocusSearchBox); - } - }); -var author$project$Main$LoadDefinitionByWord = function (a) { - return {$: 'LoadDefinitionByWord', a: a}; -}; -var author$project$Main$GoHome = {$: 'GoHome'}; -var author$project$Main$GoSettings = {$: 'GoSettings'}; -var elm$core$String$foldr = _String_foldr; -var elm$core$String$toList = function (string) { - return A3(elm$core$String$foldr, elm$core$List$cons, _List_Nil, string); -}; -var elm$core$String$cons = _String_cons; -var rtfeldman$elm_css$Css$withPrecedingHash = function (str) { - return A2(elm$core$String$startsWith, '#', str) ? str : A2( - elm$core$String$cons, - _Utils_chr('#'), - str); -}; -var rtfeldman$elm_css$Css$Structure$Compatible = {$: 'Compatible'}; -var rtfeldman$elm_css$Css$erroneousHex = function (str) { - return { - alpha: 1, - blue: 0, - color: rtfeldman$elm_css$Css$Structure$Compatible, - green: 0, - red: 0, - value: rtfeldman$elm_css$Css$withPrecedingHash(str) - }; -}; -var elm$core$Basics$composeR = F3( - function (f, g, x) { - return g( - f(x)); - }); -var elm$core$String$fromList = _String_fromList; -var elm$core$String$toLower = _String_toLower; -var elm$core$List$tail = function (list) { - if (list.b) { - var x = list.a; - var xs = list.b; - return elm$core$Maybe$Just(xs); - } else { - return elm$core$Maybe$Nothing; - } -}; -var elm$core$Result$map = F2( - function (func, ra) { - if (ra.$ === 'Ok') { - var a = ra.a; - return elm$core$Result$Ok( - func(a)); - } else { - var e = ra.a; - return elm$core$Result$Err(e); - } - }); -var elm$core$Result$mapError = F2( - function (f, result) { - if (result.$ === 'Ok') { - var v = result.a; - return elm$core$Result$Ok(v); - } else { - var e = result.a; - return elm$core$Result$Err( - f(e)); - } - }); -var elm$core$Basics$pow = _Basics_pow; -var elm$core$String$fromChar = function (_char) { - return A2(elm$core$String$cons, _char, ''); -}; -var rtfeldman$elm_hex$Hex$fromStringHelp = F3( - function (position, chars, accumulated) { - fromStringHelp: - while (true) { - if (!chars.b) { - return elm$core$Result$Ok(accumulated); - } else { - var _char = chars.a; - var rest = chars.b; - switch (_char.valueOf()) { - case '0': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated; - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '1': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + A2(elm$core$Basics$pow, 16, position); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '2': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (2 * A2(elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '3': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (3 * A2(elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '4': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (4 * A2(elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '5': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (5 * A2(elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '6': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (6 * A2(elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '7': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (7 * A2(elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '8': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (8 * A2(elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '9': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (9 * A2(elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case 'a': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (10 * A2(elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case 'b': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (11 * A2(elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case 'c': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (12 * A2(elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case 'd': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (13 * A2(elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case 'e': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (14 * A2(elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case 'f': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (15 * A2(elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - default: - var nonHex = _char; - return elm$core$Result$Err( - elm$core$String$fromChar(nonHex) + ' is not a valid hexadecimal character.'); - } - } - } - }); -var rtfeldman$elm_hex$Hex$fromString = function (str) { - if (elm$core$String$isEmpty(str)) { - return elm$core$Result$Err('Empty strings are not valid hexadecimal strings.'); - } else { - var result = function () { - if (A2(elm$core$String$startsWith, '-', str)) { - var list = A2( - elm$core$Maybe$withDefault, - _List_Nil, - elm$core$List$tail( - elm$core$String$toList(str))); - return A2( - elm$core$Result$map, - elm$core$Basics$negate, - A3( - rtfeldman$elm_hex$Hex$fromStringHelp, - elm$core$List$length(list) - 1, - list, - 0)); - } else { - return A3( - rtfeldman$elm_hex$Hex$fromStringHelp, - elm$core$String$length(str) - 1, - elm$core$String$toList(str), - 0); - } - }(); - var formatError = function (err) { - return A2( - elm$core$String$join, - ' ', - _List_fromArray( - ['\"' + (str + '\"'), 'is not a valid hexadecimal string because', err])); - }; - return A2(elm$core$Result$mapError, formatError, result); - } -}; -var rtfeldman$elm_css$Css$validHex = F5( - function (str, _n0, _n1, _n2, _n3) { - var r1 = _n0.a; - var r2 = _n0.b; - var g1 = _n1.a; - var g2 = _n1.b; - var b1 = _n2.a; - var b2 = _n2.b; - var a1 = _n3.a; - var a2 = _n3.b; - var toResult = A2( - elm$core$Basics$composeR, - elm$core$String$fromList, - A2(elm$core$Basics$composeR, elm$core$String$toLower, rtfeldman$elm_hex$Hex$fromString)); - var results = _Utils_Tuple2( - _Utils_Tuple2( - toResult( - _List_fromArray( - [r1, r2])), - toResult( - _List_fromArray( - [g1, g2]))), - _Utils_Tuple2( - toResult( - _List_fromArray( - [b1, b2])), - toResult( - _List_fromArray( - [a1, a2])))); - if ((((results.a.a.$ === 'Ok') && (results.a.b.$ === 'Ok')) && (results.b.a.$ === 'Ok')) && (results.b.b.$ === 'Ok')) { - var _n5 = results.a; - var red = _n5.a.a; - var green = _n5.b.a; - var _n6 = results.b; - var blue = _n6.a.a; - var alpha = _n6.b.a; - return { - alpha: alpha / 255, - blue: blue, - color: rtfeldman$elm_css$Css$Structure$Compatible, - green: green, - red: red, - value: rtfeldman$elm_css$Css$withPrecedingHash(str) - }; - } else { - return rtfeldman$elm_css$Css$erroneousHex(str); - } - }); -var rtfeldman$elm_css$Css$hex = function (str) { - var withoutHash = A2(elm$core$String$startsWith, '#', str) ? A2(elm$core$String$dropLeft, 1, str) : str; - var _n0 = elm$core$String$toList(withoutHash); - _n0$4: - while (true) { - if ((_n0.b && _n0.b.b) && _n0.b.b.b) { - if (!_n0.b.b.b.b) { - var r = _n0.a; - var _n1 = _n0.b; - var g = _n1.a; - var _n2 = _n1.b; - var b = _n2.a; - return A5( - rtfeldman$elm_css$Css$validHex, - str, - _Utils_Tuple2(r, r), - _Utils_Tuple2(g, g), - _Utils_Tuple2(b, b), - _Utils_Tuple2( - _Utils_chr('f'), - _Utils_chr('f'))); - } else { - if (!_n0.b.b.b.b.b) { - var r = _n0.a; - var _n3 = _n0.b; - var g = _n3.a; - var _n4 = _n3.b; - var b = _n4.a; - var _n5 = _n4.b; - var a = _n5.a; - return A5( - rtfeldman$elm_css$Css$validHex, - str, - _Utils_Tuple2(r, r), - _Utils_Tuple2(g, g), - _Utils_Tuple2(b, b), - _Utils_Tuple2(a, a)); - } else { - if (_n0.b.b.b.b.b.b) { - if (!_n0.b.b.b.b.b.b.b) { - var r1 = _n0.a; - var _n6 = _n0.b; - var r2 = _n6.a; - var _n7 = _n6.b; - var g1 = _n7.a; - var _n8 = _n7.b; - var g2 = _n8.a; - var _n9 = _n8.b; - var b1 = _n9.a; - var _n10 = _n9.b; - var b2 = _n10.a; - return A5( - rtfeldman$elm_css$Css$validHex, - str, - _Utils_Tuple2(r1, r2), - _Utils_Tuple2(g1, g2), - _Utils_Tuple2(b1, b2), - _Utils_Tuple2( - _Utils_chr('f'), - _Utils_chr('f'))); - } else { - if (_n0.b.b.b.b.b.b.b.b && (!_n0.b.b.b.b.b.b.b.b.b)) { - var r1 = _n0.a; - var _n11 = _n0.b; - var r2 = _n11.a; - var _n12 = _n11.b; - var g1 = _n12.a; - var _n13 = _n12.b; - var g2 = _n13.a; - var _n14 = _n13.b; - var b1 = _n14.a; - var _n15 = _n14.b; - var b2 = _n15.a; - var _n16 = _n15.b; - var a1 = _n16.a; - var _n17 = _n16.b; - var a2 = _n17.a; - return A5( - rtfeldman$elm_css$Css$validHex, - str, - _Utils_Tuple2(r1, r2), - _Utils_Tuple2(g1, g2), - _Utils_Tuple2(b1, b2), - _Utils_Tuple2(a1, a2)); - } else { - break _n0$4; - } - } - } else { - break _n0$4; - } - } - } - } else { - break _n0$4; - } - } - return rtfeldman$elm_css$Css$erroneousHex(str); -}; -var rtfeldman$elm_css$Css$cssFunction = F2( - function (funcName, args) { - return funcName + ('(' + (A2(elm$core$String$join, ', ', args) + ')')); - }); -var rtfeldman$elm_css$Css$rgb = F3( - function (r, g, b) { - return { - alpha: 1, - blue: b, - color: rtfeldman$elm_css$Css$Structure$Compatible, - green: g, - red: r, - value: A2( - rtfeldman$elm_css$Css$cssFunction, - 'rgb', - A2( - elm$core$List$map, - elm$core$String$fromInt, - _List_fromArray( - [r, g, b]))) - }; - }); -var author$project$Theme$Colors$theme = { - button: { - active: A3(rtfeldman$elm_css$Css$rgb, 57, 101, 0), - background: A3(rtfeldman$elm_css$Css$rgb, 77, 136, 0), - text: A3(rtfeldman$elm_css$Css$rgb, 237, 237, 237) - }, - palette: { - blue: A3(rtfeldman$elm_css$Css$rgb, 46, 153, 174), - cream: A3(rtfeldman$elm_css$Css$rgb, 254, 248, 222), - darkBlue: A3(rtfeldman$elm_css$Css$rgb, 10, 70, 80), - darkGreen: rtfeldman$elm_css$Css$hex('#03697d'), - green: A3(rtfeldman$elm_css$Css$rgb, 122, 153, 27), - lightBlue: A3(rtfeldman$elm_css$Css$rgb, 140, 230, 250), - lightGreen: A3(rtfeldman$elm_css$Css$rgb, 171, 208, 57), - white: A3(rtfeldman$elm_css$Css$rgb, 255, 255, 255) - } -}; -var rtfeldman$elm_css$VirtualDom$Styled$Node = F3( - function (a, b, c) { - return {$: 'Node', a: a, b: b, c: c}; - }); -var rtfeldman$elm_css$VirtualDom$Styled$node = rtfeldman$elm_css$VirtualDom$Styled$Node; -var rtfeldman$elm_css$Html$Styled$node = rtfeldman$elm_css$VirtualDom$Styled$node; -var rtfeldman$elm_css$Html$Styled$i = rtfeldman$elm_css$Html$Styled$node('i'); -var elm$virtual_dom$VirtualDom$property = F2( - function (key, value) { - return A2( - _VirtualDom_property, - _VirtualDom_noInnerHtmlOrFormAction(key), - _VirtualDom_noJavaScriptOrHtmlUri(value)); - }); -var rtfeldman$elm_css$VirtualDom$Styled$Attribute = F3( - function (a, b, c) { - return {$: 'Attribute', a: a, b: b, c: c}; - }); -var rtfeldman$elm_css$VirtualDom$Styled$property = F2( - function (key, value) { - return A3( - rtfeldman$elm_css$VirtualDom$Styled$Attribute, - A2(elm$virtual_dom$VirtualDom$property, key, value), - _List_Nil, - ''); - }); -var rtfeldman$elm_css$Html$Styled$Attributes$stringProperty = F2( - function (key, string) { - return A2( - rtfeldman$elm_css$VirtualDom$Styled$property, - key, - elm$json$Json$Encode$string(string)); - }); -var rtfeldman$elm_css$Html$Styled$Attributes$class = rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('className'); -var rtfeldman$elm_css$Html$Styled$Attributes$classList = function (classes) { - return rtfeldman$elm_css$Html$Styled$Attributes$class( - A2( - elm$core$String$join, - ' ', - A2( - elm$core$List$map, - elm$core$Tuple$first, - A2(elm$core$List$filter, elm$core$Tuple$second, classes)))); -}; -var author$project$Theme$Elements$fontAwesomeIcon = F2( - function (name, size) { - return A2( - rtfeldman$elm_css$Html$Styled$i, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$classList( - _List_fromArray( - [ - _Utils_Tuple2('fa-' + name, true), - _Utils_Tuple2('fa', true), - _Utils_Tuple2('fa-' + size, true) - ])) - ]), - _List_Nil); - }); -var rtfeldman$elm_css$Css$Preprocess$AppendProperty = function (a) { - return {$: 'AppendProperty', a: a}; -}; -var rtfeldman$elm_css$Css$property = F2( - function (key, value) { - return rtfeldman$elm_css$Css$Preprocess$AppendProperty(key + (':' + value)); - }); -var rtfeldman$elm_css$Css$color = function (c) { - return A2(rtfeldman$elm_css$Css$property, 'color', c.value); -}; -var rtfeldman$elm_css$Css$prop1 = F2( - function (key, arg) { - return A2(rtfeldman$elm_css$Css$property, key, arg.value); - }); -var rtfeldman$elm_css$Css$padding = rtfeldman$elm_css$Css$prop1('padding'); -var rtfeldman$elm_css$Css$PxUnits = {$: 'PxUnits'}; -var elm$core$String$fromFloat = _String_fromNumber; -var rtfeldman$elm_css$Css$Internal$lengthConverter = F3( - function (units, unitLabel, numericValue) { - return { - absoluteLength: rtfeldman$elm_css$Css$Structure$Compatible, - calc: rtfeldman$elm_css$Css$Structure$Compatible, - flexBasis: rtfeldman$elm_css$Css$Structure$Compatible, - fontSize: rtfeldman$elm_css$Css$Structure$Compatible, - length: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrAuto: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrAutoOrCoverOrContain: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNone: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNoneOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNumber: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNumberOrAutoOrNoneOrContent: rtfeldman$elm_css$Css$Structure$Compatible, - numericValue: numericValue, - textIndent: rtfeldman$elm_css$Css$Structure$Compatible, - unitLabel: unitLabel, - units: units, - value: _Utils_ap( - elm$core$String$fromFloat(numericValue), - unitLabel) - }; - }); -var rtfeldman$elm_css$Css$px = A2(rtfeldman$elm_css$Css$Internal$lengthConverter, rtfeldman$elm_css$Css$PxUnits, 'px'); -var rtfeldman$elm_css$Html$Styled$div = rtfeldman$elm_css$Html$Styled$node('div'); -var Skinney$murmur3$Murmur3$HashData = F4( - function (shift, seed, hash, charsProcessed) { - return {charsProcessed: charsProcessed, hash: hash, seed: seed, shift: shift}; - }); -var Skinney$murmur3$Murmur3$mur = F2( - function (c, h) { - return 4294967295 & (((h & 65535) * c) + ((65535 & ((h >>> 16) * c)) << 16)); - }); -var elm$core$Bitwise$or = _Bitwise_or; -var Skinney$murmur3$Murmur3$mix = F2( - function (h1, h2) { - var k1 = A2(Skinney$murmur3$Murmur3$mur, 3432918353, h2); - return h1 ^ A2(Skinney$murmur3$Murmur3$mur, 461845907, (k1 >>> 17) | (k1 << 15)); - }); -var Skinney$murmur3$Murmur3$finalize = function (data) { - var acc = data.hash ? A2(Skinney$murmur3$Murmur3$mix, data.seed, data.hash) : data.seed; - var h1 = acc ^ data.charsProcessed; - var h2 = A2(Skinney$murmur3$Murmur3$mur, 2246822507, h1 ^ (h1 >>> 16)); - var h3 = A2(Skinney$murmur3$Murmur3$mur, 3266489909, h2 ^ (h2 >>> 13)); - return (h3 ^ (h3 >>> 16)) >>> 0; -}; -var Skinney$murmur3$Murmur3$step = function (acc) { - var h1 = A2(Skinney$murmur3$Murmur3$mur, 5, (acc >>> 19) | (acc << 13)); - return ((h1 & 65535) + 27492) + ((65535 & ((h1 >>> 16) + 58964)) << 16); -}; -var Skinney$murmur3$Murmur3$hashFold = F2( - function (c, data) { - var res = data.hash | (c << data.shift); - var _n0 = data.shift; - if (_n0 === 24) { - var newHash = Skinney$murmur3$Murmur3$step( - A2(Skinney$murmur3$Murmur3$mix, data.seed, res)); - return {charsProcessed: data.charsProcessed + 1, hash: 0, seed: newHash, shift: 0}; - } else { - return {charsProcessed: data.charsProcessed + 1, hash: res, seed: data.seed, shift: data.shift + 8}; - } - }); -var Skinney$murmur3$UTF8$accumulate = F3( - function (add, _char, _n0) { - var acc = _n0.a; - var combine = _n0.b; - if (combine.$ === 'Nothing') { - return (_char < 128) ? _Utils_Tuple2( - A2(add, _char, acc), - elm$core$Maybe$Nothing) : ((_char < 2048) ? _Utils_Tuple2( - A2( - add, - 128 | (63 & _char), - A2(add, 192 | (_char >>> 6), acc)), - elm$core$Maybe$Nothing) : (((_char < 55296) || (_char >= 57344)) ? _Utils_Tuple2( - A2( - add, - 128 | (63 & _char), - A2( - add, - 128 | (63 & (_char >>> 6)), - A2(add, 224 | (_char >>> 12), acc))), - elm$core$Maybe$Nothing) : _Utils_Tuple2( - acc, - elm$core$Maybe$Just(_char)))); - } else { - var prev = combine.a; - var combined = ((1023 & _char) | ((1023 & prev) << 10)) + 65536; - return _Utils_Tuple2( - A2( - add, - 128 | (63 & combined), - A2( - add, - 128 | (63 & (combined >>> 6)), - A2( - add, - 128 | (63 & (combined >>> 12)), - A2(add, 240 | (combined >>> 18), acc)))), - elm$core$Maybe$Nothing); - } - }); -var elm$core$String$foldl = _String_foldl; -var Skinney$murmur3$UTF8$foldl = F3( - function (op, acc, input) { - var helper = F2( - function (_char, res) { - return A3( - Skinney$murmur3$UTF8$accumulate, - op, - elm$core$Char$toCode(_char), - res); - }); - return A3( - elm$core$String$foldl, - helper, - _Utils_Tuple2(acc, elm$core$Maybe$Nothing), - input).a; - }); -var Skinney$murmur3$Murmur3$hashString = F2( - function (seed, str) { - return Skinney$murmur3$Murmur3$finalize( - A3( - Skinney$murmur3$UTF8$foldl, - Skinney$murmur3$Murmur3$hashFold, - A4(Skinney$murmur3$Murmur3$HashData, 0, seed, 0, 0), - str)); - }); -var elm$core$List$singleton = function (value) { - return _List_fromArray( - [value]); -}; -var rtfeldman$elm_css$Css$Preprocess$stylesheet = function (snippets) { - return {charset: elm$core$Maybe$Nothing, imports: _List_Nil, namespaces: _List_Nil, snippets: snippets}; -}; -var rtfeldman$elm_css$Css$Preprocess$unwrapSnippet = function (_n0) { - var declarations = _n0.a; - return declarations; -}; -var elm$core$List$takeReverse = F3( - function (n, list, kept) { - takeReverse: - while (true) { - if (n <= 0) { - return kept; - } else { - if (!list.b) { - return kept; - } else { - var x = list.a; - var xs = list.b; - var $temp$n = n - 1, - $temp$list = xs, - $temp$kept = A2(elm$core$List$cons, x, kept); - n = $temp$n; - list = $temp$list; - kept = $temp$kept; - continue takeReverse; - } - } - } - }); -var elm$core$List$takeTailRec = F2( - function (n, list) { - return elm$core$List$reverse( - A3(elm$core$List$takeReverse, n, list, _List_Nil)); - }); -var elm$core$List$takeFast = F3( - function (ctr, n, list) { - if (n <= 0) { - return _List_Nil; - } else { - var _n0 = _Utils_Tuple2(n, list); - _n0$1: - while (true) { - _n0$5: - while (true) { - if (!_n0.b.b) { - return list; - } else { - if (_n0.b.b.b) { - switch (_n0.a) { - case 1: - break _n0$1; - case 2: - var _n2 = _n0.b; - var x = _n2.a; - var _n3 = _n2.b; - var y = _n3.a; - return _List_fromArray( - [x, y]); - case 3: - if (_n0.b.b.b.b) { - var _n4 = _n0.b; - var x = _n4.a; - var _n5 = _n4.b; - var y = _n5.a; - var _n6 = _n5.b; - var z = _n6.a; - return _List_fromArray( - [x, y, z]); - } else { - break _n0$5; - } - default: - if (_n0.b.b.b.b && _n0.b.b.b.b.b) { - var _n7 = _n0.b; - var x = _n7.a; - var _n8 = _n7.b; - var y = _n8.a; - var _n9 = _n8.b; - var z = _n9.a; - var _n10 = _n9.b; - var w = _n10.a; - var tl = _n10.b; - return (ctr > 1000) ? A2( - elm$core$List$cons, - x, - A2( - elm$core$List$cons, - y, - A2( - elm$core$List$cons, - z, - A2( - elm$core$List$cons, - w, - A2(elm$core$List$takeTailRec, n - 4, tl))))) : A2( - elm$core$List$cons, - x, - A2( - elm$core$List$cons, - y, - A2( - elm$core$List$cons, - z, - A2( - elm$core$List$cons, - w, - A3(elm$core$List$takeFast, ctr + 1, n - 4, tl))))); - } else { - break _n0$5; - } - } - } else { - if (_n0.a === 1) { - break _n0$1; - } else { - break _n0$5; - } - } - } - } - return list; - } - var _n1 = _n0.b; - var x = _n1.a; - return _List_fromArray( - [x]); - } - }); -var elm$core$List$take = F2( - function (n, list) { - return A3(elm$core$List$takeFast, 0, n, list); - }); -var elm$core$Maybe$map = F2( - function (f, maybe) { - if (maybe.$ === 'Just') { - var value = maybe.a; - return elm$core$Maybe$Just( - f(value)); - } else { - return elm$core$Maybe$Nothing; - } - }); -var rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors = function (declarations) { - collectSelectors: - while (true) { - if (!declarations.b) { - return _List_Nil; - } else { - if (declarations.a.$ === 'StyleBlockDeclaration') { - var _n1 = declarations.a.a; - var firstSelector = _n1.a; - var otherSelectors = _n1.b; - var rest = declarations.b; - return _Utils_ap( - A2(elm$core$List$cons, firstSelector, otherSelectors), - rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(rest)); - } else { - var rest = declarations.b; - var $temp$declarations = rest; - declarations = $temp$declarations; - continue collectSelectors; - } - } - } -}; -var rtfeldman$elm_css$Css$Preprocess$Resolve$last = function (list) { - last: - while (true) { - if (!list.b) { - return elm$core$Maybe$Nothing; - } else { - if (!list.b.b) { - var singleton = list.a; - return elm$core$Maybe$Just(singleton); - } else { - var rest = list.b; - var $temp$list = rest; - list = $temp$list; - continue last; - } - } - } -}; -var rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration = function (declarations) { - lastDeclaration: - while (true) { - if (!declarations.b) { - return elm$core$Maybe$Nothing; - } else { - if (!declarations.b.b) { - var x = declarations.a; - return elm$core$Maybe$Just( - _List_fromArray( - [x])); - } else { - var xs = declarations.b; - var $temp$declarations = xs; - declarations = $temp$declarations; - continue lastDeclaration; - } - } - } -}; -var rtfeldman$elm_css$Css$Preprocess$Resolve$oneOf = function (maybes) { - oneOf: - while (true) { - if (!maybes.b) { - return elm$core$Maybe$Nothing; - } else { - var maybe = maybes.a; - var rest = maybes.b; - if (maybe.$ === 'Nothing') { - var $temp$maybes = rest; - maybes = $temp$maybes; - continue oneOf; - } else { - return maybe; - } - } - } -}; -var rtfeldman$elm_css$Css$Structure$FontFeatureValues = function (a) { - return {$: 'FontFeatureValues', a: a}; -}; -var rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues = function (tuples) { - var expandTuples = function (tuplesToExpand) { - if (!tuplesToExpand.b) { - return _List_Nil; - } else { - var properties = tuplesToExpand.a; - var rest = tuplesToExpand.b; - return A2( - elm$core$List$cons, - properties, - expandTuples(rest)); - } - }; - var newTuples = expandTuples(tuples); - return _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$FontFeatureValues(newTuples) - ]); -}; -var rtfeldman$elm_css$Css$Structure$DocumentRule = F5( - function (a, b, c, d, e) { - return {$: 'DocumentRule', a: a, b: b, c: c, d: d, e: e}; - }); -var rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule = F5( - function (str1, str2, str3, str4, declaration) { - if (declaration.$ === 'StyleBlockDeclaration') { - var structureStyleBlock = declaration.a; - return A5(rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4, structureStyleBlock); - } else { - return declaration; - } - }); -var rtfeldman$elm_css$Css$Structure$MediaRule = F2( - function (a, b) { - return {$: 'MediaRule', a: a, b: b}; - }); -var rtfeldman$elm_css$Css$Structure$SupportsRule = F2( - function (a, b) { - return {$: 'SupportsRule', a: a, b: b}; - }); -var rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule = F2( - function (mediaQueries, declaration) { - switch (declaration.$) { - case 'StyleBlockDeclaration': - var structureStyleBlock = declaration.a; - return A2( - rtfeldman$elm_css$Css$Structure$MediaRule, - mediaQueries, - _List_fromArray( - [structureStyleBlock])); - case 'MediaRule': - var newMediaQueries = declaration.a; - var structureStyleBlocks = declaration.b; - return A2( - rtfeldman$elm_css$Css$Structure$MediaRule, - _Utils_ap(mediaQueries, newMediaQueries), - structureStyleBlocks); - case 'SupportsRule': - var str = declaration.a; - var declarations = declaration.b; - return A2( - rtfeldman$elm_css$Css$Structure$SupportsRule, - str, - A2( - elm$core$List$map, - rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule(mediaQueries), - declarations)); - case 'DocumentRule': - var str1 = declaration.a; - var str2 = declaration.b; - var str3 = declaration.c; - var str4 = declaration.d; - var structureStyleBlock = declaration.e; - return A5(rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4, structureStyleBlock); - case 'PageRule': - return declaration; - case 'FontFace': - return declaration; - case 'Keyframes': - return declaration; - case 'Viewport': - return declaration; - case 'CounterStyle': - return declaration; - default: - return declaration; - } - }); -var rtfeldman$elm_css$Css$Structure$CounterStyle = function (a) { - return {$: 'CounterStyle', a: a}; -}; -var rtfeldman$elm_css$Css$Structure$FontFace = function (a) { - return {$: 'FontFace', a: a}; -}; -var rtfeldman$elm_css$Css$Structure$Keyframes = function (a) { - return {$: 'Keyframes', a: a}; -}; -var rtfeldman$elm_css$Css$Structure$PageRule = F2( - function (a, b) { - return {$: 'PageRule', a: a, b: b}; - }); -var rtfeldman$elm_css$Css$Structure$Selector = F3( - function (a, b, c) { - return {$: 'Selector', a: a, b: b, c: c}; - }); -var rtfeldman$elm_css$Css$Structure$StyleBlock = F3( - function (a, b, c) { - return {$: 'StyleBlock', a: a, b: b, c: c}; - }); -var rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration = function (a) { - return {$: 'StyleBlockDeclaration', a: a}; -}; -var rtfeldman$elm_css$Css$Structure$Viewport = function (a) { - return {$: 'Viewport', a: a}; -}; -var rtfeldman$elm_css$Css$Structure$mapLast = F2( - function (update, list) { - if (!list.b) { - return list; - } else { - if (!list.b.b) { - var only = list.a; - return _List_fromArray( - [ - update(only) - ]); - } else { - var first = list.a; - var rest = list.b; - return A2( - elm$core$List$cons, - first, - A2(rtfeldman$elm_css$Css$Structure$mapLast, update, rest)); - } - } - }); -var rtfeldman$elm_css$Css$Structure$withPropertyAppended = F2( - function (property, _n0) { - var firstSelector = _n0.a; - var otherSelectors = _n0.b; - var properties = _n0.c; - return A3( - rtfeldman$elm_css$Css$Structure$StyleBlock, - firstSelector, - otherSelectors, - _Utils_ap( - properties, - _List_fromArray( - [property]))); - }); -var rtfeldman$elm_css$Css$Structure$appendProperty = F2( - function (property, declarations) { - if (!declarations.b) { - return declarations; - } else { - if (!declarations.b.b) { - switch (declarations.a.$) { - case 'StyleBlockDeclaration': - var styleBlock = declarations.a.a; - return _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( - A2(rtfeldman$elm_css$Css$Structure$withPropertyAppended, property, styleBlock)) - ]); - case 'MediaRule': - var _n1 = declarations.a; - var mediaQueries = _n1.a; - var styleBlocks = _n1.b; - return _List_fromArray( - [ - A2( - rtfeldman$elm_css$Css$Structure$MediaRule, - mediaQueries, - A2( - rtfeldman$elm_css$Css$Structure$mapLast, - rtfeldman$elm_css$Css$Structure$withPropertyAppended(property), - styleBlocks)) - ]); - default: - return declarations; - } - } else { - var first = declarations.a; - var rest = declarations.b; - return A2( - elm$core$List$cons, - first, - A2(rtfeldman$elm_css$Css$Structure$appendProperty, property, rest)); - } - } - }); -var rtfeldman$elm_css$Css$Structure$appendToLastSelector = F2( - function (f, styleBlock) { - if (!styleBlock.b.b) { - var only = styleBlock.a; - var properties = styleBlock.c; - return _List_fromArray( - [ - A3(rtfeldman$elm_css$Css$Structure$StyleBlock, only, _List_Nil, properties), - A3( - rtfeldman$elm_css$Css$Structure$StyleBlock, - f(only), - _List_Nil, - _List_Nil) - ]); - } else { - var first = styleBlock.a; - var rest = styleBlock.b; - var properties = styleBlock.c; - var newRest = A2(elm$core$List$map, f, rest); - var newFirst = f(first); - return _List_fromArray( - [ - A3(rtfeldman$elm_css$Css$Structure$StyleBlock, first, rest, properties), - A3(rtfeldman$elm_css$Css$Structure$StyleBlock, newFirst, newRest, _List_Nil) - ]); - } - }); -var rtfeldman$elm_css$Css$Structure$applyPseudoElement = F2( - function (pseudo, _n0) { - var sequence = _n0.a; - var selectors = _n0.b; - return A3( - rtfeldman$elm_css$Css$Structure$Selector, - sequence, - selectors, - elm$core$Maybe$Just(pseudo)); - }); -var rtfeldman$elm_css$Css$Structure$appendPseudoElementToLastSelector = F2( - function (pseudo, styleBlock) { - return A2( - rtfeldman$elm_css$Css$Structure$appendToLastSelector, - rtfeldman$elm_css$Css$Structure$applyPseudoElement(pseudo), - styleBlock); - }); -var rtfeldman$elm_css$Css$Structure$CustomSelector = F2( - function (a, b) { - return {$: 'CustomSelector', a: a, b: b}; - }); -var rtfeldman$elm_css$Css$Structure$TypeSelectorSequence = F2( - function (a, b) { - return {$: 'TypeSelectorSequence', a: a, b: b}; - }); -var rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence = function (a) { - return {$: 'UniversalSelectorSequence', a: a}; -}; -var rtfeldman$elm_css$Css$Structure$appendRepeatable = F2( - function (selector, sequence) { - switch (sequence.$) { - case 'TypeSelectorSequence': - var typeSelector = sequence.a; - var list = sequence.b; - return A2( - rtfeldman$elm_css$Css$Structure$TypeSelectorSequence, - typeSelector, - _Utils_ap( - list, - _List_fromArray( - [selector]))); - case 'UniversalSelectorSequence': - var list = sequence.a; - return rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence( - _Utils_ap( - list, - _List_fromArray( - [selector]))); - default: - var str = sequence.a; - var list = sequence.b; - return A2( - rtfeldman$elm_css$Css$Structure$CustomSelector, - str, - _Utils_ap( - list, - _List_fromArray( - [selector]))); - } - }); -var rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator = F2( - function (selector, list) { - if (!list.b) { - return _List_Nil; - } else { - if (!list.b.b) { - var _n1 = list.a; - var combinator = _n1.a; - var sequence = _n1.b; - return _List_fromArray( - [ - _Utils_Tuple2( - combinator, - A2(rtfeldman$elm_css$Css$Structure$appendRepeatable, selector, sequence)) - ]); - } else { - var first = list.a; - var rest = list.b; - return A2( - elm$core$List$cons, - first, - A2(rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator, selector, rest)); - } - } - }); -var rtfeldman$elm_css$Css$Structure$appendRepeatableSelector = F2( - function (repeatableSimpleSelector, selector) { - if (!selector.b.b) { - var sequence = selector.a; - var pseudoElement = selector.c; - return A3( - rtfeldman$elm_css$Css$Structure$Selector, - A2(rtfeldman$elm_css$Css$Structure$appendRepeatable, repeatableSimpleSelector, sequence), - _List_Nil, - pseudoElement); - } else { - var firstSelector = selector.a; - var tuples = selector.b; - var pseudoElement = selector.c; - return A3( - rtfeldman$elm_css$Css$Structure$Selector, - firstSelector, - A2(rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator, repeatableSimpleSelector, tuples), - pseudoElement); - } - }); -var rtfeldman$elm_css$Css$Structure$appendRepeatableToLastSelector = F2( - function (selector, styleBlock) { - return A2( - rtfeldman$elm_css$Css$Structure$appendToLastSelector, - rtfeldman$elm_css$Css$Structure$appendRepeatableSelector(selector), - styleBlock); - }); -var rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock = F2( - function (update, declarations) { - _n0$12: - while (true) { - if (!declarations.b) { - return declarations; - } else { - if (!declarations.b.b) { - switch (declarations.a.$) { - case 'StyleBlockDeclaration': - var styleBlock = declarations.a.a; - return A2( - elm$core$List$map, - rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration, - update(styleBlock)); - case 'MediaRule': - if (declarations.a.b.b) { - if (!declarations.a.b.b.b) { - var _n1 = declarations.a; - var mediaQueries = _n1.a; - var _n2 = _n1.b; - var styleBlock = _n2.a; - return _List_fromArray( - [ - A2( - rtfeldman$elm_css$Css$Structure$MediaRule, - mediaQueries, - update(styleBlock)) - ]); - } else { - var _n3 = declarations.a; - var mediaQueries = _n3.a; - var _n4 = _n3.b; - var first = _n4.a; - var rest = _n4.b; - var _n5 = A2( - rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, - update, - _List_fromArray( - [ - A2(rtfeldman$elm_css$Css$Structure$MediaRule, mediaQueries, rest) - ])); - if ((_n5.b && (_n5.a.$ === 'MediaRule')) && (!_n5.b.b)) { - var _n6 = _n5.a; - var newMediaQueries = _n6.a; - var newStyleBlocks = _n6.b; - return _List_fromArray( - [ - A2( - rtfeldman$elm_css$Css$Structure$MediaRule, - newMediaQueries, - A2(elm$core$List$cons, first, newStyleBlocks)) - ]); - } else { - var newDeclarations = _n5; - return newDeclarations; - } - } - } else { - break _n0$12; - } - case 'SupportsRule': - var _n7 = declarations.a; - var str = _n7.a; - var nestedDeclarations = _n7.b; - return _List_fromArray( - [ - A2( - rtfeldman$elm_css$Css$Structure$SupportsRule, - str, - A2(rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, update, nestedDeclarations)) - ]); - case 'DocumentRule': - var _n8 = declarations.a; - var str1 = _n8.a; - var str2 = _n8.b; - var str3 = _n8.c; - var str4 = _n8.d; - var styleBlock = _n8.e; - return A2( - elm$core$List$map, - A4(rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4), - update(styleBlock)); - case 'PageRule': - var _n9 = declarations.a; - return declarations; - case 'FontFace': - return declarations; - case 'Keyframes': - return declarations; - case 'Viewport': - return declarations; - case 'CounterStyle': - return declarations; - default: - return declarations; - } - } else { - break _n0$12; - } - } - } - var first = declarations.a; - var rest = declarations.b; - return A2( - elm$core$List$cons, - first, - A2(rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, update, rest)); - }); -var rtfeldman$elm_css$Css$Structure$styleBlockToMediaRule = F2( - function (mediaQueries, declaration) { - if (declaration.$ === 'StyleBlockDeclaration') { - var styleBlock = declaration.a; - return A2( - rtfeldman$elm_css$Css$Structure$MediaRule, - mediaQueries, - _List_fromArray( - [styleBlock])); - } else { - return declaration; - } - }); -var rtfeldman$elm_css$Hash$murmurSeed = 15739; -var elm$core$Basics$modBy = _Basics_modBy; -var rtfeldman$elm_hex$Hex$unsafeToDigit = function (num) { - unsafeToDigit: - while (true) { - switch (num) { - case 0: - return _Utils_chr('0'); - case 1: - return _Utils_chr('1'); - case 2: - return _Utils_chr('2'); - case 3: - return _Utils_chr('3'); - case 4: - return _Utils_chr('4'); - case 5: - return _Utils_chr('5'); - case 6: - return _Utils_chr('6'); - case 7: - return _Utils_chr('7'); - case 8: - return _Utils_chr('8'); - case 9: - return _Utils_chr('9'); - case 10: - return _Utils_chr('a'); - case 11: - return _Utils_chr('b'); - case 12: - return _Utils_chr('c'); - case 13: - return _Utils_chr('d'); - case 14: - return _Utils_chr('e'); - case 15: - return _Utils_chr('f'); - default: - var $temp$num = num; - num = $temp$num; - continue unsafeToDigit; - } - } -}; -var rtfeldman$elm_hex$Hex$unsafePositiveToDigits = F2( - function (digits, num) { - unsafePositiveToDigits: - while (true) { - if (num < 16) { - return A2( - elm$core$List$cons, - rtfeldman$elm_hex$Hex$unsafeToDigit(num), - digits); - } else { - var $temp$digits = A2( - elm$core$List$cons, - rtfeldman$elm_hex$Hex$unsafeToDigit( - A2(elm$core$Basics$modBy, 16, num)), - digits), - $temp$num = (num / 16) | 0; - digits = $temp$digits; - num = $temp$num; - continue unsafePositiveToDigits; - } - } - }); -var rtfeldman$elm_hex$Hex$toString = function (num) { - return elm$core$String$fromList( - (num < 0) ? A2( - elm$core$List$cons, - _Utils_chr('-'), - A2(rtfeldman$elm_hex$Hex$unsafePositiveToDigits, _List_Nil, -num)) : A2(rtfeldman$elm_hex$Hex$unsafePositiveToDigits, _List_Nil, num)); -}; -var rtfeldman$elm_css$Hash$fromString = function (str) { - return A2( - elm$core$String$cons, - _Utils_chr('_'), - rtfeldman$elm_hex$Hex$toString( - A2(Skinney$murmur3$Murmur3$hashString, rtfeldman$elm_css$Hash$murmurSeed, str))); -}; -var rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast = F4( - function (nestedStyles, rest, f, declarations) { - var withoutParent = function (decls) { - return A2( - elm$core$Maybe$withDefault, - _List_Nil, - elm$core$List$tail(decls)); - }; - var nextResult = A2( - rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, - rest, - A2( - elm$core$Maybe$withDefault, - _List_Nil, - rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration(declarations))); - var newDeclarations = function () { - var _n14 = _Utils_Tuple2( - elm$core$List$head(nextResult), - rtfeldman$elm_css$Css$Preprocess$Resolve$last(declarations)); - if ((_n14.a.$ === 'Just') && (_n14.b.$ === 'Just')) { - var nextResultParent = _n14.a.a; - var originalParent = _n14.b.a; - return _Utils_ap( - A2( - elm$core$List$take, - elm$core$List$length(declarations) - 1, - declarations), - _List_fromArray( - [ - (!_Utils_eq(originalParent, nextResultParent)) ? nextResultParent : originalParent - ])); - } else { - return declarations; - } - }(); - var insertStylesToNestedDecl = function (lastDecl) { - return elm$core$List$concat( - A2( - rtfeldman$elm_css$Css$Structure$mapLast, - rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles(nestedStyles), - A2( - elm$core$List$map, - elm$core$List$singleton, - A2(rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, f, lastDecl)))); - }; - var initialResult = A2( - elm$core$Maybe$withDefault, - _List_Nil, - A2( - elm$core$Maybe$map, - insertStylesToNestedDecl, - rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration(declarations))); - return _Utils_ap( - newDeclarations, - _Utils_ap( - withoutParent(initialResult), - withoutParent(nextResult))); - }); -var rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles = F2( - function (styles, declarations) { - if (!styles.b) { - return declarations; - } else { - switch (styles.a.$) { - case 'AppendProperty': - var property = styles.a.a; - var rest = styles.b; - return A2( - rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, - rest, - A2(rtfeldman$elm_css$Css$Structure$appendProperty, property, declarations)); - case 'ExtendSelector': - var _n4 = styles.a; - var selector = _n4.a; - var nestedStyles = _n4.b; - var rest = styles.b; - return A4( - rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast, - nestedStyles, - rest, - rtfeldman$elm_css$Css$Structure$appendRepeatableToLastSelector(selector), - declarations); - case 'NestSnippet': - var _n5 = styles.a; - var selectorCombinator = _n5.a; - var snippets = _n5.b; - var rest = styles.b; - var chain = F2( - function (_n9, _n10) { - var originalSequence = _n9.a; - var originalTuples = _n9.b; - var originalPseudoElement = _n9.c; - var newSequence = _n10.a; - var newTuples = _n10.b; - var newPseudoElement = _n10.c; - return A3( - rtfeldman$elm_css$Css$Structure$Selector, - originalSequence, - _Utils_ap( - originalTuples, - A2( - elm$core$List$cons, - _Utils_Tuple2(selectorCombinator, newSequence), - newTuples)), - rtfeldman$elm_css$Css$Preprocess$Resolve$oneOf( - _List_fromArray( - [newPseudoElement, originalPseudoElement]))); - }); - var expandDeclaration = function (declaration) { - switch (declaration.$) { - case 'StyleBlockDeclaration': - var _n7 = declaration.a; - var firstSelector = _n7.a; - var otherSelectors = _n7.b; - var nestedStyles = _n7.c; - var newSelectors = A2( - elm$core$List$concatMap, - function (originalSelector) { - return A2( - elm$core$List$map, - chain(originalSelector), - A2(elm$core$List$cons, firstSelector, otherSelectors)); - }, - rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(declarations)); - var newDeclarations = function () { - if (!newSelectors.b) { - return _List_Nil; - } else { - var first = newSelectors.a; - var remainder = newSelectors.b; - return _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( - A3(rtfeldman$elm_css$Css$Structure$StyleBlock, first, remainder, _List_Nil)) - ]); - } - }(); - return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, nestedStyles, newDeclarations); - case 'MediaRule': - var mediaQueries = declaration.a; - var styleBlocks = declaration.b; - return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule, mediaQueries, styleBlocks); - case 'SupportsRule': - var str = declaration.a; - var otherSnippets = declaration.b; - return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule, str, otherSnippets); - case 'DocumentRule': - var str1 = declaration.a; - var str2 = declaration.b; - var str3 = declaration.c; - var str4 = declaration.d; - var styleBlock = declaration.e; - return A2( - elm$core$List$map, - A4(rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule, str1, str2, str3, str4), - rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock)); - case 'PageRule': - var str = declaration.a; - var properties = declaration.b; - return _List_fromArray( - [ - A2(rtfeldman$elm_css$Css$Structure$PageRule, str, properties) - ]); - case 'FontFace': - var properties = declaration.a; - return _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$FontFace(properties) - ]); - case 'Viewport': - var properties = declaration.a; - return _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$Viewport(properties) - ]); - case 'CounterStyle': - var properties = declaration.a; - return _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$CounterStyle(properties) - ]); - default: - var tuples = declaration.a; - return rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues(tuples); - } - }; - return elm$core$List$concat( - _Utils_ap( - _List_fromArray( - [ - A2(rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, rest, declarations) - ]), - A2( - elm$core$List$map, - expandDeclaration, - A2(elm$core$List$concatMap, rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)))); - case 'WithPseudoElement': - var _n11 = styles.a; - var pseudoElement = _n11.a; - var nestedStyles = _n11.b; - var rest = styles.b; - return A4( - rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast, - nestedStyles, - rest, - rtfeldman$elm_css$Css$Structure$appendPseudoElementToLastSelector(pseudoElement), - declarations); - case 'WithKeyframes': - var str = styles.a.a; - var rest = styles.b; - var name = rtfeldman$elm_css$Hash$fromString(str); - var newProperty = 'animation-name:' + name; - var newDeclarations = A2( - rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, - rest, - A2(rtfeldman$elm_css$Css$Structure$appendProperty, newProperty, declarations)); - return A2( - elm$core$List$append, - newDeclarations, - _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$Keyframes( - {declaration: str, name: name}) - ])); - case 'WithMedia': - var _n12 = styles.a; - var mediaQueries = _n12.a; - var nestedStyles = _n12.b; - var rest = styles.b; - var extraDeclarations = function () { - var _n13 = rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(declarations); - if (!_n13.b) { - return _List_Nil; - } else { - var firstSelector = _n13.a; - var otherSelectors = _n13.b; - return A2( - elm$core$List$map, - rtfeldman$elm_css$Css$Structure$styleBlockToMediaRule(mediaQueries), - A2( - rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, - nestedStyles, - elm$core$List$singleton( - rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( - A3(rtfeldman$elm_css$Css$Structure$StyleBlock, firstSelector, otherSelectors, _List_Nil))))); - } - }(); - return _Utils_ap( - A2(rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, rest, declarations), - extraDeclarations); - default: - var otherStyles = styles.a.a; - var rest = styles.b; - return A2( - rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, - _Utils_ap(otherStyles, rest), - declarations); - } - } - }); -var rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock = function (_n2) { - var firstSelector = _n2.a; - var otherSelectors = _n2.b; - var styles = _n2.c; - return A2( - rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, - styles, - _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( - A3(rtfeldman$elm_css$Css$Structure$StyleBlock, firstSelector, otherSelectors, _List_Nil)) - ])); -}; -var rtfeldman$elm_css$Css$Preprocess$Resolve$extract = function (snippetDeclarations) { - if (!snippetDeclarations.b) { - return _List_Nil; - } else { - var first = snippetDeclarations.a; - var rest = snippetDeclarations.b; - return _Utils_ap( - rtfeldman$elm_css$Css$Preprocess$Resolve$toDeclarations(first), - rtfeldman$elm_css$Css$Preprocess$Resolve$extract(rest)); - } -}; -var rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule = F2( - function (mediaQueries, styleBlocks) { - var handleStyleBlock = function (styleBlock) { - return A2( - elm$core$List$map, - rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule(mediaQueries), - rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock)); - }; - return A2(elm$core$List$concatMap, handleStyleBlock, styleBlocks); - }); -var rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule = F2( - function (str, snippets) { - var declarations = rtfeldman$elm_css$Css$Preprocess$Resolve$extract( - A2(elm$core$List$concatMap, rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)); - return _List_fromArray( - [ - A2(rtfeldman$elm_css$Css$Structure$SupportsRule, str, declarations) - ]); - }); -var rtfeldman$elm_css$Css$Preprocess$Resolve$toDeclarations = function (snippetDeclaration) { - switch (snippetDeclaration.$) { - case 'StyleBlockDeclaration': - var styleBlock = snippetDeclaration.a; - return rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock); - case 'MediaRule': - var mediaQueries = snippetDeclaration.a; - var styleBlocks = snippetDeclaration.b; - return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule, mediaQueries, styleBlocks); - case 'SupportsRule': - var str = snippetDeclaration.a; - var snippets = snippetDeclaration.b; - return A2(rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule, str, snippets); - case 'DocumentRule': - var str1 = snippetDeclaration.a; - var str2 = snippetDeclaration.b; - var str3 = snippetDeclaration.c; - var str4 = snippetDeclaration.d; - var styleBlock = snippetDeclaration.e; - return A2( - elm$core$List$map, - A4(rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule, str1, str2, str3, str4), - rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock)); - case 'PageRule': - var str = snippetDeclaration.a; - var properties = snippetDeclaration.b; - return _List_fromArray( - [ - A2(rtfeldman$elm_css$Css$Structure$PageRule, str, properties) - ]); - case 'FontFace': - var properties = snippetDeclaration.a; - return _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$FontFace(properties) - ]); - case 'Viewport': - var properties = snippetDeclaration.a; - return _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$Viewport(properties) - ]); - case 'CounterStyle': - var properties = snippetDeclaration.a; - return _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$CounterStyle(properties) - ]); - default: - var tuples = snippetDeclaration.a; - return rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues(tuples); - } -}; -var rtfeldman$elm_css$Css$Preprocess$Resolve$toStructure = function (_n0) { - var charset = _n0.charset; - var imports = _n0.imports; - var namespaces = _n0.namespaces; - var snippets = _n0.snippets; - var declarations = rtfeldman$elm_css$Css$Preprocess$Resolve$extract( - A2(elm$core$List$concatMap, rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)); - return {charset: charset, declarations: declarations, imports: imports, namespaces: namespaces}; -}; -var elm$core$List$any = F2( - function (isOkay, list) { - any: - while (true) { - if (!list.b) { - return false; - } else { - var x = list.a; - var xs = list.b; - if (isOkay(x)) { - return true; - } else { - var $temp$isOkay = isOkay, - $temp$list = xs; - isOkay = $temp$isOkay; - list = $temp$list; - continue any; - } - } - } - }); -var elm$core$List$all = F2( - function (isOkay, list) { - return !A2( - elm$core$List$any, - A2(elm$core$Basics$composeL, elm$core$Basics$not, isOkay), - list); - }); -var rtfeldman$elm_css$Css$Structure$compactHelp = F2( - function (declaration, _n0) { - var keyframesByName = _n0.a; - var declarations = _n0.b; - switch (declaration.$) { - case 'StyleBlockDeclaration': - var _n2 = declaration.a; - var properties = _n2.c; - return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2(elm$core$List$cons, declaration, declarations)); - case 'MediaRule': - var styleBlocks = declaration.b; - return A2( - elm$core$List$all, - function (_n3) { - var properties = _n3.c; - return elm$core$List$isEmpty(properties); - }, - styleBlocks) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2(elm$core$List$cons, declaration, declarations)); - case 'SupportsRule': - var otherDeclarations = declaration.b; - return elm$core$List$isEmpty(otherDeclarations) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2(elm$core$List$cons, declaration, declarations)); - case 'DocumentRule': - return _Utils_Tuple2( - keyframesByName, - A2(elm$core$List$cons, declaration, declarations)); - case 'PageRule': - var properties = declaration.b; - return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2(elm$core$List$cons, declaration, declarations)); - case 'FontFace': - var properties = declaration.a; - return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2(elm$core$List$cons, declaration, declarations)); - case 'Keyframes': - var record = declaration.a; - return elm$core$String$isEmpty(record.declaration) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - A3(elm$core$Dict$insert, record.name, record.declaration, keyframesByName), - declarations); - case 'Viewport': - var properties = declaration.a; - return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2(elm$core$List$cons, declaration, declarations)); - case 'CounterStyle': - var properties = declaration.a; - return elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2(elm$core$List$cons, declaration, declarations)); - default: - var tuples = declaration.a; - return A2( - elm$core$List$all, - function (_n4) { - var properties = _n4.b; - return elm$core$List$isEmpty(properties); - }, - tuples) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2(elm$core$List$cons, declaration, declarations)); - } - }); -var rtfeldman$elm_css$Css$Structure$withKeyframeDeclarations = F2( - function (keyframesByName, compactedDeclarations) { - return A2( - elm$core$List$append, - A2( - elm$core$List$map, - function (_n0) { - var name = _n0.a; - var decl = _n0.b; - return rtfeldman$elm_css$Css$Structure$Keyframes( - {declaration: decl, name: name}); - }, - elm$core$Dict$toList(keyframesByName)), - compactedDeclarations); - }); -var rtfeldman$elm_css$Css$Structure$compactStylesheet = function (_n0) { - var charset = _n0.charset; - var imports = _n0.imports; - var namespaces = _n0.namespaces; - var declarations = _n0.declarations; - var _n1 = A3( - elm$core$List$foldr, - rtfeldman$elm_css$Css$Structure$compactHelp, - _Utils_Tuple2(elm$core$Dict$empty, _List_Nil), - declarations); - var keyframesByName = _n1.a; - var compactedDeclarations = _n1.b; - var finalDeclarations = A2(rtfeldman$elm_css$Css$Structure$withKeyframeDeclarations, keyframesByName, compactedDeclarations); - return {charset: charset, declarations: finalDeclarations, imports: imports, namespaces: namespaces}; -}; -var rtfeldman$elm_css$Css$Structure$Output$charsetToString = function (charset) { - return A2( - elm$core$Maybe$withDefault, - '', - A2( - elm$core$Maybe$map, - function (str) { - return '@charset \"' + (str + '\"'); - }, - charset)); -}; -var rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString = function (expression) { - return '(' + (expression.feature + (A2( - elm$core$Maybe$withDefault, - '', - A2( - elm$core$Maybe$map, - elm$core$Basics$append(': '), - expression.value)) + ')')); -}; -var rtfeldman$elm_css$Css$Structure$Output$mediaTypeToString = function (mediaType) { - switch (mediaType.$) { - case 'Print': - return 'print'; - case 'Screen': - return 'screen'; - default: - return 'speech'; - } -}; -var rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString = function (mediaQuery) { - var prefixWith = F3( - function (str, mediaType, expressions) { - return str + (' ' + A2( - elm$core$String$join, - ' and ', - A2( - elm$core$List$cons, - rtfeldman$elm_css$Css$Structure$Output$mediaTypeToString(mediaType), - A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString, expressions)))); - }); - switch (mediaQuery.$) { - case 'AllQuery': - var expressions = mediaQuery.a; - return A2( - elm$core$String$join, - ' and ', - A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString, expressions)); - case 'OnlyQuery': - var mediaType = mediaQuery.a; - var expressions = mediaQuery.b; - return A3(prefixWith, 'only', mediaType, expressions); - case 'NotQuery': - var mediaType = mediaQuery.a; - var expressions = mediaQuery.b; - return A3(prefixWith, 'not', mediaType, expressions); - default: - var str = mediaQuery.a; - return str; - } -}; -var rtfeldman$elm_css$Css$Structure$Output$importMediaQueryToString = F2( - function (name, mediaQuery) { - return '@import \"' + (name + (rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString(mediaQuery) + '\"')); - }); -var rtfeldman$elm_css$Css$Structure$Output$importToString = function (_n0) { - var name = _n0.a; - var mediaQueries = _n0.b; - return A2( - elm$core$String$join, - '\n', - A2( - elm$core$List$map, - rtfeldman$elm_css$Css$Structure$Output$importMediaQueryToString(name), - mediaQueries)); -}; -var rtfeldman$elm_css$Css$Structure$Output$namespaceToString = function (_n0) { - var prefix = _n0.a; - var str = _n0.b; - return '@namespace ' + (prefix + ('\"' + (str + '\"'))); -}; -var rtfeldman$elm_css$Css$Structure$Output$spaceIndent = ' '; -var rtfeldman$elm_css$Css$Structure$Output$indent = function (str) { - return _Utils_ap(rtfeldman$elm_css$Css$Structure$Output$spaceIndent, str); -}; -var rtfeldman$elm_css$Css$Structure$Output$noIndent = ''; -var rtfeldman$elm_css$Css$Structure$Output$emitProperty = function (str) { - return str + ';'; -}; -var rtfeldman$elm_css$Css$Structure$Output$emitProperties = function (properties) { - return A2( - elm$core$String$join, - '\n', - A2( - elm$core$List$map, - A2(elm$core$Basics$composeL, rtfeldman$elm_css$Css$Structure$Output$indent, rtfeldman$elm_css$Css$Structure$Output$emitProperty), - properties)); -}; -var elm$core$String$append = _String_append; -var rtfeldman$elm_css$Css$Structure$Output$pseudoElementToString = function (_n0) { - var str = _n0.a; - return '::' + str; -}; -var rtfeldman$elm_css$Css$Structure$Output$combinatorToString = function (combinator) { - switch (combinator.$) { - case 'AdjacentSibling': - return '+'; - case 'GeneralSibling': - return '~'; - case 'Child': - return '>'; - default: - return ''; - } -}; -var rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString = function (repeatableSimpleSelector) { - switch (repeatableSimpleSelector.$) { - case 'ClassSelector': - var str = repeatableSimpleSelector.a; - return '.' + str; - case 'IdSelector': - var str = repeatableSimpleSelector.a; - return '#' + str; - case 'PseudoClassSelector': - var str = repeatableSimpleSelector.a; - return ':' + str; - default: - var str = repeatableSimpleSelector.a; - return '[' + (str + ']'); - } -}; -var rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString = function (simpleSelectorSequence) { - switch (simpleSelectorSequence.$) { - case 'TypeSelectorSequence': - var str = simpleSelectorSequence.a.a; - var repeatableSimpleSelectors = simpleSelectorSequence.b; - return A2( - elm$core$String$join, - '', - A2( - elm$core$List$cons, - str, - A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors))); - case 'UniversalSelectorSequence': - var repeatableSimpleSelectors = simpleSelectorSequence.a; - return elm$core$List$isEmpty(repeatableSimpleSelectors) ? '*' : A2( - elm$core$String$join, - '', - A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors)); - default: - var str = simpleSelectorSequence.a; - var repeatableSimpleSelectors = simpleSelectorSequence.b; - return A2( - elm$core$String$join, - '', - A2( - elm$core$List$cons, - str, - A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors))); - } -}; -var rtfeldman$elm_css$Css$Structure$Output$selectorChainToString = function (_n0) { - var combinator = _n0.a; - var sequence = _n0.b; - return A2( - elm$core$String$join, - ' ', - _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$Output$combinatorToString(combinator), - rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString(sequence) - ])); -}; -var rtfeldman$elm_css$Css$Structure$Output$selectorToString = function (_n0) { - var simpleSelectorSequence = _n0.a; - var chain = _n0.b; - var pseudoElement = _n0.c; - var segments = A2( - elm$core$List$cons, - rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString(simpleSelectorSequence), - A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$selectorChainToString, chain)); - var pseudoElementsString = A2( - elm$core$String$join, - '', - _List_fromArray( - [ - A2( - elm$core$Maybe$withDefault, - '', - A2(elm$core$Maybe$map, rtfeldman$elm_css$Css$Structure$Output$pseudoElementToString, pseudoElement)) - ])); - return A2( - elm$core$String$append, - A2( - elm$core$String$join, - ' ', - A2( - elm$core$List$filter, - A2(elm$core$Basics$composeL, elm$core$Basics$not, elm$core$String$isEmpty), - segments)), - pseudoElementsString); -}; -var rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock = F2( - function (indentLevel, _n0) { - var firstSelector = _n0.a; - var otherSelectors = _n0.b; - var properties = _n0.c; - var selectorStr = A2( - elm$core$String$join, - ', ', - A2( - elm$core$List$map, - rtfeldman$elm_css$Css$Structure$Output$selectorToString, - A2(elm$core$List$cons, firstSelector, otherSelectors))); - return A2( - elm$core$String$join, - '', - _List_fromArray( - [ - selectorStr, - ' {\n', - indentLevel, - rtfeldman$elm_css$Css$Structure$Output$emitProperties(properties), - '\n', - indentLevel, - '}' - ])); - }); -var rtfeldman$elm_css$Css$Structure$Output$prettyPrintDeclaration = function (decl) { - switch (decl.$) { - case 'StyleBlockDeclaration': - var styleBlock = decl.a; - return A2(rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock, rtfeldman$elm_css$Css$Structure$Output$noIndent, styleBlock); - case 'MediaRule': - var mediaQueries = decl.a; - var styleBlocks = decl.b; - var query = A2( - elm$core$String$join, - ',\n', - A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString, mediaQueries)); - var blocks = A2( - elm$core$String$join, - '\n\n', - A2( - elm$core$List$map, - A2( - elm$core$Basics$composeL, - rtfeldman$elm_css$Css$Structure$Output$indent, - rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock(rtfeldman$elm_css$Css$Structure$Output$spaceIndent)), - styleBlocks)); - return '@media ' + (query + (' {\n' + (blocks + '\n}'))); - case 'SupportsRule': - return 'TODO'; - case 'DocumentRule': - return 'TODO'; - case 'PageRule': - return 'TODO'; - case 'FontFace': - return 'TODO'; - case 'Keyframes': - var name = decl.a.name; - var declaration = decl.a.declaration; - return '@keyframes ' + (name + (' {\n' + (declaration + '\n}'))); - case 'Viewport': - return 'TODO'; - case 'CounterStyle': - return 'TODO'; - default: - return 'TODO'; - } -}; -var rtfeldman$elm_css$Css$Structure$Output$prettyPrint = function (_n0) { - var charset = _n0.charset; - var imports = _n0.imports; - var namespaces = _n0.namespaces; - var declarations = _n0.declarations; - return A2( - elm$core$String$join, - '\n\n', - A2( - elm$core$List$filter, - A2(elm$core$Basics$composeL, elm$core$Basics$not, elm$core$String$isEmpty), - _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$Output$charsetToString(charset), - A2( - elm$core$String$join, - '\n', - A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$importToString, imports)), - A2( - elm$core$String$join, - '\n', - A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$namespaceToString, namespaces)), - A2( - elm$core$String$join, - '\n\n', - A2(elm$core$List$map, rtfeldman$elm_css$Css$Structure$Output$prettyPrintDeclaration, declarations)) - ]))); -}; -var rtfeldman$elm_css$Css$Preprocess$Resolve$compileHelp = function (sheet) { - return rtfeldman$elm_css$Css$Structure$Output$prettyPrint( - rtfeldman$elm_css$Css$Structure$compactStylesheet( - rtfeldman$elm_css$Css$Preprocess$Resolve$toStructure(sheet))); -}; -var rtfeldman$elm_css$Css$Preprocess$Resolve$compile = function (styles) { - return A2( - elm$core$String$join, - '\n\n', - A2(elm$core$List$map, rtfeldman$elm_css$Css$Preprocess$Resolve$compileHelp, styles)); -}; -var rtfeldman$elm_css$Css$Preprocess$Snippet = function (a) { - return {$: 'Snippet', a: a}; -}; -var rtfeldman$elm_css$Css$Preprocess$StyleBlock = F3( - function (a, b, c) { - return {$: 'StyleBlock', a: a, b: b, c: c}; - }); -var rtfeldman$elm_css$Css$Preprocess$StyleBlockDeclaration = function (a) { - return {$: 'StyleBlockDeclaration', a: a}; -}; -var rtfeldman$elm_css$VirtualDom$Styled$makeSnippet = F2( - function (styles, sequence) { - var selector = A3(rtfeldman$elm_css$Css$Structure$Selector, sequence, _List_Nil, elm$core$Maybe$Nothing); - return rtfeldman$elm_css$Css$Preprocess$Snippet( - _List_fromArray( - [ - rtfeldman$elm_css$Css$Preprocess$StyleBlockDeclaration( - A3(rtfeldman$elm_css$Css$Preprocess$StyleBlock, selector, _List_Nil, styles)) - ])); - }); -var rtfeldman$elm_css$VirtualDom$Styled$murmurSeed = 15739; -var rtfeldman$elm_css$VirtualDom$Styled$getClassname = function (styles) { - return elm$core$List$isEmpty(styles) ? 'unstyled' : A2( - elm$core$String$cons, - _Utils_chr('_'), - rtfeldman$elm_hex$Hex$toString( - A2( - Skinney$murmur3$Murmur3$hashString, - rtfeldman$elm_css$VirtualDom$Styled$murmurSeed, - rtfeldman$elm_css$Css$Preprocess$Resolve$compile( - elm$core$List$singleton( - rtfeldman$elm_css$Css$Preprocess$stylesheet( - elm$core$List$singleton( - A2( - rtfeldman$elm_css$VirtualDom$Styled$makeSnippet, - styles, - rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence(_List_Nil))))))))); -}; -var rtfeldman$elm_css$Html$Styled$Internal$css = function (styles) { - var classname = rtfeldman$elm_css$VirtualDom$Styled$getClassname(styles); - var classProperty = A2( - elm$virtual_dom$VirtualDom$property, - 'className', - elm$json$Json$Encode$string(classname)); - return A3(rtfeldman$elm_css$VirtualDom$Styled$Attribute, classProperty, styles, classname); -}; -var rtfeldman$elm_css$Html$Styled$Attributes$css = rtfeldman$elm_css$Html$Styled$Internal$css; -var rtfeldman$elm_css$VirtualDom$Styled$on = F2( - function (eventName, handler) { - return A3( - rtfeldman$elm_css$VirtualDom$Styled$Attribute, - A2(elm$virtual_dom$VirtualDom$on, eventName, handler), - _List_Nil, - ''); - }); -var rtfeldman$elm_css$Html$Styled$Events$on = F2( - function (event, decoder) { - return A2( - rtfeldman$elm_css$VirtualDom$Styled$on, - event, - elm$virtual_dom$VirtualDom$Normal(decoder)); - }); -var rtfeldman$elm_css$Html$Styled$Events$onClick = function (msg) { - return A2( - rtfeldman$elm_css$Html$Styled$Events$on, - 'click', - elm$json$Json$Decode$succeed(msg)); -}; -var author$project$Theme$Elements$icon = F2( - function (name, click) { - return A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), - rtfeldman$elm_css$Css$padding( - rtfeldman$elm_css$Css$px(5)) - ])), - rtfeldman$elm_css$Html$Styled$Events$onClick(click) - ]), - _List_fromArray( - [ - A2(author$project$Theme$Elements$fontAwesomeIcon, name, '2x') - ])); - }); -var rtfeldman$elm_css$Css$Internal$property = F2( - function (key, value) { - return rtfeldman$elm_css$Css$Preprocess$AppendProperty(key + (':' + value)); - }); -var rtfeldman$elm_css$Css$Preprocess$ApplyStyles = function (a) { - return {$: 'ApplyStyles', a: a}; -}; -var rtfeldman$elm_css$Css$Internal$getOverloadedProperty = F3( - function (functionName, desiredKey, style) { - getOverloadedProperty: - while (true) { - switch (style.$) { - case 'AppendProperty': - var str = style.a; - var key = A2( - elm$core$Maybe$withDefault, - '', - elm$core$List$head( - A2(elm$core$String$split, ':', str))); - return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, key); - case 'ExtendSelector': - var selector = style.a; - return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-selector')); - case 'NestSnippet': - var combinator = style.a; - return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-combinator')); - case 'WithPseudoElement': - var pseudoElement = style.a; - return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-pseudo-element setter')); - case 'WithMedia': - return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-media-query')); - case 'WithKeyframes': - return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-keyframes')); - default: - if (!style.a.b) { - return A2(rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-empty-Style')); - } else { - if (!style.a.b.b) { - var _n1 = style.a; - var only = _n1.a; - var $temp$functionName = functionName, - $temp$desiredKey = desiredKey, - $temp$style = only; - functionName = $temp$functionName; - desiredKey = $temp$desiredKey; - style = $temp$style; - continue getOverloadedProperty; - } else { - var _n2 = style.a; - var first = _n2.a; - var rest = _n2.b; - var $temp$functionName = functionName, - $temp$desiredKey = desiredKey, - $temp$style = rtfeldman$elm_css$Css$Preprocess$ApplyStyles(rest); - functionName = $temp$functionName; - desiredKey = $temp$desiredKey; - style = $temp$style; - continue getOverloadedProperty; - } - } - } - } - }); -var rtfeldman$elm_css$Css$Internal$IncompatibleUnits = {$: 'IncompatibleUnits'}; -var rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty = A3(rtfeldman$elm_css$Css$Internal$lengthConverter, rtfeldman$elm_css$Css$Internal$IncompatibleUnits, '', 0); -var rtfeldman$elm_css$Css$alignItems = function (fn) { - return A3( - rtfeldman$elm_css$Css$Internal$getOverloadedProperty, - 'alignItems', - 'align-items', - fn(rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty)); -}; -var rtfeldman$elm_css$Css$backgroundColor = function (c) { - return A2(rtfeldman$elm_css$Css$property, 'background-color', c.value); -}; -var rtfeldman$elm_css$Css$bottom = rtfeldman$elm_css$Css$prop1('bottom'); -var rtfeldman$elm_css$Css$prop4 = F5( - function (key, argA, argB, argC, argD) { - return A2( - rtfeldman$elm_css$Css$property, - key, - A2( - elm$core$String$join, - ' ', - _List_fromArray( - [argA.value, argB.value, argC.value, argD.value]))); - }); -var rtfeldman$elm_css$Css$boxShadow4 = rtfeldman$elm_css$Css$prop4('box-shadow'); -var rtfeldman$elm_css$Css$center = rtfeldman$elm_css$Css$prop1('center'); -var rtfeldman$elm_css$Css$displayFlex = A2(rtfeldman$elm_css$Css$property, 'display', 'flex'); -var rtfeldman$elm_css$Css$fixed = {backgroundAttachment: rtfeldman$elm_css$Css$Structure$Compatible, position: rtfeldman$elm_css$Css$Structure$Compatible, tableLayout: rtfeldman$elm_css$Css$Structure$Compatible, value: 'fixed'}; -var rtfeldman$elm_css$Css$flexDirection = rtfeldman$elm_css$Css$prop1('flex-direction'); -var rtfeldman$elm_css$Css$height = rtfeldman$elm_css$Css$prop1('height'); -var rtfeldman$elm_css$Css$justifyContent = function (fn) { - return A3( - rtfeldman$elm_css$Css$Internal$getOverloadedProperty, - 'justifyContent', - 'justify-content', - fn(rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty)); -}; -var rtfeldman$elm_css$Css$PercentageUnits = {$: 'PercentageUnits'}; -var rtfeldman$elm_css$Css$pct = A2(rtfeldman$elm_css$Css$Internal$lengthConverter, rtfeldman$elm_css$Css$PercentageUnits, '%'); -var rtfeldman$elm_css$Css$position = rtfeldman$elm_css$Css$prop1('position'); -var rtfeldman$elm_css$Css$row = {flexDirection: rtfeldman$elm_css$Css$Structure$Compatible, flexDirectionOrWrap: rtfeldman$elm_css$Css$Structure$Compatible, value: 'row'}; -var rtfeldman$elm_css$Css$spaceBetween = rtfeldman$elm_css$Css$prop1('space-between'); -var rtfeldman$elm_css$Css$width = rtfeldman$elm_css$Css$prop1('width'); -var rtfeldman$elm_css$Css$UnitlessInteger = {$: 'UnitlessInteger'}; -var rtfeldman$elm_css$Css$zero = {length: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrAuto: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrAutoOrCoverOrContain: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNone: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNoneOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNumber: rtfeldman$elm_css$Css$Structure$Compatible, number: rtfeldman$elm_css$Css$Structure$Compatible, numericValue: 0, outline: rtfeldman$elm_css$Css$Structure$Compatible, unitLabel: '', units: rtfeldman$elm_css$Css$UnitlessInteger, value: '0'}; -var rtfeldman$elm_css$Html$Styled$nav = rtfeldman$elm_css$Html$Styled$node('nav'); -var author$project$Main$appNavigation = A2( - rtfeldman$elm_css$Html$Styled$nav, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$displayFlex, - rtfeldman$elm_css$Css$flexDirection(rtfeldman$elm_css$Css$row), - rtfeldman$elm_css$Css$justifyContent(rtfeldman$elm_css$Css$spaceBetween), - rtfeldman$elm_css$Css$alignItems(rtfeldman$elm_css$Css$center), - rtfeldman$elm_css$Css$position(rtfeldman$elm_css$Css$fixed), - rtfeldman$elm_css$Css$bottom(rtfeldman$elm_css$Css$zero), - rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.palette.darkBlue), - rtfeldman$elm_css$Css$height( - rtfeldman$elm_css$Css$px(48)), - rtfeldman$elm_css$Css$width( - rtfeldman$elm_css$Css$pct(100)), - A4( - rtfeldman$elm_css$Css$boxShadow4, - rtfeldman$elm_css$Css$zero, - rtfeldman$elm_css$Css$zero, - rtfeldman$elm_css$Css$px(5), - A3(rtfeldman$elm_css$Css$rgb, 0, 0, 0)) - ])) - ]), - _List_fromArray( - [ - A2(author$project$Theme$Elements$icon, 'home', author$project$Main$GoHome), - A2(author$project$Theme$Elements$icon, 'cog', author$project$Main$GoSettings) - ])); -var author$project$Main$RemoveSavedWord = function (a) { - return {$: 'RemoveSavedWord', a: a}; -}; -var author$project$Main$SaveWord = function (a) { - return {$: 'SaveWord', a: a}; -}; -var author$project$Main$isWordSaved = F2( - function (word, wordList) { - var list = A2( - elm$core$List$filter, - function (item) { - return _Utils_eq(item.word, word); - }, - wordList); - return elm$core$List$isEmpty(list); - }); -var author$project$Theme$Elements$wordDefinitionIcon = F2( - function (click, name) { - return A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.lightGreen), - rtfeldman$elm_css$Css$padding( - rtfeldman$elm_css$Css$px(5)) - ])), - rtfeldman$elm_css$Html$Styled$Events$onClick(click) - ]), - _List_fromArray( - [ - A2(author$project$Theme$Elements$fontAwesomeIcon, name, 'lg') - ])); - }); -var author$project$Main$bookmarkIconView = F2( - function (definition, wordlist) { - var list = function () { - if (wordlist.$ === 'Just') { - var l = wordlist.a; - return l; - } else { - return _List_Nil; - } - }(); - var isSaved = A2(author$project$Main$isWordSaved, definition.word, list); - return isSaved ? A2( - author$project$Theme$Elements$wordDefinitionIcon, - author$project$Main$SaveWord(definition), - 'bookmark-o') : A2( - author$project$Theme$Elements$wordDefinitionIcon, - author$project$Main$RemoveSavedWord(definition), - 'bookmark'); - }); -var author$project$Main$isSeeAlsoEmpty = function (list) { - if (list.b) { - var f = list.a; - var r = list.b; - return !elm$core$String$length(f); - } else { - return true; - } -}; -var rtfeldman$elm_css$Css$borderRadius = rtfeldman$elm_css$Css$prop1('border-radius'); -var rtfeldman$elm_css$Css$borderStyle = rtfeldman$elm_css$Css$prop1('border-style'); -var rtfeldman$elm_css$Css$fontSize = rtfeldman$elm_css$Css$prop1('font-size'); -var rtfeldman$elm_css$Css$margin = rtfeldman$elm_css$Css$prop1('margin'); -var rtfeldman$elm_css$Css$none = {backgroundImage: rtfeldman$elm_css$Css$Structure$Compatible, blockAxisOverflow: rtfeldman$elm_css$Css$Structure$Compatible, borderStyle: rtfeldman$elm_css$Css$Structure$Compatible, cursor: rtfeldman$elm_css$Css$Structure$Compatible, display: rtfeldman$elm_css$Css$Structure$Compatible, hoverCapability: rtfeldman$elm_css$Css$Structure$Compatible, inlineAxisOverflow: rtfeldman$elm_css$Css$Structure$Compatible, keyframes: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNone: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNoneOrMinMaxDimension: rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNumberOrAutoOrNoneOrContent: rtfeldman$elm_css$Css$Structure$Compatible, listStyleType: rtfeldman$elm_css$Css$Structure$Compatible, listStyleTypeOrPositionOrImage: rtfeldman$elm_css$Css$Structure$Compatible, none: rtfeldman$elm_css$Css$Structure$Compatible, outline: rtfeldman$elm_css$Css$Structure$Compatible, pointerDevice: rtfeldman$elm_css$Css$Structure$Compatible, pointerEvents: rtfeldman$elm_css$Css$Structure$Compatible, resize: rtfeldman$elm_css$Css$Structure$Compatible, scriptingSupport: rtfeldman$elm_css$Css$Structure$Compatible, textDecorationLine: rtfeldman$elm_css$Css$Structure$Compatible, textTransform: rtfeldman$elm_css$Css$Structure$Compatible, touchAction: rtfeldman$elm_css$Css$Structure$Compatible, transform: rtfeldman$elm_css$Css$Structure$Compatible, updateFrequency: rtfeldman$elm_css$Css$Structure$Compatible, value: 'none'}; -var rtfeldman$elm_css$Html$Styled$button = rtfeldman$elm_css$Html$Styled$node('button'); -var rtfeldman$elm_css$Html$Styled$span = rtfeldman$elm_css$Html$Styled$node('span'); -var rtfeldman$elm_css$VirtualDom$Styled$Unstyled = function (a) { - return {$: 'Unstyled', a: a}; -}; -var rtfeldman$elm_css$VirtualDom$Styled$text = function (str) { - return rtfeldman$elm_css$VirtualDom$Styled$Unstyled( - elm$virtual_dom$VirtualDom$text(str)); -}; -var rtfeldman$elm_css$Html$Styled$text = rtfeldman$elm_css$VirtualDom$Styled$text; -var author$project$Theme$Elements$seeAlso = F2( - function (click, word) { - return (!elm$core$String$length(word)) ? A2(rtfeldman$elm_css$Html$Styled$span, _List_Nil, _List_Nil) : A2( - rtfeldman$elm_css$Html$Styled$button, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.button.background), - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), - rtfeldman$elm_css$Css$borderRadius( - rtfeldman$elm_css$Css$px(8)), - rtfeldman$elm_css$Css$padding( - rtfeldman$elm_css$Css$px(10)), - rtfeldman$elm_css$Css$fontSize( - rtfeldman$elm_css$Css$px(20)), - rtfeldman$elm_css$Css$margin( - rtfeldman$elm_css$Css$px(10)), - rtfeldman$elm_css$Css$borderStyle(rtfeldman$elm_css$Css$none) - ])), - rtfeldman$elm_css$Html$Styled$Events$onClick(click) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text(word) - ])); - }); -var rtfeldman$elm_css$Css$block = {display: rtfeldman$elm_css$Css$Structure$Compatible, value: 'block'}; -var rtfeldman$elm_css$Css$display = rtfeldman$elm_css$Css$prop1('display'); -var rtfeldman$elm_css$Css$marginTop = rtfeldman$elm_css$Css$prop1('margin-top'); -var rtfeldman$elm_css$Css$textAlign = function (fn) { - return A3( - rtfeldman$elm_css$Css$Internal$getOverloadedProperty, - 'textAlign', - 'text-align', - fn(rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty)); -}; -var author$project$Theme$Elements$takeFurther = A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), - rtfeldman$elm_css$Css$fontSize( - rtfeldman$elm_css$Css$px(18)), - rtfeldman$elm_css$Css$marginTop( - rtfeldman$elm_css$Css$px(20)) - ])) - ]), - _List_fromArray( - [ - A2( - rtfeldman$elm_css$Html$Styled$span, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.lightBlue), - rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) - ])) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text('Go for a word adventure:') - ])) - ])); -var rtfeldman$elm_css$Css$capitalize = {textTransform: rtfeldman$elm_css$Css$Structure$Compatible, value: 'capitalize'}; -var rtfeldman$elm_css$Css$left = rtfeldman$elm_css$Css$prop1('left'); -var rtfeldman$elm_css$Css$PtUnits = {$: 'PtUnits'}; -var rtfeldman$elm_css$Css$pt = A2(rtfeldman$elm_css$Css$Internal$lengthConverter, rtfeldman$elm_css$Css$PtUnits, 'pt'); -var rtfeldman$elm_css$Css$textTransform = rtfeldman$elm_css$Css$prop1('text-transform'); -var rtfeldman$elm_css$Html$Styled$h1 = rtfeldman$elm_css$Html$Styled$node('h1'); -var rtfeldman$elm_css$Html$Styled$p = rtfeldman$elm_css$Html$Styled$node('p'); -var author$project$Main$definitionView = function (model) { - var _n0 = model.lexiconModel.currentWord; - if (_n0.$ === 'Just') { - var word = _n0.a; - return A2( - rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - A2( - rtfeldman$elm_css$Html$Styled$h1, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), - rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$capitalize), - rtfeldman$elm_css$Css$marginTop( - rtfeldman$elm_css$Css$px(125)) - ])) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text(word.word) - ])), - A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$displayFlex, - rtfeldman$elm_css$Css$flexDirection(rtfeldman$elm_css$Css$row), - rtfeldman$elm_css$Css$alignItems(rtfeldman$elm_css$Css$center), - rtfeldman$elm_css$Css$justifyContent(rtfeldman$elm_css$Css$center), - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.green) - ])) - ]), - _List_fromArray( - [ - A2(author$project$Main$bookmarkIconView, word, model.savedWords) - ])), - A2( - rtfeldman$elm_css$Html$Styled$p, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), - rtfeldman$elm_css$Css$fontSize( - rtfeldman$elm_css$Css$pt(16)), - rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$left), - rtfeldman$elm_css$Css$padding( - rtfeldman$elm_css$Css$px(20)) - ])) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text(word.definition) - ])), - author$project$Main$isSeeAlsoEmpty(word.seeAlso) ? A2(rtfeldman$elm_css$Html$Styled$div, _List_Nil, _List_Nil) : A2( - rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - author$project$Theme$Elements$takeFurther, - A2( - rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - A2( - elm$core$List$map, - function (i) { - return A2( - author$project$Theme$Elements$seeAlso, - author$project$Main$LoadDefinitionByWord(i), - i); - }, - word.seeAlso)) - ])), - A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$height( - rtfeldman$elm_css$Css$px(60)) - ])) - ]), - _List_Nil) - ])); - } else { - return A2( - rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - A2( - rtfeldman$elm_css$Html$Styled$h1, - _List_Nil, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text('wait...') - ])) - ])); - } -}; -var rtfeldman$elm_css$Css$justify = rtfeldman$elm_css$Css$prop1('justify'); -var rtfeldman$elm_css$Html$Styled$br = rtfeldman$elm_css$Html$Styled$node('br'); -var author$project$Main$helpView = function (karma) { - return A2( - rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - A2( - rtfeldman$elm_css$Html$Styled$h1, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), - rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$capitalize), - rtfeldman$elm_css$Css$marginTop( - rtfeldman$elm_css$Css$px(125)) - ])) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text('Help') - ])), - A2( - rtfeldman$elm_css$Html$Styled$p, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), - rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$justify), - rtfeldman$elm_css$Css$fontSize( - rtfeldman$elm_css$Css$px(20)), - rtfeldman$elm_css$Css$padding( - rtfeldman$elm_css$Css$px(15)) - ])) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text('Welcome the Hindu Lexicon! Type the characters that you know are in a word. All the possible choices will appear. Use less characters if you do not know to the spelling of a word. Use more if want to limit the choices.'), - rtfeldman$elm_css$Html$Styled$text(' Gurudeva recommended study of one word and associated words. Take:'), - A2(rtfeldman$elm_css$Html$Styled$br, _List_Nil, _List_Nil), - A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center) - ])) - ]), - _List_fromArray( - [ - A2(author$project$Theme$Elements$seeAlso, karma, 'karma') - ])), - A2(rtfeldman$elm_css$Html$Styled$br, _List_Nil, _List_Nil), - rtfeldman$elm_css$Html$Styled$text(' and go a word adventure clicking the other that pop up. You can a word to my word, but click the bookmark. When you are in My Word, clicking the bookmark will delete word. ') - ])) - ])); -}; -var author$project$Main$loadingView = A2( - rtfeldman$elm_css$Html$Styled$h1, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), - rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$capitalize), - rtfeldman$elm_css$Css$marginTop( - rtfeldman$elm_css$Css$px(125)) - ])) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text('Loading') - ])); -var author$project$Main$FilterWordList = function (a) { - return {$: 'FilterWordList', a: a}; -}; -var author$project$Main$HelpView = {$: 'HelpView'}; -var author$project$Main$Navigate = function (a) { - return {$: 'Navigate', a: a}; -}; -var author$project$Main$Search = {$: 'Search'}; -var author$project$Main$LoadDefinition = function (a) { - return {$: 'LoadDefinition', a: a}; -}; -var rtfeldman$elm_css$Html$Styled$li = rtfeldman$elm_css$Html$Styled$node('li'); -var author$project$Main$addWordItem = function (word) { - return A2( - rtfeldman$elm_css$Html$Styled$li, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Events$onClick( - author$project$Main$LoadDefinition(word.id)) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text(word.word) - ])); -}; -var author$project$Main$filterWordList = F2( - function (word, list) { - return elm$core$String$isEmpty(word) ? list : A2( - elm$core$List$filter, - function (item) { - return A2( - elm$core$String$contains, - elm$core$String$toLower(word), - elm$core$String$toLower(item.word)); - }, - list); - }); -var rtfeldman$elm_css$Css$border = rtfeldman$elm_css$Css$prop1('border'); -var rtfeldman$elm_css$Css$prop3 = F4( - function (key, argA, argB, argC) { - return A2( - rtfeldman$elm_css$Css$property, - key, - A2( - elm$core$String$join, - ' ', - _List_fromArray( - [argA.value, argB.value, argC.value]))); - }); -var rtfeldman$elm_css$Css$borderTop3 = rtfeldman$elm_css$Css$prop3('border-top'); -var rtfeldman$elm_css$Css$solid = {borderStyle: rtfeldman$elm_css$Css$Structure$Compatible, textDecorationStyle: rtfeldman$elm_css$Css$Structure$Compatible, value: 'solid'}; -var rtfeldman$elm_css$Html$Styled$hr = rtfeldman$elm_css$Html$Styled$node('hr'); -var author$project$Theme$Elements$listHeader = A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), - rtfeldman$elm_css$Css$fontSize( - rtfeldman$elm_css$Css$px(18)), - rtfeldman$elm_css$Css$marginTop( - rtfeldman$elm_css$Css$px(20)) - ])) - ]), - _List_fromArray( - [ - A2( - rtfeldman$elm_css$Html$Styled$span, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.lightBlue), - rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) - ])) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text('Scroll the results and choose a word!') - ])), - A2( - rtfeldman$elm_css$Html$Styled$hr, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block), - rtfeldman$elm_css$Css$height(rtfeldman$elm_css$Css$zero), - rtfeldman$elm_css$Css$border(rtfeldman$elm_css$Css$zero), - A3( - rtfeldman$elm_css$Css$borderTop3, - rtfeldman$elm_css$Css$px(2), - rtfeldman$elm_css$Css$solid, - author$project$Theme$Colors$theme.palette.lightBlue), - rtfeldman$elm_css$Css$width( - rtfeldman$elm_css$Css$pct(10)) - ])) - ]), - _List_Nil) - ])); -var elm$json$Json$Decode$fail = _Json_fail; -var elm$json$Json$Decode$int = _Json_decodeInt; -var rtfeldman$elm_css$Html$Styled$Events$keyCode = A2(elm$json$Json$Decode$field, 'keyCode', elm$json$Json$Decode$int); -var author$project$Theme$Elements$onEnter = function (msg) { - var isEnter = function (code) { - return (code === 13) ? elm$json$Json$Decode$succeed(msg) : elm$json$Json$Decode$fail('not ENTER'); - }; - return A2( - rtfeldman$elm_css$Html$Styled$Events$on, - 'keydown', - A2(elm$json$Json$Decode$andThen, isEnter, rtfeldman$elm_css$Html$Styled$Events$keyCode)); -}; -var rtfeldman$elm_css$Css$transparent = {color: rtfeldman$elm_css$Css$Structure$Compatible, value: 'transparent'}; -var rtfeldman$elm_css$Html$Styled$input = rtfeldman$elm_css$Html$Styled$node('input'); -var rtfeldman$elm_css$Html$Styled$Attributes$id = rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('id'); -var rtfeldman$elm_css$Html$Styled$Attributes$value = rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('value'); -var rtfeldman$elm_css$Html$Styled$Events$alwaysStop = function (x) { - return _Utils_Tuple2(x, true); -}; -var elm$virtual_dom$VirtualDom$MayStopPropagation = function (a) { - return {$: 'MayStopPropagation', a: a}; -}; -var rtfeldman$elm_css$Html$Styled$Events$stopPropagationOn = F2( - function (event, decoder) { - return A2( - rtfeldman$elm_css$VirtualDom$Styled$on, - event, - elm$virtual_dom$VirtualDom$MayStopPropagation(decoder)); - }); -var elm$json$Json$Decode$at = F2( - function (fields, decoder) { - return A3(elm$core$List$foldr, elm$json$Json$Decode$field, decoder, fields); - }); -var rtfeldman$elm_css$Html$Styled$Events$targetValue = A2( - elm$json$Json$Decode$at, - _List_fromArray( - ['target', 'value']), - elm$json$Json$Decode$string); -var rtfeldman$elm_css$Html$Styled$Events$onInput = function (tagger) { - return A2( - rtfeldman$elm_css$Html$Styled$Events$stopPropagationOn, - 'input', - A2( - elm$json$Json$Decode$map, - rtfeldman$elm_css$Html$Styled$Events$alwaysStop, - A2(elm$json$Json$Decode$map, tagger, rtfeldman$elm_css$Html$Styled$Events$targetValue))); -}; -var author$project$Theme$Elements$searchBox = F3( - function (changed, search, query) { - return A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$marginTop( - rtfeldman$elm_css$Css$px(10)) - ])) - ]), - _List_fromArray( - [ - A2( - rtfeldman$elm_css$Html$Styled$input, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$fontSize( - rtfeldman$elm_css$Css$px(30)), - rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), - rtfeldman$elm_css$Css$borderStyle(rtfeldman$elm_css$Css$none), - rtfeldman$elm_css$Css$backgroundColor(rtfeldman$elm_css$Css$transparent), - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white) - ])), - rtfeldman$elm_css$Html$Styled$Events$onInput(changed), - author$project$Theme$Elements$onEnter(search), - rtfeldman$elm_css$Html$Styled$Attributes$value(query), - rtfeldman$elm_css$Html$Styled$Attributes$id('search-box') - ]), - _List_Nil), - A2( - rtfeldman$elm_css$Html$Styled$hr, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block), - rtfeldman$elm_css$Css$height(rtfeldman$elm_css$Css$zero), - rtfeldman$elm_css$Css$border(rtfeldman$elm_css$Css$zero), - A3( - rtfeldman$elm_css$Css$borderTop3, - rtfeldman$elm_css$Css$px(1), - rtfeldman$elm_css$Css$solid, - author$project$Theme$Colors$theme.palette.white), - rtfeldman$elm_css$Css$width( - rtfeldman$elm_css$Css$pct(80)) - ])) - ]), - _List_Nil) - ])); - }); -var author$project$Theme$Elements$searchHeader = function (click) { - return A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), - rtfeldman$elm_css$Css$fontSize( - rtfeldman$elm_css$Css$px(18)) - ])) - ]), - _List_fromArray( - [ - A2( - rtfeldman$elm_css$Html$Styled$span, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.lightBlue), - rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) - ])) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text('Enter a single word or part of a word') - ])), - A2( - rtfeldman$elm_css$Html$Styled$span, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.lightGreen), - rtfeldman$elm_css$Css$display(rtfeldman$elm_css$Css$block) - ])), - rtfeldman$elm_css$Html$Styled$Events$onClick(click) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text('Need help?') - ])) - ])); -}; -var rtfeldman$elm_css$Css$listStyle = rtfeldman$elm_css$Css$prop1('list-style'); -var rtfeldman$elm_css$Css$overflowY = rtfeldman$elm_css$Css$prop1('overflow-y'); -var rtfeldman$elm_css$Css$scroll = {backgroundAttachment: rtfeldman$elm_css$Css$Structure$Compatible, blockAxisOverflow: rtfeldman$elm_css$Css$Structure$Compatible, inlineAxisOverflow: rtfeldman$elm_css$Css$Structure$Compatible, overflow: rtfeldman$elm_css$Css$Structure$Compatible, scroll: rtfeldman$elm_css$Css$Structure$Compatible, value: 'scroll'}; -var rtfeldman$elm_css$Html$Styled$ul = rtfeldman$elm_css$Html$Styled$node('ul'); -var author$project$Main$myWordsView = function (model) { - var _n0 = model.savedWords; - if (_n0.$ === 'Just') { - var wordList = _n0.a; - return A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$marginTop( - rtfeldman$elm_css$Css$px(125)) - ])) - ]), - _List_fromArray( - [ - author$project$Theme$Elements$searchHeader( - author$project$Main$Navigate(author$project$Main$HelpView)), - A3(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, author$project$Main$Search, model.query), - author$project$Theme$Elements$listHeader, - A2( - rtfeldman$elm_css$Html$Styled$ul, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), - rtfeldman$elm_css$Css$fontSize( - rtfeldman$elm_css$Css$pt(18)), - rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), - rtfeldman$elm_css$Css$listStyle(rtfeldman$elm_css$Css$none), - rtfeldman$elm_css$Css$padding( - rtfeldman$elm_css$Css$px(20)), - rtfeldman$elm_css$Css$overflowY(rtfeldman$elm_css$Css$scroll), - rtfeldman$elm_css$Css$height( - rtfeldman$elm_css$Css$px(300)) - ])) - ]), - A2( - elm$core$List$map, - author$project$Main$addWordItem, - A2(author$project$Main$filterWordList, model.query, wordList))) - ])); - } else { - return A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$marginTop( - rtfeldman$elm_css$Css$px(125)) - ])) - ]), - _List_fromArray( - [ - A2( - rtfeldman$elm_css$Html$Styled$h1, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white) - ])) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text('You can click on the bookmark icon on word definitions to save them!') - ])) - ])); - } -}; -var author$project$Main$LoadRandomDefinition = {$: 'LoadRandomDefinition'}; -var author$project$Main$MyWordsView = {$: 'MyWordsView'}; -var rtfeldman$elm_css$Css$flex = rtfeldman$elm_css$Css$prop1('flex'); -var rtfeldman$elm_css$Css$Preprocess$ExtendSelector = F2( - function (a, b) { - return {$: 'ExtendSelector', a: a, b: b}; - }); -var rtfeldman$elm_css$Css$Structure$PseudoClassSelector = function (a) { - return {$: 'PseudoClassSelector', a: a}; -}; -var rtfeldman$elm_css$Css$pseudoClass = function (_class) { - return rtfeldman$elm_css$Css$Preprocess$ExtendSelector( - rtfeldman$elm_css$Css$Structure$PseudoClassSelector(_class)); -}; -var rtfeldman$elm_css$Css$hover = rtfeldman$elm_css$Css$pseudoClass('hover'); -var rtfeldman$elm_css$Css$int = function (val) { - return { - fontWeight: rtfeldman$elm_css$Css$Structure$Compatible, - intOrAuto: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNumber: rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNumberOrAutoOrNoneOrContent: rtfeldman$elm_css$Css$Structure$Compatible, - number: rtfeldman$elm_css$Css$Structure$Compatible, - numericValue: val, - unitLabel: '', - units: rtfeldman$elm_css$Css$UnitlessInteger, - value: elm$core$String$fromInt(val) - }; -}; -var rtfeldman$elm_css$Html$Styled$styled = F4( - function (fn, styles, attrs, children) { - return A2( - fn, - A2( - elm$core$List$cons, - rtfeldman$elm_css$Html$Styled$Internal$css(styles), - attrs), - children); - }); -var author$project$Theme$Elements$navButton = function (isCurrentPage) { - var bgColor = isCurrentPage ? author$project$Theme$Colors$theme.button.active : author$project$Theme$Colors$theme.button.background; - return A2( - rtfeldman$elm_css$Html$Styled$styled, - rtfeldman$elm_css$Html$Styled$button, - _List_fromArray( - [ - rtfeldman$elm_css$Css$flex( - rtfeldman$elm_css$Css$int(1)), - rtfeldman$elm_css$Css$margin( - rtfeldman$elm_css$Css$px(2)), - rtfeldman$elm_css$Css$height( - rtfeldman$elm_css$Css$px(57)), - rtfeldman$elm_css$Css$fontSize( - rtfeldman$elm_css$Css$px(18)), - rtfeldman$elm_css$Css$backgroundColor(bgColor), - rtfeldman$elm_css$Css$borderStyle(rtfeldman$elm_css$Css$none), - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.button.text), - rtfeldman$elm_css$Css$hover( - _List_fromArray( - [ - rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.button.active) - ])) - ])); -}; -var author$project$Main$pageNavigation = function (currentPage) { - var activePage = function () { - switch (currentPage.$) { - case 'SearchView': - return 'search'; - case 'MyWordsView': - return 'mywords'; - default: - return 'other'; - } - }(); - return A2( - rtfeldman$elm_css$Html$Styled$nav, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$displayFlex, - rtfeldman$elm_css$Css$flexDirection(rtfeldman$elm_css$Css$row), - rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.palette.darkGreen) - ])) - ]), - _List_fromArray( - [ - A3( - author$project$Theme$Elements$navButton, - activePage === 'search', - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Events$onClick( - author$project$Main$Navigate(author$project$Main$SearchView)) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text('Search') - ])), - A3( - author$project$Theme$Elements$navButton, - false, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Events$onClick(author$project$Main$LoadRandomDefinition) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text('Surprise!') - ])), - A3( - author$project$Theme$Elements$navButton, - activePage === 'mywords', - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Events$onClick( - author$project$Main$Navigate(author$project$Main$MyWordsView)) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text('My Words') - ])) - ])); -}; -var author$project$Main$searchView = function (model) { - var _n0 = model.lexiconModel.wordList; - if (_n0.$ === 'Just') { - var wordList = _n0.a; - return A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$marginTop( - rtfeldman$elm_css$Css$px(125)) - ])) - ]), - _List_fromArray( - [ - author$project$Theme$Elements$searchHeader( - author$project$Main$Navigate(author$project$Main$HelpView)), - A3(author$project$Theme$Elements$searchBox, author$project$Main$FilterWordList, author$project$Main$Search, model.query), - author$project$Theme$Elements$listHeader, - A2( - rtfeldman$elm_css$Html$Styled$ul, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), - rtfeldman$elm_css$Css$fontSize( - rtfeldman$elm_css$Css$pt(18)), - rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), - rtfeldman$elm_css$Css$listStyle(rtfeldman$elm_css$Css$none), - rtfeldman$elm_css$Css$padding( - rtfeldman$elm_css$Css$px(20)), - rtfeldman$elm_css$Css$overflowY(rtfeldman$elm_css$Css$scroll), - rtfeldman$elm_css$Css$height( - rtfeldman$elm_css$Css$px(250)) - ])) - ]), - A2( - elm$core$List$map, - author$project$Main$addWordItem, - A2(author$project$Main$filterWordList, model.query, wordList))) - ])); - } else { - return A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$marginTop( - rtfeldman$elm_css$Css$px(125)) - ])) - ]), - _List_fromArray( - [ - A2( - rtfeldman$elm_css$Html$Styled$h1, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white) - ])) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text('Loading ...') - ])) - ])); - } -}; -var rtfeldman$elm_css$Css$batch = rtfeldman$elm_css$Css$Preprocess$ApplyStyles; -var rtfeldman$elm_css$Css$minHeight = rtfeldman$elm_css$Css$prop1('min-height'); -var author$project$Theme$Elements$bodyStyle = rtfeldman$elm_css$Css$batch( - _List_fromArray( - [ - rtfeldman$elm_css$Css$backgroundColor(author$project$Theme$Colors$theme.palette.darkGreen), - rtfeldman$elm_css$Css$height( - rtfeldman$elm_css$Css$pct(100)), - rtfeldman$elm_css$Css$minHeight( - rtfeldman$elm_css$Css$pct(100)) - ])); -var rtfeldman$elm_css$Css$top = rtfeldman$elm_css$Css$prop1('top'); -var author$project$Theme$Elements$headerStyle = rtfeldman$elm_css$Css$batch( - _List_fromArray( - [ - rtfeldman$elm_css$Css$position(rtfeldman$elm_css$Css$fixed), - rtfeldman$elm_css$Css$top(rtfeldman$elm_css$Css$zero), - rtfeldman$elm_css$Css$width( - rtfeldman$elm_css$Css$pct(100)) - ])); -var rtfeldman$elm_css$Css$bold = {fontWeight: rtfeldman$elm_css$Css$Structure$Compatible, value: 'bold'}; -var rtfeldman$elm_css$Css$fontWeight = function (_n0) { - var value = _n0.value; - return A2(rtfeldman$elm_css$Css$property, 'font-weight', value); -}; -var rtfeldman$elm_css$Css$uppercase = {textTransform: rtfeldman$elm_css$Css$Structure$Compatible, value: 'uppercase'}; -var author$project$Theme$Elements$headerTitle = A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$textAlign(rtfeldman$elm_css$Css$center), - rtfeldman$elm_css$Css$backgroundColor( - rtfeldman$elm_css$Css$hex('#0a4650')), - rtfeldman$elm_css$Css$height( - rtfeldman$elm_css$Css$px(43)), - rtfeldman$elm_css$Css$displayFlex, - rtfeldman$elm_css$Css$flexDirection(rtfeldman$elm_css$Css$row), - rtfeldman$elm_css$Css$alignItems(rtfeldman$elm_css$Css$center), - rtfeldman$elm_css$Css$justifyContent(rtfeldman$elm_css$Css$center) - ])) - ]), - _List_fromArray( - [ - A2( - rtfeldman$elm_css$Html$Styled$h1, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - rtfeldman$elm_css$Css$fontSize( - rtfeldman$elm_css$Css$px(18)), - rtfeldman$elm_css$Css$fontWeight(rtfeldman$elm_css$Css$bold), - rtfeldman$elm_css$Css$color(author$project$Theme$Colors$theme.palette.white), - rtfeldman$elm_css$Css$textTransform(rtfeldman$elm_css$Css$uppercase), - rtfeldman$elm_css$Css$margin(rtfeldman$elm_css$Css$zero) - ])) - ]), - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text('A Hindu Lexicon') - ])) - ])); -var author$project$Main$view = function (model) { - var activeView = function () { - var _n0 = model.currentPage; - switch (_n0.$) { - case 'DefinitionView': - return author$project$Main$definitionView(model); - case 'LoadingView': - return author$project$Main$loadingView; - case 'SearchView': - return author$project$Main$searchView(model); - case 'MyWordsView': - return author$project$Main$myWordsView(model); - case 'HelpView': - return author$project$Main$helpView( - author$project$Main$LoadDefinitionByWord('karma')); - default: - return A2( - rtfeldman$elm_css$Html$Styled$h1, - _List_Nil, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$text('not implemented') - ])); - } - }(); - return A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [author$project$Theme$Elements$bodyStyle])) - ]), - _List_fromArray( - [ - A2( - rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [author$project$Theme$Elements$headerStyle])) - ]), - _List_fromArray( - [ - author$project$Theme$Elements$headerTitle, - author$project$Main$pageNavigation(model.currentPage) - ])), - activeView, - author$project$Main$appNavigation - ])); -}; -var elm$browser$Browser$element = _Browser_element; -var elm$virtual_dom$VirtualDom$keyedNode = function (tag) { - return _VirtualDom_keyedNode( - _VirtualDom_noScript(tag)); -}; -var elm$virtual_dom$VirtualDom$keyedNodeNS = F2( - function (namespace, tag) { - return A2( - _VirtualDom_keyedNodeNS, - namespace, - _VirtualDom_noScript(tag)); - }); -var elm$virtual_dom$VirtualDom$nodeNS = function (tag) { - return _VirtualDom_nodeNS( - _VirtualDom_noScript(tag)); -}; -var rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles = F2( - function (_n0, styles) { - var newStyles = _n0.b; - var classname = _n0.c; - return elm$core$List$isEmpty(newStyles) ? styles : A3(elm$core$Dict$insert, classname, newStyles, styles); - }); -var rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute = function (_n0) { - var val = _n0.a; - return val; -}; -var rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml = F2( - function (_n6, _n7) { - var key = _n6.a; - var html = _n6.b; - var pairs = _n7.a; - var styles = _n7.b; - switch (html.$) { - case 'Unstyled': - var vdom = html.a; - return _Utils_Tuple2( - A2( - elm$core$List$cons, - _Utils_Tuple2(key, vdom), - pairs), - styles); - case 'Node': - var elemType = html.a; - var properties = html.b; - var children = html.c; - var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _n9 = A3( - elm$core$List$foldl, - rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _n9.a; - var finalStyles = _n9.b; - var vdom = A3( - elm$virtual_dom$VirtualDom$node, - elemType, - A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2( - elm$core$List$cons, - _Utils_Tuple2(key, vdom), - pairs), - finalStyles); - case 'NodeNS': - var ns = html.a; - var elemType = html.b; - var properties = html.c; - var children = html.d; - var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _n10 = A3( - elm$core$List$foldl, - rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _n10.a; - var finalStyles = _n10.b; - var vdom = A4( - elm$virtual_dom$VirtualDom$nodeNS, - ns, - elemType, - A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2( - elm$core$List$cons, - _Utils_Tuple2(key, vdom), - pairs), - finalStyles); - case 'KeyedNode': - var elemType = html.a; - var properties = html.b; - var children = html.c; - var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _n11 = A3( - elm$core$List$foldl, - rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _n11.a; - var finalStyles = _n11.b; - var vdom = A3( - elm$virtual_dom$VirtualDom$keyedNode, - elemType, - A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2( - elm$core$List$cons, - _Utils_Tuple2(key, vdom), - pairs), - finalStyles); - default: - var ns = html.a; - var elemType = html.b; - var properties = html.c; - var children = html.d; - var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _n12 = A3( - elm$core$List$foldl, - rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _n12.a; - var finalStyles = _n12.b; - var vdom = A4( - elm$virtual_dom$VirtualDom$keyedNodeNS, - ns, - elemType, - A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2( - elm$core$List$cons, - _Utils_Tuple2(key, vdom), - pairs), - finalStyles); - } - }); -var rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml = F2( - function (html, _n0) { - var nodes = _n0.a; - var styles = _n0.b; - switch (html.$) { - case 'Unstyled': - var vdomNode = html.a; - return _Utils_Tuple2( - A2(elm$core$List$cons, vdomNode, nodes), - styles); - case 'Node': - var elemType = html.a; - var properties = html.b; - var children = html.c; - var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _n2 = A3( - elm$core$List$foldl, - rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _n2.a; - var finalStyles = _n2.b; - var vdomNode = A3( - elm$virtual_dom$VirtualDom$node, - elemType, - A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2(elm$core$List$cons, vdomNode, nodes), - finalStyles); - case 'NodeNS': - var ns = html.a; - var elemType = html.b; - var properties = html.c; - var children = html.d; - var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _n3 = A3( - elm$core$List$foldl, - rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _n3.a; - var finalStyles = _n3.b; - var vdomNode = A4( - elm$virtual_dom$VirtualDom$nodeNS, - ns, - elemType, - A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2(elm$core$List$cons, vdomNode, nodes), - finalStyles); - case 'KeyedNode': - var elemType = html.a; - var properties = html.b; - var children = html.c; - var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _n4 = A3( - elm$core$List$foldl, - rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _n4.a; - var finalStyles = _n4.b; - var vdomNode = A3( - elm$virtual_dom$VirtualDom$keyedNode, - elemType, - A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2(elm$core$List$cons, vdomNode, nodes), - finalStyles); - default: - var ns = html.a; - var elemType = html.b; - var properties = html.c; - var children = html.d; - var combinedStyles = A3(elm$core$List$foldl, rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _n5 = A3( - elm$core$List$foldl, - rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _n5.a; - var finalStyles = _n5.b; - var vdomNode = A4( - elm$virtual_dom$VirtualDom$keyedNodeNS, - ns, - elemType, - A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2(elm$core$List$cons, vdomNode, nodes), - finalStyles); - } - }); -var elm$core$Dict$singleton = F2( - function (key, value) { - return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, key, value, elm$core$Dict$RBEmpty_elm_builtin, elm$core$Dict$RBEmpty_elm_builtin); - }); -var rtfeldman$elm_css$VirtualDom$Styled$stylesFromPropertiesHelp = F2( - function (candidate, properties) { - stylesFromPropertiesHelp: - while (true) { - if (!properties.b) { - return candidate; - } else { - var _n1 = properties.a; - var styles = _n1.b; - var classname = _n1.c; - var rest = properties.b; - if (elm$core$String$isEmpty(classname)) { - var $temp$candidate = candidate, - $temp$properties = rest; - candidate = $temp$candidate; - properties = $temp$properties; - continue stylesFromPropertiesHelp; - } else { - var $temp$candidate = elm$core$Maybe$Just( - _Utils_Tuple2(classname, styles)), - $temp$properties = rest; - candidate = $temp$candidate; - properties = $temp$properties; - continue stylesFromPropertiesHelp; - } - } - } - }); -var rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties = function (properties) { - var _n0 = A2(rtfeldman$elm_css$VirtualDom$Styled$stylesFromPropertiesHelp, elm$core$Maybe$Nothing, properties); - if (_n0.$ === 'Nothing') { - return elm$core$Dict$empty; - } else { - var _n1 = _n0.a; - var classname = _n1.a; - var styles = _n1.b; - return A2(elm$core$Dict$singleton, classname, styles); - } -}; -var rtfeldman$elm_css$Css$Structure$ClassSelector = function (a) { - return {$: 'ClassSelector', a: a}; -}; -var rtfeldman$elm_css$VirtualDom$Styled$snippetFromPair = function (_n0) { - var classname = _n0.a; - var styles = _n0.b; - return A2( - rtfeldman$elm_css$VirtualDom$Styled$makeSnippet, - styles, - rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence( - _List_fromArray( - [ - rtfeldman$elm_css$Css$Structure$ClassSelector(classname) - ]))); -}; -var rtfeldman$elm_css$VirtualDom$Styled$toDeclaration = function (dict) { - return rtfeldman$elm_css$Css$Preprocess$Resolve$compile( - elm$core$List$singleton( - rtfeldman$elm_css$Css$Preprocess$stylesheet( - A2( - elm$core$List$map, - rtfeldman$elm_css$VirtualDom$Styled$snippetFromPair, - elm$core$Dict$toList(dict))))); -}; -var rtfeldman$elm_css$VirtualDom$Styled$toStyleNode = function (styles) { - return A3( - elm$virtual_dom$VirtualDom$node, - 'style', - _List_Nil, - elm$core$List$singleton( - elm$virtual_dom$VirtualDom$text( - rtfeldman$elm_css$VirtualDom$Styled$toDeclaration(styles)))); -}; -var rtfeldman$elm_css$VirtualDom$Styled$unstyle = F3( - function (elemType, properties, children) { - var unstyledProperties = A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); - var initialStyles = rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); - var _n0 = A3( - elm$core$List$foldl, - rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, - _Utils_Tuple2(_List_Nil, initialStyles), - children); - var childNodes = _n0.a; - var styles = _n0.b; - var styleNode = rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(styles); - return A3( - elm$virtual_dom$VirtualDom$node, - elemType, - unstyledProperties, - A2( - elm$core$List$cons, - styleNode, - elm$core$List$reverse(childNodes))); - }); -var rtfeldman$elm_css$VirtualDom$Styled$containsKey = F2( - function (key, pairs) { - containsKey: - while (true) { - if (!pairs.b) { - return false; - } else { - var _n1 = pairs.a; - var str = _n1.a; - var rest = pairs.b; - if (_Utils_eq(key, str)) { - return true; - } else { - var $temp$key = key, - $temp$pairs = rest; - key = $temp$key; - pairs = $temp$pairs; - continue containsKey; - } - } - } - }); -var rtfeldman$elm_css$VirtualDom$Styled$getUnusedKey = F2( - function (_default, pairs) { - getUnusedKey: - while (true) { - if (!pairs.b) { - return _default; - } else { - var _n1 = pairs.a; - var firstKey = _n1.a; - var rest = pairs.b; - var newKey = '_' + firstKey; - if (A2(rtfeldman$elm_css$VirtualDom$Styled$containsKey, newKey, rest)) { - var $temp$default = newKey, - $temp$pairs = rest; - _default = $temp$default; - pairs = $temp$pairs; - continue getUnusedKey; - } else { - return newKey; - } - } - } - }); -var rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode = F2( - function (allStyles, keyedChildNodes) { - var styleNodeKey = A2(rtfeldman$elm_css$VirtualDom$Styled$getUnusedKey, '_', keyedChildNodes); - var finalNode = rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(allStyles); - return _Utils_Tuple2(styleNodeKey, finalNode); - }); -var rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyed = F3( - function (elemType, properties, keyedChildren) { - var unstyledProperties = A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); - var initialStyles = rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); - var _n0 = A3( - elm$core$List$foldl, - rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, - _Utils_Tuple2(_List_Nil, initialStyles), - keyedChildren); - var keyedChildNodes = _n0.a; - var styles = _n0.b; - var keyedStyleNode = A2(rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode, styles, keyedChildNodes); - return A3( - elm$virtual_dom$VirtualDom$keyedNode, - elemType, - unstyledProperties, - A2( - elm$core$List$cons, - keyedStyleNode, - elm$core$List$reverse(keyedChildNodes))); - }); -var rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyedNS = F4( - function (ns, elemType, properties, keyedChildren) { - var unstyledProperties = A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); - var initialStyles = rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); - var _n0 = A3( - elm$core$List$foldl, - rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, - _Utils_Tuple2(_List_Nil, initialStyles), - keyedChildren); - var keyedChildNodes = _n0.a; - var styles = _n0.b; - var keyedStyleNode = A2(rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode, styles, keyedChildNodes); - return A4( - elm$virtual_dom$VirtualDom$keyedNodeNS, - ns, - elemType, - unstyledProperties, - A2( - elm$core$List$cons, - keyedStyleNode, - elm$core$List$reverse(keyedChildNodes))); - }); -var rtfeldman$elm_css$VirtualDom$Styled$unstyleNS = F4( - function (ns, elemType, properties, children) { - var unstyledProperties = A2(elm$core$List$map, rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); - var initialStyles = rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); - var _n0 = A3( - elm$core$List$foldl, - rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, - _Utils_Tuple2(_List_Nil, initialStyles), - children); - var childNodes = _n0.a; - var styles = _n0.b; - var styleNode = rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(styles); - return A4( - elm$virtual_dom$VirtualDom$nodeNS, - ns, - elemType, - unstyledProperties, - A2( - elm$core$List$cons, - styleNode, - elm$core$List$reverse(childNodes))); - }); -var rtfeldman$elm_css$VirtualDom$Styled$toUnstyled = function (vdom) { - switch (vdom.$) { - case 'Unstyled': - var plainNode = vdom.a; - return plainNode; - case 'Node': - var elemType = vdom.a; - var properties = vdom.b; - var children = vdom.c; - return A3(rtfeldman$elm_css$VirtualDom$Styled$unstyle, elemType, properties, children); - case 'NodeNS': - var ns = vdom.a; - var elemType = vdom.b; - var properties = vdom.c; - var children = vdom.d; - return A4(rtfeldman$elm_css$VirtualDom$Styled$unstyleNS, ns, elemType, properties, children); - case 'KeyedNode': - var elemType = vdom.a; - var properties = vdom.b; - var children = vdom.c; - return A3(rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyed, elemType, properties, children); - default: - var ns = vdom.a; - var elemType = vdom.b; - var properties = vdom.c; - var children = vdom.d; - return A4(rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyedNS, ns, elemType, properties, children); - } -}; -var rtfeldman$elm_css$Html$Styled$toUnstyled = rtfeldman$elm_css$VirtualDom$Styled$toUnstyled; -var author$project$Main$main = elm$browser$Browser$element( - { - init: author$project$Main$init, - subscriptions: author$project$Main$subscriptions, - update: author$project$Main$update, - view: A2(elm$core$Basics$composeR, author$project$Main$view, rtfeldman$elm_css$Html$Styled$toUnstyled) - }); -_Platform_export({'Main':{'init':author$project$Main$main( - elm$json$Json$Decode$list( - A2( - elm$json$Json$Decode$andThen, - function (word) { - return A2( - elm$json$Json$Decode$andThen, - function (id) { - return elm$json$Json$Decode$succeed( - {id: id, word: word}); - }, - A2(elm$json$Json$Decode$field, 'id', elm$json$Json$Decode$string)); - }, - A2(elm$json$Json$Decode$field, 'word', elm$json$Json$Decode$string))))({"versions":{"elm":"0.19.0"},"types":{"message":"Main.Msg","aliases":{"Lexicon.Word":{"args":[],"type":"{ id : String.String, word : String.String }"},"Lexicon.WordDefinition":{"args":[],"type":"{ id : String.String, word : String.String, definition : String.String, seeAlso : List.List String.String }"},"Lexicon.WordList":{"args":[],"type":"List.List Lexicon.Word"},"Http.Response":{"args":["body"],"type":"{ url : String.String, status : { code : Basics.Int, message : String.String }, headers : Dict.Dict String.String String.String, body : body }"}},"unions":{"Main.Msg":{"args":[],"tags":{"LexiconMsg":["Lexicon.Msg"],"Navigate":["Main.PageId"],"LoadDefinition":["String.String"],"LoadDefinitionByInt":["Basics.Int"],"LoadDefinitionByWord":["String.String"],"LoadRandomDefinition":[],"FilterWordList":["String.String"],"SaveWord":["Lexicon.WordDefinition"],"RemoveSavedWord":["Lexicon.WordDefinition"],"SavedWordListChanged":["Lexicon.WordList"],"GoHome":[],"GoSettings":[],"NoOp":[],"Search":[]}},"Lexicon.Msg":{"args":[],"tags":{"HandleWordListResponse":["Result.Result Http.Error Lexicon.WordList"],"HandleWordDefinitionResponse":["Result.Result Http.Error Lexicon.WordDefinition"],"WordListReceived":["Lexicon.WordList"],"WordDefinitionReceived":["Lexicon.WordDefinition"]}},"Main.PageId":{"args":[],"tags":{"LoadingView":[],"SearchView":[],"SurpriseView":[],"MyWordsView":[],"DefinitionView":[],"HelpView":[]}},"Basics.Int":{"args":[],"tags":{"Int":[]}},"List.List":{"args":["a"],"tags":{}},"String.String":{"args":[],"tags":{"String":[]}},"Result.Result":{"args":["error","value"],"tags":{"Ok":["value"],"Err":["error"]}},"Http.Error":{"args":[],"tags":{"BadUrl":["String.String"],"Timeout":[],"NetworkError":[],"BadStatus":["Http.Response String.String"],"BadPayload":["String.String","Http.Response String.String"]}},"Dict.Dict":{"args":["k","v"],"tags":{"RBNode_elm_builtin":["Dict.NColor","k","v","Dict.Dict k v","Dict.Dict k v"],"RBEmpty_elm_builtin":[]}},"Dict.NColor":{"args":[],"tags":{"Red":[],"Black":[]}}}}})}});}(this)); - -var app = Elm.Main.init({ node: document.getElementById("elm-f0111bc4e658d0f98db96260c16f7e49") }); -if (document.getElementById("elm-f0111bc4e658d0f98db96260c16f7e49")) -{ - document.getElementById("elm-f0111bc4e658d0f98db96260c16f7e49").innerText = 'This is a headless program, meaning there is nothing to show here.\n\nI started the program anyway though, and you can access it as `app` in the developer console.'; -} - - \ No newline at end of file

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 d0mRO}xo^G_%I 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 SdSQM28?+M|D(2r_;{O0|uQ74} literal 0 HcmV?d00001 diff --git a/web-modules/lexicon/build/fontawesome/fonts/fontawesome-webfont.woff2 b/web-modules/lexicon/build/fontawesome/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4d13fc60404b91e398a37200c4a77b645cfd9586 GIT binary patch literal 77160 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 literal 0 HcmV?d00001 diff --git a/web-modules/lexicon/build/index.html b/web-modules/lexicon/build/index.html index f171b63c..9c292590 100644 --- a/web-modules/lexicon/build/index.html +++ b/web-modules/lexicon/build/index.html @@ -5,9 +5,8 @@ - - + + Lexicon @@ -17,14 +16,24 @@ padding: 0; margin: 0; background-color: #03697d; + + } + + h3.msg { + color: #fff; } + + -