(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); }); //import Result // var _elm_lang$core$Native_Date = function() { function fromString(str) { var date = new Date(str); return isNaN(date.getTime()) ? _elm_lang$core$Result$Err('Unable to parse \'' + str + '\' as a date. Dates must be in the ISO 8601 format.') : _elm_lang$core$Result$Ok(date); } var dayTable = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; var monthTable = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; return { fromString: fromString, year: function(d) { return d.getFullYear(); }, month: function(d) { return { ctor: monthTable[d.getMonth()] }; }, day: function(d) { return d.getDate(); }, hour: function(d) { return d.getHours(); }, minute: function(d) { return d.getMinutes(); }, second: function(d) { return d.getSeconds(); }, millisecond: function(d) { return d.getMilliseconds(); }, toTime: function(d) { return d.getTime(); }, fromTime: function(t) { return new Date(t); }, dayOfWeek: function(d) { return { ctor: dayTable[d.getDay()] }; } }; }(); 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$Date$millisecond = _elm_lang$core$Native_Date.millisecond; var _elm_lang$core$Date$second = _elm_lang$core$Native_Date.second; var _elm_lang$core$Date$minute = _elm_lang$core$Native_Date.minute; var _elm_lang$core$Date$hour = _elm_lang$core$Native_Date.hour; var _elm_lang$core$Date$dayOfWeek = _elm_lang$core$Native_Date.dayOfWeek; var _elm_lang$core$Date$day = _elm_lang$core$Native_Date.day; var _elm_lang$core$Date$month = _elm_lang$core$Native_Date.month; var _elm_lang$core$Date$year = _elm_lang$core$Native_Date.year; var _elm_lang$core$Date$fromTime = _elm_lang$core$Native_Date.fromTime; var _elm_lang$core$Date$toTime = _elm_lang$core$Native_Date.toTime; var _elm_lang$core$Date$fromString = _elm_lang$core$Native_Date.fromString; var _elm_lang$core$Date$now = A2(_elm_lang$core$Task$map, _elm_lang$core$Date$fromTime, _elm_lang$core$Time$now); var _elm_lang$core$Date$Date = {ctor: 'Date'}; var _elm_lang$core$Date$Sun = {ctor: 'Sun'}; var _elm_lang$core$Date$Sat = {ctor: 'Sat'}; var _elm_lang$core$Date$Fri = {ctor: 'Fri'}; var _elm_lang$core$Date$Thu = {ctor: 'Thu'}; var _elm_lang$core$Date$Wed = {ctor: 'Wed'}; var _elm_lang$core$Date$Tue = {ctor: 'Tue'}; var _elm_lang$core$Date$Mon = {ctor: 'Mon'}; var _elm_lang$core$Date$Dec = {ctor: 'Dec'}; var _elm_lang$core$Date$Nov = {ctor: 'Nov'}; var _elm_lang$core$Date$Oct = {ctor: 'Oct'}; var _elm_lang$core$Date$Sep = {ctor: 'Sep'}; var _elm_lang$core$Date$Aug = {ctor: 'Aug'}; var _elm_lang$core$Date$Jul = {ctor: 'Jul'}; var _elm_lang$core$Date$Jun = {ctor: 'Jun'}; var _elm_lang$core$Date$May = {ctor: 'May'}; var _elm_lang$core$Date$Apr = {ctor: 'Apr'}; var _elm_lang$core$Date$Mar = {ctor: 'Mar'}; var _elm_lang$core$Date$Feb = {ctor: 'Feb'}; var _elm_lang$core$Date$Jan = {ctor: 'Jan'}; var _elm_lang$core$Set$foldr = F3( function (f, b, _p0) { var _p1 = _p0; return A3( _elm_lang$core$Dict$foldr, F3( function (k, _p2, b) { return A2(f, k, b); }), b, _p1._0); }); var _elm_lang$core$Set$foldl = F3( function (f, b, _p3) { var _p4 = _p3; return A3( _elm_lang$core$Dict$foldl, F3( function (k, _p5, b) { return A2(f, k, b); }), b, _p4._0); }); var _elm_lang$core$Set$toList = function (_p6) { var _p7 = _p6; return _elm_lang$core$Dict$keys(_p7._0); }; var _elm_lang$core$Set$size = function (_p8) { var _p9 = _p8; return _elm_lang$core$Dict$size(_p9._0); }; var _elm_lang$core$Set$member = F2( function (k, _p10) { var _p11 = _p10; return A2(_elm_lang$core$Dict$member, k, _p11._0); }); var _elm_lang$core$Set$isEmpty = function (_p12) { var _p13 = _p12; return _elm_lang$core$Dict$isEmpty(_p13._0); }; var _elm_lang$core$Set$Set_elm_builtin = function (a) { return {ctor: 'Set_elm_builtin', _0: a}; }; var _elm_lang$core$Set$empty = _elm_lang$core$Set$Set_elm_builtin(_elm_lang$core$Dict$empty); var _elm_lang$core$Set$singleton = function (k) { return _elm_lang$core$Set$Set_elm_builtin( A2( _elm_lang$core$Dict$singleton, k, {ctor: '_Tuple0'})); }; var _elm_lang$core$Set$insert = F2( function (k, _p14) { var _p15 = _p14; return _elm_lang$core$Set$Set_elm_builtin( A3( _elm_lang$core$Dict$insert, k, {ctor: '_Tuple0'}, _p15._0)); }); var _elm_lang$core$Set$fromList = function (xs) { return A3(_elm_lang$core$List$foldl, _elm_lang$core$Set$insert, _elm_lang$core$Set$empty, xs); }; var _elm_lang$core$Set$map = F2( function (f, s) { return _elm_lang$core$Set$fromList( A2( _elm_lang$core$List$map, f, _elm_lang$core$Set$toList(s))); }); var _elm_lang$core$Set$remove = F2( function (k, _p16) { var _p17 = _p16; return _elm_lang$core$Set$Set_elm_builtin( A2(_elm_lang$core$Dict$remove, k, _p17._0)); }); var _elm_lang$core$Set$union = F2( function (_p19, _p18) { var _p20 = _p19; var _p21 = _p18; return _elm_lang$core$Set$Set_elm_builtin( A2(_elm_lang$core$Dict$union, _p20._0, _p21._0)); }); var _elm_lang$core$Set$intersect = F2( function (_p23, _p22) { var _p24 = _p23; var _p25 = _p22; return _elm_lang$core$Set$Set_elm_builtin( A2(_elm_lang$core$Dict$intersect, _p24._0, _p25._0)); }); var _elm_lang$core$Set$diff = F2( function (_p27, _p26) { var _p28 = _p27; var _p29 = _p26; return _elm_lang$core$Set$Set_elm_builtin( A2(_elm_lang$core$Dict$diff, _p28._0, _p29._0)); }); var _elm_lang$core$Set$filter = F2( function (p, _p30) { var _p31 = _p30; return _elm_lang$core$Set$Set_elm_builtin( A2( _elm_lang$core$Dict$filter, F2( function (k, _p32) { return p(k); }), _p31._0)); }); var _elm_lang$core$Set$partition = F2( function (p, _p33) { var _p34 = _p33; var _p35 = A2( _elm_lang$core$Dict$partition, F2( function (k, _p36) { return p(k); }), _p34._0); var p1 = _p35._0; var p2 = _p35._1; return { ctor: '_Tuple2', _0: _elm_lang$core$Set$Set_elm_builtin(p1), _1: _elm_lang$core$Set$Set_elm_builtin(p2) }; }); var _elm_community$json_extra$Json_Decode_Extra$fromResult = function (result) { var _p0 = result; if (_p0.ctor === 'Ok') { return _elm_lang$core$Json_Decode$succeed(_p0._0); } else { return _elm_lang$core$Json_Decode$fail(_p0._0); } }; var _elm_community$json_extra$Json_Decode_Extra$parseInt = A2( _elm_lang$core$Json_Decode$andThen, function (_p1) { return _elm_community$json_extra$Json_Decode_Extra$fromResult( _elm_lang$core$String$toInt(_p1)); }, _elm_lang$core$Json_Decode$string); var _elm_community$json_extra$Json_Decode_Extra$parseFloat = A2( _elm_lang$core$Json_Decode$andThen, function (_p2) { return _elm_community$json_extra$Json_Decode_Extra$fromResult( _elm_lang$core$String$toFloat(_p2)); }, _elm_lang$core$Json_Decode$string); var _elm_community$json_extra$Json_Decode_Extra$doubleEncoded = function (decoder) { return A2( _elm_lang$core$Json_Decode$andThen, function (_p3) { return _elm_community$json_extra$Json_Decode_Extra$fromResult( A2(_elm_lang$core$Json_Decode$decodeString, decoder, _p3)); }, _elm_lang$core$Json_Decode$string); }; var _elm_community$json_extra$Json_Decode_Extra$sequenceHelp = F2( function (decoders, jsonValues) { return (!_elm_lang$core$Native_Utils.eq( _elm_lang$core$List$length(jsonValues), _elm_lang$core$List$length(decoders))) ? _elm_lang$core$Json_Decode$fail('Number of decoders does not match number of values') : _elm_community$json_extra$Json_Decode_Extra$fromResult( A3( _elm_lang$core$List$foldr, _elm_lang$core$Result$map2( F2( function (x, y) { return {ctor: '::', _0: x, _1: y}; })), _elm_lang$core$Result$Ok( {ctor: '[]'}), A3(_elm_lang$core$List$map2, _elm_lang$core$Json_Decode$decodeValue, decoders, jsonValues))); }); var _elm_community$json_extra$Json_Decode_Extra$sequence = function (decoders) { return A2( _elm_lang$core$Json_Decode$andThen, _elm_community$json_extra$Json_Decode_Extra$sequenceHelp(decoders), _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$value)); }; var _elm_community$json_extra$Json_Decode_Extra$indexedList = function (indexedDecoder) { return A2( _elm_lang$core$Json_Decode$andThen, function (values) { return _elm_community$json_extra$Json_Decode_Extra$sequence( A2( _elm_lang$core$List$map, indexedDecoder, A2( _elm_lang$core$List$range, 0, _elm_lang$core$List$length(values) - 1))); }, _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$value)); }; var _elm_community$json_extra$Json_Decode_Extra$optionalField = F2( function (fieldName, decoder) { var finishDecoding = function (json) { var _p4 = A2( _elm_lang$core$Json_Decode$decodeValue, A2(_elm_lang$core$Json_Decode$field, fieldName, _elm_lang$core$Json_Decode$value), json); if (_p4.ctor === 'Ok') { return A2( _elm_lang$core$Json_Decode$map, _elm_lang$core$Maybe$Just, A2(_elm_lang$core$Json_Decode$field, fieldName, decoder)); } else { return _elm_lang$core$Json_Decode$succeed(_elm_lang$core$Maybe$Nothing); } }; return A2(_elm_lang$core$Json_Decode$andThen, finishDecoding, _elm_lang$core$Json_Decode$value); }); var _elm_community$json_extra$Json_Decode_Extra$withDefault = F2( function (fallback, decoder) { return A2( _elm_lang$core$Json_Decode$map, _elm_lang$core$Maybe$withDefault(fallback), _elm_lang$core$Json_Decode$maybe(decoder)); }); var _elm_community$json_extra$Json_Decode_Extra$decodeDictFromTuples = F2( function (keyDecoder, tuples) { var _p5 = tuples; if (_p5.ctor === '[]') { return _elm_lang$core$Json_Decode$succeed(_elm_lang$core$Dict$empty); } else { var _p6 = A2(_elm_lang$core$Json_Decode$decodeString, keyDecoder, _p5._0._0); if (_p6.ctor === 'Ok') { return A2( _elm_lang$core$Json_Decode$andThen, function (_p7) { return _elm_lang$core$Json_Decode$succeed( A3(_elm_lang$core$Dict$insert, _p6._0, _p5._0._1, _p7)); }, A2(_elm_community$json_extra$Json_Decode_Extra$decodeDictFromTuples, keyDecoder, _p5._1)); } else { return _elm_lang$core$Json_Decode$fail(_p6._0); } } }); var _elm_community$json_extra$Json_Decode_Extra$dict2 = F2( function (keyDecoder, valueDecoder) { return A2( _elm_lang$core$Json_Decode$andThen, _elm_community$json_extra$Json_Decode_Extra$decodeDictFromTuples(keyDecoder), _elm_lang$core$Json_Decode$keyValuePairs(valueDecoder)); }); var _elm_community$json_extra$Json_Decode_Extra$set = function (decoder) { return A2( _elm_lang$core$Json_Decode$map, _elm_lang$core$Set$fromList, _elm_lang$core$Json_Decode$list(decoder)); }; var _elm_community$json_extra$Json_Decode_Extra$date = A2( _elm_lang$core$Json_Decode$andThen, function (_p8) { return _elm_community$json_extra$Json_Decode_Extra$fromResult( _elm_lang$core$Date$fromString(_p8)); }, _elm_lang$core$Json_Decode$string); var _elm_community$json_extra$Json_Decode_Extra$andMap = _elm_lang$core$Json_Decode$map2( F2( function (x, y) { return y(x); })); var _elm_community$json_extra$Json_Decode_Extra_ops = _elm_community$json_extra$Json_Decode_Extra_ops || {}; _elm_community$json_extra$Json_Decode_Extra_ops['|:'] = _elm_lang$core$Basics$flip(_elm_community$json_extra$Json_Decode_Extra$andMap); var _elm_community$maybe_extra$Maybe_Extra$foldrValues = F2( function (item, list) { var _p0 = item; if (_p0.ctor === 'Nothing') { return list; } else { return {ctor: '::', _0: _p0._0, _1: list}; } }); var _elm_community$maybe_extra$Maybe_Extra$values = A2( _elm_lang$core$List$foldr, _elm_community$maybe_extra$Maybe_Extra$foldrValues, {ctor: '[]'}); var _elm_community$maybe_extra$Maybe_Extra$filter = F2( function (f, m) { var _p1 = A2(_elm_lang$core$Maybe$map, f, m); if ((_p1.ctor === 'Just') && (_p1._0 === true)) { return m; } else { return _elm_lang$core$Maybe$Nothing; } }); var _elm_community$maybe_extra$Maybe_Extra$traverseArray = function (f) { var step = F2( function (e, acc) { var _p2 = f(e); if (_p2.ctor === 'Nothing') { return _elm_lang$core$Maybe$Nothing; } else { return A2( _elm_lang$core$Maybe$map, _elm_lang$core$Array$push(_p2._0), acc); } }); return A2( _elm_lang$core$Array$foldl, step, _elm_lang$core$Maybe$Just(_elm_lang$core$Array$empty)); }; var _elm_community$maybe_extra$Maybe_Extra$combineArray = _elm_community$maybe_extra$Maybe_Extra$traverseArray(_elm_lang$core$Basics$identity); var _elm_community$maybe_extra$Maybe_Extra$traverse = function (f) { var step = F2( function (e, acc) { var _p3 = f(e); if (_p3.ctor === 'Nothing') { return _elm_lang$core$Maybe$Nothing; } else { return A2( _elm_lang$core$Maybe$map, F2( function (x, y) { return {ctor: '::', _0: x, _1: y}; })(_p3._0), acc); } }); return A2( _elm_lang$core$List$foldr, step, _elm_lang$core$Maybe$Just( {ctor: '[]'})); }; var _elm_community$maybe_extra$Maybe_Extra$combine = _elm_community$maybe_extra$Maybe_Extra$traverse(_elm_lang$core$Basics$identity); var _elm_community$maybe_extra$Maybe_Extra$toArray = function (m) { var _p4 = m; if (_p4.ctor === 'Nothing') { return _elm_lang$core$Array$empty; } else { return A2(_elm_lang$core$Array$repeat, 1, _p4._0); } }; var _elm_community$maybe_extra$Maybe_Extra$toList = function (m) { var _p5 = m; if (_p5.ctor === 'Nothing') { return {ctor: '[]'}; } else { return { ctor: '::', _0: _p5._0, _1: {ctor: '[]'} }; } }; var _elm_community$maybe_extra$Maybe_Extra$orElse = F2( function (ma, mb) { var _p6 = mb; if (_p6.ctor === 'Nothing') { return ma; } else { return mb; } }); var _elm_community$maybe_extra$Maybe_Extra$orElseLazy = F2( function (fma, mb) { var _p7 = mb; if (_p7.ctor === 'Nothing') { return fma( {ctor: '_Tuple0'}); } else { return mb; } }); var _elm_community$maybe_extra$Maybe_Extra$orLazy = F2( function (ma, fmb) { var _p8 = ma; if (_p8.ctor === 'Nothing') { return fmb( {ctor: '_Tuple0'}); } else { return ma; } }); var _elm_community$maybe_extra$Maybe_Extra$or = F2( function (ma, mb) { var _p9 = ma; if (_p9.ctor === 'Nothing') { return mb; } else { return ma; } }); var _elm_community$maybe_extra$Maybe_Extra$prev = _elm_lang$core$Maybe$map2(_elm_lang$core$Basics$always); var _elm_community$maybe_extra$Maybe_Extra$next = _elm_lang$core$Maybe$map2( _elm_lang$core$Basics$flip(_elm_lang$core$Basics$always)); var _elm_community$maybe_extra$Maybe_Extra$andMap = _elm_lang$core$Maybe$map2( F2( function (x, y) { return y(x); })); var _elm_community$maybe_extra$Maybe_Extra$unpack = F3( function (d, f, m) { var _p10 = m; if (_p10.ctor === 'Nothing') { return d( {ctor: '_Tuple0'}); } else { return f(_p10._0); } }); var _elm_community$maybe_extra$Maybe_Extra$unwrap = F3( function (d, f, m) { var _p11 = m; if (_p11.ctor === 'Nothing') { return d; } else { return f(_p11._0); } }); var _elm_community$maybe_extra$Maybe_Extra$isJust = function (m) { var _p12 = m; if (_p12.ctor === 'Nothing') { return false; } else { return true; } }; var _elm_community$maybe_extra$Maybe_Extra$isNothing = function (m) { var _p13 = m; if (_p13.ctor === 'Nothing') { return true; } else { return false; } }; var _elm_community$maybe_extra$Maybe_Extra$join = function (mx) { var _p14 = mx; if (_p14.ctor === 'Just') { return _p14._0; } else { return _elm_lang$core$Maybe$Nothing; } }; var _elm_community$maybe_extra$Maybe_Extra_ops = _elm_community$maybe_extra$Maybe_Extra_ops || {}; _elm_community$maybe_extra$Maybe_Extra_ops['?'] = F2( function (mx, x) { return A2(_elm_lang$core$Maybe$withDefault, x, mx); }); 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 _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$Process$kill = _elm_lang$core$Native_Scheduler.kill; var _elm_lang$core$Process$sleep = _elm_lang$core$Native_Scheduler.sleep; var _elm_lang$core$Process$spawn = _elm_lang$core$Native_Scheduler.spawn; 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_LowLevel$onWindow = _elm_lang$dom$Native_Dom.onWindow; var _elm_lang$dom$Dom_LowLevel$onDocument = _elm_lang$dom$Native_Dom.onDocument; 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$Native_Debug = function() { // IMPORT / EXPORT function unsafeCoerce(value) { return value; } var upload = _elm_lang$core$Native_Scheduler.nativeBinding(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(_elm_lang$core$Native_Scheduler.succeed(e.target.result)); }; fileReader.readAsText(event.target.files[0]); document.body.removeChild(element); }); document.body.appendChild(element); element.click(); }); function download(historyLength, json) { return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) { var fileName = 'history-' + historyLength + '.txt'; var jsonString = JSON.stringify(json); var mime = 'text/plain;charset=utf-8'; var done = _elm_lang$core$Native_Scheduler.succeed(_elm_lang$core$Native_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 function messageToString(value) { switch (typeof value) { case 'boolean': return value ? 'True' : 'False'; case 'number': return value + ''; case 'string': return '"' + addSlashes(value, false) + '"'; } if (value instanceof String) { return '\'' + addSlashes(value, true) + '\''; } if (typeof value !== 'object' || value === null || !('ctor' in value)) { return '…'; } var ctorStarter = value.ctor.substring(0, 5); if (ctorStarter === '_Tupl' || ctorStarter === '_Task') { return '…' } if (['_Array', '', '_Process', '::', '[]', 'Set_elm_builtin', 'RBNode_elm_builtin', 'RBEmpty_elm_builtin'].indexOf(value.ctor) >= 0) { return '…'; } var keys = Object.keys(value); switch (keys.length) { case 1: return value.ctor; case 2: return value.ctor + ' ' + messageToString(value._0); default: return value.ctor + ' … ' + messageToString(value[keys[keys.length - 1]]); } } function primitive(str) { return { ctor: 'Primitive', _0: str }; } function init(value) { var type = typeof value; if (type === 'boolean') { return { ctor: 'Constructor', _0: _elm_lang$core$Maybe$Just(value ? 'True' : 'False'), _1: true, _2: _elm_lang$core$Native_List.Nil }; } if (type === 'number') { return primitive(value + ''); } if (type === 'string') { return { ctor: 'S', _0: '"' + addSlashes(value, false) + '"' }; } if (value instanceof String) { return { ctor: 'S', _0: "'" + addSlashes(value, true) + "'" }; } if (value instanceof Date) { return primitive('<' + value.toString() + '>'); } if (value === null) { return primitive('XXX'); } if (type === 'object' && 'ctor' in value) { var ctor = value.ctor; if (ctor === '::' || ctor === '[]') { return { ctor: 'Sequence', _0: {ctor: 'ListSeq'}, _1: true, _2: A2(_elm_lang$core$List$map, init, value) }; } if (ctor === 'Set_elm_builtin') { return { ctor: 'Sequence', _0: {ctor: 'SetSeq'}, _1: true, _2: A3(_elm_lang$core$Set$foldr, initCons, _elm_lang$core$Native_List.Nil, value) }; } if (ctor === 'RBNode_elm_builtin' || ctor == 'RBEmpty_elm_builtin') { return { ctor: 'Dictionary', _0: true, _1: A3(_elm_lang$core$Dict$foldr, initKeyValueCons, _elm_lang$core$Native_List.Nil, value) }; } if (ctor === '_Array') { return { ctor: 'Sequence', _0: {ctor: 'ArraySeq'}, _1: true, _2: A3(_elm_lang$core$Array$foldr, initCons, _elm_lang$core$Native_List.Nil, value) }; } var ctorStarter = value.ctor.substring(0, 5); if (ctorStarter === '_Task') { return primitive(''); } if (ctor === '') { return primitive(ctor); } if (ctor === '_Process') { return primitive(''); } var list = _elm_lang$core$Native_List.Nil; for (var i in value) { if (i === 'ctor') continue; list = _elm_lang$core$Native_List.Cons(init(value[i]), list); } return { ctor: 'Constructor', _0: ctorStarter === '_Tupl' ? _elm_lang$core$Maybe$Nothing : _elm_lang$core$Maybe$Just(ctor), _1: true, _2: _elm_lang$core$List$reverse(list) }; } if (type === 'object') { var dict = _elm_lang$core$Dict$empty; for (var i in value) { dict = A3(_elm_lang$core$Dict$insert, i, init(value[i]), dict); } return { ctor: 'Record', _0: true, _1: dict }; } return primitive('XXX'); } var initCons = F2(initConsHelp); function initConsHelp(value, list) { return _elm_lang$core$Native_List.Cons(init(value), list); } var initKeyValueCons = F3(initKeyValueConsHelp); function initKeyValueConsHelp(key, value, list) { return _elm_lang$core$Native_List.Cons( _elm_lang$core$Native_Utils.Tuple2(init(key), init(value)), list ); } 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 { upload: upload, download: F2(download), unsafeCoerce: unsafeCoerce, messageToString: messageToString, init: init } }(); var _elm_lang$virtual_dom$VirtualDom_Helpers$keyedNode = _elm_lang$virtual_dom$Native_VirtualDom.keyedNode; var _elm_lang$virtual_dom$VirtualDom_Helpers$lazy3 = _elm_lang$virtual_dom$Native_VirtualDom.lazy3; var _elm_lang$virtual_dom$VirtualDom_Helpers$lazy2 = _elm_lang$virtual_dom$Native_VirtualDom.lazy2; var _elm_lang$virtual_dom$VirtualDom_Helpers$lazy = _elm_lang$virtual_dom$Native_VirtualDom.lazy; var _elm_lang$virtual_dom$VirtualDom_Helpers$defaultOptions = {stopPropagation: false, preventDefault: false}; var _elm_lang$virtual_dom$VirtualDom_Helpers$onWithOptions = _elm_lang$virtual_dom$Native_VirtualDom.on; var _elm_lang$virtual_dom$VirtualDom_Helpers$on = F2( function (eventName, decoder) { return A3(_elm_lang$virtual_dom$VirtualDom_Helpers$onWithOptions, eventName, _elm_lang$virtual_dom$VirtualDom_Helpers$defaultOptions, decoder); }); var _elm_lang$virtual_dom$VirtualDom_Helpers$onClick = function (msg) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$on, 'click', _elm_lang$core$Json_Decode$succeed(msg)); }; var _elm_lang$virtual_dom$VirtualDom_Helpers$style = _elm_lang$virtual_dom$Native_VirtualDom.style; var _elm_lang$virtual_dom$VirtualDom_Helpers$attribute = _elm_lang$virtual_dom$Native_VirtualDom.attribute; var _elm_lang$virtual_dom$VirtualDom_Helpers$id = _elm_lang$virtual_dom$VirtualDom_Helpers$attribute('id'); var _elm_lang$virtual_dom$VirtualDom_Helpers$property = _elm_lang$virtual_dom$Native_VirtualDom.property; var _elm_lang$virtual_dom$VirtualDom_Helpers$class = function (name) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$property, 'className', _elm_lang$core$Json_Encode$string(name)); }; var _elm_lang$virtual_dom$VirtualDom_Helpers$href = function (name) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$property, 'href', _elm_lang$core$Json_Encode$string(name)); }; var _elm_lang$virtual_dom$VirtualDom_Helpers$map = _elm_lang$virtual_dom$Native_VirtualDom.map; var _elm_lang$virtual_dom$VirtualDom_Helpers$text = _elm_lang$virtual_dom$Native_VirtualDom.text; var _elm_lang$virtual_dom$VirtualDom_Helpers$node = _elm_lang$virtual_dom$Native_VirtualDom.node; var _elm_lang$virtual_dom$VirtualDom_Helpers$div = _elm_lang$virtual_dom$VirtualDom_Helpers$node('div'); var _elm_lang$virtual_dom$VirtualDom_Helpers$span = _elm_lang$virtual_dom$VirtualDom_Helpers$node('span'); var _elm_lang$virtual_dom$VirtualDom_Helpers$a = _elm_lang$virtual_dom$VirtualDom_Helpers$node('a'); var _elm_lang$virtual_dom$VirtualDom_Helpers$h1 = _elm_lang$virtual_dom$VirtualDom_Helpers$node('h1'); var _elm_lang$virtual_dom$VirtualDom_Helpers$Options = F2( function (a, b) { return {stopPropagation: a, preventDefault: b}; }); var _elm_lang$virtual_dom$VirtualDom_Helpers$Node = {ctor: 'Node'}; var _elm_lang$virtual_dom$VirtualDom_Helpers$Property = {ctor: 'Property'}; var _elm_lang$virtual_dom$VirtualDom_Expando$purple = _elm_lang$virtual_dom$VirtualDom_Helpers$style( { ctor: '::', _0: {ctor: '_Tuple2', _0: 'color', _1: 'rgb(136, 19, 145)'}, _1: {ctor: '[]'} }); var _elm_lang$virtual_dom$VirtualDom_Expando$blue = _elm_lang$virtual_dom$VirtualDom_Helpers$style( { ctor: '::', _0: {ctor: '_Tuple2', _0: 'color', _1: 'rgb(28, 0, 207)'}, _1: {ctor: '[]'} }); var _elm_lang$virtual_dom$VirtualDom_Expando$red = _elm_lang$virtual_dom$VirtualDom_Helpers$style( { ctor: '::', _0: {ctor: '_Tuple2', _0: 'color', _1: 'rgb(196, 26, 22)'}, _1: {ctor: '[]'} }); var _elm_lang$virtual_dom$VirtualDom_Expando$leftPad = function (maybeKey) { var _p0 = maybeKey; if (_p0.ctor === 'Nothing') { return _elm_lang$virtual_dom$VirtualDom_Helpers$style( {ctor: '[]'}); } else { return _elm_lang$virtual_dom$VirtualDom_Helpers$style( { ctor: '::', _0: {ctor: '_Tuple2', _0: 'padding-left', _1: '4ch'}, _1: {ctor: '[]'} }); } }; var _elm_lang$virtual_dom$VirtualDom_Expando$makeArrow = function (arrow) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$style( { ctor: '::', _0: {ctor: '_Tuple2', _0: 'color', _1: '#777'}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: 'padding-left', _1: '2ch'}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: 'width', _1: '2ch'}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: 'display', _1: 'inline-block'}, _1: {ctor: '[]'} } } } }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(arrow), _1: {ctor: '[]'} }); }; var _elm_lang$virtual_dom$VirtualDom_Expando$lineStarter = F3( function (maybeKey, maybeIsClosed, description) { var arrow = function () { var _p1 = maybeIsClosed; if (_p1.ctor === 'Nothing') { return _elm_lang$virtual_dom$VirtualDom_Expando$makeArrow(''); } else { if (_p1._0 === true) { return _elm_lang$virtual_dom$VirtualDom_Expando$makeArrow('▸'); } else { return _elm_lang$virtual_dom$VirtualDom_Expando$makeArrow('▾'); } } }(); var _p2 = maybeKey; if (_p2.ctor === 'Nothing') { return {ctor: '::', _0: arrow, _1: description}; } else { return { ctor: '::', _0: arrow, _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Expando$purple, _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(_p2._0), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(' = '), _1: description } } }; } }); var _elm_lang$virtual_dom$VirtualDom_Expando$viewExtraTinyRecord = F3( function (length, starter, entries) { var _p3 = entries; if (_p3.ctor === '[]') { return { ctor: '_Tuple2', _0: length + 1, _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('}'), _1: {ctor: '[]'} } }; } else { var _p5 = _p3._0; var nextLength = (length + _elm_lang$core$String$length(_p5)) + 1; if (_elm_lang$core$Native_Utils.cmp(nextLength, 18) > 0) { return { ctor: '_Tuple2', _0: length + 2, _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('…}'), _1: {ctor: '[]'} } }; } else { var _p4 = A3(_elm_lang$virtual_dom$VirtualDom_Expando$viewExtraTinyRecord, nextLength, ',', _p3._1); var finalLength = _p4._0; var otherNodes = _p4._1; return { ctor: '_Tuple2', _0: finalLength, _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(starter), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Expando$purple, _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(_p5), _1: {ctor: '[]'} }), _1: otherNodes } } }; } } }); var _elm_lang$virtual_dom$VirtualDom_Expando$elideMiddle = function (str) { return (_elm_lang$core$Native_Utils.cmp( _elm_lang$core$String$length(str), 18) < 1) ? str : A2( _elm_lang$core$Basics_ops['++'], A2(_elm_lang$core$String$left, 8, str), A2( _elm_lang$core$Basics_ops['++'], '...', A2(_elm_lang$core$String$right, 8, str))); }; var _elm_lang$virtual_dom$VirtualDom_Expando$viewTinyHelp = function (str) { return { ctor: '_Tuple2', _0: _elm_lang$core$String$length(str), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(str), _1: {ctor: '[]'} } }; }; var _elm_lang$virtual_dom$VirtualDom_Expando$updateIndex = F3( function (n, func, list) { var _p6 = list; if (_p6.ctor === '[]') { return {ctor: '[]'}; } else { var _p8 = _p6._1; var _p7 = _p6._0; return (_elm_lang$core$Native_Utils.cmp(n, 0) < 1) ? { ctor: '::', _0: func(_p7), _1: _p8 } : { ctor: '::', _0: _p7, _1: A3(_elm_lang$virtual_dom$VirtualDom_Expando$updateIndex, n - 1, func, _p8) }; } }); var _elm_lang$virtual_dom$VirtualDom_Expando$seqTypeToString = F2( function (n, seqType) { var _p9 = seqType; switch (_p9.ctor) { case 'ListSeq': return A2( _elm_lang$core$Basics_ops['++'], 'List(', A2( _elm_lang$core$Basics_ops['++'], _elm_lang$core$Basics$toString(n), ')')); case 'SetSeq': return A2( _elm_lang$core$Basics_ops['++'], 'Set(', A2( _elm_lang$core$Basics_ops['++'], _elm_lang$core$Basics$toString(n), ')')); default: return A2( _elm_lang$core$Basics_ops['++'], 'Array(', A2( _elm_lang$core$Basics_ops['++'], _elm_lang$core$Basics$toString(n), ')')); } }); var _elm_lang$virtual_dom$VirtualDom_Expando$viewTiny = function (value) { var _p10 = value; switch (_p10.ctor) { case 'S': var str = _elm_lang$virtual_dom$VirtualDom_Expando$elideMiddle(_p10._0); return { ctor: '_Tuple2', _0: _elm_lang$core$String$length(str), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Expando$red, _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(str), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }; case 'Primitive': var _p11 = _p10._0; return { ctor: '_Tuple2', _0: _elm_lang$core$String$length(_p11), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Expando$blue, _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(_p11), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }; case 'Sequence': return _elm_lang$virtual_dom$VirtualDom_Expando$viewTinyHelp( A2( _elm_lang$virtual_dom$VirtualDom_Expando$seqTypeToString, _elm_lang$core$List$length(_p10._2), _p10._0)); case 'Dictionary': return _elm_lang$virtual_dom$VirtualDom_Expando$viewTinyHelp( A2( _elm_lang$core$Basics_ops['++'], 'Dict(', A2( _elm_lang$core$Basics_ops['++'], _elm_lang$core$Basics$toString( _elm_lang$core$List$length(_p10._1)), ')'))); case 'Record': return _elm_lang$virtual_dom$VirtualDom_Expando$viewTinyRecord(_p10._1); default: if (_p10._2.ctor === '[]') { return _elm_lang$virtual_dom$VirtualDom_Expando$viewTinyHelp( A2(_elm_lang$core$Maybe$withDefault, 'Unit', _p10._0)); } else { return _elm_lang$virtual_dom$VirtualDom_Expando$viewTinyHelp( function () { var _p12 = _p10._0; if (_p12.ctor === 'Nothing') { return A2( _elm_lang$core$Basics_ops['++'], 'Tuple(', A2( _elm_lang$core$Basics_ops['++'], _elm_lang$core$Basics$toString( _elm_lang$core$List$length(_p10._2)), ')')); } else { return A2(_elm_lang$core$Basics_ops['++'], _p12._0, ' …'); } }()); } } }; var _elm_lang$virtual_dom$VirtualDom_Expando$viewTinyRecord = function (record) { return _elm_lang$core$Dict$isEmpty(record) ? { ctor: '_Tuple2', _0: 2, _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('{}'), _1: {ctor: '[]'} } } : A3( _elm_lang$virtual_dom$VirtualDom_Expando$viewTinyRecordHelp, 0, '{ ', _elm_lang$core$Dict$toList(record)); }; var _elm_lang$virtual_dom$VirtualDom_Expando$viewTinyRecordHelp = F3( function (length, starter, entries) { var _p13 = entries; if (_p13.ctor === '[]') { return { ctor: '_Tuple2', _0: length + 2, _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(' }'), _1: {ctor: '[]'} } }; } else { var _p16 = _p13._0._0; var _p14 = _elm_lang$virtual_dom$VirtualDom_Expando$viewExtraTiny(_p13._0._1); var valueLen = _p14._0; var valueNodes = _p14._1; var fieldLen = _elm_lang$core$String$length(_p16); var newLength = ((length + fieldLen) + valueLen) + 5; if (_elm_lang$core$Native_Utils.cmp(newLength, 60) > 0) { return { ctor: '_Tuple2', _0: length + 4, _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(', … }'), _1: {ctor: '[]'} } }; } else { var _p15 = A3(_elm_lang$virtual_dom$VirtualDom_Expando$viewTinyRecordHelp, newLength, ', ', _p13._1); var finalLength = _p15._0; var otherNodes = _p15._1; return { ctor: '_Tuple2', _0: finalLength, _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(starter), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Expando$purple, _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(_p16), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(' = '), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, {ctor: '[]'}, valueNodes), _1: otherNodes } } } } }; } } }); var _elm_lang$virtual_dom$VirtualDom_Expando$viewExtraTiny = function (value) { var _p17 = value; if (_p17.ctor === 'Record') { return A3( _elm_lang$virtual_dom$VirtualDom_Expando$viewExtraTinyRecord, 0, '{', _elm_lang$core$Dict$keys(_p17._1)); } else { return _elm_lang$virtual_dom$VirtualDom_Expando$viewTiny(value); } }; var _elm_lang$virtual_dom$VirtualDom_Expando$Constructor = F3( function (a, b, c) { return {ctor: 'Constructor', _0: a, _1: b, _2: c}; }); var _elm_lang$virtual_dom$VirtualDom_Expando$Record = F2( function (a, b) { return {ctor: 'Record', _0: a, _1: b}; }); var _elm_lang$virtual_dom$VirtualDom_Expando$Dictionary = F2( function (a, b) { return {ctor: 'Dictionary', _0: a, _1: b}; }); var _elm_lang$virtual_dom$VirtualDom_Expando$Sequence = F3( function (a, b, c) { return {ctor: 'Sequence', _0: a, _1: b, _2: c}; }); var _elm_lang$virtual_dom$VirtualDom_Expando$initHelp = F2( function (isOuter, expando) { var _p18 = expando; switch (_p18.ctor) { case 'S': return expando; case 'Primitive': return expando; case 'Sequence': var _p20 = _p18._0; var _p19 = _p18._2; return isOuter ? A3( _elm_lang$virtual_dom$VirtualDom_Expando$Sequence, _p20, false, A2( _elm_lang$core$List$map, _elm_lang$virtual_dom$VirtualDom_Expando$initHelp(false), _p19)) : ((_elm_lang$core$Native_Utils.cmp( _elm_lang$core$List$length(_p19), 8) < 1) ? A3(_elm_lang$virtual_dom$VirtualDom_Expando$Sequence, _p20, false, _p19) : expando); case 'Dictionary': var _p23 = _p18._1; return isOuter ? A2( _elm_lang$virtual_dom$VirtualDom_Expando$Dictionary, false, A2( _elm_lang$core$List$map, function (_p21) { var _p22 = _p21; return { ctor: '_Tuple2', _0: _p22._0, _1: A2(_elm_lang$virtual_dom$VirtualDom_Expando$initHelp, false, _p22._1) }; }, _p23)) : ((_elm_lang$core$Native_Utils.cmp( _elm_lang$core$List$length(_p23), 8) < 1) ? A2(_elm_lang$virtual_dom$VirtualDom_Expando$Dictionary, false, _p23) : expando); case 'Record': var _p25 = _p18._1; return isOuter ? A2( _elm_lang$virtual_dom$VirtualDom_Expando$Record, false, A2( _elm_lang$core$Dict$map, F2( function (_p24, v) { return A2(_elm_lang$virtual_dom$VirtualDom_Expando$initHelp, false, v); }), _p25)) : ((_elm_lang$core$Native_Utils.cmp( _elm_lang$core$Dict$size(_p25), 4) < 1) ? A2(_elm_lang$virtual_dom$VirtualDom_Expando$Record, false, _p25) : expando); default: var _p27 = _p18._0; var _p26 = _p18._2; return isOuter ? A3( _elm_lang$virtual_dom$VirtualDom_Expando$Constructor, _p27, false, A2( _elm_lang$core$List$map, _elm_lang$virtual_dom$VirtualDom_Expando$initHelp(false), _p26)) : ((_elm_lang$core$Native_Utils.cmp( _elm_lang$core$List$length(_p26), 4) < 1) ? A3(_elm_lang$virtual_dom$VirtualDom_Expando$Constructor, _p27, false, _p26) : expando); } }); var _elm_lang$virtual_dom$VirtualDom_Expando$init = function (value) { return A2( _elm_lang$virtual_dom$VirtualDom_Expando$initHelp, true, _elm_lang$virtual_dom$Native_Debug.init(value)); }; var _elm_lang$virtual_dom$VirtualDom_Expando$mergeHelp = F2( function (old, $new) { var _p28 = {ctor: '_Tuple2', _0: old, _1: $new}; _v12_6: do { if (_p28.ctor === '_Tuple2') { switch (_p28._1.ctor) { case 'S': return $new; case 'Primitive': return $new; case 'Sequence': if (_p28._0.ctor === 'Sequence') { return A3( _elm_lang$virtual_dom$VirtualDom_Expando$Sequence, _p28._1._0, _p28._0._1, A2(_elm_lang$virtual_dom$VirtualDom_Expando$mergeListHelp, _p28._0._2, _p28._1._2)); } else { break _v12_6; } case 'Dictionary': if (_p28._0.ctor === 'Dictionary') { return A2(_elm_lang$virtual_dom$VirtualDom_Expando$Dictionary, _p28._0._0, _p28._1._1); } else { break _v12_6; } case 'Record': if (_p28._0.ctor === 'Record') { return A2( _elm_lang$virtual_dom$VirtualDom_Expando$Record, _p28._0._0, A2( _elm_lang$core$Dict$map, _elm_lang$virtual_dom$VirtualDom_Expando$mergeDictHelp(_p28._0._1), _p28._1._1)); } else { break _v12_6; } default: if (_p28._0.ctor === 'Constructor') { return A3( _elm_lang$virtual_dom$VirtualDom_Expando$Constructor, _p28._1._0, _p28._0._1, A2(_elm_lang$virtual_dom$VirtualDom_Expando$mergeListHelp, _p28._0._2, _p28._1._2)); } else { break _v12_6; } } } else { break _v12_6; } } while(false); return $new; }); var _elm_lang$virtual_dom$VirtualDom_Expando$mergeDictHelp = F3( function (oldDict, key, value) { var _p29 = A2(_elm_lang$core$Dict$get, key, oldDict); if (_p29.ctor === 'Nothing') { return value; } else { return A2(_elm_lang$virtual_dom$VirtualDom_Expando$mergeHelp, _p29._0, value); } }); var _elm_lang$virtual_dom$VirtualDom_Expando$mergeListHelp = F2( function (olds, news) { var _p30 = {ctor: '_Tuple2', _0: olds, _1: news}; if (_p30._0.ctor === '[]') { return news; } else { if (_p30._1.ctor === '[]') { return news; } else { return { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Expando$mergeHelp, _p30._0._0, _p30._1._0), _1: A2(_elm_lang$virtual_dom$VirtualDom_Expando$mergeListHelp, _p30._0._1, _p30._1._1) }; } } }); var _elm_lang$virtual_dom$VirtualDom_Expando$merge = F2( function (value, expando) { return A2( _elm_lang$virtual_dom$VirtualDom_Expando$mergeHelp, expando, _elm_lang$virtual_dom$Native_Debug.init(value)); }); var _elm_lang$virtual_dom$VirtualDom_Expando$update = F2( function (msg, value) { var _p31 = value; switch (_p31.ctor) { case 'S': return _elm_lang$core$Native_Utils.crashCase( 'VirtualDom.Expando', { start: {line: 168, column: 3}, end: {line: 235, column: 50} }, _p31)('No messages for primitives'); case 'Primitive': return _elm_lang$core$Native_Utils.crashCase( 'VirtualDom.Expando', { start: {line: 168, column: 3}, end: {line: 235, column: 50} }, _p31)('No messages for primitives'); case 'Sequence': var _p39 = _p31._2; var _p38 = _p31._0; var _p37 = _p31._1; var _p34 = msg; switch (_p34.ctor) { case 'Toggle': return A3(_elm_lang$virtual_dom$VirtualDom_Expando$Sequence, _p38, !_p37, _p39); case 'Index': if (_p34._0.ctor === 'None') { return A3( _elm_lang$virtual_dom$VirtualDom_Expando$Sequence, _p38, _p37, A3( _elm_lang$virtual_dom$VirtualDom_Expando$updateIndex, _p34._1, _elm_lang$virtual_dom$VirtualDom_Expando$update(_p34._2), _p39)); } else { return _elm_lang$core$Native_Utils.crashCase( 'VirtualDom.Expando', { start: {line: 176, column: 7}, end: {line: 188, column: 46} }, _p34)('No redirected indexes on sequences'); } default: return _elm_lang$core$Native_Utils.crashCase( 'VirtualDom.Expando', { start: {line: 176, column: 7}, end: {line: 188, column: 46} }, _p34)('No field on sequences'); } case 'Dictionary': var _p51 = _p31._1; var _p50 = _p31._0; var _p40 = msg; switch (_p40.ctor) { case 'Toggle': return A2(_elm_lang$virtual_dom$VirtualDom_Expando$Dictionary, !_p50, _p51); case 'Index': var _p48 = _p40._2; var _p47 = _p40._1; var _p41 = _p40._0; switch (_p41.ctor) { case 'None': return _elm_lang$core$Native_Utils.crashCase( 'VirtualDom.Expando', { start: {line: 196, column: 11}, end: {line: 206, column: 81} }, _p41)('must have redirect for dictionaries'); case 'Key': return A2( _elm_lang$virtual_dom$VirtualDom_Expando$Dictionary, _p50, A3( _elm_lang$virtual_dom$VirtualDom_Expando$updateIndex, _p47, function (_p43) { var _p44 = _p43; return { ctor: '_Tuple2', _0: A2(_elm_lang$virtual_dom$VirtualDom_Expando$update, _p48, _p44._0), _1: _p44._1 }; }, _p51)); default: return A2( _elm_lang$virtual_dom$VirtualDom_Expando$Dictionary, _p50, A3( _elm_lang$virtual_dom$VirtualDom_Expando$updateIndex, _p47, function (_p45) { var _p46 = _p45; return { ctor: '_Tuple2', _0: _p46._0, _1: A2(_elm_lang$virtual_dom$VirtualDom_Expando$update, _p48, _p46._1) }; }, _p51)); } default: return _elm_lang$core$Native_Utils.crashCase( 'VirtualDom.Expando', { start: {line: 191, column: 7}, end: {line: 209, column: 50} }, _p40)('no field for dictionaries'); } case 'Record': var _p55 = _p31._1; var _p54 = _p31._0; var _p52 = msg; switch (_p52.ctor) { case 'Toggle': return A2(_elm_lang$virtual_dom$VirtualDom_Expando$Record, !_p54, _p55); case 'Index': return _elm_lang$core$Native_Utils.crashCase( 'VirtualDom.Expando', { start: {line: 212, column: 7}, end: {line: 220, column: 77} }, _p52)('No index for records'); default: return A2( _elm_lang$virtual_dom$VirtualDom_Expando$Record, _p54, A3( _elm_lang$core$Dict$update, _p52._0, _elm_lang$virtual_dom$VirtualDom_Expando$updateField(_p52._1), _p55)); } default: var _p61 = _p31._2; var _p60 = _p31._0; var _p59 = _p31._1; var _p56 = msg; switch (_p56.ctor) { case 'Toggle': return A3(_elm_lang$virtual_dom$VirtualDom_Expando$Constructor, _p60, !_p59, _p61); case 'Index': if (_p56._0.ctor === 'None') { return A3( _elm_lang$virtual_dom$VirtualDom_Expando$Constructor, _p60, _p59, A3( _elm_lang$virtual_dom$VirtualDom_Expando$updateIndex, _p56._1, _elm_lang$virtual_dom$VirtualDom_Expando$update(_p56._2), _p61)); } else { return _elm_lang$core$Native_Utils.crashCase( 'VirtualDom.Expando', { start: {line: 223, column: 7}, end: {line: 235, column: 50} }, _p56)('No redirected indexes on sequences'); } default: return _elm_lang$core$Native_Utils.crashCase( 'VirtualDom.Expando', { start: {line: 223, column: 7}, end: {line: 235, column: 50} }, _p56)('No field for constructors'); } } }); var _elm_lang$virtual_dom$VirtualDom_Expando$updateField = F2( function (msg, maybeExpando) { var _p62 = maybeExpando; if (_p62.ctor === 'Nothing') { return _elm_lang$core$Native_Utils.crashCase( 'VirtualDom.Expando', { start: {line: 253, column: 3}, end: {line: 258, column: 32} }, _p62)('key does not exist'); } else { return _elm_lang$core$Maybe$Just( A2(_elm_lang$virtual_dom$VirtualDom_Expando$update, msg, _p62._0)); } }); var _elm_lang$virtual_dom$VirtualDom_Expando$Primitive = function (a) { return {ctor: 'Primitive', _0: a}; }; var _elm_lang$virtual_dom$VirtualDom_Expando$S = function (a) { return {ctor: 'S', _0: a}; }; var _elm_lang$virtual_dom$VirtualDom_Expando$ArraySeq = {ctor: 'ArraySeq'}; var _elm_lang$virtual_dom$VirtualDom_Expando$SetSeq = {ctor: 'SetSeq'}; var _elm_lang$virtual_dom$VirtualDom_Expando$ListSeq = {ctor: 'ListSeq'}; var _elm_lang$virtual_dom$VirtualDom_Expando$Field = F2( function (a, b) { return {ctor: 'Field', _0: a, _1: b}; }); var _elm_lang$virtual_dom$VirtualDom_Expando$Index = F3( function (a, b, c) { return {ctor: 'Index', _0: a, _1: b, _2: c}; }); var _elm_lang$virtual_dom$VirtualDom_Expando$Toggle = {ctor: 'Toggle'}; var _elm_lang$virtual_dom$VirtualDom_Expando$Value = {ctor: 'Value'}; var _elm_lang$virtual_dom$VirtualDom_Expando$Key = {ctor: 'Key'}; var _elm_lang$virtual_dom$VirtualDom_Expando$None = {ctor: 'None'}; var _elm_lang$virtual_dom$VirtualDom_Expando$viewConstructorEntry = F2( function (index, value) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$map, A2(_elm_lang$virtual_dom$VirtualDom_Expando$Index, _elm_lang$virtual_dom$VirtualDom_Expando$None, index), A2( _elm_lang$virtual_dom$VirtualDom_Expando$view, _elm_lang$core$Maybe$Just( _elm_lang$core$Basics$toString(index)), value)); }); var _elm_lang$virtual_dom$VirtualDom_Expando$view = F2( function (maybeKey, expando) { var _p64 = expando; switch (_p64.ctor) { case 'S': return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Expando$leftPad(maybeKey), _1: {ctor: '[]'} }, A3( _elm_lang$virtual_dom$VirtualDom_Expando$lineStarter, maybeKey, _elm_lang$core$Maybe$Nothing, { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Expando$red, _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(_p64._0), _1: {ctor: '[]'} }), _1: {ctor: '[]'} })); case 'Primitive': return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Expando$leftPad(maybeKey), _1: {ctor: '[]'} }, A3( _elm_lang$virtual_dom$VirtualDom_Expando$lineStarter, maybeKey, _elm_lang$core$Maybe$Nothing, { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Expando$blue, _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(_p64._0), _1: {ctor: '[]'} }), _1: {ctor: '[]'} })); case 'Sequence': return A4(_elm_lang$virtual_dom$VirtualDom_Expando$viewSequence, maybeKey, _p64._0, _p64._1, _p64._2); case 'Dictionary': return A3(_elm_lang$virtual_dom$VirtualDom_Expando$viewDictionary, maybeKey, _p64._0, _p64._1); case 'Record': return A3(_elm_lang$virtual_dom$VirtualDom_Expando$viewRecord, maybeKey, _p64._0, _p64._1); default: return A4(_elm_lang$virtual_dom$VirtualDom_Expando$viewConstructor, maybeKey, _p64._0, _p64._1, _p64._2); } }); var _elm_lang$virtual_dom$VirtualDom_Expando$viewConstructor = F4( function (maybeKey, maybeName, isClosed, valueList) { var _p65 = function () { var _p66 = valueList; if (_p66.ctor === '[]') { return { ctor: '_Tuple2', _0: _elm_lang$core$Maybe$Nothing, _1: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, {ctor: '[]'}, {ctor: '[]'}) }; } else { if (_p66._1.ctor === '[]') { var _p67 = _p66._0; switch (_p67.ctor) { case 'S': return { ctor: '_Tuple2', _0: _elm_lang$core$Maybe$Nothing, _1: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, {ctor: '[]'}, {ctor: '[]'}) }; case 'Primitive': return { ctor: '_Tuple2', _0: _elm_lang$core$Maybe$Nothing, _1: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, {ctor: '[]'}, {ctor: '[]'}) }; case 'Sequence': return { ctor: '_Tuple2', _0: _elm_lang$core$Maybe$Just(isClosed), _1: isClosed ? A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, {ctor: '[]'}, {ctor: '[]'}) : A2( _elm_lang$virtual_dom$VirtualDom_Helpers$map, A2(_elm_lang$virtual_dom$VirtualDom_Expando$Index, _elm_lang$virtual_dom$VirtualDom_Expando$None, 0), _elm_lang$virtual_dom$VirtualDom_Expando$viewSequenceOpen(_p67._2)) }; case 'Dictionary': return { ctor: '_Tuple2', _0: _elm_lang$core$Maybe$Just(isClosed), _1: isClosed ? A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, {ctor: '[]'}, {ctor: '[]'}) : A2( _elm_lang$virtual_dom$VirtualDom_Helpers$map, A2(_elm_lang$virtual_dom$VirtualDom_Expando$Index, _elm_lang$virtual_dom$VirtualDom_Expando$None, 0), _elm_lang$virtual_dom$VirtualDom_Expando$viewDictionaryOpen(_p67._1)) }; case 'Record': return { ctor: '_Tuple2', _0: _elm_lang$core$Maybe$Just(isClosed), _1: isClosed ? A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, {ctor: '[]'}, {ctor: '[]'}) : A2( _elm_lang$virtual_dom$VirtualDom_Helpers$map, A2(_elm_lang$virtual_dom$VirtualDom_Expando$Index, _elm_lang$virtual_dom$VirtualDom_Expando$None, 0), _elm_lang$virtual_dom$VirtualDom_Expando$viewRecordOpen(_p67._1)) }; default: return { ctor: '_Tuple2', _0: _elm_lang$core$Maybe$Just(isClosed), _1: isClosed ? A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, {ctor: '[]'}, {ctor: '[]'}) : A2( _elm_lang$virtual_dom$VirtualDom_Helpers$map, A2(_elm_lang$virtual_dom$VirtualDom_Expando$Index, _elm_lang$virtual_dom$VirtualDom_Expando$None, 0), _elm_lang$virtual_dom$VirtualDom_Expando$viewConstructorOpen(_p67._2)) }; } } else { return { ctor: '_Tuple2', _0: _elm_lang$core$Maybe$Just(isClosed), _1: isClosed ? A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, {ctor: '[]'}, {ctor: '[]'}) : _elm_lang$virtual_dom$VirtualDom_Expando$viewConstructorOpen(valueList) }; } } }(); var maybeIsClosed = _p65._0; var openHtml = _p65._1; var tinyArgs = A2( _elm_lang$core$List$map, function (_p68) { return _elm_lang$core$Tuple$second( _elm_lang$virtual_dom$VirtualDom_Expando$viewExtraTiny(_p68)); }, valueList); var description = function () { var _p69 = {ctor: '_Tuple2', _0: maybeName, _1: tinyArgs}; if (_p69._0.ctor === 'Nothing') { if (_p69._1.ctor === '[]') { return { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('()'), _1: {ctor: '[]'} }; } else { return { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('( '), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, {ctor: '[]'}, _p69._1._0), _1: A3( _elm_lang$core$List$foldr, F2( function (args, rest) { return { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(', '), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, {ctor: '[]'}, args), _1: rest } }; }), { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(' )'), _1: {ctor: '[]'} }, _p69._1._1) } }; } } else { if (_p69._1.ctor === '[]') { return { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(_p69._0._0), _1: {ctor: '[]'} }; } else { return { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text( A2(_elm_lang$core$Basics_ops['++'], _p69._0._0, ' ')), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, {ctor: '[]'}, _p69._1._0), _1: A3( _elm_lang$core$List$foldr, F2( function (args, rest) { return { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(' '), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, {ctor: '[]'}, args), _1: rest } }; }), {ctor: '[]'}, _p69._1._1) } }; } } }(); return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Expando$leftPad(maybeKey), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$onClick(_elm_lang$virtual_dom$VirtualDom_Expando$Toggle), _1: {ctor: '[]'} }, A3(_elm_lang$virtual_dom$VirtualDom_Expando$lineStarter, maybeKey, maybeIsClosed, description)), _1: { ctor: '::', _0: openHtml, _1: {ctor: '[]'} } }); }); var _elm_lang$virtual_dom$VirtualDom_Expando$viewConstructorOpen = function (valueList) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, {ctor: '[]'}, A2(_elm_lang$core$List$indexedMap, _elm_lang$virtual_dom$VirtualDom_Expando$viewConstructorEntry, valueList)); }; var _elm_lang$virtual_dom$VirtualDom_Expando$viewDictionaryOpen = function (keyValuePairs) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, {ctor: '[]'}, A2(_elm_lang$core$List$indexedMap, _elm_lang$virtual_dom$VirtualDom_Expando$viewDictionaryEntry, keyValuePairs)); }; var _elm_lang$virtual_dom$VirtualDom_Expando$viewDictionaryEntry = F2( function (index, _p70) { var _p71 = _p70; var _p74 = _p71._1; var _p73 = _p71._0; var _p72 = _p73; switch (_p72.ctor) { case 'S': return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$map, A2(_elm_lang$virtual_dom$VirtualDom_Expando$Index, _elm_lang$virtual_dom$VirtualDom_Expando$Value, index), A2( _elm_lang$virtual_dom$VirtualDom_Expando$view, _elm_lang$core$Maybe$Just(_p72._0), _p74)); case 'Primitive': return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$map, A2(_elm_lang$virtual_dom$VirtualDom_Expando$Index, _elm_lang$virtual_dom$VirtualDom_Expando$Value, index), A2( _elm_lang$virtual_dom$VirtualDom_Expando$view, _elm_lang$core$Maybe$Just(_p72._0), _p74)); default: return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$map, A2(_elm_lang$virtual_dom$VirtualDom_Expando$Index, _elm_lang$virtual_dom$VirtualDom_Expando$Key, index), A2( _elm_lang$virtual_dom$VirtualDom_Expando$view, _elm_lang$core$Maybe$Just('key'), _p73)), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$map, A2(_elm_lang$virtual_dom$VirtualDom_Expando$Index, _elm_lang$virtual_dom$VirtualDom_Expando$Value, index), A2( _elm_lang$virtual_dom$VirtualDom_Expando$view, _elm_lang$core$Maybe$Just('value'), _p74)), _1: {ctor: '[]'} } }); } }); var _elm_lang$virtual_dom$VirtualDom_Expando$viewRecordOpen = function (record) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, {ctor: '[]'}, A2( _elm_lang$core$List$map, _elm_lang$virtual_dom$VirtualDom_Expando$viewRecordEntry, _elm_lang$core$Dict$toList(record))); }; var _elm_lang$virtual_dom$VirtualDom_Expando$viewRecordEntry = function (_p75) { var _p76 = _p75; var _p77 = _p76._0; return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$map, _elm_lang$virtual_dom$VirtualDom_Expando$Field(_p77), A2( _elm_lang$virtual_dom$VirtualDom_Expando$view, _elm_lang$core$Maybe$Just(_p77), _p76._1)); }; var _elm_lang$virtual_dom$VirtualDom_Expando$viewSequenceOpen = function (values) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, {ctor: '[]'}, A2(_elm_lang$core$List$indexedMap, _elm_lang$virtual_dom$VirtualDom_Expando$viewConstructorEntry, values)); }; var _elm_lang$virtual_dom$VirtualDom_Expando$viewDictionary = F3( function (maybeKey, isClosed, keyValuePairs) { var starter = A2( _elm_lang$core$Basics_ops['++'], 'Dict(', A2( _elm_lang$core$Basics_ops['++'], _elm_lang$core$Basics$toString( _elm_lang$core$List$length(keyValuePairs)), ')')); return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Expando$leftPad(maybeKey), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$onClick(_elm_lang$virtual_dom$VirtualDom_Expando$Toggle), _1: {ctor: '[]'} }, A3( _elm_lang$virtual_dom$VirtualDom_Expando$lineStarter, maybeKey, _elm_lang$core$Maybe$Just(isClosed), { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(starter), _1: {ctor: '[]'} })), _1: { ctor: '::', _0: isClosed ? _elm_lang$virtual_dom$VirtualDom_Helpers$text('') : _elm_lang$virtual_dom$VirtualDom_Expando$viewDictionaryOpen(keyValuePairs), _1: {ctor: '[]'} } }); }); var _elm_lang$virtual_dom$VirtualDom_Expando$viewRecord = F3( function (maybeKey, isClosed, record) { var _p78 = isClosed ? { ctor: '_Tuple3', _0: _elm_lang$core$Tuple$second( _elm_lang$virtual_dom$VirtualDom_Expando$viewTinyRecord(record)), _1: _elm_lang$virtual_dom$VirtualDom_Helpers$text(''), _2: _elm_lang$virtual_dom$VirtualDom_Helpers$text('') } : { ctor: '_Tuple3', _0: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('{'), _1: {ctor: '[]'} }, _1: _elm_lang$virtual_dom$VirtualDom_Expando$viewRecordOpen(record), _2: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Expando$leftPad( _elm_lang$core$Maybe$Just( {ctor: '_Tuple0'})), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('}'), _1: {ctor: '[]'} }) }; var start = _p78._0; var middle = _p78._1; var end = _p78._2; return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Expando$leftPad(maybeKey), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$onClick(_elm_lang$virtual_dom$VirtualDom_Expando$Toggle), _1: {ctor: '[]'} }, A3( _elm_lang$virtual_dom$VirtualDom_Expando$lineStarter, maybeKey, _elm_lang$core$Maybe$Just(isClosed), start)), _1: { ctor: '::', _0: middle, _1: { ctor: '::', _0: end, _1: {ctor: '[]'} } } }); }); var _elm_lang$virtual_dom$VirtualDom_Expando$viewSequence = F4( function (maybeKey, seqType, isClosed, valueList) { var starter = A2( _elm_lang$virtual_dom$VirtualDom_Expando$seqTypeToString, _elm_lang$core$List$length(valueList), seqType); return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Expando$leftPad(maybeKey), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$onClick(_elm_lang$virtual_dom$VirtualDom_Expando$Toggle), _1: {ctor: '[]'} }, A3( _elm_lang$virtual_dom$VirtualDom_Expando$lineStarter, maybeKey, _elm_lang$core$Maybe$Just(isClosed), { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(starter), _1: {ctor: '[]'} })), _1: { ctor: '::', _0: isClosed ? _elm_lang$virtual_dom$VirtualDom_Helpers$text('') : _elm_lang$virtual_dom$VirtualDom_Expando$viewSequenceOpen(valueList), _1: {ctor: '[]'} } }); }); var _elm_lang$virtual_dom$VirtualDom_Report$some = function (list) { return !_elm_lang$core$List$isEmpty(list); }; var _elm_lang$virtual_dom$VirtualDom_Report$TagChanges = F4( function (a, b, c, d) { return {removed: a, changed: b, added: c, argsMatch: d}; }); var _elm_lang$virtual_dom$VirtualDom_Report$emptyTagChanges = function (argsMatch) { return A4( _elm_lang$virtual_dom$VirtualDom_Report$TagChanges, {ctor: '[]'}, {ctor: '[]'}, {ctor: '[]'}, argsMatch); }; var _elm_lang$virtual_dom$VirtualDom_Report$hasTagChanges = function (tagChanges) { return _elm_lang$core$Native_Utils.eq( tagChanges, A4( _elm_lang$virtual_dom$VirtualDom_Report$TagChanges, {ctor: '[]'}, {ctor: '[]'}, {ctor: '[]'}, true)); }; var _elm_lang$virtual_dom$VirtualDom_Report$SomethingChanged = function (a) { return {ctor: 'SomethingChanged', _0: a}; }; var _elm_lang$virtual_dom$VirtualDom_Report$MessageChanged = F2( function (a, b) { return {ctor: 'MessageChanged', _0: a, _1: b}; }); var _elm_lang$virtual_dom$VirtualDom_Report$VersionChanged = F2( function (a, b) { return {ctor: 'VersionChanged', _0: a, _1: b}; }); var _elm_lang$virtual_dom$VirtualDom_Report$CorruptHistory = {ctor: 'CorruptHistory'}; var _elm_lang$virtual_dom$VirtualDom_Report$UnionChange = F2( function (a, b) { return {ctor: 'UnionChange', _0: a, _1: b}; }); var _elm_lang$virtual_dom$VirtualDom_Report$AliasChange = function (a) { return {ctor: 'AliasChange', _0: a}; }; var _elm_lang$virtual_dom$VirtualDom_Report$Fine = {ctor: 'Fine'}; var _elm_lang$virtual_dom$VirtualDom_Report$Risky = {ctor: 'Risky'}; var _elm_lang$virtual_dom$VirtualDom_Report$Impossible = {ctor: 'Impossible'}; var _elm_lang$virtual_dom$VirtualDom_Report$worstCase = F2( function (status, statusList) { worstCase: while (true) { var _p0 = statusList; if (_p0.ctor === '[]') { return status; } else { switch (_p0._0.ctor) { case 'Impossible': return _elm_lang$virtual_dom$VirtualDom_Report$Impossible; case 'Risky': var _v1 = _elm_lang$virtual_dom$VirtualDom_Report$Risky, _v2 = _p0._1; status = _v1; statusList = _v2; continue worstCase; default: var _v3 = status, _v4 = _p0._1; status = _v3; statusList = _v4; continue worstCase; } } } }); var _elm_lang$virtual_dom$VirtualDom_Report$evaluateChange = function (change) { var _p1 = change; if (_p1.ctor === 'AliasChange') { return _elm_lang$virtual_dom$VirtualDom_Report$Impossible; } else { return ((!_p1._1.argsMatch) || (_elm_lang$virtual_dom$VirtualDom_Report$some(_p1._1.changed) || _elm_lang$virtual_dom$VirtualDom_Report$some(_p1._1.removed))) ? _elm_lang$virtual_dom$VirtualDom_Report$Impossible : (_elm_lang$virtual_dom$VirtualDom_Report$some(_p1._1.added) ? _elm_lang$virtual_dom$VirtualDom_Report$Risky : _elm_lang$virtual_dom$VirtualDom_Report$Fine); } }; var _elm_lang$virtual_dom$VirtualDom_Report$evaluate = function (report) { var _p2 = report; switch (_p2.ctor) { case 'CorruptHistory': return _elm_lang$virtual_dom$VirtualDom_Report$Impossible; case 'VersionChanged': return _elm_lang$virtual_dom$VirtualDom_Report$Impossible; case 'MessageChanged': return _elm_lang$virtual_dom$VirtualDom_Report$Impossible; default: return A2( _elm_lang$virtual_dom$VirtualDom_Report$worstCase, _elm_lang$virtual_dom$VirtualDom_Report$Fine, A2(_elm_lang$core$List$map, _elm_lang$virtual_dom$VirtualDom_Report$evaluateChange, _p2._0)); } }; var _elm_lang$virtual_dom$VirtualDom_Metadata$encodeDict = F2( function (f, dict) { return _elm_lang$core$Json_Encode$object( _elm_lang$core$Dict$toList( A2( _elm_lang$core$Dict$map, F2( function (key, value) { return f(value); }), dict))); }); var _elm_lang$virtual_dom$VirtualDom_Metadata$encodeUnion = function (_p0) { var _p1 = _p0; return _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'args', _1: _elm_lang$core$Json_Encode$list( A2(_elm_lang$core$List$map, _elm_lang$core$Json_Encode$string, _p1.args)) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'tags', _1: A2( _elm_lang$virtual_dom$VirtualDom_Metadata$encodeDict, function (_p2) { return _elm_lang$core$Json_Encode$list( A2(_elm_lang$core$List$map, _elm_lang$core$Json_Encode$string, _p2)); }, _p1.tags) }, _1: {ctor: '[]'} } }); }; var _elm_lang$virtual_dom$VirtualDom_Metadata$encodeAlias = function (_p3) { var _p4 = _p3; return _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'args', _1: _elm_lang$core$Json_Encode$list( A2(_elm_lang$core$List$map, _elm_lang$core$Json_Encode$string, _p4.args)) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'type', _1: _elm_lang$core$Json_Encode$string(_p4.tipe) }, _1: {ctor: '[]'} } }); }; var _elm_lang$virtual_dom$VirtualDom_Metadata$encodeTypes = function (_p5) { var _p6 = _p5; return _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'message', _1: _elm_lang$core$Json_Encode$string(_p6.message) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'aliases', _1: A2(_elm_lang$virtual_dom$VirtualDom_Metadata$encodeDict, _elm_lang$virtual_dom$VirtualDom_Metadata$encodeAlias, _p6.aliases) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'unions', _1: A2(_elm_lang$virtual_dom$VirtualDom_Metadata$encodeDict, _elm_lang$virtual_dom$VirtualDom_Metadata$encodeUnion, _p6.unions) }, _1: {ctor: '[]'} } } }); }; var _elm_lang$virtual_dom$VirtualDom_Metadata$encodeVersions = function (_p7) { var _p8 = _p7; return _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'elm', _1: _elm_lang$core$Json_Encode$string(_p8.elm) }, _1: {ctor: '[]'} }); }; var _elm_lang$virtual_dom$VirtualDom_Metadata$encode = function (_p9) { var _p10 = _p9; return _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'versions', _1: _elm_lang$virtual_dom$VirtualDom_Metadata$encodeVersions(_p10.versions) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'types', _1: _elm_lang$virtual_dom$VirtualDom_Metadata$encodeTypes(_p10.types) }, _1: {ctor: '[]'} } }); }; var _elm_lang$virtual_dom$VirtualDom_Metadata$checkTag = F4( function (tag, old, $new, changes) { return _elm_lang$core$Native_Utils.eq(old, $new) ? changes : _elm_lang$core$Native_Utils.update( changes, { changed: {ctor: '::', _0: tag, _1: changes.changed} }); }); var _elm_lang$virtual_dom$VirtualDom_Metadata$addTag = F3( function (tag, _p11, changes) { return _elm_lang$core$Native_Utils.update( changes, { added: {ctor: '::', _0: tag, _1: changes.added} }); }); var _elm_lang$virtual_dom$VirtualDom_Metadata$removeTag = F3( function (tag, _p12, changes) { return _elm_lang$core$Native_Utils.update( changes, { removed: {ctor: '::', _0: tag, _1: changes.removed} }); }); var _elm_lang$virtual_dom$VirtualDom_Metadata$checkUnion = F4( function (name, old, $new, changes) { var tagChanges = A6( _elm_lang$core$Dict$merge, _elm_lang$virtual_dom$VirtualDom_Metadata$removeTag, _elm_lang$virtual_dom$VirtualDom_Metadata$checkTag, _elm_lang$virtual_dom$VirtualDom_Metadata$addTag, old.tags, $new.tags, _elm_lang$virtual_dom$VirtualDom_Report$emptyTagChanges( _elm_lang$core$Native_Utils.eq(old.args, $new.args))); return _elm_lang$virtual_dom$VirtualDom_Report$hasTagChanges(tagChanges) ? changes : { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Report$UnionChange, name, tagChanges), _1: changes }; }); var _elm_lang$virtual_dom$VirtualDom_Metadata$checkAlias = F4( function (name, old, $new, changes) { return (_elm_lang$core$Native_Utils.eq(old.tipe, $new.tipe) && _elm_lang$core$Native_Utils.eq(old.args, $new.args)) ? changes : { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Report$AliasChange(name), _1: changes }; }); var _elm_lang$virtual_dom$VirtualDom_Metadata$ignore = F3( function (key, value, report) { return report; }); var _elm_lang$virtual_dom$VirtualDom_Metadata$checkTypes = F2( function (old, $new) { return (!_elm_lang$core$Native_Utils.eq(old.message, $new.message)) ? A2(_elm_lang$virtual_dom$VirtualDom_Report$MessageChanged, old.message, $new.message) : _elm_lang$virtual_dom$VirtualDom_Report$SomethingChanged( A6( _elm_lang$core$Dict$merge, _elm_lang$virtual_dom$VirtualDom_Metadata$ignore, _elm_lang$virtual_dom$VirtualDom_Metadata$checkUnion, _elm_lang$virtual_dom$VirtualDom_Metadata$ignore, old.unions, $new.unions, A6( _elm_lang$core$Dict$merge, _elm_lang$virtual_dom$VirtualDom_Metadata$ignore, _elm_lang$virtual_dom$VirtualDom_Metadata$checkAlias, _elm_lang$virtual_dom$VirtualDom_Metadata$ignore, old.aliases, $new.aliases, {ctor: '[]'}))); }); var _elm_lang$virtual_dom$VirtualDom_Metadata$check = F2( function (old, $new) { return (!_elm_lang$core$Native_Utils.eq(old.versions.elm, $new.versions.elm)) ? A2(_elm_lang$virtual_dom$VirtualDom_Report$VersionChanged, old.versions.elm, $new.versions.elm) : A2(_elm_lang$virtual_dom$VirtualDom_Metadata$checkTypes, old.types, $new.types); }); var _elm_lang$virtual_dom$VirtualDom_Metadata$hasProblem = F2( function (tipe, _p13) { var _p14 = _p13; return A2(_elm_lang$core$String$contains, _p14._1, tipe) ? _elm_lang$core$Maybe$Just(_p14._0) : _elm_lang$core$Maybe$Nothing; }); var _elm_lang$virtual_dom$VirtualDom_Metadata$Metadata = F2( function (a, b) { return {versions: a, types: b}; }); var _elm_lang$virtual_dom$VirtualDom_Metadata$Versions = function (a) { return {elm: a}; }; var _elm_lang$virtual_dom$VirtualDom_Metadata$decodeVersions = A2( _elm_lang$core$Json_Decode$map, _elm_lang$virtual_dom$VirtualDom_Metadata$Versions, A2(_elm_lang$core$Json_Decode$field, 'elm', _elm_lang$core$Json_Decode$string)); var _elm_lang$virtual_dom$VirtualDom_Metadata$Types = F3( function (a, b, c) { return {message: a, aliases: b, unions: c}; }); var _elm_lang$virtual_dom$VirtualDom_Metadata$Alias = F2( function (a, b) { return {args: a, tipe: b}; }); var _elm_lang$virtual_dom$VirtualDom_Metadata$decodeAlias = A3( _elm_lang$core$Json_Decode$map2, _elm_lang$virtual_dom$VirtualDom_Metadata$Alias, A2( _elm_lang$core$Json_Decode$field, 'args', _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$string)), A2(_elm_lang$core$Json_Decode$field, 'type', _elm_lang$core$Json_Decode$string)); var _elm_lang$virtual_dom$VirtualDom_Metadata$Union = F2( function (a, b) { return {args: a, tags: b}; }); var _elm_lang$virtual_dom$VirtualDom_Metadata$decodeUnion = A3( _elm_lang$core$Json_Decode$map2, _elm_lang$virtual_dom$VirtualDom_Metadata$Union, A2( _elm_lang$core$Json_Decode$field, 'args', _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$string)), A2( _elm_lang$core$Json_Decode$field, 'tags', _elm_lang$core$Json_Decode$dict( _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$string)))); var _elm_lang$virtual_dom$VirtualDom_Metadata$decodeTypes = A4( _elm_lang$core$Json_Decode$map3, _elm_lang$virtual_dom$VirtualDom_Metadata$Types, A2(_elm_lang$core$Json_Decode$field, 'message', _elm_lang$core$Json_Decode$string), A2( _elm_lang$core$Json_Decode$field, 'aliases', _elm_lang$core$Json_Decode$dict(_elm_lang$virtual_dom$VirtualDom_Metadata$decodeAlias)), A2( _elm_lang$core$Json_Decode$field, 'unions', _elm_lang$core$Json_Decode$dict(_elm_lang$virtual_dom$VirtualDom_Metadata$decodeUnion))); var _elm_lang$virtual_dom$VirtualDom_Metadata$decoder = A3( _elm_lang$core$Json_Decode$map2, _elm_lang$virtual_dom$VirtualDom_Metadata$Metadata, A2(_elm_lang$core$Json_Decode$field, 'versions', _elm_lang$virtual_dom$VirtualDom_Metadata$decodeVersions), A2(_elm_lang$core$Json_Decode$field, 'types', _elm_lang$virtual_dom$VirtualDom_Metadata$decodeTypes)); var _elm_lang$virtual_dom$VirtualDom_Metadata$Error = F2( function (a, b) { return {message: a, problems: b}; }); var _elm_lang$virtual_dom$VirtualDom_Metadata$ProblemType = F2( function (a, b) { return {name: a, problems: b}; }); var _elm_lang$virtual_dom$VirtualDom_Metadata$VirtualDom = {ctor: 'VirtualDom'}; var _elm_lang$virtual_dom$VirtualDom_Metadata$Program = {ctor: 'Program'}; var _elm_lang$virtual_dom$VirtualDom_Metadata$Request = {ctor: 'Request'}; var _elm_lang$virtual_dom$VirtualDom_Metadata$Socket = {ctor: 'Socket'}; var _elm_lang$virtual_dom$VirtualDom_Metadata$Process = {ctor: 'Process'}; var _elm_lang$virtual_dom$VirtualDom_Metadata$Task = {ctor: 'Task'}; var _elm_lang$virtual_dom$VirtualDom_Metadata$Decoder = {ctor: 'Decoder'}; var _elm_lang$virtual_dom$VirtualDom_Metadata$Function = {ctor: 'Function'}; var _elm_lang$virtual_dom$VirtualDom_Metadata$problemTable = { ctor: '::', _0: {ctor: '_Tuple2', _0: _elm_lang$virtual_dom$VirtualDom_Metadata$Function, _1: '->'}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: _elm_lang$virtual_dom$VirtualDom_Metadata$Decoder, _1: 'Json.Decode.Decoder'}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: _elm_lang$virtual_dom$VirtualDom_Metadata$Task, _1: 'Task.Task'}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: _elm_lang$virtual_dom$VirtualDom_Metadata$Process, _1: 'Process.Id'}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: _elm_lang$virtual_dom$VirtualDom_Metadata$Socket, _1: 'WebSocket.LowLevel.WebSocket'}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: _elm_lang$virtual_dom$VirtualDom_Metadata$Request, _1: 'Http.Request'}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: _elm_lang$virtual_dom$VirtualDom_Metadata$Program, _1: 'Platform.Program'}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: _elm_lang$virtual_dom$VirtualDom_Metadata$VirtualDom, _1: 'VirtualDom.Node'}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: _elm_lang$virtual_dom$VirtualDom_Metadata$VirtualDom, _1: 'VirtualDom.Attribute'}, _1: {ctor: '[]'} } } } } } } } } }; var _elm_lang$virtual_dom$VirtualDom_Metadata$findProblems = function (tipe) { return A2( _elm_lang$core$List$filterMap, _elm_lang$virtual_dom$VirtualDom_Metadata$hasProblem(tipe), _elm_lang$virtual_dom$VirtualDom_Metadata$problemTable); }; var _elm_lang$virtual_dom$VirtualDom_Metadata$collectBadAliases = F3( function (name, _p15, list) { var _p16 = _p15; var _p17 = _elm_lang$virtual_dom$VirtualDom_Metadata$findProblems(_p16.tipe); if (_p17.ctor === '[]') { return list; } else { return { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Metadata$ProblemType, name, _p17), _1: list }; } }); var _elm_lang$virtual_dom$VirtualDom_Metadata$collectBadUnions = F3( function (name, _p18, list) { var _p19 = _p18; var _p20 = A2( _elm_lang$core$List$concatMap, _elm_lang$virtual_dom$VirtualDom_Metadata$findProblems, _elm_lang$core$List$concat( _elm_lang$core$Dict$values(_p19.tags))); if (_p20.ctor === '[]') { return list; } else { return { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Metadata$ProblemType, name, _p20), _1: list }; } }); var _elm_lang$virtual_dom$VirtualDom_Metadata$isPortable = function (_p21) { var _p22 = _p21; var _p24 = _p22.types; var badAliases = A3( _elm_lang$core$Dict$foldl, _elm_lang$virtual_dom$VirtualDom_Metadata$collectBadAliases, {ctor: '[]'}, _p24.aliases); var _p23 = A3(_elm_lang$core$Dict$foldl, _elm_lang$virtual_dom$VirtualDom_Metadata$collectBadUnions, badAliases, _p24.unions); if (_p23.ctor === '[]') { return _elm_lang$core$Maybe$Nothing; } else { return _elm_lang$core$Maybe$Just( A2(_elm_lang$virtual_dom$VirtualDom_Metadata$Error, _p24.message, _p23)); } }; var _elm_lang$virtual_dom$VirtualDom_Metadata$decode = function (value) { var _p25 = A2(_elm_lang$core$Json_Decode$decodeValue, _elm_lang$virtual_dom$VirtualDom_Metadata$decoder, value); if (_p25.ctor === 'Err') { return _elm_lang$core$Native_Utils.crashCase( 'VirtualDom.Metadata', { start: {line: 229, column: 3}, end: {line: 239, column: 20} }, _p25)('Compiler is generating bad metadata. Report this at .'); } else { var _p28 = _p25._0; var _p27 = _elm_lang$virtual_dom$VirtualDom_Metadata$isPortable(_p28); if (_p27.ctor === 'Nothing') { return _elm_lang$core$Result$Ok(_p28); } else { return _elm_lang$core$Result$Err(_p27._0); } } }; var _elm_lang$virtual_dom$VirtualDom_History$viewMessage = F3( function (currentIndex, index, msg) { var messageName = _elm_lang$virtual_dom$Native_Debug.messageToString(msg); var className = _elm_lang$core$Native_Utils.eq(currentIndex, index) ? 'messages-entry messages-entry-selected' : 'messages-entry'; return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class(className), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$on, 'click', _elm_lang$core$Json_Decode$succeed(index)), _1: {ctor: '[]'} } }, { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('messages-entry-content'), _1: { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Helpers$attribute, 'title', messageName), _1: {ctor: '[]'} } }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(messageName), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('messages-entry-index'), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text( _elm_lang$core$Basics$toString(index)), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }); }); var _elm_lang$virtual_dom$VirtualDom_History$consMsg = F3( function (currentIndex, msg, _p0) { var _p1 = _p0; var _p2 = _p1._0; return { ctor: '_Tuple2', _0: _p2 - 1, _1: { ctor: '::', _0: A4(_elm_lang$virtual_dom$VirtualDom_Helpers$lazy3, _elm_lang$virtual_dom$VirtualDom_History$viewMessage, currentIndex, _p2, msg), _1: _p1._1 } }; }); var _elm_lang$virtual_dom$VirtualDom_History$viewSnapshot = F3( function (currentIndex, index, _p3) { var _p4 = _p3; return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, {ctor: '[]'}, _elm_lang$core$Tuple$second( A3( _elm_lang$core$Array$foldl, _elm_lang$virtual_dom$VirtualDom_History$consMsg(currentIndex), { ctor: '_Tuple2', _0: index - 1, _1: {ctor: '[]'} }, _p4.messages))); }); var _elm_lang$virtual_dom$VirtualDom_History$undone = function (getResult) { var _p5 = getResult; if (_p5.ctor === 'Done') { return {ctor: '_Tuple2', _0: _p5._1, _1: _p5._0}; } else { return _elm_lang$core$Native_Utils.crashCase( 'VirtualDom.History', { start: {line: 195, column: 3}, end: {line: 200, column: 39} }, _p5)('Bug in History.get'); } }; var _elm_lang$virtual_dom$VirtualDom_History$elmToJs = _elm_lang$virtual_dom$Native_Debug.unsafeCoerce; var _elm_lang$virtual_dom$VirtualDom_History$encodeHelp = F2( function (snapshot, allMessages) { return A3( _elm_lang$core$Array$foldl, F2( function (elm, msgs) { return { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_History$elmToJs(elm), _1: msgs }; }), allMessages, snapshot.messages); }); var _elm_lang$virtual_dom$VirtualDom_History$encode = function (_p7) { var _p8 = _p7; var recentJson = A2( _elm_lang$core$List$map, _elm_lang$virtual_dom$VirtualDom_History$elmToJs, _elm_lang$core$List$reverse(_p8.recent.messages)); return _elm_lang$core$Json_Encode$list( A3(_elm_lang$core$Array$foldr, _elm_lang$virtual_dom$VirtualDom_History$encodeHelp, recentJson, _p8.snapshots)); }; var _elm_lang$virtual_dom$VirtualDom_History$jsToElm = _elm_lang$virtual_dom$Native_Debug.unsafeCoerce; var _elm_lang$virtual_dom$VirtualDom_History$initialModel = function (_p9) { var _p10 = _p9; var _p11 = A2(_elm_lang$core$Array$get, 0, _p10.snapshots); if (_p11.ctor === 'Just') { return _p11._0.model; } else { return _p10.recent.model; } }; var _elm_lang$virtual_dom$VirtualDom_History$size = function (history) { return history.numMessages; }; var _elm_lang$virtual_dom$VirtualDom_History$maxSnapshotSize = 64; var _elm_lang$virtual_dom$VirtualDom_History$consSnapshot = F3( function (currentIndex, snapshot, _p12) { var _p13 = _p12; var _p14 = _p13._0; var nextIndex = _p14 - _elm_lang$virtual_dom$VirtualDom_History$maxSnapshotSize; var currentIndexHelp = ((_elm_lang$core$Native_Utils.cmp(nextIndex, currentIndex) < 1) && (_elm_lang$core$Native_Utils.cmp(currentIndex, _p14) < 0)) ? currentIndex : -1; return { ctor: '_Tuple2', _0: _p14 - _elm_lang$virtual_dom$VirtualDom_History$maxSnapshotSize, _1: { ctor: '::', _0: A4(_elm_lang$virtual_dom$VirtualDom_Helpers$lazy3, _elm_lang$virtual_dom$VirtualDom_History$viewSnapshot, currentIndexHelp, _p14, snapshot), _1: _p13._1 } }; }); var _elm_lang$virtual_dom$VirtualDom_History$viewSnapshots = F2( function (currentIndex, snapshots) { var highIndex = _elm_lang$virtual_dom$VirtualDom_History$maxSnapshotSize * _elm_lang$core$Array$length(snapshots); return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, {ctor: '[]'}, _elm_lang$core$Tuple$second( A3( _elm_lang$core$Array$foldr, _elm_lang$virtual_dom$VirtualDom_History$consSnapshot(currentIndex), { ctor: '_Tuple2', _0: highIndex, _1: {ctor: '[]'} }, snapshots))); }); var _elm_lang$virtual_dom$VirtualDom_History$view = F2( function (maybeIndex, _p15) { var _p16 = _p15; var _p17 = function () { var _p18 = maybeIndex; if (_p18.ctor === 'Nothing') { return {ctor: '_Tuple2', _0: -1, _1: 'debugger-sidebar-messages'}; } else { return {ctor: '_Tuple2', _0: _p18._0, _1: 'debugger-sidebar-messages-paused'}; } }(); var index = _p17._0; var className = _p17._1; var oldStuff = A3(_elm_lang$virtual_dom$VirtualDom_Helpers$lazy2, _elm_lang$virtual_dom$VirtualDom_History$viewSnapshots, index, _p16.snapshots); var newStuff = _elm_lang$core$Tuple$second( A3( _elm_lang$core$List$foldl, _elm_lang$virtual_dom$VirtualDom_History$consMsg(index), { ctor: '_Tuple2', _0: _p16.numMessages - 1, _1: {ctor: '[]'} }, _p16.recent.messages)); return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class(className), _1: {ctor: '[]'} }, {ctor: '::', _0: oldStuff, _1: newStuff}); }); var _elm_lang$virtual_dom$VirtualDom_History$History = F3( function (a, b, c) { return {snapshots: a, recent: b, numMessages: c}; }); var _elm_lang$virtual_dom$VirtualDom_History$RecentHistory = F3( function (a, b, c) { return {model: a, messages: b, numMessages: c}; }); var _elm_lang$virtual_dom$VirtualDom_History$empty = function (model) { return A3( _elm_lang$virtual_dom$VirtualDom_History$History, _elm_lang$core$Array$empty, A3( _elm_lang$virtual_dom$VirtualDom_History$RecentHistory, model, {ctor: '[]'}, 0), 0); }; var _elm_lang$virtual_dom$VirtualDom_History$Snapshot = F2( function (a, b) { return {model: a, messages: b}; }); var _elm_lang$virtual_dom$VirtualDom_History$addRecent = F3( function (msg, newModel, _p19) { var _p20 = _p19; var _p23 = _p20.numMessages; var _p22 = _p20.model; var _p21 = _p20.messages; return _elm_lang$core$Native_Utils.eq(_p23, _elm_lang$virtual_dom$VirtualDom_History$maxSnapshotSize) ? { ctor: '_Tuple2', _0: _elm_lang$core$Maybe$Just( A2( _elm_lang$virtual_dom$VirtualDom_History$Snapshot, _p22, _elm_lang$core$Array$fromList(_p21))), _1: A3( _elm_lang$virtual_dom$VirtualDom_History$RecentHistory, newModel, { ctor: '::', _0: msg, _1: {ctor: '[]'} }, 1) } : { ctor: '_Tuple2', _0: _elm_lang$core$Maybe$Nothing, _1: A3( _elm_lang$virtual_dom$VirtualDom_History$RecentHistory, _p22, {ctor: '::', _0: msg, _1: _p21}, _p23 + 1) }; }); var _elm_lang$virtual_dom$VirtualDom_History$add = F3( function (msg, model, _p24) { var _p25 = _p24; var _p28 = _p25.snapshots; var _p27 = _p25.numMessages; var _p26 = A3(_elm_lang$virtual_dom$VirtualDom_History$addRecent, msg, model, _p25.recent); if (_p26._0.ctor === 'Just') { return A3( _elm_lang$virtual_dom$VirtualDom_History$History, A2(_elm_lang$core$Array$push, _p26._0._0, _p28), _p26._1, _p27 + 1); } else { return A3(_elm_lang$virtual_dom$VirtualDom_History$History, _p28, _p26._1, _p27 + 1); } }); var _elm_lang$virtual_dom$VirtualDom_History$decoder = F2( function (initialModel, update) { var addMessage = F2( function (rawMsg, _p29) { var _p30 = _p29; var _p31 = _p30._0; var msg = _elm_lang$virtual_dom$VirtualDom_History$jsToElm(rawMsg); return { ctor: '_Tuple2', _0: A2(update, msg, _p31), _1: A3(_elm_lang$virtual_dom$VirtualDom_History$add, msg, _p31, _p30._1) }; }); var updateModel = function (rawMsgs) { return A3( _elm_lang$core$List$foldl, addMessage, { ctor: '_Tuple2', _0: initialModel, _1: _elm_lang$virtual_dom$VirtualDom_History$empty(initialModel) }, rawMsgs); }; return A2( _elm_lang$core$Json_Decode$map, updateModel, _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$value)); }); var _elm_lang$virtual_dom$VirtualDom_History$Done = F2( function (a, b) { return {ctor: 'Done', _0: a, _1: b}; }); var _elm_lang$virtual_dom$VirtualDom_History$Stepping = F2( function (a, b) { return {ctor: 'Stepping', _0: a, _1: b}; }); var _elm_lang$virtual_dom$VirtualDom_History$getHelp = F3( function (update, msg, getResult) { var _p32 = getResult; if (_p32.ctor === 'Done') { return getResult; } else { var _p34 = _p32._0; var _p33 = _p32._1; return _elm_lang$core$Native_Utils.eq(_p34, 0) ? A2( _elm_lang$virtual_dom$VirtualDom_History$Done, msg, _elm_lang$core$Tuple$first( A2(update, msg, _p33))) : A2( _elm_lang$virtual_dom$VirtualDom_History$Stepping, _p34 - 1, _elm_lang$core$Tuple$first( A2(update, msg, _p33))); } }); var _elm_lang$virtual_dom$VirtualDom_History$get = F3( function (update, index, _p35) { var _p36 = _p35; var _p39 = _p36.recent; var snapshotMax = _p36.numMessages - _p39.numMessages; if (_elm_lang$core$Native_Utils.cmp(index, snapshotMax) > -1) { return _elm_lang$virtual_dom$VirtualDom_History$undone( A3( _elm_lang$core$List$foldr, _elm_lang$virtual_dom$VirtualDom_History$getHelp(update), A2(_elm_lang$virtual_dom$VirtualDom_History$Stepping, index - snapshotMax, _p39.model), _p39.messages)); } else { var _p37 = A2(_elm_lang$core$Array$get, (index / _elm_lang$virtual_dom$VirtualDom_History$maxSnapshotSize) | 0, _p36.snapshots); if (_p37.ctor === 'Nothing') { return _elm_lang$core$Native_Utils.crashCase( 'VirtualDom.History', { start: {line: 165, column: 7}, end: {line: 171, column: 95} }, _p37)('UI should only let you ask for real indexes!'); } else { return _elm_lang$virtual_dom$VirtualDom_History$undone( A3( _elm_lang$core$Array$foldr, _elm_lang$virtual_dom$VirtualDom_History$getHelp(update), A2( _elm_lang$virtual_dom$VirtualDom_History$Stepping, A2(_elm_lang$core$Basics$rem, index, _elm_lang$virtual_dom$VirtualDom_History$maxSnapshotSize), _p37._0.model), _p37._0.messages)); } } }); var _elm_lang$virtual_dom$VirtualDom_Overlay$styles = A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'style', {ctor: '[]'}, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('\n\n.elm-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n color: white;\n pointer-events: none;\n font-family: \'Trebuchet MS\', \'Lucida Grande\', \'Bitstream Vera Sans\', \'Helvetica Neue\', sans-serif;\n}\n\n.elm-overlay-resume {\n width: 100%;\n height: 100%;\n cursor: pointer;\n text-align: center;\n pointer-events: auto;\n background-color: rgba(200, 200, 200, 0.7);\n}\n\n.elm-overlay-resume-words {\n position: absolute;\n top: calc(50% - 40px);\n font-size: 80px;\n line-height: 80px;\n height: 80px;\n width: 100%;\n}\n\n.elm-mini-controls {\n position: fixed;\n bottom: 0;\n right: 6px;\n border-radius: 4px;\n background-color: rgb(61, 61, 61);\n font-family: monospace;\n pointer-events: auto;\n}\n\n.elm-mini-controls-button {\n padding: 6px;\n cursor: pointer;\n text-align: center;\n min-width: 24ch;\n}\n\n.elm-mini-controls-import-export {\n padding: 4px 0;\n font-size: 0.8em;\n text-align: center;\n background-color: rgb(50, 50, 50);\n}\n\n.elm-overlay-message {\n position: absolute;\n width: 600px;\n height: 100%;\n padding-left: calc(50% - 300px);\n padding-right: calc(50% - 300px);\n background-color: rgba(200, 200, 200, 0.7);\n pointer-events: auto;\n}\n\n.elm-overlay-message-title {\n font-size: 36px;\n height: 80px;\n background-color: rgb(50, 50, 50);\n padding-left: 22px;\n vertical-align: middle;\n line-height: 80px;\n}\n\n.elm-overlay-message-details {\n padding: 8px 20px;\n overflow-y: auto;\n max-height: calc(100% - 156px);\n background-color: rgb(61, 61, 61);\n}\n\n.elm-overlay-message-details-type {\n font-size: 1.5em;\n}\n\n.elm-overlay-message-details ul {\n list-style-type: none;\n padding-left: 20px;\n}\n\n.elm-overlay-message-details ul ul {\n list-style-type: disc;\n padding-left: 2em;\n}\n\n.elm-overlay-message-details li {\n margin: 8px 0;\n}\n\n.elm-overlay-message-buttons {\n height: 60px;\n line-height: 60px;\n text-align: right;\n background-color: rgb(50, 50, 50);\n}\n\n.elm-overlay-message-buttons button {\n margin-right: 20px;\n}\n\n'), _1: {ctor: '[]'} }); var _elm_lang$virtual_dom$VirtualDom_Overlay$button = F2( function (msg, label) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$onClick(msg), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$style( { ctor: '::', _0: {ctor: '_Tuple2', _0: 'cursor', _1: 'pointer'}, _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(label), _1: {ctor: '[]'} }); }); var _elm_lang$virtual_dom$VirtualDom_Overlay$viewImportExport = F3( function (props, importMsg, exportMsg) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, props, { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Overlay$button, importMsg, 'Import'), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(' / '), _1: { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Overlay$button, exportMsg, 'Export'), _1: {ctor: '[]'} } } }); }); var _elm_lang$virtual_dom$VirtualDom_Overlay$viewMiniControls = F2( function (config, numMsgs) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('elm-mini-controls'), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$onClick(config.open), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('elm-mini-controls-button'), _1: {ctor: '[]'} } }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text( A2( _elm_lang$core$Basics_ops['++'], 'Explore History (', A2( _elm_lang$core$Basics_ops['++'], _elm_lang$core$Basics$toString(numMsgs), ')'))), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A3( _elm_lang$virtual_dom$VirtualDom_Overlay$viewImportExport, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('elm-mini-controls-import-export'), _1: {ctor: '[]'} }, config.importHistory, config.exportHistory), _1: {ctor: '[]'} } }); }); var _elm_lang$virtual_dom$VirtualDom_Overlay$addCommas = function (items) { var _p0 = items; if (_p0.ctor === '[]') { return ''; } else { if (_p0._1.ctor === '[]') { return _p0._0; } else { if (_p0._1._1.ctor === '[]') { return A2( _elm_lang$core$Basics_ops['++'], _p0._0, A2(_elm_lang$core$Basics_ops['++'], ' and ', _p0._1._0)); } else { return A2( _elm_lang$core$String$join, ', ', A2( _elm_lang$core$Basics_ops['++'], _p0._1, { ctor: '::', _0: A2(_elm_lang$core$Basics_ops['++'], ' and ', _p0._0), _1: {ctor: '[]'} })); } } } }; var _elm_lang$virtual_dom$VirtualDom_Overlay$problemToString = function (problem) { var _p1 = problem; switch (_p1.ctor) { 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_lang$virtual_dom$VirtualDom_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_lang$virtual_dom$VirtualDom_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_lang$virtual_dom$VirtualDom_Overlay$viewCode = function (name) { return A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'code', {ctor: '[]'}, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(name), _1: {ctor: '[]'} }); }; var _elm_lang$virtual_dom$VirtualDom_Overlay$viewMention = F2( function (tags, verbed) { var _p2 = A2( _elm_lang$core$List$map, _elm_lang$virtual_dom$VirtualDom_Overlay$viewCode, _elm_lang$core$List$reverse(tags)); if (_p2.ctor === '[]') { return _elm_lang$virtual_dom$VirtualDom_Helpers$text(''); } else { if (_p2._1.ctor === '[]') { return A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'li', {ctor: '[]'}, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(verbed), _1: { ctor: '::', _0: _p2._0, _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('.'), _1: {ctor: '[]'} } } }); } else { if (_p2._1._1.ctor === '[]') { return A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'li', {ctor: '[]'}, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(verbed), _1: { ctor: '::', _0: _p2._1._0, _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(' and '), _1: { ctor: '::', _0: _p2._0, _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('.'), _1: {ctor: '[]'} } } } } }); } else { return A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'li', {ctor: '[]'}, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(verbed), _1: A2( _elm_lang$core$Basics_ops['++'], A2( _elm_lang$core$List$intersperse, _elm_lang$virtual_dom$VirtualDom_Helpers$text(', '), _elm_lang$core$List$reverse(_p2._1)), { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(', and '), _1: { ctor: '::', _0: _p2._0, _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('.'), _1: {ctor: '[]'} } } }) }); } } } }); var _elm_lang$virtual_dom$VirtualDom_Overlay$viewChange = function (change) { return A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'li', {ctor: '[]'}, function () { var _p3 = change; if (_p3.ctor === 'AliasChange') { return { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('elm-overlay-message-details-type'), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Overlay$viewCode(_p3._0), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }; } else { return { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('elm-overlay-message-details-type'), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Overlay$viewCode(_p3._0), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'ul', {ctor: '[]'}, { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Overlay$viewMention, _p3._1.removed, 'Removed '), _1: { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Overlay$viewMention, _p3._1.changed, 'Changed '), _1: { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Overlay$viewMention, _p3._1.added, 'Added '), _1: {ctor: '[]'} } } }), _1: { ctor: '::', _0: _p3._1.argsMatch ? _elm_lang$virtual_dom$VirtualDom_Helpers$text('') : _elm_lang$virtual_dom$VirtualDom_Helpers$text('This may be due to the fact that the type variable names changed.'), _1: {ctor: '[]'} } } }; } }()); }; var _elm_lang$virtual_dom$VirtualDom_Overlay$viewProblemType = function (_p4) { var _p5 = _p4; return A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'li', {ctor: '[]'}, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Overlay$viewCode(_p5.name), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text( A2( _elm_lang$core$Basics_ops['++'], ' can contain ', A2( _elm_lang$core$Basics_ops['++'], _elm_lang$virtual_dom$VirtualDom_Overlay$addCommas( A2(_elm_lang$core$List$map, _elm_lang$virtual_dom$VirtualDom_Overlay$problemToString, _p5.problems)), '.'))), _1: {ctor: '[]'} } }); }; var _elm_lang$virtual_dom$VirtualDom_Overlay$viewBadMetadata = function (_p6) { var _p7 = _p6; return { ctor: '::', _0: A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'p', {ctor: '[]'}, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('The '), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Overlay$viewCode(_p7.message), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(' type of your program cannot be reliably serialized for history files.'), _1: {ctor: '[]'} } } }), _1: { ctor: '::', _0: A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'p', {ctor: '[]'}, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('Functions cannot be serialized, nor can values that contain functions. This is a problem in these places:'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'ul', {ctor: '[]'}, A2(_elm_lang$core$List$map, _elm_lang$virtual_dom$VirtualDom_Overlay$viewProblemType, _p7.problems)), _1: { ctor: '::', _0: A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'p', {ctor: '[]'}, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(_elm_lang$virtual_dom$VirtualDom_Overlay$goodNews1), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$a, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$href('https://guide.elm-lang.org/types/union_types.html'), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('union types'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(', in your messages. From there, your '), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Overlay$viewCode('update'), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(_elm_lang$virtual_dom$VirtualDom_Overlay$goodNews2), _1: {ctor: '[]'} } } } } }), _1: {ctor: '[]'} } } } }; }; var _elm_lang$virtual_dom$VirtualDom_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_lang$virtual_dom$VirtualDom_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_lang$virtual_dom$VirtualDom_Overlay$viewReport = F2( function (isBad, report) { var _p8 = report; switch (_p8.ctor) { case 'CorruptHistory': return { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('Looks like this history file is corrupt. I cannot understand it.'), _1: {ctor: '[]'} }; case 'VersionChanged': return { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text( A2( _elm_lang$core$Basics_ops['++'], 'This history was created with Elm ', A2( _elm_lang$core$Basics_ops['++'], _p8._0, A2( _elm_lang$core$Basics_ops['++'], ', but you are using Elm ', A2(_elm_lang$core$Basics_ops['++'], _p8._1, ' right now.'))))), _1: {ctor: '[]'} }; case 'MessageChanged': return { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text( A2(_elm_lang$core$Basics_ops['++'], 'To import some other history, the overall message type must', ' be the same. The old history has ')), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Overlay$viewCode(_p8._0), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(' messages, but the new program works with '), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Overlay$viewCode(_p8._1), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(' messages.'), _1: {ctor: '[]'} } } } } }; default: return { ctor: '::', _0: A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'p', {ctor: '[]'}, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text( isBad ? _elm_lang$virtual_dom$VirtualDom_Overlay$explanationBad : _elm_lang$virtual_dom$VirtualDom_Overlay$explanationRisky), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'ul', {ctor: '[]'}, A2(_elm_lang$core$List$map, _elm_lang$virtual_dom$VirtualDom_Overlay$viewChange, _p8._0)), _1: {ctor: '[]'} } }; } }); var _elm_lang$virtual_dom$VirtualDom_Overlay$viewResume = function (config) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('elm-overlay-resume'), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$onClick(config.resume), _1: {ctor: '[]'} } }, { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('elm-overlay-resume-words'), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('Click to Resume'), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }); }; var _elm_lang$virtual_dom$VirtualDom_Overlay$uploadDecoder = A3( _elm_lang$core$Json_Decode$map2, F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; }), A2(_elm_lang$core$Json_Decode$field, 'metadata', _elm_lang$virtual_dom$VirtualDom_Metadata$decoder), A2(_elm_lang$core$Json_Decode$field, 'history', _elm_lang$core$Json_Decode$value)); var _elm_lang$virtual_dom$VirtualDom_Overlay$close = F2( function (msg, state) { var _p9 = state; switch (_p9.ctor) { case 'None': return _elm_lang$core$Maybe$Nothing; case 'BadMetadata': return _elm_lang$core$Maybe$Nothing; case 'BadImport': return _elm_lang$core$Maybe$Nothing; default: var _p10 = msg; if (_p10.ctor === 'Cancel') { return _elm_lang$core$Maybe$Nothing; } else { return _elm_lang$core$Maybe$Just(_p9._1); } } }); var _elm_lang$virtual_dom$VirtualDom_Overlay$isBlocking = function (state) { var _p11 = state; if (_p11.ctor === 'None') { return false; } else { return true; } }; var _elm_lang$virtual_dom$VirtualDom_Overlay$Config = F5( function (a, b, c, d, e) { return {resume: a, open: b, importHistory: c, exportHistory: d, wrap: e}; }); var _elm_lang$virtual_dom$VirtualDom_Overlay$RiskyImport = F2( function (a, b) { return {ctor: 'RiskyImport', _0: a, _1: b}; }); var _elm_lang$virtual_dom$VirtualDom_Overlay$BadImport = function (a) { return {ctor: 'BadImport', _0: a}; }; var _elm_lang$virtual_dom$VirtualDom_Overlay$corruptImport = _elm_lang$virtual_dom$VirtualDom_Overlay$BadImport(_elm_lang$virtual_dom$VirtualDom_Report$CorruptHistory); var _elm_lang$virtual_dom$VirtualDom_Overlay$assessImport = F2( function (metadata, jsonString) { var _p12 = A2(_elm_lang$core$Json_Decode$decodeString, _elm_lang$virtual_dom$VirtualDom_Overlay$uploadDecoder, jsonString); if (_p12.ctor === 'Err') { return _elm_lang$core$Result$Err(_elm_lang$virtual_dom$VirtualDom_Overlay$corruptImport); } else { var _p14 = _p12._0._1; var report = A2(_elm_lang$virtual_dom$VirtualDom_Metadata$check, _p12._0._0, metadata); var _p13 = _elm_lang$virtual_dom$VirtualDom_Report$evaluate(report); switch (_p13.ctor) { case 'Impossible': return _elm_lang$core$Result$Err( _elm_lang$virtual_dom$VirtualDom_Overlay$BadImport(report)); case 'Risky': return _elm_lang$core$Result$Err( A2(_elm_lang$virtual_dom$VirtualDom_Overlay$RiskyImport, report, _p14)); default: return _elm_lang$core$Result$Ok(_p14); } } }); var _elm_lang$virtual_dom$VirtualDom_Overlay$BadMetadata = function (a) { return {ctor: 'BadMetadata', _0: a}; }; var _elm_lang$virtual_dom$VirtualDom_Overlay$badMetadata = _elm_lang$virtual_dom$VirtualDom_Overlay$BadMetadata; var _elm_lang$virtual_dom$VirtualDom_Overlay$None = {ctor: 'None'}; var _elm_lang$virtual_dom$VirtualDom_Overlay$none = _elm_lang$virtual_dom$VirtualDom_Overlay$None; var _elm_lang$virtual_dom$VirtualDom_Overlay$Proceed = {ctor: 'Proceed'}; var _elm_lang$virtual_dom$VirtualDom_Overlay$Cancel = {ctor: 'Cancel'}; var _elm_lang$virtual_dom$VirtualDom_Overlay$viewButtons = function (buttons) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('elm-overlay-message-buttons'), _1: {ctor: '[]'} }, function () { var _p15 = buttons; if (_p15.ctor === 'Accept') { return { ctor: '::', _0: A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'button', { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$onClick(_elm_lang$virtual_dom$VirtualDom_Overlay$Proceed), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(_p15._0), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }; } else { return { ctor: '::', _0: A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'button', { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$onClick(_elm_lang$virtual_dom$VirtualDom_Overlay$Cancel), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(_p15._0), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'button', { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$onClick(_elm_lang$virtual_dom$VirtualDom_Overlay$Proceed), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(_p15._1), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }; } }()); }; var _elm_lang$virtual_dom$VirtualDom_Overlay$Message = {ctor: 'Message'}; var _elm_lang$virtual_dom$VirtualDom_Overlay$viewMessage = F4( function (config, title, details, buttons) { return { ctor: '_Tuple2', _0: _elm_lang$virtual_dom$VirtualDom_Overlay$Message, _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('elm-overlay-message'), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('elm-overlay-message-title'), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(title), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('elm-overlay-message-details'), _1: {ctor: '[]'} }, details), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$map, config.wrap, _elm_lang$virtual_dom$VirtualDom_Overlay$viewButtons(buttons)), _1: {ctor: '[]'} } } }), _1: {ctor: '[]'} } }; }); var _elm_lang$virtual_dom$VirtualDom_Overlay$Pause = {ctor: 'Pause'}; var _elm_lang$virtual_dom$VirtualDom_Overlay$Normal = {ctor: 'Normal'}; var _elm_lang$virtual_dom$VirtualDom_Overlay$Choose = F2( function (a, b) { return {ctor: 'Choose', _0: a, _1: b}; }); var _elm_lang$virtual_dom$VirtualDom_Overlay$Accept = function (a) { return {ctor: 'Accept', _0: a}; }; var _elm_lang$virtual_dom$VirtualDom_Overlay$viewHelp = F5( function (config, isPaused, isOpen, numMsgs, state) { var _p16 = state; switch (_p16.ctor) { case 'None': var miniControls = isOpen ? {ctor: '[]'} : { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Overlay$viewMiniControls, config, numMsgs), _1: {ctor: '[]'} }; return { ctor: '_Tuple2', _0: isPaused ? _elm_lang$virtual_dom$VirtualDom_Overlay$Pause : _elm_lang$virtual_dom$VirtualDom_Overlay$Normal, _1: (isPaused && (!isOpen)) ? { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Overlay$viewResume(config), _1: miniControls } : miniControls }; case 'BadMetadata': return A4( _elm_lang$virtual_dom$VirtualDom_Overlay$viewMessage, config, 'Cannot use Import or Export', _elm_lang$virtual_dom$VirtualDom_Overlay$viewBadMetadata(_p16._0), _elm_lang$virtual_dom$VirtualDom_Overlay$Accept('Ok')); case 'BadImport': return A4( _elm_lang$virtual_dom$VirtualDom_Overlay$viewMessage, config, 'Cannot Import History', A2(_elm_lang$virtual_dom$VirtualDom_Overlay$viewReport, true, _p16._0), _elm_lang$virtual_dom$VirtualDom_Overlay$Accept('Ok')); default: return A4( _elm_lang$virtual_dom$VirtualDom_Overlay$viewMessage, config, 'Warning', A2(_elm_lang$virtual_dom$VirtualDom_Overlay$viewReport, false, _p16._0), A2(_elm_lang$virtual_dom$VirtualDom_Overlay$Choose, 'Cancel', 'Import Anyway')); } }); var _elm_lang$virtual_dom$VirtualDom_Overlay$view = F5( function (config, isPaused, isOpen, numMsgs, state) { var _p17 = A5(_elm_lang$virtual_dom$VirtualDom_Overlay$viewHelp, config, isPaused, isOpen, numMsgs, state); var block = _p17._0; var nodes = _p17._1; return { ctor: '_Tuple2', _0: block, _1: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('elm-overlay'), _1: {ctor: '[]'} }, {ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Overlay$styles, _1: nodes}) }; }); var _elm_lang$virtual_dom$VirtualDom_Debug$styles = A3( _elm_lang$virtual_dom$VirtualDom_Helpers$node, 'style', {ctor: '[]'}, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('\n\nhtml {\n overflow: hidden;\n height: 100%;\n}\n\nbody {\n height: 100%;\n overflow: auto;\n}\n\n#debugger {\n width: 100%\n height: 100%;\n font-family: monospace;\n}\n\n#values {\n display: block;\n float: left;\n height: 100%;\n width: calc(100% - 30ch);\n margin: 0;\n overflow: auto;\n cursor: default;\n}\n\n.debugger-sidebar {\n display: block;\n float: left;\n width: 30ch;\n height: 100%;\n color: white;\n background-color: rgb(61, 61, 61);\n}\n\n.debugger-sidebar-controls {\n width: 100%;\n text-align: center;\n background-color: rgb(50, 50, 50);\n}\n\n.debugger-sidebar-controls-import-export {\n width: 100%;\n height: 24px;\n line-height: 24px;\n font-size: 12px;\n}\n\n.debugger-sidebar-controls-resume {\n width: 100%;\n height: 30px;\n line-height: 30px;\n cursor: pointer;\n}\n\n.debugger-sidebar-controls-resume:hover {\n background-color: rgb(41, 41, 41);\n}\n\n.debugger-sidebar-messages {\n width: 100%;\n overflow-y: auto;\n height: calc(100% - 24px);\n}\n\n.debugger-sidebar-messages-paused {\n width: 100%;\n overflow-y: auto;\n height: calc(100% - 54px);\n}\n\n.messages-entry {\n cursor: pointer;\n width: 100%;\n}\n\n.messages-entry:hover {\n background-color: rgb(41, 41, 41);\n}\n\n.messages-entry-selected, .messages-entry-selected:hover {\n background-color: rgb(10, 10, 10);\n}\n\n.messages-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.messages-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'), _1: {ctor: '[]'} }); var _elm_lang$virtual_dom$VirtualDom_Debug$button = F2( function (msg, label) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$span, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$onClick(msg), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$style( { ctor: '::', _0: {ctor: '_Tuple2', _0: 'cursor', _1: 'pointer'}, _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(label), _1: {ctor: '[]'} }); }); var _elm_lang$virtual_dom$VirtualDom_Debug$getLatestModel = function (state) { var _p0 = state; if (_p0.ctor === 'Running') { return _p0._0; } else { return _p0._2; } }; var _elm_lang$virtual_dom$VirtualDom_Debug$withGoodMetadata = F2( function (model, func) { var _p1 = model.metadata; if (_p1.ctor === 'Ok') { return func(_p1._0); } else { return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, { overlay: _elm_lang$virtual_dom$VirtualDom_Overlay$badMetadata(_p1._0) }), {ctor: '[]'}); } }); var _elm_lang$virtual_dom$VirtualDom_Debug$Model = F6( function (a, b, c, d, e, f) { return {history: a, state: b, expando: c, metadata: d, overlay: e, isDebuggerOpen: f}; }); var _elm_lang$virtual_dom$VirtualDom_Debug$Paused = F3( function (a, b, c) { return {ctor: 'Paused', _0: a, _1: b, _2: c}; }); var _elm_lang$virtual_dom$VirtualDom_Debug$Running = function (a) { return {ctor: 'Running', _0: a}; }; var _elm_lang$virtual_dom$VirtualDom_Debug$loadNewHistory = F3( function (rawHistory, userUpdate, model) { var pureUserUpdate = F2( function (msg, userModel) { return _elm_lang$core$Tuple$first( A2(userUpdate, msg, userModel)); }); var initialUserModel = _elm_lang$virtual_dom$VirtualDom_History$initialModel(model.history); var decoder = A2(_elm_lang$virtual_dom$VirtualDom_History$decoder, initialUserModel, pureUserUpdate); var _p2 = A2(_elm_lang$core$Json_Decode$decodeValue, decoder, rawHistory); if (_p2.ctor === 'Err') { return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {overlay: _elm_lang$virtual_dom$VirtualDom_Overlay$corruptImport}), {ctor: '[]'}); } else { var _p3 = _p2._0._0; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, { history: _p2._0._1, state: _elm_lang$virtual_dom$VirtualDom_Debug$Running(_p3), expando: _elm_lang$virtual_dom$VirtualDom_Expando$init(_p3), overlay: _elm_lang$virtual_dom$VirtualDom_Overlay$none }), {ctor: '[]'}); } }); var _elm_lang$virtual_dom$VirtualDom_Debug$OverlayMsg = function (a) { return {ctor: 'OverlayMsg', _0: a}; }; var _elm_lang$virtual_dom$VirtualDom_Debug$Upload = function (a) { return {ctor: 'Upload', _0: a}; }; var _elm_lang$virtual_dom$VirtualDom_Debug$upload = A2(_elm_lang$core$Task$perform, _elm_lang$virtual_dom$VirtualDom_Debug$Upload, _elm_lang$virtual_dom$Native_Debug.upload); var _elm_lang$virtual_dom$VirtualDom_Debug$Export = {ctor: 'Export'}; var _elm_lang$virtual_dom$VirtualDom_Debug$Import = {ctor: 'Import'}; var _elm_lang$virtual_dom$VirtualDom_Debug$Down = {ctor: 'Down'}; var _elm_lang$virtual_dom$VirtualDom_Debug$Up = {ctor: 'Up'}; var _elm_lang$virtual_dom$VirtualDom_Debug$Close = {ctor: 'Close'}; var _elm_lang$virtual_dom$VirtualDom_Debug$Open = {ctor: 'Open'}; var _elm_lang$virtual_dom$VirtualDom_Debug$Jump = function (a) { return {ctor: 'Jump', _0: a}; }; var _elm_lang$virtual_dom$VirtualDom_Debug$Resume = {ctor: 'Resume'}; var _elm_lang$virtual_dom$VirtualDom_Debug$overlayConfig = {resume: _elm_lang$virtual_dom$VirtualDom_Debug$Resume, open: _elm_lang$virtual_dom$VirtualDom_Debug$Open, importHistory: _elm_lang$virtual_dom$VirtualDom_Debug$Import, exportHistory: _elm_lang$virtual_dom$VirtualDom_Debug$Export, wrap: _elm_lang$virtual_dom$VirtualDom_Debug$OverlayMsg}; var _elm_lang$virtual_dom$VirtualDom_Debug$viewIn = function (_p4) { var _p5 = _p4; var isPaused = function () { var _p6 = _p5.state; if (_p6.ctor === 'Running') { return false; } else { return true; } }(); return A5( _elm_lang$virtual_dom$VirtualDom_Overlay$view, _elm_lang$virtual_dom$VirtualDom_Debug$overlayConfig, isPaused, _p5.isDebuggerOpen, _elm_lang$virtual_dom$VirtualDom_History$size(_p5.history), _p5.overlay); }; var _elm_lang$virtual_dom$VirtualDom_Debug$resumeButton = A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$onClick(_elm_lang$virtual_dom$VirtualDom_Debug$Resume), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('debugger-sidebar-controls-resume'), _1: {ctor: '[]'} } }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text('Resume'), _1: {ctor: '[]'} }); var _elm_lang$virtual_dom$VirtualDom_Debug$viewResumeButton = function (maybeIndex) { var _p7 = maybeIndex; if (_p7.ctor === 'Nothing') { return _elm_lang$virtual_dom$VirtualDom_Helpers$text(''); } else { return _elm_lang$virtual_dom$VirtualDom_Debug$resumeButton; } }; var _elm_lang$virtual_dom$VirtualDom_Debug$playButton = function (maybeIndex) { return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('debugger-sidebar-controls'), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Debug$viewResumeButton(maybeIndex), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('debugger-sidebar-controls-import-export'), _1: {ctor: '[]'} }, { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Debug$button, _elm_lang$virtual_dom$VirtualDom_Debug$Import, 'Import'), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$text(' / '), _1: { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Debug$button, _elm_lang$virtual_dom$VirtualDom_Debug$Export, 'Export'), _1: {ctor: '[]'} } } }), _1: {ctor: '[]'} } }); }; var _elm_lang$virtual_dom$VirtualDom_Debug$viewSidebar = F2( function (state, history) { var maybeIndex = function () { var _p8 = state; if (_p8.ctor === 'Running') { return _elm_lang$core$Maybe$Nothing; } else { return _elm_lang$core$Maybe$Just(_p8._0); } }(); return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$class('debugger-sidebar'), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$map, _elm_lang$virtual_dom$VirtualDom_Debug$Jump, A2(_elm_lang$virtual_dom$VirtualDom_History$view, maybeIndex, history)), _1: { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Debug$playButton(maybeIndex), _1: {ctor: '[]'} } }); }); var _elm_lang$virtual_dom$VirtualDom_Debug$ExpandoMsg = function (a) { return {ctor: 'ExpandoMsg', _0: a}; }; var _elm_lang$virtual_dom$VirtualDom_Debug$viewOut = function (_p9) { var _p10 = _p9; return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$id('debugger'), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Debug$styles, _1: { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Debug$viewSidebar, _p10.state, _p10.history), _1: { ctor: '::', _0: A2( _elm_lang$virtual_dom$VirtualDom_Helpers$map, _elm_lang$virtual_dom$VirtualDom_Debug$ExpandoMsg, A2( _elm_lang$virtual_dom$VirtualDom_Helpers$div, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Helpers$id('values'), _1: {ctor: '[]'} }, { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Expando$view, _elm_lang$core$Maybe$Nothing, _p10.expando), _1: {ctor: '[]'} })), _1: {ctor: '[]'} } } }); }; var _elm_lang$virtual_dom$VirtualDom_Debug$UserMsg = function (a) { return {ctor: 'UserMsg', _0: a}; }; var _elm_lang$virtual_dom$VirtualDom_Debug$wrapInit = F2( function (metadata, _p11) { var _p12 = _p11; var _p13 = _p12._0; return A2( _elm_lang$core$Platform_Cmd_ops['!'], { history: _elm_lang$virtual_dom$VirtualDom_History$empty(_p13), state: _elm_lang$virtual_dom$VirtualDom_Debug$Running(_p13), expando: _elm_lang$virtual_dom$VirtualDom_Expando$init(_p13), metadata: _elm_lang$virtual_dom$VirtualDom_Metadata$decode(metadata), overlay: _elm_lang$virtual_dom$VirtualDom_Overlay$none, isDebuggerOpen: false }, { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _elm_lang$virtual_dom$VirtualDom_Debug$UserMsg, _p12._1), _1: {ctor: '[]'} }); }); var _elm_lang$virtual_dom$VirtualDom_Debug$wrapSubs = F2( function (userSubscriptions, _p14) { var _p15 = _p14; return A2( _elm_lang$core$Platform_Sub$map, _elm_lang$virtual_dom$VirtualDom_Debug$UserMsg, userSubscriptions( _elm_lang$virtual_dom$VirtualDom_Debug$getLatestModel(_p15.state))); }); var _elm_lang$virtual_dom$VirtualDom_Debug$wrapView = F2( function (userView, _p16) { var _p17 = _p16; var currentModel = function () { var _p18 = _p17.state; if (_p18.ctor === 'Running') { return _p18._0; } else { return _p18._1; } }(); return A2( _elm_lang$virtual_dom$VirtualDom_Helpers$map, _elm_lang$virtual_dom$VirtualDom_Debug$UserMsg, userView(currentModel)); }); var _elm_lang$virtual_dom$VirtualDom_Debug$NoOp = {ctor: 'NoOp'}; var _elm_lang$virtual_dom$VirtualDom_Debug$download = F2( function (metadata, history) { var json = _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'metadata', _1: _elm_lang$virtual_dom$VirtualDom_Metadata$encode(metadata) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'history', _1: _elm_lang$virtual_dom$VirtualDom_History$encode(history) }, _1: {ctor: '[]'} } }); var historyLength = _elm_lang$virtual_dom$VirtualDom_History$size(history); return A2( _elm_lang$core$Task$perform, function (_p19) { return _elm_lang$virtual_dom$VirtualDom_Debug$NoOp; }, A2(_elm_lang$virtual_dom$Native_Debug.download, historyLength, json)); }); var _elm_lang$virtual_dom$VirtualDom_Debug$runIf = F2( function (bool, task) { return bool ? A2( _elm_lang$core$Task$perform, _elm_lang$core$Basics$always(_elm_lang$virtual_dom$VirtualDom_Debug$NoOp), task) : _elm_lang$core$Platform_Cmd$none; }); var _elm_lang$virtual_dom$VirtualDom_Debug$updateUserMsg = F4( function (userUpdate, scrollTask, userMsg, _p20) { var _p21 = _p20; var _p25 = _p21.state; var _p24 = _p21; var userModel = _elm_lang$virtual_dom$VirtualDom_Debug$getLatestModel(_p25); var newHistory = A3(_elm_lang$virtual_dom$VirtualDom_History$add, userMsg, userModel, _p21.history); var _p22 = A2(userUpdate, userMsg, userModel); var newUserModel = _p22._0; var userCmds = _p22._1; var commands = A2(_elm_lang$core$Platform_Cmd$map, _elm_lang$virtual_dom$VirtualDom_Debug$UserMsg, userCmds); var _p23 = _p25; if (_p23.ctor === 'Running') { return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( _p24, { history: newHistory, state: _elm_lang$virtual_dom$VirtualDom_Debug$Running(newUserModel), expando: A2(_elm_lang$virtual_dom$VirtualDom_Expando$merge, newUserModel, _p21.expando) }), { ctor: '::', _0: commands, _1: { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Debug$runIf, _p24.isDebuggerOpen, scrollTask), _1: {ctor: '[]'} } }); } else { return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( _p24, { history: newHistory, state: A3(_elm_lang$virtual_dom$VirtualDom_Debug$Paused, _p23._0, _p23._1, newUserModel) }), { ctor: '::', _0: commands, _1: {ctor: '[]'} }); } }); var _elm_lang$virtual_dom$VirtualDom_Debug$wrapUpdate = F4( function (userUpdate, scrollTask, msg, model) { wrapUpdate: while (true) { var _p26 = msg; switch (_p26.ctor) { case 'NoOp': return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, {ctor: '[]'}); case 'UserMsg': return A4(_elm_lang$virtual_dom$VirtualDom_Debug$updateUserMsg, userUpdate, scrollTask, _p26._0, model); case 'ExpandoMsg': return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, { expando: A2(_elm_lang$virtual_dom$VirtualDom_Expando$update, _p26._0, model.expando) }), {ctor: '[]'}); case 'Resume': var _p27 = model.state; if (_p27.ctor === 'Running') { return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, {ctor: '[]'}); } else { var _p28 = _p27._2; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, { state: _elm_lang$virtual_dom$VirtualDom_Debug$Running(_p28), expando: A2(_elm_lang$virtual_dom$VirtualDom_Expando$merge, _p28, model.expando) }), { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Debug$runIf, model.isDebuggerOpen, scrollTask), _1: {ctor: '[]'} }); } case 'Jump': var _p30 = _p26._0; var _p29 = A3(_elm_lang$virtual_dom$VirtualDom_History$get, userUpdate, _p30, model.history); var indexModel = _p29._0; var indexMsg = _p29._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, { state: A3( _elm_lang$virtual_dom$VirtualDom_Debug$Paused, _p30, indexModel, _elm_lang$virtual_dom$VirtualDom_Debug$getLatestModel(model.state)), expando: A2(_elm_lang$virtual_dom$VirtualDom_Expando$merge, indexModel, model.expando) }), {ctor: '[]'}); case 'Open': return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {isDebuggerOpen: true}), {ctor: '[]'}); case 'Close': return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {isDebuggerOpen: false}), {ctor: '[]'}); case 'Up': var index = function () { var _p31 = model.state; if (_p31.ctor === 'Paused') { return _p31._0; } else { return _elm_lang$virtual_dom$VirtualDom_History$size(model.history); } }(); if (_elm_lang$core$Native_Utils.cmp(index, 0) > 0) { var _v17 = userUpdate, _v18 = scrollTask, _v19 = _elm_lang$virtual_dom$VirtualDom_Debug$Jump(index - 1), _v20 = model; userUpdate = _v17; scrollTask = _v18; msg = _v19; model = _v20; continue wrapUpdate; } else { return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, {ctor: '[]'}); } case 'Down': var _p32 = model.state; if (_p32.ctor === 'Running') { return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, {ctor: '[]'}); } else { var _p33 = _p32._0; if (_elm_lang$core$Native_Utils.eq( _p33, _elm_lang$virtual_dom$VirtualDom_History$size(model.history) - 1)) { var _v22 = userUpdate, _v23 = scrollTask, _v24 = _elm_lang$virtual_dom$VirtualDom_Debug$Resume, _v25 = model; userUpdate = _v22; scrollTask = _v23; msg = _v24; model = _v25; continue wrapUpdate; } else { var _v26 = userUpdate, _v27 = scrollTask, _v28 = _elm_lang$virtual_dom$VirtualDom_Debug$Jump(_p33 + 1), _v29 = model; userUpdate = _v26; scrollTask = _v27; msg = _v28; model = _v29; continue wrapUpdate; } } case 'Import': return A2( _elm_lang$virtual_dom$VirtualDom_Debug$withGoodMetadata, model, function (_p34) { return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, { ctor: '::', _0: _elm_lang$virtual_dom$VirtualDom_Debug$upload, _1: {ctor: '[]'} }); }); case 'Export': return A2( _elm_lang$virtual_dom$VirtualDom_Debug$withGoodMetadata, model, function (metadata) { return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, { ctor: '::', _0: A2(_elm_lang$virtual_dom$VirtualDom_Debug$download, metadata, model.history), _1: {ctor: '[]'} }); }); case 'Upload': return A2( _elm_lang$virtual_dom$VirtualDom_Debug$withGoodMetadata, model, function (metadata) { var _p35 = A2(_elm_lang$virtual_dom$VirtualDom_Overlay$assessImport, metadata, _p26._0); if (_p35.ctor === 'Err') { return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {overlay: _p35._0}), {ctor: '[]'}); } else { return A3(_elm_lang$virtual_dom$VirtualDom_Debug$loadNewHistory, _p35._0, userUpdate, model); } }); default: var _p36 = A2(_elm_lang$virtual_dom$VirtualDom_Overlay$close, _p26._0, model.overlay); if (_p36.ctor === 'Nothing') { return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {overlay: _elm_lang$virtual_dom$VirtualDom_Overlay$none}), {ctor: '[]'}); } else { return A3(_elm_lang$virtual_dom$VirtualDom_Debug$loadNewHistory, _p36._0, userUpdate, model); } } } }); var _elm_lang$virtual_dom$VirtualDom_Debug$wrap = F2( function (metadata, _p37) { var _p38 = _p37; return { init: A2(_elm_lang$virtual_dom$VirtualDom_Debug$wrapInit, metadata, _p38.init), view: _elm_lang$virtual_dom$VirtualDom_Debug$wrapView(_p38.view), update: _elm_lang$virtual_dom$VirtualDom_Debug$wrapUpdate(_p38.update), viewIn: _elm_lang$virtual_dom$VirtualDom_Debug$viewIn, viewOut: _elm_lang$virtual_dom$VirtualDom_Debug$viewOut, subscriptions: _elm_lang$virtual_dom$VirtualDom_Debug$wrapSubs(_p38.subscriptions) }; }); var _elm_lang$virtual_dom$VirtualDom_Debug$wrapWithFlags = F2( function (metadata, _p39) { var _p40 = _p39; return { init: function (flags) { return A2( _elm_lang$virtual_dom$VirtualDom_Debug$wrapInit, metadata, _p40.init(flags)); }, view: _elm_lang$virtual_dom$VirtualDom_Debug$wrapView(_p40.view), update: _elm_lang$virtual_dom$VirtualDom_Debug$wrapUpdate(_p40.update), viewIn: _elm_lang$virtual_dom$VirtualDom_Debug$viewIn, viewOut: _elm_lang$virtual_dom$VirtualDom_Debug$viewOut, subscriptions: _elm_lang$virtual_dom$VirtualDom_Debug$wrapSubs(_p40.subscriptions) }; }); 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$html$Html_Attributes$map = _elm_lang$virtual_dom$VirtualDom$mapProperty; var _elm_lang$html$Html_Attributes$attribute = _elm_lang$virtual_dom$VirtualDom$attribute; var _elm_lang$html$Html_Attributes$contextmenu = function (value) { return A2(_elm_lang$html$Html_Attributes$attribute, 'contextmenu', value); }; var _elm_lang$html$Html_Attributes$draggable = function (value) { return A2(_elm_lang$html$Html_Attributes$attribute, 'draggable', value); }; var _elm_lang$html$Html_Attributes$itemprop = function (value) { return A2(_elm_lang$html$Html_Attributes$attribute, 'itemprop', value); }; var _elm_lang$html$Html_Attributes$tabindex = function (n) { return A2( _elm_lang$html$Html_Attributes$attribute, 'tabIndex', _elm_lang$core$Basics$toString(n)); }; var _elm_lang$html$Html_Attributes$charset = function (value) { return A2(_elm_lang$html$Html_Attributes$attribute, 'charset', value); }; var _elm_lang$html$Html_Attributes$height = function (value) { return A2( _elm_lang$html$Html_Attributes$attribute, 'height', _elm_lang$core$Basics$toString(value)); }; var _elm_lang$html$Html_Attributes$width = function (value) { return A2( _elm_lang$html$Html_Attributes$attribute, 'width', _elm_lang$core$Basics$toString(value)); }; var _elm_lang$html$Html_Attributes$formaction = function (value) { return A2(_elm_lang$html$Html_Attributes$attribute, 'formAction', value); }; var _elm_lang$html$Html_Attributes$list = function (value) { return A2(_elm_lang$html$Html_Attributes$attribute, 'list', value); }; var _elm_lang$html$Html_Attributes$minlength = function (n) { return A2( _elm_lang$html$Html_Attributes$attribute, 'minLength', _elm_lang$core$Basics$toString(n)); }; var _elm_lang$html$Html_Attributes$maxlength = function (n) { return A2( _elm_lang$html$Html_Attributes$attribute, 'maxlength', _elm_lang$core$Basics$toString(n)); }; var _elm_lang$html$Html_Attributes$size = function (n) { return A2( _elm_lang$html$Html_Attributes$attribute, 'size', _elm_lang$core$Basics$toString(n)); }; var _elm_lang$html$Html_Attributes$form = function (value) { return A2(_elm_lang$html$Html_Attributes$attribute, 'form', value); }; var _elm_lang$html$Html_Attributes$cols = function (n) { return A2( _elm_lang$html$Html_Attributes$attribute, 'cols', _elm_lang$core$Basics$toString(n)); }; var _elm_lang$html$Html_Attributes$rows = function (n) { return A2( _elm_lang$html$Html_Attributes$attribute, 'rows', _elm_lang$core$Basics$toString(n)); }; var _elm_lang$html$Html_Attributes$challenge = function (value) { return A2(_elm_lang$html$Html_Attributes$attribute, 'challenge', value); }; var _elm_lang$html$Html_Attributes$media = function (value) { return A2(_elm_lang$html$Html_Attributes$attribute, 'media', value); }; var _elm_lang$html$Html_Attributes$rel = function (value) { return A2(_elm_lang$html$Html_Attributes$attribute, 'rel', value); }; var _elm_lang$html$Html_Attributes$datetime = function (value) { return A2(_elm_lang$html$Html_Attributes$attribute, 'datetime', value); }; var _elm_lang$html$Html_Attributes$pubdate = function (value) { return A2(_elm_lang$html$Html_Attributes$attribute, 'pubdate', value); }; var _elm_lang$html$Html_Attributes$colspan = function (n) { return A2( _elm_lang$html$Html_Attributes$attribute, 'colspan', _elm_lang$core$Basics$toString(n)); }; var _elm_lang$html$Html_Attributes$rowspan = function (n) { return A2( _elm_lang$html$Html_Attributes$attribute, 'rowspan', _elm_lang$core$Basics$toString(n)); }; var _elm_lang$html$Html_Attributes$manifest = function (value) { return A2(_elm_lang$html$Html_Attributes$attribute, 'manifest', value); }; var _elm_lang$html$Html_Attributes$property = _elm_lang$virtual_dom$VirtualDom$property; var _elm_lang$html$Html_Attributes$stringProperty = F2( function (name, string) { return A2( _elm_lang$html$Html_Attributes$property, name, _elm_lang$core$Json_Encode$string(string)); }); var _elm_lang$html$Html_Attributes$class = function (name) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'className', name); }; var _elm_lang$html$Html_Attributes$id = function (name) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'id', name); }; var _elm_lang$html$Html_Attributes$title = function (name) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'title', name); }; var _elm_lang$html$Html_Attributes$accesskey = function ($char) { return A2( _elm_lang$html$Html_Attributes$stringProperty, 'accessKey', _elm_lang$core$String$fromChar($char)); }; var _elm_lang$html$Html_Attributes$dir = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'dir', value); }; var _elm_lang$html$Html_Attributes$dropzone = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'dropzone', value); }; var _elm_lang$html$Html_Attributes$lang = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'lang', value); }; var _elm_lang$html$Html_Attributes$content = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'content', value); }; var _elm_lang$html$Html_Attributes$httpEquiv = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'httpEquiv', value); }; var _elm_lang$html$Html_Attributes$language = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'language', value); }; var _elm_lang$html$Html_Attributes$src = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'src', value); }; var _elm_lang$html$Html_Attributes$alt = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'alt', value); }; var _elm_lang$html$Html_Attributes$preload = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'preload', value); }; var _elm_lang$html$Html_Attributes$poster = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'poster', value); }; var _elm_lang$html$Html_Attributes$kind = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'kind', value); }; var _elm_lang$html$Html_Attributes$srclang = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'srclang', value); }; var _elm_lang$html$Html_Attributes$sandbox = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'sandbox', value); }; var _elm_lang$html$Html_Attributes$srcdoc = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'srcdoc', value); }; var _elm_lang$html$Html_Attributes$type_ = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'type', value); }; var _elm_lang$html$Html_Attributes$value = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'value', value); }; var _elm_lang$html$Html_Attributes$defaultValue = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'defaultValue', value); }; var _elm_lang$html$Html_Attributes$placeholder = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'placeholder', value); }; var _elm_lang$html$Html_Attributes$accept = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'accept', value); }; var _elm_lang$html$Html_Attributes$acceptCharset = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'acceptCharset', value); }; var _elm_lang$html$Html_Attributes$action = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'action', value); }; var _elm_lang$html$Html_Attributes$autocomplete = function (bool) { return A2( _elm_lang$html$Html_Attributes$stringProperty, 'autocomplete', bool ? 'on' : 'off'); }; var _elm_lang$html$Html_Attributes$enctype = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'enctype', value); }; var _elm_lang$html$Html_Attributes$method = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'method', value); }; var _elm_lang$html$Html_Attributes$name = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'name', value); }; var _elm_lang$html$Html_Attributes$pattern = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'pattern', value); }; var _elm_lang$html$Html_Attributes$for = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'htmlFor', value); }; var _elm_lang$html$Html_Attributes$max = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'max', value); }; var _elm_lang$html$Html_Attributes$min = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'min', value); }; var _elm_lang$html$Html_Attributes$step = function (n) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'step', n); }; var _elm_lang$html$Html_Attributes$wrap = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'wrap', value); }; var _elm_lang$html$Html_Attributes$usemap = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'useMap', value); }; var _elm_lang$html$Html_Attributes$shape = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'shape', value); }; var _elm_lang$html$Html_Attributes$coords = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'coords', value); }; var _elm_lang$html$Html_Attributes$keytype = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'keytype', value); }; var _elm_lang$html$Html_Attributes$align = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'align', value); }; var _elm_lang$html$Html_Attributes$cite = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'cite', value); }; var _elm_lang$html$Html_Attributes$href = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'href', value); }; var _elm_lang$html$Html_Attributes$target = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'target', value); }; var _elm_lang$html$Html_Attributes$downloadAs = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'download', value); }; var _elm_lang$html$Html_Attributes$hreflang = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'hreflang', value); }; var _elm_lang$html$Html_Attributes$ping = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'ping', value); }; var _elm_lang$html$Html_Attributes$start = function (n) { return A2( _elm_lang$html$Html_Attributes$stringProperty, 'start', _elm_lang$core$Basics$toString(n)); }; var _elm_lang$html$Html_Attributes$headers = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'headers', value); }; var _elm_lang$html$Html_Attributes$scope = function (value) { return A2(_elm_lang$html$Html_Attributes$stringProperty, 'scope', value); }; var _elm_lang$html$Html_Attributes$boolProperty = F2( function (name, bool) { return A2( _elm_lang$html$Html_Attributes$property, name, _elm_lang$core$Json_Encode$bool(bool)); }); var _elm_lang$html$Html_Attributes$hidden = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'hidden', bool); }; var _elm_lang$html$Html_Attributes$contenteditable = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'contentEditable', bool); }; var _elm_lang$html$Html_Attributes$spellcheck = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'spellcheck', bool); }; var _elm_lang$html$Html_Attributes$async = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'async', bool); }; var _elm_lang$html$Html_Attributes$defer = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'defer', bool); }; var _elm_lang$html$Html_Attributes$scoped = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'scoped', bool); }; var _elm_lang$html$Html_Attributes$autoplay = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'autoplay', bool); }; var _elm_lang$html$Html_Attributes$controls = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'controls', bool); }; var _elm_lang$html$Html_Attributes$loop = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'loop', bool); }; var _elm_lang$html$Html_Attributes$default = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'default', bool); }; var _elm_lang$html$Html_Attributes$seamless = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'seamless', bool); }; var _elm_lang$html$Html_Attributes$checked = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'checked', bool); }; var _elm_lang$html$Html_Attributes$selected = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'selected', bool); }; var _elm_lang$html$Html_Attributes$autofocus = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'autofocus', bool); }; var _elm_lang$html$Html_Attributes$disabled = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'disabled', bool); }; var _elm_lang$html$Html_Attributes$multiple = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'multiple', bool); }; var _elm_lang$html$Html_Attributes$novalidate = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'noValidate', bool); }; var _elm_lang$html$Html_Attributes$readonly = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'readOnly', bool); }; var _elm_lang$html$Html_Attributes$required = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'required', bool); }; var _elm_lang$html$Html_Attributes$ismap = function (value) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'isMap', value); }; var _elm_lang$html$Html_Attributes$download = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'download', bool); }; var _elm_lang$html$Html_Attributes$reversed = function (bool) { return A2(_elm_lang$html$Html_Attributes$boolProperty, 'reversed', bool); }; var _elm_lang$html$Html_Attributes$classList = function (list) { return _elm_lang$html$Html_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 _elm_lang$html$Html_Attributes$style = _elm_lang$virtual_dom$VirtualDom$style; var _elm_lang$html$Html_Events$keyCode = A2(_elm_lang$core$Json_Decode$field, 'keyCode', _elm_lang$core$Json_Decode$int); var _elm_lang$html$Html_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 _elm_lang$html$Html_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 _elm_lang$html$Html_Events$defaultOptions = _elm_lang$virtual_dom$VirtualDom$defaultOptions; var _elm_lang$html$Html_Events$onWithOptions = _elm_lang$virtual_dom$VirtualDom$onWithOptions; var _elm_lang$html$Html_Events$on = _elm_lang$virtual_dom$VirtualDom$on; var _elm_lang$html$Html_Events$onFocus = function (msg) { return A2( _elm_lang$html$Html_Events$on, 'focus', _elm_lang$core$Json_Decode$succeed(msg)); }; var _elm_lang$html$Html_Events$onBlur = function (msg) { return A2( _elm_lang$html$Html_Events$on, 'blur', _elm_lang$core$Json_Decode$succeed(msg)); }; var _elm_lang$html$Html_Events$onSubmitOptions = _elm_lang$core$Native_Utils.update( _elm_lang$html$Html_Events$defaultOptions, {preventDefault: true}); var _elm_lang$html$Html_Events$onSubmit = function (msg) { return A3( _elm_lang$html$Html_Events$onWithOptions, 'submit', _elm_lang$html$Html_Events$onSubmitOptions, _elm_lang$core$Json_Decode$succeed(msg)); }; var _elm_lang$html$Html_Events$onCheck = function (tagger) { return A2( _elm_lang$html$Html_Events$on, 'change', A2(_elm_lang$core$Json_Decode$map, tagger, _elm_lang$html$Html_Events$targetChecked)); }; var _elm_lang$html$Html_Events$onInput = function (tagger) { return A2( _elm_lang$html$Html_Events$on, 'input', A2(_elm_lang$core$Json_Decode$map, tagger, _elm_lang$html$Html_Events$targetValue)); }; var _elm_lang$html$Html_Events$onMouseOut = function (msg) { return A2( _elm_lang$html$Html_Events$on, 'mouseout', _elm_lang$core$Json_Decode$succeed(msg)); }; var _elm_lang$html$Html_Events$onMouseOver = function (msg) { return A2( _elm_lang$html$Html_Events$on, 'mouseover', _elm_lang$core$Json_Decode$succeed(msg)); }; var _elm_lang$html$Html_Events$onMouseLeave = function (msg) { return A2( _elm_lang$html$Html_Events$on, 'mouseleave', _elm_lang$core$Json_Decode$succeed(msg)); }; var _elm_lang$html$Html_Events$onMouseEnter = function (msg) { return A2( _elm_lang$html$Html_Events$on, 'mouseenter', _elm_lang$core$Json_Decode$succeed(msg)); }; var _elm_lang$html$Html_Events$onMouseUp = function (msg) { return A2( _elm_lang$html$Html_Events$on, 'mouseup', _elm_lang$core$Json_Decode$succeed(msg)); }; var _elm_lang$html$Html_Events$onMouseDown = function (msg) { return A2( _elm_lang$html$Html_Events$on, 'mousedown', _elm_lang$core$Json_Decode$succeed(msg)); }; var _elm_lang$html$Html_Events$onDoubleClick = function (msg) { return A2( _elm_lang$html$Html_Events$on, 'dblclick', _elm_lang$core$Json_Decode$succeed(msg)); }; var _elm_lang$html$Html_Events$onClick = function (msg) { return A2( _elm_lang$html$Html_Events$on, 'click', _elm_lang$core$Json_Decode$succeed(msg)); }; var _elm_lang$html$Html_Events$Options = F2( function (a, b) { return {stopPropagation: a, preventDefault: b}; }); var _elm_lang$html$Html_Keyed$node = _elm_lang$virtual_dom$VirtualDom$keyedNode; var _elm_lang$html$Html_Keyed$ol = _elm_lang$html$Html_Keyed$node('ol'); var _elm_lang$html$Html_Keyed$ul = _elm_lang$html$Html_Keyed$node('ul'); 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 _elm_lang$navigation$Native_Navigation = function() { // FAKE NAVIGATION function go(n) { return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) { if (n !== 0) { history.go(n); } callback(_elm_lang$core$Native_Scheduler.succeed(_elm_lang$core$Native_Utils.Tuple0)); }); } function pushState(url) { return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) { history.pushState({}, '', url); callback(_elm_lang$core$Native_Scheduler.succeed(getLocation())); }); } function replaceState(url) { return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) { history.replaceState({}, '', url); callback(_elm_lang$core$Native_Scheduler.succeed(getLocation())); }); } // REAL NAVIGATION function reloadPage(skipCache) { return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) { document.location.reload(skipCache); callback(_elm_lang$core$Native_Scheduler.succeed(_elm_lang$core$Native_Utils.Tuple0)); }); } function setLocation(url) { return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) { try { 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. document.location.reload(false); } callback(_elm_lang$core$Native_Scheduler.succeed(_elm_lang$core$Native_Utils.Tuple0)); }); } // GET LOCATION function getLocation() { var location = document.location; return { href: location.href, host: location.host, hostname: location.hostname, protocol: location.protocol, origin: location.origin, port_: location.port, pathname: location.pathname, search: location.search, hash: location.hash, username: location.username, password: location.password }; } // DETECT IE11 PROBLEMS function isInternetExplorer11() { return window.navigator.userAgent.indexOf('Trident') !== -1; } return { go: go, setLocation: setLocation, reloadPage: reloadPage, pushState: pushState, replaceState: replaceState, getLocation: getLocation, isInternetExplorer11: isInternetExplorer11 }; }(); var _elm_lang$navigation$Navigation$replaceState = _elm_lang$navigation$Native_Navigation.replaceState; var _elm_lang$navigation$Navigation$pushState = _elm_lang$navigation$Native_Navigation.pushState; var _elm_lang$navigation$Navigation$go = _elm_lang$navigation$Native_Navigation.go; var _elm_lang$navigation$Navigation$reloadPage = _elm_lang$navigation$Native_Navigation.reloadPage; var _elm_lang$navigation$Navigation$setLocation = _elm_lang$navigation$Native_Navigation.setLocation; var _elm_lang$navigation$Navigation_ops = _elm_lang$navigation$Navigation_ops || {}; _elm_lang$navigation$Navigation_ops['&>'] = F2( function (task1, task2) { return A2( _elm_lang$core$Task$andThen, function (_p0) { return task2; }, task1); }); var _elm_lang$navigation$Navigation$notify = F3( function (router, subs, location) { var send = function (_p1) { var _p2 = _p1; return A2( _elm_lang$core$Platform$sendToApp, router, _p2._0(location)); }; return A2( _elm_lang$navigation$Navigation_ops['&>'], _elm_lang$core$Task$sequence( A2(_elm_lang$core$List$map, send, subs)), _elm_lang$core$Task$succeed( {ctor: '_Tuple0'})); }); var _elm_lang$navigation$Navigation$cmdHelp = F3( function (router, subs, cmd) { var _p3 = cmd; switch (_p3.ctor) { case 'Jump': return _elm_lang$navigation$Navigation$go(_p3._0); case 'New': return A2( _elm_lang$core$Task$andThen, A2(_elm_lang$navigation$Navigation$notify, router, subs), _elm_lang$navigation$Navigation$pushState(_p3._0)); case 'Modify': return A2( _elm_lang$core$Task$andThen, A2(_elm_lang$navigation$Navigation$notify, router, subs), _elm_lang$navigation$Navigation$replaceState(_p3._0)); case 'Visit': return _elm_lang$navigation$Navigation$setLocation(_p3._0); default: return _elm_lang$navigation$Navigation$reloadPage(_p3._0); } }); var _elm_lang$navigation$Navigation$killPopWatcher = function (popWatcher) { var _p4 = popWatcher; if (_p4.ctor === 'Normal') { return _elm_lang$core$Process$kill(_p4._0); } else { return A2( _elm_lang$navigation$Navigation_ops['&>'], _elm_lang$core$Process$kill(_p4._0), _elm_lang$core$Process$kill(_p4._1)); } }; var _elm_lang$navigation$Navigation$onSelfMsg = F3( function (router, location, state) { return A2( _elm_lang$navigation$Navigation_ops['&>'], A3(_elm_lang$navigation$Navigation$notify, router, state.subs, location), _elm_lang$core$Task$succeed(state)); }); var _elm_lang$navigation$Navigation$subscription = _elm_lang$core$Native_Platform.leaf('Navigation'); var _elm_lang$navigation$Navigation$command = _elm_lang$core$Native_Platform.leaf('Navigation'); var _elm_lang$navigation$Navigation$Location = 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 {href: a, host: b, hostname: c, protocol: d, origin: e, port_: f, pathname: g, search: h, hash: i, username: j, password: k}; }; }; }; }; }; }; }; }; }; }; }; var _elm_lang$navigation$Navigation$State = F2( function (a, b) { return {subs: a, popWatcher: b}; }); var _elm_lang$navigation$Navigation$init = _elm_lang$core$Task$succeed( A2( _elm_lang$navigation$Navigation$State, {ctor: '[]'}, _elm_lang$core$Maybe$Nothing)); var _elm_lang$navigation$Navigation$Reload = function (a) { return {ctor: 'Reload', _0: a}; }; var _elm_lang$navigation$Navigation$reload = _elm_lang$navigation$Navigation$command( _elm_lang$navigation$Navigation$Reload(false)); var _elm_lang$navigation$Navigation$reloadAndSkipCache = _elm_lang$navigation$Navigation$command( _elm_lang$navigation$Navigation$Reload(true)); var _elm_lang$navigation$Navigation$Visit = function (a) { return {ctor: 'Visit', _0: a}; }; var _elm_lang$navigation$Navigation$load = function (url) { return _elm_lang$navigation$Navigation$command( _elm_lang$navigation$Navigation$Visit(url)); }; var _elm_lang$navigation$Navigation$Modify = function (a) { return {ctor: 'Modify', _0: a}; }; var _elm_lang$navigation$Navigation$modifyUrl = function (url) { return _elm_lang$navigation$Navigation$command( _elm_lang$navigation$Navigation$Modify(url)); }; var _elm_lang$navigation$Navigation$New = function (a) { return {ctor: 'New', _0: a}; }; var _elm_lang$navigation$Navigation$newUrl = function (url) { return _elm_lang$navigation$Navigation$command( _elm_lang$navigation$Navigation$New(url)); }; var _elm_lang$navigation$Navigation$Jump = function (a) { return {ctor: 'Jump', _0: a}; }; var _elm_lang$navigation$Navigation$back = function (n) { return _elm_lang$navigation$Navigation$command( _elm_lang$navigation$Navigation$Jump(0 - n)); }; var _elm_lang$navigation$Navigation$forward = function (n) { return _elm_lang$navigation$Navigation$command( _elm_lang$navigation$Navigation$Jump(n)); }; var _elm_lang$navigation$Navigation$cmdMap = F2( function (_p5, myCmd) { var _p6 = myCmd; switch (_p6.ctor) { case 'Jump': return _elm_lang$navigation$Navigation$Jump(_p6._0); case 'New': return _elm_lang$navigation$Navigation$New(_p6._0); case 'Modify': return _elm_lang$navigation$Navigation$Modify(_p6._0); case 'Visit': return _elm_lang$navigation$Navigation$Visit(_p6._0); default: return _elm_lang$navigation$Navigation$Reload(_p6._0); } }); var _elm_lang$navigation$Navigation$Monitor = function (a) { return {ctor: 'Monitor', _0: a}; }; var _elm_lang$navigation$Navigation$program = F2( function (locationToMessage, stuff) { var init = stuff.init( _elm_lang$navigation$Native_Navigation.getLocation( {ctor: '_Tuple0'})); var subs = function (model) { return _elm_lang$core$Platform_Sub$batch( { ctor: '::', _0: _elm_lang$navigation$Navigation$subscription( _elm_lang$navigation$Navigation$Monitor(locationToMessage)), _1: { ctor: '::', _0: stuff.subscriptions(model), _1: {ctor: '[]'} } }); }; return _elm_lang$html$Html$program( {init: init, view: stuff.view, update: stuff.update, subscriptions: subs}); }); var _elm_lang$navigation$Navigation$programWithFlags = F2( function (locationToMessage, stuff) { var init = function (flags) { return A2( stuff.init, flags, _elm_lang$navigation$Native_Navigation.getLocation( {ctor: '_Tuple0'})); }; var subs = function (model) { return _elm_lang$core$Platform_Sub$batch( { ctor: '::', _0: _elm_lang$navigation$Navigation$subscription( _elm_lang$navigation$Navigation$Monitor(locationToMessage)), _1: { ctor: '::', _0: stuff.subscriptions(model), _1: {ctor: '[]'} } }); }; return _elm_lang$html$Html$programWithFlags( {init: init, view: stuff.view, update: stuff.update, subscriptions: subs}); }); var _elm_lang$navigation$Navigation$subMap = F2( function (func, _p7) { var _p8 = _p7; return _elm_lang$navigation$Navigation$Monitor( function (_p9) { return func( _p8._0(_p9)); }); }); var _elm_lang$navigation$Navigation$InternetExplorer = F2( function (a, b) { return {ctor: 'InternetExplorer', _0: a, _1: b}; }); var _elm_lang$navigation$Navigation$Normal = function (a) { return {ctor: 'Normal', _0: a}; }; var _elm_lang$navigation$Navigation$spawnPopWatcher = function (router) { var reportLocation = function (_p10) { return A2( _elm_lang$core$Platform$sendToSelf, router, _elm_lang$navigation$Native_Navigation.getLocation( {ctor: '_Tuple0'})); }; return _elm_lang$navigation$Native_Navigation.isInternetExplorer11( {ctor: '_Tuple0'}) ? A3( _elm_lang$core$Task$map2, _elm_lang$navigation$Navigation$InternetExplorer, _elm_lang$core$Process$spawn( A3(_elm_lang$dom$Dom_LowLevel$onWindow, 'popstate', _elm_lang$core$Json_Decode$value, reportLocation)), _elm_lang$core$Process$spawn( A3(_elm_lang$dom$Dom_LowLevel$onWindow, 'hashchange', _elm_lang$core$Json_Decode$value, reportLocation))) : A2( _elm_lang$core$Task$map, _elm_lang$navigation$Navigation$Normal, _elm_lang$core$Process$spawn( A3(_elm_lang$dom$Dom_LowLevel$onWindow, 'popstate', _elm_lang$core$Json_Decode$value, reportLocation))); }; var _elm_lang$navigation$Navigation$onEffects = F4( function (router, cmds, subs, _p11) { var _p12 = _p11; var _p15 = _p12.popWatcher; var stepState = function () { var _p13 = {ctor: '_Tuple2', _0: subs, _1: _p15}; _v6_2: do { if (_p13._0.ctor === '[]') { if (_p13._1.ctor === 'Just') { return A2( _elm_lang$navigation$Navigation_ops['&>'], _elm_lang$navigation$Navigation$killPopWatcher(_p13._1._0), _elm_lang$core$Task$succeed( A2(_elm_lang$navigation$Navigation$State, subs, _elm_lang$core$Maybe$Nothing))); } else { break _v6_2; } } else { if (_p13._1.ctor === 'Nothing') { return A2( _elm_lang$core$Task$map, function (_p14) { return A2( _elm_lang$navigation$Navigation$State, subs, _elm_lang$core$Maybe$Just(_p14)); }, _elm_lang$navigation$Navigation$spawnPopWatcher(router)); } else { break _v6_2; } } } while(false); return _elm_lang$core$Task$succeed( A2(_elm_lang$navigation$Navigation$State, subs, _p15)); }(); return A2( _elm_lang$navigation$Navigation_ops['&>'], _elm_lang$core$Task$sequence( A2( _elm_lang$core$List$map, A2(_elm_lang$navigation$Navigation$cmdHelp, router, subs), cmds)), stepState); }); _elm_lang$core$Native_Platform.effectManagers['Navigation'] = {pkg: 'elm-lang/navigation', init: _elm_lang$navigation$Navigation$init, onEffects: _elm_lang$navigation$Navigation$onEffects, onSelfMsg: _elm_lang$navigation$Navigation$onSelfMsg, tag: 'fx', cmdMap: _elm_lang$navigation$Navigation$cmdMap, subMap: _elm_lang$navigation$Navigation$subMap}; var _elm_lang$svg$Svg$map = _elm_lang$virtual_dom$VirtualDom$map; var _elm_lang$svg$Svg$text = _elm_lang$virtual_dom$VirtualDom$text; var _elm_lang$svg$Svg$svgNamespace = A2( _elm_lang$virtual_dom$VirtualDom$property, 'namespace', _elm_lang$core$Json_Encode$string('http://www.w3.org/2000/svg')); var _elm_lang$svg$Svg$node = F3( function (name, attributes, children) { return A3( _elm_lang$virtual_dom$VirtualDom$node, name, {ctor: '::', _0: _elm_lang$svg$Svg$svgNamespace, _1: attributes}, children); }); var _elm_lang$svg$Svg$svg = _elm_lang$svg$Svg$node('svg'); var _elm_lang$svg$Svg$foreignObject = _elm_lang$svg$Svg$node('foreignObject'); var _elm_lang$svg$Svg$animate = _elm_lang$svg$Svg$node('animate'); var _elm_lang$svg$Svg$animateColor = _elm_lang$svg$Svg$node('animateColor'); var _elm_lang$svg$Svg$animateMotion = _elm_lang$svg$Svg$node('animateMotion'); var _elm_lang$svg$Svg$animateTransform = _elm_lang$svg$Svg$node('animateTransform'); var _elm_lang$svg$Svg$mpath = _elm_lang$svg$Svg$node('mpath'); var _elm_lang$svg$Svg$set = _elm_lang$svg$Svg$node('set'); var _elm_lang$svg$Svg$a = _elm_lang$svg$Svg$node('a'); var _elm_lang$svg$Svg$defs = _elm_lang$svg$Svg$node('defs'); var _elm_lang$svg$Svg$g = _elm_lang$svg$Svg$node('g'); var _elm_lang$svg$Svg$marker = _elm_lang$svg$Svg$node('marker'); var _elm_lang$svg$Svg$mask = _elm_lang$svg$Svg$node('mask'); var _elm_lang$svg$Svg$pattern = _elm_lang$svg$Svg$node('pattern'); var _elm_lang$svg$Svg$switch = _elm_lang$svg$Svg$node('switch'); var _elm_lang$svg$Svg$symbol = _elm_lang$svg$Svg$node('symbol'); var _elm_lang$svg$Svg$desc = _elm_lang$svg$Svg$node('desc'); var _elm_lang$svg$Svg$metadata = _elm_lang$svg$Svg$node('metadata'); var _elm_lang$svg$Svg$title = _elm_lang$svg$Svg$node('title'); var _elm_lang$svg$Svg$feBlend = _elm_lang$svg$Svg$node('feBlend'); var _elm_lang$svg$Svg$feColorMatrix = _elm_lang$svg$Svg$node('feColorMatrix'); var _elm_lang$svg$Svg$feComponentTransfer = _elm_lang$svg$Svg$node('feComponentTransfer'); var _elm_lang$svg$Svg$feComposite = _elm_lang$svg$Svg$node('feComposite'); var _elm_lang$svg$Svg$feConvolveMatrix = _elm_lang$svg$Svg$node('feConvolveMatrix'); var _elm_lang$svg$Svg$feDiffuseLighting = _elm_lang$svg$Svg$node('feDiffuseLighting'); var _elm_lang$svg$Svg$feDisplacementMap = _elm_lang$svg$Svg$node('feDisplacementMap'); var _elm_lang$svg$Svg$feFlood = _elm_lang$svg$Svg$node('feFlood'); var _elm_lang$svg$Svg$feFuncA = _elm_lang$svg$Svg$node('feFuncA'); var _elm_lang$svg$Svg$feFuncB = _elm_lang$svg$Svg$node('feFuncB'); var _elm_lang$svg$Svg$feFuncG = _elm_lang$svg$Svg$node('feFuncG'); var _elm_lang$svg$Svg$feFuncR = _elm_lang$svg$Svg$node('feFuncR'); var _elm_lang$svg$Svg$feGaussianBlur = _elm_lang$svg$Svg$node('feGaussianBlur'); var _elm_lang$svg$Svg$feImage = _elm_lang$svg$Svg$node('feImage'); var _elm_lang$svg$Svg$feMerge = _elm_lang$svg$Svg$node('feMerge'); var _elm_lang$svg$Svg$feMergeNode = _elm_lang$svg$Svg$node('feMergeNode'); var _elm_lang$svg$Svg$feMorphology = _elm_lang$svg$Svg$node('feMorphology'); var _elm_lang$svg$Svg$feOffset = _elm_lang$svg$Svg$node('feOffset'); var _elm_lang$svg$Svg$feSpecularLighting = _elm_lang$svg$Svg$node('feSpecularLighting'); var _elm_lang$svg$Svg$feTile = _elm_lang$svg$Svg$node('feTile'); var _elm_lang$svg$Svg$feTurbulence = _elm_lang$svg$Svg$node('feTurbulence'); var _elm_lang$svg$Svg$font = _elm_lang$svg$Svg$node('font'); var _elm_lang$svg$Svg$linearGradient = _elm_lang$svg$Svg$node('linearGradient'); var _elm_lang$svg$Svg$radialGradient = _elm_lang$svg$Svg$node('radialGradient'); var _elm_lang$svg$Svg$stop = _elm_lang$svg$Svg$node('stop'); var _elm_lang$svg$Svg$circle = _elm_lang$svg$Svg$node('circle'); var _elm_lang$svg$Svg$ellipse = _elm_lang$svg$Svg$node('ellipse'); var _elm_lang$svg$Svg$image = _elm_lang$svg$Svg$node('image'); var _elm_lang$svg$Svg$line = _elm_lang$svg$Svg$node('line'); var _elm_lang$svg$Svg$path = _elm_lang$svg$Svg$node('path'); var _elm_lang$svg$Svg$polygon = _elm_lang$svg$Svg$node('polygon'); var _elm_lang$svg$Svg$polyline = _elm_lang$svg$Svg$node('polyline'); var _elm_lang$svg$Svg$rect = _elm_lang$svg$Svg$node('rect'); var _elm_lang$svg$Svg$use = _elm_lang$svg$Svg$node('use'); var _elm_lang$svg$Svg$feDistantLight = _elm_lang$svg$Svg$node('feDistantLight'); var _elm_lang$svg$Svg$fePointLight = _elm_lang$svg$Svg$node('fePointLight'); var _elm_lang$svg$Svg$feSpotLight = _elm_lang$svg$Svg$node('feSpotLight'); var _elm_lang$svg$Svg$altGlyph = _elm_lang$svg$Svg$node('altGlyph'); var _elm_lang$svg$Svg$altGlyphDef = _elm_lang$svg$Svg$node('altGlyphDef'); var _elm_lang$svg$Svg$altGlyphItem = _elm_lang$svg$Svg$node('altGlyphItem'); var _elm_lang$svg$Svg$glyph = _elm_lang$svg$Svg$node('glyph'); var _elm_lang$svg$Svg$glyphRef = _elm_lang$svg$Svg$node('glyphRef'); var _elm_lang$svg$Svg$textPath = _elm_lang$svg$Svg$node('textPath'); var _elm_lang$svg$Svg$text_ = _elm_lang$svg$Svg$node('text'); var _elm_lang$svg$Svg$tref = _elm_lang$svg$Svg$node('tref'); var _elm_lang$svg$Svg$tspan = _elm_lang$svg$Svg$node('tspan'); var _elm_lang$svg$Svg$clipPath = _elm_lang$svg$Svg$node('clipPath'); var _elm_lang$svg$Svg$colorProfile = _elm_lang$svg$Svg$node('colorProfile'); var _elm_lang$svg$Svg$cursor = _elm_lang$svg$Svg$node('cursor'); var _elm_lang$svg$Svg$filter = _elm_lang$svg$Svg$node('filter'); var _elm_lang$svg$Svg$script = _elm_lang$svg$Svg$node('script'); var _elm_lang$svg$Svg$style = _elm_lang$svg$Svg$node('style'); var _elm_lang$svg$Svg$view = _elm_lang$svg$Svg$node('view'); var _elm_lang$svg$Svg_Attributes$writingMode = _elm_lang$virtual_dom$VirtualDom$attribute('writing-mode'); var _elm_lang$svg$Svg_Attributes$wordSpacing = _elm_lang$virtual_dom$VirtualDom$attribute('word-spacing'); var _elm_lang$svg$Svg_Attributes$visibility = _elm_lang$virtual_dom$VirtualDom$attribute('visibility'); var _elm_lang$svg$Svg_Attributes$unicodeBidi = _elm_lang$virtual_dom$VirtualDom$attribute('unicode-bidi'); var _elm_lang$svg$Svg_Attributes$textRendering = _elm_lang$virtual_dom$VirtualDom$attribute('text-rendering'); var _elm_lang$svg$Svg_Attributes$textDecoration = _elm_lang$virtual_dom$VirtualDom$attribute('text-decoration'); var _elm_lang$svg$Svg_Attributes$textAnchor = _elm_lang$virtual_dom$VirtualDom$attribute('text-anchor'); var _elm_lang$svg$Svg_Attributes$stroke = _elm_lang$virtual_dom$VirtualDom$attribute('stroke'); var _elm_lang$svg$Svg_Attributes$strokeWidth = _elm_lang$virtual_dom$VirtualDom$attribute('stroke-width'); var _elm_lang$svg$Svg_Attributes$strokeOpacity = _elm_lang$virtual_dom$VirtualDom$attribute('stroke-opacity'); var _elm_lang$svg$Svg_Attributes$strokeMiterlimit = _elm_lang$virtual_dom$VirtualDom$attribute('stroke-miterlimit'); var _elm_lang$svg$Svg_Attributes$strokeLinejoin = _elm_lang$virtual_dom$VirtualDom$attribute('stroke-linejoin'); var _elm_lang$svg$Svg_Attributes$strokeLinecap = _elm_lang$virtual_dom$VirtualDom$attribute('stroke-linecap'); var _elm_lang$svg$Svg_Attributes$strokeDashoffset = _elm_lang$virtual_dom$VirtualDom$attribute('stroke-dashoffset'); var _elm_lang$svg$Svg_Attributes$strokeDasharray = _elm_lang$virtual_dom$VirtualDom$attribute('stroke-dasharray'); var _elm_lang$svg$Svg_Attributes$stopOpacity = _elm_lang$virtual_dom$VirtualDom$attribute('stop-opacity'); var _elm_lang$svg$Svg_Attributes$stopColor = _elm_lang$virtual_dom$VirtualDom$attribute('stop-color'); var _elm_lang$svg$Svg_Attributes$shapeRendering = _elm_lang$virtual_dom$VirtualDom$attribute('shape-rendering'); var _elm_lang$svg$Svg_Attributes$pointerEvents = _elm_lang$virtual_dom$VirtualDom$attribute('pointer-events'); var _elm_lang$svg$Svg_Attributes$overflow = _elm_lang$virtual_dom$VirtualDom$attribute('overflow'); var _elm_lang$svg$Svg_Attributes$opacity = _elm_lang$virtual_dom$VirtualDom$attribute('opacity'); var _elm_lang$svg$Svg_Attributes$mask = _elm_lang$virtual_dom$VirtualDom$attribute('mask'); var _elm_lang$svg$Svg_Attributes$markerStart = _elm_lang$virtual_dom$VirtualDom$attribute('marker-start'); var _elm_lang$svg$Svg_Attributes$markerMid = _elm_lang$virtual_dom$VirtualDom$attribute('marker-mid'); var _elm_lang$svg$Svg_Attributes$markerEnd = _elm_lang$virtual_dom$VirtualDom$attribute('marker-end'); var _elm_lang$svg$Svg_Attributes$lightingColor = _elm_lang$virtual_dom$VirtualDom$attribute('lighting-color'); var _elm_lang$svg$Svg_Attributes$letterSpacing = _elm_lang$virtual_dom$VirtualDom$attribute('letter-spacing'); var _elm_lang$svg$Svg_Attributes$kerning = _elm_lang$virtual_dom$VirtualDom$attribute('kerning'); var _elm_lang$svg$Svg_Attributes$imageRendering = _elm_lang$virtual_dom$VirtualDom$attribute('image-rendering'); var _elm_lang$svg$Svg_Attributes$glyphOrientationVertical = _elm_lang$virtual_dom$VirtualDom$attribute('glyph-orientation-vertical'); var _elm_lang$svg$Svg_Attributes$glyphOrientationHorizontal = _elm_lang$virtual_dom$VirtualDom$attribute('glyph-orientation-horizontal'); var _elm_lang$svg$Svg_Attributes$fontWeight = _elm_lang$virtual_dom$VirtualDom$attribute('font-weight'); var _elm_lang$svg$Svg_Attributes$fontVariant = _elm_lang$virtual_dom$VirtualDom$attribute('font-variant'); var _elm_lang$svg$Svg_Attributes$fontStyle = _elm_lang$virtual_dom$VirtualDom$attribute('font-style'); var _elm_lang$svg$Svg_Attributes$fontStretch = _elm_lang$virtual_dom$VirtualDom$attribute('font-stretch'); var _elm_lang$svg$Svg_Attributes$fontSize = _elm_lang$virtual_dom$VirtualDom$attribute('font-size'); var _elm_lang$svg$Svg_Attributes$fontSizeAdjust = _elm_lang$virtual_dom$VirtualDom$attribute('font-size-adjust'); var _elm_lang$svg$Svg_Attributes$fontFamily = _elm_lang$virtual_dom$VirtualDom$attribute('font-family'); var _elm_lang$svg$Svg_Attributes$floodOpacity = _elm_lang$virtual_dom$VirtualDom$attribute('flood-opacity'); var _elm_lang$svg$Svg_Attributes$floodColor = _elm_lang$virtual_dom$VirtualDom$attribute('flood-color'); var _elm_lang$svg$Svg_Attributes$filter = _elm_lang$virtual_dom$VirtualDom$attribute('filter'); var _elm_lang$svg$Svg_Attributes$fill = _elm_lang$virtual_dom$VirtualDom$attribute('fill'); var _elm_lang$svg$Svg_Attributes$fillRule = _elm_lang$virtual_dom$VirtualDom$attribute('fill-rule'); var _elm_lang$svg$Svg_Attributes$fillOpacity = _elm_lang$virtual_dom$VirtualDom$attribute('fill-opacity'); var _elm_lang$svg$Svg_Attributes$enableBackground = _elm_lang$virtual_dom$VirtualDom$attribute('enable-background'); var _elm_lang$svg$Svg_Attributes$dominantBaseline = _elm_lang$virtual_dom$VirtualDom$attribute('dominant-baseline'); var _elm_lang$svg$Svg_Attributes$display = _elm_lang$virtual_dom$VirtualDom$attribute('display'); var _elm_lang$svg$Svg_Attributes$direction = _elm_lang$virtual_dom$VirtualDom$attribute('direction'); var _elm_lang$svg$Svg_Attributes$cursor = _elm_lang$virtual_dom$VirtualDom$attribute('cursor'); var _elm_lang$svg$Svg_Attributes$color = _elm_lang$virtual_dom$VirtualDom$attribute('color'); var _elm_lang$svg$Svg_Attributes$colorRendering = _elm_lang$virtual_dom$VirtualDom$attribute('color-rendering'); var _elm_lang$svg$Svg_Attributes$colorProfile = _elm_lang$virtual_dom$VirtualDom$attribute('color-profile'); var _elm_lang$svg$Svg_Attributes$colorInterpolation = _elm_lang$virtual_dom$VirtualDom$attribute('color-interpolation'); var _elm_lang$svg$Svg_Attributes$colorInterpolationFilters = _elm_lang$virtual_dom$VirtualDom$attribute('color-interpolation-filters'); var _elm_lang$svg$Svg_Attributes$clip = _elm_lang$virtual_dom$VirtualDom$attribute('clip'); var _elm_lang$svg$Svg_Attributes$clipRule = _elm_lang$virtual_dom$VirtualDom$attribute('clip-rule'); var _elm_lang$svg$Svg_Attributes$clipPath = _elm_lang$virtual_dom$VirtualDom$attribute('clip-path'); var _elm_lang$svg$Svg_Attributes$baselineShift = _elm_lang$virtual_dom$VirtualDom$attribute('baseline-shift'); var _elm_lang$svg$Svg_Attributes$alignmentBaseline = _elm_lang$virtual_dom$VirtualDom$attribute('alignment-baseline'); var _elm_lang$svg$Svg_Attributes$zoomAndPan = _elm_lang$virtual_dom$VirtualDom$attribute('zoomAndPan'); var _elm_lang$svg$Svg_Attributes$z = _elm_lang$virtual_dom$VirtualDom$attribute('z'); var _elm_lang$svg$Svg_Attributes$yChannelSelector = _elm_lang$virtual_dom$VirtualDom$attribute('yChannelSelector'); var _elm_lang$svg$Svg_Attributes$y2 = _elm_lang$virtual_dom$VirtualDom$attribute('y2'); var _elm_lang$svg$Svg_Attributes$y1 = _elm_lang$virtual_dom$VirtualDom$attribute('y1'); var _elm_lang$svg$Svg_Attributes$y = _elm_lang$virtual_dom$VirtualDom$attribute('y'); var _elm_lang$svg$Svg_Attributes$xmlSpace = A2(_elm_lang$virtual_dom$VirtualDom$attributeNS, 'http://www.w3.org/XML/1998/namespace', 'xml:space'); var _elm_lang$svg$Svg_Attributes$xmlLang = A2(_elm_lang$virtual_dom$VirtualDom$attributeNS, 'http://www.w3.org/XML/1998/namespace', 'xml:lang'); var _elm_lang$svg$Svg_Attributes$xmlBase = A2(_elm_lang$virtual_dom$VirtualDom$attributeNS, 'http://www.w3.org/XML/1998/namespace', 'xml:base'); var _elm_lang$svg$Svg_Attributes$xlinkType = A2(_elm_lang$virtual_dom$VirtualDom$attributeNS, 'http://www.w3.org/1999/xlink', 'xlink:type'); var _elm_lang$svg$Svg_Attributes$xlinkTitle = A2(_elm_lang$virtual_dom$VirtualDom$attributeNS, 'http://www.w3.org/1999/xlink', 'xlink:title'); var _elm_lang$svg$Svg_Attributes$xlinkShow = A2(_elm_lang$virtual_dom$VirtualDom$attributeNS, 'http://www.w3.org/1999/xlink', 'xlink:show'); var _elm_lang$svg$Svg_Attributes$xlinkRole = A2(_elm_lang$virtual_dom$VirtualDom$attributeNS, 'http://www.w3.org/1999/xlink', 'xlink:role'); var _elm_lang$svg$Svg_Attributes$xlinkHref = A2(_elm_lang$virtual_dom$VirtualDom$attributeNS, 'http://www.w3.org/1999/xlink', 'xlink:href'); var _elm_lang$svg$Svg_Attributes$xlinkArcrole = A2(_elm_lang$virtual_dom$VirtualDom$attributeNS, 'http://www.w3.org/1999/xlink', 'xlink:arcrole'); var _elm_lang$svg$Svg_Attributes$xlinkActuate = A2(_elm_lang$virtual_dom$VirtualDom$attributeNS, 'http://www.w3.org/1999/xlink', 'xlink:actuate'); var _elm_lang$svg$Svg_Attributes$xChannelSelector = _elm_lang$virtual_dom$VirtualDom$attribute('xChannelSelector'); var _elm_lang$svg$Svg_Attributes$x2 = _elm_lang$virtual_dom$VirtualDom$attribute('x2'); var _elm_lang$svg$Svg_Attributes$x1 = _elm_lang$virtual_dom$VirtualDom$attribute('x1'); var _elm_lang$svg$Svg_Attributes$xHeight = _elm_lang$virtual_dom$VirtualDom$attribute('x-height'); var _elm_lang$svg$Svg_Attributes$x = _elm_lang$virtual_dom$VirtualDom$attribute('x'); var _elm_lang$svg$Svg_Attributes$widths = _elm_lang$virtual_dom$VirtualDom$attribute('widths'); var _elm_lang$svg$Svg_Attributes$width = _elm_lang$virtual_dom$VirtualDom$attribute('width'); var _elm_lang$svg$Svg_Attributes$viewTarget = _elm_lang$virtual_dom$VirtualDom$attribute('viewTarget'); var _elm_lang$svg$Svg_Attributes$viewBox = _elm_lang$virtual_dom$VirtualDom$attribute('viewBox'); var _elm_lang$svg$Svg_Attributes$vertOriginY = _elm_lang$virtual_dom$VirtualDom$attribute('vert-origin-y'); var _elm_lang$svg$Svg_Attributes$vertOriginX = _elm_lang$virtual_dom$VirtualDom$attribute('vert-origin-x'); var _elm_lang$svg$Svg_Attributes$vertAdvY = _elm_lang$virtual_dom$VirtualDom$attribute('vert-adv-y'); var _elm_lang$svg$Svg_Attributes$version = _elm_lang$virtual_dom$VirtualDom$attribute('version'); var _elm_lang$svg$Svg_Attributes$values = _elm_lang$virtual_dom$VirtualDom$attribute('values'); var _elm_lang$svg$Svg_Attributes$vMathematical = _elm_lang$virtual_dom$VirtualDom$attribute('v-mathematical'); var _elm_lang$svg$Svg_Attributes$vIdeographic = _elm_lang$virtual_dom$VirtualDom$attribute('v-ideographic'); var _elm_lang$svg$Svg_Attributes$vHanging = _elm_lang$virtual_dom$VirtualDom$attribute('v-hanging'); var _elm_lang$svg$Svg_Attributes$vAlphabetic = _elm_lang$virtual_dom$VirtualDom$attribute('v-alphabetic'); var _elm_lang$svg$Svg_Attributes$unitsPerEm = _elm_lang$virtual_dom$VirtualDom$attribute('units-per-em'); var _elm_lang$svg$Svg_Attributes$unicodeRange = _elm_lang$virtual_dom$VirtualDom$attribute('unicode-range'); var _elm_lang$svg$Svg_Attributes$unicode = _elm_lang$virtual_dom$VirtualDom$attribute('unicode'); var _elm_lang$svg$Svg_Attributes$underlineThickness = _elm_lang$virtual_dom$VirtualDom$attribute('underline-thickness'); var _elm_lang$svg$Svg_Attributes$underlinePosition = _elm_lang$virtual_dom$VirtualDom$attribute('underline-position'); var _elm_lang$svg$Svg_Attributes$u2 = _elm_lang$virtual_dom$VirtualDom$attribute('u2'); var _elm_lang$svg$Svg_Attributes$u1 = _elm_lang$virtual_dom$VirtualDom$attribute('u1'); var _elm_lang$svg$Svg_Attributes$type_ = _elm_lang$virtual_dom$VirtualDom$attribute('type'); var _elm_lang$svg$Svg_Attributes$transform = _elm_lang$virtual_dom$VirtualDom$attribute('transform'); var _elm_lang$svg$Svg_Attributes$to = _elm_lang$virtual_dom$VirtualDom$attribute('to'); var _elm_lang$svg$Svg_Attributes$title = _elm_lang$virtual_dom$VirtualDom$attribute('title'); var _elm_lang$svg$Svg_Attributes$textLength = _elm_lang$virtual_dom$VirtualDom$attribute('textLength'); var _elm_lang$svg$Svg_Attributes$targetY = _elm_lang$virtual_dom$VirtualDom$attribute('targetY'); var _elm_lang$svg$Svg_Attributes$targetX = _elm_lang$virtual_dom$VirtualDom$attribute('targetX'); var _elm_lang$svg$Svg_Attributes$target = _elm_lang$virtual_dom$VirtualDom$attribute('target'); var _elm_lang$svg$Svg_Attributes$tableValues = _elm_lang$virtual_dom$VirtualDom$attribute('tableValues'); var _elm_lang$svg$Svg_Attributes$systemLanguage = _elm_lang$virtual_dom$VirtualDom$attribute('systemLanguage'); var _elm_lang$svg$Svg_Attributes$surfaceScale = _elm_lang$virtual_dom$VirtualDom$attribute('surfaceScale'); var _elm_lang$svg$Svg_Attributes$style = _elm_lang$virtual_dom$VirtualDom$attribute('style'); var _elm_lang$svg$Svg_Attributes$string = _elm_lang$virtual_dom$VirtualDom$attribute('string'); var _elm_lang$svg$Svg_Attributes$strikethroughThickness = _elm_lang$virtual_dom$VirtualDom$attribute('strikethrough-thickness'); var _elm_lang$svg$Svg_Attributes$strikethroughPosition = _elm_lang$virtual_dom$VirtualDom$attribute('strikethrough-position'); var _elm_lang$svg$Svg_Attributes$stitchTiles = _elm_lang$virtual_dom$VirtualDom$attribute('stitchTiles'); var _elm_lang$svg$Svg_Attributes$stemv = _elm_lang$virtual_dom$VirtualDom$attribute('stemv'); var _elm_lang$svg$Svg_Attributes$stemh = _elm_lang$virtual_dom$VirtualDom$attribute('stemh'); var _elm_lang$svg$Svg_Attributes$stdDeviation = _elm_lang$virtual_dom$VirtualDom$attribute('stdDeviation'); var _elm_lang$svg$Svg_Attributes$startOffset = _elm_lang$virtual_dom$VirtualDom$attribute('startOffset'); var _elm_lang$svg$Svg_Attributes$spreadMethod = _elm_lang$virtual_dom$VirtualDom$attribute('spreadMethod'); var _elm_lang$svg$Svg_Attributes$speed = _elm_lang$virtual_dom$VirtualDom$attribute('speed'); var _elm_lang$svg$Svg_Attributes$specularExponent = _elm_lang$virtual_dom$VirtualDom$attribute('specularExponent'); var _elm_lang$svg$Svg_Attributes$specularConstant = _elm_lang$virtual_dom$VirtualDom$attribute('specularConstant'); var _elm_lang$svg$Svg_Attributes$spacing = _elm_lang$virtual_dom$VirtualDom$attribute('spacing'); var _elm_lang$svg$Svg_Attributes$slope = _elm_lang$virtual_dom$VirtualDom$attribute('slope'); var _elm_lang$svg$Svg_Attributes$seed = _elm_lang$virtual_dom$VirtualDom$attribute('seed'); var _elm_lang$svg$Svg_Attributes$scale = _elm_lang$virtual_dom$VirtualDom$attribute('scale'); var _elm_lang$svg$Svg_Attributes$ry = _elm_lang$virtual_dom$VirtualDom$attribute('ry'); var _elm_lang$svg$Svg_Attributes$rx = _elm_lang$virtual_dom$VirtualDom$attribute('rx'); var _elm_lang$svg$Svg_Attributes$rotate = _elm_lang$virtual_dom$VirtualDom$attribute('rotate'); var _elm_lang$svg$Svg_Attributes$result = _elm_lang$virtual_dom$VirtualDom$attribute('result'); var _elm_lang$svg$Svg_Attributes$restart = _elm_lang$virtual_dom$VirtualDom$attribute('restart'); var _elm_lang$svg$Svg_Attributes$requiredFeatures = _elm_lang$virtual_dom$VirtualDom$attribute('requiredFeatures'); var _elm_lang$svg$Svg_Attributes$requiredExtensions = _elm_lang$virtual_dom$VirtualDom$attribute('requiredExtensions'); var _elm_lang$svg$Svg_Attributes$repeatDur = _elm_lang$virtual_dom$VirtualDom$attribute('repeatDur'); var _elm_lang$svg$Svg_Attributes$repeatCount = _elm_lang$virtual_dom$VirtualDom$attribute('repeatCount'); var _elm_lang$svg$Svg_Attributes$renderingIntent = _elm_lang$virtual_dom$VirtualDom$attribute('rendering-intent'); var _elm_lang$svg$Svg_Attributes$refY = _elm_lang$virtual_dom$VirtualDom$attribute('refY'); var _elm_lang$svg$Svg_Attributes$refX = _elm_lang$virtual_dom$VirtualDom$attribute('refX'); var _elm_lang$svg$Svg_Attributes$radius = _elm_lang$virtual_dom$VirtualDom$attribute('radius'); var _elm_lang$svg$Svg_Attributes$r = _elm_lang$virtual_dom$VirtualDom$attribute('r'); var _elm_lang$svg$Svg_Attributes$primitiveUnits = _elm_lang$virtual_dom$VirtualDom$attribute('primitiveUnits'); var _elm_lang$svg$Svg_Attributes$preserveAspectRatio = _elm_lang$virtual_dom$VirtualDom$attribute('preserveAspectRatio'); var _elm_lang$svg$Svg_Attributes$preserveAlpha = _elm_lang$virtual_dom$VirtualDom$attribute('preserveAlpha'); var _elm_lang$svg$Svg_Attributes$pointsAtZ = _elm_lang$virtual_dom$VirtualDom$attribute('pointsAtZ'); var _elm_lang$svg$Svg_Attributes$pointsAtY = _elm_lang$virtual_dom$VirtualDom$attribute('pointsAtY'); var _elm_lang$svg$Svg_Attributes$pointsAtX = _elm_lang$virtual_dom$VirtualDom$attribute('pointsAtX'); var _elm_lang$svg$Svg_Attributes$points = _elm_lang$virtual_dom$VirtualDom$attribute('points'); var _elm_lang$svg$Svg_Attributes$pointOrder = _elm_lang$virtual_dom$VirtualDom$attribute('point-order'); var _elm_lang$svg$Svg_Attributes$patternUnits = _elm_lang$virtual_dom$VirtualDom$attribute('patternUnits'); var _elm_lang$svg$Svg_Attributes$patternTransform = _elm_lang$virtual_dom$VirtualDom$attribute('patternTransform'); var _elm_lang$svg$Svg_Attributes$patternContentUnits = _elm_lang$virtual_dom$VirtualDom$attribute('patternContentUnits'); var _elm_lang$svg$Svg_Attributes$pathLength = _elm_lang$virtual_dom$VirtualDom$attribute('pathLength'); var _elm_lang$svg$Svg_Attributes$path = _elm_lang$virtual_dom$VirtualDom$attribute('path'); var _elm_lang$svg$Svg_Attributes$panose1 = _elm_lang$virtual_dom$VirtualDom$attribute('panose-1'); var _elm_lang$svg$Svg_Attributes$overlineThickness = _elm_lang$virtual_dom$VirtualDom$attribute('overline-thickness'); var _elm_lang$svg$Svg_Attributes$overlinePosition = _elm_lang$virtual_dom$VirtualDom$attribute('overline-position'); var _elm_lang$svg$Svg_Attributes$origin = _elm_lang$virtual_dom$VirtualDom$attribute('origin'); var _elm_lang$svg$Svg_Attributes$orientation = _elm_lang$virtual_dom$VirtualDom$attribute('orientation'); var _elm_lang$svg$Svg_Attributes$orient = _elm_lang$virtual_dom$VirtualDom$attribute('orient'); var _elm_lang$svg$Svg_Attributes$order = _elm_lang$virtual_dom$VirtualDom$attribute('order'); var _elm_lang$svg$Svg_Attributes$operator = _elm_lang$virtual_dom$VirtualDom$attribute('operator'); var _elm_lang$svg$Svg_Attributes$offset = _elm_lang$virtual_dom$VirtualDom$attribute('offset'); var _elm_lang$svg$Svg_Attributes$numOctaves = _elm_lang$virtual_dom$VirtualDom$attribute('numOctaves'); var _elm_lang$svg$Svg_Attributes$name = _elm_lang$virtual_dom$VirtualDom$attribute('name'); var _elm_lang$svg$Svg_Attributes$mode = _elm_lang$virtual_dom$VirtualDom$attribute('mode'); var _elm_lang$svg$Svg_Attributes$min = _elm_lang$virtual_dom$VirtualDom$attribute('min'); var _elm_lang$svg$Svg_Attributes$method = _elm_lang$virtual_dom$VirtualDom$attribute('method'); var _elm_lang$svg$Svg_Attributes$media = _elm_lang$virtual_dom$VirtualDom$attribute('media'); var _elm_lang$svg$Svg_Attributes$max = _elm_lang$virtual_dom$VirtualDom$attribute('max'); var _elm_lang$svg$Svg_Attributes$mathematical = _elm_lang$virtual_dom$VirtualDom$attribute('mathematical'); var _elm_lang$svg$Svg_Attributes$maskUnits = _elm_lang$virtual_dom$VirtualDom$attribute('maskUnits'); var _elm_lang$svg$Svg_Attributes$maskContentUnits = _elm_lang$virtual_dom$VirtualDom$attribute('maskContentUnits'); var _elm_lang$svg$Svg_Attributes$markerWidth = _elm_lang$virtual_dom$VirtualDom$attribute('markerWidth'); var _elm_lang$svg$Svg_Attributes$markerUnits = _elm_lang$virtual_dom$VirtualDom$attribute('markerUnits'); var _elm_lang$svg$Svg_Attributes$markerHeight = _elm_lang$virtual_dom$VirtualDom$attribute('markerHeight'); var _elm_lang$svg$Svg_Attributes$local = _elm_lang$virtual_dom$VirtualDom$attribute('local'); var _elm_lang$svg$Svg_Attributes$limitingConeAngle = _elm_lang$virtual_dom$VirtualDom$attribute('limitingConeAngle'); var _elm_lang$svg$Svg_Attributes$lengthAdjust = _elm_lang$virtual_dom$VirtualDom$attribute('lengthAdjust'); var _elm_lang$svg$Svg_Attributes$lang = _elm_lang$virtual_dom$VirtualDom$attribute('lang'); var _elm_lang$svg$Svg_Attributes$keyTimes = _elm_lang$virtual_dom$VirtualDom$attribute('keyTimes'); var _elm_lang$svg$Svg_Attributes$keySplines = _elm_lang$virtual_dom$VirtualDom$attribute('keySplines'); var _elm_lang$svg$Svg_Attributes$keyPoints = _elm_lang$virtual_dom$VirtualDom$attribute('keyPoints'); var _elm_lang$svg$Svg_Attributes$kernelUnitLength = _elm_lang$virtual_dom$VirtualDom$attribute('kernelUnitLength'); var _elm_lang$svg$Svg_Attributes$kernelMatrix = _elm_lang$virtual_dom$VirtualDom$attribute('kernelMatrix'); var _elm_lang$svg$Svg_Attributes$k4 = _elm_lang$virtual_dom$VirtualDom$attribute('k4'); var _elm_lang$svg$Svg_Attributes$k3 = _elm_lang$virtual_dom$VirtualDom$attribute('k3'); var _elm_lang$svg$Svg_Attributes$k2 = _elm_lang$virtual_dom$VirtualDom$attribute('k2'); var _elm_lang$svg$Svg_Attributes$k1 = _elm_lang$virtual_dom$VirtualDom$attribute('k1'); var _elm_lang$svg$Svg_Attributes$k = _elm_lang$virtual_dom$VirtualDom$attribute('k'); var _elm_lang$svg$Svg_Attributes$intercept = _elm_lang$virtual_dom$VirtualDom$attribute('intercept'); var _elm_lang$svg$Svg_Attributes$in2 = _elm_lang$virtual_dom$VirtualDom$attribute('in2'); var _elm_lang$svg$Svg_Attributes$in_ = _elm_lang$virtual_dom$VirtualDom$attribute('in'); var _elm_lang$svg$Svg_Attributes$ideographic = _elm_lang$virtual_dom$VirtualDom$attribute('ideographic'); var _elm_lang$svg$Svg_Attributes$id = _elm_lang$virtual_dom$VirtualDom$attribute('id'); var _elm_lang$svg$Svg_Attributes$horizOriginY = _elm_lang$virtual_dom$VirtualDom$attribute('horiz-origin-y'); var _elm_lang$svg$Svg_Attributes$horizOriginX = _elm_lang$virtual_dom$VirtualDom$attribute('horiz-origin-x'); var _elm_lang$svg$Svg_Attributes$horizAdvX = _elm_lang$virtual_dom$VirtualDom$attribute('horiz-adv-x'); var _elm_lang$svg$Svg_Attributes$height = _elm_lang$virtual_dom$VirtualDom$attribute('height'); var _elm_lang$svg$Svg_Attributes$hanging = _elm_lang$virtual_dom$VirtualDom$attribute('hanging'); var _elm_lang$svg$Svg_Attributes$gradientUnits = _elm_lang$virtual_dom$VirtualDom$attribute('gradientUnits'); var _elm_lang$svg$Svg_Attributes$gradientTransform = _elm_lang$virtual_dom$VirtualDom$attribute('gradientTransform'); var _elm_lang$svg$Svg_Attributes$glyphRef = _elm_lang$virtual_dom$VirtualDom$attribute('glyphRef'); var _elm_lang$svg$Svg_Attributes$glyphName = _elm_lang$virtual_dom$VirtualDom$attribute('glyph-name'); var _elm_lang$svg$Svg_Attributes$g2 = _elm_lang$virtual_dom$VirtualDom$attribute('g2'); var _elm_lang$svg$Svg_Attributes$g1 = _elm_lang$virtual_dom$VirtualDom$attribute('g1'); var _elm_lang$svg$Svg_Attributes$fy = _elm_lang$virtual_dom$VirtualDom$attribute('fy'); var _elm_lang$svg$Svg_Attributes$fx = _elm_lang$virtual_dom$VirtualDom$attribute('fx'); var _elm_lang$svg$Svg_Attributes$from = _elm_lang$virtual_dom$VirtualDom$attribute('from'); var _elm_lang$svg$Svg_Attributes$format = _elm_lang$virtual_dom$VirtualDom$attribute('format'); var _elm_lang$svg$Svg_Attributes$filterUnits = _elm_lang$virtual_dom$VirtualDom$attribute('filterUnits'); var _elm_lang$svg$Svg_Attributes$filterRes = _elm_lang$virtual_dom$VirtualDom$attribute('filterRes'); var _elm_lang$svg$Svg_Attributes$externalResourcesRequired = _elm_lang$virtual_dom$VirtualDom$attribute('externalResourcesRequired'); var _elm_lang$svg$Svg_Attributes$exponent = _elm_lang$virtual_dom$VirtualDom$attribute('exponent'); var _elm_lang$svg$Svg_Attributes$end = _elm_lang$virtual_dom$VirtualDom$attribute('end'); var _elm_lang$svg$Svg_Attributes$elevation = _elm_lang$virtual_dom$VirtualDom$attribute('elevation'); var _elm_lang$svg$Svg_Attributes$edgeMode = _elm_lang$virtual_dom$VirtualDom$attribute('edgeMode'); var _elm_lang$svg$Svg_Attributes$dy = _elm_lang$virtual_dom$VirtualDom$attribute('dy'); var _elm_lang$svg$Svg_Attributes$dx = _elm_lang$virtual_dom$VirtualDom$attribute('dx'); var _elm_lang$svg$Svg_Attributes$dur = _elm_lang$virtual_dom$VirtualDom$attribute('dur'); var _elm_lang$svg$Svg_Attributes$divisor = _elm_lang$virtual_dom$VirtualDom$attribute('divisor'); var _elm_lang$svg$Svg_Attributes$diffuseConstant = _elm_lang$virtual_dom$VirtualDom$attribute('diffuseConstant'); var _elm_lang$svg$Svg_Attributes$descent = _elm_lang$virtual_dom$VirtualDom$attribute('descent'); var _elm_lang$svg$Svg_Attributes$decelerate = _elm_lang$virtual_dom$VirtualDom$attribute('decelerate'); var _elm_lang$svg$Svg_Attributes$d = _elm_lang$virtual_dom$VirtualDom$attribute('d'); var _elm_lang$svg$Svg_Attributes$cy = _elm_lang$virtual_dom$VirtualDom$attribute('cy'); var _elm_lang$svg$Svg_Attributes$cx = _elm_lang$virtual_dom$VirtualDom$attribute('cx'); var _elm_lang$svg$Svg_Attributes$contentStyleType = _elm_lang$virtual_dom$VirtualDom$attribute('contentStyleType'); var _elm_lang$svg$Svg_Attributes$contentScriptType = _elm_lang$virtual_dom$VirtualDom$attribute('contentScriptType'); var _elm_lang$svg$Svg_Attributes$clipPathUnits = _elm_lang$virtual_dom$VirtualDom$attribute('clipPathUnits'); var _elm_lang$svg$Svg_Attributes$class = _elm_lang$virtual_dom$VirtualDom$attribute('class'); var _elm_lang$svg$Svg_Attributes$capHeight = _elm_lang$virtual_dom$VirtualDom$attribute('cap-height'); var _elm_lang$svg$Svg_Attributes$calcMode = _elm_lang$virtual_dom$VirtualDom$attribute('calcMode'); var _elm_lang$svg$Svg_Attributes$by = _elm_lang$virtual_dom$VirtualDom$attribute('by'); var _elm_lang$svg$Svg_Attributes$bias = _elm_lang$virtual_dom$VirtualDom$attribute('bias'); var _elm_lang$svg$Svg_Attributes$begin = _elm_lang$virtual_dom$VirtualDom$attribute('begin'); var _elm_lang$svg$Svg_Attributes$bbox = _elm_lang$virtual_dom$VirtualDom$attribute('bbox'); var _elm_lang$svg$Svg_Attributes$baseProfile = _elm_lang$virtual_dom$VirtualDom$attribute('baseProfile'); var _elm_lang$svg$Svg_Attributes$baseFrequency = _elm_lang$virtual_dom$VirtualDom$attribute('baseFrequency'); var _elm_lang$svg$Svg_Attributes$azimuth = _elm_lang$virtual_dom$VirtualDom$attribute('azimuth'); var _elm_lang$svg$Svg_Attributes$autoReverse = _elm_lang$virtual_dom$VirtualDom$attribute('autoReverse'); var _elm_lang$svg$Svg_Attributes$attributeType = _elm_lang$virtual_dom$VirtualDom$attribute('attributeType'); var _elm_lang$svg$Svg_Attributes$attributeName = _elm_lang$virtual_dom$VirtualDom$attribute('attributeName'); var _elm_lang$svg$Svg_Attributes$ascent = _elm_lang$virtual_dom$VirtualDom$attribute('ascent'); var _elm_lang$svg$Svg_Attributes$arabicForm = _elm_lang$virtual_dom$VirtualDom$attribute('arabic-form'); var _elm_lang$svg$Svg_Attributes$amplitude = _elm_lang$virtual_dom$VirtualDom$attribute('amplitude'); var _elm_lang$svg$Svg_Attributes$allowReorder = _elm_lang$virtual_dom$VirtualDom$attribute('allowReorder'); var _elm_lang$svg$Svg_Attributes$alphabetic = _elm_lang$virtual_dom$VirtualDom$attribute('alphabetic'); var _elm_lang$svg$Svg_Attributes$additive = _elm_lang$virtual_dom$VirtualDom$attribute('additive'); var _elm_lang$svg$Svg_Attributes$accumulate = _elm_lang$virtual_dom$VirtualDom$attribute('accumulate'); var _elm_lang$svg$Svg_Attributes$accelerate = _elm_lang$virtual_dom$VirtualDom$attribute('accelerate'); var _elm_lang$svg$Svg_Attributes$accentHeight = _elm_lang$virtual_dom$VirtualDom$attribute('accent-height'); var _evancz$elm_markdown$Native_Markdown = function() { // VIRTUAL-DOM WIDGETS function toHtml(options, factList, rawMarkdown) { var model = { options: options, markdown: rawMarkdown }; return _elm_lang$virtual_dom$Native_VirtualDom.custom(factList, model, implementation); } // WIDGET IMPLEMENTATION var implementation = { render: render, diff: diff }; function render(model) { var html = marked(model.markdown, formatOptions(model.options)); var div = document.createElement('div'); div.innerHTML = html; return div; } function diff(a, b) { if (a.model.markdown === b.model.markdown && a.model.options === b.model.options) { return null; } return { applyPatch: applyPatch, data: marked(b.model.markdown, formatOptions(b.model.options)) }; } function applyPatch(domNode, data) { domNode.innerHTML = data; return domNode; } // ACTUAL MARKDOWN PARSER var marked = function() { // catch the `marked` object regardless of the outer environment. // (ex. a CommonJS module compatible environment.) // note that this depends on marked's implementation of environment detection. var module = {}; var exports = module.exports = {}; /** * marked - a markdown parser * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) * https://github.com/chjj/marked * commit cd2f6f5b7091154c5526e79b5f3bfb4d15995a51 */ (function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+block.def.source+")")();block.blockquote=replace(block.blockquote)("def",block.def)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b";block.html=replace(block.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1","\\2")+"|"+block.list.source.replace("\\1","\\3")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm){if(this.options.tables){this.rules=block.tables}else{this.rules=block.gfm}}}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)};Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top,bq){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1){this.tokens.push({type:"space"})}}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]||""});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i ?/gm,"");this.token(cap,top,true);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i1&&b.length>1)){src=cap.slice(i+1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item.charAt(item.length-1)==="\n";if(!loose)loose=next}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false,bq);this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&(cap[1]==="pre"||cap[1]==="script"||cap[1]==="style"),text:cap[0]});continue}if(!bq&&top&&(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;this.renderer=this.options.renderer||new Renderer;this.renderer.options=this.options;if(!this.links){throw new Error("Tokens array requires a `links` property.")}if(this.options.gfm){if(this.options.breaks){this.rules=inline.breaks}else{this.rules=inline.gfm}}else if(this.options.pedantic){this.rules=inline.pedantic}}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1].charAt(6)===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+=this.renderer.link(href,null,text);continue}if(!this.inLink&&(cap=this.rules.url.exec(src))){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+=this.renderer.link(href,null,text);continue}if(cap=this.rules.tag.exec(src)){if(!this.inLink&&/^/i.test(cap[0])){this.inLink=false}src=src.substring(cap[0].length);out+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(cap[0]):escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);this.inLink=true;out+=this.outputLink(cap,{href:cap[2],title:cap[3]});this.inLink=false;continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0].charAt(0);src=cap[0].substring(1)+src;continue}this.inLink=true;out+=this.outputLink(cap,link);this.inLink=false;continue}if(cap=this.rules.strong.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.strong(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.em(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.codespan(escape(cap[2],true));continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.br();continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.del(this.output(cap[1]));continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.text(escape(this.smartypants(cap[0])));continue}if(src){throw new Error("Infinite loop on byte: "+src.charCodeAt(0))}}return out};InlineLexer.prototype.outputLink=function(cap,link){var href=escape(link.href),title=link.title?escape(link.title):null;return cap[0].charAt(0)!=="!"?this.renderer.link(href,title,this.output(cap[1])):this.renderer.image(href,title,escape(cap[1]))};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014\/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014\/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")};InlineLexer.prototype.mangle=function(text){if(!this.options.mangle)return text;var out="",l=text.length,i=0,ch;for(;i.5){ch="x"+ch.toString(16)}out+="&#"+ch+";"}return out};function Renderer(options){this.options=options||{}}Renderer.prototype.code=function(code,lang,escaped){if(this.options.highlight){var out=this.options.highlight(code,lang);if(out!=null&&out!==code){escaped=true;code=out}}if(!lang){return"
"+(escaped?code:escape(code,true))+"\n
"}return'
'+(escaped?code:escape(code,true))+"\n
\n"};Renderer.prototype.blockquote=function(quote){return"
\n"+quote+"
\n"};Renderer.prototype.html=function(html){return html};Renderer.prototype.heading=function(text,level,raw){return"'+text+"\n"};Renderer.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"};Renderer.prototype.list=function(body,ordered){var type=ordered?"ol":"ul";return"<"+type+">\n"+body+"\n"};Renderer.prototype.listitem=function(text){return"
  • "+text+"
  • \n"};Renderer.prototype.paragraph=function(text){return"

    "+text+"

    \n"};Renderer.prototype.table=function(header,body){return"\n"+"\n"+header+"\n"+"\n"+body+"\n"+"
    \n"};Renderer.prototype.tablerow=function(content){return"\n"+content+"\n"};Renderer.prototype.tablecell=function(content,flags){var type=flags.header?"th":"td";var tag=flags.align?"<"+type+' style="text-align:'+flags.align+'">':"<"+type+">";return tag+content+"\n"};Renderer.prototype.strong=function(text){return""+text+""};Renderer.prototype.em=function(text){return""+text+""};Renderer.prototype.codespan=function(text){return""+text+""};Renderer.prototype.br=function(){return this.options.xhtml?"
    ":"
    "};Renderer.prototype.del=function(text){return""+text+""};Renderer.prototype.link=function(href,title,text){if(this.options.sanitize){try{var prot=decodeURIComponent(unescape(href)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(prot.indexOf("javascript:")===0||prot.indexOf("vbscript:")===0||prot.indexOf("data:")===0){return""}}var out='
    ";return out};Renderer.prototype.image=function(href,title,text){var out=''+text+'":">";return out};Renderer.prototype.text=function(text){return text};function Parser(options){this.tokens=[];this.token=null;this.options=options||marked.defaults;this.options.renderer=this.options.renderer||new Renderer;this.renderer=this.options.renderer;this.renderer.options=this.options}Parser.parse=function(src,options,renderer){var parser=new Parser(options,renderer);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options,this.renderer);this.tokens=src.reverse();var out="";while(this.next()){out+=this.tok()}return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;while(this.peek().type==="text"){body+="\n"+this.next().text}return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case"space":{return""}case"hr":{return this.renderer.hr()}case"heading":{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text)}case"code":{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped)}case"table":{var header="",body="",i,row,cell,flags,j;cell="";for(i=0;i/g,">").replace(/"/g,""").replace(/'/g,"'")}function unescape(html){return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g,function(_,n){n=n.toLowerCase();if(n==="colon")return":";if(n.charAt(0)==="#"){return n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1))}return""})}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i=1,target,key;for(;iAn error occured:

    "+escape(e.message+"",true)+"
    "}throw e}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,sanitizer:null,mangle:true,smartLists:false,silent:false,highlight:null,langPrefix:"lang-",smartypants:false,headerPrefix:"",renderer:new Renderer,xhtml:false};marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;if(typeof module!=="undefined"&&typeof exports==="object"){module.exports=marked}else if(typeof define==="function"&&define.amd){define(function(){return marked})}else{this.marked=marked}}).call(function(){return this||(typeof window!=="undefined"?window:global)}()); return module.exports; }(); // FORMAT OPTIONS FOR MARKED IMPLEMENTATION function formatOptions(options) { function toHighlight(code, lang) { if (!lang && options.defaultHighlighting.ctor === 'Just') { lang = options.defaultHighlighting._0; } if (typeof hljs !== 'undefined' && lang && hljs.listLanguages().indexOf(lang) >= 0) { return hljs.highlight(lang, code, true).value; } return code; } var gfm = options.githubFlavored; if (gfm.ctor === 'Just') { return { highlight: toHighlight, gfm: true, tables: gfm._0.tables, breaks: gfm._0.breaks, sanitize: options.sanitize, smartypants: options.smartypants }; } return { highlight: toHighlight, gfm: false, tables: false, breaks: false, sanitize: options.sanitize, smartypants: options.smartypants }; } // EXPORTS return { toHtml: F3(toHtml) }; }(); var _evancz$elm_markdown$Markdown$toHtmlWith = _evancz$elm_markdown$Native_Markdown.toHtml; var _evancz$elm_markdown$Markdown$defaultOptions = { githubFlavored: _elm_lang$core$Maybe$Just( {tables: false, breaks: false}), defaultHighlighting: _elm_lang$core$Maybe$Nothing, sanitize: false, smartypants: false }; var _evancz$elm_markdown$Markdown$toHtml = F2( function (attrs, string) { return A3(_evancz$elm_markdown$Native_Markdown.toHtml, _evancz$elm_markdown$Markdown$defaultOptions, attrs, string); }); var _evancz$elm_markdown$Markdown$Options = F4( function (a, b, c, d) { return {githubFlavored: a, defaultHighlighting: b, sanitize: c, smartypants: d}; }); var _evancz$url_parser$UrlParser$toKeyValuePair = function (segment) { var _p0 = A2(_elm_lang$core$String$split, '=', segment); if (((_p0.ctor === '::') && (_p0._1.ctor === '::')) && (_p0._1._1.ctor === '[]')) { return A3( _elm_lang$core$Maybe$map2, F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; }), _elm_lang$http$Http$decodeUri(_p0._0), _elm_lang$http$Http$decodeUri(_p0._1._0)); } else { return _elm_lang$core$Maybe$Nothing; } }; var _evancz$url_parser$UrlParser$parseParams = function (queryString) { return _elm_lang$core$Dict$fromList( A2( _elm_lang$core$List$filterMap, _evancz$url_parser$UrlParser$toKeyValuePair, A2( _elm_lang$core$String$split, '&', A2(_elm_lang$core$String$dropLeft, 1, queryString)))); }; var _evancz$url_parser$UrlParser$splitUrl = function (url) { var _p1 = A2(_elm_lang$core$String$split, '/', url); if ((_p1.ctor === '::') && (_p1._0 === '')) { return _p1._1; } else { return _p1; } }; var _evancz$url_parser$UrlParser$parseHelp = function (states) { parseHelp: while (true) { var _p2 = states; if (_p2.ctor === '[]') { return _elm_lang$core$Maybe$Nothing; } else { var _p4 = _p2._0; var _p3 = _p4.unvisited; if (_p3.ctor === '[]') { return _elm_lang$core$Maybe$Just(_p4.value); } else { if ((_p3._0 === '') && (_p3._1.ctor === '[]')) { return _elm_lang$core$Maybe$Just(_p4.value); } else { var _v4 = _p2._1; states = _v4; continue parseHelp; } } } } }; var _evancz$url_parser$UrlParser$parse = F3( function (_p5, url, params) { var _p6 = _p5; return _evancz$url_parser$UrlParser$parseHelp( _p6._0( { visited: {ctor: '[]'}, unvisited: _evancz$url_parser$UrlParser$splitUrl(url), params: params, value: _elm_lang$core$Basics$identity })); }); var _evancz$url_parser$UrlParser$parseHash = F2( function (parser, location) { return A3( _evancz$url_parser$UrlParser$parse, parser, A2(_elm_lang$core$String$dropLeft, 1, location.hash), _evancz$url_parser$UrlParser$parseParams(location.search)); }); var _evancz$url_parser$UrlParser$parsePath = F2( function (parser, location) { return A3( _evancz$url_parser$UrlParser$parse, parser, location.pathname, _evancz$url_parser$UrlParser$parseParams(location.search)); }); var _evancz$url_parser$UrlParser$intParamHelp = function (maybeValue) { var _p7 = maybeValue; if (_p7.ctor === 'Nothing') { return _elm_lang$core$Maybe$Nothing; } else { return _elm_lang$core$Result$toMaybe( _elm_lang$core$String$toInt(_p7._0)); } }; var _evancz$url_parser$UrlParser$mapHelp = F2( function (func, _p8) { var _p9 = _p8; return { visited: _p9.visited, unvisited: _p9.unvisited, params: _p9.params, value: func(_p9.value) }; }); var _evancz$url_parser$UrlParser$State = F4( function (a, b, c, d) { return {visited: a, unvisited: b, params: c, value: d}; }); var _evancz$url_parser$UrlParser$Parser = function (a) { return {ctor: 'Parser', _0: a}; }; var _evancz$url_parser$UrlParser$s = function (str) { return _evancz$url_parser$UrlParser$Parser( function (_p10) { var _p11 = _p10; var _p12 = _p11.unvisited; if (_p12.ctor === '[]') { return {ctor: '[]'}; } else { var _p13 = _p12._0; return _elm_lang$core$Native_Utils.eq(_p13, str) ? { ctor: '::', _0: A4( _evancz$url_parser$UrlParser$State, {ctor: '::', _0: _p13, _1: _p11.visited}, _p12._1, _p11.params, _p11.value), _1: {ctor: '[]'} } : {ctor: '[]'}; } }); }; var _evancz$url_parser$UrlParser$custom = F2( function (tipe, stringToSomething) { return _evancz$url_parser$UrlParser$Parser( function (_p14) { var _p15 = _p14; var _p16 = _p15.unvisited; if (_p16.ctor === '[]') { return {ctor: '[]'}; } else { var _p18 = _p16._0; var _p17 = stringToSomething(_p18); if (_p17.ctor === 'Ok') { return { ctor: '::', _0: A4( _evancz$url_parser$UrlParser$State, {ctor: '::', _0: _p18, _1: _p15.visited}, _p16._1, _p15.params, _p15.value(_p17._0)), _1: {ctor: '[]'} }; } else { return {ctor: '[]'}; } } }); }); var _evancz$url_parser$UrlParser$string = A2(_evancz$url_parser$UrlParser$custom, 'STRING', _elm_lang$core$Result$Ok); var _evancz$url_parser$UrlParser$int = A2(_evancz$url_parser$UrlParser$custom, 'NUMBER', _elm_lang$core$String$toInt); var _evancz$url_parser$UrlParser_ops = _evancz$url_parser$UrlParser_ops || {}; _evancz$url_parser$UrlParser_ops[''] = F2( function (_p20, _p19) { var _p21 = _p20; var _p22 = _p19; return _evancz$url_parser$UrlParser$Parser( function (state) { return A2( _elm_lang$core$List$concatMap, _p22._0, _p21._0(state)); }); }); var _evancz$url_parser$UrlParser$map = F2( function (subValue, _p23) { var _p24 = _p23; return _evancz$url_parser$UrlParser$Parser( function (_p25) { var _p26 = _p25; return A2( _elm_lang$core$List$map, _evancz$url_parser$UrlParser$mapHelp(_p26.value), _p24._0( {visited: _p26.visited, unvisited: _p26.unvisited, params: _p26.params, value: subValue})); }); }); var _evancz$url_parser$UrlParser$oneOf = function (parsers) { return _evancz$url_parser$UrlParser$Parser( function (state) { return A2( _elm_lang$core$List$concatMap, function (_p27) { var _p28 = _p27; return _p28._0(state); }, parsers); }); }; var _evancz$url_parser$UrlParser$top = _evancz$url_parser$UrlParser$Parser( function (state) { return { ctor: '::', _0: state, _1: {ctor: '[]'} }; }); var _evancz$url_parser$UrlParser_ops = _evancz$url_parser$UrlParser_ops || {}; _evancz$url_parser$UrlParser_ops[''] = F2( function (_p30, _p29) { var _p31 = _p30; var _p32 = _p29; return _evancz$url_parser$UrlParser$Parser( function (state) { return A2( _elm_lang$core$List$concatMap, _p32._0, _p31._0(state)); }); }); var _evancz$url_parser$UrlParser$QueryParser = function (a) { return {ctor: 'QueryParser', _0: a}; }; var _evancz$url_parser$UrlParser$customParam = F2( function (key, func) { return _evancz$url_parser$UrlParser$QueryParser( function (_p33) { var _p34 = _p33; var _p35 = _p34.params; return { ctor: '::', _0: A4( _evancz$url_parser$UrlParser$State, _p34.visited, _p34.unvisited, _p35, _p34.value( func( A2(_elm_lang$core$Dict$get, key, _p35)))), _1: {ctor: '[]'} }; }); }); var _evancz$url_parser$UrlParser$stringParam = function (name) { return A2(_evancz$url_parser$UrlParser$customParam, name, _elm_lang$core$Basics$identity); }; var _evancz$url_parser$UrlParser$intParam = function (name) { return A2(_evancz$url_parser$UrlParser$customParam, name, _evancz$url_parser$UrlParser$intParamHelp); }; var _ggb$numeral_elm$Language$Delimiters = F2( function (a, b) { return {thousands: a, decimal: b}; }); var _ggb$numeral_elm$Language$Abbreviations = F4( function (a, b, c, d) { return {thousand: a, million: b, billion: c, trillion: d}; }); var _ggb$numeral_elm$Language$Currency = function (a) { return {symbol: a}; }; var _ggb$numeral_elm$Language$Language = F4( function (a, b, c, d) { return {delimiters: a, abbreviations: b, ordinal: c, currency: d}; }); var _ggb$numeral_elm$Languages_English$englishOrdinal = function (number) { var number1 = _elm_lang$core$Basics$floor(number); var b = A2(_elm_lang$core$Basics_ops['%'], number1, 10); return _elm_lang$core$Native_Utils.eq( _elm_lang$core$Basics$floor( _elm_lang$core$Basics$toFloat( A2(_elm_lang$core$Basics_ops['%'], number1, 100)) / 10), 1) ? 'th' : (_elm_lang$core$Native_Utils.eq(b, 1) ? 'st' : (_elm_lang$core$Native_Utils.eq(b, 2) ? 'nd' : (_elm_lang$core$Native_Utils.eq(b, 3) ? 'rd' : 'th'))); }; var _ggb$numeral_elm$Languages_English$lang = { delimiters: {thousands: ',', decimal: '.'}, abbreviations: {thousand: 'k', million: 'm', billion: 'b', trillion: 't'}, ordinal: _ggb$numeral_elm$Languages_English$englishOrdinal, currency: {symbol: '$'} }; var _ggb$numeral_elm$Numeral$createFinalString = function (_p0) { var _p1 = _p0; var _p2 = _p1.parens; return A2( _elm_lang$core$String$join, '', { ctor: '::', _0: _elm_lang$core$Tuple$first(_p2), _1: { ctor: '::', _0: _p1.minus, _1: { ctor: '::', _0: _p1.plus, _1: { ctor: '::', _0: _p1.word, _1: { ctor: '::', _0: _p1.decimal, _1: { ctor: '::', _0: _p1.ordinal, _1: { ctor: '::', _0: _p1.abbreviation, _1: { ctor: '::', _0: _p1.bytes, _1: { ctor: '::', _0: _p1.customSuffix, _1: { ctor: '::', _0: _elm_lang$core$Tuple$second(_p2), _1: {ctor: '[]'} } } } } } } } } } }); }; var _ggb$numeral_elm$Numeral$hasPlus = function (numeral) { return ((!numeral.neg) && numeral.signed) ? _elm_lang$core$Native_Utils.update( numeral, {plus: '+'}) : numeral; }; var _ggb$numeral_elm$Numeral$hasMinus = function (numeral) { return ((!numeral.negP) && numeral.neg) ? _elm_lang$core$Native_Utils.update( numeral, {minus: '-'}) : numeral; }; var _ggb$numeral_elm$Numeral$createParens = function (numeral) { return (numeral.negP && numeral.neg) ? _elm_lang$core$Native_Utils.update( numeral, { parens: {ctor: '_Tuple2', _0: '(', _1: ')'} }) : numeral; }; var _ggb$numeral_elm$Numeral$checkIfNegative = function (numeral) { return A2(_elm_lang$core$String$contains, '-', numeral.word) ? _elm_lang$core$Native_Utils.update( numeral, { word: A3( _elm_lang$core$String$slice, 1, _elm_lang$core$String$length(numeral.word), numeral.word), neg: true }) : numeral; }; var _ggb$numeral_elm$Numeral$processDecimal = function (numeral) { var d = numeral.decimal; var result = A2( _elm_lang$core$Maybe$withDefault, 1, _elm_lang$core$Result$toMaybe( _elm_lang$core$String$toInt( A3( _elm_lang$core$String$slice, 1, _elm_lang$core$String$length(d), d)))); return (numeral.optionalDecimal && _elm_lang$core$Native_Utils.eq(result, 0)) ? _elm_lang$core$Native_Utils.update( numeral, {decimal: ''}) : _elm_lang$core$Native_Utils.update( numeral, {decimal: d}); }; var _ggb$numeral_elm$Numeral$processLeadingZeros = function (numeral) { var w = _elm_lang$core$String$length( A2( _elm_lang$core$Maybe$withDefault, '', _elm_lang$core$List$head( A2(_elm_lang$core$String$split, '.', numeral.word)))); var n = numeral.leadingZeros - w; var prefix = A2(_elm_lang$core$String$repeat, n, '0'); return _elm_lang$core$Native_Utils.update( numeral, { word: A2(_elm_lang$core$Basics_ops['++'], prefix, numeral.word) }); }; var _ggb$numeral_elm$Numeral$getPrecision = function (numeral) { var splitted = A2(_elm_lang$core$String$split, '.', numeral.format); var leadingZeros = _elm_lang$core$String$length( A2( _elm_lang$core$Maybe$withDefault, '', _elm_lang$core$List$head(splitted))); var leadingZeros_ = A2(_elm_lang$core$String$contains, ',', numeral.format) ? 0 : leadingZeros; var precision = A2( _elm_lang$core$Maybe$withDefault, '', _elm_lang$core$List$head( A2(_elm_lang$core$List$drop, 1, splitted))); return _elm_lang$core$Native_Utils.update( numeral, {precision: precision, leadingZeros: leadingZeros_}); }; var _ggb$numeral_elm$Numeral$processWord = function (numeral) { var w = A2( _elm_lang$core$Maybe$withDefault, '', _elm_lang$core$List$head( A2(_elm_lang$core$String$split, '.', numeral.strValue))); return _elm_lang$core$Native_Utils.update( numeral, {word: w}); }; var _ggb$numeral_elm$Numeral$updateStringValue = function (numeral) { return _elm_lang$core$Native_Utils.update( numeral, { strValue: _elm_lang$core$Basics$toString(numeral.value) }); }; var _ggb$numeral_elm$Numeral$addThousandsDelimiter = F2( function (lang, word) { return A4( _elm_lang$core$Regex$replace, _elm_lang$core$Regex$All, _elm_lang$core$Regex$regex('(\\d)(?=(\\d{3})+(?!\\d))'), function (_p3) { var _p4 = _p3; return A2(_elm_lang$core$Basics_ops['++'], _p4.match, lang.delimiters.thousands); }, word); }); var _ggb$numeral_elm$Numeral$checkThousandsDelimiter = function (numeral) { return A2(_elm_lang$core$String$contains, ',', numeral.format) ? _elm_lang$core$Native_Utils.update( numeral, { word: A2(_ggb$numeral_elm$Numeral$addThousandsDelimiter, numeral.language, numeral.word) }) : numeral; }; var _ggb$numeral_elm$Numeral$toFixed = F2( function (precision, value) { var pad = function (num) { var _p5 = num; _v2_2: do { if (_p5.ctor === '::') { if (_p5._1.ctor === '::') { if (_p5._1._1.ctor === '[]') { return { ctor: '::', _0: _p5._0, _1: { ctor: '::', _0: A3( _elm_lang$core$String$padRight, precision, _elm_lang$core$Native_Utils.chr('0'), _p5._1._0), _1: {ctor: '[]'} } }; } else { break _v2_2; } } else { return { ctor: '::', _0: _p5._0, _1: { ctor: '::', _0: A3( _elm_lang$core$String$padRight, precision, _elm_lang$core$Native_Utils.chr('0'), ''), _1: {ctor: '[]'} } }; } } else { break _v2_2; } } while(false); return _p5; }; var power = Math.pow( _elm_lang$core$Basics$toFloat(10), _elm_lang$core$Basics$toFloat(precision)); return A2( _elm_lang$core$String$join, '.', pad( A2( _elm_lang$core$String$split, '.', _elm_lang$core$Basics$toString( _elm_lang$core$Basics$toFloat( _elm_lang$core$Basics$round((value * power) + 1.0e-2)) / power)))); }); var _ggb$numeral_elm$Numeral$checkForCustomSuffix = function (numeral) { var hasSuffix = _elm_lang$core$List$head( A3( _elm_lang$core$Regex$find, _elm_lang$core$Regex$All, _elm_lang$core$Regex$regex('\\[\\D+\\]$'), numeral.format)); var _p6 = hasSuffix; if (_p6.ctor === 'Nothing') { return numeral; } else { var _p9 = _p6._0.match; return _elm_lang$core$Native_Utils.update( numeral, { format: A4( _elm_lang$core$Regex$replace, _elm_lang$core$Regex$All, _elm_lang$core$Regex$regex( _elm_lang$core$Regex$escape(_p9)), function (_p7) { return ''; }, numeral.format), customSuffix: A4( _elm_lang$core$Regex$replace, _elm_lang$core$Regex$All, _elm_lang$core$Regex$regex('\\[|\\]'), function (_p8) { return ''; }, _p9) }); } }; var _ggb$numeral_elm$Numeral$checkOptionalDec = function (numeral) { return A2(_elm_lang$core$String$contains, '[.]', numeral.format) ? _elm_lang$core$Native_Utils.update( numeral, { format: A4( _elm_lang$core$Regex$replace, _elm_lang$core$Regex$All, _elm_lang$core$Regex$regex( _elm_lang$core$Regex$escape('[.]')), function (_p10) { return '.'; }, numeral.format), optionalDecimal: true }) : numeral; }; var _ggb$numeral_elm$Numeral$formatTime = F4( function (lang, format, value, strValue) { var hours = _elm_lang$core$Basics$toFloat( _elm_lang$core$Basics$floor((value / 60) / 60)); var minutes = _elm_lang$core$Basics$toFloat( _elm_lang$core$Basics$floor((value - ((hours * 60) * 60)) / 60)); var seconds = _elm_lang$core$Basics$round((value - ((hours * 60) * 60)) - (minutes * 60)); var hasOneDigit = function (val) { return (_elm_lang$core$Native_Utils.cmp( _elm_lang$core$String$length(val), 2) < 0) ? A2(_elm_lang$core$Basics_ops['++'], '0', val) : val; }; return A2( _elm_lang$core$String$join, ':', { ctor: '::', _0: _elm_lang$core$Basics$toString(hours), _1: { ctor: '::', _0: hasOneDigit( _elm_lang$core$Basics$toString(minutes)), _1: { ctor: '::', _0: hasOneDigit( _elm_lang$core$Basics$toString(seconds)), _1: {ctor: '[]'} } } }); }); var _ggb$numeral_elm$Numeral$emptyReplace = function (str) { return A3( _elm_lang$core$Regex$replace, _elm_lang$core$Regex$All, _elm_lang$core$Regex$regex(str), function (_p11) { return ''; }); }; var _ggb$numeral_elm$Numeral$formatWithoutCurrency = function (format) { return A2(_elm_lang$core$String$contains, ' $', format) ? { ctor: '_Tuple2', _0: ' ', _1: A2(_ggb$numeral_elm$Numeral$emptyReplace, ' \\$', format) } : (A2(_elm_lang$core$String$contains, '$ ', format) ? { ctor: '_Tuple2', _0: ' ', _1: A2(_ggb$numeral_elm$Numeral$emptyReplace, '\\$ ', format) } : { ctor: '_Tuple2', _0: '', _1: A2(_ggb$numeral_elm$Numeral$emptyReplace, '\\$', format) }); }; var _ggb$numeral_elm$Numeral$formatWithoutPercent = function (format) { return A2(_elm_lang$core$String$contains, ' %', format) ? { ctor: '_Tuple2', _0: ' ', _1: A2(_ggb$numeral_elm$Numeral$emptyReplace, ' %', format) } : { ctor: '_Tuple2', _0: '', _1: A2(_ggb$numeral_elm$Numeral$emptyReplace, '%', format) }; }; var _ggb$numeral_elm$Numeral$checkParensAndSign = function (numeral) { return A2(_elm_lang$core$String$contains, '(', numeral.format) ? _elm_lang$core$Native_Utils.update( numeral, { format: A3(_elm_lang$core$String$slice, 1, -1, numeral.format), negP: true, signed: false }) : (A2(_elm_lang$core$String$contains, '+', numeral.format) ? _elm_lang$core$Native_Utils.update( numeral, { format: A2(_ggb$numeral_elm$Numeral$emptyReplace, '\\+', numeral.format), negP: false, signed: true }) : numeral); }; var _ggb$numeral_elm$Numeral$checkAbbreviation = function (numeral) { var _p12 = numeral; var language = _p12.language; var format = _p12.format; var value = _p12.value; var abbrK = A2(_elm_lang$core$String$contains, 'aK', format); var abbrM = A2(_elm_lang$core$String$contains, 'aM', format); var abbrB = A2(_elm_lang$core$String$contains, 'aB', format); var abbrT = A2(_elm_lang$core$String$contains, 'aT', format); var abbrForce = !(abbrK || (abbrM || (abbrB || abbrT))); var absValue = _elm_lang$core$Basics$abs(value); var _p13 = A2(_elm_lang$core$String$contains, ' a', format) ? { ctor: '_Tuple2', _0: ' ', _1: A2(_ggb$numeral_elm$Numeral$emptyReplace, ' a', format) } : { ctor: '_Tuple2', _0: '', _1: A2(_ggb$numeral_elm$Numeral$emptyReplace, 'a', format) }; var abbr = _p13._0; var format1 = _p13._1; return (!A2(_elm_lang$core$String$contains, 'a', format)) ? numeral : ((((_elm_lang$core$Native_Utils.cmp( absValue, Math.pow(10, 12)) > -1) && abbrForce) || abbrT) ? _elm_lang$core$Native_Utils.update( numeral, { format: format1, abbreviation: A2(_elm_lang$core$Basics_ops['++'], abbr, language.abbreviations.trillion), value: value / Math.pow(10, 12) }) : ((((_elm_lang$core$Native_Utils.cmp( absValue, Math.pow(10, 12)) < 0) && ((_elm_lang$core$Native_Utils.cmp( absValue, Math.pow(10, 9)) > -1) && abbrForce)) || abbrB) ? _elm_lang$core$Native_Utils.update( numeral, { format: format1, abbreviation: A2(_elm_lang$core$Basics_ops['++'], abbr, language.abbreviations.billion), value: value / Math.pow(10, 9) }) : ((((_elm_lang$core$Native_Utils.cmp( absValue, Math.pow(10, 9)) < 0) && ((_elm_lang$core$Native_Utils.cmp( absValue, Math.pow(10, 6)) > -1) && abbrForce)) || abbrM) ? _elm_lang$core$Native_Utils.update( numeral, { format: format1, abbreviation: A2(_elm_lang$core$Basics_ops['++'], abbr, language.abbreviations.million), value: value / Math.pow(10, 6) }) : ((((_elm_lang$core$Native_Utils.cmp( absValue, Math.pow(10, 6)) < 0) && ((_elm_lang$core$Native_Utils.cmp( absValue, Math.pow(10, 3)) > -1) && abbrForce)) || abbrK) ? _elm_lang$core$Native_Utils.update( numeral, { format: format1, abbreviation: A2(_elm_lang$core$Basics_ops['++'], abbr, language.abbreviations.thousand), value: value / Math.pow(10, 3) }) : _elm_lang$core$Native_Utils.update( numeral, {format: format1, abbreviation: abbr}))))); }; var _ggb$numeral_elm$Numeral$checkOrdinal = function (numeral) { var _p14 = numeral; var language = _p14.language; var format = _p14.format; var value = _p14.value; var _p15 = A2(_elm_lang$core$String$contains, ' o', format) ? { ctor: '_Tuple2', _0: ' ', _1: A2(_ggb$numeral_elm$Numeral$emptyReplace, ' o', format) } : { ctor: '_Tuple2', _0: '', _1: A2(_ggb$numeral_elm$Numeral$emptyReplace, 'o', format) }; var ord = _p15._0; var format1 = _p15._1; return A2(_elm_lang$core$String$contains, 'o', format) ? _elm_lang$core$Native_Utils.update( numeral, { format: format1, ordinal: A2( _elm_lang$core$Basics_ops['++'], ord, numeral.language.ordinal(value)) }) : numeral; }; var _ggb$numeral_elm$Numeral$toFixedWithOptional = F2( function (prs, value) { var _p16 = prs; _v4_2: do { if (_p16.ctor === '::') { if (_p16._1.ctor === '::') { if (_p16._1._1.ctor === '[]') { var _p17 = _p16._1._0; return A2( _ggb$numeral_elm$Numeral$emptyReplace, A2( _elm_lang$core$Basics_ops['++'], '0{1,', A2( _elm_lang$core$Basics_ops['++'], _elm_lang$core$Basics$toString(_p17), '}$')), A2(_ggb$numeral_elm$Numeral$toFixed, _p16._0 + _p17, value)); } else { break _v4_2; } } else { return A2(_ggb$numeral_elm$Numeral$toFixed, _p16._0, value); } } else { break _v4_2; } } while(false); return _elm_lang$core$Basics$toString(value); }); var _ggb$numeral_elm$Numeral$processPrecision = function (numeral) { var _p18 = numeral; var language = _p18.language; var format = _p18.format; var value = _p18.value; var precision = _p18.precision; var fst = A2(_elm_lang$core$String$contains, '[', precision) ? A3( _elm_lang$core$Basics$flip, _ggb$numeral_elm$Numeral$toFixedWithOptional, value, A2( _elm_lang$core$List$take, 2, A2( _elm_lang$core$List$map, _elm_lang$core$String$length, A2( _elm_lang$core$String$split, '[', A2(_ggb$numeral_elm$Numeral$emptyReplace, ']', precision))))) : A2( _ggb$numeral_elm$Numeral$toFixed, _elm_lang$core$String$length(precision), value); var w = A2( _elm_lang$core$Maybe$withDefault, '', _elm_lang$core$List$head( A2(_elm_lang$core$String$split, '.', fst))); var snd = function () { var _p19 = A2(_elm_lang$core$String$split, '.', fst); if (((_p19.ctor === '::') && (_p19._1.ctor === '::')) && (_p19._1._1.ctor === '[]')) { var _p20 = _p19._1._0; return (_elm_lang$core$Native_Utils.cmp( _elm_lang$core$String$length(_p20), 0) > 0) ? A2(_elm_lang$core$Basics_ops['++'], language.delimiters.decimal, _p20) : ''; } else { return ''; } }(); return _elm_lang$core$Native_Utils.eq(precision, '') ? _elm_lang$core$Native_Utils.update( numeral, {word: w, decimal: ''}) : _elm_lang$core$Native_Utils.update( numeral, {word: w, decimal: snd}); }; var _ggb$numeral_elm$Numeral$indexOf = F2( function (part, word) { return A2( _elm_lang$core$Maybe$withDefault, -1, _elm_lang$core$List$head( A2(_elm_lang$core$String$indexes, part, word))); }); var _ggb$numeral_elm$Numeral$createFinalWord = function (numeral) { return _elm_lang$core$Native_Utils.eq( A2(_ggb$numeral_elm$Numeral$indexOf, '.', numeral.format), 0) ? _elm_lang$core$Native_Utils.update( numeral, {word: ''}) : numeral; }; var _ggb$numeral_elm$Numeral$suffixes = _elm_lang$core$Array$fromList( { ctor: '::', _0: 'B', _1: { ctor: '::', _0: 'KB', _1: { ctor: '::', _0: 'MB', _1: { ctor: '::', _0: 'GB', _1: { ctor: '::', _0: 'TB', _1: { ctor: '::', _0: 'PB', _1: { ctor: '::', _0: 'EB', _1: { ctor: '::', _0: 'ZB', _1: { ctor: '::', _0: 'YB', _1: {ctor: '[]'} } } } } } } } } }); var _ggb$numeral_elm$Numeral$checkByte = function (numeral) { var _p21 = numeral; var format = _p21.format; var value = _p21.value; var _p22 = A2(_elm_lang$core$String$contains, ' b', format) ? { ctor: '_Tuple2', _0: ' ', _1: A2(_ggb$numeral_elm$Numeral$emptyReplace, ' b', format) } : { ctor: '_Tuple2', _0: '', _1: A2(_ggb$numeral_elm$Numeral$emptyReplace, 'b', format) }; var bytes = _p22._0; var format1 = _p22._1; var suffixIndex1 = function (power) { suffixIndex1: while (true) { var maxValue = Math.pow(1024, power + 1); var minValue = Math.pow(1024, power); if ((_elm_lang$core$Native_Utils.cmp(value, minValue) > -1) && (_elm_lang$core$Native_Utils.cmp(value, maxValue) < 0)) { return (_elm_lang$core$Native_Utils.cmp(minValue, 0) > 0) ? {ctor: '_Tuple2', _0: power, _1: value / minValue} : {ctor: '_Tuple2', _0: power, _1: value}; } else { if (_elm_lang$core$Native_Utils.cmp(power, 10) < 0) { var _v6 = power + 1; power = _v6; continue suffixIndex1; } else { return {ctor: '_Tuple2', _0: -1, _1: value}; } } } }; var _p23 = suffixIndex1(0); var suffixIndex = _p23._0; var value1 = _p23._1; var suffix = A2( _elm_lang$core$Maybe$withDefault, '', A2(_elm_lang$core$Array$get, suffixIndex, _ggb$numeral_elm$Numeral$suffixes)); return A2(_elm_lang$core$String$contains, 'b', format) ? _elm_lang$core$Native_Utils.update( numeral, { format: format1, value: value1, bytes: A2(_elm_lang$core$Basics_ops['++'], bytes, suffix) }) : numeral; }; var _ggb$numeral_elm$Numeral$formatNumber = function (numeral) { return _ggb$numeral_elm$Numeral$createFinalString( _ggb$numeral_elm$Numeral$hasPlus( _ggb$numeral_elm$Numeral$hasMinus( _ggb$numeral_elm$Numeral$createParens( _ggb$numeral_elm$Numeral$createFinalWord( _ggb$numeral_elm$Numeral$checkIfNegative( _ggb$numeral_elm$Numeral$checkThousandsDelimiter( _ggb$numeral_elm$Numeral$processDecimal( _ggb$numeral_elm$Numeral$processLeadingZeros( _ggb$numeral_elm$Numeral$processPrecision( _ggb$numeral_elm$Numeral$getPrecision( _ggb$numeral_elm$Numeral$processWord( _ggb$numeral_elm$Numeral$updateStringValue( _ggb$numeral_elm$Numeral$checkOptionalDec( _ggb$numeral_elm$Numeral$checkOrdinal( _ggb$numeral_elm$Numeral$checkByte( _ggb$numeral_elm$Numeral$checkAbbreviation( _ggb$numeral_elm$Numeral$checkForCustomSuffix( _ggb$numeral_elm$Numeral$checkParensAndSign(numeral))))))))))))))))))); }; var _ggb$numeral_elm$Numeral$empty = F3( function (lang, format, value) { return { language: lang, format: format, value: value, word: '', strValue: _elm_lang$core$Basics$toString(value), signed: false, neg: false, negP: false, customSuffix: '', abbreviation: '', bytes: '', ordinal: '', decimal: '', optionalDecimal: false, parens: {ctor: '_Tuple2', _0: '', _1: ''}, precision: '', leadingZeros: 0, minus: '', plus: '' }; }); var _ggb$numeral_elm$Numeral$formatCurrency = F4( function (lang, format, value, strValue) { var currencySymbol = lang.currency.symbol; var _p24 = _ggb$numeral_elm$Numeral$formatWithoutCurrency(format); var space = _p24._0; var format1 = _p24._1; var formatted = _ggb$numeral_elm$Numeral$formatNumber( A3(_ggb$numeral_elm$Numeral$empty, lang, format1, value)); var minusSignIndex = A2(_ggb$numeral_elm$Numeral$indexOf, '-', format); var openParenIndex = A2(_ggb$numeral_elm$Numeral$indexOf, '(', format); var symbolIndex = A2(_ggb$numeral_elm$Numeral$indexOf, '$', format); return (_elm_lang$core$Native_Utils.cmp(symbolIndex, 1) < 1) ? ((A2(_elm_lang$core$String$contains, '(', formatted) || A2(_elm_lang$core$String$contains, '-', formatted)) ? (((_elm_lang$core$Native_Utils.cmp(symbolIndex, openParenIndex) < 0) || (_elm_lang$core$Native_Utils.cmp(symbolIndex, minusSignIndex) < 0)) ? A2( _elm_lang$core$String$join, '', { ctor: '::', _0: currencySymbol, _1: { ctor: '::', _0: space, _1: { ctor: '::', _0: A2(_elm_lang$core$String$contains, '-', formatted) ? '-' : '', _1: { ctor: '::', _0: A2(_elm_lang$core$String$contains, '(', formatted) ? '(' : '', _1: { ctor: '::', _0: A3( _elm_lang$core$String$slice, 1, _elm_lang$core$String$length(formatted), formatted), _1: {ctor: '[]'} } } } } }) : A2( _elm_lang$core$String$join, '', { ctor: '::', _0: A2(_elm_lang$core$String$contains, '-', formatted) ? '-' : '', _1: { ctor: '::', _0: A2(_elm_lang$core$String$contains, '(', formatted) ? '(' : '', _1: { ctor: '::', _0: currencySymbol, _1: { ctor: '::', _0: space, _1: { ctor: '::', _0: A3( _elm_lang$core$String$slice, 1, _elm_lang$core$String$length(formatted), formatted), _1: {ctor: '[]'} } } } } })) : A2( _elm_lang$core$Basics_ops['++'], currencySymbol, A2(_elm_lang$core$Basics_ops['++'], space, formatted))) : (A2(_elm_lang$core$String$contains, ')', formatted) ? A2( _elm_lang$core$String$join, '', { ctor: '::', _0: A3( _elm_lang$core$String$slice, 0, _elm_lang$core$String$length(formatted) - 1, formatted), _1: { ctor: '::', _0: space, _1: { ctor: '::', _0: currencySymbol, _1: { ctor: '::', _0: ')', _1: {ctor: '[]'} } } } }) : A2( _elm_lang$core$Basics_ops['++'], formatted, A2(_elm_lang$core$Basics_ops['++'], space, currencySymbol))); }); var _ggb$numeral_elm$Numeral$formatPercentage = F4( function (lang, format, value, strValue) { var _p25 = _ggb$numeral_elm$Numeral$formatWithoutPercent(format); var space = _p25._0; var format1 = _p25._1; var value1 = value * 100; var formatted = _ggb$numeral_elm$Numeral$formatNumber( A3(_ggb$numeral_elm$Numeral$empty, lang, format1, value1)); return A2(_elm_lang$core$String$contains, ')', formatted) ? A2( _elm_lang$core$String$join, '', { ctor: '::', _0: A3( _elm_lang$core$String$slice, 0, _elm_lang$core$String$length(formatted) - 1, formatted), _1: { ctor: '::', _0: space, _1: { ctor: '::', _0: '%', _1: { ctor: '::', _0: ')', _1: {ctor: '[]'} } } } }) : A2( _elm_lang$core$Basics_ops['++'], formatted, A2(_elm_lang$core$Basics_ops['++'], space, '%')); }); var _ggb$numeral_elm$Numeral$formatWithLanguage = F3( function (lang, format, value) { return A2(_elm_lang$core$String$contains, '$', format) ? A4( _ggb$numeral_elm$Numeral$formatCurrency, lang, format, value, _elm_lang$core$Basics$toString(value)) : (A2(_elm_lang$core$String$contains, '%', format) ? A4( _ggb$numeral_elm$Numeral$formatPercentage, lang, format, value, _elm_lang$core$Basics$toString(value)) : (A2(_elm_lang$core$String$contains, ':', format) ? A4( _ggb$numeral_elm$Numeral$formatTime, lang, format, value, _elm_lang$core$Basics$toString(value)) : _ggb$numeral_elm$Numeral$formatNumber( A3(_ggb$numeral_elm$Numeral$empty, lang, format, value)))); }); var _ggb$numeral_elm$Numeral$format = _ggb$numeral_elm$Numeral$formatWithLanguage(_ggb$numeral_elm$Languages_English$lang); var _ggb$numeral_elm$Numeral$Numeral = 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 {language: a, format: b, value: c, word: d, strValue: e, signed: f, neg: g, negP: h, customSuffix: i, abbreviation: j, bytes: k, ordinal: l, decimal: m, optionalDecimal: n, parens: o, precision: p, leadingZeros: q, minus: r, plus: s}; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; var _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerSecond = 1000; var _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerMinute = 60 * _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerSecond; var _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerHour = 60 * _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerMinute; var _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerDay = 24 * _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerHour; var _justinmimbs$elm_date_extra$Date_Extra_Facts$dayOfWeekFromWeekdayNumber = function (n) { var _p0 = n; switch (_p0) { case 1: return _elm_lang$core$Date$Mon; case 2: return _elm_lang$core$Date$Tue; case 3: return _elm_lang$core$Date$Wed; case 4: return _elm_lang$core$Date$Thu; case 5: return _elm_lang$core$Date$Fri; case 6: return _elm_lang$core$Date$Sat; default: return _elm_lang$core$Date$Sun; } }; var _justinmimbs$elm_date_extra$Date_Extra_Facts$weekdayNumberFromDayOfWeek = function (d) { var _p1 = d; switch (_p1.ctor) { case 'Mon': return 1; case 'Tue': return 2; case 'Wed': return 3; case 'Thu': return 4; case 'Fri': return 5; case 'Sat': return 6; default: return 7; } }; var _justinmimbs$elm_date_extra$Date_Extra_Facts$monthFromMonthNumber = function (n) { var _p2 = n; switch (_p2) { case 1: return _elm_lang$core$Date$Jan; case 2: return _elm_lang$core$Date$Feb; case 3: return _elm_lang$core$Date$Mar; case 4: return _elm_lang$core$Date$Apr; case 5: return _elm_lang$core$Date$May; case 6: return _elm_lang$core$Date$Jun; case 7: return _elm_lang$core$Date$Jul; case 8: return _elm_lang$core$Date$Aug; case 9: return _elm_lang$core$Date$Sep; case 10: return _elm_lang$core$Date$Oct; case 11: return _elm_lang$core$Date$Nov; default: return _elm_lang$core$Date$Dec; } }; var _justinmimbs$elm_date_extra$Date_Extra_Facts$monthNumberFromMonth = function (m) { var _p3 = m; switch (_p3.ctor) { case 'Jan': return 1; case 'Feb': return 2; case 'Mar': return 3; case 'Apr': return 4; case 'May': return 5; case 'Jun': return 6; case 'Jul': return 7; case 'Aug': return 8; case 'Sep': return 9; case 'Oct': return 10; case 'Nov': return 11; default: return 12; } }; var _justinmimbs$elm_date_extra$Date_Extra_Facts$months = { ctor: '::', _0: _elm_lang$core$Date$Jan, _1: { ctor: '::', _0: _elm_lang$core$Date$Feb, _1: { ctor: '::', _0: _elm_lang$core$Date$Mar, _1: { ctor: '::', _0: _elm_lang$core$Date$Apr, _1: { ctor: '::', _0: _elm_lang$core$Date$May, _1: { ctor: '::', _0: _elm_lang$core$Date$Jun, _1: { ctor: '::', _0: _elm_lang$core$Date$Jul, _1: { ctor: '::', _0: _elm_lang$core$Date$Aug, _1: { ctor: '::', _0: _elm_lang$core$Date$Sep, _1: { ctor: '::', _0: _elm_lang$core$Date$Oct, _1: { ctor: '::', _0: _elm_lang$core$Date$Nov, _1: { ctor: '::', _0: _elm_lang$core$Date$Dec, _1: {ctor: '[]'} } } } } } } } } } } } }; var _justinmimbs$elm_date_extra$Date_Extra_Facts$isLeapYear = function (y) { return (_elm_lang$core$Native_Utils.eq( A2(_elm_lang$core$Basics_ops['%'], y, 4), 0) && (!_elm_lang$core$Native_Utils.eq( A2(_elm_lang$core$Basics_ops['%'], y, 100), 0))) || _elm_lang$core$Native_Utils.eq( A2(_elm_lang$core$Basics_ops['%'], y, 400), 0); }; var _justinmimbs$elm_date_extra$Date_Extra_Facts$daysInMonth = F2( function (y, m) { var _p4 = m; switch (_p4.ctor) { case 'Jan': return 31; case 'Feb': return _justinmimbs$elm_date_extra$Date_Extra_Facts$isLeapYear(y) ? 29 : 28; case 'Mar': return 31; case 'Apr': return 30; case 'May': return 31; case 'Jun': return 30; case 'Jul': return 31; case 'Aug': return 31; case 'Sep': return 30; case 'Oct': return 31; case 'Nov': return 30; default: return 31; } }); var _justinmimbs$elm_date_extra$Date_Extra_Facts$daysBeforeStartOfMonth = F2( function (y, m) { var _p5 = m; switch (_p5.ctor) { case 'Jan': return 0; case 'Feb': return 31; case 'Mar': return _justinmimbs$elm_date_extra$Date_Extra_Facts$isLeapYear(y) ? 60 : 59; case 'Apr': return _justinmimbs$elm_date_extra$Date_Extra_Facts$isLeapYear(y) ? 91 : 90; case 'May': return _justinmimbs$elm_date_extra$Date_Extra_Facts$isLeapYear(y) ? 121 : 120; case 'Jun': return _justinmimbs$elm_date_extra$Date_Extra_Facts$isLeapYear(y) ? 152 : 151; case 'Jul': return _justinmimbs$elm_date_extra$Date_Extra_Facts$isLeapYear(y) ? 182 : 181; case 'Aug': return _justinmimbs$elm_date_extra$Date_Extra_Facts$isLeapYear(y) ? 213 : 212; case 'Sep': return _justinmimbs$elm_date_extra$Date_Extra_Facts$isLeapYear(y) ? 244 : 243; case 'Oct': return _justinmimbs$elm_date_extra$Date_Extra_Facts$isLeapYear(y) ? 274 : 273; case 'Nov': return _justinmimbs$elm_date_extra$Date_Extra_Facts$isLeapYear(y) ? 305 : 304; default: return _justinmimbs$elm_date_extra$Date_Extra_Facts$isLeapYear(y) ? 335 : 334; } }); var _justinmimbs$elm_date_extra$Date_Internal_RataDie$toUnixTime = function (rd) { return (rd - 719163) * _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerDay; }; var _justinmimbs$elm_date_extra$Date_Internal_RataDie$weekdayNumber = function (rd) { var _p0 = A2(_elm_lang$core$Basics_ops['%'], rd, 7); if (_p0 === 0) { return 7; } else { return _p0; } }; var _justinmimbs$elm_date_extra$Date_Internal_RataDie$leapYearsInCommonEra = function (y) { return (((y / 4) | 0) - ((y / 100) | 0)) + ((y / 400) | 0); }; var _justinmimbs$elm_date_extra$Date_Internal_RataDie$rataDieBeforeStartOfYear = function (y) { return (365 * (y - 1)) + _justinmimbs$elm_date_extra$Date_Internal_RataDie$leapYearsInCommonEra(y - 1); }; var _justinmimbs$elm_date_extra$Date_Internal_RataDie$fromOrdinalDate = F2( function (y, d) { return _justinmimbs$elm_date_extra$Date_Internal_RataDie$rataDieBeforeStartOfYear(y) + d; }); var _justinmimbs$elm_date_extra$Date_Internal_RataDie$week1Day1OfWeekYear = function (y) { var jan4RD = A2(_justinmimbs$elm_date_extra$Date_Internal_RataDie$fromOrdinalDate, y, 4); return (jan4RD - _justinmimbs$elm_date_extra$Date_Internal_RataDie$weekdayNumber(jan4RD)) + 1; }; var _justinmimbs$elm_date_extra$Date_Internal_RataDie$fromWeekDate = F3( function (y, w, d) { var week1Day0RD = _justinmimbs$elm_date_extra$Date_Internal_RataDie$week1Day1OfWeekYear(y) - 1; return (week1Day0RD + ((w - 1) * 7)) + d; }); var _justinmimbs$elm_date_extra$Date_Internal_RataDie$fromCalendarDate = F3( function (y, m, d) { var md = A2(_justinmimbs$elm_date_extra$Date_Extra_Facts$daysBeforeStartOfMonth, y, m); var yd = _justinmimbs$elm_date_extra$Date_Internal_RataDie$rataDieBeforeStartOfYear(y); return (yd + md) + d; }); var _justinmimbs$elm_date_extra$Date_Internal_RataDie$divideInt = F2( function (a, b) { return { ctor: '_Tuple2', _0: (a / b) | 0, _1: A2(_elm_lang$core$Basics$rem, a, b) }; }); var _justinmimbs$elm_date_extra$Date_Internal_RataDie$year = function (rd) { var _p1 = A2(_justinmimbs$elm_date_extra$Date_Internal_RataDie$divideInt, rd, 146097); var q400 = _p1._0; var r400 = _p1._1; var _p2 = A2(_justinmimbs$elm_date_extra$Date_Internal_RataDie$divideInt, r400, 36524); var q100 = _p2._0; var r100 = _p2._1; var _p3 = A2(_justinmimbs$elm_date_extra$Date_Internal_RataDie$divideInt, r100, 1461); var q4 = _p3._0; var r4 = _p3._1; var _p4 = A2(_justinmimbs$elm_date_extra$Date_Internal_RataDie$divideInt, r4, 365); var q1 = _p4._0; var r1 = _p4._1; var n = _elm_lang$core$Native_Utils.eq(r1, 0) ? 0 : 1; return ((((q400 * 400) + (q100 * 100)) + (q4 * 4)) + q1) + n; }; var _justinmimbs$elm_date_extra$Date_Internal_RataDie$ordinalDay = function (rd) { return rd - _justinmimbs$elm_date_extra$Date_Internal_RataDie$rataDieBeforeStartOfYear( _justinmimbs$elm_date_extra$Date_Internal_RataDie$year(rd)); }; var _justinmimbs$elm_date_extra$Date_Internal_RataDie$weekYear = function (rd) { var daysToThursday = 4 - _justinmimbs$elm_date_extra$Date_Internal_RataDie$weekdayNumber(rd); return _justinmimbs$elm_date_extra$Date_Internal_RataDie$year(rd + daysToThursday); }; var _justinmimbs$elm_date_extra$Date_Internal_RataDie$weekNumber = function (rd) { var week1Day1RD = _justinmimbs$elm_date_extra$Date_Internal_RataDie$week1Day1OfWeekYear( _justinmimbs$elm_date_extra$Date_Internal_RataDie$weekYear(rd)); return (((rd - week1Day1RD) / 7) | 0) + 1; }; var _justinmimbs$elm_date_extra$Date_Internal_RataDie$find = F2( function (pred, list) { find: while (true) { var _p5 = list; if (_p5.ctor === '[]') { return _elm_lang$core$Maybe$Nothing; } else { var _p6 = _p5._0; if (pred(_p6)) { return _elm_lang$core$Maybe$Just(_p6); } else { var _v2 = pred, _v3 = _p5._1; pred = _v2; list = _v3; continue find; } } } }); var _justinmimbs$elm_date_extra$Date_Internal_RataDie$month = function (rd) { var od = _justinmimbs$elm_date_extra$Date_Internal_RataDie$ordinalDay(rd); var y = _justinmimbs$elm_date_extra$Date_Internal_RataDie$year(rd); return A2( _elm_lang$core$Maybe$withDefault, _elm_lang$core$Date$Jan, A2( _justinmimbs$elm_date_extra$Date_Internal_RataDie$find, function (m) { return _elm_lang$core$Native_Utils.cmp( A2(_justinmimbs$elm_date_extra$Date_Extra_Facts$daysBeforeStartOfMonth, y, m), od) < 0; }, _elm_lang$core$List$reverse(_justinmimbs$elm_date_extra$Date_Extra_Facts$months))); }; var _justinmimbs$elm_date_extra$Date_Internal_RataDie$day = function (rd) { var od = _justinmimbs$elm_date_extra$Date_Internal_RataDie$ordinalDay(rd); var m = _justinmimbs$elm_date_extra$Date_Internal_RataDie$month(rd); var y = _justinmimbs$elm_date_extra$Date_Internal_RataDie$year(rd); return od - A2(_justinmimbs$elm_date_extra$Date_Extra_Facts$daysBeforeStartOfMonth, y, m); }; var _justinmimbs$elm_date_extra$Date_Internal_Core$weekNumberFromCalendarDate = F3( function (y, m, d) { return _justinmimbs$elm_date_extra$Date_Internal_RataDie$weekNumber( A3(_justinmimbs$elm_date_extra$Date_Internal_RataDie$fromCalendarDate, y, m, d)); }); var _justinmimbs$elm_date_extra$Date_Internal_Core$weekYearFromCalendarDate = F3( function (y, m, d) { return _justinmimbs$elm_date_extra$Date_Internal_RataDie$weekYear( A3(_justinmimbs$elm_date_extra$Date_Internal_RataDie$fromCalendarDate, y, m, d)); }); var _justinmimbs$elm_date_extra$Date_Internal_Core$unixTimeFromOrdinalDate = F2( function (y, d) { return _justinmimbs$elm_date_extra$Date_Internal_RataDie$toUnixTime( A2(_justinmimbs$elm_date_extra$Date_Internal_RataDie$fromOrdinalDate, y, d)); }); var _justinmimbs$elm_date_extra$Date_Internal_Core$unixTimeFromWeekDate = F3( function (y, w, d) { return _justinmimbs$elm_date_extra$Date_Internal_RataDie$toUnixTime( A3(_justinmimbs$elm_date_extra$Date_Internal_RataDie$fromWeekDate, y, w, d)); }); var _justinmimbs$elm_date_extra$Date_Internal_Core$unixTimeFromCalendarDate = F3( function (y, m, d) { return _justinmimbs$elm_date_extra$Date_Internal_RataDie$toUnixTime( A3(_justinmimbs$elm_date_extra$Date_Internal_RataDie$fromCalendarDate, y, m, d)); }); var _justinmimbs$elm_date_extra$Date_Internal_Core$msFromTimeParts = F4( function (hh, mm, ss, ms) { return ((ms + (_justinmimbs$elm_date_extra$Date_Extra_Facts$msPerSecond * ss)) + (_justinmimbs$elm_date_extra$Date_Extra_Facts$msPerMinute * mm)) + (_justinmimbs$elm_date_extra$Date_Extra_Facts$msPerHour * hh); }); var _justinmimbs$elm_date_extra$Date_Internal_Core$unixTimeFromParts = F7( function (y, m, d, hh, mm, ss, ms) { return _justinmimbs$elm_date_extra$Date_Internal_RataDie$toUnixTime( A3(_justinmimbs$elm_date_extra$Date_Internal_RataDie$fromCalendarDate, y, m, d)) + A4(_justinmimbs$elm_date_extra$Date_Internal_Core$msFromTimeParts, hh, mm, ss, ms); }); var _justinmimbs$elm_date_extra$Date_Internal_Extract$msOffsetFromUtc = function (date) { var utcTime = _elm_lang$core$Date$toTime(date); var localTime = _elm_lang$core$Basics$toFloat( A7( _justinmimbs$elm_date_extra$Date_Internal_Core$unixTimeFromParts, _elm_lang$core$Date$year(date), _elm_lang$core$Date$month(date), _elm_lang$core$Date$day(date), _elm_lang$core$Date$hour(date), _elm_lang$core$Date$minute(date), _elm_lang$core$Date$second(date), _elm_lang$core$Date$millisecond(date))); return _elm_lang$core$Basics$floor(localTime - utcTime); }; var _justinmimbs$elm_date_extra$Date_Internal_Extract$offsetFromUtc = function (date) { return (_justinmimbs$elm_date_extra$Date_Internal_Extract$msOffsetFromUtc(date) / _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerMinute) | 0; }; var _justinmimbs$elm_date_extra$Date_Internal_Extract$weekYear = function (date) { return A3( _justinmimbs$elm_date_extra$Date_Internal_Core$weekYearFromCalendarDate, _elm_lang$core$Date$year(date), _elm_lang$core$Date$month(date), _elm_lang$core$Date$day(date)); }; var _justinmimbs$elm_date_extra$Date_Internal_Extract$weekNumber = function (date) { return A3( _justinmimbs$elm_date_extra$Date_Internal_Core$weekNumberFromCalendarDate, _elm_lang$core$Date$year(date), _elm_lang$core$Date$month(date), _elm_lang$core$Date$day(date)); }; var _justinmimbs$elm_date_extra$Date_Internal_Extract$weekdayNumber = function (_p0) { return _justinmimbs$elm_date_extra$Date_Extra_Facts$weekdayNumberFromDayOfWeek( _elm_lang$core$Date$dayOfWeek(_p0)); }; var _justinmimbs$elm_date_extra$Date_Internal_Extract$fractionalDay = function (date) { var timeOfDayMS = A4( _justinmimbs$elm_date_extra$Date_Internal_Core$msFromTimeParts, _elm_lang$core$Date$hour(date), _elm_lang$core$Date$minute(date), _elm_lang$core$Date$second(date), _elm_lang$core$Date$millisecond(date)); return _elm_lang$core$Basics$toFloat(timeOfDayMS) / _elm_lang$core$Basics$toFloat(_justinmimbs$elm_date_extra$Date_Extra_Facts$msPerDay); }; var _justinmimbs$elm_date_extra$Date_Internal_Extract$ordinalDay = function (date) { return A2( _justinmimbs$elm_date_extra$Date_Extra_Facts$daysBeforeStartOfMonth, _elm_lang$core$Date$year(date), _elm_lang$core$Date$month(date)) + _elm_lang$core$Date$day(date); }; var _justinmimbs$elm_date_extra$Date_Internal_Extract$monthNumber = function (_p1) { return _justinmimbs$elm_date_extra$Date_Extra_Facts$monthNumberFromMonth( _elm_lang$core$Date$month(_p1)); }; var _justinmimbs$elm_date_extra$Date_Internal_Extract$quarter = function (date) { return _elm_lang$core$Basics$ceiling( function (n) { return n / 3; }( _elm_lang$core$Basics$toFloat( _justinmimbs$elm_date_extra$Date_Internal_Extract$monthNumber(date)))); }; var _justinmimbs$elm_date_extra$Date_Internal_Format$toUtc = function (date) { return _elm_lang$core$Date$fromTime( _elm_lang$core$Date$toTime(date) - _elm_lang$core$Basics$toFloat( _justinmimbs$elm_date_extra$Date_Internal_Extract$offsetFromUtc(date) * _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerMinute)); }; var _justinmimbs$elm_date_extra$Date_Internal_Format$nameForm = function (length) { var _p0 = length; switch (_p0) { case 1: return 'abbreviated'; case 2: return 'abbreviated'; case 3: return 'abbreviated'; case 4: return 'full'; case 5: return 'narrow'; case 6: return 'short'; default: return 'invalid'; } }; var _justinmimbs$elm_date_extra$Date_Internal_Format$patternMatches = _elm_lang$core$Regex$regex('([yYQMwdDEeabhHmsSXx])\\1*|\'(?:[^\']|\'\')*?\'(?!\')'); var _justinmimbs$elm_date_extra$Date_Internal_Format$formatTimeOffset = F3( function (separator, minutesOptional, offset) { var mm = A3( _elm_lang$core$String$padLeft, 2, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( A2( _elm_lang$core$Basics_ops['%'], _elm_lang$core$Basics$abs(offset), 60))); var hh = A3( _elm_lang$core$String$padLeft, 2, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( (_elm_lang$core$Basics$abs(offset) / 60) | 0)); var sign = (_elm_lang$core$Native_Utils.cmp(offset, 0) > -1) ? '+' : '-'; return (minutesOptional && _elm_lang$core$Native_Utils.eq(mm, '00')) ? A2(_elm_lang$core$Basics_ops['++'], sign, hh) : A2( _elm_lang$core$Basics_ops['++'], sign, A2( _elm_lang$core$Basics_ops['++'], hh, A2(_elm_lang$core$Basics_ops['++'], separator, mm))); }); var _justinmimbs$elm_date_extra$Date_Internal_Format$ordinalSuffix = function (n) { var nn = A2(_elm_lang$core$Basics_ops['%'], n, 100); var _p1 = A2( _elm_lang$core$Basics$min, (_elm_lang$core$Native_Utils.cmp(nn, 20) < 0) ? nn : A2(_elm_lang$core$Basics_ops['%'], nn, 10), 4); switch (_p1) { case 0: return 'th'; case 1: return 'st'; case 2: return 'nd'; case 3: return 'rd'; case 4: return 'th'; default: return ''; } }; var _justinmimbs$elm_date_extra$Date_Internal_Format$withOrdinalSuffix = function (n) { return A2( _elm_lang$core$Basics_ops['++'], _elm_lang$core$Basics$toString(n), _justinmimbs$elm_date_extra$Date_Internal_Format$ordinalSuffix(n)); }; var _justinmimbs$elm_date_extra$Date_Internal_Format$hour12 = function (date) { var _p2 = A2( _elm_lang$core$Basics_ops['%'], _elm_lang$core$Date$hour(date), 12); if (_p2 === 0) { return 12; } else { return _p2; } }; var _justinmimbs$elm_date_extra$Date_Internal_Format$dayOfWeekName = function (d) { var _p3 = d; switch (_p3.ctor) { case 'Mon': return 'Monday'; case 'Tue': return 'Tuesday'; case 'Wed': return 'Wednesday'; case 'Thu': return 'Thursday'; case 'Fri': return 'Friday'; case 'Sat': return 'Saturday'; default: return 'Sunday'; } }; var _justinmimbs$elm_date_extra$Date_Internal_Format$monthName = function (m) { var _p4 = m; switch (_p4.ctor) { case 'Jan': return 'January'; case 'Feb': return 'February'; case 'Mar': return 'March'; case 'Apr': return 'April'; case 'May': return 'May'; case 'Jun': return 'June'; case 'Jul': return 'July'; case 'Aug': return 'August'; case 'Sep': return 'September'; case 'Oct': return 'October'; case 'Nov': return 'November'; default: return 'December'; } }; var _justinmimbs$elm_date_extra$Date_Internal_Format$PM = {ctor: 'PM'}; var _justinmimbs$elm_date_extra$Date_Internal_Format$Noon = {ctor: 'Noon'}; var _justinmimbs$elm_date_extra$Date_Internal_Format$AM = {ctor: 'AM'}; var _justinmimbs$elm_date_extra$Date_Internal_Format$Midnight = {ctor: 'Midnight'}; var _justinmimbs$elm_date_extra$Date_Internal_Format$dayPeriod = function (date) { var onTheHour = _elm_lang$core$Native_Utils.eq( _elm_lang$core$Date$minute(date), 0) && (_elm_lang$core$Native_Utils.eq( _elm_lang$core$Date$second(date), 0) && _elm_lang$core$Native_Utils.eq( _elm_lang$core$Date$millisecond(date), 0)); var hh = _elm_lang$core$Date$hour(date); return (_elm_lang$core$Native_Utils.eq(hh, 0) && onTheHour) ? _justinmimbs$elm_date_extra$Date_Internal_Format$Midnight : ((_elm_lang$core$Native_Utils.cmp(hh, 12) < 0) ? _justinmimbs$elm_date_extra$Date_Internal_Format$AM : ((_elm_lang$core$Native_Utils.eq(hh, 12) && onTheHour) ? _justinmimbs$elm_date_extra$Date_Internal_Format$Noon : _justinmimbs$elm_date_extra$Date_Internal_Format$PM)); }; var _justinmimbs$elm_date_extra$Date_Internal_Format$format = F3( function (asUtc, date, match) { format: while (true) { var length = _elm_lang$core$String$length(match); var $char = A2(_elm_lang$core$String$left, 1, match); var _p5 = $char; switch (_p5) { case 'y': var _p6 = length; if (_p6 === 2) { return A2( _elm_lang$core$String$right, 2, A3( _elm_lang$core$String$padLeft, length, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( _elm_lang$core$Date$year(date)))); } else { return A3( _elm_lang$core$String$padLeft, length, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( _elm_lang$core$Date$year(date))); } case 'Y': var _p7 = length; if (_p7 === 2) { return A2( _elm_lang$core$String$right, 2, A3( _elm_lang$core$String$padLeft, length, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Extract$weekYear(date)))); } else { return A3( _elm_lang$core$String$padLeft, length, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Extract$weekYear(date))); } case 'Q': var _p8 = length; switch (_p8) { case 1: return _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Extract$quarter(date)); case 2: return _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Extract$quarter(date)); case 3: return A2( F2( function (x, y) { return A2(_elm_lang$core$Basics_ops['++'], x, y); }), 'Q', _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Extract$quarter(date))); case 4: return _justinmimbs$elm_date_extra$Date_Internal_Format$withOrdinalSuffix( _justinmimbs$elm_date_extra$Date_Internal_Extract$quarter(date)); case 5: return _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Extract$quarter(date)); default: return ''; } case 'M': var _p9 = length; switch (_p9) { case 1: return _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Extract$monthNumber(date)); case 2: return A3( _elm_lang$core$String$padLeft, 2, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Extract$monthNumber(date))); case 3: return A2( _elm_lang$core$String$left, 3, _justinmimbs$elm_date_extra$Date_Internal_Format$monthName( _elm_lang$core$Date$month(date))); case 4: return _justinmimbs$elm_date_extra$Date_Internal_Format$monthName( _elm_lang$core$Date$month(date)); case 5: return A2( _elm_lang$core$String$left, 1, _justinmimbs$elm_date_extra$Date_Internal_Format$monthName( _elm_lang$core$Date$month(date))); default: return ''; } case 'w': var _p10 = length; switch (_p10) { case 1: return _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Extract$weekNumber(date)); case 2: return A3( _elm_lang$core$String$padLeft, 2, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Extract$weekNumber(date))); default: return ''; } case 'd': var _p11 = length; switch (_p11) { case 1: return _elm_lang$core$Basics$toString( _elm_lang$core$Date$day(date)); case 2: return A3( _elm_lang$core$String$padLeft, 2, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( _elm_lang$core$Date$day(date))); case 3: return _justinmimbs$elm_date_extra$Date_Internal_Format$withOrdinalSuffix( _elm_lang$core$Date$day(date)); default: return ''; } case 'D': var _p12 = length; switch (_p12) { case 1: return _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Extract$ordinalDay(date)); case 2: return A3( _elm_lang$core$String$padLeft, 2, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Extract$ordinalDay(date))); case 3: return A3( _elm_lang$core$String$padLeft, 3, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Extract$ordinalDay(date))); default: return ''; } case 'E': var _p13 = _justinmimbs$elm_date_extra$Date_Internal_Format$nameForm(length); switch (_p13) { case 'abbreviated': return A2( _elm_lang$core$String$left, 3, _justinmimbs$elm_date_extra$Date_Internal_Format$dayOfWeekName( _elm_lang$core$Date$dayOfWeek(date))); case 'full': return _justinmimbs$elm_date_extra$Date_Internal_Format$dayOfWeekName( _elm_lang$core$Date$dayOfWeek(date)); case 'narrow': return A2( _elm_lang$core$String$left, 1, _justinmimbs$elm_date_extra$Date_Internal_Format$dayOfWeekName( _elm_lang$core$Date$dayOfWeek(date))); case 'short': return A2( _elm_lang$core$String$left, 2, _justinmimbs$elm_date_extra$Date_Internal_Format$dayOfWeekName( _elm_lang$core$Date$dayOfWeek(date))); default: return ''; } case 'e': var _p14 = length; switch (_p14) { case 1: return _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Extract$weekdayNumber(date)); case 2: return _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Extract$weekdayNumber(date)); default: var _v15 = asUtc, _v16 = date, _v17 = _elm_lang$core$String$toUpper(match); asUtc = _v15; date = _v16; match = _v17; continue format; } case 'a': var p = _justinmimbs$elm_date_extra$Date_Internal_Format$dayPeriod(date); var m = (_elm_lang$core$Native_Utils.eq(p, _justinmimbs$elm_date_extra$Date_Internal_Format$Midnight) || _elm_lang$core$Native_Utils.eq(p, _justinmimbs$elm_date_extra$Date_Internal_Format$AM)) ? 'A' : 'P'; var _p15 = _justinmimbs$elm_date_extra$Date_Internal_Format$nameForm(length); switch (_p15) { case 'abbreviated': return A2(_elm_lang$core$Basics_ops['++'], m, 'M'); case 'full': return A2(_elm_lang$core$Basics_ops['++'], m, '.M.'); case 'narrow': return m; default: return ''; } case 'b': var _p16 = _justinmimbs$elm_date_extra$Date_Internal_Format$nameForm(length); switch (_p16) { case 'abbreviated': var _p17 = _justinmimbs$elm_date_extra$Date_Internal_Format$dayPeriod(date); switch (_p17.ctor) { case 'Midnight': return 'mid.'; case 'AM': return 'am'; case 'Noon': return 'noon'; default: return 'pm'; } case 'full': var _p18 = _justinmimbs$elm_date_extra$Date_Internal_Format$dayPeriod(date); switch (_p18.ctor) { case 'Midnight': return 'midnight'; case 'AM': return 'a.m.'; case 'Noon': return 'noon'; default: return 'p.m.'; } case 'narrow': var _p19 = _justinmimbs$elm_date_extra$Date_Internal_Format$dayPeriod(date); switch (_p19.ctor) { case 'Midnight': return 'md'; case 'AM': return 'a'; case 'Noon': return 'nn'; default: return 'p'; } default: return ''; } case 'h': var _p20 = length; switch (_p20) { case 1: return _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Format$hour12(date)); case 2: return A3( _elm_lang$core$String$padLeft, 2, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( _justinmimbs$elm_date_extra$Date_Internal_Format$hour12(date))); default: return ''; } case 'H': var _p21 = length; switch (_p21) { case 1: return _elm_lang$core$Basics$toString( _elm_lang$core$Date$hour(date)); case 2: return A3( _elm_lang$core$String$padLeft, 2, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( _elm_lang$core$Date$hour(date))); default: return ''; } case 'm': var _p22 = length; switch (_p22) { case 1: return _elm_lang$core$Basics$toString( _elm_lang$core$Date$minute(date)); case 2: return A3( _elm_lang$core$String$padLeft, 2, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( _elm_lang$core$Date$minute(date))); default: return ''; } case 's': var _p23 = length; switch (_p23) { case 1: return _elm_lang$core$Basics$toString( _elm_lang$core$Date$second(date)); case 2: return A3( _elm_lang$core$String$padLeft, 2, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( _elm_lang$core$Date$second(date))); default: return ''; } case 'S': return A3( _elm_lang$core$String$padRight, length, _elm_lang$core$Native_Utils.chr('0'), A2( _elm_lang$core$String$left, length, A3( _elm_lang$core$String$padLeft, 3, _elm_lang$core$Native_Utils.chr('0'), _elm_lang$core$Basics$toString( _elm_lang$core$Date$millisecond(date))))); case 'X': if ((_elm_lang$core$Native_Utils.cmp(length, 4) < 0) && (asUtc || _elm_lang$core$Native_Utils.eq( _justinmimbs$elm_date_extra$Date_Internal_Extract$offsetFromUtc(date), 0))) { return 'Z'; } else { var _v27 = asUtc, _v28 = date, _v29 = _elm_lang$core$String$toLower(match); asUtc = _v27; date = _v28; match = _v29; continue format; } case 'x': var offset = asUtc ? 0 : _justinmimbs$elm_date_extra$Date_Internal_Extract$offsetFromUtc(date); var _p24 = length; switch (_p24) { case 1: return A3(_justinmimbs$elm_date_extra$Date_Internal_Format$formatTimeOffset, '', true, offset); case 2: return A3(_justinmimbs$elm_date_extra$Date_Internal_Format$formatTimeOffset, '', false, offset); case 3: return A3(_justinmimbs$elm_date_extra$Date_Internal_Format$formatTimeOffset, ':', false, offset); default: return ''; } case '\'': return _elm_lang$core$Native_Utils.eq(match, '\'\'') ? '\'' : A4( _elm_lang$core$Regex$replace, _elm_lang$core$Regex$All, _elm_lang$core$Regex$regex('\'\''), function (_p25) { return '\''; }, A3(_elm_lang$core$String$slice, 1, -1, match)); default: return ''; } } }); var _justinmimbs$elm_date_extra$Date_Internal_Format$toFormattedString = F3( function (asUtc, pattern, date) { var date_ = asUtc ? _justinmimbs$elm_date_extra$Date_Internal_Format$toUtc(date) : date; return A4( _elm_lang$core$Regex$replace, _elm_lang$core$Regex$All, _justinmimbs$elm_date_extra$Date_Internal_Format$patternMatches, function (_p26) { return A3( _justinmimbs$elm_date_extra$Date_Internal_Format$format, asUtc, date_, function (_) { return _.match; }(_p26)); }, pattern); }); var _justinmimbs$elm_date_extra$Date_Internal_Parse$isoDateRegex = function () { var time = 'T(\\d{2})(?:(\\:)?(\\d{2})(?:\\10(\\d{2}))?)?(\\.\\d+)?(?:(Z)|(?:([+\\-])(\\d{2})(?:\\:?(\\d{2}))?))?'; var ord = '\\-?(\\d{3})'; var week = '(\\-)?W(\\d{2})(?:\\5(\\d))?'; var cal = '(\\-)?(\\d{2})(?:\\2(\\d{2}))?'; var year = '(\\d{4})'; return _elm_lang$core$Regex$regex( A2( _elm_lang$core$Basics_ops['++'], '^', A2( _elm_lang$core$Basics_ops['++'], year, A2( _elm_lang$core$Basics_ops['++'], '(?:', A2( _elm_lang$core$Basics_ops['++'], cal, A2( _elm_lang$core$Basics_ops['++'], '|', A2( _elm_lang$core$Basics_ops['++'], week, A2( _elm_lang$core$Basics_ops['++'], '|', A2( _elm_lang$core$Basics_ops['++'], ord, A2( _elm_lang$core$Basics_ops['++'], ')?', A2( _elm_lang$core$Basics_ops['++'], '(?:', A2(_elm_lang$core$Basics_ops['++'], time, ')?$')))))))))))); }(); var _justinmimbs$elm_date_extra$Date_Internal_Parse$stringToFloat = function (_p0) { return _elm_lang$core$Result$toMaybe( _elm_lang$core$String$toFloat(_p0)); }; var _justinmimbs$elm_date_extra$Date_Internal_Parse$msFromMatches = F4( function (timeHH, timeMM, timeSS, timeF) { var fractional = A2( _elm_lang$core$Maybe$withDefault, 0.0, A2(_elm_lang$core$Maybe$andThen, _justinmimbs$elm_date_extra$Date_Internal_Parse$stringToFloat, timeF)); var _p1 = function () { var _p2 = A2( _elm_lang$core$List$map, _elm_lang$core$Maybe$andThen(_justinmimbs$elm_date_extra$Date_Internal_Parse$stringToFloat), { ctor: '::', _0: timeHH, _1: { ctor: '::', _0: timeMM, _1: { ctor: '::', _0: timeSS, _1: {ctor: '[]'} } } }); _v0_3: do { if (((_p2.ctor === '::') && (_p2._0.ctor === 'Just')) && (_p2._1.ctor === '::')) { if (_p2._1._0.ctor === 'Just') { if (_p2._1._1.ctor === '::') { if (_p2._1._1._0.ctor === 'Just') { if (_p2._1._1._1.ctor === '[]') { return {ctor: '_Tuple3', _0: _p2._0._0, _1: _p2._1._0._0, _2: _p2._1._1._0._0 + fractional}; } else { break _v0_3; } } else { if (_p2._1._1._1.ctor === '[]') { return {ctor: '_Tuple3', _0: _p2._0._0, _1: _p2._1._0._0 + fractional, _2: 0.0}; } else { break _v0_3; } } } else { break _v0_3; } } else { if (((_p2._1._1.ctor === '::') && (_p2._1._1._0.ctor === 'Nothing')) && (_p2._1._1._1.ctor === '[]')) { return {ctor: '_Tuple3', _0: _p2._0._0 + fractional, _1: 0.0, _2: 0.0}; } else { break _v0_3; } } } else { break _v0_3; } } while(false); return {ctor: '_Tuple3', _0: 0.0, _1: 0.0, _2: 0.0}; }(); var hh = _p1._0; var mm = _p1._1; var ss = _p1._2; return _elm_lang$core$Basics$round( ((hh * _elm_lang$core$Basics$toFloat(_justinmimbs$elm_date_extra$Date_Extra_Facts$msPerHour)) + (mm * _elm_lang$core$Basics$toFloat(_justinmimbs$elm_date_extra$Date_Extra_Facts$msPerMinute))) + (ss * _elm_lang$core$Basics$toFloat(_justinmimbs$elm_date_extra$Date_Extra_Facts$msPerSecond))); }); var _justinmimbs$elm_date_extra$Date_Internal_Parse$stringToInt = function (_p3) { return _elm_lang$core$Result$toMaybe( _elm_lang$core$String$toInt(_p3)); }; var _justinmimbs$elm_date_extra$Date_Internal_Parse$unixTimeFromMatches = F6( function (yyyy, calMM, calDD, weekWW, weekD, ordDDD) { var y = A2( _elm_lang$core$Maybe$withDefault, 1, _justinmimbs$elm_date_extra$Date_Internal_Parse$stringToInt(yyyy)); var _p4 = {ctor: '_Tuple2', _0: calMM, _1: weekWW}; _v1_2: do { if (_p4.ctor === '_Tuple2') { if (_p4._0.ctor === 'Just') { if (_p4._1.ctor === 'Nothing') { return A3( _justinmimbs$elm_date_extra$Date_Internal_Core$unixTimeFromCalendarDate, y, _justinmimbs$elm_date_extra$Date_Extra_Facts$monthFromMonthNumber( A2( _elm_lang$core$Maybe$withDefault, 1, A2(_elm_lang$core$Maybe$andThen, _justinmimbs$elm_date_extra$Date_Internal_Parse$stringToInt, calMM))), A2( _elm_lang$core$Maybe$withDefault, 1, A2(_elm_lang$core$Maybe$andThen, _justinmimbs$elm_date_extra$Date_Internal_Parse$stringToInt, calDD))); } else { break _v1_2; } } else { if (_p4._1.ctor === 'Just') { return A3( _justinmimbs$elm_date_extra$Date_Internal_Core$unixTimeFromWeekDate, y, A2( _elm_lang$core$Maybe$withDefault, 1, A2(_elm_lang$core$Maybe$andThen, _justinmimbs$elm_date_extra$Date_Internal_Parse$stringToInt, weekWW)), A2( _elm_lang$core$Maybe$withDefault, 1, A2(_elm_lang$core$Maybe$andThen, _justinmimbs$elm_date_extra$Date_Internal_Parse$stringToInt, weekD))); } else { break _v1_2; } } } else { break _v1_2; } } while(false); return A2( _justinmimbs$elm_date_extra$Date_Internal_Core$unixTimeFromOrdinalDate, y, A2( _elm_lang$core$Maybe$withDefault, 1, A2(_elm_lang$core$Maybe$andThen, _justinmimbs$elm_date_extra$Date_Internal_Parse$stringToInt, ordDDD))); }); var _justinmimbs$elm_date_extra$Date_Internal_Parse$offsetFromMatches = F4( function (tzZ, tzSign, tzHH, tzMM) { var _p5 = {ctor: '_Tuple2', _0: tzZ, _1: tzSign}; _v2_2: do { if (_p5.ctor === '_Tuple2') { if (_p5._0.ctor === 'Just') { if ((_p5._0._0 === 'Z') && (_p5._1.ctor === 'Nothing')) { return _elm_lang$core$Maybe$Just(0); } else { break _v2_2; } } else { if (_p5._1.ctor === 'Just') { var mm = A2( _elm_lang$core$Maybe$withDefault, 0, A2(_elm_lang$core$Maybe$andThen, _justinmimbs$elm_date_extra$Date_Internal_Parse$stringToInt, tzMM)); var hh = A2( _elm_lang$core$Maybe$withDefault, 0, A2(_elm_lang$core$Maybe$andThen, _justinmimbs$elm_date_extra$Date_Internal_Parse$stringToInt, tzHH)); return _elm_lang$core$Maybe$Just( (_elm_lang$core$Native_Utils.eq(_p5._1._0, '+') ? 1 : -1) * ((hh * 60) + mm)); } else { break _v2_2; } } } else { break _v2_2; } } while(false); return _elm_lang$core$Maybe$Nothing; }); var _justinmimbs$elm_date_extra$Date_Internal_Parse$offsetTimeFromMatches = function (matches) { var _p6 = matches; if (((((((((((((((((((_p6.ctor === '::') && (_p6._0.ctor === 'Just')) && (_p6._1.ctor === '::')) && (_p6._1._1.ctor === '::')) && (_p6._1._1._1.ctor === '::')) && (_p6._1._1._1._1.ctor === '::')) && (_p6._1._1._1._1._1.ctor === '::')) && (_p6._1._1._1._1._1._1.ctor === '::')) && (_p6._1._1._1._1._1._1._1.ctor === '::')) && (_p6._1._1._1._1._1._1._1._1.ctor === '::')) && (_p6._1._1._1._1._1._1._1._1._1.ctor === '::')) && (_p6._1._1._1._1._1._1._1._1._1._1.ctor === '::')) && (_p6._1._1._1._1._1._1._1._1._1._1._1.ctor === '::')) && (_p6._1._1._1._1._1._1._1._1._1._1._1._1.ctor === '::')) && (_p6._1._1._1._1._1._1._1._1._1._1._1._1._1.ctor === '::')) && (_p6._1._1._1._1._1._1._1._1._1._1._1._1._1._1.ctor === '::')) && (_p6._1._1._1._1._1._1._1._1._1._1._1._1._1._1._1.ctor === '::')) && (_p6._1._1._1._1._1._1._1._1._1._1._1._1._1._1._1._1.ctor === '::')) && (_p6._1._1._1._1._1._1._1._1._1._1._1._1._1._1._1._1._1.ctor === '[]')) { var offset = A4(_justinmimbs$elm_date_extra$Date_Internal_Parse$offsetFromMatches, _p6._1._1._1._1._1._1._1._1._1._1._1._1._1._0, _p6._1._1._1._1._1._1._1._1._1._1._1._1._1._1._0, _p6._1._1._1._1._1._1._1._1._1._1._1._1._1._1._1._0, _p6._1._1._1._1._1._1._1._1._1._1._1._1._1._1._1._1._0); var timeMS = A4(_justinmimbs$elm_date_extra$Date_Internal_Parse$msFromMatches, _p6._1._1._1._1._1._1._1._1._0, _p6._1._1._1._1._1._1._1._1._1._1._0, _p6._1._1._1._1._1._1._1._1._1._1._1._0, _p6._1._1._1._1._1._1._1._1._1._1._1._1._0); var dateMS = A6(_justinmimbs$elm_date_extra$Date_Internal_Parse$unixTimeFromMatches, _p6._0._0, _p6._1._1._0, _p6._1._1._1._0, _p6._1._1._1._1._1._0, _p6._1._1._1._1._1._1._0, _p6._1._1._1._1._1._1._1._0); return _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: offset, _1: dateMS + timeMS}); } else { return _elm_lang$core$Maybe$Nothing; } }; var _justinmimbs$elm_date_extra$Date_Internal_Parse$offsetTimeFromIsoString = function (s) { return A2( _elm_lang$core$Maybe$andThen, _justinmimbs$elm_date_extra$Date_Internal_Parse$offsetTimeFromMatches, A2( _elm_lang$core$Maybe$map, function (_) { return _.submatches; }, _elm_lang$core$List$head( A3( _elm_lang$core$Regex$find, _elm_lang$core$Regex$AtMost(1), _justinmimbs$elm_date_extra$Date_Internal_Parse$isoDateRegex, s)))); }; var _justinmimbs$elm_date_extra$Date_Extra$toParts = function (date) { return { ctor: '_Tuple7', _0: _elm_lang$core$Date$year(date), _1: _elm_lang$core$Date$month(date), _2: _elm_lang$core$Date$day(date), _3: _elm_lang$core$Date$hour(date), _4: _elm_lang$core$Date$minute(date), _5: _elm_lang$core$Date$second(date), _6: _elm_lang$core$Date$millisecond(date) }; }; var _justinmimbs$elm_date_extra$Date_Extra$monthFromQuarter = function (q) { var _p0 = q; switch (_p0) { case 1: return _elm_lang$core$Date$Jan; case 2: return _elm_lang$core$Date$Apr; case 3: return _elm_lang$core$Date$Jul; default: return _elm_lang$core$Date$Oct; } }; var _justinmimbs$elm_date_extra$Date_Extra$clamp = F3( function (min, max, date) { return (_elm_lang$core$Native_Utils.cmp( _elm_lang$core$Date$toTime(date), _elm_lang$core$Date$toTime(min)) < 0) ? min : ((_elm_lang$core$Native_Utils.cmp( _elm_lang$core$Date$toTime(date), _elm_lang$core$Date$toTime(max)) > 0) ? max : date); }); var _justinmimbs$elm_date_extra$Date_Extra$comparableIsBetween = F3( function (a, b, x) { return ((_elm_lang$core$Native_Utils.cmp(a, x) < 1) && (_elm_lang$core$Native_Utils.cmp(x, b) < 1)) || ((_elm_lang$core$Native_Utils.cmp(b, x) < 1) && (_elm_lang$core$Native_Utils.cmp(x, a) < 1)); }); var _justinmimbs$elm_date_extra$Date_Extra$isBetween = F3( function (date1, date2, date) { return A3( _justinmimbs$elm_date_extra$Date_Extra$comparableIsBetween, _elm_lang$core$Date$toTime(date1), _elm_lang$core$Date$toTime(date2), _elm_lang$core$Date$toTime(date)); }); var _justinmimbs$elm_date_extra$Date_Extra$compare = F2( function (a, b) { return A2( _elm_lang$core$Basics$compare, _elm_lang$core$Date$toTime(a), _elm_lang$core$Date$toTime(b)); }); var _justinmimbs$elm_date_extra$Date_Extra$equal = F2( function (a, b) { return _elm_lang$core$Native_Utils.eq( _elm_lang$core$Date$toTime(a), _elm_lang$core$Date$toTime(b)); }); var _justinmimbs$elm_date_extra$Date_Extra$offsetFromUtc = _justinmimbs$elm_date_extra$Date_Internal_Extract$offsetFromUtc; var _justinmimbs$elm_date_extra$Date_Extra$weekYear = _justinmimbs$elm_date_extra$Date_Internal_Extract$weekYear; var _justinmimbs$elm_date_extra$Date_Extra$weekNumber = _justinmimbs$elm_date_extra$Date_Internal_Extract$weekNumber; var _justinmimbs$elm_date_extra$Date_Extra$weekdayNumber = _justinmimbs$elm_date_extra$Date_Internal_Extract$weekdayNumber; var _justinmimbs$elm_date_extra$Date_Extra$daysToPreviousDayOfWeek = F2( function (d, date) { return _elm_lang$core$Basics$negate( A2( _elm_lang$core$Basics_ops['%'], (_justinmimbs$elm_date_extra$Date_Extra$weekdayNumber(date) - _justinmimbs$elm_date_extra$Date_Extra_Facts$weekdayNumberFromDayOfWeek(d)) + 7, 7)); }); var _justinmimbs$elm_date_extra$Date_Extra$fractionalDay = _justinmimbs$elm_date_extra$Date_Internal_Extract$fractionalDay; var _justinmimbs$elm_date_extra$Date_Extra$ordinalDay = _justinmimbs$elm_date_extra$Date_Internal_Extract$ordinalDay; var _justinmimbs$elm_date_extra$Date_Extra$quarter = _justinmimbs$elm_date_extra$Date_Internal_Extract$quarter; var _justinmimbs$elm_date_extra$Date_Extra$monthNumber = _justinmimbs$elm_date_extra$Date_Internal_Extract$monthNumber; var _justinmimbs$elm_date_extra$Date_Extra$ordinalMonth = function (date) { return (_elm_lang$core$Date$year(date) * 12) + _justinmimbs$elm_date_extra$Date_Extra$monthNumber(date); }; var _justinmimbs$elm_date_extra$Date_Extra$diffMonth = F2( function (date1, date2) { var fractionalMonth = function (date) { return (_elm_lang$core$Basics$toFloat( _elm_lang$core$Date$day(date) - 1) + _justinmimbs$elm_date_extra$Date_Extra$fractionalDay(date)) / 31; }; var ordinalMonthFloat = function (date) { return _elm_lang$core$Basics$toFloat( _justinmimbs$elm_date_extra$Date_Extra$ordinalMonth(date)) + fractionalMonth(date); }; return _elm_lang$core$Basics$truncate( ordinalMonthFloat(date2) - ordinalMonthFloat(date1)); }); var _justinmimbs$elm_date_extra$Date_Extra$toUtcFormattedString = _justinmimbs$elm_date_extra$Date_Internal_Format$toFormattedString(true); var _justinmimbs$elm_date_extra$Date_Extra$toUtcIsoString = _justinmimbs$elm_date_extra$Date_Extra$toUtcFormattedString('yyyy-MM-dd\'T\'HH:mm:ss.SSSXXX'); var _justinmimbs$elm_date_extra$Date_Extra$toFormattedString = _justinmimbs$elm_date_extra$Date_Internal_Format$toFormattedString(false); var _justinmimbs$elm_date_extra$Date_Extra$toIsoString = _justinmimbs$elm_date_extra$Date_Extra$toFormattedString('yyyy-MM-dd\'T\'HH:mm:ss.SSSxxx'); var _justinmimbs$elm_date_extra$Date_Extra$fromTime = function (_p1) { return _elm_lang$core$Date$fromTime( _elm_lang$core$Basics$toFloat(_p1)); }; var _justinmimbs$elm_date_extra$Date_Extra$fromOffsetTime = function (_p2) { var _p3 = _p2; var _p5 = _p3._1; var _p4 = _p3._0; if (_p4.ctor === 'Just') { return _justinmimbs$elm_date_extra$Date_Extra$fromTime(_p5 - (_justinmimbs$elm_date_extra$Date_Extra_Facts$msPerMinute * _p4._0)); } else { var offset0 = _justinmimbs$elm_date_extra$Date_Extra$offsetFromUtc( _justinmimbs$elm_date_extra$Date_Extra$fromTime(_p5)); var date1 = _justinmimbs$elm_date_extra$Date_Extra$fromTime(_p5 - (_justinmimbs$elm_date_extra$Date_Extra_Facts$msPerMinute * offset0)); var offset1 = _justinmimbs$elm_date_extra$Date_Extra$offsetFromUtc(date1); if (_elm_lang$core$Native_Utils.eq(offset0, offset1)) { return date1; } else { var date2 = _justinmimbs$elm_date_extra$Date_Extra$fromTime(_p5 - (_justinmimbs$elm_date_extra$Date_Extra_Facts$msPerMinute * offset1)); var offset2 = _justinmimbs$elm_date_extra$Date_Extra$offsetFromUtc(date2); return _elm_lang$core$Native_Utils.eq(offset1, offset2) ? date2 : date1; } } }; var _justinmimbs$elm_date_extra$Date_Extra$fromParts = F7( function (y, m, d, hh, mm, ss, ms) { return _justinmimbs$elm_date_extra$Date_Extra$fromOffsetTime( { ctor: '_Tuple2', _0: _elm_lang$core$Maybe$Nothing, _1: A7(_justinmimbs$elm_date_extra$Date_Internal_Core$unixTimeFromParts, y, m, d, hh, mm, ss, ms) }); }); var _justinmimbs$elm_date_extra$Date_Extra$addMonths = F2( function (n, date) { var om = (_justinmimbs$elm_date_extra$Date_Extra$ordinalMonth(date) + n) + -1; var y_ = (om / 12) | 0; var m_ = _justinmimbs$elm_date_extra$Date_Extra_Facts$monthFromMonthNumber( A2(_elm_lang$core$Basics_ops['%'], om, 12) + 1); var _p6 = _justinmimbs$elm_date_extra$Date_Extra$toParts(date); var y = _p6._0; var m = _p6._1; var d = _p6._2; var hh = _p6._3; var mm = _p6._4; var ss = _p6._5; var ms = _p6._6; var d_ = A2( _elm_lang$core$Basics$min, d, A2(_justinmimbs$elm_date_extra$Date_Extra_Facts$daysInMonth, y_, m_)); return A7(_justinmimbs$elm_date_extra$Date_Extra$fromParts, y_, m_, d_, hh, mm, ss, ms); }); var _justinmimbs$elm_date_extra$Date_Extra$add = F3( function (interval, n, date) { var _p7 = _justinmimbs$elm_date_extra$Date_Extra$toParts(date); var y = _p7._0; var m = _p7._1; var d = _p7._2; var hh = _p7._3; var mm = _p7._4; var ss = _p7._5; var ms = _p7._6; var _p8 = interval; switch (_p8.ctor) { case 'Millisecond': return _elm_lang$core$Date$fromTime( _elm_lang$core$Date$toTime(date) + _elm_lang$core$Basics$toFloat(n)); case 'Second': return _elm_lang$core$Date$fromTime( _elm_lang$core$Date$toTime(date) + _elm_lang$core$Basics$toFloat(n * _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerSecond)); case 'Minute': return _elm_lang$core$Date$fromTime( _elm_lang$core$Date$toTime(date) + _elm_lang$core$Basics$toFloat(n * _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerMinute)); case 'Hour': return _elm_lang$core$Date$fromTime( _elm_lang$core$Date$toTime(date) + _elm_lang$core$Basics$toFloat(n * _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerHour)); case 'Day': return A7(_justinmimbs$elm_date_extra$Date_Extra$fromParts, y, m, d + n, hh, mm, ss, ms); case 'Month': return A2(_justinmimbs$elm_date_extra$Date_Extra$addMonths, n, date); case 'Year': return A2(_justinmimbs$elm_date_extra$Date_Extra$addMonths, n * 12, date); case 'Quarter': return A2(_justinmimbs$elm_date_extra$Date_Extra$addMonths, n * 3, date); case 'Week': return A7(_justinmimbs$elm_date_extra$Date_Extra$fromParts, y, m, d + (n * 7), hh, mm, ss, ms); default: return A7(_justinmimbs$elm_date_extra$Date_Extra$fromParts, y, m, d + (n * 7), hh, mm, ss, ms); } }); var _justinmimbs$elm_date_extra$Date_Extra$rangeHelp = F5( function (result, interval, step, start, date) { rangeHelp: while (true) { if (_elm_lang$core$Native_Utils.cmp( _elm_lang$core$Date$toTime(date), _elm_lang$core$Date$toTime(start)) < 0) { return result; } else { var _v4 = {ctor: '::', _0: date, _1: result}, _v5 = interval, _v6 = step, _v7 = start, _v8 = A3(_justinmimbs$elm_date_extra$Date_Extra$add, interval, step, date); result = _v4; interval = _v5; step = _v6; start = _v7; date = _v8; continue rangeHelp; } } }); var _justinmimbs$elm_date_extra$Date_Extra$fromCalendarDate = F3( function (y, m, d) { return _justinmimbs$elm_date_extra$Date_Extra$fromOffsetTime( { ctor: '_Tuple2', _0: _elm_lang$core$Maybe$Nothing, _1: A3(_justinmimbs$elm_date_extra$Date_Internal_Core$unixTimeFromCalendarDate, y, m, d) }); }); var _justinmimbs$elm_date_extra$Date_Extra$floor = F2( function (interval, date) { var _p9 = _justinmimbs$elm_date_extra$Date_Extra$toParts(date); var y = _p9._0; var m = _p9._1; var d = _p9._2; var hh = _p9._3; var mm = _p9._4; var ss = _p9._5; var _p10 = interval; switch (_p10.ctor) { case 'Millisecond': return date; case 'Second': return A7(_justinmimbs$elm_date_extra$Date_Extra$fromParts, y, m, d, hh, mm, ss, 0); case 'Minute': return A7(_justinmimbs$elm_date_extra$Date_Extra$fromParts, y, m, d, hh, mm, 0, 0); case 'Hour': return A7(_justinmimbs$elm_date_extra$Date_Extra$fromParts, y, m, d, hh, 0, 0, 0); case 'Day': return A3(_justinmimbs$elm_date_extra$Date_Extra$fromCalendarDate, y, m, d); case 'Month': return A3(_justinmimbs$elm_date_extra$Date_Extra$fromCalendarDate, y, m, 1); case 'Year': return A3(_justinmimbs$elm_date_extra$Date_Extra$fromCalendarDate, y, _elm_lang$core$Date$Jan, 1); case 'Quarter': return A3( _justinmimbs$elm_date_extra$Date_Extra$fromCalendarDate, y, _justinmimbs$elm_date_extra$Date_Extra$monthFromQuarter( _justinmimbs$elm_date_extra$Date_Extra$quarter(date)), 1); case 'Week': return A3( _justinmimbs$elm_date_extra$Date_Extra$fromCalendarDate, y, m, d + A2(_justinmimbs$elm_date_extra$Date_Extra$daysToPreviousDayOfWeek, _elm_lang$core$Date$Mon, date)); case 'Monday': return A3( _justinmimbs$elm_date_extra$Date_Extra$fromCalendarDate, y, m, d + A2(_justinmimbs$elm_date_extra$Date_Extra$daysToPreviousDayOfWeek, _elm_lang$core$Date$Mon, date)); case 'Tuesday': return A3( _justinmimbs$elm_date_extra$Date_Extra$fromCalendarDate, y, m, d + A2(_justinmimbs$elm_date_extra$Date_Extra$daysToPreviousDayOfWeek, _elm_lang$core$Date$Tue, date)); case 'Wednesday': return A3( _justinmimbs$elm_date_extra$Date_Extra$fromCalendarDate, y, m, d + A2(_justinmimbs$elm_date_extra$Date_Extra$daysToPreviousDayOfWeek, _elm_lang$core$Date$Wed, date)); case 'Thursday': return A3( _justinmimbs$elm_date_extra$Date_Extra$fromCalendarDate, y, m, d + A2(_justinmimbs$elm_date_extra$Date_Extra$daysToPreviousDayOfWeek, _elm_lang$core$Date$Thu, date)); case 'Friday': return A3( _justinmimbs$elm_date_extra$Date_Extra$fromCalendarDate, y, m, d + A2(_justinmimbs$elm_date_extra$Date_Extra$daysToPreviousDayOfWeek, _elm_lang$core$Date$Fri, date)); case 'Saturday': return A3( _justinmimbs$elm_date_extra$Date_Extra$fromCalendarDate, y, m, d + A2(_justinmimbs$elm_date_extra$Date_Extra$daysToPreviousDayOfWeek, _elm_lang$core$Date$Sat, date)); default: return A3( _justinmimbs$elm_date_extra$Date_Extra$fromCalendarDate, y, m, d + A2(_justinmimbs$elm_date_extra$Date_Extra$daysToPreviousDayOfWeek, _elm_lang$core$Date$Sun, date)); } }); var _justinmimbs$elm_date_extra$Date_Extra$ceiling = F2( function (interval, date) { var floored = A2(_justinmimbs$elm_date_extra$Date_Extra$floor, interval, date); return _elm_lang$core$Native_Utils.eq( _elm_lang$core$Date$toTime(date), _elm_lang$core$Date$toTime(floored)) ? date : A3(_justinmimbs$elm_date_extra$Date_Extra$add, interval, 1, floored); }); var _justinmimbs$elm_date_extra$Date_Extra$range = F4( function (interval, step, start, end) { var stepBack = _elm_lang$core$Basics$negate( A2(_elm_lang$core$Basics$max, 1, step)); return A5( _justinmimbs$elm_date_extra$Date_Extra$rangeHelp, {ctor: '[]'}, interval, stepBack, start, A2( _justinmimbs$elm_date_extra$Date_Extra$ceiling, interval, A3(_justinmimbs$elm_date_extra$Date_Extra$add, interval, stepBack, end))); }); var _justinmimbs$elm_date_extra$Date_Extra$fromIsoString = function (_p11) { return A2( _elm_lang$core$Maybe$map, _justinmimbs$elm_date_extra$Date_Extra$fromOffsetTime, _justinmimbs$elm_date_extra$Date_Internal_Parse$offsetTimeFromIsoString(_p11)); }; var _justinmimbs$elm_date_extra$Date_Extra$fromSpec = F3( function (_p14, _p13, _p12) { var _p15 = _p14; var _p16 = _p13; var _p17 = _p12; return _justinmimbs$elm_date_extra$Date_Extra$fromOffsetTime( {ctor: '_Tuple2', _0: _p15._0, _1: _p17._0 + _p16._0}); }); var _justinmimbs$elm_date_extra$Date_Extra$Offset = function (a) { return {ctor: 'Offset', _0: a}; }; var _justinmimbs$elm_date_extra$Date_Extra$utc = _justinmimbs$elm_date_extra$Date_Extra$Offset( _elm_lang$core$Maybe$Just(0)); var _justinmimbs$elm_date_extra$Date_Extra$offset = function (minutes) { return _justinmimbs$elm_date_extra$Date_Extra$Offset( _elm_lang$core$Maybe$Just(minutes)); }; var _justinmimbs$elm_date_extra$Date_Extra$local = _justinmimbs$elm_date_extra$Date_Extra$Offset(_elm_lang$core$Maybe$Nothing); var _justinmimbs$elm_date_extra$Date_Extra$TimeMS = function (a) { return {ctor: 'TimeMS', _0: a}; }; var _justinmimbs$elm_date_extra$Date_Extra$noTime = _justinmimbs$elm_date_extra$Date_Extra$TimeMS(0); var _justinmimbs$elm_date_extra$Date_Extra$atTime = F4( function (hh, mm, ss, ms) { return _justinmimbs$elm_date_extra$Date_Extra$TimeMS( A4(_justinmimbs$elm_date_extra$Date_Internal_Core$msFromTimeParts, hh, mm, ss, ms)); }); var _justinmimbs$elm_date_extra$Date_Extra$DateMS = function (a) { return {ctor: 'DateMS', _0: a}; }; var _justinmimbs$elm_date_extra$Date_Extra$calendarDate = F3( function (y, m, d) { return _justinmimbs$elm_date_extra$Date_Extra$DateMS( A3(_justinmimbs$elm_date_extra$Date_Internal_Core$unixTimeFromCalendarDate, y, m, d)); }); var _justinmimbs$elm_date_extra$Date_Extra$ordinalDate = F2( function (y, d) { return _justinmimbs$elm_date_extra$Date_Extra$DateMS( A2(_justinmimbs$elm_date_extra$Date_Internal_Core$unixTimeFromOrdinalDate, y, d)); }); var _justinmimbs$elm_date_extra$Date_Extra$weekDate = F3( function (y, w, d) { return _justinmimbs$elm_date_extra$Date_Extra$DateMS( A3(_justinmimbs$elm_date_extra$Date_Internal_Core$unixTimeFromWeekDate, y, w, d)); }); var _justinmimbs$elm_date_extra$Date_Extra$Sunday = {ctor: 'Sunday'}; var _justinmimbs$elm_date_extra$Date_Extra$Saturday = {ctor: 'Saturday'}; var _justinmimbs$elm_date_extra$Date_Extra$Friday = {ctor: 'Friday'}; var _justinmimbs$elm_date_extra$Date_Extra$Thursday = {ctor: 'Thursday'}; var _justinmimbs$elm_date_extra$Date_Extra$Wednesday = {ctor: 'Wednesday'}; var _justinmimbs$elm_date_extra$Date_Extra$Tuesday = {ctor: 'Tuesday'}; var _justinmimbs$elm_date_extra$Date_Extra$Monday = {ctor: 'Monday'}; var _justinmimbs$elm_date_extra$Date_Extra$Week = {ctor: 'Week'}; var _justinmimbs$elm_date_extra$Date_Extra$Quarter = {ctor: 'Quarter'}; var _justinmimbs$elm_date_extra$Date_Extra$Year = {ctor: 'Year'}; var _justinmimbs$elm_date_extra$Date_Extra$Month = {ctor: 'Month'}; var _justinmimbs$elm_date_extra$Date_Extra$Day = {ctor: 'Day'}; var _justinmimbs$elm_date_extra$Date_Extra$diff = F3( function (interval, date1, date2) { var diffMS = _elm_lang$core$Basics$floor( _elm_lang$core$Date$toTime(date2) - _elm_lang$core$Date$toTime(date1)); var _p18 = interval; switch (_p18.ctor) { case 'Millisecond': return diffMS; case 'Second': return (diffMS / _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerSecond) | 0; case 'Minute': return (diffMS / _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerMinute) | 0; case 'Hour': return (diffMS / _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerHour) | 0; case 'Day': return (diffMS / _justinmimbs$elm_date_extra$Date_Extra_Facts$msPerDay) | 0; case 'Month': return A2(_justinmimbs$elm_date_extra$Date_Extra$diffMonth, date1, date2); case 'Year': return (A2(_justinmimbs$elm_date_extra$Date_Extra$diffMonth, date1, date2) / 12) | 0; case 'Quarter': return (A2(_justinmimbs$elm_date_extra$Date_Extra$diffMonth, date1, date2) / 3) | 0; case 'Week': return (A3(_justinmimbs$elm_date_extra$Date_Extra$diff, _justinmimbs$elm_date_extra$Date_Extra$Day, date1, date2) / 7) | 0; default: var _p19 = _p18; return (A3( _justinmimbs$elm_date_extra$Date_Extra$diff, _justinmimbs$elm_date_extra$Date_Extra$Day, A2(_justinmimbs$elm_date_extra$Date_Extra$floor, _p19, date1), A2(_justinmimbs$elm_date_extra$Date_Extra$floor, _p19, date2)) / 7) | 0; } }); var _justinmimbs$elm_date_extra$Date_Extra$Hour = {ctor: 'Hour'}; var _justinmimbs$elm_date_extra$Date_Extra$Minute = {ctor: 'Minute'}; var _justinmimbs$elm_date_extra$Date_Extra$equalBy = F3( function (interval, date1, date2) { equalBy: while (true) { var _p20 = interval; switch (_p20.ctor) { case 'Millisecond': return _elm_lang$core$Native_Utils.eq( _elm_lang$core$Date$toTime(date1), _elm_lang$core$Date$toTime(date2)); case 'Second': return _elm_lang$core$Native_Utils.eq( _elm_lang$core$Date$second(date1), _elm_lang$core$Date$second(date2)) && A3(_justinmimbs$elm_date_extra$Date_Extra$equalBy, _justinmimbs$elm_date_extra$Date_Extra$Minute, date1, date2); case 'Minute': return _elm_lang$core$Native_Utils.eq( _elm_lang$core$Date$minute(date1), _elm_lang$core$Date$minute(date2)) && A3(_justinmimbs$elm_date_extra$Date_Extra$equalBy, _justinmimbs$elm_date_extra$Date_Extra$Hour, date1, date2); case 'Hour': return _elm_lang$core$Native_Utils.eq( _elm_lang$core$Date$hour(date1), _elm_lang$core$Date$hour(date2)) && A3(_justinmimbs$elm_date_extra$Date_Extra$equalBy, _justinmimbs$elm_date_extra$Date_Extra$Day, date1, date2); case 'Day': return _elm_lang$core$Native_Utils.eq( _elm_lang$core$Date$day(date1), _elm_lang$core$Date$day(date2)) && A3(_justinmimbs$elm_date_extra$Date_Extra$equalBy, _justinmimbs$elm_date_extra$Date_Extra$Month, date1, date2); case 'Month': return _elm_lang$core$Native_Utils.eq( _elm_lang$core$Date$month(date1), _elm_lang$core$Date$month(date2)) && A3(_justinmimbs$elm_date_extra$Date_Extra$equalBy, _justinmimbs$elm_date_extra$Date_Extra$Year, date1, date2); case 'Year': return _elm_lang$core$Native_Utils.eq( _elm_lang$core$Date$year(date1), _elm_lang$core$Date$year(date2)); case 'Quarter': return _elm_lang$core$Native_Utils.eq( _justinmimbs$elm_date_extra$Date_Extra$quarter(date1), _justinmimbs$elm_date_extra$Date_Extra$quarter(date2)) && A3(_justinmimbs$elm_date_extra$Date_Extra$equalBy, _justinmimbs$elm_date_extra$Date_Extra$Year, date1, date2); case 'Week': return _elm_lang$core$Native_Utils.eq( _justinmimbs$elm_date_extra$Date_Extra$weekNumber(date1), _justinmimbs$elm_date_extra$Date_Extra$weekNumber(date2)) && _elm_lang$core$Native_Utils.eq( _justinmimbs$elm_date_extra$Date_Extra$weekYear(date1), _justinmimbs$elm_date_extra$Date_Extra$weekYear(date2)); default: var _p21 = _p20; var _v15 = _justinmimbs$elm_date_extra$Date_Extra$Day, _v16 = A2(_justinmimbs$elm_date_extra$Date_Extra$floor, _p21, date1), _v17 = A2(_justinmimbs$elm_date_extra$Date_Extra$floor, _p21, date2); interval = _v15; date1 = _v16; date2 = _v17; continue equalBy; } } }); var _justinmimbs$elm_date_extra$Date_Extra$Second = {ctor: 'Second'}; var _justinmimbs$elm_date_extra$Date_Extra$Millisecond = {ctor: 'Millisecond'}; var _krisajenkins$remotedata$RemoteData$isNotAsked = function (data) { var _p0 = data; if (_p0.ctor === 'NotAsked') { return true; } else { return false; } }; var _krisajenkins$remotedata$RemoteData$isLoading = function (data) { var _p1 = data; if (_p1.ctor === 'Loading') { return true; } else { return false; } }; var _krisajenkins$remotedata$RemoteData$isFailure = function (data) { var _p2 = data; if (_p2.ctor === 'Failure') { return true; } else { return false; } }; var _krisajenkins$remotedata$RemoteData$isSuccess = function (data) { var _p3 = data; if (_p3.ctor === 'Success') { return true; } else { return false; } }; var _krisajenkins$remotedata$RemoteData$withDefault = F2( function ($default, data) { var _p4 = data; if (_p4.ctor === 'Success') { return _p4._0; } else { return $default; } }); var _krisajenkins$remotedata$RemoteData$Success = function (a) { return {ctor: 'Success', _0: a}; }; var _krisajenkins$remotedata$RemoteData$succeed = _krisajenkins$remotedata$RemoteData$Success; var _krisajenkins$remotedata$RemoteData$prism = { reverseGet: _krisajenkins$remotedata$RemoteData$Success, getOption: function (data) { var _p5 = data; if (_p5.ctor === 'Success') { return _elm_lang$core$Maybe$Just(_p5._0); } else { return _elm_lang$core$Maybe$Nothing; } } }; var _krisajenkins$remotedata$RemoteData$Failure = function (a) { return {ctor: 'Failure', _0: a}; }; var _krisajenkins$remotedata$RemoteData$fromResult = function (result) { var _p6 = result; if (_p6.ctor === 'Err') { return _krisajenkins$remotedata$RemoteData$Failure(_p6._0); } else { return _krisajenkins$remotedata$RemoteData$Success(_p6._0); } }; var _krisajenkins$remotedata$RemoteData$asCmd = _elm_lang$core$Task$attempt(_krisajenkins$remotedata$RemoteData$fromResult); var _krisajenkins$remotedata$RemoteData$sendRequest = _elm_lang$http$Http$send(_krisajenkins$remotedata$RemoteData$fromResult); var _krisajenkins$remotedata$RemoteData$fromTask = function (_p7) { return A2( _elm_lang$core$Task$onError, function (_p8) { return _elm_lang$core$Task$succeed( _krisajenkins$remotedata$RemoteData$Failure(_p8)); }, A2(_elm_lang$core$Task$map, _krisajenkins$remotedata$RemoteData$Success, _p7)); }; var _krisajenkins$remotedata$RemoteData$Loading = {ctor: 'Loading'}; var _krisajenkins$remotedata$RemoteData$NotAsked = {ctor: 'NotAsked'}; var _krisajenkins$remotedata$RemoteData$map = F2( function (f, data) { var _p9 = data; switch (_p9.ctor) { case 'Success': return _krisajenkins$remotedata$RemoteData$Success( f(_p9._0)); case 'Loading': return _krisajenkins$remotedata$RemoteData$Loading; case 'NotAsked': return _krisajenkins$remotedata$RemoteData$NotAsked; default: return _krisajenkins$remotedata$RemoteData$Failure(_p9._0); } }); var _krisajenkins$remotedata$RemoteData$toMaybe = function (_p10) { return A2( _krisajenkins$remotedata$RemoteData$withDefault, _elm_lang$core$Maybe$Nothing, A2(_krisajenkins$remotedata$RemoteData$map, _elm_lang$core$Maybe$Just, _p10)); }; var _krisajenkins$remotedata$RemoteData$mapError = F2( function (f, data) { var _p11 = data; switch (_p11.ctor) { case 'Success': return _krisajenkins$remotedata$RemoteData$Success(_p11._0); case 'Failure': return _krisajenkins$remotedata$RemoteData$Failure( f(_p11._0)); case 'Loading': return _krisajenkins$remotedata$RemoteData$Loading; default: return _krisajenkins$remotedata$RemoteData$NotAsked; } }); var _krisajenkins$remotedata$RemoteData$mapBoth = F2( function (successFn, errorFn) { return function (_p12) { return A2( _krisajenkins$remotedata$RemoteData$mapError, errorFn, A2(_krisajenkins$remotedata$RemoteData$map, successFn, _p12)); }; }); var _krisajenkins$remotedata$RemoteData$andThen = F2( function (f, data) { var _p13 = data; switch (_p13.ctor) { case 'Success': return f(_p13._0); case 'Failure': return _krisajenkins$remotedata$RemoteData$Failure(_p13._0); case 'NotAsked': return _krisajenkins$remotedata$RemoteData$NotAsked; default: return _krisajenkins$remotedata$RemoteData$Loading; } }); var _krisajenkins$remotedata$RemoteData$andMap = F2( function (wrappedValue, wrappedFunction) { var _p14 = wrappedFunction; switch (_p14.ctor) { case 'Success': return A2(_krisajenkins$remotedata$RemoteData$map, _p14._0, wrappedValue); case 'Failure': return _krisajenkins$remotedata$RemoteData$Failure(_p14._0); case 'Loading': return _krisajenkins$remotedata$RemoteData$Loading; default: return _krisajenkins$remotedata$RemoteData$NotAsked; } }); var _krisajenkins$remotedata$RemoteData$map2 = F3( function (f, a, b) { return A2( _krisajenkins$remotedata$RemoteData$andMap, b, A2(_krisajenkins$remotedata$RemoteData$map, f, a)); }); var _krisajenkins$remotedata$RemoteData$map3 = F4( function (f, a, b, c) { return A2( _krisajenkins$remotedata$RemoteData$andMap, c, A2( _krisajenkins$remotedata$RemoteData$andMap, b, A2(_krisajenkins$remotedata$RemoteData$map, f, a))); }); var _krisajenkins$remotedata$RemoteData$append = F2( function (a, b) { return A2( _krisajenkins$remotedata$RemoteData$andMap, b, A2( _krisajenkins$remotedata$RemoteData$map, F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; }), a)); }); var _krisajenkins$remotedata$RemoteData$update = F2( function (f, remoteData) { var _p15 = remoteData; switch (_p15.ctor) { case 'Success': var _p16 = f(_p15._0); var first = _p16._0; var second = _p16._1; return { ctor: '_Tuple2', _0: _krisajenkins$remotedata$RemoteData$Success(first), _1: second }; case 'NotAsked': return {ctor: '_Tuple2', _0: _krisajenkins$remotedata$RemoteData$NotAsked, _1: _elm_lang$core$Platform_Cmd$none}; case 'Loading': return {ctor: '_Tuple2', _0: _krisajenkins$remotedata$RemoteData$Loading, _1: _elm_lang$core$Platform_Cmd$none}; default: return { ctor: '_Tuple2', _0: _krisajenkins$remotedata$RemoteData$Failure(_p15._0), _1: _elm_lang$core$Platform_Cmd$none }; } }); var _lukewestby$elm_http_builder$HttpBuilder$replace = F2( function (old, $new) { return function (_p0) { return A2( _elm_lang$core$String$join, $new, A2(_elm_lang$core$String$split, old, _p0)); }; }); var _lukewestby$elm_http_builder$HttpBuilder$queryEscape = function (_p1) { return A3( _lukewestby$elm_http_builder$HttpBuilder$replace, '%20', '+', _elm_lang$http$Http$encodeUri(_p1)); }; var _lukewestby$elm_http_builder$HttpBuilder$queryPair = function (_p2) { var _p3 = _p2; return A2( _elm_lang$core$Basics_ops['++'], _lukewestby$elm_http_builder$HttpBuilder$queryEscape(_p3._0), A2( _elm_lang$core$Basics_ops['++'], '=', _lukewestby$elm_http_builder$HttpBuilder$queryEscape(_p3._1))); }; var _lukewestby$elm_http_builder$HttpBuilder$joinUrlEncoded = function (args) { return A2( _elm_lang$core$String$join, '&', A2(_elm_lang$core$List$map, _lukewestby$elm_http_builder$HttpBuilder$queryPair, args)); }; var _lukewestby$elm_http_builder$HttpBuilder$toRequest = function (builder) { var encodedParams = _lukewestby$elm_http_builder$HttpBuilder$joinUrlEncoded(builder.queryParams); var fullUrl = _elm_lang$core$String$isEmpty(encodedParams) ? builder.url : A2( _elm_lang$core$Basics_ops['++'], builder.url, A2(_elm_lang$core$Basics_ops['++'], '?', encodedParams)); return _elm_lang$http$Http$request( {method: builder.method, url: fullUrl, headers: builder.headers, body: builder.body, expect: builder.expect, timeout: builder.timeout, withCredentials: builder.withCredentials}); }; var _lukewestby$elm_http_builder$HttpBuilder$toTaskPlain = function (builder) { return _elm_lang$http$Http$toTask( _lukewestby$elm_http_builder$HttpBuilder$toRequest(builder)); }; var _lukewestby$elm_http_builder$HttpBuilder$withCacheBuster = F2( function (paramName, builder) { return _elm_lang$core$Native_Utils.update( builder, { cacheBuster: _elm_lang$core$Maybe$Just(paramName) }); }); var _lukewestby$elm_http_builder$HttpBuilder$withQueryParams = F2( function (queryParams, builder) { return _elm_lang$core$Native_Utils.update( builder, { queryParams: A2(_elm_lang$core$Basics_ops['++'], builder.queryParams, queryParams) }); }); var _lukewestby$elm_http_builder$HttpBuilder$toTaskWithCacheBuster = F2( function (paramName, builder) { var request = function (timestamp) { return _lukewestby$elm_http_builder$HttpBuilder$toTaskPlain( A2( _lukewestby$elm_http_builder$HttpBuilder$withQueryParams, { ctor: '::', _0: { ctor: '_Tuple2', _0: paramName, _1: _elm_lang$core$Basics$toString(timestamp) }, _1: {ctor: '[]'} }, builder)); }; return A2(_elm_lang$core$Task$andThen, request, _elm_lang$core$Time$now); }); var _lukewestby$elm_http_builder$HttpBuilder$toTask = function (builder) { var _p4 = builder.cacheBuster; if (_p4.ctor === 'Just') { return A2(_lukewestby$elm_http_builder$HttpBuilder$toTaskWithCacheBuster, _p4._0, builder); } else { return _lukewestby$elm_http_builder$HttpBuilder$toTaskPlain(builder); } }; var _lukewestby$elm_http_builder$HttpBuilder$send = F2( function (tagger, builder) { return A2( _elm_lang$core$Task$attempt, tagger, _lukewestby$elm_http_builder$HttpBuilder$toTask(builder)); }); var _lukewestby$elm_http_builder$HttpBuilder$withExpect = F2( function (expect, builder) { return _elm_lang$core$Native_Utils.update( builder, {expect: expect}); }); var _lukewestby$elm_http_builder$HttpBuilder$withCredentials = function (builder) { return _elm_lang$core$Native_Utils.update( builder, {withCredentials: true}); }; var _lukewestby$elm_http_builder$HttpBuilder$withTimeout = F2( function (timeout, builder) { return _elm_lang$core$Native_Utils.update( builder, { timeout: _elm_lang$core$Maybe$Just(timeout) }); }); var _lukewestby$elm_http_builder$HttpBuilder$withBody = F2( function (body, builder) { return _elm_lang$core$Native_Utils.update( builder, {body: body}); }); var _lukewestby$elm_http_builder$HttpBuilder$withStringBody = F2( function (contentType, value) { return _lukewestby$elm_http_builder$HttpBuilder$withBody( A2(_elm_lang$http$Http$stringBody, contentType, value)); }); var _lukewestby$elm_http_builder$HttpBuilder$withUrlEncodedBody = function (_p5) { return A2( _lukewestby$elm_http_builder$HttpBuilder$withStringBody, 'application/x-www-form-urlencoded', _lukewestby$elm_http_builder$HttpBuilder$joinUrlEncoded(_p5)); }; var _lukewestby$elm_http_builder$HttpBuilder$withJsonBody = function (value) { return _lukewestby$elm_http_builder$HttpBuilder$withBody( _elm_lang$http$Http$jsonBody(value)); }; var _lukewestby$elm_http_builder$HttpBuilder$withMultipartStringBody = function (partPairs) { return _lukewestby$elm_http_builder$HttpBuilder$withBody( _elm_lang$http$Http$multipartBody( A2( _elm_lang$core$List$map, _elm_lang$core$Basics$uncurry(_elm_lang$http$Http$stringPart), partPairs))); }; var _lukewestby$elm_http_builder$HttpBuilder$withHeaders = F2( function (headerPairs, builder) { return _elm_lang$core$Native_Utils.update( builder, { headers: A2( _elm_lang$core$Basics_ops['++'], A2( _elm_lang$core$List$map, _elm_lang$core$Basics$uncurry(_elm_lang$http$Http$header), headerPairs), builder.headers) }); }); var _lukewestby$elm_http_builder$HttpBuilder$withHeader = F3( function (key, value, builder) { return _elm_lang$core$Native_Utils.update( builder, { headers: { ctor: '::', _0: A2(_elm_lang$http$Http$header, key, value), _1: builder.headers } }); }); var _lukewestby$elm_http_builder$HttpBuilder$requestWithMethodAndUrl = F2( function (method, url) { return { method: method, url: url, headers: {ctor: '[]'}, body: _elm_lang$http$Http$emptyBody, expect: _elm_lang$http$Http$expectStringResponse( function (_p6) { return _elm_lang$core$Result$Ok( {ctor: '_Tuple0'}); }), timeout: _elm_lang$core$Maybe$Nothing, withCredentials: false, queryParams: {ctor: '[]'}, cacheBuster: _elm_lang$core$Maybe$Nothing }; }); var _lukewestby$elm_http_builder$HttpBuilder$get = _lukewestby$elm_http_builder$HttpBuilder$requestWithMethodAndUrl('GET'); var _lukewestby$elm_http_builder$HttpBuilder$post = _lukewestby$elm_http_builder$HttpBuilder$requestWithMethodAndUrl('POST'); var _lukewestby$elm_http_builder$HttpBuilder$put = _lukewestby$elm_http_builder$HttpBuilder$requestWithMethodAndUrl('PUT'); var _lukewestby$elm_http_builder$HttpBuilder$patch = _lukewestby$elm_http_builder$HttpBuilder$requestWithMethodAndUrl('PATCH'); var _lukewestby$elm_http_builder$HttpBuilder$delete = _lukewestby$elm_http_builder$HttpBuilder$requestWithMethodAndUrl('DELETE'); var _lukewestby$elm_http_builder$HttpBuilder$options = _lukewestby$elm_http_builder$HttpBuilder$requestWithMethodAndUrl('OPTIONS'); var _lukewestby$elm_http_builder$HttpBuilder$trace = _lukewestby$elm_http_builder$HttpBuilder$requestWithMethodAndUrl('TRACE'); var _lukewestby$elm_http_builder$HttpBuilder$head = _lukewestby$elm_http_builder$HttpBuilder$requestWithMethodAndUrl('HEAD'); var _lukewestby$elm_http_builder$HttpBuilder$RequestBuilder = F9( function (a, b, c, d, e, f, g, h, i) { return {method: a, headers: b, url: c, body: d, expect: e, timeout: f, withCredentials: g, queryParams: h, cacheBuster: i}; }); var _pablohirafuji$elm_qrcode$QRCode_ECLevel$H = {ctor: 'H'}; var _pablohirafuji$elm_qrcode$QRCode_ECLevel$Q = {ctor: 'Q'}; var _pablohirafuji$elm_qrcode$QRCode_ECLevel$M = {ctor: 'M'}; var _pablohirafuji$elm_qrcode$QRCode_ECLevel$L = {ctor: 'L'}; var _pablohirafuji$elm_qrcode$QRCode_Error$InputLengthOverflow = {ctor: 'InputLengthOverflow'}; var _pablohirafuji$elm_qrcode$QRCode_Error$PolynomialMod = {ctor: 'PolynomialMod'}; var _pablohirafuji$elm_qrcode$QRCode_Error$PolynomialMultiply = {ctor: 'PolynomialMultiply'}; var _pablohirafuji$elm_qrcode$QRCode_Error$LogTableException = function (a) { return {ctor: 'LogTableException', _0: a}; }; var _pablohirafuji$elm_qrcode$QRCode_Error$InvalidBinaryConversion = {ctor: 'InvalidBinaryConversion'}; var _pablohirafuji$elm_qrcode$QRCode_Error$InvalidUTF8Char = {ctor: 'InvalidUTF8Char'}; var _pablohirafuji$elm_qrcode$QRCode_Error$InvalidAlphanumericChar = {ctor: 'InvalidAlphanumericChar'}; var _pablohirafuji$elm_qrcode$QRCode_Error$InvalidNumericChar = {ctor: 'InvalidNumericChar'}; var _pablohirafuji$elm_qrcode$QRCode_Error$AlignmentPatternNotFound = {ctor: 'AlignmentPatternNotFound'}; var _pablohirafuji$elm_qrcode$QRCode_Helpers$transpose = function (ll) { transpose: while (true) { var _p0 = ll; if (_p0.ctor === '[]') { return {ctor: '[]'}; } else { if (_p0._0.ctor === '[]') { var _v1 = _p0._1; ll = _v1; continue transpose; } else { var _p1 = _p0._1; var tails = A2(_elm_lang$core$List$filterMap, _elm_lang$core$List$tail, _p1); var heads = A2(_elm_lang$core$List$filterMap, _elm_lang$core$List$head, _p1); return { ctor: '::', _0: {ctor: '::', _0: _p0._0._0, _1: heads}, _1: _pablohirafuji$elm_qrcode$QRCode_Helpers$transpose( {ctor: '::', _0: _p0._0._1, _1: tails}) }; } } } }; var _pablohirafuji$elm_qrcode$QRCode_Helpers$breaker = F3( function (width, string, acc) { breaker: while (true) { var _p2 = string; if (_p2 === '') { return _elm_lang$core$List$reverse(acc); } else { var _v3 = width, _v4 = A2(_elm_lang$core$String$dropLeft, width, string), _v5 = { ctor: '::', _0: A3(_elm_lang$core$String$slice, 0, width, string), _1: acc }; width = _v3; string = _v4; acc = _v5; continue breaker; } } }); var _pablohirafuji$elm_qrcode$QRCode_Helpers$breakStr = F2( function (width, string) { return (_elm_lang$core$Native_Utils.eq(width, 0) || _elm_lang$core$Native_Utils.eq(string, '')) ? { ctor: '::', _0: string, _1: {ctor: '[]'} } : A3( _pablohirafuji$elm_qrcode$QRCode_Helpers$breaker, width, string, {ctor: '[]'}); }); var _pablohirafuji$elm_qrcode$QRCode_Helpers$listResult = F3( function (fun, listb, lista) { var _p3 = lista; if (_p3.ctor === '::') { return A2( _elm_lang$core$Result$andThen, A2( _elm_lang$core$Basics$flip, _pablohirafuji$elm_qrcode$QRCode_Helpers$listResult(fun), _p3._1), A2( _elm_lang$core$Result$map, function (r) { return {ctor: '::', _0: r, _1: listb}; }, fun(_p3._0))); } else { return _elm_lang$core$Result$Ok( _elm_lang$core$List$reverse(listb)); } }); var _pablohirafuji$elm_qrcode$QRCode_GroupInfo$blockByteCapacity = function (_p0) { var _p1 = _p0; return _p1._0 * _p1._1; }; var _pablohirafuji$elm_qrcode$QRCode_GroupInfo$byteCapacity = F2( function (group1, maybeGroup2) { var _p2 = maybeGroup2; if (_p2.ctor === 'Just') { return _pablohirafuji$elm_qrcode$QRCode_GroupInfo$blockByteCapacity(group1) + _pablohirafuji$elm_qrcode$QRCode_GroupInfo$blockByteCapacity(_p2._0); } else { return _pablohirafuji$elm_qrcode$QRCode_GroupInfo$blockByteCapacity(group1); } }); var _pablohirafuji$elm_qrcode$QRCode_GroupInfo$newGroupInfo = function (_p3) { var _p4 = _p3; var _p6 = _p4._3; var _p5 = _p4._2; return { version: _p4._0, ecPerBlock: _p4._1, group1: _p5, maybeGroup2: _p6, capacity: A2(_pablohirafuji$elm_qrcode$QRCode_GroupInfo$byteCapacity, _p5, _p6) * 8 }; }; var _pablohirafuji$elm_qrcode$QRCode_GroupInfo$dataL = A2( _elm_lang$core$List$map, _pablohirafuji$elm_qrcode$QRCode_GroupInfo$newGroupInfo, { ctor: '::', _0: { ctor: '_Tuple4', _0: 1, _1: 7, _2: {ctor: '_Tuple2', _0: 1, _1: 19}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 2, _1: 10, _2: {ctor: '_Tuple2', _0: 1, _1: 34}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 3, _1: 15, _2: {ctor: '_Tuple2', _0: 1, _1: 55}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 4, _1: 20, _2: {ctor: '_Tuple2', _0: 1, _1: 80}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 5, _1: 26, _2: {ctor: '_Tuple2', _0: 1, _1: 108}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 6, _1: 18, _2: {ctor: '_Tuple2', _0: 2, _1: 68}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 7, _1: 20, _2: {ctor: '_Tuple2', _0: 2, _1: 78}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 8, _1: 24, _2: {ctor: '_Tuple2', _0: 2, _1: 97}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 9, _1: 30, _2: {ctor: '_Tuple2', _0: 2, _1: 116}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 10, _1: 18, _2: {ctor: '_Tuple2', _0: 2, _1: 68}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 2, _1: 69}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 11, _1: 20, _2: {ctor: '_Tuple2', _0: 4, _1: 81}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 12, _1: 24, _2: {ctor: '_Tuple2', _0: 2, _1: 92}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 2, _1: 93}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 13, _1: 26, _2: {ctor: '_Tuple2', _0: 4, _1: 107}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 14, _1: 30, _2: {ctor: '_Tuple2', _0: 3, _1: 115}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 1, _1: 116}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 15, _1: 22, _2: {ctor: '_Tuple2', _0: 5, _1: 87}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 1, _1: 88}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 16, _1: 24, _2: {ctor: '_Tuple2', _0: 5, _1: 98}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 1, _1: 99}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 17, _1: 28, _2: {ctor: '_Tuple2', _0: 1, _1: 107}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 5, _1: 108}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 18, _1: 30, _2: {ctor: '_Tuple2', _0: 5, _1: 120}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 1, _1: 121}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 19, _1: 28, _2: {ctor: '_Tuple2', _0: 3, _1: 113}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 114}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 20, _1: 28, _2: {ctor: '_Tuple2', _0: 3, _1: 107}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 5, _1: 108}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 21, _1: 28, _2: {ctor: '_Tuple2', _0: 4, _1: 116}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 117}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 22, _1: 28, _2: {ctor: '_Tuple2', _0: 2, _1: 111}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 7, _1: 112}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 23, _1: 30, _2: {ctor: '_Tuple2', _0: 4, _1: 121}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 5, _1: 122}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 24, _1: 30, _2: {ctor: '_Tuple2', _0: 6, _1: 117}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 118}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 25, _1: 26, _2: {ctor: '_Tuple2', _0: 8, _1: 106}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 107}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 26, _1: 28, _2: {ctor: '_Tuple2', _0: 10, _1: 114}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 2, _1: 115}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 27, _1: 30, _2: {ctor: '_Tuple2', _0: 8, _1: 122}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 123}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 28, _1: 30, _2: {ctor: '_Tuple2', _0: 3, _1: 117}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 10, _1: 118}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 29, _1: 30, _2: {ctor: '_Tuple2', _0: 7, _1: 116}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 7, _1: 117}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 30, _1: 30, _2: {ctor: '_Tuple2', _0: 5, _1: 115}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 10, _1: 116}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 31, _1: 30, _2: {ctor: '_Tuple2', _0: 13, _1: 115}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 3, _1: 116}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 32, _1: 30, _2: {ctor: '_Tuple2', _0: 17, _1: 115}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 33, _1: 30, _2: {ctor: '_Tuple2', _0: 17, _1: 115}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 1, _1: 116}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 34, _1: 30, _2: {ctor: '_Tuple2', _0: 13, _1: 115}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 6, _1: 116}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 35, _1: 30, _2: {ctor: '_Tuple2', _0: 12, _1: 121}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 7, _1: 122}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 36, _1: 30, _2: {ctor: '_Tuple2', _0: 6, _1: 121}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 14, _1: 122}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 37, _1: 30, _2: {ctor: '_Tuple2', _0: 17, _1: 122}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 123}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 38, _1: 30, _2: {ctor: '_Tuple2', _0: 4, _1: 122}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 18, _1: 123}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 39, _1: 30, _2: {ctor: '_Tuple2', _0: 20, _1: 117}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 118}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 40, _1: 30, _2: {ctor: '_Tuple2', _0: 19, _1: 118}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 6, _1: 119}) }, _1: {ctor: '[]'} } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }); var _pablohirafuji$elm_qrcode$QRCode_GroupInfo$dataM = A2( _elm_lang$core$List$map, _pablohirafuji$elm_qrcode$QRCode_GroupInfo$newGroupInfo, { ctor: '::', _0: { ctor: '_Tuple4', _0: 1, _1: 10, _2: {ctor: '_Tuple2', _0: 1, _1: 16}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 2, _1: 16, _2: {ctor: '_Tuple2', _0: 1, _1: 28}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 3, _1: 26, _2: {ctor: '_Tuple2', _0: 1, _1: 44}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 4, _1: 18, _2: {ctor: '_Tuple2', _0: 2, _1: 32}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 5, _1: 24, _2: {ctor: '_Tuple2', _0: 2, _1: 43}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 6, _1: 16, _2: {ctor: '_Tuple2', _0: 4, _1: 27}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 7, _1: 18, _2: {ctor: '_Tuple2', _0: 4, _1: 31}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 8, _1: 22, _2: {ctor: '_Tuple2', _0: 2, _1: 38}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 2, _1: 39}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 9, _1: 22, _2: {ctor: '_Tuple2', _0: 3, _1: 36}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 2, _1: 37}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 10, _1: 26, _2: {ctor: '_Tuple2', _0: 4, _1: 43}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 1, _1: 44}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 11, _1: 30, _2: {ctor: '_Tuple2', _0: 1, _1: 50}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 51}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 12, _1: 22, _2: {ctor: '_Tuple2', _0: 6, _1: 36}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 2, _1: 37}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 13, _1: 22, _2: {ctor: '_Tuple2', _0: 8, _1: 37}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 1, _1: 38}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 14, _1: 24, _2: {ctor: '_Tuple2', _0: 4, _1: 40}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 5, _1: 41}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 15, _1: 24, _2: {ctor: '_Tuple2', _0: 5, _1: 41}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 5, _1: 42}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 16, _1: 28, _2: {ctor: '_Tuple2', _0: 7, _1: 45}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 3, _1: 46}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 17, _1: 28, _2: {ctor: '_Tuple2', _0: 10, _1: 46}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 1, _1: 47}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 18, _1: 26, _2: {ctor: '_Tuple2', _0: 9, _1: 43}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 44}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 19, _1: 26, _2: {ctor: '_Tuple2', _0: 3, _1: 44}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 11, _1: 45}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 20, _1: 26, _2: {ctor: '_Tuple2', _0: 3, _1: 41}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 13, _1: 42}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 21, _1: 26, _2: {ctor: '_Tuple2', _0: 17, _1: 42}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 22, _1: 28, _2: {ctor: '_Tuple2', _0: 17, _1: 46}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 23, _1: 28, _2: {ctor: '_Tuple2', _0: 4, _1: 47}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 14, _1: 48}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 24, _1: 28, _2: {ctor: '_Tuple2', _0: 6, _1: 45}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 14, _1: 46}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 25, _1: 28, _2: {ctor: '_Tuple2', _0: 8, _1: 47}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 13, _1: 48}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 26, _1: 28, _2: {ctor: '_Tuple2', _0: 19, _1: 46}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 47}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 27, _1: 28, _2: {ctor: '_Tuple2', _0: 22, _1: 45}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 3, _1: 46}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 28, _1: 28, _2: {ctor: '_Tuple2', _0: 3, _1: 45}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 23, _1: 46}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 29, _1: 28, _2: {ctor: '_Tuple2', _0: 21, _1: 45}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 7, _1: 46}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 30, _1: 28, _2: {ctor: '_Tuple2', _0: 19, _1: 47}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 10, _1: 48}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 31, _1: 28, _2: {ctor: '_Tuple2', _0: 2, _1: 46}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 29, _1: 47}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 32, _1: 28, _2: {ctor: '_Tuple2', _0: 10, _1: 46}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 23, _1: 47}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 33, _1: 28, _2: {ctor: '_Tuple2', _0: 14, _1: 46}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 21, _1: 47}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 34, _1: 28, _2: {ctor: '_Tuple2', _0: 14, _1: 46}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 23, _1: 47}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 35, _1: 28, _2: {ctor: '_Tuple2', _0: 12, _1: 47}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 26, _1: 48}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 36, _1: 28, _2: {ctor: '_Tuple2', _0: 6, _1: 47}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 34, _1: 48}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 37, _1: 28, _2: {ctor: '_Tuple2', _0: 29, _1: 46}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 14, _1: 47}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 38, _1: 28, _2: {ctor: '_Tuple2', _0: 13, _1: 46}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 32, _1: 47}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 39, _1: 28, _2: {ctor: '_Tuple2', _0: 40, _1: 47}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 7, _1: 48}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 40, _1: 28, _2: {ctor: '_Tuple2', _0: 18, _1: 47}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 31, _1: 48}) }, _1: {ctor: '[]'} } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }); var _pablohirafuji$elm_qrcode$QRCode_GroupInfo$dataQ = A2( _elm_lang$core$List$map, _pablohirafuji$elm_qrcode$QRCode_GroupInfo$newGroupInfo, { ctor: '::', _0: { ctor: '_Tuple4', _0: 1, _1: 13, _2: {ctor: '_Tuple2', _0: 1, _1: 13}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 2, _1: 22, _2: {ctor: '_Tuple2', _0: 1, _1: 22}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 3, _1: 18, _2: {ctor: '_Tuple2', _0: 2, _1: 17}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 4, _1: 26, _2: {ctor: '_Tuple2', _0: 2, _1: 24}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 5, _1: 18, _2: {ctor: '_Tuple2', _0: 2, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 2, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 6, _1: 24, _2: {ctor: '_Tuple2', _0: 4, _1: 19}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 7, _1: 18, _2: {ctor: '_Tuple2', _0: 2, _1: 14}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 15}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 8, _1: 22, _2: {ctor: '_Tuple2', _0: 4, _1: 18}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 2, _1: 19}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 9, _1: 20, _2: {ctor: '_Tuple2', _0: 4, _1: 16}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 17}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 10, _1: 24, _2: {ctor: '_Tuple2', _0: 6, _1: 19}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 2, _1: 20}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 11, _1: 28, _2: {ctor: '_Tuple2', _0: 4, _1: 22}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 23}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 12, _1: 26, _2: {ctor: '_Tuple2', _0: 4, _1: 20}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 6, _1: 21}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 13, _1: 24, _2: {ctor: '_Tuple2', _0: 8, _1: 20}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 21}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 14, _1: 20, _2: {ctor: '_Tuple2', _0: 11, _1: 16}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 5, _1: 17}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 15, _1: 30, _2: {ctor: '_Tuple2', _0: 5, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 7, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 16, _1: 24, _2: {ctor: '_Tuple2', _0: 15, _1: 19}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 2, _1: 20}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 17, _1: 28, _2: {ctor: '_Tuple2', _0: 1, _1: 22}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 15, _1: 23}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 18, _1: 28, _2: {ctor: '_Tuple2', _0: 17, _1: 22}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 1, _1: 23}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 19, _1: 26, _2: {ctor: '_Tuple2', _0: 17, _1: 21}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 22}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 20, _1: 30, _2: {ctor: '_Tuple2', _0: 15, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 5, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 21, _1: 28, _2: {ctor: '_Tuple2', _0: 17, _1: 22}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 6, _1: 23}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 22, _1: 30, _2: {ctor: '_Tuple2', _0: 7, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 16, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 23, _1: 30, _2: {ctor: '_Tuple2', _0: 11, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 14, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 24, _1: 30, _2: {ctor: '_Tuple2', _0: 11, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 16, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 25, _1: 30, _2: {ctor: '_Tuple2', _0: 7, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 22, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 26, _1: 28, _2: {ctor: '_Tuple2', _0: 28, _1: 22}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 6, _1: 23}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 27, _1: 30, _2: {ctor: '_Tuple2', _0: 8, _1: 23}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 26, _1: 24}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 28, _1: 30, _2: {ctor: '_Tuple2', _0: 4, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 31, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 29, _1: 30, _2: {ctor: '_Tuple2', _0: 1, _1: 23}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 37, _1: 24}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 30, _1: 30, _2: {ctor: '_Tuple2', _0: 15, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 25, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 31, _1: 30, _2: {ctor: '_Tuple2', _0: 42, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 1, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 32, _1: 30, _2: {ctor: '_Tuple2', _0: 10, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 35, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 33, _1: 30, _2: {ctor: '_Tuple2', _0: 29, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 19, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 34, _1: 30, _2: {ctor: '_Tuple2', _0: 44, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 7, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 35, _1: 30, _2: {ctor: '_Tuple2', _0: 39, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 14, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 36, _1: 30, _2: {ctor: '_Tuple2', _0: 46, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 10, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 37, _1: 30, _2: {ctor: '_Tuple2', _0: 49, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 10, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 38, _1: 30, _2: {ctor: '_Tuple2', _0: 48, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 14, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 39, _1: 30, _2: {ctor: '_Tuple2', _0: 43, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 22, _1: 25}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 40, _1: 30, _2: {ctor: '_Tuple2', _0: 34, _1: 24}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 34, _1: 25}) }, _1: {ctor: '[]'} } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }); var _pablohirafuji$elm_qrcode$QRCode_GroupInfo$dataH = A2( _elm_lang$core$List$map, _pablohirafuji$elm_qrcode$QRCode_GroupInfo$newGroupInfo, { ctor: '::', _0: { ctor: '_Tuple4', _0: 1, _1: 17, _2: {ctor: '_Tuple2', _0: 1, _1: 9}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 2, _1: 28, _2: {ctor: '_Tuple2', _0: 1, _1: 16}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 3, _1: 22, _2: {ctor: '_Tuple2', _0: 2, _1: 13}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 4, _1: 16, _2: {ctor: '_Tuple2', _0: 4, _1: 9}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 5, _1: 22, _2: {ctor: '_Tuple2', _0: 2, _1: 11}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 2, _1: 12}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 6, _1: 28, _2: {ctor: '_Tuple2', _0: 4, _1: 15}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 7, _1: 26, _2: {ctor: '_Tuple2', _0: 4, _1: 13}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 1, _1: 14}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 8, _1: 26, _2: {ctor: '_Tuple2', _0: 4, _1: 14}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 2, _1: 15}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 9, _1: 24, _2: {ctor: '_Tuple2', _0: 4, _1: 12}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 13}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 10, _1: 28, _2: {ctor: '_Tuple2', _0: 6, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 2, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 11, _1: 24, _2: {ctor: '_Tuple2', _0: 3, _1: 12}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 8, _1: 13}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 12, _1: 28, _2: {ctor: '_Tuple2', _0: 7, _1: 14}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 15}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 13, _1: 22, _2: {ctor: '_Tuple2', _0: 12, _1: 11}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 12}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 14, _1: 24, _2: {ctor: '_Tuple2', _0: 11, _1: 12}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 5, _1: 13}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 15, _1: 24, _2: {ctor: '_Tuple2', _0: 11, _1: 12}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 7, _1: 13}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 16, _1: 30, _2: {ctor: '_Tuple2', _0: 3, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 13, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 17, _1: 28, _2: {ctor: '_Tuple2', _0: 2, _1: 14}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 17, _1: 15}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 18, _1: 28, _2: {ctor: '_Tuple2', _0: 2, _1: 14}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 19, _1: 15}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 19, _1: 26, _2: {ctor: '_Tuple2', _0: 9, _1: 13}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 16, _1: 14}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 20, _1: 28, _2: {ctor: '_Tuple2', _0: 15, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 10, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 21, _1: 30, _2: {ctor: '_Tuple2', _0: 19, _1: 16}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 6, _1: 17}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 22, _1: 24, _2: {ctor: '_Tuple2', _0: 34, _1: 13}, _3: _elm_lang$core$Maybe$Nothing }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 23, _1: 30, _2: {ctor: '_Tuple2', _0: 16, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 14, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 24, _1: 30, _2: {ctor: '_Tuple2', _0: 30, _1: 16}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 2, _1: 17}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 25, _1: 30, _2: {ctor: '_Tuple2', _0: 22, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 13, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 26, _1: 30, _2: {ctor: '_Tuple2', _0: 33, _1: 16}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 4, _1: 17}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 27, _1: 30, _2: {ctor: '_Tuple2', _0: 12, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 28, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 28, _1: 30, _2: {ctor: '_Tuple2', _0: 11, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 31, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 29, _1: 30, _2: {ctor: '_Tuple2', _0: 19, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 26, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 30, _1: 30, _2: {ctor: '_Tuple2', _0: 23, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 25, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 31, _1: 30, _2: {ctor: '_Tuple2', _0: 23, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 28, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 32, _1: 30, _2: {ctor: '_Tuple2', _0: 19, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 35, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 33, _1: 30, _2: {ctor: '_Tuple2', _0: 11, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 46, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 34, _1: 30, _2: {ctor: '_Tuple2', _0: 59, _1: 16}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 1, _1: 17}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 35, _1: 30, _2: {ctor: '_Tuple2', _0: 22, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 41, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 36, _1: 30, _2: {ctor: '_Tuple2', _0: 2, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 64, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 37, _1: 30, _2: {ctor: '_Tuple2', _0: 24, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 46, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 38, _1: 30, _2: {ctor: '_Tuple2', _0: 42, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 32, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 39, _1: 30, _2: {ctor: '_Tuple2', _0: 10, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 67, _1: 16}) }, _1: { ctor: '::', _0: { ctor: '_Tuple4', _0: 40, _1: 30, _2: {ctor: '_Tuple2', _0: 20, _1: 15}, _3: _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: 61, _1: 16}) }, _1: {ctor: '[]'} } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }); var _pablohirafuji$elm_qrcode$QRCode_GroupInfo$getGroupData = function (ecLevel) { var _p7 = ecLevel; switch (_p7.ctor) { case 'L': return _pablohirafuji$elm_qrcode$QRCode_GroupInfo$dataL; case 'M': return _pablohirafuji$elm_qrcode$QRCode_GroupInfo$dataM; case 'Q': return _pablohirafuji$elm_qrcode$QRCode_GroupInfo$dataQ; default: return _pablohirafuji$elm_qrcode$QRCode_GroupInfo$dataH; } }; var _pablohirafuji$elm_qrcode$QRCode_GroupInfo$GroupInfo = F5( function (a, b, c, d, e) { return {version: a, ecPerBlock: b, group1: c, maybeGroup2: d, capacity: e}; }); var _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$logTable = _elm_lang$core$Array$fromList( { ctor: '::', _0: 0, _1: { ctor: '::', _0: 1, _1: { ctor: '::', _0: 25, _1: { ctor: '::', _0: 2, _1: { ctor: '::', _0: 50, _1: { ctor: '::', _0: 26, _1: { ctor: '::', _0: 198, _1: { ctor: '::', _0: 3, _1: { ctor: '::', _0: 223, _1: { ctor: '::', _0: 51, _1: { ctor: '::', _0: 238, _1: { ctor: '::', _0: 27, _1: { ctor: '::', _0: 104, _1: { ctor: '::', _0: 199, _1: { ctor: '::', _0: 75, _1: { ctor: '::', _0: 4, _1: { ctor: '::', _0: 100, _1: { ctor: '::', _0: 224, _1: { ctor: '::', _0: 14, _1: { ctor: '::', _0: 52, _1: { ctor: '::', _0: 141, _1: { ctor: '::', _0: 239, _1: { ctor: '::', _0: 129, _1: { ctor: '::', _0: 28, _1: { ctor: '::', _0: 193, _1: { ctor: '::', _0: 105, _1: { ctor: '::', _0: 248, _1: { ctor: '::', _0: 200, _1: { ctor: '::', _0: 8, _1: { ctor: '::', _0: 76, _1: { ctor: '::', _0: 113, _1: { ctor: '::', _0: 5, _1: { ctor: '::', _0: 138, _1: { ctor: '::', _0: 101, _1: { ctor: '::', _0: 47, _1: { ctor: '::', _0: 225, _1: { ctor: '::', _0: 36, _1: { ctor: '::', _0: 15, _1: { ctor: '::', _0: 33, _1: { ctor: '::', _0: 53, _1: { ctor: '::', _0: 147, _1: { ctor: '::', _0: 142, _1: { ctor: '::', _0: 218, _1: { ctor: '::', _0: 240, _1: { ctor: '::', _0: 18, _1: { ctor: '::', _0: 130, _1: { ctor: '::', _0: 69, _1: { ctor: '::', _0: 29, _1: { ctor: '::', _0: 181, _1: { ctor: '::', _0: 194, _1: { ctor: '::', _0: 125, _1: { ctor: '::', _0: 106, _1: { ctor: '::', _0: 39, _1: { ctor: '::', _0: 249, _1: { ctor: '::', _0: 185, _1: { ctor: '::', _0: 201, _1: { ctor: '::', _0: 154, _1: { ctor: '::', _0: 9, _1: { ctor: '::', _0: 120, _1: { ctor: '::', _0: 77, _1: { ctor: '::', _0: 228, _1: { ctor: '::', _0: 114, _1: { ctor: '::', _0: 166, _1: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 191, _1: { ctor: '::', _0: 139, _1: { ctor: '::', _0: 98, _1: { ctor: '::', _0: 102, _1: { ctor: '::', _0: 221, _1: { ctor: '::', _0: 48, _1: { ctor: '::', _0: 253, _1: { ctor: '::', _0: 226, _1: { ctor: '::', _0: 152, _1: { ctor: '::', _0: 37, _1: { ctor: '::', _0: 179, _1: { ctor: '::', _0: 16, _1: { ctor: '::', _0: 145, _1: { ctor: '::', _0: 34, _1: { ctor: '::', _0: 136, _1: { ctor: '::', _0: 54, _1: { ctor: '::', _0: 208, _1: { ctor: '::', _0: 148, _1: { ctor: '::', _0: 206, _1: { ctor: '::', _0: 143, _1: { ctor: '::', _0: 150, _1: { ctor: '::', _0: 219, _1: { ctor: '::', _0: 189, _1: { ctor: '::', _0: 241, _1: { ctor: '::', _0: 210, _1: { ctor: '::', _0: 19, _1: { ctor: '::', _0: 92, _1: { ctor: '::', _0: 131, _1: { ctor: '::', _0: 56, _1: { ctor: '::', _0: 70, _1: { ctor: '::', _0: 64, _1: { ctor: '::', _0: 30, _1: { ctor: '::', _0: 66, _1: { ctor: '::', _0: 182, _1: { ctor: '::', _0: 163, _1: { ctor: '::', _0: 195, _1: { ctor: '::', _0: 72, _1: { ctor: '::', _0: 126, _1: { ctor: '::', _0: 110, _1: { ctor: '::', _0: 107, _1: { ctor: '::', _0: 58, _1: { ctor: '::', _0: 40, _1: { ctor: '::', _0: 84, _1: { ctor: '::', _0: 250, _1: { ctor: '::', _0: 133, _1: { ctor: '::', _0: 186, _1: { ctor: '::', _0: 61, _1: { ctor: '::', _0: 202, _1: { ctor: '::', _0: 94, _1: { ctor: '::', _0: 155, _1: { ctor: '::', _0: 159, _1: { ctor: '::', _0: 10, _1: { ctor: '::', _0: 21, _1: { ctor: '::', _0: 121, _1: { ctor: '::', _0: 43, _1: { ctor: '::', _0: 78, _1: { ctor: '::', _0: 212, _1: { ctor: '::', _0: 229, _1: { ctor: '::', _0: 172, _1: { ctor: '::', _0: 115, _1: { ctor: '::', _0: 243, _1: { ctor: '::', _0: 167, _1: { ctor: '::', _0: 87, _1: { ctor: '::', _0: 7, _1: { ctor: '::', _0: 112, _1: { ctor: '::', _0: 192, _1: { ctor: '::', _0: 247, _1: { ctor: '::', _0: 140, _1: { ctor: '::', _0: 128, _1: { ctor: '::', _0: 99, _1: { ctor: '::', _0: 13, _1: { ctor: '::', _0: 103, _1: { ctor: '::', _0: 74, _1: { ctor: '::', _0: 222, _1: { ctor: '::', _0: 237, _1: { ctor: '::', _0: 49, _1: { ctor: '::', _0: 197, _1: { ctor: '::', _0: 254, _1: { ctor: '::', _0: 24, _1: { ctor: '::', _0: 227, _1: { ctor: '::', _0: 165, _1: { ctor: '::', _0: 153, _1: { ctor: '::', _0: 119, _1: { ctor: '::', _0: 38, _1: { ctor: '::', _0: 184, _1: { ctor: '::', _0: 180, _1: { ctor: '::', _0: 124, _1: { ctor: '::', _0: 17, _1: { ctor: '::', _0: 68, _1: { ctor: '::', _0: 146, _1: { ctor: '::', _0: 217, _1: { ctor: '::', _0: 35, _1: { ctor: '::', _0: 32, _1: { ctor: '::', _0: 137, _1: { ctor: '::', _0: 46, _1: { ctor: '::', _0: 55, _1: { ctor: '::', _0: 63, _1: { ctor: '::', _0: 209, _1: { ctor: '::', _0: 91, _1: { ctor: '::', _0: 149, _1: { ctor: '::', _0: 188, _1: { ctor: '::', _0: 207, _1: { ctor: '::', _0: 205, _1: { ctor: '::', _0: 144, _1: { ctor: '::', _0: 135, _1: { ctor: '::', _0: 151, _1: { ctor: '::', _0: 178, _1: { ctor: '::', _0: 220, _1: { ctor: '::', _0: 252, _1: { ctor: '::', _0: 190, _1: { ctor: '::', _0: 97, _1: { ctor: '::', _0: 242, _1: { ctor: '::', _0: 86, _1: { ctor: '::', _0: 211, _1: { ctor: '::', _0: 171, _1: { ctor: '::', _0: 20, _1: { ctor: '::', _0: 42, _1: { ctor: '::', _0: 93, _1: { ctor: '::', _0: 158, _1: { ctor: '::', _0: 132, _1: { ctor: '::', _0: 60, _1: { ctor: '::', _0: 57, _1: { ctor: '::', _0: 83, _1: { ctor: '::', _0: 71, _1: { ctor: '::', _0: 109, _1: { ctor: '::', _0: 65, _1: { ctor: '::', _0: 162, _1: { ctor: '::', _0: 31, _1: { ctor: '::', _0: 45, _1: { ctor: '::', _0: 67, _1: { ctor: '::', _0: 216, _1: { ctor: '::', _0: 183, _1: { ctor: '::', _0: 123, _1: { ctor: '::', _0: 164, _1: { ctor: '::', _0: 118, _1: { ctor: '::', _0: 196, _1: { ctor: '::', _0: 23, _1: { ctor: '::', _0: 73, _1: { ctor: '::', _0: 236, _1: { ctor: '::', _0: 127, _1: { ctor: '::', _0: 12, _1: { ctor: '::', _0: 111, _1: { ctor: '::', _0: 246, _1: { ctor: '::', _0: 108, _1: { ctor: '::', _0: 161, _1: { ctor: '::', _0: 59, _1: { ctor: '::', _0: 82, _1: { ctor: '::', _0: 41, _1: { ctor: '::', _0: 157, _1: { ctor: '::', _0: 85, _1: { ctor: '::', _0: 170, _1: { ctor: '::', _0: 251, _1: { ctor: '::', _0: 96, _1: { ctor: '::', _0: 134, _1: { ctor: '::', _0: 177, _1: { ctor: '::', _0: 187, _1: { ctor: '::', _0: 204, _1: { ctor: '::', _0: 62, _1: { ctor: '::', _0: 90, _1: { ctor: '::', _0: 203, _1: { ctor: '::', _0: 89, _1: { ctor: '::', _0: 95, _1: { ctor: '::', _0: 176, _1: { ctor: '::', _0: 156, _1: { ctor: '::', _0: 169, _1: { ctor: '::', _0: 160, _1: { ctor: '::', _0: 81, _1: { ctor: '::', _0: 11, _1: { ctor: '::', _0: 245, _1: { ctor: '::', _0: 22, _1: { ctor: '::', _0: 235, _1: { ctor: '::', _0: 122, _1: { ctor: '::', _0: 117, _1: { ctor: '::', _0: 44, _1: { ctor: '::', _0: 215, _1: { ctor: '::', _0: 79, _1: { ctor: '::', _0: 174, _1: { ctor: '::', _0: 213, _1: { ctor: '::', _0: 233, _1: { ctor: '::', _0: 230, _1: { ctor: '::', _0: 231, _1: { ctor: '::', _0: 173, _1: { ctor: '::', _0: 232, _1: { ctor: '::', _0: 116, _1: { ctor: '::', _0: 214, _1: { ctor: '::', _0: 244, _1: { ctor: '::', _0: 234, _1: { ctor: '::', _0: 168, _1: { ctor: '::', _0: 80, _1: { ctor: '::', _0: 88, _1: { ctor: '::', _0: 175, _1: {ctor: '[]'} } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }); var _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$getLog = function (index) { return (_elm_lang$core$Native_Utils.cmp(index, 1) < 0) ? _elm_lang$core$Result$Err( _pablohirafuji$elm_qrcode$QRCode_Error$LogTableException(index)) : A2( _elm_lang$core$Result$fromMaybe, _pablohirafuji$elm_qrcode$QRCode_Error$LogTableException(index), A2(_elm_lang$core$Array$get, index - 1, _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$logTable)); }; var _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$expTable = _elm_lang$core$Array$fromList( { ctor: '::', _0: 1, _1: { ctor: '::', _0: 2, _1: { ctor: '::', _0: 4, _1: { ctor: '::', _0: 8, _1: { ctor: '::', _0: 16, _1: { ctor: '::', _0: 32, _1: { ctor: '::', _0: 64, _1: { ctor: '::', _0: 128, _1: { ctor: '::', _0: 29, _1: { ctor: '::', _0: 58, _1: { ctor: '::', _0: 116, _1: { ctor: '::', _0: 232, _1: { ctor: '::', _0: 205, _1: { ctor: '::', _0: 135, _1: { ctor: '::', _0: 19, _1: { ctor: '::', _0: 38, _1: { ctor: '::', _0: 76, _1: { ctor: '::', _0: 152, _1: { ctor: '::', _0: 45, _1: { ctor: '::', _0: 90, _1: { ctor: '::', _0: 180, _1: { ctor: '::', _0: 117, _1: { ctor: '::', _0: 234, _1: { ctor: '::', _0: 201, _1: { ctor: '::', _0: 143, _1: { ctor: '::', _0: 3, _1: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 12, _1: { ctor: '::', _0: 24, _1: { ctor: '::', _0: 48, _1: { ctor: '::', _0: 96, _1: { ctor: '::', _0: 192, _1: { ctor: '::', _0: 157, _1: { ctor: '::', _0: 39, _1: { ctor: '::', _0: 78, _1: { ctor: '::', _0: 156, _1: { ctor: '::', _0: 37, _1: { ctor: '::', _0: 74, _1: { ctor: '::', _0: 148, _1: { ctor: '::', _0: 53, _1: { ctor: '::', _0: 106, _1: { ctor: '::', _0: 212, _1: { ctor: '::', _0: 181, _1: { ctor: '::', _0: 119, _1: { ctor: '::', _0: 238, _1: { ctor: '::', _0: 193, _1: { ctor: '::', _0: 159, _1: { ctor: '::', _0: 35, _1: { ctor: '::', _0: 70, _1: { ctor: '::', _0: 140, _1: { ctor: '::', _0: 5, _1: { ctor: '::', _0: 10, _1: { ctor: '::', _0: 20, _1: { ctor: '::', _0: 40, _1: { ctor: '::', _0: 80, _1: { ctor: '::', _0: 160, _1: { ctor: '::', _0: 93, _1: { ctor: '::', _0: 186, _1: { ctor: '::', _0: 105, _1: { ctor: '::', _0: 210, _1: { ctor: '::', _0: 185, _1: { ctor: '::', _0: 111, _1: { ctor: '::', _0: 222, _1: { ctor: '::', _0: 161, _1: { ctor: '::', _0: 95, _1: { ctor: '::', _0: 190, _1: { ctor: '::', _0: 97, _1: { ctor: '::', _0: 194, _1: { ctor: '::', _0: 153, _1: { ctor: '::', _0: 47, _1: { ctor: '::', _0: 94, _1: { ctor: '::', _0: 188, _1: { ctor: '::', _0: 101, _1: { ctor: '::', _0: 202, _1: { ctor: '::', _0: 137, _1: { ctor: '::', _0: 15, _1: { ctor: '::', _0: 30, _1: { ctor: '::', _0: 60, _1: { ctor: '::', _0: 120, _1: { ctor: '::', _0: 240, _1: { ctor: '::', _0: 253, _1: { ctor: '::', _0: 231, _1: { ctor: '::', _0: 211, _1: { ctor: '::', _0: 187, _1: { ctor: '::', _0: 107, _1: { ctor: '::', _0: 214, _1: { ctor: '::', _0: 177, _1: { ctor: '::', _0: 127, _1: { ctor: '::', _0: 254, _1: { ctor: '::', _0: 225, _1: { ctor: '::', _0: 223, _1: { ctor: '::', _0: 163, _1: { ctor: '::', _0: 91, _1: { ctor: '::', _0: 182, _1: { ctor: '::', _0: 113, _1: { ctor: '::', _0: 226, _1: { ctor: '::', _0: 217, _1: { ctor: '::', _0: 175, _1: { ctor: '::', _0: 67, _1: { ctor: '::', _0: 134, _1: { ctor: '::', _0: 17, _1: { ctor: '::', _0: 34, _1: { ctor: '::', _0: 68, _1: { ctor: '::', _0: 136, _1: { ctor: '::', _0: 13, _1: { ctor: '::', _0: 26, _1: { ctor: '::', _0: 52, _1: { ctor: '::', _0: 104, _1: { ctor: '::', _0: 208, _1: { ctor: '::', _0: 189, _1: { ctor: '::', _0: 103, _1: { ctor: '::', _0: 206, _1: { ctor: '::', _0: 129, _1: { ctor: '::', _0: 31, _1: { ctor: '::', _0: 62, _1: { ctor: '::', _0: 124, _1: { ctor: '::', _0: 248, _1: { ctor: '::', _0: 237, _1: { ctor: '::', _0: 199, _1: { ctor: '::', _0: 147, _1: { ctor: '::', _0: 59, _1: { ctor: '::', _0: 118, _1: { ctor: '::', _0: 236, _1: { ctor: '::', _0: 197, _1: { ctor: '::', _0: 151, _1: { ctor: '::', _0: 51, _1: { ctor: '::', _0: 102, _1: { ctor: '::', _0: 204, _1: { ctor: '::', _0: 133, _1: { ctor: '::', _0: 23, _1: { ctor: '::', _0: 46, _1: { ctor: '::', _0: 92, _1: { ctor: '::', _0: 184, _1: { ctor: '::', _0: 109, _1: { ctor: '::', _0: 218, _1: { ctor: '::', _0: 169, _1: { ctor: '::', _0: 79, _1: { ctor: '::', _0: 158, _1: { ctor: '::', _0: 33, _1: { ctor: '::', _0: 66, _1: { ctor: '::', _0: 132, _1: { ctor: '::', _0: 21, _1: { ctor: '::', _0: 42, _1: { ctor: '::', _0: 84, _1: { ctor: '::', _0: 168, _1: { ctor: '::', _0: 77, _1: { ctor: '::', _0: 154, _1: { ctor: '::', _0: 41, _1: { ctor: '::', _0: 82, _1: { ctor: '::', _0: 164, _1: { ctor: '::', _0: 85, _1: { ctor: '::', _0: 170, _1: { ctor: '::', _0: 73, _1: { ctor: '::', _0: 146, _1: { ctor: '::', _0: 57, _1: { ctor: '::', _0: 114, _1: { ctor: '::', _0: 228, _1: { ctor: '::', _0: 213, _1: { ctor: '::', _0: 183, _1: { ctor: '::', _0: 115, _1: { ctor: '::', _0: 230, _1: { ctor: '::', _0: 209, _1: { ctor: '::', _0: 191, _1: { ctor: '::', _0: 99, _1: { ctor: '::', _0: 198, _1: { ctor: '::', _0: 145, _1: { ctor: '::', _0: 63, _1: { ctor: '::', _0: 126, _1: { ctor: '::', _0: 252, _1: { ctor: '::', _0: 229, _1: { ctor: '::', _0: 215, _1: { ctor: '::', _0: 179, _1: { ctor: '::', _0: 123, _1: { ctor: '::', _0: 246, _1: { ctor: '::', _0: 241, _1: { ctor: '::', _0: 255, _1: { ctor: '::', _0: 227, _1: { ctor: '::', _0: 219, _1: { ctor: '::', _0: 171, _1: { ctor: '::', _0: 75, _1: { ctor: '::', _0: 150, _1: { ctor: '::', _0: 49, _1: { ctor: '::', _0: 98, _1: { ctor: '::', _0: 196, _1: { ctor: '::', _0: 149, _1: { ctor: '::', _0: 55, _1: { ctor: '::', _0: 110, _1: { ctor: '::', _0: 220, _1: { ctor: '::', _0: 165, _1: { ctor: '::', _0: 87, _1: { ctor: '::', _0: 174, _1: { ctor: '::', _0: 65, _1: { ctor: '::', _0: 130, _1: { ctor: '::', _0: 25, _1: { ctor: '::', _0: 50, _1: { ctor: '::', _0: 100, _1: { ctor: '::', _0: 200, _1: { ctor: '::', _0: 141, _1: { ctor: '::', _0: 7, _1: { ctor: '::', _0: 14, _1: { ctor: '::', _0: 28, _1: { ctor: '::', _0: 56, _1: { ctor: '::', _0: 112, _1: { ctor: '::', _0: 224, _1: { ctor: '::', _0: 221, _1: { ctor: '::', _0: 167, _1: { ctor: '::', _0: 83, _1: { ctor: '::', _0: 166, _1: { ctor: '::', _0: 81, _1: { ctor: '::', _0: 162, _1: { ctor: '::', _0: 89, _1: { ctor: '::', _0: 178, _1: { ctor: '::', _0: 121, _1: { ctor: '::', _0: 242, _1: { ctor: '::', _0: 249, _1: { ctor: '::', _0: 239, _1: { ctor: '::', _0: 195, _1: { ctor: '::', _0: 155, _1: { ctor: '::', _0: 43, _1: { ctor: '::', _0: 86, _1: { ctor: '::', _0: 172, _1: { ctor: '::', _0: 69, _1: { ctor: '::', _0: 138, _1: { ctor: '::', _0: 9, _1: { ctor: '::', _0: 18, _1: { ctor: '::', _0: 36, _1: { ctor: '::', _0: 72, _1: { ctor: '::', _0: 144, _1: { ctor: '::', _0: 61, _1: { ctor: '::', _0: 122, _1: { ctor: '::', _0: 244, _1: { ctor: '::', _0: 245, _1: { ctor: '::', _0: 247, _1: { ctor: '::', _0: 243, _1: { ctor: '::', _0: 251, _1: { ctor: '::', _0: 235, _1: { ctor: '::', _0: 203, _1: { ctor: '::', _0: 139, _1: { ctor: '::', _0: 11, _1: { ctor: '::', _0: 22, _1: { ctor: '::', _0: 44, _1: { ctor: '::', _0: 88, _1: { ctor: '::', _0: 176, _1: { ctor: '::', _0: 125, _1: { ctor: '::', _0: 250, _1: { ctor: '::', _0: 233, _1: { ctor: '::', _0: 207, _1: { ctor: '::', _0: 131, _1: { ctor: '::', _0: 27, _1: { ctor: '::', _0: 54, _1: { ctor: '::', _0: 108, _1: { ctor: '::', _0: 216, _1: { ctor: '::', _0: 173, _1: { ctor: '::', _0: 71, _1: { ctor: '::', _0: 142, _1: { ctor: '::', _0: 1, _1: {ctor: '[]'} } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }); var _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$getExp = function (index) { return A2( _elm_lang$core$Maybe$withDefault, 0, A2( _elm_lang$core$Array$get, A2(_elm_lang$core$Basics_ops['%'], index, 255), _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$expTable)); }; var _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$getOffset = function (_p0) { getOffset: while (true) { var _p1 = _p0; var _p3 = _p1._1; var _p2 = _p1._0; if (_p2.ctor === '::') { if (_elm_lang$core$Native_Utils.eq(_p2._0, 0)) { var _v2 = {ctor: '_Tuple2', _0: _p2._1, _1: _p3 + 1}; _p0 = _v2; continue getOffset; } else { return _p3; } } else { return _p3; } } }; var _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$newPolynomial = F2( function (num, shift) { var numArray = _elm_lang$core$Array$fromList(num); var offset = _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$getOffset( {ctor: '_Tuple2', _0: num, _1: 0}); return A2( _elm_lang$core$Array$initialize, (_elm_lang$core$List$length(num) - offset) + shift, function (index) { return A2( _elm_lang$core$Maybe$withDefault, 0, A2(_elm_lang$core$Array$get, index + offset, numArray)); }); }); var _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$multiply = F2( function (poly1, poly2) { var process__ = F3( function (indexSum, num_, exp) { return A2( _elm_lang$core$Result$fromMaybe, _pablohirafuji$elm_qrcode$QRCode_Error$PolynomialMultiply, A2( _elm_lang$core$Maybe$map, _elm_lang$core$Bitwise$xor(exp), A2(_elm_lang$core$Array$get, indexSum, num_))); }); var process_ = F2( function (_p4, num_) { var _p5 = _p4; var _p6 = _p5._0; return A2( _elm_lang$core$Result$map, function (r) { return A3(_elm_lang$core$Array$set, _p6, r, num_); }, A2( _elm_lang$core$Result$andThen, A2(process__, _p6, num_), A2( _elm_lang$core$Result$map, _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$getExp, A3( _elm_lang$core$Result$map2, F2( function (x, y) { return x + y; }), _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$getLog(_p5._1), _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$getLog(_p5._2))))); }); var process = F2( function (args, numResult) { return A2( _elm_lang$core$Result$andThen, process_(args), numResult); }); var valuesArray = A2( _elm_lang$core$List$indexedMap, F2( function (index1, value1) { return A2( _elm_lang$core$List$indexedMap, F2( function (index2, value2) { return {ctor: '_Tuple3', _0: index1 + index2, _1: value1, _2: value2}; }), _elm_lang$core$Array$toList(poly2)); }), _elm_lang$core$Array$toList(poly1)); var num = A2( _elm_lang$core$Array$initialize, (_elm_lang$core$Array$length(poly1) + _elm_lang$core$Array$length(poly2)) - 1, _elm_lang$core$Basics$always(0)); return A2( _elm_lang$core$Result$map, A2(_elm_lang$core$Basics$flip, _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$newPolynomial, 0), A2( _elm_lang$core$Result$map, _elm_lang$core$Array$toList, A3( _elm_lang$core$List$foldl, process, _elm_lang$core$Result$Ok(num), _elm_lang$core$List$concat(valuesArray)))); }); var _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$mod = F2( function (poly1, poly2) { if (_elm_lang$core$Native_Utils.cmp( _elm_lang$core$Array$length(poly1) - _elm_lang$core$Array$length(poly2), 0) < 0) { return _elm_lang$core$Result$Ok(poly1); } else { var helper_ = F3( function (index2, poly1_, exp) { return A2( _elm_lang$core$Result$fromMaybe, _pablohirafuji$elm_qrcode$QRCode_Error$PolynomialMod, A2( _elm_lang$core$Maybe$map, _elm_lang$core$Bitwise$xor(exp), A2(_elm_lang$core$Array$get, index2, poly1_))); }); var getHead = function (poly) { return A2( _elm_lang$core$Result$andThen, _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$getLog, A2( _elm_lang$core$Result$fromMaybe, _pablohirafuji$elm_qrcode$QRCode_Error$PolynomialMod, A2(_elm_lang$core$Array$get, 0, poly))); }; var ratio = A3( _elm_lang$core$Result$map2, F2( function (x, y) { return x - y; }), getHead(poly1), getHead(poly2)); var helper = F2( function (_p7, poly1_) { var _p8 = _p7; var _p9 = _p8._0; return A2( _elm_lang$core$Result$map, function (r) { return A3(_elm_lang$core$Array$set, _p9, r, poly1_); }, A2( _elm_lang$core$Result$andThen, A2(helper_, _p9, poly1_), A2( _elm_lang$core$Result$map, _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$getExp, A3( _elm_lang$core$Result$map2, F2( function (x, y) { return x + y; }), ratio, _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$getLog(_p8._1))))); }); var numFold = F2( function (args, poly1Result) { return A2( _elm_lang$core$Result$andThen, helper(args), poly1Result); }); var numResult = A3( _elm_lang$core$Array$foldl, numFold, _elm_lang$core$Result$Ok(poly1), A2( _elm_lang$core$Array$indexedMap, F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; }), poly2)); return A2( _elm_lang$core$Result$andThen, A2(_elm_lang$core$Basics$flip, _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$mod, poly2), A2( _elm_lang$core$Result$map, A2(_elm_lang$core$Basics$flip, _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$newPolynomial, 0), A2(_elm_lang$core$Result$map, _elm_lang$core$Array$toList, numResult))); } }); var _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$getECPolynomial = function (ecLength) { var generate = F2( function (count, polyResult) { generate: while (true) { if (_elm_lang$core$Native_Utils.cmp(count, ecLength) < 0) { var _v5 = count + 1, _v6 = A2( _elm_lang$core$Result$andThen, A2( _elm_lang$core$Basics$flip, _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$multiply, A2( _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$newPolynomial, { ctor: '::', _0: 1, _1: { ctor: '::', _0: _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$getExp(count), _1: {ctor: '[]'} } }, 0)), polyResult); count = _v5; polyResult = _v6; continue generate; } else { return polyResult; } } }); return A2( generate, 0, _elm_lang$core$Result$Ok( A2( _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$newPolynomial, { ctor: '::', _0: 1, _1: {ctor: '[]'} }, 0))); }; var _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$get___ = F2( function (ecLength, modPoly) { return _elm_lang$core$Array$toList( A2( _elm_lang$core$Array$initialize, ecLength, function (index) { var modIndex = (index + _elm_lang$core$Array$length(modPoly)) - ecLength; return (_elm_lang$core$Native_Utils.cmp(modIndex, 0) > -1) ? A2( _elm_lang$core$Maybe$withDefault, 0, A2(_elm_lang$core$Array$get, modIndex, modPoly)) : 0; })); }); var _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$get__ = F2( function (rsPoly, dataCodewords) { return A2( _elm_lang$core$Result$map, _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$get___( _elm_lang$core$Array$length(rsPoly) - 1), A3( _elm_lang$core$Basics$flip, _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$mod, rsPoly, A2( _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$newPolynomial, dataCodewords, _elm_lang$core$Array$length(rsPoly) - 1))); }); var _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$get_ = F2( function (byteBlocks, rsPoly) { return A3( _pablohirafuji$elm_qrcode$QRCode_Helpers$listResult, _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$get__(rsPoly), {ctor: '[]'}, byteBlocks); }); var _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$get = F2( function (ecPerBlock, byteBlocks) { return A2( _elm_lang$core$Result$andThen, _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$get_(byteBlocks), _pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$getECPolynomial(ecPerBlock)); }); var _pablohirafuji$elm_qrcode$QRCode_Encode_Numeric$numericLength = function (str) { var _p0 = _elm_lang$core$String$length(str); switch (_p0) { case 1: return 4; case 2: return 7; default: return 10; } }; var _pablohirafuji$elm_qrcode$QRCode_Encode_Numeric$encodeHelp = function (str) { return A2( _elm_lang$core$Result$mapError, _elm_lang$core$Basics$always(_pablohirafuji$elm_qrcode$QRCode_Error$InvalidNumericChar), A2( _elm_lang$core$Result$map, A2( _elm_lang$core$Basics$flip, F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; }), _pablohirafuji$elm_qrcode$QRCode_Encode_Numeric$numericLength(str)), _elm_lang$core$String$toInt(str))); }; var _pablohirafuji$elm_qrcode$QRCode_Encode_Numeric$encode = function (str) { return A3( _pablohirafuji$elm_qrcode$QRCode_Helpers$listResult, _pablohirafuji$elm_qrcode$QRCode_Encode_Numeric$encodeHelp, {ctor: '[]'}, A2(_pablohirafuji$elm_qrcode$QRCode_Helpers$breakStr, 3, str)); }; var _pablohirafuji$elm_qrcode$QRCode_Encode_Numeric$regex = _elm_lang$core$Regex$regex('^[0-9]+$'); var _pablohirafuji$elm_qrcode$QRCode_Encode_Alphanumeric$alphanumericCodes = _elm_lang$core$Dict$fromList( { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('0'), _1: 0 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('1'), _1: 1 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('2'), _1: 2 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('3'), _1: 3 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('4'), _1: 4 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('5'), _1: 5 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('6'), _1: 6 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('7'), _1: 7 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('8'), _1: 8 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('9'), _1: 9 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('A'), _1: 10 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('B'), _1: 11 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('C'), _1: 12 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('D'), _1: 13 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('E'), _1: 14 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('F'), _1: 15 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('G'), _1: 16 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('H'), _1: 17 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('I'), _1: 18 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('J'), _1: 19 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('K'), _1: 20 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('L'), _1: 21 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('M'), _1: 22 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('N'), _1: 23 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('O'), _1: 24 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('P'), _1: 25 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('Q'), _1: 26 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('R'), _1: 27 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('S'), _1: 28 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('T'), _1: 29 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('U'), _1: 30 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('V'), _1: 31 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('W'), _1: 32 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('X'), _1: 33 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('Y'), _1: 34 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('Z'), _1: 35 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr(' '), _1: 36 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('$'), _1: 37 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('%'), _1: 38 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('*'), _1: 39 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('+'), _1: 40 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('-'), _1: 41 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('.'), _1: 42 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('/'), _1: 43 }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr(':'), _1: 44 }, _1: {ctor: '[]'} } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }); var _pablohirafuji$elm_qrcode$QRCode_Encode_Alphanumeric$toAlphanumericCode = function ($char) { return A2( _elm_lang$core$Result$fromMaybe, _pablohirafuji$elm_qrcode$QRCode_Error$InvalidAlphanumericChar, A2(_elm_lang$core$Dict$get, $char, _pablohirafuji$elm_qrcode$QRCode_Encode_Alphanumeric$alphanumericCodes)); }; var _pablohirafuji$elm_qrcode$QRCode_Encode_Alphanumeric$toBinary = function (str) { var _p0 = _elm_lang$core$String$toList(str); _v0_2: do { if (_p0.ctor === '::') { if (_p0._1.ctor === '::') { if (_p0._1._1.ctor === '[]') { return A2( _elm_lang$core$Result$map, A2( _elm_lang$core$Basics$flip, F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; }), 11), A2( _elm_lang$core$Result$map, function (_p1) { var _p2 = _p1; return (_p2._0 * 45) + _p2._1; }, A2( _elm_lang$core$Result$andThen, function (firstCode) { return A2( _elm_lang$core$Result$map, F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; })(firstCode), _pablohirafuji$elm_qrcode$QRCode_Encode_Alphanumeric$toAlphanumericCode(_p0._1._0)); }, _pablohirafuji$elm_qrcode$QRCode_Encode_Alphanumeric$toAlphanumericCode(_p0._0)))); } else { break _v0_2; } } else { return A2( _elm_lang$core$Result$map, A2( _elm_lang$core$Basics$flip, F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; }), 6), _pablohirafuji$elm_qrcode$QRCode_Encode_Alphanumeric$toAlphanumericCode(_p0._0)); } } else { break _v0_2; } } while(false); return _elm_lang$core$Result$Err(_pablohirafuji$elm_qrcode$QRCode_Error$InvalidAlphanumericChar); }; var _pablohirafuji$elm_qrcode$QRCode_Encode_Alphanumeric$encode = function (str) { return A3( _pablohirafuji$elm_qrcode$QRCode_Helpers$listResult, _pablohirafuji$elm_qrcode$QRCode_Encode_Alphanumeric$toBinary, {ctor: '[]'}, A2(_pablohirafuji$elm_qrcode$QRCode_Helpers$breakStr, 2, str)); }; var _pablohirafuji$elm_qrcode$QRCode_Encode_Alphanumeric$regex = _elm_lang$core$Regex$regex('^[0-9A-Z $%*+\\-.\\/:]+$'); var _pablohirafuji$elm_qrcode$QRCode_Encode_Byte$encodeHelp = F2( function (str, bytes) { encodeHelp: while (true) { var _p0 = _elm_lang$core$String$uncons(str); if (_p0.ctor === 'Just') { var _v1 = _p0._0._1, _v2 = A3( _elm_lang$core$Basics$flip, F2( function (x, y) { return {ctor: '::', _0: x, _1: y}; }), bytes, _elm_lang$core$Char$toCode(_p0._0._0)); str = _v1; bytes = _v2; continue encodeHelp; } else { return _elm_lang$core$Result$Ok( _elm_lang$core$List$reverse(bytes)); } } }); var _pablohirafuji$elm_qrcode$QRCode_Encode_Byte$encode = function (str) { return A2( _elm_lang$core$Result$map, _elm_lang$core$List$map( A2( _elm_lang$core$Basics$flip, F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; }), 8)), A2( _pablohirafuji$elm_qrcode$QRCode_Encode_Byte$encodeHelp, str, {ctor: '[]'})); }; var _pablohirafuji$elm_qrcode$QRCode_Encode_Byte$regex = _elm_lang$core$Regex$regex('^[\\u0000-\\u00ff]+$'); var _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$and63 = _elm_lang$core$Bitwise$and(63); var _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$encodeHelp = F2( function (str, list) { var _p0 = _elm_lang$core$String$uncons(str); if (_p0.ctor === 'Just') { return A3( _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$utf8ToByte, list, _p0._0._1, _elm_lang$core$Char$toCode(_p0._0._0)); } else { return _elm_lang$core$Result$Ok( _elm_lang$core$List$reverse(list)); } }); var _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$utf8ToByte = F3( function (list, remainStr, charCode) { if (_elm_lang$core$Native_Utils.cmp(charCode, 128) < 0) { return A2( _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$encodeHelp, remainStr, {ctor: '::', _0: charCode, _1: list}); } else { if (_elm_lang$core$Native_Utils.cmp(charCode, 2048) < 0) { return A2( _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$encodeHelp, remainStr, A2( F2( function (x, y) { return {ctor: '::', _0: x, _1: y}; }), 128 | _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$and63(charCode), A2( F2( function (x, y) { return {ctor: '::', _0: x, _1: y}; }), 192 | (charCode >> 6), list))); } else { if ((_elm_lang$core$Native_Utils.cmp(charCode, 55296) < 0) || (_elm_lang$core$Native_Utils.cmp(charCode, 57344) > -1)) { return A2( _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$encodeHelp, remainStr, A2( F2( function (x, y) { return {ctor: '::', _0: x, _1: y}; }), 128 | _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$and63(charCode), A2( F2( function (x, y) { return {ctor: '::', _0: x, _1: y}; }), 128 | _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$and63(charCode >> 6), A2( F2( function (x, y) { return {ctor: '::', _0: x, _1: y}; }), 224 | (charCode >> 12), list)))); } else { var _p1 = _elm_lang$core$String$uncons(remainStr); if (_p1.ctor === 'Just') { var nextCharCode = _elm_lang$core$Char$toCode(_p1._0._0); var charC = A2( F2( function (x, y) { return x + y; }), 65536, (1023 & nextCharCode) | ((1023 & charCode) << 10)); var byte1 = 240 | (charC >> 18); var byte2 = 128 | _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$and63(charC >> 12); var byte3 = 128 | _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$and63(charC >> 6); var byte4 = 128 | _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$and63(charC); return A2( _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$encodeHelp, _p1._0._1, { ctor: '::', _0: byte4, _1: { ctor: '::', _0: byte3, _1: { ctor: '::', _0: byte2, _1: {ctor: '::', _0: byte1, _1: list} } } }); } else { return _elm_lang$core$Result$Err(_pablohirafuji$elm_qrcode$QRCode_Error$InvalidUTF8Char); } } } } }); var _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$encode = function (str) { return A2( _elm_lang$core$Result$map, _elm_lang$core$List$map( A2( _elm_lang$core$Basics$flip, F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; }), 8)), A2( _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$encodeHelp, str, {ctor: '[]'})); }; var _pablohirafuji$elm_qrcode$QRCode_Encode$concatTranspose = function (_p0) { var _p1 = _p0; return A2( F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; }), _p1._0, _elm_lang$core$List$concat( A2( F2( function (x, y) { return A2(_elm_lang$core$Basics_ops['++'], x, y); }), _pablohirafuji$elm_qrcode$QRCode_Helpers$transpose(_p1._1), _pablohirafuji$elm_qrcode$QRCode_Helpers$transpose(_p1._2)))); }; var _pablohirafuji$elm_qrcode$QRCode_Encode$getErrorCorrection = function (_p2) { var _p3 = _p2; var _p5 = _p3._0; var _p4 = _p3._1; return A2( _elm_lang$core$Result$map, A2( F3( function (v0, v1, v2) { return {ctor: '_Tuple3', _0: v0, _1: v1, _2: v2}; }), _p5, _p4), A2(_pablohirafuji$elm_qrcode$QRCode_ErrorCorrection$get, _p5.groupInfo.ecPerBlock, _p4)); }; var _pablohirafuji$elm_qrcode$QRCode_Encode$breakList = F3( function (checkFinish, _p7, _p6) { breakList: while (true) { var _p8 = _p7; var _p13 = _p8._0; var _p12 = _p8._1; var _p9 = _p6; var _p11 = _p9._1; var _p10 = _p9._0; if (_elm_lang$core$Native_Utils.cmp(_p13, 0) > 0) { var remainList = A2(_elm_lang$core$List$drop, _p12, _p10); var block = A2(_elm_lang$core$List$take, _p12, _p10); var _v4 = checkFinish, _v5 = {ctor: '_Tuple2', _0: _p13 - 1, _1: _p12}, _v6 = { ctor: '_Tuple2', _0: remainList, _1: {ctor: '::', _0: block, _1: _p11} }; checkFinish = _v4; _p7 = _v5; _p6 = _v6; continue breakList; } else { if (checkFinish && (_elm_lang$core$Native_Utils.cmp( _elm_lang$core$List$length(_p10), 0) > 0)) { return _elm_lang$core$Result$Err(_pablohirafuji$elm_qrcode$QRCode_Error$InputLengthOverflow); } else { return _elm_lang$core$Result$Ok( {ctor: '_Tuple2', _0: _p10, _1: _p11}); } } } }); var _pablohirafuji$elm_qrcode$QRCode_Encode$toBlocks = function (_p14) { var _p15 = _p14; var _p21 = _p15._0; var _p20 = _p15._0.groupInfo; var _p19 = _p15._1; var _p16 = _p20.maybeGroup2; if (_p16.ctor === 'Just') { return A2( _elm_lang$core$Result$map, F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; })(_p21), A2( _elm_lang$core$Result$map, function (_p17) { return _elm_lang$core$List$reverse( _elm_lang$core$Tuple$second(_p17)); }, A2( _elm_lang$core$Result$andThen, A2(_pablohirafuji$elm_qrcode$QRCode_Encode$breakList, true, _p16._0), A3( _pablohirafuji$elm_qrcode$QRCode_Encode$breakList, false, _p20.group1, { ctor: '_Tuple2', _0: _p19, _1: {ctor: '[]'} })))); } else { return A2( _elm_lang$core$Result$map, F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; })(_p21), A2( _elm_lang$core$Result$map, function (_p18) { return _elm_lang$core$List$reverse( _elm_lang$core$Tuple$second(_p18)); }, A3( _pablohirafuji$elm_qrcode$QRCode_Encode$breakList, true, _p20.group1, { ctor: '_Tuple2', _0: _p19, _1: {ctor: '[]'} }))); } }; var _pablohirafuji$elm_qrcode$QRCode_Encode$secondFillerByte = 17; var _pablohirafuji$elm_qrcode$QRCode_Encode$firstFillerByte = 236; var _pablohirafuji$elm_qrcode$QRCode_Encode$addFiller = F2( function (capacity, bytes) { var fillerLength = ((capacity / 8) | 0) - _elm_lang$core$List$length(bytes); return A2( F2( function (x, y) { return A2(_elm_lang$core$Basics_ops['++'], x, y); }), bytes, (_elm_lang$core$Native_Utils.eq( A2(_elm_lang$core$Basics_ops['%'], fillerLength, 2), 0) ? _elm_lang$core$Basics$identity : A2( _elm_lang$core$Basics$flip, F2( function (x, y) { return A2(_elm_lang$core$Basics_ops['++'], x, y); }), { ctor: '::', _0: _pablohirafuji$elm_qrcode$QRCode_Encode$firstFillerByte, _1: {ctor: '[]'} }))( _elm_lang$core$List$concat( A2( _elm_lang$core$List$repeat, (fillerLength / 2) | 0, { ctor: '::', _0: _pablohirafuji$elm_qrcode$QRCode_Encode$firstFillerByte, _1: { ctor: '::', _0: _pablohirafuji$elm_qrcode$QRCode_Encode$secondFillerByte, _1: {ctor: '[]'} } })))); }); var _pablohirafuji$elm_qrcode$QRCode_Encode$bitsToBytes3 = function (_p22) { bitsToBytes3: while (true) { var _p23 = _p22; var _p26 = _p23._0._1; var _p25 = _p23._1; var _p24 = _p23._0._0; if (_elm_lang$core$Native_Utils.cmp(_p26, 8) > -1) { var remLength = _p26 - 8; var remBits = _p24 & A3( _elm_lang$core$Basics$flip, F2( function (x, y) { return x - y; }), 1, 1 << remLength); var $byte = _p24 >> remLength; var _v10 = { ctor: '_Tuple2', _0: {ctor: '_Tuple2', _0: remBits, _1: remLength}, _1: {ctor: '::', _0: $byte, _1: _p25} }; _p22 = _v10; continue bitsToBytes3; } else { return { ctor: '_Tuple2', _0: {ctor: '_Tuple2', _0: _p24, _1: _p26}, _1: _p25 }; } } }; var _pablohirafuji$elm_qrcode$QRCode_Encode$bitsToBytes2 = F2( function (_p28, _p27) { var _p29 = _p28; var _p31 = _p29._1; var _p30 = _p27; var bitsSum = _p29._0 | (_p30._0._0 << _p31); var lengthSum = _p31 + _p30._0._1; return _pablohirafuji$elm_qrcode$QRCode_Encode$bitsToBytes3( { ctor: '_Tuple2', _0: {ctor: '_Tuple2', _0: bitsSum, _1: lengthSum}, _1: _p30._1 }); }); var _pablohirafuji$elm_qrcode$QRCode_Encode$bitsToBytes1 = F2( function (bits, _p32) { bitsToBytes1: while (true) { var _p33 = _p32; var _p37 = _p33._0._1; var _p36 = _p33._0._0; var _p35 = _p33._1; var _p34 = bits; if (_p34.ctor === '::') { var _v15 = _p34._1, _v16 = A2( _pablohirafuji$elm_qrcode$QRCode_Encode$bitsToBytes2, _p34._0, { ctor: '_Tuple2', _0: {ctor: '_Tuple2', _0: _p36, _1: _p37}, _1: _p35 }); bits = _v15; _p32 = _v16; continue bitsToBytes1; } else { return _elm_lang$core$Native_Utils.eq(_p37, 0) ? _elm_lang$core$List$reverse(_p35) : _elm_lang$core$List$reverse( A3( _elm_lang$core$Basics$flip, F2( function (x, y) { return {ctor: '::', _0: x, _1: y}; }), _p35, _p36 << (8 - _p37))); } } }); var _pablohirafuji$elm_qrcode$QRCode_Encode$bitsToBytes = function (bits) { return A2( _pablohirafuji$elm_qrcode$QRCode_Encode$bitsToBytes1, bits, { ctor: '_Tuple2', _0: {ctor: '_Tuple2', _0: 0, _1: 0}, _1: {ctor: '[]'} }); }; var _pablohirafuji$elm_qrcode$QRCode_Encode$addTerminator = F3( function (capacity, bitsCount, bits) { return A2( F2( function (x, y) { return A2(_elm_lang$core$Basics_ops['++'], x, y); }), bits, A3( _elm_lang$core$Basics$flip, F2( function (x, y) { return {ctor: '::', _0: x, _1: y}; }), {ctor: '[]'}, A2( F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; }), 0, A2(_elm_lang$core$Basics$min, 4, capacity - bitsCount)))); }); var _pablohirafuji$elm_qrcode$QRCode_Encode$charCountIndicatorLength = F2( function (mode, version) { if (_elm_lang$core$Native_Utils.cmp(version, 9) < 1) { var _p38 = mode; switch (_p38.ctor) { case 'Numeric': return 10; case 'Alphanumeric': return 9; case 'Byte': return 8; default: return 8; } } else { if (_elm_lang$core$Native_Utils.cmp(version, 26) < 1) { var _p39 = mode; switch (_p39.ctor) { case 'Numeric': return 12; case 'Alphanumeric': return 11; case 'Byte': return 16; default: return 16; } } else { var _p40 = mode; switch (_p40.ctor) { case 'Numeric': return 14; case 'Alphanumeric': return 13; case 'Byte': return 16; default: return 16; } } } }); var _pablohirafuji$elm_qrcode$QRCode_Encode$filterCapacity = F3( function (mode, dataLength, _p41) { var _p42 = _p41; return function (length) { return _elm_lang$core$Native_Utils.cmp(length, _p42.capacity) < 1; }( A2(_pablohirafuji$elm_qrcode$QRCode_Encode$charCountIndicatorLength, mode, _p42.version) + dataLength); }); var _pablohirafuji$elm_qrcode$QRCode_Encode$getVersion = F3( function (ecLevel, mode, dataLength) { return A2( _elm_lang$core$Result$fromMaybe, _pablohirafuji$elm_qrcode$QRCode_Error$InputLengthOverflow, _elm_lang$core$List$head( A2( _elm_lang$core$List$sortBy, function (_) { return _.capacity; }, A2( _elm_lang$core$List$filter, A2(_pablohirafuji$elm_qrcode$QRCode_Encode$filterCapacity, mode, dataLength), _pablohirafuji$elm_qrcode$QRCode_GroupInfo$getGroupData(ecLevel))))); }); var _pablohirafuji$elm_qrcode$QRCode_Encode$versionToModel = F5( function (inputStr, ecLevel, mode, partialBitsCount, groupInfo) { return { inputStr: inputStr, ecLevel: ecLevel, mode: mode, groupInfo: groupInfo, bitsCount: partialBitsCount + A2(_pablohirafuji$elm_qrcode$QRCode_Encode$charCountIndicatorLength, mode, groupInfo.version) }; }); var _pablohirafuji$elm_qrcode$QRCode_Encode$selectVersion = F4( function (inputStr, ecLevel, mode, encodedStr) { var partialBitsCount = A2( F2( function (x, y) { return x + y; }), 4, A3( _elm_lang$core$List$foldl, F2( function (a, b) { return _elm_lang$core$Tuple$second(a) + b; }), 0, encodedStr)); return A2( _elm_lang$core$Result$map, F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; })(encodedStr), A2( _elm_lang$core$Result$map, A4(_pablohirafuji$elm_qrcode$QRCode_Encode$versionToModel, inputStr, ecLevel, mode, partialBitsCount), A3(_pablohirafuji$elm_qrcode$QRCode_Encode$getVersion, ecLevel, mode, partialBitsCount))); }); var _pablohirafuji$elm_qrcode$QRCode_Encode$modeIndicator = function (mode) { var _p43 = mode; switch (_p43.ctor) { case 'Numeric': return 1; case 'Alphanumeric': return 2; case 'Byte': return 4; default: return 4; } }; var _pablohirafuji$elm_qrcode$QRCode_Encode$encoder = function (mode) { var _p44 = mode; switch (_p44.ctor) { case 'Numeric': return _pablohirafuji$elm_qrcode$QRCode_Encode_Numeric$encode; case 'Alphanumeric': return _pablohirafuji$elm_qrcode$QRCode_Encode_Alphanumeric$encode; case 'Byte': return _pablohirafuji$elm_qrcode$QRCode_Encode_Byte$encode; default: return _pablohirafuji$elm_qrcode$QRCode_Encode_UTF8$encode; } }; var _pablohirafuji$elm_qrcode$QRCode_Encode$Model = F5( function (a, b, c, d, e) { return {inputStr: a, ecLevel: b, mode: c, groupInfo: d, bitsCount: e}; }); var _pablohirafuji$elm_qrcode$QRCode_Encode$UTF8 = {ctor: 'UTF8'}; var _pablohirafuji$elm_qrcode$QRCode_Encode$charCountIndicator = F2( function (_p45, bits) { var _p46 = _p45; var _p47 = _p46.mode; var length = A2(_pablohirafuji$elm_qrcode$QRCode_Encode$charCountIndicatorLength, _p47, _p46.groupInfo.version); var charCount = _elm_lang$core$Native_Utils.eq(_p47, _pablohirafuji$elm_qrcode$QRCode_Encode$UTF8) ? _elm_lang$core$List$length(bits) : _elm_lang$core$String$length(_p46.inputStr); return {ctor: '_Tuple2', _0: charCount, _1: length}; }); var _pablohirafuji$elm_qrcode$QRCode_Encode$addInfoAndFinalBits = function (_p48) { var _p49 = _p48; var _p51 = _p49._1; var _p50 = _p49._0; return A2( F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; }), _p51, A2( _pablohirafuji$elm_qrcode$QRCode_Encode$addFiller, _p51.groupInfo.capacity, _pablohirafuji$elm_qrcode$QRCode_Encode$bitsToBytes( A3( _pablohirafuji$elm_qrcode$QRCode_Encode$addTerminator, _p51.groupInfo.capacity, _p51.bitsCount, A2( F2( function (x, y) { return {ctor: '::', _0: x, _1: y}; }), { ctor: '_Tuple2', _0: _pablohirafuji$elm_qrcode$QRCode_Encode$modeIndicator(_p51.mode), _1: 4 }, A2( F2( function (x, y) { return {ctor: '::', _0: x, _1: y}; }), A2(_pablohirafuji$elm_qrcode$QRCode_Encode$charCountIndicator, _p51, _p50), _p50)))))); }; var _pablohirafuji$elm_qrcode$QRCode_Encode$Byte = {ctor: 'Byte'}; var _pablohirafuji$elm_qrcode$QRCode_Encode$Alphanumeric = {ctor: 'Alphanumeric'}; var _pablohirafuji$elm_qrcode$QRCode_Encode$Numeric = {ctor: 'Numeric'}; var _pablohirafuji$elm_qrcode$QRCode_Encode$selectMode = function (inputStr) { return A2(_elm_lang$core$Regex$contains, _pablohirafuji$elm_qrcode$QRCode_Encode_Numeric$regex, inputStr) ? _pablohirafuji$elm_qrcode$QRCode_Encode$Numeric : (A2(_elm_lang$core$Regex$contains, _pablohirafuji$elm_qrcode$QRCode_Encode_Alphanumeric$regex, inputStr) ? _pablohirafuji$elm_qrcode$QRCode_Encode$Alphanumeric : (A2(_elm_lang$core$Regex$contains, _pablohirafuji$elm_qrcode$QRCode_Encode_Byte$regex, inputStr) ? _pablohirafuji$elm_qrcode$QRCode_Encode$Byte : _pablohirafuji$elm_qrcode$QRCode_Encode$UTF8)); }; var _pablohirafuji$elm_qrcode$QRCode_Encode$encode = F2( function (inputStr, ecLevel) { var mode = _pablohirafuji$elm_qrcode$QRCode_Encode$selectMode(inputStr); return A2( _elm_lang$core$Result$map, _pablohirafuji$elm_qrcode$QRCode_Encode$concatTranspose, A2( _elm_lang$core$Result$andThen, _pablohirafuji$elm_qrcode$QRCode_Encode$getErrorCorrection, A2( _elm_lang$core$Result$andThen, _pablohirafuji$elm_qrcode$QRCode_Encode$toBlocks, A2( _elm_lang$core$Result$map, _pablohirafuji$elm_qrcode$QRCode_Encode$addInfoAndFinalBits, A2( _elm_lang$core$Result$andThen, A3(_pablohirafuji$elm_qrcode$QRCode_Encode$selectVersion, inputStr, ecLevel, mode), A2(_pablohirafuji$elm_qrcode$QRCode_Encode$encoder, mode, inputStr)))))); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$alignmentPatternData = _elm_lang$core$Array$fromList( { ctor: '::', _0: {ctor: '[]'}, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 18, _1: {ctor: '[]'} } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 22, _1: {ctor: '[]'} } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 26, _1: {ctor: '[]'} } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 30, _1: {ctor: '[]'} } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 34, _1: {ctor: '[]'} } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 22, _1: { ctor: '::', _0: 38, _1: {ctor: '[]'} } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 24, _1: { ctor: '::', _0: 42, _1: {ctor: '[]'} } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 26, _1: { ctor: '::', _0: 46, _1: {ctor: '[]'} } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 28, _1: { ctor: '::', _0: 50, _1: {ctor: '[]'} } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 30, _1: { ctor: '::', _0: 54, _1: {ctor: '[]'} } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 32, _1: { ctor: '::', _0: 58, _1: {ctor: '[]'} } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 34, _1: { ctor: '::', _0: 62, _1: {ctor: '[]'} } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 26, _1: { ctor: '::', _0: 46, _1: { ctor: '::', _0: 66, _1: {ctor: '[]'} } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 26, _1: { ctor: '::', _0: 48, _1: { ctor: '::', _0: 70, _1: {ctor: '[]'} } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 26, _1: { ctor: '::', _0: 50, _1: { ctor: '::', _0: 74, _1: {ctor: '[]'} } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 30, _1: { ctor: '::', _0: 54, _1: { ctor: '::', _0: 78, _1: {ctor: '[]'} } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 30, _1: { ctor: '::', _0: 56, _1: { ctor: '::', _0: 82, _1: {ctor: '[]'} } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 30, _1: { ctor: '::', _0: 58, _1: { ctor: '::', _0: 86, _1: {ctor: '[]'} } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 34, _1: { ctor: '::', _0: 62, _1: { ctor: '::', _0: 90, _1: {ctor: '[]'} } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 28, _1: { ctor: '::', _0: 50, _1: { ctor: '::', _0: 72, _1: { ctor: '::', _0: 94, _1: {ctor: '[]'} } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 26, _1: { ctor: '::', _0: 50, _1: { ctor: '::', _0: 74, _1: { ctor: '::', _0: 98, _1: {ctor: '[]'} } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 30, _1: { ctor: '::', _0: 54, _1: { ctor: '::', _0: 78, _1: { ctor: '::', _0: 102, _1: {ctor: '[]'} } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 28, _1: { ctor: '::', _0: 54, _1: { ctor: '::', _0: 80, _1: { ctor: '::', _0: 106, _1: {ctor: '[]'} } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 32, _1: { ctor: '::', _0: 58, _1: { ctor: '::', _0: 84, _1: { ctor: '::', _0: 110, _1: {ctor: '[]'} } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 30, _1: { ctor: '::', _0: 58, _1: { ctor: '::', _0: 86, _1: { ctor: '::', _0: 114, _1: {ctor: '[]'} } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 34, _1: { ctor: '::', _0: 62, _1: { ctor: '::', _0: 90, _1: { ctor: '::', _0: 118, _1: {ctor: '[]'} } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 26, _1: { ctor: '::', _0: 50, _1: { ctor: '::', _0: 74, _1: { ctor: '::', _0: 98, _1: { ctor: '::', _0: 122, _1: {ctor: '[]'} } } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 30, _1: { ctor: '::', _0: 54, _1: { ctor: '::', _0: 78, _1: { ctor: '::', _0: 102, _1: { ctor: '::', _0: 126, _1: {ctor: '[]'} } } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 26, _1: { ctor: '::', _0: 52, _1: { ctor: '::', _0: 78, _1: { ctor: '::', _0: 104, _1: { ctor: '::', _0: 130, _1: {ctor: '[]'} } } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 30, _1: { ctor: '::', _0: 56, _1: { ctor: '::', _0: 82, _1: { ctor: '::', _0: 108, _1: { ctor: '::', _0: 134, _1: {ctor: '[]'} } } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 34, _1: { ctor: '::', _0: 60, _1: { ctor: '::', _0: 86, _1: { ctor: '::', _0: 112, _1: { ctor: '::', _0: 138, _1: {ctor: '[]'} } } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 30, _1: { ctor: '::', _0: 58, _1: { ctor: '::', _0: 86, _1: { ctor: '::', _0: 114, _1: { ctor: '::', _0: 142, _1: {ctor: '[]'} } } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 34, _1: { ctor: '::', _0: 62, _1: { ctor: '::', _0: 90, _1: { ctor: '::', _0: 118, _1: { ctor: '::', _0: 146, _1: {ctor: '[]'} } } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 30, _1: { ctor: '::', _0: 54, _1: { ctor: '::', _0: 78, _1: { ctor: '::', _0: 102, _1: { ctor: '::', _0: 126, _1: { ctor: '::', _0: 150, _1: {ctor: '[]'} } } } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 24, _1: { ctor: '::', _0: 50, _1: { ctor: '::', _0: 76, _1: { ctor: '::', _0: 102, _1: { ctor: '::', _0: 128, _1: { ctor: '::', _0: 154, _1: {ctor: '[]'} } } } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 28, _1: { ctor: '::', _0: 54, _1: { ctor: '::', _0: 80, _1: { ctor: '::', _0: 106, _1: { ctor: '::', _0: 132, _1: { ctor: '::', _0: 158, _1: {ctor: '[]'} } } } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 32, _1: { ctor: '::', _0: 58, _1: { ctor: '::', _0: 84, _1: { ctor: '::', _0: 110, _1: { ctor: '::', _0: 136, _1: { ctor: '::', _0: 162, _1: {ctor: '[]'} } } } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 26, _1: { ctor: '::', _0: 54, _1: { ctor: '::', _0: 82, _1: { ctor: '::', _0: 110, _1: { ctor: '::', _0: 138, _1: { ctor: '::', _0: 166, _1: {ctor: '[]'} } } } } } } }, _1: { ctor: '::', _0: { ctor: '::', _0: 6, _1: { ctor: '::', _0: 30, _1: { ctor: '::', _0: 58, _1: { ctor: '::', _0: 86, _1: { ctor: '::', _0: 114, _1: { ctor: '::', _0: 142, _1: { ctor: '::', _0: 170, _1: {ctor: '[]'} } } } } } } }, _1: {ctor: '[]'} } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$getBCHDigit = function ($int) { var helper = F2( function (digit, $int) { helper: while (true) { if (!_elm_lang$core$Native_Utils.eq($int, 0)) { var _v0 = digit + 1, _v1 = $int >>> 1; digit = _v0; $int = _v1; continue helper; } else { return digit; } } }); return A2(helper, 0, $int); }; var _pablohirafuji$elm_qrcode$QRCode_Matrix$getAreaCoord = F2( function (rows, cols) { return A3( _elm_lang$core$List$foldl, F2( function (row, list) { return A3( _elm_lang$core$List$foldl, F2( function (col, list_) { return { ctor: '::', _0: {ctor: '_Tuple2', _0: row, _1: col}, _1: list_ }; }), list, cols); }), {ctor: '[]'}, rows); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$getCoord = F2( function (size, index) { return { ctor: '_Tuple2', _0: (index / size) | 0, _1: A2(_elm_lang$core$Basics_ops['%'], index, size) }; }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$getIndex = F3( function (size, row, col) { return (size * row) + col; }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$isOccupy = F4( function (row, col, size, matrix) { var _p0 = A2( _elm_lang$core$Array$get, A3(_pablohirafuji$elm_qrcode$QRCode_Matrix$getIndex, size, row, col), matrix); if (_p0.ctor === 'Just') { var _p1 = _p0._0; if (_p1.ctor === 'Just') { return true; } else { return false; } } else { return false; } }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$applyMaskColor = F2( function (maybeModule, isChange) { if (isChange) { var _p2 = maybeModule; if (((_p2.ctor === 'Just') && (_p2._0.ctor === '_Tuple2')) && (_p2._0._0 === false)) { return _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: false, _1: !_p2._0._1}); } else { return maybeModule; } } else { return maybeModule; } }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$applyMaskFunction = F4( function ($function, size, index, maybeModule) { return A2( _pablohirafuji$elm_qrcode$QRCode_Matrix$applyMaskColor, maybeModule, $function( A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$getCoord, size, index))); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$isDarkModule = function (_p3) { return A2( _elm_lang$core$Maybe$withDefault, false, A2(_elm_lang$core$Maybe$map, _elm_lang$core$Tuple$second, _p3)); }; var _pablohirafuji$elm_qrcode$QRCode_Matrix$rule4Score = F2( function (size, simplifiedList) { var moduleCount = _elm_lang$core$Basics$toFloat(size * size); var darkCount = _elm_lang$core$List$length( A2(_elm_lang$core$List$filter, _elm_lang$core$Basics$identity, simplifiedList)); var ratio = _elm_lang$core$Basics$abs( (((_elm_lang$core$Basics$toFloat(100 * darkCount) / moduleCount) / moduleCount) - 50) / 5); return _elm_lang$core$Basics$round(ratio * 10); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$rule3Score_ = F2( function (simplifiedList, score) { rule3Score_: while (true) { var _p4 = simplifiedList; _v5_3: do { if (_p4.ctor === '[]') { return score; } else { if (_p4._0 === false) { if ((((((((((((((((((((_p4._1.ctor === '::') && (_p4._1._0 === false)) && (_p4._1._1.ctor === '::')) && (_p4._1._1._0 === false)) && (_p4._1._1._1.ctor === '::')) && (_p4._1._1._1._0 === false)) && (_p4._1._1._1._1.ctor === '::')) && (_p4._1._1._1._1._0 === true)) && (_p4._1._1._1._1._1.ctor === '::')) && (_p4._1._1._1._1._1._0 === false)) && (_p4._1._1._1._1._1._1.ctor === '::')) && (_p4._1._1._1._1._1._1._0 === true)) && (_p4._1._1._1._1._1._1._1.ctor === '::')) && (_p4._1._1._1._1._1._1._1._0 === true)) && (_p4._1._1._1._1._1._1._1._1.ctor === '::')) && (_p4._1._1._1._1._1._1._1._1._0 === true)) && (_p4._1._1._1._1._1._1._1._1._1.ctor === '::')) && (_p4._1._1._1._1._1._1._1._1._1._0 === false)) && (_p4._1._1._1._1._1._1._1._1._1._1.ctor === '::')) && (_p4._1._1._1._1._1._1._1._1._1._1._0 === true)) { var _v6 = _p4._1._1._1._1._1._1._1._1._1._1._1, _v7 = score + 40; simplifiedList = _v6; score = _v7; continue rule3Score_; } else { break _v5_3; } } else { if ((((((((((((((((((((_p4._1.ctor === '::') && (_p4._1._0 === false)) && (_p4._1._1.ctor === '::')) && (_p4._1._1._0 === true)) && (_p4._1._1._1.ctor === '::')) && (_p4._1._1._1._0 === true)) && (_p4._1._1._1._1.ctor === '::')) && (_p4._1._1._1._1._0 === true)) && (_p4._1._1._1._1._1.ctor === '::')) && (_p4._1._1._1._1._1._0 === false)) && (_p4._1._1._1._1._1._1.ctor === '::')) && (_p4._1._1._1._1._1._1._0 === true)) && (_p4._1._1._1._1._1._1._1.ctor === '::')) && (_p4._1._1._1._1._1._1._1._0 === false)) && (_p4._1._1._1._1._1._1._1._1.ctor === '::')) && (_p4._1._1._1._1._1._1._1._1._0 === false)) && (_p4._1._1._1._1._1._1._1._1._1.ctor === '::')) && (_p4._1._1._1._1._1._1._1._1._1._0 === false)) && (_p4._1._1._1._1._1._1._1._1._1._1.ctor === '::')) && (_p4._1._1._1._1._1._1._1._1._1._1._0 === false)) { var _v8 = _p4._1._1._1._1._1._1._1._1._1._1._1, _v9 = score + 40; simplifiedList = _v8; score = _v9; continue rule3Score_; } else { break _v5_3; } } } } while(false); var _v10 = _p4._1, _v11 = score; simplifiedList = _v10; score = _v11; continue rule3Score_; } }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$rule3Score = A2(_elm_lang$core$List$foldl, _pablohirafuji$elm_qrcode$QRCode_Matrix$rule3Score_, 0); var _pablohirafuji$elm_qrcode$QRCode_Matrix$rule2Score_ = F4( function (row1, row2, maybeLast, score) { rule2Score_: while (true) { var _p5 = row1; if (_p5.ctor === '[]') { return score; } else { var _p9 = _p5._1; var _p8 = _p5._0; var _p6 = row2; if (_p6.ctor === '[]') { return score; } else { var _p7 = _p6._1; if (_elm_lang$core$Native_Utils.eq(_p8, _p6._0)) { if (_elm_lang$core$Native_Utils.eq( _elm_lang$core$Maybe$Just(_p8), maybeLast)) { var _v14 = _p9, _v15 = _p7, _v16 = _elm_lang$core$Maybe$Just(_p8), _v17 = score + 3; row1 = _v14; row2 = _v15; maybeLast = _v16; score = _v17; continue rule2Score_; } else { var _v18 = _p9, _v19 = _p7, _v20 = _elm_lang$core$Maybe$Just(_p8), _v21 = score; row1 = _v18; row2 = _v19; maybeLast = _v20; score = _v21; continue rule2Score_; } } else { var _v22 = _p9, _v23 = _p7, _v24 = _elm_lang$core$Maybe$Nothing, _v25 = score; row1 = _v22; row2 = _v23; maybeLast = _v24; score = _v25; continue rule2Score_; } } } } }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$rule2Score = F2( function (list, score) { rule2Score: while (true) { var _p10 = list; if ((_p10.ctor === '::') && (_p10._1.ctor === '::')) { var _v27 = _p10._1._1, _v28 = A2( F2( function (x, y) { return x + y; }), score, A4(_pablohirafuji$elm_qrcode$QRCode_Matrix$rule2Score_, _p10._0, _p10._1._0, _elm_lang$core$Maybe$Nothing, 0)); list = _v27; score = _v28; continue rule2Score; } else { return score; } } }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$rule1Score_ = F2( function (simplifiedList, _p11) { rule1Score_: while (true) { var _p12 = _p11; var _p18 = _p12._2; var _p17 = _p12._1; var _p16 = _p12._0; var _p13 = simplifiedList; if (_p13.ctor === '[]') { return (_elm_lang$core$Native_Utils.cmp(_p17, 5) > -1) ? ((_p18 + _p17) - 2) : _p18; } else { var _p15 = _p13._1; var _p14 = _p13._0; if (_elm_lang$core$Native_Utils.eq(_p16, _p14)) { var _v31 = _p15, _v32 = {ctor: '_Tuple3', _0: _p16, _1: _p17 + 1, _2: _p18}; simplifiedList = _v31; _p11 = _v32; continue rule1Score_; } else { if (_elm_lang$core$Native_Utils.cmp(_p17, 5) > -1) { var _v33 = _p15, _v34 = {ctor: '_Tuple3', _0: _p14, _1: 0, _2: (_p18 + _p17) - 2}; simplifiedList = _v33; _p11 = _v34; continue rule1Score_; } else { var _v35 = _p15, _v36 = {ctor: '_Tuple3', _0: _p14, _1: 0, _2: _p18}; simplifiedList = _v35; _p11 = _v36; continue rule1Score_; } } } } }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$rule1Score = function (_p19) { return _elm_lang$core$List$sum( A2( _elm_lang$core$List$map, A2( _elm_lang$core$Basics$flip, _pablohirafuji$elm_qrcode$QRCode_Matrix$rule1Score_, {ctor: '_Tuple3', _0: false, _1: 0, _2: 0}), _p19)); }; var _pablohirafuji$elm_qrcode$QRCode_Matrix$breakList = F3( function (width, list, acc) { breakList: while (true) { var _p20 = list; if (_p20.ctor === '[]') { return _elm_lang$core$List$reverse(acc); } else { var _v38 = width, _v39 = A2(_elm_lang$core$List$drop, width, list), _v40 = { ctor: '::', _0: A2(_elm_lang$core$List$take, width, list), _1: acc }; width = _v38; list = _v39; acc = _v40; continue breakList; } } }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$getMaskScore = F2( function (size, matrix) { var list = A2( _elm_lang$core$List$map, _pablohirafuji$elm_qrcode$QRCode_Matrix$isDarkModule, _elm_lang$core$Array$toList(matrix)); var rowList = A3( _pablohirafuji$elm_qrcode$QRCode_Matrix$breakList, size, list, {ctor: '[]'}); var transposedRowList = _pablohirafuji$elm_qrcode$QRCode_Helpers$transpose(rowList); return A2( F2( function (x, y) { return x + y; }), A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$rule4Score, size, list), A2( F2( function (x, y) { return x + y; }), _pablohirafuji$elm_qrcode$QRCode_Matrix$rule3Score(transposedRowList), A2( F2( function (x, y) { return x + y; }), _pablohirafuji$elm_qrcode$QRCode_Matrix$rule3Score(rowList), A2( F2( function (x, y) { return x + y; }), A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$rule2Score, rowList, 0), A2( F2( function (x, y) { return x + y; }), _pablohirafuji$elm_qrcode$QRCode_Matrix$rule1Score(transposedRowList), _pablohirafuji$elm_qrcode$QRCode_Matrix$rule1Score(rowList)))))); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$maskFunction = function (mask) { var _p21 = mask; switch (_p21.ctor) { case 'Pattern0': return function (_p22) { var _p23 = _p22; return _elm_lang$core$Native_Utils.eq( A2(_elm_lang$core$Basics_ops['%'], _p23._0 + _p23._1, 2), 0); }; case 'Pattern1': return function (_p24) { var _p25 = _p24; return _elm_lang$core$Native_Utils.eq( A2(_elm_lang$core$Basics_ops['%'], _p25._0, 2), 0); }; case 'Pattern2': return function (_p26) { var _p27 = _p26; return _elm_lang$core$Native_Utils.eq( A2(_elm_lang$core$Basics_ops['%'], _p27._1, 3), 0); }; case 'Pattern3': return function (_p28) { var _p29 = _p28; return _elm_lang$core$Native_Utils.eq( A2(_elm_lang$core$Basics_ops['%'], _p29._0 + _p29._1, 3), 0); }; case 'Pattern4': return function (_p30) { var _p31 = _p30; return _elm_lang$core$Native_Utils.eq( A2( _elm_lang$core$Basics_ops['%'], _elm_lang$core$Basics$floor( _elm_lang$core$Basics$toFloat(_p31._0) / 2) + _elm_lang$core$Basics$floor( _elm_lang$core$Basics$toFloat(_p31._1) / 3), 2), 0); }; case 'Pattern5': return function (_p32) { var _p33 = _p32; var _p35 = _p33._0; var _p34 = _p33._1; return _elm_lang$core$Native_Utils.eq( A2(_elm_lang$core$Basics_ops['%'], _p35 * _p34, 2) + A2(_elm_lang$core$Basics_ops['%'], _p35 * _p34, 3), 0); }; case 'Pattern6': return function (_p36) { var _p37 = _p36; var _p39 = _p37._0; var _p38 = _p37._1; return _elm_lang$core$Native_Utils.eq( A2( _elm_lang$core$Basics_ops['%'], A2(_elm_lang$core$Basics_ops['%'], _p39 * _p38, 2) + A2(_elm_lang$core$Basics_ops['%'], _p39 * _p38, 3), 2), 0); }; default: return function (_p40) { var _p41 = _p40; var _p43 = _p41._0; var _p42 = _p41._1; return _elm_lang$core$Native_Utils.eq( A2( _elm_lang$core$Basics_ops['%'], A2(_elm_lang$core$Basics_ops['%'], _p43 * _p42, 3) + A2(_elm_lang$core$Basics_ops['%'], _p43 + _p42, 2), 2), 0); }; } }; var _pablohirafuji$elm_qrcode$QRCode_Matrix$applyMask = F3( function (size, mask, matrix) { return A3( _elm_lang$core$Basics$flip, _elm_lang$core$Array$indexedMap, matrix, A2( _pablohirafuji$elm_qrcode$QRCode_Matrix$applyMaskFunction, _pablohirafuji$elm_qrcode$QRCode_Matrix$maskFunction(mask), size)); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$getBestMask_ = F4( function (size, matrix, mask, maybeMin) { var maskedMatrix = A3(_pablohirafuji$elm_qrcode$QRCode_Matrix$applyMask, size, mask, matrix); var maskScore = A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$getMaskScore, size, maskedMatrix); var $return = function () { var _p44 = maybeMin; if (_p44.ctor === 'Just') { var _p45 = _p44._0._0; return (_elm_lang$core$Native_Utils.cmp(_p45, maskScore) < 0) ? {ctor: '_Tuple3', _0: _p45, _1: _p44._0._1, _2: _p44._0._2} : {ctor: '_Tuple3', _0: maskScore, _1: mask, _2: maskedMatrix}; } else { return {ctor: '_Tuple3', _0: maskScore, _1: mask, _2: maskedMatrix}; } }(); return _elm_lang$core$Maybe$Just($return); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$maskToInt = function (mask) { var _p46 = mask; switch (_p46.ctor) { case 'Pattern0': return 0; case 'Pattern1': return 1; case 'Pattern2': return 2; case 'Pattern3': return 3; case 'Pattern4': return 4; case 'Pattern5': return 5; case 'Pattern6': return 6; default: return 7; } }; var _pablohirafuji$elm_qrcode$QRCode_Matrix$bitToColor = F2( function ($byte, offset) { return A2( F2( function (x, y) { return _elm_lang$core$Native_Utils.eq(x, y); }), 1, 1 & ($byte >> (7 - offset))); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$setDataModule = F3( function (_p47, $byte, offset) { var _p48 = _p47; return A2( _elm_lang$core$Array$set, A3(_pablohirafuji$elm_qrcode$QRCode_Matrix$getIndex, _p48.size, _p48.row, _p48.col), _elm_lang$core$Maybe$Just( { ctor: '_Tuple2', _0: false, _1: A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$bitToColor, $byte, offset) })); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$nextModule = function (_p49) { var _p50 = _p49; var _p53 = _p50.row; var _p52 = _p50; var _p51 = _p50.col; return _p50.isRight ? _elm_lang$core$Native_Utils.update( _p52, {col: _p51 - 1, isRight: false}) : (_p50.isUp ? _elm_lang$core$Native_Utils.update( _p52, {row: _p53 - 1, col: _p51 + 1, isRight: true}) : _elm_lang$core$Native_Utils.update( _p52, {row: _p53 + 1, col: _p51 + 1, isRight: true})); }; var _pablohirafuji$elm_qrcode$QRCode_Matrix$addDataModule = F4( function (_p54, bytes, offset, matrix) { addDataModule: while (true) { var _p55 = _p54; var _p60 = _p55.size; var _p59 = _p55.row; var _p58 = _p55; var _p57 = _p55.col; var _p56 = bytes; if (_p56.ctor === '[]') { return matrix; } else { if (_elm_lang$core$Native_Utils.cmp(offset, 8) > -1) { var _v56 = _p58, _v57 = _p56._1, _v58 = 0, _v59 = matrix; _p54 = _v56; bytes = _v57; offset = _v58; matrix = _v59; continue addDataModule; } else { if (_elm_lang$core$Native_Utils.eq(_p57, 6)) { var _v60 = _elm_lang$core$Native_Utils.update( _p58, {col: _p57 - 1, isRight: true}), _v61 = bytes, _v62 = offset, _v63 = matrix; _p54 = _v60; bytes = _v61; offset = _v62; matrix = _v63; continue addDataModule; } else { if (_elm_lang$core$Native_Utils.cmp(_p59, 0) < 0) { var _v64 = _elm_lang$core$Native_Utils.update( _p58, {row: 0, col: _p57 - 2, isRight: true, isUp: false}), _v65 = bytes, _v66 = offset, _v67 = matrix; _p54 = _v64; bytes = _v65; offset = _v66; matrix = _v67; continue addDataModule; } else { if (_elm_lang$core$Native_Utils.cmp(_p59, _p60) > -1) { var _v68 = _elm_lang$core$Native_Utils.update( _p58, {row: _p60 - 1, col: _p57 - 2, isRight: true, isUp: true}), _v69 = bytes, _v70 = offset, _v71 = matrix; _p54 = _v68; bytes = _v69; offset = _v70; matrix = _v71; continue addDataModule; } else { if (A4(_pablohirafuji$elm_qrcode$QRCode_Matrix$isOccupy, _p59, _p57, _p60, matrix)) { var _v72 = _pablohirafuji$elm_qrcode$QRCode_Matrix$nextModule(_p58), _v73 = bytes, _v74 = offset, _v75 = matrix; _p54 = _v72; bytes = _v73; offset = _v74; matrix = _v75; continue addDataModule; } else { var _v76 = _pablohirafuji$elm_qrcode$QRCode_Matrix$nextModule(_p58), _v77 = bytes, _v78 = offset + 1, _v79 = A4(_pablohirafuji$elm_qrcode$QRCode_Matrix$setDataModule, _p58, _p56._0, offset, matrix); _p54 = _v76; bytes = _v77; offset = _v78; matrix = _v79; continue addDataModule; } } } } } } } }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$initPlacement = function (size) { return {size: size, row: size + 1, col: size + 1, isRight: true, isUp: true}; }; var _pablohirafuji$elm_qrcode$QRCode_Matrix$addData = F3( function (size, bytes, matrix) { return A4( _pablohirafuji$elm_qrcode$QRCode_Matrix$addDataModule, _pablohirafuji$elm_qrcode$QRCode_Matrix$initPlacement(size), bytes, 0, matrix); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$alignmentColor = F2( function (row, col) { return (_elm_lang$core$Native_Utils.eq(row, -2) || (_elm_lang$core$Native_Utils.eq(row, 2) || (_elm_lang$core$Native_Utils.eq(col, -2) || (_elm_lang$core$Native_Utils.eq(col, 2) || (_elm_lang$core$Native_Utils.eq(row, 0) && _elm_lang$core$Native_Utils.eq(col, 0)))))) ? _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: true, _1: true}) : _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: true, _1: false}); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$setAlignModule = F4( function (size, rowPos, colPos, _p61) { var _p62 = _p61; var _p64 = _p62._0; var _p63 = _p62._1; return A2( _elm_lang$core$Array$set, A3(_pablohirafuji$elm_qrcode$QRCode_Matrix$getIndex, size, _p64 + rowPos, _p63 + colPos), A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$alignmentColor, _p64, _p63)); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$alignmentRange = A2(_elm_lang$core$List$range, -2, 2); var _pablohirafuji$elm_qrcode$QRCode_Matrix$setAlignment = F3( function (size, _p65, matrix) { var _p66 = _p65; return A3( _elm_lang$core$List$foldl, A3(_pablohirafuji$elm_qrcode$QRCode_Matrix$setAlignModule, size, _p66._0, _p66._1), matrix, A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$getAreaCoord, _pablohirafuji$elm_qrcode$QRCode_Matrix$alignmentRange, _pablohirafuji$elm_qrcode$QRCode_Matrix$alignmentRange)); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$isValidAlign = F2( function (size, _p67) { var _p68 = _p67; var _p70 = _p68._0; var _p69 = _p68._1; return ((_elm_lang$core$Native_Utils.cmp(_p70, 10) > 0) || ((_elm_lang$core$Native_Utils.cmp(10, _p69) < 0) && (_elm_lang$core$Native_Utils.cmp(_p69, size - 10) < 0))) && ((_elm_lang$core$Native_Utils.cmp(_p70, size - 10) < 0) || (_elm_lang$core$Native_Utils.cmp(_p69, 10) > 0)); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$setAlignments = F3( function (size, locations, matrix) { return A3( _elm_lang$core$List$foldl, _pablohirafuji$elm_qrcode$QRCode_Matrix$setAlignment(size), matrix, A2( _elm_lang$core$List$filter, _pablohirafuji$elm_qrcode$QRCode_Matrix$isValidAlign(size), A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$getAreaCoord, locations, locations))); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$alignmentPattern = F3( function (version, size, matrix) { return A2( _elm_lang$core$Result$map, A2( _elm_lang$core$Basics$flip, _pablohirafuji$elm_qrcode$QRCode_Matrix$setAlignments(size), matrix), A2( _elm_lang$core$Result$fromMaybe, _pablohirafuji$elm_qrcode$QRCode_Error$AlignmentPatternNotFound, A2(_elm_lang$core$Array$get, version - 1, _pablohirafuji$elm_qrcode$QRCode_Matrix$alignmentPatternData))); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$timingColor = F2( function (row, col) { return _elm_lang$core$Native_Utils.eq( A2(_elm_lang$core$Basics_ops['%'], row + col, 2), 0) ? _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: true, _1: true}) : _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: true, _1: false}); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$setTiming = F3( function (size, row, col) { return A2( _elm_lang$core$Array$set, A3(_pablohirafuji$elm_qrcode$QRCode_Matrix$getIndex, size, row, col), A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$timingColor, row, col)); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$timingPattern = F2( function (size, matrix) { var range = A2(_elm_lang$core$List$range, 8, size - 9); return A3( _elm_lang$core$Basics$flip, _elm_lang$core$List$foldl( A2( _elm_lang$core$Basics$flip, _pablohirafuji$elm_qrcode$QRCode_Matrix$setTiming(size), 6)), range, A3( _elm_lang$core$List$foldl, A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$setTiming, size, 6), matrix, range)); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$darkModule = F2( function (version, size) { return A2( _elm_lang$core$Array$set, A3(_pablohirafuji$elm_qrcode$QRCode_Matrix$getIndex, size, (4 * version) + 9, 8), _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: true, _1: true})); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$encodeVersionInfo = function (version) { var g18Int = 7973; var g18Digit = _pablohirafuji$elm_qrcode$QRCode_Matrix$getBCHDigit(g18Int); var helper = function (d_) { helper: while (true) { if (_elm_lang$core$Native_Utils.cmp( _pablohirafuji$elm_qrcode$QRCode_Matrix$getBCHDigit(d_) - g18Digit, 0) > -1) { var _v83 = d_ ^ A3( _elm_lang$core$Basics$flip, _elm_lang$core$Bitwise$shiftLeftBy, g18Int, _pablohirafuji$elm_qrcode$QRCode_Matrix$getBCHDigit(d_) - g18Digit); d_ = _v83; continue helper; } else { return d_ | (version << 12); } } }; var d = version << 12; return helper(d); }; var _pablohirafuji$elm_qrcode$QRCode_Matrix$setVersionModule = F3( function (size, isBlack, _p71) { var _p72 = _p71; return A2( _elm_lang$core$Array$set, A3(_pablohirafuji$elm_qrcode$QRCode_Matrix$getIndex, size, _p72._0, _p72._1), _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: true, _1: isBlack})); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$setVersionInfo_ = F4( function (size, isBlackFn, count, matrix) { setVersionInfo_: while (true) { if (_elm_lang$core$Native_Utils.cmp(count, 18) < 0) { var isBlack = isBlackFn(count); var bottomLeft = { ctor: '_Tuple2', _0: ((A2(_elm_lang$core$Basics_ops['%'], count, 3) + size) - 8) - 3, _1: _elm_lang$core$Basics$floor( _elm_lang$core$Basics$toFloat(count) / 3) }; var topRight = { ctor: '_Tuple2', _0: _elm_lang$core$Basics$floor( _elm_lang$core$Basics$toFloat(count) / 3), _1: ((A2(_elm_lang$core$Basics_ops['%'], count, 3) + size) - 8) - 3 }; var _v85 = size, _v86 = isBlackFn, _v87 = count + 1, _v88 = A4( _pablohirafuji$elm_qrcode$QRCode_Matrix$setVersionModule, size, isBlack, bottomLeft, A4(_pablohirafuji$elm_qrcode$QRCode_Matrix$setVersionModule, size, isBlack, topRight, matrix)); size = _v85; isBlackFn = _v86; count = _v87; matrix = _v88; continue setVersionInfo_; } else { return matrix; } } }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$setVersionInfo = F3( function (version, size, matrix) { if (_elm_lang$core$Native_Utils.cmp(version, 7) > -1) { var isBlack = F2( function (bits_, count) { return A2( F2( function (x, y) { return _elm_lang$core$Native_Utils.eq(x, y); }), 1, 1 & (bits_ >> count)); }); var bits = _pablohirafuji$elm_qrcode$QRCode_Matrix$encodeVersionInfo(version); return A4( _pablohirafuji$elm_qrcode$QRCode_Matrix$setVersionInfo_, size, isBlack(bits), 0, matrix); } else { return matrix; } }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$ecLevelToInt = function (ecLevel) { var _p73 = ecLevel; switch (_p73.ctor) { case 'L': return 1; case 'M': return 0; case 'Q': return 3; default: return 2; } }; var _pablohirafuji$elm_qrcode$QRCode_Matrix$encodeFormatInfo = F2( function (ecLevel, mask) { var g15Mask = 21522; var g15Int = 1335; var g15Digit = _pablohirafuji$elm_qrcode$QRCode_Matrix$getBCHDigit(g15Int); var formatInfoInt = _pablohirafuji$elm_qrcode$QRCode_Matrix$maskToInt(mask) | (_pablohirafuji$elm_qrcode$QRCode_Matrix$ecLevelToInt(ecLevel) << 3); var d = formatInfoInt << 10; var helper = function (d_) { helper: while (true) { if (_elm_lang$core$Native_Utils.cmp( _pablohirafuji$elm_qrcode$QRCode_Matrix$getBCHDigit(d_) - g15Digit, 0) > -1) { var _v90 = d_ ^ A3( _elm_lang$core$Basics$flip, _elm_lang$core$Bitwise$shiftLeftBy, g15Int, _pablohirafuji$elm_qrcode$QRCode_Matrix$getBCHDigit(d_) - g15Digit); d_ = _v90; continue helper; } else { return g15Mask ^ (d_ | (formatInfoInt << 10)); } } }; return helper(d); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$setFormatModule = F4( function (size, isBlack, row, col) { return A2( _elm_lang$core$Array$set, A3(_pablohirafuji$elm_qrcode$QRCode_Matrix$getIndex, size, row, col), _elm_lang$core$Maybe$Just( {ctor: '_Tuple2', _0: true, _1: isBlack})); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$formatInfoVertical = F2( function (size, count) { return (_elm_lang$core$Native_Utils.cmp(count, 6) < 0) ? {ctor: '_Tuple2', _0: count, _1: 8} : ((_elm_lang$core$Native_Utils.cmp(count, 8) < 0) ? {ctor: '_Tuple2', _0: count + 1, _1: 8} : {ctor: '_Tuple2', _0: (size - 15) + count, _1: 8}); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$formatInfoHorizontal = F2( function (size, count) { return (_elm_lang$core$Native_Utils.cmp(count, 8) < 0) ? {ctor: '_Tuple2', _0: 8, _1: (size - count) - 1} : ((_elm_lang$core$Native_Utils.cmp(count, 9) < 0) ? {ctor: '_Tuple2', _0: 8, _1: 15 - count} : {ctor: '_Tuple2', _0: 8, _1: (15 - count) - 1}); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$setFormatInfo_ = F4( function (size, isBlackFn, count, matrix) { setFormatInfo_: while (true) { if (_elm_lang$core$Native_Utils.cmp(count, 15) < 0) { var isBlack = isBlackFn(count); var _p74 = A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$formatInfoVertical, size, count); var x2 = _p74._0; var y2 = _p74._1; var _p75 = A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$formatInfoHorizontal, size, count); var x1 = _p75._0; var y1 = _p75._1; var _v91 = size, _v92 = isBlackFn, _v93 = count + 1, _v94 = A5( _pablohirafuji$elm_qrcode$QRCode_Matrix$setFormatModule, size, isBlack, x2, y2, A5(_pablohirafuji$elm_qrcode$QRCode_Matrix$setFormatModule, size, isBlack, x1, y1, matrix)); size = _v91; isBlackFn = _v92; count = _v93; matrix = _v94; continue setFormatInfo_; } else { return matrix; } } }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$setFormatInfo = F3( function (ecLevel, size, _p76) { var _p77 = _p76; var isBlack = F2( function (bits_, count) { return A2( F2( function (x, y) { return _elm_lang$core$Native_Utils.eq(x, y); }), 1, 1 & (bits_ >> count)); }); var bits = A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$encodeFormatInfo, ecLevel, _p77._0); return A4( _pablohirafuji$elm_qrcode$QRCode_Matrix$setFormatInfo_, size, isBlack(bits), 0, _p77._1); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$reserveFormatInfo = F2( function (size, matrix) { return A4( _pablohirafuji$elm_qrcode$QRCode_Matrix$setFormatInfo_, size, _elm_lang$core$Basics$always(true), 0, matrix); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$finderColor = F2( function (row, col) { return ((_elm_lang$core$Native_Utils.cmp(1, row) < 1) && ((_elm_lang$core$Native_Utils.cmp(row, 7) < 1) && (_elm_lang$core$Native_Utils.eq(col, 1) || _elm_lang$core$Native_Utils.eq(col, 7)))) || (((_elm_lang$core$Native_Utils.cmp(1, col) < 1) && ((_elm_lang$core$Native_Utils.cmp(col, 7) < 1) && (_elm_lang$core$Native_Utils.eq(row, 1) || _elm_lang$core$Native_Utils.eq(row, 7)))) || ((_elm_lang$core$Native_Utils.cmp(3, row) < 1) && ((_elm_lang$core$Native_Utils.cmp(row, 5) < 1) && ((_elm_lang$core$Native_Utils.cmp(3, col) < 1) && (_elm_lang$core$Native_Utils.cmp(col, 5) < 1))))); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$setFinder = F5( function (size, rowOffset, colOffset, _p78, matrix) { var _p79 = _p78; var _p81 = _p79._0; var _p80 = _p79._1; var finalCol = _p80 + colOffset; var finalRow = _p81 + rowOffset; return ((_elm_lang$core$Native_Utils.cmp(finalRow, 0) < 0) || ((_elm_lang$core$Native_Utils.cmp(finalCol, 0) < 0) || ((_elm_lang$core$Native_Utils.cmp(finalRow, size) > -1) || (_elm_lang$core$Native_Utils.cmp(finalCol, size) > -1)))) ? matrix : A3( _elm_lang$core$Array$set, A3(_pablohirafuji$elm_qrcode$QRCode_Matrix$getIndex, size, finalRow, finalCol), _elm_lang$core$Maybe$Just( { ctor: '_Tuple2', _0: true, _1: A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$finderColor, _p81, _p80) }), matrix); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$finderRange = A2(_elm_lang$core$List$range, 0, 8); var _pablohirafuji$elm_qrcode$QRCode_Matrix$finderPattern = F4( function (size, rowOffset, colOffset, matrix) { return A3( _elm_lang$core$List$foldl, A3(_pablohirafuji$elm_qrcode$QRCode_Matrix$setFinder, size, rowOffset, colOffset), matrix, A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$getAreaCoord, _pablohirafuji$elm_qrcode$QRCode_Matrix$finderRange, _pablohirafuji$elm_qrcode$QRCode_Matrix$finderRange)); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$Model = F2( function (a, b) { return {size: a, matrix: b}; }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$Placement = F5( function (a, b, c, d, e) { return {size: a, row: b, col: c, isRight: d, isUp: e}; }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern7 = {ctor: 'Pattern7'}; var _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern6 = {ctor: 'Pattern6'}; var _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern5 = {ctor: 'Pattern5'}; var _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern4 = {ctor: 'Pattern4'}; var _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern3 = {ctor: 'Pattern3'}; var _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern2 = {ctor: 'Pattern2'}; var _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern1 = {ctor: 'Pattern1'}; var _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern0 = {ctor: 'Pattern0'}; var _pablohirafuji$elm_qrcode$QRCode_Matrix$patternList = { ctor: '::', _0: _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern0, _1: { ctor: '::', _0: _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern1, _1: { ctor: '::', _0: _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern2, _1: { ctor: '::', _0: _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern3, _1: { ctor: '::', _0: _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern4, _1: { ctor: '::', _0: _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern5, _1: { ctor: '::', _0: _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern6, _1: { ctor: '::', _0: _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern7, _1: {ctor: '[]'} } } } } } } } }; var _pablohirafuji$elm_qrcode$QRCode_Matrix$getBestMask = F2( function (size, matrix) { return A2( _elm_lang$core$Maybe$withDefault, {ctor: '_Tuple2', _0: _pablohirafuji$elm_qrcode$QRCode_Matrix$Pattern0, _1: matrix}, A2( _elm_lang$core$Maybe$map, function (_p82) { var _p83 = _p82; return {ctor: '_Tuple2', _0: _p83._1, _1: _p83._2}; }, A3( _elm_lang$core$List$foldl, A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$getBestMask_, size, matrix), _elm_lang$core$Maybe$Nothing, _pablohirafuji$elm_qrcode$QRCode_Matrix$patternList))); }); var _pablohirafuji$elm_qrcode$QRCode_Matrix$apply = function (_p84) { var _p85 = _p84; var version = _p85._0.groupInfo.version; var size = ((version - 1) * 4) + 21; return A2( _elm_lang$core$Result$map, _pablohirafuji$elm_qrcode$QRCode_Matrix$Model(size), A2( _elm_lang$core$Result$map, A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$setFormatInfo, _p85._0.ecLevel, size), A2( _elm_lang$core$Result$map, _pablohirafuji$elm_qrcode$QRCode_Matrix$getBestMask(size), A2( _elm_lang$core$Result$map, A2(_pablohirafuji$elm_qrcode$QRCode_Matrix$addData, size, _p85._1), A3( _pablohirafuji$elm_qrcode$QRCode_Matrix$alignmentPattern, version, size, A2( _pablohirafuji$elm_qrcode$QRCode_Matrix$timingPattern, size, A3( _pablohirafuji$elm_qrcode$QRCode_Matrix$darkModule, version, size, A3( _pablohirafuji$elm_qrcode$QRCode_Matrix$setVersionInfo, version, size, A2( _pablohirafuji$elm_qrcode$QRCode_Matrix$reserveFormatInfo, size, A4( _pablohirafuji$elm_qrcode$QRCode_Matrix$finderPattern, size, -1, size - 8, A4( _pablohirafuji$elm_qrcode$QRCode_Matrix$finderPattern, size, size - 8, -1, A4( _pablohirafuji$elm_qrcode$QRCode_Matrix$finderPattern, size, -1, -1, A2( _elm_lang$core$Array$initialize, size * size, _elm_lang$core$Basics$always(_elm_lang$core$Maybe$Nothing)))))))))))))); }; var _pablohirafuji$elm_qrcode$QRCode_View$indexToModuleView = F2( function (size, index) { return { row: ((index / size) | 0) + 4, col: A2(_elm_lang$core$Basics_ops['%'], index, size) + 4 }; }); var _pablohirafuji$elm_qrcode$QRCode_View$moduleView = F3( function (size, index, maybeModule) { var _p0 = maybeModule; if (((_p0.ctor === 'Just') && (_p0._0.ctor === '_Tuple2')) && (_p0._0._1 === true)) { return _elm_lang$core$Maybe$Just( A2(_pablohirafuji$elm_qrcode$QRCode_View$indexToModuleView, size, index)); } else { return _elm_lang$core$Maybe$Nothing; } }); var _pablohirafuji$elm_qrcode$QRCode_View$moduleSize = 5; var _pablohirafuji$elm_qrcode$QRCode_View$rectView = function (_p1) { var _p2 = _p1; return A2( _elm_lang$svg$Svg$rect, { ctor: '::', _0: _elm_lang$svg$Svg_Attributes$x( _elm_lang$core$Basics$toString(_p2.col * _pablohirafuji$elm_qrcode$QRCode_View$moduleSize)), _1: { ctor: '::', _0: _elm_lang$svg$Svg_Attributes$y( _elm_lang$core$Basics$toString(_p2.row * _pablohirafuji$elm_qrcode$QRCode_View$moduleSize)), _1: { ctor: '::', _0: _elm_lang$svg$Svg_Attributes$width( _elm_lang$core$Basics$toString(_pablohirafuji$elm_qrcode$QRCode_View$moduleSize)), _1: { ctor: '::', _0: _elm_lang$svg$Svg_Attributes$height( _elm_lang$core$Basics$toString(_pablohirafuji$elm_qrcode$QRCode_View$moduleSize)), _1: { ctor: '::', _0: _elm_lang$svg$Svg_Attributes$fill('black'), _1: {ctor: '[]'} } } } } }, {ctor: '[]'}); }; var _pablohirafuji$elm_qrcode$QRCode_View$toSvg = function (_p3) { var _p4 = _p3; var _p5 = _p4.size; var quietZone = 8 * _pablohirafuji$elm_qrcode$QRCode_View$moduleSize; var sizePx = _elm_lang$core$Basics$toString((_p5 * _pablohirafuji$elm_qrcode$QRCode_View$moduleSize) + quietZone); return A2( _elm_lang$svg$Svg$svg, { ctor: '::', _0: _elm_lang$svg$Svg_Attributes$width(sizePx), _1: { ctor: '::', _0: _elm_lang$svg$Svg_Attributes$height(sizePx), _1: { ctor: '::', _0: _elm_lang$svg$Svg_Attributes$viewBox( A2( _elm_lang$core$Basics_ops['++'], '0 0 ', A2( _elm_lang$core$Basics_ops['++'], sizePx, A2(_elm_lang$core$Basics_ops['++'], ' ', sizePx)))), _1: {ctor: '[]'} } } }, A2( _elm_lang$core$List$map, _pablohirafuji$elm_qrcode$QRCode_View$rectView, A2( _elm_lang$core$List$filterMap, _elm_lang$core$Basics$identity, A2( _elm_lang$core$List$indexedMap, _pablohirafuji$elm_qrcode$QRCode_View$moduleView(_p5), _elm_lang$core$Array$toList(_p4.matrix))))); }; var _pablohirafuji$elm_qrcode$QRCode_View$ModuleView = F2( function (a, b) { return {row: a, col: b}; }); var _pablohirafuji$elm_qrcode$QRCode$toMatrix = F2( function (inputStr, ecLevel) { return A2( _elm_lang$core$Result$andThen, _pablohirafuji$elm_qrcode$QRCode_Matrix$apply, A2(_pablohirafuji$elm_qrcode$QRCode_Encode$encode, inputStr, ecLevel)); }); var _pablohirafuji$elm_qrcode$QRCode$toSvg = function (inputStr) { return A2( _elm_lang$core$Result$map, _pablohirafuji$elm_qrcode$QRCode_View$toSvg, A2(_pablohirafuji$elm_qrcode$QRCode$toMatrix, inputStr, _pablohirafuji$elm_qrcode$QRCode_ECLevel$Q)); }; var _pablohirafuji$elm_qrcode$QRCode$toSvgWithECLevel = F2( function (inputStr, ecLevel) { return A2( _elm_lang$core$Result$map, _pablohirafuji$elm_qrcode$QRCode_View$toSvg, A2(_pablohirafuji$elm_qrcode$QRCode$toMatrix, inputStr, ecLevel)); }); 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$MediaFeature = F2( function (a, b) { return {key: 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$All = {ctor: 'All'}; var _rtfeldman$elm_css$Css_Structure$CustomQuery = function (a) { return {ctor: 'CustomQuery', _0: a}; }; var _rtfeldman$elm_css$Css_Structure$Not = function (a) { return {ctor: 'Not', _0: a}; }; var _rtfeldman$elm_css$Css_Structure$Or = F2( function (a, b) { return {ctor: 'Or', _0: a, _1: b}; }); var _rtfeldman$elm_css$Css_Structure$And = F2( function (a, b) { return {ctor: 'And', _0: a, _1: b}; }); var _rtfeldman$elm_css$Css_Structure$TypeQuery = function (a) { return {ctor: 'TypeQuery', _0: a}; }; var _rtfeldman$elm_css$Css_Structure$FeatureQuery = function (a) { return {ctor: 'FeatureQuery', _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$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$mediaFeatureToString = function (mediaFeature) { var _p14 = mediaFeature.value; if (_p14.ctor === 'Just') { return A2( _elm_lang$core$Basics_ops['++'], '(', A2( _elm_lang$core$Basics_ops['++'], mediaFeature.key, A2( _elm_lang$core$Basics_ops['++'], ': ', A2(_elm_lang$core$Basics_ops['++'], _p14._0, ')')))); } else { return mediaFeature.key; } }; var _rtfeldman$elm_css$Css_Structure_Output$mediaQueryToString = function (mediaQuery) { var _p15 = mediaQuery; switch (_p15.ctor) { case 'FeatureQuery': return _rtfeldman$elm_css$Css_Structure_Output$mediaFeatureToString(_p15._0); case 'TypeQuery': switch (_p15._0.ctor) { case 'All': return 'all'; case 'Print': return 'print'; case 'Screen': return 'screen'; default: return 'speech'; } case 'And': return A2( _elm_lang$core$Basics_ops['++'], '(', A2( _elm_lang$core$Basics_ops['++'], _rtfeldman$elm_css$Css_Structure_Output$mediaQueryToString(_p15._0), A2( _elm_lang$core$Basics_ops['++'], ' and ', A2( _elm_lang$core$Basics_ops['++'], _rtfeldman$elm_css$Css_Structure_Output$mediaQueryToString(_p15._1), ')')))); case 'Or': return A2( _elm_lang$core$Basics_ops['++'], '(', A2( _elm_lang$core$Basics_ops['++'], _rtfeldman$elm_css$Css_Structure_Output$mediaQueryToString(_p15._0), A2( _elm_lang$core$Basics_ops['++'], ' or ', A2( _elm_lang$core$Basics_ops['++'], _rtfeldman$elm_css$Css_Structure_Output$mediaQueryToString(_p15._1), ')')))); case 'Not': var str = _rtfeldman$elm_css$Css_Structure_Output$mediaQueryToString(_p15._0); return A2(_elm_lang$core$String$startsWith, 'not ', str) ? A2(_elm_lang$core$String$dropLeft, 4, str) : A2(_elm_lang$core$Basics_ops['++'], 'not ', str); 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 finalQuery = A2(_elm_lang$core$String$startsWith, 'not ', query) ? query : A2(_elm_lang$core$Basics_ops['++'], 'only ', query); 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['++'], finalQuery, 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: 97, 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$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$asPairs = _rtfeldman$elm_css$Css_Preprocess$toPropertyPairs; var _rtfeldman$elm_css$Css$collectSelectors = function (declarations) { collectSelectors: while (true) { var _p0 = declarations; if (_p0.ctor === '[]') { return {ctor: '[]'}; } else { if (_p0._0.ctor === 'StyleBlockDeclaration') { return A2( _elm_lang$core$Basics_ops['++'], {ctor: '::', _0: _p0._0._0._0, _1: _p0._0._0._1}, _rtfeldman$elm_css$Css$collectSelectors(_p0._1)); } else { var _v1 = _p0._1; declarations = _v1; continue collectSelectors; } } } }; var _rtfeldman$elm_css$Css$compile = _rtfeldman$elm_css$Css_Preprocess_Resolve$compile; 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$each = F2( function (snippetCreators, styles) { var selectorsToSnippet = function (selectors) { var _p1 = selectors; if (_p1.ctor === '[]') { return _rtfeldman$elm_css$Css_Preprocess$Snippet( {ctor: '[]'}); } else { return _rtfeldman$elm_css$Css_Preprocess$Snippet( { ctor: '::', _0: _rtfeldman$elm_css$Css_Preprocess$StyleBlockDeclaration( A3(_rtfeldman$elm_css$Css_Preprocess$StyleBlock, _p1._0, _p1._1, styles)), _1: {ctor: '[]'} }); } }; return selectorsToSnippet( _rtfeldman$elm_css$Css$collectSelectors( A2( _elm_lang$core$List$concatMap, _rtfeldman$elm_css$Css_Preprocess$unwrapSnippet, A2( _elm_lang$core$List$map, F2( function (x, y) { return y(x); })( {ctor: '[]'}), snippetCreators)))); }); var _rtfeldman$elm_css$Css$generalSiblings = _rtfeldman$elm_css$Css_Preprocess$NestSnippet(_rtfeldman$elm_css$Css_Structure$GeneralSibling); var _rtfeldman$elm_css$Css$adjacentSiblings = _rtfeldman$elm_css$Css_Preprocess$NestSnippet(_rtfeldman$elm_css$Css_Structure$AdjacentSibling); var _rtfeldman$elm_css$Css$descendants = _rtfeldman$elm_css$Css_Preprocess$NestSnippet(_rtfeldman$elm_css$Css_Structure$Descendant); var _rtfeldman$elm_css$Css$withClass = function ($class) { return _rtfeldman$elm_css$Css_Preprocess$ExtendSelector( _rtfeldman$elm_css$Css_Structure$ClassSelector( A2(_rtfeldman$elm_css_util$Css_Helpers$identifierToString, '', $class))); }; var _rtfeldman$elm_css$Css$children = _rtfeldman$elm_css$Css_Preprocess$NestSnippet(_rtfeldman$elm_css$Css_Structure$Child); 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 _p2 = directionality; if (_p2.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$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$Css$class = F2( function ($class, styles) { return A2( _rtfeldman$elm_css$Css$makeSnippet, styles, _rtfeldman$elm_css$Css_Structure$UniversalSelectorSequence( { ctor: '::', _0: _rtfeldman$elm_css$Css_Structure$ClassSelector( A2(_rtfeldman$elm_css_util$Css_Helpers$identifierToString, '', $class)), _1: {ctor: '[]'} })); }); var _rtfeldman$elm_css$Css$selector = F2( function (selectorStr, styles) { return A2( _rtfeldman$elm_css$Css$makeSnippet, styles, A2( _rtfeldman$elm_css$Css_Structure$CustomSelector, selectorStr, {ctor: '[]'})); }); var _rtfeldman$elm_css$Css$everything = function (styles) { return A2( _rtfeldman$elm_css$Css$makeSnippet, styles, _rtfeldman$elm_css$Css_Structure$UniversalSelectorSequence( {ctor: '[]'})); }; var _rtfeldman$elm_css$Css$id = F2( function (identifier, styles) { return A2( _rtfeldman$elm_css$Css$makeSnippet, styles, _rtfeldman$elm_css$Css_Structure$UniversalSelectorSequence( { ctor: '::', _0: _rtfeldman$elm_css$Css_Structure$IdSelector( A2(_rtfeldman$elm_css_util$Css_Helpers$identifierToString, '', identifier)), _1: {ctor: '[]'} })); }); var _rtfeldman$elm_css$Css$batch = _rtfeldman$elm_css$Css_Preprocess$ApplyStyles; var _rtfeldman$elm_css$Css$stylesheet = _rtfeldman$elm_css$Css_Preprocess$stylesheet; 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 (_p3) { var _p4 = _p3; var _p5 = _p4.value; var validWeight = function (weight) { return (!_elm_lang$core$Native_Utils.eq( _p5, _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(_p5)) ? {ctor: '[]'} : { ctor: '::', _0: A2( _elm_lang$core$Basics_ops['++'], 'fontWeight ', A2(_elm_lang$core$Basics_ops['++'], _p5, ' 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', _p5); }; 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 (_p6) { var _p7 = _p6; return A3(_rtfeldman$elm_css$Css$propertyWithWarnings, _p7.warnings, 'font-feature-settings', _p7.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 }; 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}; 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 (_p8) { return A2( _rtfeldman$elm_css$Css$prop3, 'text-decoration', _rtfeldman$elm_css$Css$valuesOrNone(_p8)); }; 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 (_p9) { return A2( _rtfeldman$elm_css$Css$prop2, 'text-decoration', _rtfeldman$elm_css$Css$valuesOrNone(_p9)); }; 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$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 (_p10) { return A2( _rtfeldman$elm_css$Css$prop1, 'font-family', _rtfeldman$elm_css$Css$stringsToValue(_p10)); }; 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 (_p11) { return A2( _rtfeldman$elm_css$Css$prop1, 'font-variant-numeric', _rtfeldman$elm_css$Css$valuesOrNone(_p11)); }; 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 (_p12) { return A2( _rtfeldman$elm_css$Css$prop1, 'text-decoration', _rtfeldman$elm_css$Css$valuesOrNone(_p12)); }; var _rtfeldman$elm_css$Css$textDecorationLine = _rtfeldman$elm_css$Css$prop1('text-decoration-line'); var _rtfeldman$elm_css$Css$textDecorationLines = function (_p13) { return A2( _rtfeldman$elm_css$Css$prop1, 'text-decoration-line', _rtfeldman$elm_css$Css$valuesOrNone(_p13)); }; 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$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}; 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: 'top left', angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible}; var _rtfeldman$elm_css$Css$toLeft = {value: 'left', angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible}; var _rtfeldman$elm_css$Css$toBottomLeft = {value: 'bottom left', angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible}; var _rtfeldman$elm_css$Css$toBottom = {value: 'bottom', angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible}; var _rtfeldman$elm_css$Css$toBottomRight = {value: 'bottom right', angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible}; var _rtfeldman$elm_css$Css$toRight = {value: 'right', angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible}; var _rtfeldman$elm_css$Css$toTopRight = {value: 'top right', angleOrDirection: _rtfeldman$elm_css$Css_Structure$Compatible}; var _rtfeldman$elm_css$Css$toTop = {value: '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 (_p14) { var _p15 = _p14; return A2( _elm_lang$core$String$append, _p15._0.value, A2( _elm_lang$core$Maybe$withDefault, '', A2( _elm_lang$core$Maybe$map, function (_p16) { return A2( _elm_lang$core$String$cons, _elm_lang$core$Native_Utils.chr(' '), function (_) { return _.value; }(_p16)); }, _p15._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 (_p17) { return A2( _rtfeldman$elm_css$Css$prop1, 'transform', _rtfeldman$elm_css$Css$valuesOrNone(_p17)); }; 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}; 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 _p18 = _elm_lang$core$Color$toRgb( A4(_elm_lang$core$Color$hsla, hue, saturation, lightness, hslAlpha)); var red = _p18.red; var green = _p18.green; var blue = _p18.blue; var alpha = _p18.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, _p22, _p21, _p20, _p19) { var _p23 = _p22; var _p24 = _p21; var _p25 = _p20; var _p26 = _p19; var toResult = function (_p27) { return _rtfeldman$hex$Hex$fromString( _elm_lang$core$String$toLower( _elm_lang$core$String$fromList(_p27))); }; var results = { ctor: '_Tuple4', _0: toResult( { ctor: '::', _0: _p23._0, _1: { ctor: '::', _0: _p23._1, _1: {ctor: '[]'} } }), _1: toResult( { ctor: '::', _0: _p24._0, _1: { ctor: '::', _0: _p24._1, _1: {ctor: '[]'} } }), _2: toResult( { ctor: '::', _0: _p25._0, _1: { ctor: '::', _0: _p25._1, _1: {ctor: '[]'} } }), _3: toResult( { ctor: '::', _0: _p26._0, _1: { ctor: '::', _0: _p26._1, _1: {ctor: '[]'} } }) }; var _p28 = results; if (((((_p28.ctor === '_Tuple4') && (_p28._0.ctor === 'Ok')) && (_p28._1.ctor === 'Ok')) && (_p28._2.ctor === 'Ok')) && (_p28._3.ctor === 'Ok')) { return { value: _rtfeldman$elm_css$Css$withPrecedingHash(str), color: _rtfeldman$elm_css$Css_Structure$Compatible, red: _p28._0._0, green: _p28._1._0, blue: _p28._2._0, alpha: _elm_lang$core$Basics$toFloat(_p28._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 _p29 = _elm_lang$core$String$toList(withoutHash); _v12_4: do { if (((_p29.ctor === '::') && (_p29._1.ctor === '::')) && (_p29._1._1.ctor === '::')) { if (_p29._1._1._1.ctor === '[]') { var _p32 = _p29._0; var _p31 = _p29._1._0; var _p30 = _p29._1._1._0; return A5( _rtfeldman$elm_css$Css$validHex, str, {ctor: '_Tuple2', _0: _p32, _1: _p32}, {ctor: '_Tuple2', _0: _p31, _1: _p31}, {ctor: '_Tuple2', _0: _p30, _1: _p30}, { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.chr('f'), _1: _elm_lang$core$Native_Utils.chr('f') }); } else { if (_p29._1._1._1._1.ctor === '[]') { var _p36 = _p29._0; var _p35 = _p29._1._0; var _p34 = _p29._1._1._0; var _p33 = _p29._1._1._1._0; return A5( _rtfeldman$elm_css$Css$validHex, str, {ctor: '_Tuple2', _0: _p36, _1: _p36}, {ctor: '_Tuple2', _0: _p35, _1: _p35}, {ctor: '_Tuple2', _0: _p34, _1: _p34}, {ctor: '_Tuple2', _0: _p33, _1: _p33}); } else { if (_p29._1._1._1._1._1.ctor === '::') { if (_p29._1._1._1._1._1._1.ctor === '[]') { return A5( _rtfeldman$elm_css$Css$validHex, str, {ctor: '_Tuple2', _0: _p29._0, _1: _p29._1._0}, {ctor: '_Tuple2', _0: _p29._1._1._0, _1: _p29._1._1._1._0}, {ctor: '_Tuple2', _0: _p29._1._1._1._1._0, _1: _p29._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 ((_p29._1._1._1._1._1._1._1.ctor === '::') && (_p29._1._1._1._1._1._1._1._1.ctor === '[]')) { return A5( _rtfeldman$elm_css$Css$validHex, str, {ctor: '_Tuple2', _0: _p29._0, _1: _p29._1._0}, {ctor: '_Tuple2', _0: _p29._1._1._0, _1: _p29._1._1._1._0}, {ctor: '_Tuple2', _0: _p29._1._1._1._1._0, _1: _p29._1._1._1._1._1._0}, {ctor: '_Tuple2', _0: _p29._1._1._1._1._1._1._0, _1: _p29._1._1._1._1._1._1._1._0}); } else { break _v12_4; } } } else { break _v12_4; } } } } else { break _v12_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}; 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}; 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 (_p37) { return !_elm_lang$core$String$isEmpty(_p37); }, { 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 _p38 = expression; if (_p38.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 _p39 = style; switch (_p39.ctor) { case 'AppendProperty': return A2(_rtfeldman$elm_css$Css$property, desiredKey, _p39._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(_p39._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(_p39._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(_p39._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(_p39._0)))), _1: {ctor: '[]'} }, desiredKey, ''); default: if (_p39._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 (_p39._0._1.ctor === '[]') { var _v15 = functionName, _v16 = desiredKey, _v17 = _p39._0._0; functionName = _v15; desiredKey = _v16; style = _v17; continue getOverloadedProperty; } else { var _v18 = functionName, _v19 = desiredKey, _v20 = _rtfeldman$elm_css$Css_Preprocess$ApplyStyles(_p39._0._1); functionName = _v18; desiredKey = _v19; style = _v20; 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 (_p40) { var _p41 = _p40; return { value: A2( _rtfeldman$elm_css$Css$cssFunction, 'rotate', { ctor: '::', _0: _p41.value, _1: {ctor: '[]'} }), transform: _rtfeldman$elm_css$Css_Structure$Compatible }; }; var _rtfeldman$elm_css$Css$rotateX = function (_p42) { var _p43 = _p42; return { value: A2( _rtfeldman$elm_css$Css$cssFunction, 'rotateX', { ctor: '::', _0: _p43.value, _1: {ctor: '[]'} }), transform: _rtfeldman$elm_css$Css_Structure$Compatible }; }; var _rtfeldman$elm_css$Css$rotateY = function (_p44) { var _p45 = _p44; return { value: A2( _rtfeldman$elm_css$Css$cssFunction, 'rotateY', { ctor: '::', _0: _p45.value, _1: {ctor: '[]'} }), transform: _rtfeldman$elm_css$Css_Structure$Compatible }; }; var _rtfeldman$elm_css$Css$rotateZ = function (_p46) { var _p47 = _p46; return { value: A2( _rtfeldman$elm_css$Css$cssFunction, 'rotateZ', { ctor: '::', _0: _p47.value, _1: {ctor: '[]'} }), transform: _rtfeldman$elm_css$Css_Structure$Compatible }; }; var _rtfeldman$elm_css$Css$rotate3d = F4( function (x, y, z, _p48) { var _p49 = _p48; 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: _p49.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 (_p50) { var _p51 = _p50; return { value: A2( _rtfeldman$elm_css$Css$cssFunction, 'skew', { ctor: '::', _0: _p51.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 (_p52) { var _p53 = _p52; return { value: A2( _rtfeldman$elm_css$Css$cssFunction, 'skewX', { ctor: '::', _0: _p53.value, _1: {ctor: '[]'} }), transform: _rtfeldman$elm_css$Css_Structure$Compatible }; }; var _rtfeldman$elm_css$Css$skewY = function (_p54) { var _p55 = _p54; return { value: A2( _rtfeldman$elm_css$Css$cssFunction, 'skewY', { ctor: '::', _0: _p55.value, _1: {ctor: '[]'} }), transform: _rtfeldman$elm_css$Css_Structure$Compatible }; }; var _rtfeldman$elm_css$Css$translate = function (_p56) { var _p57 = _p56; return { value: A2( _rtfeldman$elm_css$Css$cssFunction, 'translate', { ctor: '::', _0: _p57.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 (_p58) { var _p59 = _p58; return { value: A2( _rtfeldman$elm_css$Css$cssFunction, 'translateX', { ctor: '::', _0: _p59.value, _1: {ctor: '[]'} }), transform: _rtfeldman$elm_css$Css_Structure$Compatible }; }; var _rtfeldman$elm_css$Css$translateY = function (_p60) { var _p61 = _p60; return { value: A2( _rtfeldman$elm_css$Css$cssFunction, 'translateY', { ctor: '::', _0: _p61.value, _1: {ctor: '[]'} }), transform: _rtfeldman$elm_css$Css_Structure$Compatible }; }; var _rtfeldman$elm_css$Css$translateZ = function (_p62) { var _p63 = _p62; return { value: A2( _rtfeldman$elm_css$Css$cssFunction, 'translateZ', { ctor: '::', _0: _p63.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}; }), A2(_elm_lang$core$Basics_ops['++'], 'to ', 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 {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, textDecorationLine: r, textRendering: s, textIndent: t, textDecorationStyle: u, textTransform: v, length: w, lengthOrAuto: x, lengthOrNone: y, lengthOrNumber: z, lengthOrMinMaxDimension: _1, lengthOrNoneOrMinMaxDimension: _2, lengthOrNumberOrAutoOrNoneOrContent: _3, listStyleType: _4, listStylePosition: _5, listStyleTypeOrPositionOrImage: _6, fontFamily: _7, fontSize: _8, fontStyle: _9, fontWeight: _10, fontVariant: _11, units: _12, numericValue: _13, unitLabel: _14, warnings: _15, backgroundRepeat: _16, backgroundRepeatShorthand: _17, backgroundAttachment: _18, backgroundBlendMode: _19, backgroundOrigin: _20, backgroundImage: _21, lengthOrAutoOrCoverOrContain: _22, intOrAuto: _23, touchAction: _24, whiteSpace: _25}; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; 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$PseudoClass = F2( function (a, b) { return {ctor: 'PseudoClass', _0: a, _1: b}; }); var _rtfeldman$elm_css$Css$PseudoElement = F2( function (a, b) { return {ctor: 'PseudoElement', _0: a, _1: b}; }); 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, 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 }; 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_Elements$typeSelector = F2( function (selectorStr, styles) { var sequence = A2( _rtfeldman$elm_css$Css_Structure$TypeSelectorSequence, _rtfeldman$elm_css$Css_Structure$TypeSelector(selectorStr), {ctor: '[]'}); 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$Css_Elements$html = _rtfeldman$elm_css$Css_Elements$typeSelector('html'); var _rtfeldman$elm_css$Css_Elements$body = _rtfeldman$elm_css$Css_Elements$typeSelector('body'); var _rtfeldman$elm_css$Css_Elements$article = _rtfeldman$elm_css$Css_Elements$typeSelector('article'); var _rtfeldman$elm_css$Css_Elements$header = _rtfeldman$elm_css$Css_Elements$typeSelector('header'); var _rtfeldman$elm_css$Css_Elements$footer = _rtfeldman$elm_css$Css_Elements$typeSelector('footer'); var _rtfeldman$elm_css$Css_Elements$h1 = _rtfeldman$elm_css$Css_Elements$typeSelector('h1'); var _rtfeldman$elm_css$Css_Elements$h2 = _rtfeldman$elm_css$Css_Elements$typeSelector('h2'); var _rtfeldman$elm_css$Css_Elements$h3 = _rtfeldman$elm_css$Css_Elements$typeSelector('h3'); var _rtfeldman$elm_css$Css_Elements$h4 = _rtfeldman$elm_css$Css_Elements$typeSelector('h4'); var _rtfeldman$elm_css$Css_Elements$h5 = _rtfeldman$elm_css$Css_Elements$typeSelector('h5'); var _rtfeldman$elm_css$Css_Elements$h6 = _rtfeldman$elm_css$Css_Elements$typeSelector('h6'); var _rtfeldman$elm_css$Css_Elements$nav = _rtfeldman$elm_css$Css_Elements$typeSelector('nav'); var _rtfeldman$elm_css$Css_Elements$menu = _rtfeldman$elm_css$Css_Elements$typeSelector('menu'); var _rtfeldman$elm_css$Css_Elements$section = _rtfeldman$elm_css$Css_Elements$typeSelector('section'); var _rtfeldman$elm_css$Css_Elements$aside = _rtfeldman$elm_css$Css_Elements$typeSelector('aside'); var _rtfeldman$elm_css$Css_Elements$time = _rtfeldman$elm_css$Css_Elements$typeSelector('time'); var _rtfeldman$elm_css$Css_Elements$div = _rtfeldman$elm_css$Css_Elements$typeSelector('div'); var _rtfeldman$elm_css$Css_Elements$hr = _rtfeldman$elm_css$Css_Elements$typeSelector('hr'); var _rtfeldman$elm_css$Css_Elements$li = _rtfeldman$elm_css$Css_Elements$typeSelector('li'); var _rtfeldman$elm_css$Css_Elements$main_ = _rtfeldman$elm_css$Css_Elements$typeSelector('main'); var _rtfeldman$elm_css$Css_Elements$ol = _rtfeldman$elm_css$Css_Elements$typeSelector('ol'); var _rtfeldman$elm_css$Css_Elements$p = _rtfeldman$elm_css$Css_Elements$typeSelector('p'); var _rtfeldman$elm_css$Css_Elements$ul = _rtfeldman$elm_css$Css_Elements$typeSelector('ul'); var _rtfeldman$elm_css$Css_Elements$pre = _rtfeldman$elm_css$Css_Elements$typeSelector('pre'); var _rtfeldman$elm_css$Css_Elements$dl = _rtfeldman$elm_css$Css_Elements$typeSelector('dl'); var _rtfeldman$elm_css$Css_Elements$dt = _rtfeldman$elm_css$Css_Elements$typeSelector('dt'); var _rtfeldman$elm_css$Css_Elements$dd = _rtfeldman$elm_css$Css_Elements$typeSelector('dd'); var _rtfeldman$elm_css$Css_Elements$a = _rtfeldman$elm_css$Css_Elements$typeSelector('a'); var _rtfeldman$elm_css$Css_Elements$code = _rtfeldman$elm_css$Css_Elements$typeSelector('code'); var _rtfeldman$elm_css$Css_Elements$small = _rtfeldman$elm_css$Css_Elements$typeSelector('small'); var _rtfeldman$elm_css$Css_Elements$span = _rtfeldman$elm_css$Css_Elements$typeSelector('span'); var _rtfeldman$elm_css$Css_Elements$strong = _rtfeldman$elm_css$Css_Elements$typeSelector('strong'); var _rtfeldman$elm_css$Css_Elements$i = _rtfeldman$elm_css$Css_Elements$typeSelector('i'); var _rtfeldman$elm_css$Css_Elements$em = _rtfeldman$elm_css$Css_Elements$typeSelector('em'); var _rtfeldman$elm_css$Css_Elements$q = _rtfeldman$elm_css$Css_Elements$typeSelector('q'); var _rtfeldman$elm_css$Css_Elements$img = _rtfeldman$elm_css$Css_Elements$typeSelector('img'); var _rtfeldman$elm_css$Css_Elements$audio = _rtfeldman$elm_css$Css_Elements$typeSelector('audio'); var _rtfeldman$elm_css$Css_Elements$video = _rtfeldman$elm_css$Css_Elements$typeSelector('video'); var _rtfeldman$elm_css$Css_Elements$canvas = _rtfeldman$elm_css$Css_Elements$typeSelector('canvas'); var _rtfeldman$elm_css$Css_Elements$caption = _rtfeldman$elm_css$Css_Elements$typeSelector('caption'); var _rtfeldman$elm_css$Css_Elements$col = _rtfeldman$elm_css$Css_Elements$typeSelector('col'); var _rtfeldman$elm_css$Css_Elements$colgroup = _rtfeldman$elm_css$Css_Elements$typeSelector('colgroup'); var _rtfeldman$elm_css$Css_Elements$table = _rtfeldman$elm_css$Css_Elements$typeSelector('table'); var _rtfeldman$elm_css$Css_Elements$tbody = _rtfeldman$elm_css$Css_Elements$typeSelector('tbody'); var _rtfeldman$elm_css$Css_Elements$td = _rtfeldman$elm_css$Css_Elements$typeSelector('td'); var _rtfeldman$elm_css$Css_Elements$tfoot = _rtfeldman$elm_css$Css_Elements$typeSelector('tfoot'); var _rtfeldman$elm_css$Css_Elements$th = _rtfeldman$elm_css$Css_Elements$typeSelector('th'); var _rtfeldman$elm_css$Css_Elements$thead = _rtfeldman$elm_css$Css_Elements$typeSelector('thead'); var _rtfeldman$elm_css$Css_Elements$tr = _rtfeldman$elm_css$Css_Elements$typeSelector('tr'); var _rtfeldman$elm_css$Css_Elements$button = _rtfeldman$elm_css$Css_Elements$typeSelector('button'); var _rtfeldman$elm_css$Css_Elements$fieldset = _rtfeldman$elm_css$Css_Elements$typeSelector('fieldset'); var _rtfeldman$elm_css$Css_Elements$form = _rtfeldman$elm_css$Css_Elements$typeSelector('form'); var _rtfeldman$elm_css$Css_Elements$input = _rtfeldman$elm_css$Css_Elements$typeSelector('input'); var _rtfeldman$elm_css$Css_Elements$label = _rtfeldman$elm_css$Css_Elements$typeSelector('label'); var _rtfeldman$elm_css$Css_Elements$legend = _rtfeldman$elm_css$Css_Elements$typeSelector('legend'); var _rtfeldman$elm_css$Css_Elements$optgroup = _rtfeldman$elm_css$Css_Elements$typeSelector('optgroup'); var _rtfeldman$elm_css$Css_Elements$option = _rtfeldman$elm_css$Css_Elements$typeSelector('option'); var _rtfeldman$elm_css$Css_Elements$progress = _rtfeldman$elm_css$Css_Elements$typeSelector('progress'); var _rtfeldman$elm_css$Css_Elements$select = _rtfeldman$elm_css$Css_Elements$typeSelector('select'); var _rtfeldman$elm_css$Css_Elements$textarea = _rtfeldman$elm_css$Css_Elements$typeSelector('textarea'); var _rtfeldman$elm_css$Css_Elements$blockquote = _rtfeldman$elm_css$Css_Elements$typeSelector('blockquote'); var _rtfeldman$elm_css$Css_Elements$svg = _rtfeldman$elm_css$Css_Elements$typeSelector('svg'); var _rtfeldman$elm_css$Css_Elements$path = _rtfeldman$elm_css$Css_Elements$typeSelector('path'); var _rtfeldman$elm_css$Css_Elements$rect = _rtfeldman$elm_css$Css_Elements$typeSelector('rect'); var _rtfeldman$elm_css$Css_Elements$circle = _rtfeldman$elm_css$Css_Elements$typeSelector('circle'); var _rtfeldman$elm_css$Css_Elements$ellipse = _rtfeldman$elm_css$Css_Elements$typeSelector('ellipse'); var _rtfeldman$elm_css$Css_Elements$line = _rtfeldman$elm_css$Css_Elements$typeSelector('line'); var _rtfeldman$elm_css$Css_Elements$polyline = _rtfeldman$elm_css$Css_Elements$typeSelector('polyline'); var _rtfeldman$elm_css$Css_Elements$polygon = _rtfeldman$elm_css$Css_Elements$typeSelector('polygon'); var _rtfeldman$elm_css_helpers$Html_CssHelpers$stylesheetLink = function (url) { return A3( _elm_lang$html$Html$node, 'link', { ctor: '::', _0: A2( _elm_lang$html$Html_Attributes$property, 'rel', _elm_lang$core$Json_Encode$string('stylesheet')), _1: { ctor: '::', _0: A2( _elm_lang$html$Html_Attributes$property, 'type', _elm_lang$core$Json_Encode$string('text/css')), _1: { ctor: '::', _0: A2( _elm_lang$html$Html_Attributes$property, 'href', _elm_lang$core$Json_Encode$string(url)), _1: {ctor: '[]'} } } }, {ctor: '[]'}); }; var _rtfeldman$elm_css_helpers$Html_CssHelpers$style = function (text) { return A3( _elm_lang$html$Html$node, 'style', { ctor: '::', _0: A2( _elm_lang$html$Html_Attributes$property, 'textContent', _elm_lang$core$Json_Encode$string(text)), _1: { ctor: '::', _0: A2( _elm_lang$html$Html_Attributes$property, 'type', _elm_lang$core$Json_Encode$string('text/css')), _1: {ctor: '[]'} } }, {ctor: '[]'}); }; var _rtfeldman$elm_css_helpers$Html_CssHelpers$namespacedClass = F2( function (name, list) { return _elm_lang$html$Html_Attributes$class( A2( _elm_lang$core$String$join, ' ', A2( _elm_lang$core$List$map, _rtfeldman$elm_css_util$Css_Helpers$identifierToString(name), list))); }); var _rtfeldman$elm_css_helpers$Html_CssHelpers$class = _rtfeldman$elm_css_helpers$Html_CssHelpers$namespacedClass(''); var _rtfeldman$elm_css_helpers$Html_CssHelpers$classList = function (list) { return _rtfeldman$elm_css_helpers$Html_CssHelpers$class( 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_helpers$Html_CssHelpers$namespacedClassList = F2( function (name, list) { return A2( _rtfeldman$elm_css_helpers$Html_CssHelpers$namespacedClass, name, 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_helpers$Html_CssHelpers$helpers = { $class: _rtfeldman$elm_css_helpers$Html_CssHelpers$class, classList: _rtfeldman$elm_css_helpers$Html_CssHelpers$classList, id: function (_p0) { return _elm_lang$html$Html_Attributes$id( _rtfeldman$elm_css_util$Css_Helpers$toCssIdentifier(_p0)); } }; var _rtfeldman$elm_css_helpers$Html_CssHelpers$withNamespace = function (name) { return { $class: _rtfeldman$elm_css_helpers$Html_CssHelpers$namespacedClass(name), classList: _rtfeldman$elm_css_helpers$Html_CssHelpers$namespacedClassList(name), id: function (_p1) { return _elm_lang$html$Html_Attributes$id( _rtfeldman$elm_css_util$Css_Helpers$toCssIdentifier(_p1)); }, name: name }; }; var _rtfeldman$elm_css_helpers$Html_CssHelpers$withClass = F3( function (className, makeElem, attrs) { return makeElem( { ctor: '::', _0: _elm_lang$html$Html_Attributes$class(className), _1: attrs }); }); var _rtfeldman$elm_css_helpers$Html_CssHelpers$Helpers = F3( function (a, b, c) { return {$class: a, classList: b, id: c}; }); var _rtfeldman$elm_css_helpers$Html_CssHelpers$Namespace = F4( function (a, b, c, d) { return {$class: a, classList: b, id: c, name: d}; }); var _tripokey$elm_fuzzy$Fuzzy$dissect = F2( function (separators, strings) { dissect: while (true) { var _p0 = separators; if (_p0.ctor === '[]') { return strings; } else { var _p4 = _p0._0; var dissectEntry = function (entry) { var separatorLength = _elm_lang$core$String$length(_p4); var slice = F2( function (index, _p1) { var _p2 = _p1; var _p3 = _p2._0; var separatorSlice = { ctor: '::', _0: A3(_elm_lang$core$String$slice, index, index + separatorLength, entry), _1: {ctor: '[]'} }; var precedingSlice = _elm_lang$core$Native_Utils.eq(_p3, index) ? {ctor: '[]'} : { ctor: '::', _0: A3(_elm_lang$core$String$slice, _p3, index, entry), _1: {ctor: '[]'} }; return { ctor: '_Tuple2', _0: index + separatorLength, _1: A2( _elm_lang$core$Basics_ops['++'], _p2._1, A2(_elm_lang$core$Basics_ops['++'], precedingSlice, separatorSlice)) }; }); var indexes = A2(_elm_lang$core$String$indexes, _p4, entry); var result = A3( _elm_lang$core$List$foldl, slice, { ctor: '_Tuple2', _0: 0, _1: {ctor: '[]'} }, indexes); var first = _elm_lang$core$Tuple$second(result); var lastIndex = _elm_lang$core$Tuple$first(result); var entryLength = _elm_lang$core$String$length(entry); var last = _elm_lang$core$Native_Utils.eq(lastIndex, entryLength) ? {ctor: '[]'} : { ctor: '::', _0: A3(_elm_lang$core$String$slice, lastIndex, entryLength, entry), _1: {ctor: '[]'} }; return A2(_elm_lang$core$Basics_ops['++'], first, last); }; var dissected = A3( _elm_lang$core$List$foldl, F2( function (e, s) { return A2( _elm_lang$core$Basics_ops['++'], s, dissectEntry(e)); }), {ctor: '[]'}, strings); var _v2 = _p0._1, _v3 = dissected; separators = _v2; strings = _v3; continue dissect; } } }); var _tripokey$elm_fuzzy$Fuzzy$quickSort = function (entries) { var _p5 = entries; if (_p5.ctor === '[]') { return { ctor: '_Tuple2', _0: 0, _1: {ctor: '[]'} }; } else { var _p6 = _p5._0; var partition = A2( _elm_lang$core$List$partition, function (e) { return _elm_lang$core$Native_Utils.cmp(e, _p6) < 0; }, _p5._1); var smaller = _tripokey$elm_fuzzy$Fuzzy$quickSort( _elm_lang$core$Tuple$first(partition)); var penalty = _elm_lang$core$List$isEmpty( _elm_lang$core$Tuple$second(smaller)) ? 0 : 1; var larger = _tripokey$elm_fuzzy$Fuzzy$quickSort( _elm_lang$core$Tuple$second(partition)); return { ctor: '_Tuple2', _0: (_elm_lang$core$Tuple$first(smaller) + penalty) + _elm_lang$core$Tuple$first(larger), _1: A2( _elm_lang$core$Basics_ops['++'], _elm_lang$core$Tuple$second(smaller), A2( _elm_lang$core$Basics_ops['++'], { ctor: '::', _0: _p6, _1: {ctor: '[]'} }, _elm_lang$core$Tuple$second(larger))) }; } }; var _tripokey$elm_fuzzy$Fuzzy$initialModel = {ctor: '[]'}; var _tripokey$elm_fuzzy$Fuzzy$Match = F4( function (a, b, c, d) { return {score: a, offset: b, length: c, keys: d}; }); var _tripokey$elm_fuzzy$Fuzzy$distance = F3( function (config, needle, hay) { var accumulateInsertPenalty = F2( function (elem, result) { var _p7 = result; if (_p7._0.ctor === 'Just') { return { ctor: '_Tuple2', _0: _elm_lang$core$Maybe$Just(elem), _1: ((elem - 1) - _p7._0._0) + _p7._1 }; } else { return { ctor: '_Tuple2', _0: _elm_lang$core$Maybe$Just(elem), _1: _p7._1 }; } }); var accumulate = F2( function (c, indexList) { var indexes = A2( _elm_lang$core$String$indexes, _elm_lang$core$String$fromChar(c), hay); var hayIndex = _elm_lang$core$List$head( A2( _elm_lang$core$List$filter, function (e) { return !A2(_elm_lang$core$List$member, e, indexList); }, indexes)); var _p8 = hayIndex; if (_p8.ctor === 'Just') { return A2( _elm_lang$core$Basics_ops['++'], indexList, { ctor: '::', _0: _p8._0, _1: {ctor: '[]'} }); } else { return indexList; } }); var accumulated = A3(_elm_lang$core$String$foldl, accumulate, _tripokey$elm_fuzzy$Fuzzy$initialModel, needle); var sorted = _tripokey$elm_fuzzy$Fuzzy$quickSort(accumulated); var mPenalty = _elm_lang$core$Tuple$first(sorted) * config.movePenalty; var iPenalty = _elm_lang$core$Tuple$second( A3( _elm_lang$core$List$foldl, accumulateInsertPenalty, {ctor: '_Tuple2', _0: _elm_lang$core$Maybe$Nothing, _1: 0}, _elm_lang$core$Tuple$second(sorted))) * config.insertPenalty; var hPenalty = (_elm_lang$core$String$length(hay) - _elm_lang$core$List$length(accumulated)) * config.addPenalty; var nPenalty = (_elm_lang$core$String$length(needle) - _elm_lang$core$List$length(accumulated)) * config.removePenalty; return A4( _tripokey$elm_fuzzy$Fuzzy$Match, ((mPenalty + hPenalty) + nPenalty) + iPenalty, 0, _elm_lang$core$String$length(hay), _elm_lang$core$Tuple$second(sorted)); }); var _tripokey$elm_fuzzy$Fuzzy$Result = F2( function (a, b) { return {score: a, matches: b}; }); var _tripokey$elm_fuzzy$Fuzzy$ConfigModel = F4( function (a, b, c, d) { return {addPenalty: a, movePenalty: b, removePenalty: c, insertPenalty: d}; }); var _tripokey$elm_fuzzy$Fuzzy$defaultConfig = A4(_tripokey$elm_fuzzy$Fuzzy$ConfigModel, 10, 1000, 10000, 1); var _tripokey$elm_fuzzy$Fuzzy$match = F4( function (configs, separators, needle, hay) { var initialResult = A2( _tripokey$elm_fuzzy$Fuzzy$Result, 0, {ctor: '[]'}); var reduceHays = F3( function (ns, c, hs) { var padHays = F2( function (ns, hs) { return A2( _elm_lang$core$Basics_ops['++'], hs, A2( _elm_lang$core$List$repeat, ns - _elm_lang$core$List$length(hs), '')); }); var reduceRight = F3( function (ns, c, hs) { return A2( _elm_lang$core$List$take, _elm_lang$core$List$length(hs) - ((ns - c) - 1), hs); }); var reduceLeft = F3( function (ns, c, hs) { return { ctor: '_Tuple2', _0: A3( _elm_lang$core$List$foldl, F2( function (e, sum) { return _elm_lang$core$String$length(e) + sum; }), 0, A2(_elm_lang$core$List$take, c, hs)), _1: A2(_elm_lang$core$List$drop, c, hs) }; }); return A3( reduceLeft, ns, c, A3( reduceRight, ns, c, A2(padHays, ns, hs))); }); var hays = A2( _tripokey$elm_fuzzy$Fuzzy$dissect, separators, { ctor: '::', _0: hay, _1: {ctor: '[]'} }); var needles = A2( _tripokey$elm_fuzzy$Fuzzy$dissect, separators, { ctor: '::', _0: needle, _1: {ctor: '[]'} }); var accumulateConfig = F2( function (c, sum) { var _p9 = c; switch (_p9.ctor) { case 'AddPenalty': return _elm_lang$core$Native_Utils.update( sum, {addPenalty: _p9._0}); case 'RemovePenalty': return _elm_lang$core$Native_Utils.update( sum, {removePenalty: _p9._0}); case 'MovePenalty': return _elm_lang$core$Native_Utils.update( sum, {movePenalty: _p9._0}); default: return _elm_lang$core$Native_Utils.update( sum, {insertPenalty: _p9._0}); } }); var config = A3(_elm_lang$core$List$foldl, accumulateConfig, _tripokey$elm_fuzzy$Fuzzy$defaultConfig, configs); var minScore = F2( function (n, _p10) { var _p11 = _p10; var _p16 = _p11._0; var accumulateMatch = F2( function (e, _p12) { var _p13 = _p12; var _p15 = _p13._1; var _p14 = _p13._0; var newOffset = _p15 + _elm_lang$core$String$length(e); var eDistance = A3(_tripokey$elm_fuzzy$Fuzzy$distance, config, n, e); var newMatch = (_elm_lang$core$Native_Utils.cmp(eDistance.score, _p14.score) < 0) ? _elm_lang$core$Native_Utils.update( eDistance, {offset: _p15}) : _p14; return {ctor: '_Tuple2', _0: newMatch, _1: newOffset}; }); var initialPenalty = (((_elm_lang$core$String$length(n) * config.removePenalty) + (_elm_lang$core$String$length(n) * config.movePenalty)) + (_elm_lang$core$String$length(hay) * config.addPenalty)) + ((_elm_lang$core$String$length(hay) * _elm_lang$core$String$length(n)) * config.insertPenalty); var initialMatch = A4( _tripokey$elm_fuzzy$Fuzzy$Match, initialPenalty, _p16, 0, {ctor: '[]'}); return _elm_lang$core$Tuple$first( A3( _elm_lang$core$List$foldl, accumulateMatch, {ctor: '_Tuple2', _0: initialMatch, _1: _p16}, _p11._1)); }); var accumulateResult = F2( function (n, _p17) { var _p18 = _p17; var _p20 = _p18._0; var _p19 = _p18._1; var matchResult = A2( minScore, n, A3( reduceHays, _elm_lang$core$List$length(needles), _p19, hays)); var newResult = _elm_lang$core$Native_Utils.update( _p20, { score: matchResult.score + _p20.score, matches: A2( _elm_lang$core$Basics_ops['++'], _p20.matches, { ctor: '::', _0: matchResult, _1: {ctor: '[]'} }) }); return {ctor: '_Tuple2', _0: newResult, _1: _p19 + 1}; }); return _elm_lang$core$Tuple$first( A3( _elm_lang$core$List$foldl, accumulateResult, {ctor: '_Tuple2', _0: initialResult, _1: 0}, needles)); }); var _tripokey$elm_fuzzy$Fuzzy$InsertPenalty = function (a) { return {ctor: 'InsertPenalty', _0: a}; }; var _tripokey$elm_fuzzy$Fuzzy$insertPenalty = function (penalty) { return _tripokey$elm_fuzzy$Fuzzy$InsertPenalty(penalty); }; var _tripokey$elm_fuzzy$Fuzzy$MovePenalty = function (a) { return {ctor: 'MovePenalty', _0: a}; }; var _tripokey$elm_fuzzy$Fuzzy$movePenalty = function (penalty) { return _tripokey$elm_fuzzy$Fuzzy$MovePenalty(penalty); }; var _tripokey$elm_fuzzy$Fuzzy$RemovePenalty = function (a) { return {ctor: 'RemovePenalty', _0: a}; }; var _tripokey$elm_fuzzy$Fuzzy$removePenalty = function (penalty) { return _tripokey$elm_fuzzy$Fuzzy$RemovePenalty(penalty); }; var _tripokey$elm_fuzzy$Fuzzy$AddPenalty = function (a) { return {ctor: 'AddPenalty', _0: a}; }; var _tripokey$elm_fuzzy$Fuzzy$addPenalty = function (penalty) { return _tripokey$elm_fuzzy$Fuzzy$AddPenalty(penalty); }; var _user$project$FieldSet_Types$Field = F6( function (a, b, c, d, e, f) { return {code: a, display: b, placeholder: c, required: d, value: e, loadedValue: f}; }); var _user$project$FieldSet_Types$Input = F2( function (a, b) { return {ctor: 'Input', _0: a, _1: b}; }); var _user$project$FieldSet_Types$PasswordHidden = {ctor: 'PasswordHidden'}; var _user$project$FieldSet_Types$PasswordEmpty = {ctor: 'PasswordEmpty'}; var _user$project$FieldSet_Types$Password = function (a) { return {ctor: 'Password', _0: a}; }; var _user$project$FieldSet_Types$FieldInteger = function (a) { return {ctor: 'FieldInteger', _0: a}; }; var _user$project$FieldSet_Types$FieldPassword = function (a) { return {ctor: 'FieldPassword', _0: a}; }; var _user$project$FieldSet_Types$FieldString = function (a) { return {ctor: 'FieldString', _0: a}; }; var _user$project$FieldSet_Types$updateFieldValue = F2( function (stringValue, oldFieldValue) { var _p0 = oldFieldValue; switch (_p0.ctor) { case 'FieldString': return _user$project$FieldSet_Types$FieldString(stringValue); case 'FieldPassword': return _user$project$FieldSet_Types$FieldPassword( _user$project$FieldSet_Types$Password(stringValue)); default: return _user$project$FieldSet_Types$FieldInteger( A2( _elm_lang$core$Result$withDefault, _p0._0, _elm_lang$core$String$toInt(stringValue))); } }); var _user$project$AccountTypes$Account = F3( function (a, b, c) { return {code: a, display: b, fields: c}; }); var _user$project$FieldSet_Rest$isDirty = function (field) { return !_elm_lang$core$Native_Utils.eq(field.value, field.loadedValue); }; var _user$project$FieldSet_Rest$maybeString = function (maybeString) { var _p0 = maybeString; if (_p0.ctor === 'Nothing') { return _elm_lang$core$Json_Encode$null; } else { return _elm_lang$core$Json_Encode$string(_p0._0); } }; var _user$project$FieldSet_Rest$encodeFieldValue = function (fieldValue) { var _p1 = fieldValue; switch (_p1.ctor) { case 'FieldString': return _elm_lang$core$Json_Encode$string(_p1._0); case 'FieldPassword': var _p2 = _p1._0; if (_p2.ctor === 'Password') { return _elm_lang$core$Json_Encode$string(_p2._0); } else { return _elm_lang$core$Json_Encode$null; } default: return _elm_lang$core$Json_Encode$int(_p1._0); } }; var _user$project$FieldSet_Rest$encodeField = function (field) { return _user$project$FieldSet_Rest$isDirty(field) ? _elm_lang$core$Maybe$Just( _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'code', _1: _elm_lang$core$Json_Encode$string(field.code) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'value', _1: _user$project$FieldSet_Rest$encodeFieldValue(field.value) }, _1: {ctor: '[]'} } })) : _elm_lang$core$Maybe$Nothing; }; var _user$project$FieldSet_Rest$badInt = _elm_lang$core$Json_Decode$oneOf( { ctor: '::', _0: _elm_lang$core$Json_Decode$int, _1: {ctor: '[]'} }); var _user$project$FieldSet_Rest$fieldPasswordDecoder = function (present) { return present ? _user$project$FieldSet_Types$FieldPassword(_user$project$FieldSet_Types$PasswordHidden) : _user$project$FieldSet_Types$FieldPassword(_user$project$FieldSet_Types$PasswordEmpty); }; var _user$project$FieldSet_Rest$fieldValueDecoder = function (fieldType) { var _p3 = fieldType; switch (_p3) { case 'string': return A2(_elm_lang$core$Json_Decode$map, _user$project$FieldSet_Types$FieldString, _elm_lang$core$Json_Decode$string); case 'password': return A2(_elm_lang$core$Json_Decode$map, _user$project$FieldSet_Rest$fieldPasswordDecoder, _elm_lang$core$Json_Decode$bool); case 'integer': return A2(_elm_lang$core$Json_Decode$map, _user$project$FieldSet_Types$FieldInteger, _user$project$FieldSet_Rest$badInt); default: return _elm_lang$core$Json_Decode$fail( A2(_elm_lang$core$Basics_ops['++'], 'Unsupported field type: ', fieldType)); } }; var _user$project$FieldSet_Rest$fieldDecoder = A2( _elm_lang$core$Json_Decode$andThen, function (fieldType) { return A7( _elm_lang$core$Json_Decode$map6, _user$project$FieldSet_Types$Field, A2(_elm_lang$core$Json_Decode$field, 'code', _elm_lang$core$Json_Decode$string), A2(_elm_lang$core$Json_Decode$field, 'display', _elm_lang$core$Json_Decode$string), _elm_lang$core$Json_Decode$oneOf( { ctor: '::', _0: A2(_elm_lang$core$Json_Decode$field, 'placeholder', _elm_lang$core$Json_Decode$string), _1: { ctor: '::', _0: _elm_lang$core$Json_Decode$succeed(''), _1: {ctor: '[]'} } }), A2(_elm_lang$core$Json_Decode$field, 'required', _elm_lang$core$Json_Decode$bool), A2( _elm_lang$core$Json_Decode$field, 'value', _user$project$FieldSet_Rest$fieldValueDecoder(fieldType)), A2( _elm_lang$core$Json_Decode$field, 'value', _user$project$FieldSet_Rest$fieldValueDecoder(fieldType))); }, A2(_elm_lang$core$Json_Decode$field, 'fieldType', _elm_lang$core$Json_Decode$string)); var _user$project$AccountDecoder$accountDecoder = A4( _elm_lang$core$Json_Decode$map3, _user$project$AccountTypes$Account, A2(_elm_lang$core$Json_Decode$field, 'code', _elm_lang$core$Json_Decode$string), A2(_elm_lang$core$Json_Decode$field, 'display', _elm_lang$core$Json_Decode$string), A2( _elm_lang$core$Json_Decode$field, 'fields', _elm_lang$core$Json_Decode$list(_user$project$FieldSet_Rest$fieldDecoder))); var _user$project$AccountDecoder$decodeAccount = function (string) { return A2(_elm_lang$core$Json_Decode$decodeString, _user$project$AccountDecoder$accountDecoder, string); }; var _user$project$AccountEncoder$encodeAccount = function (account) { return _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'code', _1: _elm_lang$core$Json_Encode$string(account.code) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'display', _1: _elm_lang$core$Json_Encode$string(account.display) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'fields', _1: _elm_lang$core$Json_Encode$list( A2(_elm_lang$core$List$filterMap, _user$project$FieldSet_Rest$encodeField, account.fields)) }, _1: {ctor: '[]'} } } }); }; var _user$project$FieldSet_State$updateField = F3( function (fieldCode, fieldValueString, field) { return _elm_lang$core$Native_Utils.eq( function (_) { return _.code; }(field), fieldCode) ? _elm_lang$core$Native_Utils.update( field, { value: A2(_user$project$FieldSet_Types$updateFieldValue, fieldValueString, field.value) }) : field; }); var _user$project$FieldSet_State$updateFieldSet = F3( function (fieldCode, fieldValueString, fields) { return A2( _elm_lang$core$List$map, A2(_user$project$FieldSet_State$updateField, fieldCode, fieldValueString), fields); }); var _user$project$FieldSet_State$update = F2( function (msg, model) { var _p0 = msg; return A2( _elm_lang$core$Platform_Cmd_ops['!'], A3(_user$project$FieldSet_State$updateFieldSet, _p0._0, _p0._1, model), {ctor: '[]'}); }); var _user$project$Css_Admin$name = 'lamassuAdmin'; var _user$project$Css_Admin$helpers = _rtfeldman$elm_css_helpers$Html_CssHelpers$withNamespace(_user$project$Css_Admin$name); var _user$project$Css_Admin$class = _user$project$Css_Admin$helpers.$class; var _user$project$Css_Admin$classList = _user$project$Css_Admin$helpers.classList; var _user$project$Css_Admin$id = _user$project$Css_Admin$helpers.id; var _user$project$Css_Admin$className = function ($class) { return A2(_rtfeldman$elm_css_util$Css_Helpers$identifierToString, _user$project$Css_Admin$name, $class); }; var _user$project$Css_Classes$BalanceSection = {ctor: 'BalanceSection'}; var _user$project$Css_Classes$CryptoAddress = {ctor: 'CryptoAddress'}; var _user$project$Css_Classes$ReadOnly = {ctor: 'ReadOnly'}; var _user$project$Css_Classes$CashIn = {ctor: 'CashIn'}; var _user$project$Css_Classes$CashOut = {ctor: 'CashOut'}; var _user$project$Css_Classes$QrCode = {ctor: 'QrCode'}; var _user$project$Css_Classes$TxCancelled = {ctor: 'TxCancelled'}; var _user$project$Css_Classes$TxAddress = {ctor: 'TxAddress'}; var _user$project$Css_Classes$TxPhone = {ctor: 'TxPhone'}; var _user$project$Css_Classes$TxCrypto = {ctor: 'TxCrypto'}; var _user$project$Css_Classes$TxFiat = {ctor: 'TxFiat'}; var _user$project$Css_Classes$TxAmount = {ctor: 'TxAmount'}; var _user$project$Css_Classes$TxMachine = {ctor: 'TxMachine'}; var _user$project$Css_Classes$TxDate = {ctor: 'TxDate'}; var _user$project$Css_Classes$TxId = {ctor: 'TxId'}; var _user$project$Css_Classes$Disabled = {ctor: 'Disabled'}; var _user$project$Css_Classes$Enabled = {ctor: 'Enabled'}; var _user$project$Css_Classes$Saving = {ctor: 'Saving'}; var _user$project$Css_Classes$EmptyTable = {ctor: 'EmptyTable'}; var _user$project$Css_Classes$UnitDisplay = {ctor: 'UnitDisplay'}; var _user$project$Css_Classes$InputContainer = {ctor: 'InputContainer'}; var _user$project$Css_Classes$TxTable = {ctor: 'TxTable'}; var _user$project$Css_Classes$DateColumn = {ctor: 'DateColumn'}; var _user$project$Css_Classes$TruncatedColumn = {ctor: 'TruncatedColumn'}; var _user$project$Css_Classes$DirectionColumn = {ctor: 'DirectionColumn'}; var _user$project$Css_Classes$NumberColumn = {ctor: 'NumberColumn'}; var _user$project$Css_Classes$InvalidGroup = {ctor: 'InvalidGroup'}; var _user$project$Css_Classes$StatusBar = {ctor: 'StatusBar'}; var _user$project$Css_Classes$Success = {ctor: 'Success'}; var _user$project$Css_Classes$Fail = {ctor: 'Fail'}; var _user$project$Css_Classes$TableButton = {ctor: 'TableButton'}; var _user$project$Css_Classes$InvalidComponent = {ctor: 'InvalidComponent'}; var _user$project$Css_Classes$FocusedComponent = {ctor: 'FocusedComponent'}; var _user$project$Css_Classes$Component = {ctor: 'Component'}; var _user$project$Css_Classes$NoInput = {ctor: 'NoInput'}; var _user$project$Css_Classes$CellDisabled = {ctor: 'CellDisabled'}; var _user$project$Css_Classes$BasicInputReadOnly = {ctor: 'BasicInputReadOnly'}; var _user$project$Css_Classes$BasicInputDisabled = {ctor: 'BasicInputDisabled'}; var _user$project$Css_Classes$BasicInput = {ctor: 'BasicInput'}; var _user$project$Css_Classes$Active = {ctor: 'Active'}; var _user$project$Css_Classes$ButtonRow = {ctor: 'ButtonRow'}; var _user$project$Css_Classes$Button = {ctor: 'Button'}; var _user$project$Css_Classes$FormRow = {ctor: 'FormRow'}; var _user$project$Css_Classes$TextCell = {ctor: 'TextCell'}; var _user$project$Css_Classes$LongCell = {ctor: 'LongCell'}; var _user$project$Css_Classes$MediumCell = {ctor: 'MediumCell'}; var _user$project$Css_Classes$ShortCell = {ctor: 'ShortCell'}; var _user$project$Css_Classes$MultiDisplay = {ctor: 'MultiDisplay'}; var _user$project$Css_Classes$BottomDisplay = {ctor: 'BottomDisplay'}; var _user$project$Css_Classes$TopDisplay = {ctor: 'TopDisplay'}; var _user$project$Css_Classes$ConfigContainer = {ctor: 'ConfigContainer'}; var _user$project$Css_Classes$ConfigTableGlobalRow = {ctor: 'ConfigTableGlobalRow'}; var _user$project$Css_Classes$ConfigTable = {ctor: 'ConfigTable'}; var _user$project$Css_Classes$SectionLabel = {ctor: 'SectionLabel'}; var _user$project$Css_Classes$CryptoTabsActive = {ctor: 'CryptoTabsActive'}; var _user$project$Css_Classes$CryptoTab = {ctor: 'CryptoTab'}; var _user$project$Css_Classes$CryptoTabs = {ctor: 'CryptoTabs'}; var _user$project$Css_Classes$Content = {ctor: 'Content'}; var _user$project$Css_Classes$Container = {ctor: 'Container'}; var _user$project$Css_Classes$NavBarRoute = {ctor: 'NavBarRoute'}; var _user$project$Css_Classes$NavBarCategory = {ctor: 'NavBarCategory'}; var _user$project$Css_Classes$NavBarCategoryContainer = {ctor: 'NavBarCategoryContainer'}; var _user$project$Css_Classes$NavBarItemActive = {ctor: 'NavBarItemActive'}; var _user$project$Css_Classes$MainRight = {ctor: 'MainRight'}; var _user$project$Css_Classes$MainLeft = {ctor: 'MainLeft'}; var _user$project$Css_Classes$NavBar = {ctor: 'NavBar'}; var _user$project$Css_Classes$Main = {ctor: 'Main'}; var _user$project$Css_Classes$Layout = {ctor: 'Layout'}; var _user$project$FieldSet_View$fieldComponent = function (field) { var inputEl = function () { var _p0 = field.value; switch (_p0.ctor) { case 'FieldString': return A2( _elm_lang$html$Html$input, { ctor: '::', _0: _elm_lang$html$Html_Events$onInput( _user$project$FieldSet_Types$Input(field.code)), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$placeholder(field.placeholder), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$defaultValue(_p0._0), _1: {ctor: '[]'} } } }, {ctor: '[]'}); case 'FieldPassword': var _p1 = _p0._0; if (_p1.ctor === 'PasswordEmpty') { return A2( _elm_lang$html$Html$input, { ctor: '::', _0: _elm_lang$html$Html_Events$onInput( _user$project$FieldSet_Types$Input(field.code)), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$name(field.code), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$type_('password'), _1: {ctor: '[]'} } } }, {ctor: '[]'}); } else { return A2( _elm_lang$html$Html$input, { ctor: '::', _0: _elm_lang$html$Html_Events$onInput( _user$project$FieldSet_Types$Input(field.code)), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$name(field.code), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$type_('password'), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$placeholder('••• Field is set •••'), _1: {ctor: '[]'} } } } }, {ctor: '[]'}); } default: return A2( _elm_lang$html$Html$input, { ctor: '::', _0: _elm_lang$html$Html_Events$onInput( _user$project$FieldSet_Types$Input(field.code)), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$type_('number'), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$defaultValue( _elm_lang$core$Basics$toString(_p0._0)), _1: {ctor: '[]'} } } }, {ctor: '[]'}); } }(); return A2( _elm_lang$html$Html$label, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text(field.display), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: inputEl, _1: {ctor: '[]'} } }); }; var _user$project$FieldSet_View$fieldView = function (field) { return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$FormRow, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _user$project$FieldSet_View$fieldComponent(field), _1: {ctor: '[]'} }); }; var _user$project$FieldSet_View$view = function (model) { return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$ConfigContainer, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, A2(_elm_lang$core$List$map, _user$project$FieldSet_View$fieldView, model)); }; var _user$project$Account$init = _krisajenkins$remotedata$RemoteData$NotAsked; var _user$project$Account$toModel = F2( function (status, account) { return {status: status, account: account}; }); var _user$project$Account$SubModel = F2( function (a, b) { return {status: a, account: b}; }); var _user$project$Account$NotSaving = {ctor: 'NotSaving'}; var _user$project$Account$Editing = {ctor: 'Editing'}; var _user$project$Account$Saved = {ctor: 'Saved'}; var _user$project$Account$Saving = {ctor: 'Saving'}; var _user$project$Account$HideSaveIndication = {ctor: 'HideSaveIndication'}; var _user$project$Account$saveUpdate = function (model) { var cmd = _elm_lang$core$Native_Utils.eq(model.status, _user$project$Account$Saved) ? A2( _elm_lang$core$Task$perform, function (_p0) { return _user$project$Account$HideSaveIndication; }, _elm_lang$core$Process$sleep(2 * _elm_lang$core$Time$second)) : _elm_lang$core$Platform_Cmd$none; return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, { ctor: '::', _0: cmd, _1: {ctor: '[]'} }); }; var _user$project$Account$FieldSetMsg = function (a) { return {ctor: 'FieldSetMsg', _0: a}; }; var _user$project$Account$Submit = {ctor: 'Submit'}; var _user$project$Account$view = function (webModel) { var _p1 = webModel; switch (_p1.ctor) { case 'NotAsked': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, {ctor: '[]'}); case 'Loading': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Loading...'), _1: {ctor: '[]'} }); case 'Failure': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( _elm_lang$core$Basics$toString(_p1._0)), _1: {ctor: '[]'} }); default: var _p3 = _p1._0; var statusString = function () { var _p2 = _p3.status; if (_p2.ctor === 'Saved') { return 'Saved'; } else { return ''; } }(); var fieldSetView = A3( _elm_lang$html$Html_Keyed$node, 'div', {ctor: '[]'}, { ctor: '::', _0: { ctor: '_Tuple2', _0: _p3.account.code, _1: A2( _elm_lang$html$Html$map, _user$project$Account$FieldSetMsg, _user$project$FieldSet_View$view(_p3.account.fields)) }, _1: {ctor: '[]'} }); return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$SectionLabel, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(_p3.account.display), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$form, { ctor: '::', _0: _user$project$Css_Admin$id(_p3.account.code), _1: {ctor: '[]'} }, { ctor: '::', _0: fieldSetView, _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$ButtonRow, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Events$onClick(_user$project$Account$Submit), _1: { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$Button, _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }, { ctor: '::', _0: _elm_lang$html$Html$text('Submit'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text(statusString), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }), _1: {ctor: '[]'} } }), _1: {ctor: '[]'} } }); } }; var _user$project$Account$Load = function (a) { return {ctor: 'Load', _0: a}; }; var _user$project$Account$getForm = function (code) { return A2( _elm_lang$core$Platform_Cmd$map, _user$project$Account$Load, A2( _lukewestby$elm_http_builder$HttpBuilder$send, function (_p4) { return _krisajenkins$remotedata$RemoteData$fromResult( A2( _elm_lang$core$Result$map, _user$project$Account$toModel(_user$project$Account$NotSaving), _p4)); }, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectJson(_user$project$AccountDecoder$accountDecoder), _lukewestby$elm_http_builder$HttpBuilder$get( A2(_elm_lang$core$Basics_ops['++'], '/api/account/', code))))); }; var _user$project$Account$load = function (code) { return { ctor: '_Tuple2', _0: _krisajenkins$remotedata$RemoteData$Loading, _1: _user$project$Account$getForm(code) }; }; var _user$project$Account$postForm = function (account) { return A2( _elm_lang$core$Platform_Cmd$map, _user$project$Account$Load, A2( _lukewestby$elm_http_builder$HttpBuilder$send, function (_p5) { return _krisajenkins$remotedata$RemoteData$fromResult( A2( _elm_lang$core$Result$map, _user$project$Account$toModel(_user$project$Account$Saved), _p5)); }, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectJson(_user$project$AccountDecoder$accountDecoder), A2( _lukewestby$elm_http_builder$HttpBuilder$withJsonBody, _user$project$AccountEncoder$encodeAccount(account), _lukewestby$elm_http_builder$HttpBuilder$post('/api/account'))))); }; var _user$project$Account$update = F2( function (msg, webModel) { var _p6 = msg; switch (_p6.ctor) { case 'Load': return A2(_krisajenkins$remotedata$RemoteData$update, _user$project$Account$saveUpdate, _p6._0); case 'Submit': return A2( _krisajenkins$remotedata$RemoteData$update, function (model) { return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, { ctor: '::', _0: _user$project$Account$postForm(model.account), _1: {ctor: '[]'} }); }, webModel); case 'HideSaveIndication': return A2( _krisajenkins$remotedata$RemoteData$update, function (model) { return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {status: _user$project$Account$NotSaving}), {ctor: '[]'}); }, webModel); default: var newAccount = F2( function (account, fields) { return _elm_lang$core$Native_Utils.update( account, {fields: fields}); }); var toModel = F2( function (model, fieldsUpdate) { return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, { account: A2( newAccount, model.account, _elm_lang$core$Tuple$first(fieldsUpdate)) }), { ctor: '::', _0: A2( _elm_lang$core$Platform_Cmd$map, _user$project$Account$FieldSetMsg, _elm_lang$core$Tuple$second(fieldsUpdate)), _1: {ctor: '[]'} }); }); var updateFields = function (model) { return A2(_user$project$FieldSet_State$update, _p6._0, model.account.fields); }; var mapper = function (model) { return A2( toModel, model, updateFields(model)); }; return A2(_krisajenkins$remotedata$RemoteData$update, mapper, webModel); } }); var _user$project$AccountsDecoder$accountDecoder = A3( _elm_lang$core$Json_Decode$map2, F2( function (v0, v1) { return {ctor: '_Tuple2', _0: v0, _1: v1}; }), A2(_elm_lang$core$Json_Decode$field, 'code', _elm_lang$core$Json_Decode$string), A2(_elm_lang$core$Json_Decode$field, 'display', _elm_lang$core$Json_Decode$string)); var _user$project$AccountsDecoder$accountsDecoder = A2( _elm_lang$core$Json_Decode$map, _elm_lang$core$Basics$identity, A2( _elm_lang$core$Json_Decode$field, 'accounts', _elm_lang$core$Json_Decode$list(_user$project$AccountsDecoder$accountDecoder))); var _user$project$BasicTypes$NotSaving = {ctor: 'NotSaving'}; var _user$project$BasicTypes$Editing = {ctor: 'Editing'}; var _user$project$BasicTypes$Saved = {ctor: 'Saved'}; var _user$project$BasicTypes$Saving = {ctor: 'Saving'}; var _user$project$Common_Customer_Types$Customer = F7( function (a, b, c, d, e, f, g) { return {id: a, name: b, phone: c, phoneAt: d, created: e, status: f, authorizedOverride: g}; }); var _user$project$Common_Customer_Decoder$customerDecoder = A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'authorizedOverride', _elm_lang$core$Json_Decode$nullable(_elm_lang$core$Json_Decode$string), A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'status', _elm_lang$core$Json_Decode$nullable(_elm_lang$core$Json_Decode$string), A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'created', _elm_community$json_extra$Json_Decode_Extra$date, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'phoneAt', _elm_lang$core$Json_Decode$nullable(_elm_community$json_extra$Json_Decode_Extra$date), A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'phone', _elm_lang$core$Json_Decode$nullable(_elm_lang$core$Json_Decode$string), A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'name', _elm_lang$core$Json_Decode$nullable(_elm_lang$core$Json_Decode$string), A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'id', _elm_lang$core$Json_Decode$string, _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$decode(_user$project$Common_Customer_Types$Customer)))))))); var _user$project$Common_Customer_Decoder$customersDecoder = A2( _elm_lang$core$Json_Decode$field, 'customers', _elm_lang$core$Json_Decode$list(_user$project$Common_Customer_Decoder$customerDecoder)); var _user$project$Common_TransactionTypes$CashInTxRec = 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 {id: a, machineName: b, toAddress: c, cryptoAtoms: d, cryptoCode: e, fiat: f, fiatCode: g, txHash: h, phone: i, error: j, operatorCompleted: k, send: l, sendConfirmed: m, expired: n, created: o}; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; var _user$project$Common_TransactionTypes$CashOutTxRec = 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 {id: a, machineName: b, toAddress: c, cryptoAtoms: d, cryptoCode: e, fiat: f, fiatCode: g, status: h, dispense: i, notified: j, redeemed: k, phone: l, error: m, created: n, confirmed: o}; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; var _user$project$Common_TransactionTypes$CashOutTx = function (a) { return {ctor: 'CashOutTx', _0: a}; }; var _user$project$Common_TransactionTypes$CashInTx = function (a) { return {ctor: 'CashInTx', _0: a}; }; var _user$project$Selectize$rawOnKeyUp = function (tagger) { return A2( _elm_lang$html$Html_Events$on, 'keyup', A2(_elm_lang$core$Json_Decode$map, tagger, _elm_lang$html$Html_Events$keyCode)); }; var _user$project$Selectize$rawOnKeyDownNoPrevent = function (tagger) { return A3( _elm_lang$html$Html_Events$onWithOptions, 'keydown', {stopPropagation: false, preventDefault: false}, A2(_elm_lang$core$Json_Decode$map, tagger, _elm_lang$html$Html_Events$keyCode)); }; var _user$project$Selectize$preventSpecialDecoder = function (specialKeys) { return A2( _elm_lang$core$Json_Decode$andThen, function (code) { return A2(_elm_lang$core$List$member, code, specialKeys) ? _elm_lang$core$Json_Decode$succeed(code) : _elm_lang$core$Json_Decode$fail('don\'t prevent'); }, _elm_lang$html$Html_Events$keyCode); }; var _user$project$Selectize$rawOnKeyDown = F2( function (specialKeys, tagger) { var options = {stopPropagation: false, preventDefault: true}; return A3( _elm_lang$html$Html_Events$onWithOptions, 'keydown', options, A2( _elm_lang$core$Json_Decode$map, tagger, _user$project$Selectize$preventSpecialDecoder(specialKeys))); }); var _user$project$Selectize$deleteSpecialKeys = { ctor: '::', _0: 38, _1: { ctor: '::', _0: 40, _1: { ctor: '::', _0: 9, _1: { ctor: '::', _0: 13, _1: { ctor: '::', _0: 27, _1: {ctor: '[]'} } } } } }; var _user$project$Selectize$noDeleteSpecialKeys = { ctor: '::', _0: 8, _1: { ctor: '::', _0: 38, _1: { ctor: '::', _0: 40, _1: { ctor: '::', _0: 9, _1: { ctor: '::', _0: 13, _1: { ctor: '::', _0: 27, _1: {ctor: '[]'} } } } } } }; var _user$project$Selectize$onMouseDown = F3( function (config, state, id) { return _elm_lang$html$Html_Events$onMouseDown( A2(config.onAdd, id, state)); }); var _user$project$Selectize$mapToItem = F3( function (toId, available, id) { return _elm_lang$core$List$head( A2( _elm_lang$core$List$filter, function (_p0) { return A2( F2( function (x, y) { return _elm_lang$core$Native_Utils.eq(x, y); }), id, toId(_p0)); }, available)); }); var _user$project$Selectize$diffItems = F3( function (config, a, b) { var isEqual = F2( function (itemA, itemB) { return _elm_lang$core$Native_Utils.eq( config.toId(itemA), config.toId(itemB)); }); var notInB = F2( function (b, item) { return !A2( _elm_lang$core$List$any, isEqual(item), b); }); return A2( _elm_lang$core$List$filter, notInB(b), a); }); var _user$project$Selectize$buildItems = F3( function (selectedItems, availableItems, boxItems) { return {selectedItems: selectedItems, availableItems: availableItems, boxItems: boxItems}; }); var _user$project$Selectize$noMatches = F3( function (config, boxItems, state) { var h = config.htmlOptions; return _elm_lang$core$Native_Utils.eq( _elm_lang$core$List$length(boxItems), 0) ? A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Attributes$classList( { ctor: '::', _0: {ctor: '_Tuple2', _0: h.classes.info, _1: true}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: h.classes.infoNoMatches, _1: true}, _1: {ctor: '[]'} } }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(h.noMatches), _1: {ctor: '[]'} }) : A2( _elm_lang$html$Html$span, {ctor: '[]'}, {ctor: '[]'}); }); var _user$project$Selectize$editingBoxView = F3( function (config, items, state) { var h = config.htmlOptions; var c = h.classes; var boxItemHtml = F2( function (pos, item) { return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Attributes$classList( { ctor: '::', _0: {ctor: '_Tuple2', _0: c.boxItem, _1: true}, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: c.boxItemActive, _1: _elm_lang$core$Native_Utils.eq(state.boxPosition, pos) }, _1: {ctor: '[]'} } }), _1: { ctor: '::', _0: A3( _user$project$Selectize$onMouseDown, config, state, config.toId(item)), _1: {ctor: '[]'} } }, { ctor: '::', _0: _elm_lang$html$Html$text( config.optionDisplay(item)), _1: {ctor: '[]'} }); }); return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Attributes$class(c.boxItems), _1: {ctor: '[]'} }, A2(_elm_lang$core$List$indexedMap, boxItemHtml, items.boxItems)); }); var _user$project$Selectize$idleBoxView = F3( function (config, items, state) { var numSelected = _elm_lang$core$List$length(items.selectedItems); var remainingItems = _elm_lang$core$List$length(items.availableItems) - numSelected; var h = config.htmlOptions; var typeForMore = (_elm_lang$core$Native_Utils.cmp(remainingItems, config.boxLength) > 0) ? ((_elm_lang$core$Native_Utils.cmp(numSelected, config.maxItems) < 0) ? A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Attributes$class(h.classes.info), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(h.typeForMore), _1: {ctor: '[]'} }) : A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Attributes$class(h.classes.info), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('Backspace for more'), _1: {ctor: '[]'} })) : A2( _elm_lang$html$Html$span, {ctor: '[]'}, {ctor: '[]'}); return ((_elm_lang$core$Native_Utils.cmp(config.maxItems, 1) > 0) && _elm_lang$core$Native_Utils.eq( _elm_lang$core$List$length(items.selectedItems), config.maxItems)) ? A2( _elm_lang$html$Html$span, {ctor: '[]'}, {ctor: '[]'}) : A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Attributes$class(h.classes.boxContainer), _1: {ctor: '[]'} }, { ctor: '::', _0: A3(_user$project$Selectize$editingBoxView, config, items, state), _1: { ctor: '::', _0: typeForMore, _1: {ctor: '[]'} } }); }); var _user$project$Selectize$boxView = F3( function (config, items, state) { var h = config.htmlOptions; var _p1 = state.status; switch (_p1.ctor) { case 'Editing': return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Attributes$class(h.classes.boxContainer), _1: {ctor: '[]'} }, { ctor: '::', _0: A3(_user$project$Selectize$editingBoxView, config, items, state), _1: { ctor: '::', _0: A3(_user$project$Selectize$noMatches, config, items.boxItems, state), _1: {ctor: '[]'} } }); case 'Initial': return A3(_user$project$Selectize$idleBoxView, config, items, state); case 'Idle': return A3(_user$project$Selectize$idleBoxView, config, items, state); case 'Cleared': return A3(_user$project$Selectize$idleBoxView, config, items, state); default: return A2( _elm_lang$html$Html$span, {ctor: '[]'}, {ctor: '[]'}); } }); var _user$project$Selectize$itemView = F3( function (config, isFallback, item) { var c = config.htmlOptions.classes; return A2( _elm_lang$html$Html$span, { ctor: '::', _0: _elm_lang$html$Html_Attributes$classList( { ctor: '::', _0: {ctor: '_Tuple2', _0: c.selectedItem, _1: true}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: c.fallbackItem, _1: isFallback}, _1: {ctor: '[]'} } }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text( config.selectedDisplay(item)), _1: {ctor: '[]'} }); }); var _user$project$Selectize$fallbackItemsView = F4( function (config, items, fallbackItems, state) { var selectedItems = items.selectedItems; var isFallback = _elm_lang$core$Native_Utils.eq( _elm_lang$core$List$length(selectedItems), 0); var itemsView = isFallback ? fallbackItems : items.selectedItems; var c = config.htmlOptions.classes; var classes = _elm_lang$html$Html_Attributes$classList( { ctor: '::', _0: {ctor: '_Tuple2', _0: c.selectedItems, _1: true}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: c.fallbackItems, _1: isFallback}, _1: {ctor: '[]'} } }); return A2( _elm_lang$html$Html$span, { ctor: '::', _0: classes, _1: {ctor: '[]'} }, A2( _elm_lang$core$List$map, A2(_user$project$Selectize$itemView, config, isFallback), itemsView)); }); var _user$project$Selectize$itemsView = F4( function (config, items, fallbackItems, state) { var _p2 = state.status; switch (_p2.ctor) { case 'Editing': return A4( _user$project$Selectize$fallbackItemsView, config, items, {ctor: '[]'}, state); case 'Initial': return A4( _user$project$Selectize$fallbackItemsView, config, items, {ctor: '[]'}, state); case 'Idle': return A4( _user$project$Selectize$fallbackItemsView, config, items, {ctor: '[]'}, state); case 'Cleared': return A4(_user$project$Selectize$fallbackItemsView, config, items, fallbackItems, state); default: return A4(_user$project$Selectize$fallbackItemsView, config, items, fallbackItems, state); } }); var _user$project$Selectize$clean = function (s) { return _elm_lang$core$String$toLower( _elm_lang$core$String$trim(s)); }; var _user$project$Selectize$HtmlOptions = F7( function (a, b, c, d, e, f, g) { return {instructionsForBlank: a, noMatches: b, typeForMore: c, atMaxLength: d, noOptions: e, notAvailable: f, classes: g}; }); var _user$project$Selectize$HtmlClasses = 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 {container: a, noOptions: b, singleItemContainer: c, multiItemContainer: d, selectBox: e, selectedItems: f, fallbackItems: g, fallbackItem: h, selectedItem: i, boxContainer: j, boxItems: k, boxItem: l, boxItemActive: m, info: n, infoNoMatches: o, inputEditing: p}; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; var _user$project$Selectize$State = F3( function (a, b, c) { return {boxPosition: a, status: b, string: c}; }); var _user$project$Selectize$Config = 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 {maxItems: a, boxLength: b, toMsg: c, onAdd: d, onRemove: e, onFocus: f, onBlur: g, toId: h, enabled: i, selectedDisplay: j, optionDisplay: k, match: l, htmlOptions: m}; }; }; }; }; }; }; }; }; }; }; }; }; }; var _user$project$Selectize$Items = F3( function (a, b, c) { return {selectedItems: a, availableItems: b, boxItems: c}; }); var _user$project$Selectize$Blurred = {ctor: 'Blurred'}; var _user$project$Selectize$initialSelectize = {boxPosition: -1, string: '', status: _user$project$Selectize$Blurred}; var _user$project$Selectize$onBlur = F2( function (config, state) { return _elm_lang$html$Html_Events$onBlur( config.onBlur( _elm_lang$core$Native_Utils.update( state, {status: _user$project$Selectize$Blurred}))); }); var _user$project$Selectize$Idle = {ctor: 'Idle'}; var _user$project$Selectize$Cleared = {ctor: 'Cleared'}; var _user$project$Selectize$addSelection = F3( function (config, items, state) { var maybeItem = (_elm_lang$core$Native_Utils.cmp(state.boxPosition, 0) < 0) ? _elm_lang$core$Maybe$Nothing : function (_p3) { return _elm_lang$core$List$head( A2(_elm_lang$core$List$drop, state.boxPosition, _p3)); }(items.boxItems); var _p4 = maybeItem; if (_p4.ctor === 'Nothing') { return config.toMsg(state); } else { return A2( config.onAdd, config.toId(_p4._0), _elm_lang$core$Native_Utils.update( state, {status: _user$project$Selectize$Cleared, string: '', boxPosition: -1})); } }); var _user$project$Selectize$updateKeyDown = F4( function (config, items, state, keyCode) { if ((_elm_lang$core$Native_Utils.cmp(config.maxItems, 1) > 0) && _elm_lang$core$Native_Utils.eq( _elm_lang$core$List$length(items.selectedItems), config.maxItems)) { var _p5 = keyCode; if (_p5 === 8) { return (_elm_lang$core$String$isEmpty(state.string) && function (_p6) { return !_elm_lang$core$List$isEmpty(_p6); }(items.selectedItems)) ? config.onRemove(state) : config.toMsg(state); } else { return config.toMsg(state); } } else { var _p7 = keyCode; switch (_p7) { case 38: return config.toMsg( _elm_lang$core$Native_Utils.update( state, { boxPosition: A2(_elm_lang$core$Basics$max, -1, state.boxPosition - 1) })); case 40: return config.toMsg( _elm_lang$core$Native_Utils.update( state, { boxPosition: A2( _elm_lang$core$Basics$min, _elm_lang$core$List$length(items.boxItems) - 1, state.boxPosition + 1) })); case 13: return A3(_user$project$Selectize$addSelection, config, items, state); case 8: return (_elm_lang$core$String$isEmpty(state.string) && function (_p8) { return !_elm_lang$core$List$isEmpty(_p8); }(items.selectedItems)) ? config.onRemove(state) : config.toMsg(state); case 9: return A3(_user$project$Selectize$addSelection, config, items, state); default: return config.toMsg(state); } } }); var _user$project$Selectize$onKeyDownDelete = F3( function (config, items, state) { return A2( _user$project$Selectize$rawOnKeyDown, _user$project$Selectize$deleteSpecialKeys, A3(_user$project$Selectize$updateKeyDown, config, items, state)); }); var _user$project$Selectize$onKeyDownNoDelete = F3( function (config, items, state) { return A2( _user$project$Selectize$rawOnKeyDown, _user$project$Selectize$noDeleteSpecialKeys, A3(_user$project$Selectize$updateKeyDown, config, items, state)); }); var _user$project$Selectize$onKeyDown = F3( function (config, items, state) { return _user$project$Selectize$rawOnKeyDownNoPrevent( A3(_user$project$Selectize$updateKeyDown, config, items, state)); }); var _user$project$Selectize$Editing = {ctor: 'Editing'}; var _user$project$Selectize$onInput = F2( function (config, state) { var tagger = function (s) { return _elm_lang$core$Native_Utils.eq( _elm_lang$core$String$length(s), 0) ? config.toMsg( _elm_lang$core$Native_Utils.update( state, {status: _user$project$Selectize$Idle, string: s})) : config.toMsg( _elm_lang$core$Native_Utils.update( state, {status: _user$project$Selectize$Editing, string: s})); }; return _elm_lang$html$Html_Events$onInput(tagger); }); var _user$project$Selectize$Initial = {ctor: 'Initial'}; var _user$project$Selectize$updateKeyUp = F4( function (config, items, state, keyCode) { return (_elm_lang$core$Native_Utils.eq(keyCode, 13) || _elm_lang$core$Native_Utils.eq(keyCode, 9)) ? config.toMsg( _elm_lang$core$Native_Utils.update( state, {status: _user$project$Selectize$Initial})) : config.toMsg(state); }); var _user$project$Selectize$onKeyUp = F3( function (config, items, state) { return _user$project$Selectize$rawOnKeyUp( A3(_user$project$Selectize$updateKeyUp, config, items, state)); }); var _user$project$Selectize$onFocus = F2( function (config, state) { return _elm_lang$html$Html_Events$onFocus( config.onFocus( _elm_lang$core$Native_Utils.update( state, {status: _user$project$Selectize$Initial, boxPosition: -1}))); }); var _user$project$Selectize$view = F5( function (config, selectedIds, availableItems, fallbackIds, state) { if (_elm_lang$core$Native_Utils.eq( _elm_lang$core$List$length(availableItems), 0)) { return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Attributes$class(config.htmlOptions.classes.container), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Attributes$class(config.htmlOptions.classes.noOptions), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(config.htmlOptions.noOptions), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }); } else { if (!config.enabled) { return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Attributes$class(config.htmlOptions.classes.container), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Attributes$class(config.htmlOptions.classes.noOptions), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(' '), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }); } else { var onFocusAtt = A2(_user$project$Selectize$onFocus, config, state); var onBlurAtt = A2(_user$project$Selectize$onBlur, config, state); var onInputAtt = A2(_user$project$Selectize$onInput, config, state); var fallbackItems = A2( _elm_lang$core$List$filterMap, A2(_user$project$Selectize$mapToItem, config.toId, availableItems), fallbackIds); var selectedItems = A2( _elm_lang$core$List$filterMap, A2(_user$project$Selectize$mapToItem, config.toId, availableItems), selectedIds); var remainingItems = A3(_user$project$Selectize$diffItems, config, availableItems, selectedItems); var boxItems = A2( _elm_lang$core$List$take, 5, A2(config.match, state.string, remainingItems)); var items = A3(_user$project$Selectize$buildItems, selectedItems, availableItems, boxItems); var keyDown = (_elm_lang$core$Native_Utils.cmp(config.maxItems, 1) > 0) ? (_elm_lang$core$String$isEmpty(state.string) ? A3(_user$project$Selectize$onKeyDownNoDelete, config, items, state) : A3(_user$project$Selectize$onKeyDownDelete, config, items, state)) : A3(_user$project$Selectize$onKeyDown, config, items, state); var h = config.htmlOptions; var editInput = function () { var _p9 = state.status; switch (_p9.ctor) { case 'Initial': return (_elm_lang$core$Native_Utils.cmp( _elm_lang$core$List$length(selectedItems), config.maxItems) < 0) ? A2( _elm_lang$html$Html$input, { ctor: '::', _0: onBlurAtt, _1: { ctor: '::', _0: onInputAtt, _1: {ctor: '[]'} } }, {ctor: '[]'}) : A2( _elm_lang$html$Html$input, { ctor: '::', _0: onBlurAtt, _1: { ctor: '::', _0: onInputAtt, _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$maxlength(0), _1: {ctor: '[]'} } } }, {ctor: '[]'}); case 'Idle': return (_elm_lang$core$Native_Utils.cmp( _elm_lang$core$List$length(selectedItems), config.maxItems) < 0) ? A2( _elm_lang$html$Html$input, { ctor: '::', _0: onBlurAtt, _1: { ctor: '::', _0: onInputAtt, _1: {ctor: '[]'} } }, {ctor: '[]'}) : A2( _elm_lang$html$Html$input, { ctor: '::', _0: onBlurAtt, _1: { ctor: '::', _0: onInputAtt, _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$maxlength(0), _1: {ctor: '[]'} } } }, {ctor: '[]'}); case 'Editing': var actualMaxlength = _elm_lang$core$Native_Utils.eq( _elm_lang$core$List$length(boxItems), 0) ? 0 : 524288; return A2( _elm_lang$html$Html$input, { ctor: '::', _0: _elm_lang$html$Html_Attributes$maxlength(actualMaxlength), _1: { ctor: '::', _0: onBlurAtt, _1: { ctor: '::', _0: onInputAtt, _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$class(h.classes.inputEditing), _1: {ctor: '[]'} } } } }, {ctor: '[]'}); case 'Cleared': return A2( _elm_lang$html$Html$input, { ctor: '::', _0: A3(_user$project$Selectize$onKeyUp, config, items, state), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$value(''), _1: { ctor: '::', _0: onBlurAtt, _1: { ctor: '::', _0: onInputAtt, _1: {ctor: '[]'} } } } }, {ctor: '[]'}); default: return A2( _elm_lang$html$Html$input, { ctor: '::', _0: _elm_lang$html$Html_Attributes$maxlength(0), _1: { ctor: '::', _0: onFocusAtt, _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$value(''), _1: {ctor: '[]'} } } }, {ctor: '[]'}); } }(); return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Attributes$class(h.classes.container), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$label, { ctor: '::', _0: _elm_lang$html$Html_Attributes$classList( { ctor: '::', _0: { ctor: '_Tuple2', _0: h.classes.singleItemContainer, _1: _elm_lang$core$Native_Utils.eq(config.maxItems, 1) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: h.classes.multiItemContainer, _1: _elm_lang$core$Native_Utils.cmp(config.maxItems, 1) > 0 }, _1: {ctor: '[]'} } }), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$span, { ctor: '::', _0: _elm_lang$html$Html_Attributes$class(h.classes.selectBox), _1: { ctor: '::', _0: keyDown, _1: {ctor: '[]'} } }, { ctor: '::', _0: A2( _elm_lang$html$Html$span, {ctor: '[]'}, { ctor: '::', _0: A4(_user$project$Selectize$itemsView, config, items, fallbackItems, state), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: editInput, _1: {ctor: '[]'} } }), _1: { ctor: '::', _0: A3(_user$project$Selectize$boxView, config, items, state), _1: {ctor: '[]'} } }), _1: {ctor: '[]'} }); } } }); var _user$project$ConfigTypes$cryptoToString = function (crypto) { var _p0 = crypto; if (_p0.ctor === 'GlobalCrypto') { return 'global'; } else { return _p0._0; } }; var _user$project$ConfigTypes$fieldHolderMap = F3( function ($default, mapper, fieldHolder) { var _p1 = fieldHolder; if (_p1.ctor === 'FieldOk') { return mapper(_p1._0); } else { return $default; } }); var _user$project$ConfigTypes$groupMember = F2( function (configGroup, fieldCode) { return A2( _elm_lang$core$List$any, function (_p2) { return A2( F2( function (x, y) { return _elm_lang$core$Native_Utils.eq(x, y); }), fieldCode, function (_) { return _.code; }(_p2)); }, configGroup.schema.entries); }); var _user$project$ConfigTypes$fieldHolderToMaybe = function (fieldHolder) { var _p3 = fieldHolder; if (_p3.ctor === 'FieldOk') { return _elm_lang$core$Maybe$Just(_p3._0); } else { return _elm_lang$core$Maybe$Nothing; } }; var _user$project$ConfigTypes$fieldHolderToCryptoStrings = function (fieldHolder) { var _p4 = fieldHolder; if (_p4.ctor === 'FieldOk') { var _p5 = _p4._0; if (_p5.ctor === 'FieldCryptoCurrencyValue') { return _p5._0; } else { return {ctor: '[]'}; } } else { return {ctor: '[]'}; } }; var _user$project$ConfigTypes$isCrypto = F2( function (cryptoString, cryptoDisplay) { var _p6 = cryptoDisplay.crypto; if (_p6.ctor === 'GlobalCrypto') { return _elm_lang$core$Native_Utils.eq(cryptoString, 'global'); } else { return _elm_lang$core$Native_Utils.eq(cryptoString, _p6._0); } }); var _user$project$ConfigTypes$lookupCryptoDisplay = F2( function (cryptoDisplays, cryptoString) { return _elm_lang$core$List$head( A2( _elm_lang$core$List$filter, _user$project$ConfigTypes$isCrypto(cryptoString), cryptoDisplays)); }); var _user$project$ConfigTypes$machineToString = function (machine) { var _p7 = machine; if (_p7.ctor === 'GlobalMachine') { return 'global'; } else { return _p7._0; } }; var _user$project$ConfigTypes$fieldValueToString = function (fieldValue) { var _p8 = fieldValue; switch (_p8.ctor) { case 'FieldStringValue': return _p8._0; case 'FieldPercentageValue': return _elm_lang$core$Basics$toString(_p8._0); case 'FieldIntegerValue': return _elm_lang$core$Basics$toString(_p8._0); case 'FieldDecimalValue': return _elm_lang$core$Basics$toString(_p8._0); case 'FieldOnOffValue': return _p8._0 ? 'on' : 'off'; case 'FieldAccountValue': return _p8._0; case 'FieldFiatCurrencyValue': return _p8._0; case 'FieldCryptoCurrencyValue': return A2(_elm_lang$core$String$join, ',', _p8._0); case 'FieldLanguageValue': return A2(_elm_lang$core$String$join, ',', _p8._0); default: return _p8._0; } }; var _user$project$ConfigTypes$fieldValueToDisplay = function (fieldValue) { var _p9 = fieldValue; if (_p9.ctor === 'FieldOnOffValue') { return _p9._0 ? 'On' : 'Off'; } else { return _user$project$ConfigTypes$fieldValueToString(fieldValue); } }; var _user$project$ConfigTypes$initFieldCollection = { fields: {ctor: '[]'}, fieldInstances: {ctor: '[]'} }; var _user$project$ConfigTypes$accountRecToDisplayRec = function (accountRec) { return {code: accountRec.code, display: accountRec.display}; }; var _user$project$ConfigTypes$DisplayRec = F2( function (a, b) { return {code: a, display: b}; }); var _user$project$ConfigTypes$MachineDisplay = F2( function (a, b) { return {machine: a, display: b}; }); var _user$project$ConfigTypes$FieldScope = F2( function (a, b) { return {crypto: a, machine: b}; }); var _user$project$ConfigTypes$FieldLocator = F4( function (a, b, c, d) { return {fieldScope: a, code: b, fieldType: c, fieldClass: d}; }); var _user$project$ConfigTypes$FieldInstance = F9( function (a, b, c, d, e, f, g, h, i) { return {fieldLocator: a, component: b, fieldHolder: c, loadedFieldHolder: d, fieldValidation: e, fieldEnabledIfAny: f, fieldEnabledIfAll: g, readOnly: h, inScope: i}; }); var _user$project$ConfigTypes$ResolvedFieldInstance = F2( function (a, b) { return {fieldLocator: a, fieldValue: b}; }); var _user$project$ConfigTypes$Field = F5( function (a, b, c, d, e) { return {fieldLocator: a, fieldValue: b, fieldEnabledIfAny: c, fieldEnabledIfAll: d, inScope: e}; }); var _user$project$ConfigTypes$FieldMeta = F4( function (a, b, c, d) { return {fieldLocator: a, fieldEnabledIfAny: b, fieldEnabledIfAll: c, inScope: d}; }); var _user$project$ConfigTypes$FieldDescriptor = 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 {code: a, cryptoScope: b, machineScope: c, displayTop: d, displayBottom: e, displayCount: f, fieldType: g, fieldValidation: h, fieldClass: i, fieldEnabledIfAny: j, fieldEnabledIfAll: k, readOnly: l}; }; }; }; }; }; }; }; }; }; }; }; }; var _user$project$ConfigTypes$ConfigSchema = F5( function (a, b, c, d, e) { return {code: a, display: b, cryptoScope: c, machineScope: d, entries: e}; }); var _user$project$ConfigTypes$ConfigGroup = F4( function (a, b, c, d) { return {schema: a, values: b, selectedCryptos: c, data: d}; }); var _user$project$ConfigTypes$AccountRec = F4( function (a, b, c, d) { return {code: a, display: b, $class: c, cryptos: d}; }); var _user$project$ConfigTypes$ConfigData = F6( function (a, b, c, d, e, f) { return {cryptoCurrencies: a, currencies: b, languages: c, countries: d, accounts: e, machines: f}; }); var _user$project$ConfigTypes$FieldCollection = F2( function (a, b) { return {fields: a, fieldInstances: b}; }); var _user$project$ConfigTypes$CryptoDisplay = F2( function (a, b) { return {crypto: a, display: b}; }); var _user$project$ConfigTypes$GlobalMachine = {ctor: 'GlobalMachine'}; var _user$project$ConfigTypes$globalMachineDisplay = {machine: _user$project$ConfigTypes$GlobalMachine, display: 'Global'}; var _user$project$ConfigTypes$listMachines = function (configGroup) { var _p10 = configGroup.schema.machineScope; switch (_p10.ctor) { case 'Specific': return configGroup.data.machines; case 'Global': return { ctor: '::', _0: _user$project$ConfigTypes$globalMachineDisplay, _1: {ctor: '[]'} }; default: return {ctor: '::', _0: _user$project$ConfigTypes$globalMachineDisplay, _1: configGroup.data.machines}; } }; var _user$project$ConfigTypes$MachineId = function (a) { return {ctor: 'MachineId', _0: a}; }; var _user$project$ConfigTypes$Both = {ctor: 'Both'}; var _user$project$ConfigTypes$Specific = {ctor: 'Specific'}; var _user$project$ConfigTypes$Global = {ctor: 'Global'}; var _user$project$ConfigTypes$FieldEmpty = {ctor: 'FieldEmpty'}; var _user$project$ConfigTypes$FieldOk = function (a) { return {ctor: 'FieldOk', _0: a}; }; var _user$project$ConfigTypes$ValidationError = function (a) { return {ctor: 'ValidationError', _0: a}; }; var _user$project$ConfigTypes$ParsingError = function (a) { return {ctor: 'ParsingError', _0: a}; }; var _user$project$ConfigTypes$resultToFieldHolder = function (result) { var _p11 = result; if (_p11.ctor === 'Ok') { return _user$project$ConfigTypes$FieldOk(_p11._0); } else { return _user$project$ConfigTypes$ParsingError(_p11._0); } }; var _user$project$ConfigTypes$SelectizeComponent = function (a) { return {ctor: 'SelectizeComponent', _0: a}; }; var _user$project$ConfigTypes$InputBoxComponent = {ctor: 'InputBoxComponent'}; var _user$project$ConfigTypes$FieldCountryType = {ctor: 'FieldCountryType'}; var _user$project$ConfigTypes$FieldLanguageType = {ctor: 'FieldLanguageType'}; var _user$project$ConfigTypes$FieldCryptoCurrencyType = {ctor: 'FieldCryptoCurrencyType'}; var _user$project$ConfigTypes$FieldFiatCurrencyType = {ctor: 'FieldFiatCurrencyType'}; var _user$project$ConfigTypes$FieldAccountType = {ctor: 'FieldAccountType'}; var _user$project$ConfigTypes$FieldOnOffType = {ctor: 'FieldOnOffType'}; var _user$project$ConfigTypes$FieldDecimalType = {ctor: 'FieldDecimalType'}; var _user$project$ConfigTypes$FieldIntegerType = {ctor: 'FieldIntegerType'}; var _user$project$ConfigTypes$FieldPercentageType = {ctor: 'FieldPercentageType'}; var _user$project$ConfigTypes$FieldStringType = {ctor: 'FieldStringType'}; var _user$project$ConfigTypes$FieldCountryValue = function (a) { return {ctor: 'FieldCountryValue', _0: a}; }; var _user$project$ConfigTypes$FieldLanguageValue = function (a) { return {ctor: 'FieldLanguageValue', _0: a}; }; var _user$project$ConfigTypes$FieldCryptoCurrencyValue = function (a) { return {ctor: 'FieldCryptoCurrencyValue', _0: a}; }; var _user$project$ConfigTypes$FieldFiatCurrencyValue = function (a) { return {ctor: 'FieldFiatCurrencyValue', _0: a}; }; var _user$project$ConfigTypes$FieldAccountValue = function (a) { return {ctor: 'FieldAccountValue', _0: a}; }; var _user$project$ConfigTypes$FieldOnOffValue = function (a) { return {ctor: 'FieldOnOffValue', _0: a}; }; var _user$project$ConfigTypes$FieldDecimalValue = function (a) { return {ctor: 'FieldDecimalValue', _0: a}; }; var _user$project$ConfigTypes$FieldIntegerValue = function (a) { return {ctor: 'FieldIntegerValue', _0: a}; }; var _user$project$ConfigTypes$FieldPercentageValue = function (a) { return {ctor: 'FieldPercentageValue', _0: a}; }; var _user$project$ConfigTypes$FieldStringValue = function (a) { return {ctor: 'FieldStringValue', _0: a}; }; var _user$project$ConfigTypes$stringToFieldHolder = F2( function (fieldType, s) { if (_elm_lang$core$String$isEmpty(s)) { return _user$project$ConfigTypes$FieldEmpty; } else { var _p12 = fieldType; switch (_p12.ctor) { case 'FieldStringType': return _user$project$ConfigTypes$FieldOk( _user$project$ConfigTypes$FieldStringValue(s)); case 'FieldPercentageType': return _user$project$ConfigTypes$resultToFieldHolder( A2( _elm_lang$core$Result$map, _user$project$ConfigTypes$FieldPercentageValue, _elm_lang$core$String$toFloat(s))); case 'FieldIntegerType': return _user$project$ConfigTypes$resultToFieldHolder( A2( _elm_lang$core$Result$map, _user$project$ConfigTypes$FieldIntegerValue, _elm_lang$core$String$toInt(s))); case 'FieldDecimalType': return _user$project$ConfigTypes$resultToFieldHolder( A2( _elm_lang$core$Result$map, _user$project$ConfigTypes$FieldDecimalValue, _elm_lang$core$String$toFloat(s))); case 'FieldOnOffType': var _p13 = s; switch (_p13) { case 'on': return _user$project$ConfigTypes$FieldOk( _user$project$ConfigTypes$FieldOnOffValue(true)); case 'off': return _user$project$ConfigTypes$FieldOk( _user$project$ConfigTypes$FieldOnOffValue(false)); default: return _user$project$ConfigTypes$ParsingError( A2(_elm_lang$core$Basics_ops['++'], 'Unsupported value for OnOff: ', s)); } case 'FieldAccountType': return _user$project$ConfigTypes$FieldOk( _user$project$ConfigTypes$FieldAccountValue(s)); case 'FieldFiatCurrencyType': return _user$project$ConfigTypes$FieldOk( _user$project$ConfigTypes$FieldFiatCurrencyValue(s)); case 'FieldCryptoCurrencyType': return _user$project$ConfigTypes$FieldOk( _user$project$ConfigTypes$FieldCryptoCurrencyValue( { ctor: '::', _0: s, _1: {ctor: '[]'} })); case 'FieldLanguageType': return _user$project$ConfigTypes$FieldOk( _user$project$ConfigTypes$FieldLanguageValue( { ctor: '::', _0: s, _1: {ctor: '[]'} })); default: return _user$project$ConfigTypes$FieldOk( _user$project$ConfigTypes$FieldCountryValue(s)); } } }); var _user$project$ConfigTypes$FieldRequired = {ctor: 'FieldRequired'}; var _user$project$ConfigTypes$FieldMax = function (a) { return {ctor: 'FieldMax', _0: a}; }; var _user$project$ConfigTypes$FieldMin = function (a) { return {ctor: 'FieldMin', _0: a}; }; var _user$project$ConfigTypes$DisplayTopNone = {ctor: 'DisplayTopNone'}; var _user$project$ConfigTypes$DisplayTopSolo = function (a) { return {ctor: 'DisplayTopSolo', _0: a}; }; var _user$project$ConfigTypes$DisplayTopLeader = F2( function (a, b) { return {ctor: 'DisplayTopLeader', _0: a, _1: b}; }); var _user$project$ConfigTypes$GlobalCrypto = {ctor: 'GlobalCrypto'}; var _user$project$ConfigTypes$globalCryptoDisplay = {crypto: _user$project$ConfigTypes$GlobalCrypto, display: 'Global'}; var _user$project$ConfigTypes$allCryptos = F3( function (cryptoDisplays, cryptoScope, cryptoStrings) { var allSpecificCryptos = A2( _elm_lang$core$List$filterMap, _user$project$ConfigTypes$lookupCryptoDisplay(cryptoDisplays), cryptoStrings); var _p14 = cryptoScope; switch (_p14.ctor) { case 'Global': return { ctor: '::', _0: _user$project$ConfigTypes$globalCryptoDisplay, _1: {ctor: '[]'} }; case 'Specific': return allSpecificCryptos; default: return {ctor: '::', _0: _user$project$ConfigTypes$globalCryptoDisplay, _1: allSpecificCryptos}; } }); var _user$project$ConfigTypes$listCryptos = function (configGroup) { var _p15 = configGroup.schema.cryptoScope; switch (_p15.ctor) { case 'Specific': return configGroup.data.cryptoCurrencies; case 'Global': return { ctor: '::', _0: _user$project$ConfigTypes$globalCryptoDisplay, _1: {ctor: '[]'} }; default: return {ctor: '::', _0: _user$project$ConfigTypes$globalCryptoDisplay, _1: configGroup.data.cryptoCurrencies}; } }; var _user$project$ConfigTypes$fieldScopes = function (configGroup) { var cryptos = A2( _elm_lang$core$List$map, function (_) { return _.crypto; }, _user$project$ConfigTypes$listCryptos(configGroup)); var machines = A2( _elm_lang$core$List$map, function (_) { return _.machine; }, _user$project$ConfigTypes$listMachines(configGroup)); var cryptoScopes = function (crypto) { return A2( _elm_lang$core$List$map, function (machine) { return {machine: machine, crypto: crypto}; }, machines); }; return A2(_elm_lang$core$List$concatMap, cryptoScopes, cryptos); }; var _user$project$ConfigTypes$CryptoCode = function (a) { return {ctor: 'CryptoCode', _0: a}; }; var _user$project$ConfigTypes$stringToCrypto = function (string) { var _p16 = string; if (_p16 === 'global') { return _user$project$ConfigTypes$GlobalCrypto; } else { return _user$project$ConfigTypes$CryptoCode(string); } }; var _user$project$ConfigDecoder$displayTopDecoderHelper = function (maybeDisplayTopCount) { var _p0 = maybeDisplayTopCount; if (_p0.ctor === 'Nothing') { return A2( _elm_lang$core$Json_Decode$map, function (_p1) { return _user$project$ConfigTypes$DisplayTopSolo( A2(_elm_lang$core$Maybe$withDefault, '', _p1)); }, _elm_lang$core$Json_Decode$maybe( A2(_elm_lang$core$Json_Decode$field, 'displayTop', _elm_lang$core$Json_Decode$string))); } else { switch (_p0._0) { case 0: return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$DisplayTopNone); case 1: return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$DisplayTopNone); default: return A2( _elm_lang$core$Json_Decode$map, _user$project$ConfigTypes$DisplayTopLeader(_p0._0), A2(_elm_lang$core$Json_Decode$field, 'displayTop', _elm_lang$core$Json_Decode$string)); } } }; var _user$project$ConfigDecoder$displayTopDecoder = A2( _elm_lang$core$Json_Decode$andThen, _user$project$ConfigDecoder$displayTopDecoderHelper, _elm_lang$core$Json_Decode$maybe( A2(_elm_lang$core$Json_Decode$field, 'displayTopCount', _elm_lang$core$Json_Decode$int))); var _user$project$ConfigDecoder$fieldValidatorDecode = function (code) { var _p2 = code; switch (_p2) { case 'min': return A2( _elm_lang$core$Json_Decode$map, _user$project$ConfigTypes$FieldMin, A2(_elm_lang$core$Json_Decode$field, 'min', _elm_lang$core$Json_Decode$int)); case 'max': return A2( _elm_lang$core$Json_Decode$map, _user$project$ConfigTypes$FieldMax, A2(_elm_lang$core$Json_Decode$field, 'max', _elm_lang$core$Json_Decode$int)); case 'required': return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$FieldRequired); default: return _elm_lang$core$Json_Decode$fail( A2(_elm_lang$core$Basics_ops['++'], 'Unsupported fieldValidator: ', code)); } }; var _user$project$ConfigDecoder$fieldValidatorDecoder = A2( _elm_lang$core$Json_Decode$andThen, _user$project$ConfigDecoder$fieldValidatorDecode, A2(_elm_lang$core$Json_Decode$field, 'code', _elm_lang$core$Json_Decode$string)); var _user$project$ConfigDecoder$basicFieldTypeDecoder = function (s) { var _p3 = s; switch (_p3) { case 'string': return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$FieldStringType); case 'percentage': return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$FieldPercentageType); case 'integer': return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$FieldIntegerType); case 'decimal': return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$FieldDecimalType); case 'onOff': return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$FieldOnOffType); case 'account': return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$FieldAccountType); case 'fiatCurrency': return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$FieldFiatCurrencyType); case 'cryptoCurrency': return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$FieldCryptoCurrencyType); case 'language': return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$FieldLanguageType); case 'country': return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$FieldCountryType); default: return _elm_lang$core$Json_Decode$fail( A2(_elm_lang$core$Basics_ops['++'], 'No such FieldType ', s)); } }; var _user$project$ConfigDecoder$fieldTypeDecoder = function (fieldType) { return _user$project$ConfigDecoder$basicFieldTypeDecoder(fieldType); }; var _user$project$ConfigDecoder$stringToConfigScope = function (s) { var _p4 = s; switch (_p4) { case 'global': return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$Global); case 'specific': return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$Specific); case 'both': return _elm_lang$core$Json_Decode$succeed(_user$project$ConfigTypes$Both); default: return _elm_lang$core$Json_Decode$fail( A2(_elm_lang$core$Basics_ops['++'], 'No such ConfigScope ', s)); } }; var _user$project$ConfigDecoder$configScopeDecoder = A2(_elm_lang$core$Json_Decode$andThen, _user$project$ConfigDecoder$stringToConfigScope, _elm_lang$core$Json_Decode$string); var _user$project$ConfigDecoder$fieldDescriptorDecoder = A4( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$optional, 'readOnly', _elm_lang$core$Json_Decode$bool, false, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'fieldEnabledIfAll', _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$string), A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'fieldEnabledIfAny', _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$string), A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'fieldClass', _elm_lang$core$Json_Decode$nullable(_elm_lang$core$Json_Decode$string), A2( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$custom, A2( _elm_lang$core$Json_Decode$field, 'fieldValidation', _elm_lang$core$Json_Decode$list(_user$project$ConfigDecoder$fieldValidatorDecoder)), A2( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$custom, A2( _elm_lang$core$Json_Decode$andThen, _user$project$ConfigDecoder$fieldTypeDecoder, A2(_elm_lang$core$Json_Decode$field, 'fieldType', _elm_lang$core$Json_Decode$string)), A2( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$custom, _elm_lang$core$Json_Decode$maybe( A2(_elm_lang$core$Json_Decode$field, 'displayCount', _elm_lang$core$Json_Decode$int)), A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'displayBottom', _elm_lang$core$Json_Decode$string, A2( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$custom, _user$project$ConfigDecoder$displayTopDecoder, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'machineScope', _user$project$ConfigDecoder$configScopeDecoder, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'cryptoScope', _user$project$ConfigDecoder$configScopeDecoder, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'code', _elm_lang$core$Json_Decode$string, _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$decode(_user$project$ConfigTypes$FieldDescriptor))))))))))))); var _user$project$ConfigDecoder$configSchemaDecoder = A6( _elm_lang$core$Json_Decode$map5, _user$project$ConfigTypes$ConfigSchema, A2(_elm_lang$core$Json_Decode$field, 'code', _elm_lang$core$Json_Decode$string), A2(_elm_lang$core$Json_Decode$field, 'display', _elm_lang$core$Json_Decode$string), A2(_elm_lang$core$Json_Decode$field, 'cryptoScope', _user$project$ConfigDecoder$configScopeDecoder), A2(_elm_lang$core$Json_Decode$field, 'machineScope', _user$project$ConfigDecoder$configScopeDecoder), A2( _elm_lang$core$Json_Decode$field, 'entries', _elm_lang$core$Json_Decode$list(_user$project$ConfigDecoder$fieldDescriptorDecoder))); var _user$project$ConfigDecoder$displayRecDecoder = A3( _elm_lang$core$Json_Decode$map2, _user$project$ConfigTypes$DisplayRec, A2(_elm_lang$core$Json_Decode$field, 'code', _elm_lang$core$Json_Decode$string), A2(_elm_lang$core$Json_Decode$field, 'display', _elm_lang$core$Json_Decode$string)); var _user$project$ConfigDecoder$cryptoDecoder = A2(_elm_lang$core$Json_Decode$map, _user$project$ConfigTypes$stringToCrypto, _elm_lang$core$Json_Decode$string); var _user$project$ConfigDecoder$cryptoDisplayDecoder = A3( _elm_lang$core$Json_Decode$map2, _user$project$ConfigTypes$CryptoDisplay, A2(_elm_lang$core$Json_Decode$field, 'crypto', _user$project$ConfigDecoder$cryptoDecoder), A2(_elm_lang$core$Json_Decode$field, 'display', _elm_lang$core$Json_Decode$string)); var _user$project$ConfigDecoder$accountRecDecoder = _elm_lang$core$Json_Decode$oneOf( { ctor: '::', _0: A5( _elm_lang$core$Json_Decode$map4, _user$project$ConfigTypes$AccountRec, A2(_elm_lang$core$Json_Decode$field, 'code', _elm_lang$core$Json_Decode$string), A2(_elm_lang$core$Json_Decode$field, 'display', _elm_lang$core$Json_Decode$string), A2(_elm_lang$core$Json_Decode$field, 'class', _elm_lang$core$Json_Decode$string), A2( _elm_lang$core$Json_Decode$field, 'cryptos', A2( _elm_lang$core$Json_Decode$map, _elm_lang$core$Maybe$Just, _elm_lang$core$Json_Decode$list(_user$project$ConfigDecoder$cryptoDecoder)))), _1: { ctor: '::', _0: A5( _elm_lang$core$Json_Decode$map4, _user$project$ConfigTypes$AccountRec, A2(_elm_lang$core$Json_Decode$field, 'code', _elm_lang$core$Json_Decode$string), A2(_elm_lang$core$Json_Decode$field, 'display', _elm_lang$core$Json_Decode$string), A2(_elm_lang$core$Json_Decode$field, 'class', _elm_lang$core$Json_Decode$string), _elm_lang$core$Json_Decode$succeed(_elm_lang$core$Maybe$Nothing)), _1: {ctor: '[]'} } }); var _user$project$ConfigDecoder$string2machine = function (s) { return _elm_lang$core$Native_Utils.eq(s, 'global') ? _user$project$ConfigTypes$GlobalMachine : _user$project$ConfigTypes$MachineId(s); }; var _user$project$ConfigDecoder$machineDecoder = A2(_elm_lang$core$Json_Decode$map, _user$project$ConfigDecoder$string2machine, _elm_lang$core$Json_Decode$string); var _user$project$ConfigDecoder$machineDisplayDecoder = A3( _elm_lang$core$Json_Decode$map2, _user$project$ConfigTypes$MachineDisplay, A2(_elm_lang$core$Json_Decode$field, 'machine', _user$project$ConfigDecoder$machineDecoder), A2(_elm_lang$core$Json_Decode$field, 'display', _elm_lang$core$Json_Decode$string)); var _user$project$ConfigDecoder$configDataDecoder = A7( _elm_lang$core$Json_Decode$map6, _user$project$ConfigTypes$ConfigData, A2( _elm_lang$core$Json_Decode$field, 'cryptoCurrencies', _elm_lang$core$Json_Decode$list(_user$project$ConfigDecoder$cryptoDisplayDecoder)), A2( _elm_lang$core$Json_Decode$field, 'currencies', _elm_lang$core$Json_Decode$list(_user$project$ConfigDecoder$displayRecDecoder)), A2( _elm_lang$core$Json_Decode$field, 'languages', _elm_lang$core$Json_Decode$list(_user$project$ConfigDecoder$displayRecDecoder)), A2( _elm_lang$core$Json_Decode$field, 'countries', _elm_lang$core$Json_Decode$list(_user$project$ConfigDecoder$displayRecDecoder)), A2( _elm_lang$core$Json_Decode$field, 'accounts', _elm_lang$core$Json_Decode$list(_user$project$ConfigDecoder$accountRecDecoder)), A2( _elm_lang$core$Json_Decode$field, 'machines', _elm_lang$core$Json_Decode$list(_user$project$ConfigDecoder$machineDisplayDecoder))); var _user$project$ConfigDecoder$nullOr = 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 _user$project$ConfigDecoder$fieldScopeDecoder = A3( _elm_lang$core$Json_Decode$map2, _user$project$ConfigTypes$FieldScope, A2(_elm_lang$core$Json_Decode$field, 'crypto', _user$project$ConfigDecoder$cryptoDecoder), A2(_elm_lang$core$Json_Decode$field, 'machine', _user$project$ConfigDecoder$machineDecoder)); var _user$project$ConfigDecoder$fieldLocatorDecoder = A5( _elm_lang$core$Json_Decode$map4, _user$project$ConfigTypes$FieldLocator, A2(_elm_lang$core$Json_Decode$field, 'fieldScope', _user$project$ConfigDecoder$fieldScopeDecoder), A2(_elm_lang$core$Json_Decode$field, 'code', _elm_lang$core$Json_Decode$string), A2( _elm_lang$core$Json_Decode$andThen, _user$project$ConfigDecoder$fieldTypeDecoder, A2(_elm_lang$core$Json_Decode$field, 'fieldType', _elm_lang$core$Json_Decode$string)), A2( _elm_lang$core$Json_Decode$field, 'fieldClass', _user$project$ConfigDecoder$nullOr(_elm_lang$core$Json_Decode$string))); var _user$project$ConfigDecoder$fieldValueTypeDecoder = function (fieldType) { var _p5 = fieldType; switch (_p5) { case 'string': return A2( _elm_lang$core$Json_Decode$map, _user$project$ConfigTypes$FieldStringValue, A2(_elm_lang$core$Json_Decode$field, 'value', _elm_lang$core$Json_Decode$string)); case 'percentage': return A2( _elm_lang$core$Json_Decode$map, _user$project$ConfigTypes$FieldPercentageValue, A2(_elm_lang$core$Json_Decode$field, 'value', _elm_lang$core$Json_Decode$float)); case 'integer': return A2( _elm_lang$core$Json_Decode$map, _user$project$ConfigTypes$FieldIntegerValue, A2(_elm_lang$core$Json_Decode$field, 'value', _elm_lang$core$Json_Decode$int)); case 'decimal': return A2( _elm_lang$core$Json_Decode$map, _user$project$ConfigTypes$FieldDecimalValue, A2(_elm_lang$core$Json_Decode$field, 'value', _elm_lang$core$Json_Decode$float)); case 'onOff': return A2( _elm_lang$core$Json_Decode$map, _user$project$ConfigTypes$FieldOnOffValue, A2(_elm_lang$core$Json_Decode$field, 'value', _elm_lang$core$Json_Decode$bool)); case 'account': return A2( _elm_lang$core$Json_Decode$map, _user$project$ConfigTypes$FieldFiatCurrencyValue, A2(_elm_lang$core$Json_Decode$field, 'value', _elm_lang$core$Json_Decode$string)); case 'fiatCurrency': return A2( _elm_lang$core$Json_Decode$map, _user$project$ConfigTypes$FieldFiatCurrencyValue, A2(_elm_lang$core$Json_Decode$field, 'value', _elm_lang$core$Json_Decode$string)); case 'cryptoCurrency': return A2( _elm_lang$core$Json_Decode$map, _user$project$ConfigTypes$FieldCryptoCurrencyValue, A2( _elm_lang$core$Json_Decode$field, 'value', _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$string))); case 'language': return A2( _elm_lang$core$Json_Decode$map, _user$project$ConfigTypes$FieldLanguageValue, A2( _elm_lang$core$Json_Decode$field, 'value', _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$string))); case 'country': return A2( _elm_lang$core$Json_Decode$map, _user$project$ConfigTypes$FieldCountryValue, A2(_elm_lang$core$Json_Decode$field, 'value', _elm_lang$core$Json_Decode$string)); default: return _elm_lang$core$Json_Decode$fail( A2(_elm_lang$core$Basics_ops['++'], 'Unsupported field type: ', fieldType)); } }; var _user$project$ConfigDecoder$fieldValueDecoder = A2( _elm_lang$core$Json_Decode$andThen, _user$project$ConfigDecoder$fieldValueTypeDecoder, A2(_elm_lang$core$Json_Decode$field, 'fieldType', _elm_lang$core$Json_Decode$string)); var _user$project$ConfigDecoder$fieldDecoder = A6( _elm_lang$core$Json_Decode$map5, _user$project$ConfigTypes$Field, A2(_elm_lang$core$Json_Decode$field, 'fieldLocator', _user$project$ConfigDecoder$fieldLocatorDecoder), A2(_elm_lang$core$Json_Decode$field, 'fieldValue', _user$project$ConfigDecoder$fieldValueDecoder), A2( _elm_lang$core$Json_Decode$field, 'fieldEnabledIfAny', _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$string)), A2( _elm_lang$core$Json_Decode$field, 'fieldEnabledIfAll', _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$string)), _elm_lang$core$Json_Decode$succeed(true)); var _user$project$ConfigDecoder$configGroupDecoder = A5( _elm_lang$core$Json_Decode$map4, _user$project$ConfigTypes$ConfigGroup, A2(_elm_lang$core$Json_Decode$field, 'schema', _user$project$ConfigDecoder$configSchemaDecoder), A2( _elm_lang$core$Json_Decode$field, 'values', _elm_lang$core$Json_Decode$list(_user$project$ConfigDecoder$fieldDecoder)), A2( _elm_lang$core$Json_Decode$field, 'selectedCryptos', _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$string)), A2(_elm_lang$core$Json_Decode$field, 'data', _user$project$ConfigDecoder$configDataDecoder)); var _user$project$ConfigEncoder$maybeString = function (maybeString) { var _p0 = maybeString; if (_p0.ctor === 'Nothing') { return _elm_lang$core$Json_Encode$null; } else { return _elm_lang$core$Json_Encode$string(_p0._0); } }; var _user$project$ConfigEncoder$fieldTypeEncoder = function (fieldType) { var _p1 = fieldType; switch (_p1.ctor) { case 'FieldStringType': return _elm_lang$core$Json_Encode$string('string'); case 'FieldPercentageType': return _elm_lang$core$Json_Encode$string('percentage'); case 'FieldIntegerType': return _elm_lang$core$Json_Encode$string('integer'); case 'FieldDecimalType': return _elm_lang$core$Json_Encode$string('decimal'); case 'FieldOnOffType': return _elm_lang$core$Json_Encode$string('onOff'); case 'FieldAccountType': return _elm_lang$core$Json_Encode$string('account'); case 'FieldFiatCurrencyType': return _elm_lang$core$Json_Encode$string('fiatCurrency'); case 'FieldCryptoCurrencyType': return _elm_lang$core$Json_Encode$string('cryptoCurrency'); case 'FieldLanguageType': return _elm_lang$core$Json_Encode$string('language'); default: return _elm_lang$core$Json_Encode$string('country'); } }; var _user$project$ConfigEncoder$encodeMachine = function (machine) { var _p2 = machine; if (_p2.ctor === 'MachineId') { return _elm_lang$core$Json_Encode$string(_p2._0); } else { return _elm_lang$core$Json_Encode$string('global'); } }; var _user$project$ConfigEncoder$encodeCrypto = function (crypto) { var _p3 = crypto; if (_p3.ctor === 'CryptoCode') { return _elm_lang$core$Json_Encode$string(_p3._0); } else { return _elm_lang$core$Json_Encode$string('global'); } }; var _user$project$ConfigEncoder$encodeFieldScope = function (fieldScope) { return _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'crypto', _1: _user$project$ConfigEncoder$encodeCrypto(fieldScope.crypto) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'machine', _1: _user$project$ConfigEncoder$encodeMachine(fieldScope.machine) }, _1: {ctor: '[]'} } }); }; var _user$project$ConfigEncoder$encodeFieldLocator = function (fieldLocator) { return _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'fieldScope', _1: _user$project$ConfigEncoder$encodeFieldScope(fieldLocator.fieldScope) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'code', _1: _elm_lang$core$Json_Encode$string(fieldLocator.code) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'fieldType', _1: _user$project$ConfigEncoder$fieldTypeEncoder(fieldLocator.fieldType) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'fieldClass', _1: _user$project$ConfigEncoder$maybeString(fieldLocator.fieldClass) }, _1: {ctor: '[]'} } } } }); }; var _user$project$ConfigEncoder$encodeFieldValueObject = F2( function (fieldTypeStr, value) { return _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'fieldType', _1: _elm_lang$core$Json_Encode$string(fieldTypeStr) }, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: 'value', _1: value}, _1: {ctor: '[]'} } }); }); var _user$project$ConfigEncoder$encodeFieldValue = function (fieldValue) { var _p4 = fieldValue; switch (_p4.ctor) { case 'FieldStringValue': return A2( _user$project$ConfigEncoder$encodeFieldValueObject, 'string', _elm_lang$core$Json_Encode$string(_p4._0)); case 'FieldPercentageValue': return A2( _user$project$ConfigEncoder$encodeFieldValueObject, 'percentage', _elm_lang$core$Json_Encode$float(_p4._0)); case 'FieldIntegerValue': return A2( _user$project$ConfigEncoder$encodeFieldValueObject, 'integer', _elm_lang$core$Json_Encode$int(_p4._0)); case 'FieldDecimalValue': return A2( _user$project$ConfigEncoder$encodeFieldValueObject, 'decimal', _elm_lang$core$Json_Encode$float(_p4._0)); case 'FieldOnOffValue': return A2( _user$project$ConfigEncoder$encodeFieldValueObject, 'onOff', _elm_lang$core$Json_Encode$bool(_p4._0)); case 'FieldAccountValue': return A2( _user$project$ConfigEncoder$encodeFieldValueObject, 'account', _elm_lang$core$Json_Encode$string(_p4._0)); case 'FieldFiatCurrencyValue': return A2( _user$project$ConfigEncoder$encodeFieldValueObject, 'fiatCurrency', _elm_lang$core$Json_Encode$string(_p4._0)); case 'FieldCryptoCurrencyValue': return A2( _user$project$ConfigEncoder$encodeFieldValueObject, 'cryptoCurrency', _elm_lang$core$Json_Encode$list( A2(_elm_lang$core$List$map, _elm_lang$core$Json_Encode$string, _p4._0))); case 'FieldLanguageValue': return A2( _user$project$ConfigEncoder$encodeFieldValueObject, 'language', _elm_lang$core$Json_Encode$list( A2(_elm_lang$core$List$map, _elm_lang$core$Json_Encode$string, _p4._0))); default: return A2( _user$project$ConfigEncoder$encodeFieldValueObject, 'country', _elm_lang$core$Json_Encode$string(_p4._0)); } }; var _user$project$ConfigEncoder$encodeFieldResult = function (fieldInstance) { var encode = function (value) { return _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'fieldLocator', _1: _user$project$ConfigEncoder$encodeFieldLocator(fieldInstance.fieldLocator) }, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: 'fieldValue', _1: value}, _1: {ctor: '[]'} } }); }; var dirtyEncode = function (fieldHolder) { var _p5 = fieldHolder; switch (_p5.ctor) { case 'ParsingError': return _elm_lang$core$Maybe$Nothing; case 'ValidationError': return _elm_lang$core$Maybe$Nothing; case 'FieldOk': return _elm_lang$core$Native_Utils.eq(fieldInstance.loadedFieldHolder, fieldHolder) ? _elm_lang$core$Maybe$Nothing : _elm_lang$core$Maybe$Just( encode( _user$project$ConfigEncoder$encodeFieldValue(_p5._0))); default: return _elm_lang$core$Native_Utils.eq(fieldInstance.loadedFieldHolder, fieldHolder) ? _elm_lang$core$Maybe$Nothing : _elm_lang$core$Maybe$Just( encode(_elm_lang$core$Json_Encode$null)); } }; return dirtyEncode(fieldInstance.fieldHolder); }; var _user$project$ConfigEncoder$encodeResults = F2( function (configGroupCode, fieldInstances) { var results = A2(_elm_lang$core$List$filterMap, _user$project$ConfigEncoder$encodeFieldResult, fieldInstances); return _elm_lang$core$List$isEmpty(results) ? _elm_lang$core$Maybe$Nothing : _elm_lang$core$Maybe$Just( _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'groupCode', _1: _elm_lang$core$Json_Encode$string(configGroupCode) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'values', _1: _elm_lang$core$Json_Encode$list( A2(_elm_lang$core$List$filterMap, _user$project$ConfigEncoder$encodeFieldResult, fieldInstances)) }, _1: {ctor: '[]'} } })); }); var _user$project$Css_LocalColors$disabledGrey = _rtfeldman$elm_css$Css$hex('757575'); var _user$project$Css_LocalColors$lightRed = _rtfeldman$elm_css$Css$hex('efd1d2'); var _user$project$Css_LocalColors$red = _rtfeldman$elm_css$Css$hex('eb6b6e'); var _user$project$Css_LocalColors$darkerGrey = _rtfeldman$elm_css$Css$hex('282828'); var _user$project$Css_LocalColors$darkGrey = _rtfeldman$elm_css$Css$hex('2d2d2d'); var _user$project$Css_LocalColors$darkerLightGrey = _rtfeldman$elm_css$Css$hex('E6E6E3'); var _user$project$Css_LocalColors$lighterLightGrey = _rtfeldman$elm_css$Css$hex('fcfcfa'); var _user$project$Css_LocalColors$lightGrey = _rtfeldman$elm_css$Css$hex('f6f6f4'); var _user$project$Css_LocalColors$sandstone = _rtfeldman$elm_css$Css$hex('5f5f56'); var _user$project$Css_LocalColors$white = _rtfeldman$elm_css$Css$hex('ffffff'); var _user$project$Css_LocalColors$amazonite = _rtfeldman$elm_css$Css$hex('37e8d7'); var _user$project$Css_LocalColors$darkCobalt = _rtfeldman$elm_css$Css$hex('042c47'); var _user$project$Css_LocalColors$cobalt = _rtfeldman$elm_css$Css$hex('004062'); var _user$project$Css_Selectize$codeFonts = { ctor: '::', _0: 'Inconsolata', _1: { ctor: '::', _0: 'monospace', _1: {ctor: '[]'} } }; var _user$project$Css_Selectize$Disabled = {ctor: 'Disabled'}; var _user$project$Css_Selectize$NoOptions = {ctor: 'NoOptions'}; var _user$project$Css_Selectize$InfoNoMatches = {ctor: 'InfoNoMatches'}; var _user$project$Css_Selectize$Info = {ctor: 'Info'}; var _user$project$Css_Selectize$BoxContainer = {ctor: 'BoxContainer'}; var _user$project$Css_Selectize$MultiItemContainer = {ctor: 'MultiItemContainer'}; var _user$project$Css_Selectize$SingleItemContainer = {ctor: 'SingleItemContainer'}; var _user$project$Css_Selectize$InputEditing = {ctor: 'InputEditing'}; var _user$project$Css_Selectize$SelectedItem = {ctor: 'SelectedItem'}; var _user$project$Css_Selectize$FallbackItem = {ctor: 'FallbackItem'}; var _user$project$Css_Selectize$FallbackItems = {ctor: 'FallbackItems'}; var _user$project$Css_Selectize$SelectedItems = {ctor: 'SelectedItems'}; var _user$project$Css_Selectize$BoxItemActive = {ctor: 'BoxItemActive'}; var _user$project$Css_Selectize$BoxItem = {ctor: 'BoxItem'}; var _user$project$Css_Selectize$BoxItems = {ctor: 'BoxItems'}; var _user$project$Css_Selectize$SelectBox = {ctor: 'SelectBox'}; var _user$project$Css_Selectize$component = _rtfeldman$elm_css$Css$batch( { ctor: '::', _0: _rtfeldman$elm_css$Css$borderRadius( _rtfeldman$elm_css$Css$px(3)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$position(_rtfeldman$elm_css$Css$relative), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$margin(_rtfeldman$elm_css$Css$zero), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$descendants( { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$class, _user$project$Css_Selectize$NoOptions, { ctor: '::', _0: _rtfeldman$elm_css$Css$backgroundColor(_user$project$Css_LocalColors$lighterLightGrey), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$fontSize( _rtfeldman$elm_css$Css$px(14)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$fontWeight( _rtfeldman$elm_css$Css$int(500)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$color(_user$project$Css_LocalColors$sandstone), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$padding( _rtfeldman$elm_css$Css$px(5)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$textAlign(_rtfeldman$elm_css$Css$center), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$cursor(_rtfeldman$elm_css$Css$default), _1: { ctor: '::', _0: A2(_rtfeldman$elm_css$Css$property, '-webkit-user-select', 'none'), _1: {ctor: '[]'} } } } } } } } }), _1: { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$class, _user$project$Css_Selectize$SelectBox, { ctor: '::', _0: _rtfeldman$elm_css$Css$displayFlex, _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$alignItems(_rtfeldman$elm_css$Css$center), _1: { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$padding2, _rtfeldman$elm_css$Css$zero, _rtfeldman$elm_css$Css$px(5)), _1: { ctor: '::', _0: A2(_rtfeldman$elm_css$Css$property, 'background-color', 'inherit'), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$width( _rtfeldman$elm_css$Css$px(60)), _1: {ctor: '[]'} } } } } }), _1: { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$class, _user$project$Css_Selectize$BoxContainer, { ctor: '::', _0: _rtfeldman$elm_css$Css$position(_rtfeldman$elm_css$Css$absolute), _1: { ctor: '::', _0: A2(_rtfeldman$elm_css$Css$property, 'z-index', '100'), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$left( _rtfeldman$elm_css$Css$px(-3)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$backgroundColor(_user$project$Css_LocalColors$white), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$textAlign(_rtfeldman$elm_css$Css$left), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$fontWeight( _rtfeldman$elm_css$Css$int(500)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$fontSize( _rtfeldman$elm_css$Css$pct(80)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$borderRadius( _rtfeldman$elm_css$Css$px(3)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$backgroundColor(_user$project$Css_LocalColors$white), _1: { ctor: '::', _0: A3( _rtfeldman$elm_css$Css$border3, _rtfeldman$elm_css$Css$px(2), _rtfeldman$elm_css$Css$solid, _user$project$Css_LocalColors$darkerLightGrey), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$borderTop(_rtfeldman$elm_css$Css$zero), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$color(_user$project$Css_LocalColors$sandstone), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$width( _rtfeldman$elm_css$Css$em(15)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$cursor(_rtfeldman$elm_css$Css$pointer), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$padding( _rtfeldman$elm_css$Css$px(5)), _1: {ctor: '[]'} } } } } } } } } } } } } } } }), _1: { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$class, _user$project$Css_Selectize$BoxItems, {ctor: '[]'}), _1: { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$class, _user$project$Css_Selectize$BoxItemActive, { ctor: '::', _0: _rtfeldman$elm_css$Css$color(_user$project$Css_LocalColors$cobalt), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$fontWeight( _rtfeldman$elm_css$Css$int(900)), _1: {ctor: '[]'} } }), _1: { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$class, _user$project$Css_Selectize$BoxItem, { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$padding2, _rtfeldman$elm_css$Css$px(3), _rtfeldman$elm_css$Css$px(6)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$overflow(_rtfeldman$elm_css$Css$hidden), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$textOverflow(_rtfeldman$elm_css$Css$ellipsis), _1: {ctor: '[]'} } } }), _1: { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$class, _user$project$Css_Selectize$Info, { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$padding2, _rtfeldman$elm_css$Css$px(3), _rtfeldman$elm_css$Css$px(6)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$color(_user$project$Css_LocalColors$darkGrey), _1: {ctor: '[]'} } }), _1: { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$class, _user$project$Css_Selectize$MultiItemContainer, { ctor: '::', _0: _rtfeldman$elm_css$Css$descendants( { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$class, _user$project$Css_Selectize$SelectedItem, { ctor: '::', _0: _rtfeldman$elm_css$Css$backgroundColor(_user$project$Css_LocalColors$cobalt), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$color(_user$project$Css_LocalColors$white), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$padding( _rtfeldman$elm_css$Css$px(2)), _1: { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$margin2, _rtfeldman$elm_css$Css$zero, _rtfeldman$elm_css$Css$px(1)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$fontFamilies(_user$project$Css_Selectize$codeFonts), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$fontSize( _rtfeldman$elm_css$Css$pct(70)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$fontWeight(_rtfeldman$elm_css$Css$normal), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$borderRadius( _rtfeldman$elm_css$Css$px(3)), _1: {ctor: '[]'} } } } } } } } }), _1: { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$class, _user$project$Css_Selectize$FallbackItem, { ctor: '::', _0: _rtfeldman$elm_css$Css$backgroundColor(_user$project$Css_LocalColors$amazonite), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$class, _user$project$Css_Selectize$SingleItemContainer, { ctor: '::', _0: _rtfeldman$elm_css$Css$descendants( { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$class, _user$project$Css_Selectize$SelectedItem, { ctor: '::', _0: _rtfeldman$elm_css$Css$fontFamilies(_user$project$Css_Selectize$codeFonts), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$fontSize( _rtfeldman$elm_css$Css$px(14)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$padding(_rtfeldman$elm_css$Css$zero), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$borderRadius(_rtfeldman$elm_css$Css$zero), _1: {ctor: '[]'} } } } }), _1: { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$class, _user$project$Css_Selectize$FallbackItem, { ctor: '::', _0: _rtfeldman$elm_css$Css$color(_user$project$Css_LocalColors$sandstone), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css_Elements$input( { ctor: '::', _0: _rtfeldman$elm_css$Css$textAlign(_rtfeldman$elm_css$Css$left), _1: { ctor: '::', _0: A2(_rtfeldman$elm_css$Css$property, 'background-color', 'inherit'), _1: { ctor: '::', _0: A2( _rtfeldman$elm_css$Css$padding2, _rtfeldman$elm_css$Css$px(6), _rtfeldman$elm_css$Css$px(2)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$width( _rtfeldman$elm_css$Css$em(6)), _1: { ctor: '::', _0: _rtfeldman$elm_css$Css$cursor(_rtfeldman$elm_css$Css$default), _1: {ctor: '[]'} } } } } }), _1: {ctor: '[]'} } } } } } } } } } }), _1: {ctor: '[]'} } } } }); var _user$project$Css_Selectize$SelectizeContainer = {ctor: 'SelectizeContainer'}; var _user$project$Css_Selectize$classes = { container: _user$project$Css_Admin$className(_user$project$Css_Selectize$SelectizeContainer), singleItemContainer: _user$project$Css_Admin$className(_user$project$Css_Selectize$SingleItemContainer), multiItemContainer: _user$project$Css_Admin$className(_user$project$Css_Selectize$MultiItemContainer), selectBox: _user$project$Css_Admin$className(_user$project$Css_Selectize$SelectBox), selectedItems: _user$project$Css_Admin$className(_user$project$Css_Selectize$SelectedItems), fallbackItems: _user$project$Css_Admin$className(_user$project$Css_Selectize$FallbackItems), fallbackItem: _user$project$Css_Admin$className(_user$project$Css_Selectize$FallbackItem), selectedItem: _user$project$Css_Admin$className(_user$project$Css_Selectize$SelectedItem), boxContainer: _user$project$Css_Admin$className(_user$project$Css_Selectize$BoxContainer), boxItems: _user$project$Css_Admin$className(_user$project$Css_Selectize$BoxItems), boxItem: _user$project$Css_Admin$className(_user$project$Css_Selectize$BoxItem), boxItemActive: _user$project$Css_Admin$className(_user$project$Css_Selectize$BoxItemActive), info: _user$project$Css_Admin$className(_user$project$Css_Selectize$Info), infoNoMatches: _user$project$Css_Admin$className(_user$project$Css_Selectize$InfoNoMatches), inputEditing: _user$project$Css_Admin$className(_user$project$Css_Selectize$InputEditing), noOptions: _user$project$Css_Admin$className(_user$project$Css_Selectize$NoOptions) }; var _user$project$SelectizeHelper$buildConfig = F2( function (localConfig, specificConfig) { return { maxItems: specificConfig.maxItems, boxLength: 5, toMsg: localConfig.toMsg, onAdd: localConfig.onAdd, onRemove: localConfig.onRemove, onFocus: localConfig.onFocus, onBlur: localConfig.onBlur, toId: localConfig.toId, enabled: localConfig.enabled, selectedDisplay: specificConfig.selectedDisplay, optionDisplay: specificConfig.optionDisplay, match: specificConfig.match, htmlOptions: {instructionsForBlank: 'Start typing for options', noMatches: 'No matches', atMaxLength: 'Type backspace to edit', typeForMore: 'Type for more options', noOptions: 'No options', notAvailable: 'N/A', classes: _user$project$Css_Selectize$classes} }; }); var _user$project$SelectizeHelper$LocalConfig = F7( function (a, b, c, d, e, f, g) { return {toMsg: a, onAdd: b, onRemove: c, onFocus: d, onBlur: e, toId: f, enabled: g}; }); var _user$project$SelectizeHelper$SpecificConfig = F4( function (a, b, c, d) { return {selectedDisplay: a, optionDisplay: b, maxItems: c, match: d}; }); var _user$project$FuzzyMatch$clean = function (s) { return _elm_lang$core$String$toLower( _elm_lang$core$String$trim(s)); }; var _user$project$FuzzyMatch$score = F3( function (needle, index, hay) { var match = function (keyword) { return function (_) { return _.score; }( A4( _tripokey$elm_fuzzy$Fuzzy$match, {ctor: '[]'}, {ctor: '[]'}, needle, keyword)); }; var score = A2( _elm_lang$core$Maybe$withDefault, 10000, _elm_lang$core$List$minimum( A2( _elm_lang$core$List$map, match, A2( _elm_lang$core$Basics_ops['++'], A2( _elm_lang$core$String$split, ' ', _user$project$FuzzyMatch$clean(hay.display)), { ctor: '::', _0: _user$project$FuzzyMatch$clean(hay.code), _1: { ctor: '::', _0: _user$project$FuzzyMatch$clean(hay.display), _1: {ctor: '[]'} } })))); return { ctor: '_Tuple2', _0: {ctor: '_Tuple2', _0: score, _1: index}, _1: hay }; }); var _user$project$FuzzyMatch$match = F2( function (rawString, list) { var s = _user$project$FuzzyMatch$clean(rawString); return _elm_lang$core$String$isEmpty(s) ? list : A2( _elm_lang$core$List$map, _elm_lang$core$Tuple$second, A2( _elm_lang$core$List$filter, function (_p0) { return A2( F2( function (x, y) { return _elm_lang$core$Native_Utils.cmp(x, y) > 0; }), 1100, _elm_lang$core$Tuple$first( _elm_lang$core$Tuple$first(_p0))); }, A2( _elm_lang$core$List$sortBy, _elm_lang$core$Tuple$first, A2( _elm_lang$core$List$indexedMap, _user$project$FuzzyMatch$score(s), list)))); }); var _user$project$FuzzyMatch$DisplayRec = F2( function (a, b) { return {code: a, display: b}; }); var _user$project$StatusTypes$Rate = F3( function (a, b, c) { return {crypto: a, bid: b, ask: c}; }); var _user$project$StatusTypes$ServerRec = F5( function (a, b, c, d, e) { return {up: a, lastPing: b, rates: c, machineStatus: d, wasConfigured: e}; }); var _user$project$StatusTypes$StatusRec = F2( function (a, b) { return {server: a, invalidConfigGroups: b}; }); var _user$project$Config$loaded = function (msg) { var _p0 = msg; if (_p0.ctor === 'Load') { return _krisajenkins$remotedata$RemoteData$isSuccess(_p0._0); } else { return false; } }; var _user$project$Config$updateRates = F2( function (rates, model) { return _elm_lang$core$Native_Utils.update( model, {rates: rates}); }); var _user$project$Config$pickFiat = function (fields) { return A2( _elm_lang$core$Maybe$map, function (_p1) { return _user$project$ConfigTypes$fieldValueToString( function (_) { return _.fieldValue; }(_p1)); }, _elm_lang$core$List$head( A2( _elm_lang$core$List$filter, function (_p2) { return A2( F2( function (x, y) { return _elm_lang$core$Native_Utils.eq(x, y); }), 'fiatCurrency', function (_) { return _.code; }( function (_) { return _.fieldLocator; }(_p2))); }, fields))); }; var _user$project$Config$isCashOutEnabled = function (fieldInstance) { var toBool = function (fieldValue) { var _p3 = fieldValue; if (_p3.ctor === 'FieldOnOffValue') { return _p3._0; } else { return false; } }; return _elm_lang$core$Native_Utils.eq(fieldInstance.fieldLocator.code, 'cashOutEnabled') && ((!_elm_lang$core$Native_Utils.eq(fieldInstance.fieldLocator.fieldScope.machine, _user$project$ConfigTypes$GlobalMachine)) && A3(_user$project$ConfigTypes$fieldHolderMap, false, toBool, fieldInstance.fieldHolder)); }; var _user$project$Config$selectizeEdgeCases = F2( function (fieldInstance, fieldInstances) { return (_elm_lang$core$Native_Utils.eq(fieldInstance.fieldLocator.code, 'cashOutEnabled') && _elm_lang$core$Native_Utils.eq(fieldInstance.fieldLocator.fieldScope.machine, _user$project$ConfigTypes$GlobalMachine)) ? _elm_lang$core$Native_Utils.update( fieldInstance, { fieldHolder: _user$project$ConfigTypes$FieldOk( _user$project$ConfigTypes$FieldOnOffValue( A2(_elm_lang$core$List$any, _user$project$Config$isCashOutEnabled, fieldInstances))) }) : fieldInstance; }); var _user$project$Config$updateSelectize = F3( function (fieldLocator, state, model) { var fieldCollection = model.fieldCollection; var fieldInstances = model.fieldCollection.fieldInstances; var updateInstance = function (fieldInstance) { if (_elm_lang$core$Native_Utils.eq(fieldInstance.fieldLocator, fieldLocator)) { var _p4 = fieldInstance.component; if (_p4.ctor === 'SelectizeComponent') { return _elm_lang$core$Native_Utils.update( fieldInstance, { component: _user$project$ConfigTypes$SelectizeComponent(state) }); } else { return _elm_lang$core$Native_Utils.crashCase( 'Config', { start: {line: 1393, column: 17}, end: {line: 1398, column: 56} }, _p4)('Shouldn\'t be here'); } } else { return A2(_user$project$Config$selectizeEdgeCases, fieldInstance, fieldInstances); } }; var newFieldCollection = _elm_lang$core$Native_Utils.update( fieldCollection, { fieldInstances: A2(_elm_lang$core$List$map, updateInstance, fieldInstances) }); return _elm_lang$core$Native_Utils.update( model, {fieldCollection: newFieldCollection}); }); var _user$project$Config$updateFocus = F3( function (fieldLocator, focused, model) { return focused ? _elm_lang$core$Native_Utils.update( model, { focused: _elm_lang$core$Maybe$Just(fieldLocator) }) : (_elm_lang$core$Native_Utils.eq( model.focused, _elm_lang$core$Maybe$Just(fieldLocator)) ? _elm_lang$core$Native_Utils.update( model, {focused: _elm_lang$core$Maybe$Nothing}) : model); }); var _user$project$Config$pickFieldValue = F4( function (fieldCode, fields, crypto, machine) { var fieldScope = {crypto: crypto, machine: machine}; var sameScope = function (field) { return _elm_lang$core$Native_Utils.eq(field.fieldLocator.code, fieldCode) && _elm_lang$core$Native_Utils.eq(field.fieldLocator.fieldScope, fieldScope); }; return A2( _elm_lang$core$Maybe$map, function (_) { return _.fieldValue; }, _elm_lang$core$List$head( A2(_elm_lang$core$List$filter, sameScope, fields))); }); var _user$project$Config$fieldInstanceToMaybeFieldValue = function (fieldInstance) { var _p6 = fieldInstance.fieldHolder; if (_p6.ctor === 'FieldOk') { return _elm_lang$core$Maybe$Just(_p6._0); } else { return _elm_lang$core$Maybe$Nothing; } }; var _user$project$Config$pickFieldInstance = F3( function (fieldCode, fieldScope, fieldInstances) { var sameScope = function (fieldInstance) { return _elm_lang$core$Native_Utils.eq(fieldInstance.fieldLocator.code, fieldCode) && _elm_lang$core$Native_Utils.eq(fieldInstance.fieldLocator.fieldScope, fieldScope); }; return _elm_lang$core$List$head( A2(_elm_lang$core$List$filter, sameScope, fieldInstances)); }); var _user$project$Config$validateMax = F2( function (max, fieldValue) { var _p7 = fieldValue; switch (_p7.ctor) { case 'FieldPercentageValue': return _elm_lang$core$Native_Utils.cmp( _elm_lang$core$Basics$floor(_p7._0), max) < 1; case 'FieldIntegerValue': return _elm_lang$core$Native_Utils.cmp(_p7._0, max) < 1; default: return true; } }); var _user$project$Config$validateMin = F2( function (min, fieldValue) { var _p8 = fieldValue; switch (_p8.ctor) { case 'FieldPercentageValue': return _elm_lang$core$Native_Utils.cmp( _elm_lang$core$Basics$ceiling(_p8._0), min) > -1; case 'FieldIntegerValue': return _elm_lang$core$Native_Utils.cmp(_p8._0, min) > -1; default: return true; } }); var _user$project$Config$isInScope = F3( function (cryptoScope, machineScope, fieldScope) { return !((_elm_lang$core$Native_Utils.eq(cryptoScope, _user$project$ConfigTypes$Specific) && _elm_lang$core$Native_Utils.eq(fieldScope.crypto, _user$project$ConfigTypes$GlobalCrypto)) || ((_elm_lang$core$Native_Utils.eq(machineScope, _user$project$ConfigTypes$Specific) && _elm_lang$core$Native_Utils.eq(fieldScope.machine, _user$project$ConfigTypes$GlobalMachine)) || ((_elm_lang$core$Native_Utils.eq(cryptoScope, _user$project$ConfigTypes$Global) && (!_elm_lang$core$Native_Utils.eq(fieldScope.crypto, _user$project$ConfigTypes$GlobalCrypto))) || (_elm_lang$core$Native_Utils.eq(machineScope, _user$project$ConfigTypes$Global) && (!_elm_lang$core$Native_Utils.eq(fieldScope.machine, _user$project$ConfigTypes$GlobalMachine)))))); }); var _user$project$Config$buildFieldComponent = F4( function (configGroup, fieldType, fieldScope, fieldValue) { var _p9 = fieldType; switch (_p9.ctor) { case 'FieldStringType': return _user$project$ConfigTypes$InputBoxComponent; case 'FieldPercentageType': return _user$project$ConfigTypes$InputBoxComponent; case 'FieldIntegerType': return _user$project$ConfigTypes$InputBoxComponent; case 'FieldDecimalType': return _user$project$ConfigTypes$InputBoxComponent; case 'FieldOnOffType': return _user$project$ConfigTypes$SelectizeComponent(_user$project$Selectize$initialSelectize); case 'FieldAccountType': return _user$project$ConfigTypes$SelectizeComponent(_user$project$Selectize$initialSelectize); case 'FieldFiatCurrencyType': return _user$project$ConfigTypes$SelectizeComponent(_user$project$Selectize$initialSelectize); case 'FieldCryptoCurrencyType': return _user$project$ConfigTypes$SelectizeComponent(_user$project$Selectize$initialSelectize); case 'FieldLanguageType': return _user$project$ConfigTypes$SelectizeComponent(_user$project$Selectize$initialSelectize); default: return _user$project$ConfigTypes$SelectizeComponent(_user$project$Selectize$initialSelectize); } }); var _user$project$Config$initFieldInstance = F3( function (configGroup, fieldDescriptor, fieldScope) { var maybeToFieldHolder = function (maybe) { return A2( _elm_lang$core$Maybe$withDefault, _user$project$ConfigTypes$FieldEmpty, A2(_elm_lang$core$Maybe$map, _user$project$ConfigTypes$FieldOk, maybe)); }; var inScope = A3(_user$project$Config$isInScope, fieldDescriptor.cryptoScope, fieldDescriptor.machineScope, fieldScope); var equivalentFieldLocator = F2( function (a, b) { return _elm_lang$core$Native_Utils.eq(a.fieldScope, b.fieldScope) && _elm_lang$core$Native_Utils.eq(a.code, b.code); }); var fieldLocator = {fieldScope: fieldScope, code: fieldDescriptor.code, fieldType: fieldDescriptor.fieldType, fieldClass: fieldDescriptor.fieldClass}; var maybeValue = A2( _elm_lang$core$Maybe$map, function (_) { return _.fieldValue; }, _elm_lang$core$List$head( A2( _elm_lang$core$List$filter, function (_p10) { return A2( equivalentFieldLocator, fieldLocator, function (_) { return _.fieldLocator; }(_p10)); }, configGroup.values))); var component = A4(_user$project$Config$buildFieldComponent, configGroup, fieldDescriptor.fieldType, fieldScope, maybeValue); var fieldHolder = maybeToFieldHolder(maybeValue); var readOnly = (_elm_lang$core$Native_Utils.eq(fieldLocator.code, 'cashOutEnabled') && _elm_lang$core$Native_Utils.eq(fieldScope.machine, _user$project$ConfigTypes$GlobalMachine)) ? true : fieldDescriptor.readOnly; return {fieldLocator: fieldLocator, component: component, fieldHolder: fieldHolder, loadedFieldHolder: fieldHolder, fieldValidation: fieldDescriptor.fieldValidation, fieldEnabledIfAny: fieldDescriptor.fieldEnabledIfAny, fieldEnabledIfAll: fieldDescriptor.fieldEnabledIfAll, readOnly: readOnly, inScope: inScope}; }); var _user$project$Config$initFieldInstancesPerEntry = F2( function (configGroup, fieldDescriptor) { return A2( _elm_lang$core$List$map, A2(_user$project$Config$initFieldInstance, configGroup, fieldDescriptor), _user$project$ConfigTypes$fieldScopes(configGroup)); }); var _user$project$Config$initFieldInstances = function (configGroup) { return A2( _elm_lang$core$List$concatMap, _user$project$Config$initFieldInstancesPerEntry(configGroup), configGroup.schema.entries); }; var _user$project$Config$buildFieldCollection = function (configGroup) { return { fields: configGroup.values, fieldInstances: _user$project$Config$initFieldInstances(configGroup) }; }; var _user$project$Config$maybeToList = function (maybe) { var _p11 = maybe; if (_p11.ctor === 'Nothing') { return {ctor: '[]'}; } else { return { ctor: '::', _0: _p11._0, _1: {ctor: '[]'} }; } }; var _user$project$Config$isField = function (fieldValue) { var _p12 = fieldValue; if (_p12.ctor === 'FieldOnOffValue') { return _p12._0; } else { return _elm_lang$core$Native_Utils.crashCase( 'Config', { start: {line: 1073, column: 5}, end: {line: 1078, column: 59} }, _p12)('Referenced field must be boolean'); } }; var _user$project$Config$bottomHeaderRowView = F3( function (configGroup, crypto, displayMachineName) { var headerCellView = function (fieldDescriptor) { return A2( _elm_lang$html$Html$th, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text(fieldDescriptor.displayBottom), _1: {ctor: '[]'} }); }; var cells = displayMachineName ? { ctor: '::', _0: A2( _elm_lang$html$Html$th, {ctor: '[]'}, {ctor: '[]'}), _1: A2(_elm_lang$core$List$map, headerCellView, configGroup.schema.entries) } : A2(_elm_lang$core$List$map, headerCellView, configGroup.schema.entries); return A2( _elm_lang$html$Html$tr, {ctor: '[]'}, cells); }); var _user$project$Config$topHeaderRowView = F3( function (configGroup, crypto, displayMachineName) { var headerCellView = function (fieldDescriptor) { var _p14 = fieldDescriptor.displayTop; switch (_p14.ctor) { case 'DisplayTopLeader': return _elm_lang$core$Maybe$Just( A2( _elm_lang$html$Html$th, { ctor: '::', _0: _elm_lang$html$Html_Attributes$colspan(_p14._0), _1: { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$MultiDisplay, _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }, { ctor: '::', _0: _elm_lang$html$Html$text(_p14._1), _1: {ctor: '[]'} })); case 'DisplayTopSolo': return _elm_lang$core$Maybe$Just( A2( _elm_lang$html$Html$th, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text(_p14._0), _1: {ctor: '[]'} })); default: return _elm_lang$core$Maybe$Nothing; } }; var cells = displayMachineName ? { ctor: '::', _0: A2( _elm_lang$html$Html$th, {ctor: '[]'}, {ctor: '[]'}), _1: A2(_elm_lang$core$List$filterMap, headerCellView, configGroup.schema.entries) } : A2(_elm_lang$core$List$filterMap, headerCellView, configGroup.schema.entries); return A2( _elm_lang$html$Html$tr, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$TopDisplay, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, cells); }); var _user$project$Config$fieldInstanceToField = function (fieldInstance) { var buildFieldInstance = function (fieldValue) { return {fieldLocator: fieldInstance.fieldLocator, fieldValue: fieldValue, fieldEnabledIfAny: fieldInstance.fieldEnabledIfAny, fieldEnabledIfAll: fieldInstance.fieldEnabledIfAll, inScope: fieldInstance.inScope}; }; var maybeFieldValue = _user$project$ConfigTypes$fieldHolderToMaybe(fieldInstance.fieldHolder); return A2(_elm_lang$core$Maybe$map, buildFieldInstance, maybeFieldValue); }; var _user$project$Config$buildAllFields = function (fieldCollection) { return A2( _elm_lang$core$Basics_ops['++'], A2(_elm_lang$core$List$filterMap, _user$project$Config$fieldInstanceToField, fieldCollection.fieldInstances), fieldCollection.fields); }; var _user$project$Config$fieldInstanceToFieldMeta = function (fieldInstance) { return {fieldLocator: fieldInstance.fieldLocator, fieldEnabledIfAny: fieldInstance.fieldEnabledIfAny, fieldEnabledIfAll: fieldInstance.fieldEnabledIfAll, inScope: fieldInstance.inScope}; }; var _user$project$Config$fieldToFieldMeta = function (field) { return {fieldLocator: field.fieldLocator, fieldEnabledIfAny: field.fieldEnabledIfAny, fieldEnabledIfAll: field.fieldEnabledIfAll, inScope: field.inScope}; }; var _user$project$Config$fallbackValue = F3( function (fieldScope, fields, fieldCode) { var pick = A2(_user$project$Config$pickFieldValue, fieldCode, fields); var maybeGlobal = A2(pick, _user$project$ConfigTypes$GlobalCrypto, _user$project$ConfigTypes$GlobalMachine); var maybeGlobalCrypto = A2(pick, _user$project$ConfigTypes$GlobalCrypto, fieldScope.machine); var maybeGlobalMachine = A2(pick, fieldScope.crypto, _user$project$ConfigTypes$GlobalMachine); var maybeSpecific = A2(pick, fieldScope.crypto, fieldScope.machine); return _elm_lang$core$List$head( A2( _elm_lang$core$List$filterMap, _elm_lang$core$Basics$identity, { ctor: '::', _0: maybeSpecific, _1: { ctor: '::', _0: maybeGlobalMachine, _1: { ctor: '::', _0: maybeGlobalCrypto, _1: { ctor: '::', _0: maybeGlobal, _1: {ctor: '[]'} } } } })); }); var _user$project$Config$validateRequired = F2( function (fields, fieldInstance) { var fieldCode = fieldInstance.fieldLocator.code; var fieldScope = fieldInstance.fieldLocator.fieldScope; var maybeFallbackFieldValue = A3(_user$project$Config$fallbackValue, fieldScope, fields, fieldCode); var maybeFallbackString = A2(_elm_lang$core$Maybe$map, _user$project$ConfigTypes$fieldValueToString, maybeFallbackFieldValue); var isEmpty = A2( _elm_lang$core$Maybe$withDefault, true, A2(_elm_lang$core$Maybe$map, _elm_lang$core$String$isEmpty, maybeFallbackString)); return !isEmpty; }); var _user$project$Config$validate = F3( function (fields, fieldInstance, fieldValidator) { var _p15 = fieldValidator; switch (_p15.ctor) { case 'FieldRequired': return A2(_user$project$Config$validateRequired, fields, fieldInstance); case 'FieldMin': return A3( _user$project$ConfigTypes$fieldHolderMap, true, _user$project$Config$validateMin(_p15._0), fieldInstance.fieldHolder); default: return A3( _user$project$ConfigTypes$fieldHolderMap, true, _user$project$Config$validateMax(_p15._0), fieldInstance.fieldHolder); } }); var _user$project$Config$referenceFields = F3( function (fieldScope, fields, fieldCodes) { var fallback = function (fieldCode) { return A3(_user$project$Config$fallbackValue, fieldScope, fields, fieldCode); }; return A2(_elm_lang$core$List$filterMap, fallback, fieldCodes); }); var _user$project$Config$checkEnabled = F2( function (fields, fieldMeta) { if (!fieldMeta.inScope) { return false; } else { var enabledIfAllInstances = A3(_user$project$Config$referenceFields, fieldMeta.fieldLocator.fieldScope, fields, fieldMeta.fieldEnabledIfAll); var enabledIfAll = _elm_lang$core$List$isEmpty(fieldMeta.fieldEnabledIfAll) || A2(_elm_lang$core$List$all, _user$project$Config$isField, enabledIfAllInstances); var enabledIfAnyInstances = A3(_user$project$Config$referenceFields, fieldMeta.fieldLocator.fieldScope, fields, fieldMeta.fieldEnabledIfAny); var enabledIfAny = _elm_lang$core$List$isEmpty(fieldMeta.fieldEnabledIfAny) || A2(_elm_lang$core$List$any, _user$project$Config$isField, enabledIfAnyInstances); return enabledIfAny && enabledIfAll; } }); var _user$project$Config$validateFieldInstance = F2( function (fieldCollection, fieldInstance) { var allFields = _user$project$Config$buildAllFields(fieldCollection); var enabled = A2( _user$project$Config$checkEnabled, allFields, _user$project$Config$fieldInstanceToFieldMeta(fieldInstance)); return (!enabled) || A2( _elm_lang$core$List$all, A2(_user$project$Config$validate, allFields, fieldInstance), fieldInstance.fieldValidation); }); var _user$project$Config$isJust = function (maybe) { var _p16 = maybe; if (_p16.ctor === 'Just') { return true; } else { return false; } }; var _user$project$Config$onOffSelectizeView = F6( function (model, localConfig, fieldInstance, selectizeState, maybeFieldValue, maybeFallbackFieldValue) { var fallbackIds = _user$project$Config$maybeToList( A2(_elm_lang$core$Maybe$map, _user$project$ConfigTypes$fieldValueToString, maybeFallbackFieldValue)); var selectedIds = _user$project$Config$maybeToList( A2(_elm_lang$core$Maybe$map, _user$project$ConfigTypes$fieldValueToString, maybeFieldValue)); var availableItems = { ctor: '::', _0: {display: 'On', code: 'on'}, _1: { ctor: '::', _0: {display: 'Off', code: 'off'}, _1: {ctor: '[]'} } }; var specificConfig = { maxItems: 1, selectedDisplay: function (_) { return _.display; }, optionDisplay: function (_) { return _.display; }, match: _user$project$FuzzyMatch$match }; return A5( _user$project$Selectize$view, A2(_user$project$SelectizeHelper$buildConfig, localConfig, specificConfig), selectedIds, availableItems, fallbackIds, selectizeState); }); var _user$project$Config$countrySelectizeView = F6( function (model, localConfig, fieldInstance, selectizeState, maybeFieldValue, maybeFallbackFieldValue) { var fallbackIds = _user$project$Config$maybeToList( A2(_elm_lang$core$Maybe$map, _user$project$ConfigTypes$fieldValueToString, maybeFallbackFieldValue)); var selectedIds = _user$project$Config$maybeToList( A2(_elm_lang$core$Maybe$map, _user$project$ConfigTypes$fieldValueToString, maybeFieldValue)); var availableItems = model.configGroup.data.countries; var specificConfig = { maxItems: 1, selectedDisplay: function (_) { return _.code; }, optionDisplay: function (_) { return _.display; }, match: _user$project$FuzzyMatch$match }; return A5( _user$project$Selectize$view, A2(_user$project$SelectizeHelper$buildConfig, localConfig, specificConfig), selectedIds, availableItems, fallbackIds, selectizeState); }); var _user$project$Config$languageSelectizeView = F6( function (model, localConfig, fieldInstance, selectizeState, maybeFieldValue, maybeFallbackFieldValue) { var toList = function (maybeValue) { var _p17 = maybeValue; if (_p17.ctor === 'Nothing') { return {ctor: '[]'}; } else { var _p18 = _p17._0; if (_p18.ctor === 'FieldLanguageValue') { return _p18._0; } else { return _elm_lang$core$Native_Utils.crashCase( 'Config', { start: {line: 534, column: 21}, end: {line: 539, column: 60} }, _p18)('Shouldn\'t be here'); } } }; var selectedIds = toList(maybeFieldValue); var fallbackIds = toList(maybeFallbackFieldValue); var availableItems = model.configGroup.data.languages; var specificConfig = { maxItems: 5, selectedDisplay: function (_) { return _.code; }, optionDisplay: function (_) { return _.display; }, match: _user$project$FuzzyMatch$match }; return A5( _user$project$Selectize$view, A2(_user$project$SelectizeHelper$buildConfig, localConfig, specificConfig), selectedIds, availableItems, fallbackIds, selectizeState); }); var _user$project$Config$cryptoCurrencySelectizeView = F6( function (model, localConfig, fieldInstance, selectizeState, maybeFieldValue, maybeFallbackFieldValue) { var toList = function (maybeValue) { var _p20 = maybeValue; if (_p20.ctor === 'Nothing') { return {ctor: '[]'}; } else { var _p21 = _p20._0; if (_p21.ctor === 'FieldCryptoCurrencyValue') { return _p21._0; } else { return _elm_lang$core$Native_Utils.crashCase( 'Config', { start: {line: 488, column: 21}, end: {line: 493, column: 60} }, _p21)('Shouldn\'t be here'); } } }; var selectedIds = toList(maybeFieldValue); var fallbackIds = toList(maybeFallbackFieldValue); var toDisplay = function (crypto) { return { code: _user$project$ConfigTypes$cryptoToString(crypto.crypto), display: crypto.display }; }; var availableItems = A2(_elm_lang$core$List$map, toDisplay, model.configGroup.data.cryptoCurrencies); var specificConfig = { maxItems: 5, selectedDisplay: function (_) { return _.code; }, optionDisplay: function (_) { return _.display; }, match: _user$project$FuzzyMatch$match }; return A5( _user$project$Selectize$view, A2(_user$project$SelectizeHelper$buildConfig, localConfig, specificConfig), selectedIds, availableItems, fallbackIds, selectizeState); }); var _user$project$Config$fiatCurrencySelectizeView = F6( function (model, localConfig, fieldInstance, selectizeState, maybeFieldValue, maybeFallbackFieldValue) { var fallbackIds = _user$project$Config$maybeToList( A2(_elm_lang$core$Maybe$map, _user$project$ConfigTypes$fieldValueToString, maybeFallbackFieldValue)); var selectedIds = _user$project$Config$maybeToList( A2(_elm_lang$core$Maybe$map, _user$project$ConfigTypes$fieldValueToString, maybeFieldValue)); var availableItems = model.configGroup.data.currencies; var specificConfig = { maxItems: 1, selectedDisplay: function (_) { return _.code; }, optionDisplay: function (_) { return _.display; }, match: _user$project$FuzzyMatch$match }; return A5( _user$project$Selectize$view, A2(_user$project$SelectizeHelper$buildConfig, localConfig, specificConfig), selectedIds, availableItems, fallbackIds, selectizeState); }); var _user$project$Config$accountSelectizeView = F6( function (model, localConfig, fieldInstance, selectizeState, maybeFieldValue, maybeFallbackFieldValue) { var fallbackIds = _user$project$Config$maybeToList( A2(_elm_lang$core$Maybe$map, _user$project$ConfigTypes$fieldValueToString, maybeFallbackFieldValue)); var selectedIds = _user$project$Config$maybeToList( A2(_elm_lang$core$Maybe$map, _user$project$ConfigTypes$fieldValueToString, maybeFieldValue)); var matchAccount = function (accountRec) { var _p23 = fieldInstance.fieldLocator.fieldClass; if (_p23.ctor === 'Nothing') { return true; } else { return _elm_lang$core$Native_Utils.eq(accountRec.$class, _p23._0) && function () { var _p24 = accountRec.cryptos; if (_p24.ctor === 'Nothing') { return true; } else { return A2(_elm_lang$core$List$member, model.crypto, _p24._0); } }(); } }; var availableItems = A2( _elm_lang$core$List$map, _user$project$ConfigTypes$accountRecToDisplayRec, A2(_elm_lang$core$List$filter, matchAccount, model.configGroup.data.accounts)); var specificConfig = { maxItems: 1, selectedDisplay: function (_) { return _.display; }, optionDisplay: function (_) { return _.display; }, match: _user$project$FuzzyMatch$match }; return A5( _user$project$Selectize$view, A2(_user$project$SelectizeHelper$buildConfig, localConfig, specificConfig), selectedIds, availableItems, fallbackIds, selectizeState); }); var _user$project$Config$fieldInstanceClasses = function (fieldInstance) { var _p25 = fieldInstance.fieldLocator.fieldType; switch (_p25.ctor) { case 'FieldPercentageType': return { ctor: '::', _0: _user$project$Css_Classes$ShortCell, _1: {ctor: '[]'} }; case 'FieldIntegerType': return { ctor: '::', _0: _user$project$Css_Classes$ShortCell, _1: {ctor: '[]'} }; case 'FieldAccountType': return { ctor: '::', _0: _user$project$Css_Classes$MediumCell, _1: {ctor: '[]'} }; case 'FieldStringType': return { ctor: '::', _0: _user$project$Css_Classes$MediumCell, _1: { ctor: '::', _0: _user$project$Css_Classes$TextCell, _1: {ctor: '[]'} } }; case 'FieldLanguageType': return { ctor: '::', _0: _user$project$Css_Classes$MediumCell, _1: {ctor: '[]'} }; case 'FieldCryptoCurrencyType': return { ctor: '::', _0: _user$project$Css_Classes$MediumCell, _1: {ctor: '[]'} }; default: return { ctor: '::', _0: _user$project$Css_Classes$ShortCell, _1: {ctor: '[]'} }; } }; var _user$project$Config$unitDisplay = F2( function (fiat, fieldInstance) { var _p26 = fieldInstance.fieldLocator.fieldType; switch (_p26.ctor) { case 'FieldPercentageType': return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$UnitDisplay, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('%'), _1: {ctor: '[]'} }); case 'FieldIntegerType': var _p27 = fieldInstance.fieldLocator.fieldClass; if (_p27.ctor === 'Just') { switch (_p27._0) { case 'fiat': return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$UnitDisplay, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(fiat), _1: {ctor: '[]'} }); case 'banknotes': return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$UnitDisplay, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('notes'), _1: {ctor: '[]'} }); default: return A2( _elm_lang$html$Html$div, {ctor: '[]'}, {ctor: '[]'}); } } else { return A2( _elm_lang$html$Html$div, {ctor: '[]'}, {ctor: '[]'}); } default: return A2( _elm_lang$html$Html$div, {ctor: '[]'}, {ctor: '[]'}); } }); var _user$project$Config$fieldTypeToInputType = function (fieldType) { return 'string'; }; var _user$project$Config$listToFieldHolder = F2( function (modifier, list) { return _elm_lang$core$List$isEmpty(list) ? _user$project$ConfigTypes$FieldEmpty : _user$project$ConfigTypes$FieldOk( modifier(list)); }); var _user$project$Config$emptyToNothing = function (list) { return _elm_lang$core$List$isEmpty(list) ? _elm_lang$core$Maybe$Nothing : _elm_lang$core$Maybe$Just(list); }; var _user$project$Config$fieldHolderToList = function (fieldHolder) { var _p28 = fieldHolder; if (_p28.ctor === 'FieldOk') { var _p29 = _p28._0; switch (_p29.ctor) { case 'FieldLanguageValue': return _p29._0; case 'FieldCryptoCurrencyValue': return _p29._0; default: return _elm_lang$core$Native_Utils.crashCase( 'Config', { start: {line: 154, column: 13}, end: {line: 162, column: 50} }, _p29)('Not a list type'); } } else { return {ctor: '[]'}; } }; var _user$project$Config$updateStringFieldInstance = F4( function (fieldInstances, fieldLocator, maybeString, fieldInstance) { if (_elm_lang$core$Native_Utils.eq(fieldInstance.fieldLocator, fieldLocator)) { var _p31 = fieldLocator.fieldType; switch (_p31.ctor) { case 'FieldLanguageType': var list = _user$project$Config$fieldHolderToList(fieldInstance.fieldHolder); var newList = function () { var _p32 = maybeString; if (_p32.ctor === 'Nothing') { return A2( _elm_lang$core$List$take, _elm_lang$core$List$length(list) - 1, list); } else { return A2( _elm_lang$core$Basics_ops['++'], list, { ctor: '::', _0: _p32._0, _1: {ctor: '[]'} }); } }(); return _elm_lang$core$Native_Utils.update( fieldInstance, { fieldHolder: A2(_user$project$Config$listToFieldHolder, _user$project$ConfigTypes$FieldLanguageValue, newList) }); case 'FieldCryptoCurrencyType': var list = _user$project$Config$fieldHolderToList(fieldInstance.fieldHolder); var newList = function () { var _p33 = maybeString; if (_p33.ctor === 'Nothing') { return A2( _elm_lang$core$List$take, _elm_lang$core$List$length(list) - 1, list); } else { return A2( _elm_lang$core$Basics_ops['++'], list, { ctor: '::', _0: _p33._0, _1: {ctor: '[]'} }); } }(); return _elm_lang$core$Native_Utils.update( fieldInstance, { fieldHolder: A2(_user$project$Config$listToFieldHolder, _user$project$ConfigTypes$FieldCryptoCurrencyValue, newList) }); default: var fieldHolder = function () { var _p34 = maybeString; if (_p34.ctor === 'Nothing') { return _user$project$ConfigTypes$FieldEmpty; } else { return A2(_user$project$ConfigTypes$stringToFieldHolder, fieldLocator.fieldType, _p34._0); } }(); return _elm_lang$core$Native_Utils.update( fieldInstance, {fieldHolder: fieldHolder}); } } else { return fieldInstance; } }); var _user$project$Config$updateInput = F3( function (fieldLocator, maybeValueString, model) { var fieldCollection = model.fieldCollection; var oldFieldInstances = model.fieldCollection.fieldInstances; var fieldInstances = A2( _elm_lang$core$List$map, A3(_user$project$Config$updateStringFieldInstance, oldFieldInstances, fieldLocator, maybeValueString), oldFieldInstances); var newFieldCollection = _elm_lang$core$Native_Utils.update( fieldCollection, {fieldInstances: fieldInstances}); return _elm_lang$core$Native_Utils.update( model, {fieldCollection: newFieldCollection}); }); var _user$project$Config$similar = F3( function (mapper, a, b) { return A2( F2( function (x, y) { return _elm_lang$core$Native_Utils.eq(x, y); }), mapper(a), mapper(b)); }); var _user$project$Config$placeField = F2( function (fieldList, field) { var maybeOldField = _elm_lang$core$List$head( A2( _elm_lang$core$List$filter, A2( _user$project$Config$similar, function (_) { return _.fieldLocator; }, field), fieldList)); var newField = function () { var _p35 = maybeOldField; if (_p35.ctor === 'Nothing') { return field; } else { return _elm_lang$core$Native_Utils.update( _p35._0, {fieldValue: field.fieldValue}); } }(); return { ctor: '::', _0: newField, _1: A2( _elm_lang$core$List$filter, function (_p36) { return !A3( _user$project$Config$similar, function (_) { return _.fieldLocator; }, field, _p36); }, fieldList) }; }); var _user$project$Config$toResolvedModel = F2( function (model, configGroup) { return { configGroup: configGroup, fieldCollection: model.fieldCollection, crypto: A2(_elm_lang$core$Maybe$withDefault, _user$project$ConfigTypes$GlobalCrypto, model.crypto), fiat: A2(_elm_lang$core$Maybe$withDefault, 'Fiat', model.fiat), status: model.status, focused: model.focused }; }); var _user$project$Config$Model = F7( function (a, b, c, d, e, f, g) { return {webConfigGroup: a, fieldCollection: b, crypto: c, fiat: d, status: e, focused: f, rates: g}; }); var _user$project$Config$ResolvedModel = F6( function (a, b, c, d, e, f) { return {configGroup: a, fieldCollection: b, crypto: c, fiat: d, status: e, focused: f}; }); var _user$project$Config$NotSaving = {ctor: 'NotSaving'}; var _user$project$Config$init = { webConfigGroup: _krisajenkins$remotedata$RemoteData$NotAsked, fieldCollection: _user$project$ConfigTypes$initFieldCollection, crypto: _elm_lang$core$Maybe$Nothing, fiat: _elm_lang$core$Maybe$Nothing, status: _user$project$Config$NotSaving, focused: _elm_lang$core$Maybe$Nothing, rates: {ctor: '[]'} }; var _user$project$Config$Editing = {ctor: 'Editing'}; var _user$project$Config$Saved = {ctor: 'Saved'}; var _user$project$Config$Saving = {ctor: 'Saving'}; var _user$project$Config$NoOp = {ctor: 'NoOp'}; var _user$project$Config$HideSaveIndication = {ctor: 'HideSaveIndication'}; var _user$project$Config$Remove = F2( function (a, b) { return {ctor: 'Remove', _0: a, _1: b}; }); var _user$project$Config$Add = F3( function (a, b, c) { return {ctor: 'Add', _0: a, _1: b, _2: c}; }); var _user$project$Config$FocusSelectize = F2( function (a, b) { return {ctor: 'FocusSelectize', _0: a, _1: b}; }); var _user$project$Config$BlurSelectize = F2( function (a, b) { return {ctor: 'BlurSelectize', _0: a, _1: b}; }); var _user$project$Config$Focus = function (a) { return {ctor: 'Focus', _0: a}; }; var _user$project$Config$Blur = function (a) { return {ctor: 'Blur', _0: a}; }; var _user$project$Config$SelectizeMsg = F2( function (a, b) { return {ctor: 'SelectizeMsg', _0: a, _1: b}; }); var _user$project$Config$selectizeView = F6( function (model, fieldInstance, selectizeState, maybeFieldValue, maybeFallbackFieldValue, enabled) { var fallbackFieldValue = A2( _elm_lang$core$Maybe$withDefault, '', A2(_elm_lang$core$Maybe$map, _user$project$ConfigTypes$fieldValueToString, maybeFallbackFieldValue)); var fieldLocator = fieldInstance.fieldLocator; var localConfig = { toMsg: _user$project$Config$SelectizeMsg(fieldLocator), onAdd: _user$project$Config$Add(fieldLocator), onRemove: _user$project$Config$Remove(fieldLocator), onFocus: _user$project$Config$FocusSelectize(fieldLocator), onBlur: _user$project$Config$BlurSelectize(fieldLocator), toId: function (_) { return _.code; }, enabled: true }; if (fieldInstance.readOnly || (!enabled)) { return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$InputContainer, _1: { ctor: '::', _0: _user$project$Css_Classes$ReadOnly, _1: {ctor: '[]'} } }), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$BasicInputReadOnly, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(fallbackFieldValue), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }); } else { var _p37 = fieldLocator.fieldType; switch (_p37.ctor) { case 'FieldAccountType': return A6(_user$project$Config$accountSelectizeView, model, localConfig, fieldInstance, selectizeState, maybeFieldValue, maybeFallbackFieldValue); case 'FieldFiatCurrencyType': return A6(_user$project$Config$fiatCurrencySelectizeView, model, localConfig, fieldInstance, selectizeState, maybeFieldValue, maybeFallbackFieldValue); case 'FieldCryptoCurrencyType': return A6(_user$project$Config$cryptoCurrencySelectizeView, model, localConfig, fieldInstance, selectizeState, maybeFieldValue, maybeFallbackFieldValue); case 'FieldLanguageType': return A6(_user$project$Config$languageSelectizeView, model, localConfig, fieldInstance, selectizeState, maybeFieldValue, maybeFallbackFieldValue); case 'FieldCountryType': return A6(_user$project$Config$countrySelectizeView, model, localConfig, fieldInstance, selectizeState, maybeFieldValue, maybeFallbackFieldValue); case 'FieldOnOffType': return A6(_user$project$Config$onOffSelectizeView, model, localConfig, fieldInstance, selectizeState, maybeFieldValue, maybeFallbackFieldValue); default: return _elm_lang$core$Native_Utils.crashCase( 'Config', { start: {line: 620, column: 13}, end: {line: 670, column: 56} }, _p37)('Not a Selectize field'); } } }); var _user$project$Config$CryptoSwitch = function (a) { return {ctor: 'CryptoSwitch', _0: a}; }; var _user$project$Config$cryptoView = F2( function (maybeActiveCrypto, cryptoDisplay) { var activeClass = function () { var _p39 = maybeActiveCrypto; if (_p39.ctor === 'Nothing') { return _user$project$Css_Admin$class( {ctor: '[]'}); } else { return _elm_lang$core$Native_Utils.eq(_p39._0, cryptoDisplay.crypto) ? _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$Active, _1: {ctor: '[]'} }) : _user$project$Css_Admin$class( {ctor: '[]'}); } }(); return A2( _elm_lang$html$Html$div, { ctor: '::', _0: activeClass, _1: { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$CryptoTab, _1: {ctor: '[]'} }), _1: { ctor: '::', _0: _elm_lang$html$Html_Events$onClick( _user$project$Config$CryptoSwitch(cryptoDisplay.crypto)), _1: {ctor: '[]'} } } }, { ctor: '::', _0: _elm_lang$html$Html$text(cryptoDisplay.display), _1: {ctor: '[]'} }); }); var _user$project$Config$cryptosView = F2( function (cryptos, activeCrypto) { return A2( _elm_lang$html$Html$nav, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$CryptoTabs, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, A2( _elm_lang$core$List$map, _user$project$Config$cryptoView(activeCrypto), cryptos)); }); var _user$project$Config$Input = F2( function (a, b) { return {ctor: 'Input', _0: a, _1: b}; }); var _user$project$Config$textInput = F5( function (fiat, fieldInstance, maybeFieldValue, maybeFallbackFieldValue, enabled) { var isReadOnly = fieldInstance.readOnly || (!enabled); var parentClasses = isReadOnly ? { ctor: '::', _0: _user$project$Css_Classes$InputContainer, _1: { ctor: '::', _0: _user$project$Css_Classes$ReadOnly, _1: {ctor: '[]'} } } : { ctor: '::', _0: _user$project$Css_Classes$InputContainer, _1: {ctor: '[]'} }; var fieldValid = _user$project$Config$validateFieldInstance; var fieldClasses = _user$project$Config$fieldInstanceClasses(fieldInstance); var maybeFallbackString = A2(_elm_lang$core$Maybe$map, _user$project$ConfigTypes$fieldValueToString, maybeFallbackFieldValue); var fallbackString = A2(_elm_lang$core$Maybe$withDefault, '', maybeFallbackString); var maybeSpecificString = A2(_elm_lang$core$Maybe$map, _user$project$ConfigTypes$fieldValueToString, maybeFieldValue); var defaultString = A2(_elm_lang$core$Maybe$withDefault, '', maybeSpecificString); var fieldLocator = fieldInstance.fieldLocator; var inputType = _user$project$Config$fieldTypeToInputType(fieldLocator.fieldType); var inputComponent = isReadOnly ? A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$BasicInputReadOnly, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(fallbackString), _1: {ctor: '[]'} }) : A2( _elm_lang$html$Html$input, { ctor: '::', _0: _elm_lang$html$Html_Events$onInput( _user$project$Config$Input(fieldLocator)), _1: { ctor: '::', _0: _elm_lang$html$Html_Events$onFocus( _user$project$Config$Focus(fieldLocator)), _1: { ctor: '::', _0: _elm_lang$html$Html_Events$onBlur( _user$project$Config$Blur(fieldLocator)), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$defaultValue(defaultString), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$placeholder(fallbackString), _1: { ctor: '::', _0: _user$project$Css_Admin$class( {ctor: '::', _0: _user$project$Css_Classes$BasicInput, _1: fieldClasses}), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$type_(inputType), _1: {ctor: '[]'} } } } } } } }, {ctor: '[]'}); return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class(parentClasses), _1: {ctor: '[]'} }, { ctor: '::', _0: inputComponent, _1: { ctor: '::', _0: A2(_user$project$Config$unitDisplay, fiat, fieldInstance), _1: {ctor: '[]'} } }); }); var _user$project$Config$fieldInput = F5( function (model, fieldInstance, maybeFieldValue, maybeFallbackFieldValue, enabled) { if ((!enabled) && (!_user$project$Config$isJust(maybeFallbackFieldValue))) { return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$BasicInputDisabled, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, {ctor: '[]'}); } else { var _p40 = fieldInstance.component; if (_p40.ctor === 'InputBoxComponent') { return A5(_user$project$Config$textInput, model.fiat, fieldInstance, maybeFieldValue, maybeFallbackFieldValue, enabled); } else { return A6(_user$project$Config$selectizeView, model, fieldInstance, _p40._0, maybeFieldValue, maybeFallbackFieldValue, enabled); } } }); var _user$project$Config$fieldComponent = F2( function (model, fieldInstance) { var fieldLengthClasses = A2( _elm_lang$core$List$map, function ($class) { return {ctor: '_Tuple2', _0: $class, _1: true}; }, _user$project$Config$fieldInstanceClasses(fieldInstance)); var fieldValid = A2(_user$project$Config$validateFieldInstance, model.fieldCollection, fieldInstance); var allFields = _user$project$Config$buildAllFields(model.fieldCollection); var enabled = A2( _user$project$Config$checkEnabled, allFields, _user$project$Config$fieldInstanceToFieldMeta(fieldInstance)); var maybeSpecific = function () { var _p41 = fieldInstance.fieldHolder; if (_p41.ctor === 'FieldOk') { return _elm_lang$core$Maybe$Just(_p41._0); } else { return _elm_lang$core$Maybe$Nothing; } }(); var fieldInstances = model.fieldCollection.fieldInstances; var fieldLocator = fieldInstance.fieldLocator; var fieldScope = fieldLocator.fieldScope; var fieldCode = fieldLocator.code; var maybeFallbackFieldValue = A3(_user$project$Config$fallbackValue, fieldScope, allFields, fieldCode); var fieldClass = fieldLocator.fieldClass; var fieldType = fieldLocator.fieldType; var focused = _elm_lang$core$Native_Utils.eq( _elm_lang$core$Maybe$Just(fieldLocator), model.focused); return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$classList( A2( _elm_lang$core$Basics_ops['++'], { ctor: '::', _0: {ctor: '_Tuple2', _0: _user$project$Css_Classes$Component, _1: true}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: _user$project$Css_Classes$FocusedComponent, _1: focused}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: _user$project$Css_Classes$InvalidComponent, _1: !fieldValid}, _1: {ctor: '[]'} } } }, fieldLengthClasses)), _1: {ctor: '[]'} }, { ctor: '::', _0: A5(_user$project$Config$fieldInput, model, fieldInstance, maybeSpecific, maybeFallbackFieldValue, enabled), _1: {ctor: '[]'} }); }); var _user$project$Config$cellView = F2( function (model, fieldInstance) { var fieldLocator = fieldInstance.fieldLocator; var fieldScope = fieldLocator.fieldScope; var machine = fieldScope.machine; var crypto = fieldScope.crypto; return A3( _elm_lang$html$Html_Keyed$node, 'td', {ctor: '[]'}, { ctor: '::', _0: { ctor: '_Tuple2', _0: A2( _elm_lang$core$Basics_ops['++'], _user$project$ConfigTypes$cryptoToString(crypto), A2( _elm_lang$core$Basics_ops['++'], '-', A2( _elm_lang$core$Basics_ops['++'], _user$project$ConfigTypes$machineToString(machine), A2(_elm_lang$core$Basics_ops['++'], '-', fieldLocator.code)))), _1: A2(_user$project$Config$fieldComponent, model, fieldInstance) }, _1: {ctor: '[]'} }); }); var _user$project$Config$rowView = F4( function (model, fieldInstances, displayMachineName, machineDisplay) { var fieldScope = {crypto: model.crypto, machine: machineDisplay.machine}; var toFieldLocator = function (entry) { return {fieldScope: fieldScope, code: entry.code}; }; var machine = machineDisplay.machine; var globalRowClass = function () { var _p42 = machine; if (_p42.ctor === 'GlobalMachine') { return _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$ConfigTableGlobalRow, _1: {ctor: '[]'} }); } else { return _user$project$Css_Admin$class( {ctor: '[]'}); } }(); var machineScoped = function (fieldInstance) { return _elm_lang$core$Native_Utils.eq(fieldInstance.fieldLocator.fieldScope.machine, machine); }; var filteredFieldInstances = A2(_elm_lang$core$List$filter, machineScoped, fieldInstances); return displayMachineName ? A2( _elm_lang$html$Html$tr, { ctor: '::', _0: globalRowClass, _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$ShortCell, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(machineDisplay.display), _1: {ctor: '[]'} }), _1: A2( _elm_lang$core$List$map, _user$project$Config$cellView(model), filteredFieldInstances) }) : A2( _elm_lang$html$Html$tr, { ctor: '::', _0: globalRowClass, _1: {ctor: '[]'} }, A2( _elm_lang$core$List$map, _user$project$Config$cellView(model), filteredFieldInstances)); }); var _user$project$Config$tableView = function (model) { var crypto = model.crypto; var cryptoScoped = function (fieldInstance) { return _elm_lang$core$Native_Utils.eq(fieldInstance.fieldLocator.fieldScope.crypto, crypto); }; var instances = A2(_elm_lang$core$List$filter, cryptoScoped, model.fieldCollection.fieldInstances); var configGroup = model.configGroup; var displayMachineName = !_elm_lang$core$Native_Utils.eq(configGroup.schema.code, 'definition'); var topHeaderRow = A3(_user$project$Config$topHeaderRowView, configGroup, crypto, displayMachineName); var bottomHeaderRow = A3(_user$project$Config$bottomHeaderRowView, configGroup, crypto, displayMachineName); var machines = _user$project$ConfigTypes$listMachines(configGroup); var rows = A2( _elm_lang$core$List$map, A3(_user$project$Config$rowView, model, instances, displayMachineName), machines); return A2( _elm_lang$html$Html$table, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$ConfigTable, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$thead, {ctor: '[]'}, { ctor: '::', _0: topHeaderRow, _1: { ctor: '::', _0: bottomHeaderRow, _1: {ctor: '[]'} } }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$tbody, {ctor: '[]'}, rows), _1: {ctor: '[]'} } }); }; var _user$project$Config$complianceTableView = function (model) { var header = A2( _elm_lang$html$Html$tr, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$th, {ctor: '[]'}, {ctor: '[]'}), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$th, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Active'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$th, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Threshold'), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } } }); var emptyCell = A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('--'), _1: {ctor: '[]'} }); var cryptoScoped = function (fieldInstance) { return _elm_lang$core$Native_Utils.eq(fieldInstance.fieldLocator.fieldScope.crypto, model.crypto); }; var instances = A2(_elm_lang$core$List$filter, cryptoScoped, model.fieldCollection.fieldInstances); var pickField = function (code) { return A3( _user$project$Config$pickFieldInstance, code, {crypto: _user$project$ConfigTypes$GlobalCrypto, machine: _user$project$ConfigTypes$GlobalMachine}, instances); }; var fieldCodeCellView = function (code) { return A3( _elm_community$maybe_extra$Maybe_Extra$unwrap, emptyCell, _user$project$Config$cellView(model), pickField(code)); }; var row = F3( function (label, activeFieldCode, thresholdFieldCode) { return A2( _elm_lang$html$Html$tr, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$ShortCell, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(label), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: fieldCodeCellView(activeFieldCode), _1: { ctor: '::', _0: fieldCodeCellView(thresholdFieldCode), _1: {ctor: '[]'} } } }); }); return A2( _elm_lang$html$Html$table, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$ConfigTable, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$tbody, {ctor: '[]'}, { ctor: '::', _0: header, _1: { ctor: '::', _0: A3(row, 'SMS', 'smsVerificationActive', 'smsVerificationThreshold'), _1: { ctor: '::', _0: A3(row, 'ID Card Data', 'idCardDataVerificationActive', 'idCardDataVerificationThreshold'), _1: { ctor: '::', _0: A3(row, 'ID Card Photo', 'idCardPhotoVerificationActive', 'idCardPhotoVerificationThreshold'), _1: { ctor: '::', _0: A3(row, 'Front Facing Camera', 'frontCameraVerificationActive', 'frontCameraVerificationThreshold'), _1: { ctor: '::', _0: A3(row, 'Sanctions', 'sanctionsVerificationActive', 'sanctionsVerificationThreshold'), _1: { ctor: '::', _0: A3(row, 'Cross Reference', 'crossRefVerificationActive', 'crossRefVerificationThreshold'), _1: { ctor: '::', _0: A3(row, 'Hard Limit', 'hardLimitVerificationActive', 'hardLimitVerificationThreshold'), _1: {ctor: '[]'} } } } } } } } }), _1: {ctor: '[]'} }); }; var _user$project$Config$Submit = {ctor: 'Submit'}; var _user$project$Config$view = function (model) { var _p43 = model.webConfigGroup; switch (_p43.ctor) { case 'NotAsked': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, {ctor: '[]'}); case 'Loading': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Loading...'), _1: {ctor: '[]'} }); case 'Failure': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( _elm_lang$core$Basics$toString(_p43._0)), _1: {ctor: '[]'} }); default: var _p45 = _p43._0; var statusString = function () { var _p44 = model.status; if (_p44.ctor === 'Saved') { return 'Saved'; } else { return ''; } }(); var cryptos = A3(_user$project$ConfigTypes$allCryptos, _p45.data.cryptoCurrencies, _p45.schema.cryptoScope, _p45.selectedCryptos); var getView = _elm_lang$core$Native_Utils.eq(_p45.schema.code, 'compliance') ? _user$project$Config$complianceTableView : _user$project$Config$tableView; var resolvedModel = A2(_user$project$Config$toResolvedModel, model, _p45); var configGroupView = A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$ConfigContainer, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: getView(resolvedModel), _1: {ctor: '[]'} }); var machines = _user$project$ConfigTypes$listMachines(resolvedModel.configGroup); var fieldInstances = resolvedModel.fieldCollection.fieldInstances; var cryptoFieldInstances = A2( _elm_lang$core$List$filter, function (fi) { return _elm_lang$core$Native_Utils.eq(fi.fieldLocator.fieldScope.crypto, resolvedModel.crypto); }, fieldInstances); var submitButton = A2( _elm_lang$core$List$all, _user$project$Config$validateFieldInstance(model.fieldCollection), cryptoFieldInstances) ? A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Events$onClick(_user$project$Config$Submit), _1: { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$Button, _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }, { ctor: '::', _0: _elm_lang$html$Html$text('Submit'), _1: {ctor: '[]'} }) : A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$Button, _1: { ctor: '::', _0: _user$project$Css_Classes$Disabled, _1: {ctor: '[]'} } }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('Submit'), _1: {ctor: '[]'} }); var form = _elm_lang$core$List$isEmpty(machines) ? A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$EmptyTable, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('No paired machines.'), _1: {ctor: '[]'} }) : A2( _elm_lang$html$Html$form, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: configGroupView, _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$ButtonRow, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: submitButton, _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text(statusString), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }), _1: {ctor: '[]'} } }); return _elm_lang$core$Native_Utils.eq(_p45.schema.cryptoScope, _user$project$ConfigTypes$Global) ? A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$SectionLabel, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(_p45.schema.display), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: form, _1: {ctor: '[]'} } }) : (_elm_lang$core$List$isEmpty(cryptos) ? A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$SectionLabel, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(_p45.schema.display), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('No Crypto currencies have been set. You can set them under Machine settings.'), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }) : A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$SectionLabel, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(_p45.schema.display), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2(_user$project$Config$cryptosView, cryptos, model.crypto), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: form, _1: {ctor: '[]'} } } })); } }; var _user$project$Config$Load = function (a) { return {ctor: 'Load', _0: a}; }; var _user$project$Config$getForm = function (code) { return A2( _elm_lang$core$Platform_Cmd$map, _user$project$Config$Load, A2( _lukewestby$elm_http_builder$HttpBuilder$send, _krisajenkins$remotedata$RemoteData$fromResult, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectJson(_user$project$ConfigDecoder$configGroupDecoder), _lukewestby$elm_http_builder$HttpBuilder$get( A2(_elm_lang$core$Basics_ops['++'], '/api/config/', code))))); }; var _user$project$Config$load = F3( function (model, code, maybeCryptoCodeString) { var crypto = A2(_elm_lang$core$Maybe$map, _user$project$ConfigTypes$stringToCrypto, maybeCryptoCodeString); return { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.update( model, {crypto: crypto}), _1: _user$project$Config$getForm(code) }; }); var _user$project$Config$postForm = F2( function (configGroupCode, fieldInstances) { var maybeResults = A2(_user$project$ConfigEncoder$encodeResults, configGroupCode, fieldInstances); var _p46 = maybeResults; if (_p46.ctor === 'Nothing') { return _elm_lang$core$Platform_Cmd$none; } else { return A2( _elm_lang$core$Platform_Cmd$map, _user$project$Config$Load, A2( _lukewestby$elm_http_builder$HttpBuilder$send, _krisajenkins$remotedata$RemoteData$fromResult, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectJson(_user$project$ConfigDecoder$configGroupDecoder), A2( _lukewestby$elm_http_builder$HttpBuilder$withJsonBody, _p46._0, _lukewestby$elm_http_builder$HttpBuilder$post('/api/config'))))); } }); var _user$project$Config$postFormNoLoad = F2( function (configGroupCode, fieldInstances) { return A2( _elm_lang$core$Platform_Cmd$map, function (_p47) { return _user$project$Config$NoOp; }, A2(_user$project$Config$postForm, configGroupCode, fieldInstances)); }); var _user$project$Config$submitNoLoad = function (model) { var _p48 = model.webConfigGroup; if (_p48.ctor === 'Success') { return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, { ctor: '::', _0: A2(_user$project$Config$postFormNoLoad, _p48._0.schema.code, model.fieldCollection.fieldInstances), _1: {ctor: '[]'} }); } else { return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, {ctor: '[]'}); } }; var _user$project$Config$submit = function (model) { var _p49 = model.webConfigGroup; if (_p49.ctor === 'Success') { return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {status: _user$project$Config$Saving}), { ctor: '::', _0: A2(_user$project$Config$postForm, _p49._0.schema.code, model.fieldCollection.fieldInstances), _1: {ctor: '[]'} }); } else { return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, {ctor: '[]'}); } }; var _user$project$Config$update = F2( function (msg, model) { var _p50 = msg; switch (_p50.ctor) { case 'Load': var _p57 = _p50._0; var defaultCrypto = function () { var _p51 = _p57; if (_p51.ctor === 'Success') { var _p52 = _p51._0; return A2( _elm_lang$core$Maybe$map, function (_) { return _.crypto; }, _elm_lang$core$List$head( A3(_user$project$ConfigTypes$allCryptos, _p52.data.cryptoCurrencies, _p52.schema.cryptoScope, _p52.selectedCryptos))); } else { return _elm_lang$core$Maybe$Nothing; } }(); var crypto = function () { var _p53 = model.crypto; if (_p53.ctor === 'Nothing') { return defaultCrypto; } else { return _elm_lang$core$Maybe$Just(_p53._0); } }(); var fiat = function () { var _p54 = _p57; if (_p54.ctor === 'Success') { return _user$project$Config$pickFiat(_p54._0.values); } else { return _elm_lang$core$Maybe$Nothing; } }(); var fieldCollection = function () { var _p55 = _p57; if (_p55.ctor === 'Success') { return _user$project$Config$buildFieldCollection(_p55._0); } else { return _user$project$ConfigTypes$initFieldCollection; } }(); var status = _elm_lang$core$Native_Utils.eq(model.status, _user$project$Config$Saving) ? _user$project$Config$Saved : model.status; var cmd = _elm_lang$core$Native_Utils.eq(status, _user$project$Config$Saved) ? A2( _elm_lang$core$Task$perform, function (_p56) { return _user$project$Config$HideSaveIndication; }, _elm_lang$core$Process$sleep(2 * _elm_lang$core$Time$second)) : _elm_lang$core$Platform_Cmd$none; return { ctor: '_Tuple2', _0: _elm_lang$core$Native_Utils.update( model, {webConfigGroup: _p57, fieldCollection: fieldCollection, status: status, crypto: crypto, fiat: fiat}), _1: cmd }; case 'Submit': return _user$project$Config$submit(model); case 'Input': return A2( _elm_lang$core$Platform_Cmd_ops['!'], A3( _user$project$Config$updateInput, _p50._0, _elm_lang$core$Maybe$Just(_p50._1), model), {ctor: '[]'}); case 'CryptoSwitch': var _p59 = _p50._0; var _p58 = model.webConfigGroup; if (_p58.ctor === 'Success') { var cryptoCode = _user$project$ConfigTypes$cryptoToString(_p59); var path = A2( _elm_lang$core$Basics_ops['++'], '#config/', A2( _elm_lang$core$Basics_ops['++'], _p58._0.schema.code, A2(_elm_lang$core$Basics_ops['++'], '/', cryptoCode))); var command = _elm_lang$navigation$Navigation$newUrl(path); return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, { crypto: _elm_lang$core$Maybe$Just(_p59) }), { ctor: '::', _0: command, _1: {ctor: '[]'} }); } else { return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, {ctor: '[]'}); } case 'Focus': return A2( _elm_lang$core$Platform_Cmd_ops['!'], A3(_user$project$Config$updateFocus, _p50._0, true, model), {ctor: '[]'}); case 'Blur': return A2( _elm_lang$core$Platform_Cmd_ops['!'], A3(_user$project$Config$updateFocus, _p50._0, false, model), {ctor: '[]'}); case 'SelectizeMsg': return A2( _elm_lang$core$Platform_Cmd_ops['!'], A3(_user$project$Config$updateSelectize, _p50._0, _p50._1, model), {ctor: '[]'}); case 'BlurSelectize': var _p60 = _p50._0; return A2( _elm_lang$core$Platform_Cmd_ops['!'], A3( _user$project$Config$updateFocus, _p60, false, A3(_user$project$Config$updateSelectize, _p60, _p50._1, model)), {ctor: '[]'}); case 'FocusSelectize': var _p61 = _p50._0; return A2( _elm_lang$core$Platform_Cmd_ops['!'], A3( _user$project$Config$updateFocus, _p61, true, A3(_user$project$Config$updateSelectize, _p61, _p50._1, model)), {ctor: '[]'}); case 'Add': var _p62 = _p50._0; return A2( _elm_lang$core$Platform_Cmd_ops['!'], A3( _user$project$Config$updateInput, _p62, _elm_lang$core$Maybe$Just(_p50._1), A3(_user$project$Config$updateSelectize, _p62, _p50._2, model)), {ctor: '[]'}); case 'Remove': var _p63 = _p50._0; return A2( _elm_lang$core$Platform_Cmd_ops['!'], A3( _user$project$Config$updateInput, _p63, _elm_lang$core$Maybe$Nothing, A3(_user$project$Config$updateSelectize, _p63, _p50._1, model)), {ctor: '[]'}); case 'HideSaveIndication': return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {status: _user$project$Config$NotSaving}), {ctor: '[]'}); default: return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, {ctor: '[]'}); } }); var _user$project$Pair$qrCode = function (s) { var resultQRCode = A2(_pablohirafuji$elm_qrcode$QRCode$toSvgWithECLevel, s, _pablohirafuji$elm_qrcode$QRCode_ECLevel$L); var _p0 = resultQRCode; if (_p0.ctor === 'Ok') { return _p0._0; } else { return _elm_lang$html$Html$text( _elm_lang$core$Basics$toString(_p0._0)); } }; var _user$project$Pair$updateStatus = F2( function (isUp, model) { return _elm_lang$core$Native_Utils.update( model, {serverStatus: isUp}); }); var _user$project$Pair$init = function (serverStatus) { return {totem: _krisajenkins$remotedata$RemoteData$NotAsked, name: '', serverStatus: serverStatus}; }; var _user$project$Pair$Model = F3( function (a, b, c) { return {totem: a, name: b, serverStatus: c}; }); var _user$project$Pair$SubmitName = {ctor: 'SubmitName'}; var _user$project$Pair$InputName = function (a) { return {ctor: 'InputName', _0: a}; }; var _user$project$Pair$view = function (model) { if (model.serverStatus) { var _p1 = model.totem; switch (_p1.ctor) { case 'NotAsked': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$h1, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Pair a new Lamassu cryptomat'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$label, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Cryptomat name'), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$input, { ctor: '::', _0: _elm_lang$html$Html_Events$onInput(_user$project$Pair$InputName), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$placeholder('Coffee shop, 43 Elm St.'), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$size(50), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$style( { ctor: '::', _0: {ctor: '_Tuple2', _0: 'margin-left', _1: '1em'}, _1: {ctor: '[]'} }), _1: {ctor: '[]'} } } } }, {ctor: '[]'}), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$button, { ctor: '::', _0: _elm_lang$html$Html_Events$onClick(_user$project$Pair$SubmitName), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$disabled( _elm_lang$core$String$isEmpty(model.name)), _1: {ctor: '[]'} } }, { ctor: '::', _0: _elm_lang$html$Html$text('Pair'), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } } }), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }); case 'Loading': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('...'), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }); case 'Failure': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( _elm_lang$core$Basics$toString(_p1._0)), _1: {ctor: '[]'} }); default: return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$QrCode, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _user$project$Pair$qrCode(_p1._0), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$span, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Scan this QR Code to pair '), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$strong, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text(model.name), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }), _1: {ctor: '[]'} } }); } } else { return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Make sure lamassu-server is up before pairing'), _1: {ctor: '[]'} }); } }; var _user$project$Pair$Load = function (a) { return {ctor: 'Load', _0: a}; }; var _user$project$Pair$getTotem = function (name) { return A2( _elm_lang$core$Platform_Cmd$map, _user$project$Pair$Load, A2( _lukewestby$elm_http_builder$HttpBuilder$send, _krisajenkins$remotedata$RemoteData$fromResult, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectString, A2( _lukewestby$elm_http_builder$HttpBuilder$withQueryParams, { ctor: '::', _0: {ctor: '_Tuple2', _0: 'name', _1: name}, _1: {ctor: '[]'} }, _lukewestby$elm_http_builder$HttpBuilder$get('/api/totem'))))); }; var _user$project$Pair$update = F2( function (msg, model) { var _p2 = msg; switch (_p2.ctor) { case 'Load': var _p4 = _p2._0; var _p3 = A2( _elm_lang$core$Debug$log, 'TOTEM', A2(_krisajenkins$remotedata$RemoteData$withDefault, 'Network Error', _p4)); return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {totem: _p4}), {ctor: '[]'}); case 'InputName': return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {name: _p2._0}), {ctor: '[]'}); default: return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, { ctor: '::', _0: _user$project$Pair$getTotem(model.name), _1: {ctor: '[]'} }); } }); var _user$project$MaintenanceMachines_Types$SubModel = F2( function (a, b) { return {status: a, machines: b}; }); var _user$project$MaintenanceMachines_Types$Machine = F7( function (a, b, c, d, e, f, g) { return {deviceId: a, name: b, cashbox: c, cassette1: d, cassette2: e, paired: f, cashOut: g}; }); var _user$project$MaintenanceMachines_Types$RebootMachine = function (a) { return {ctor: 'RebootMachine', _0: a}; }; var _user$project$MaintenanceMachines_Types$UnpairMachine = function (a) { return {ctor: 'UnpairMachine', _0: a}; }; var _user$project$MaintenanceMachines_Types$ResetCashOutBills = function (a) { return {ctor: 'ResetCashOutBills', _0: a}; }; var _user$project$MaintenanceMachines_Types$HideSaveIndication = {ctor: 'HideSaveIndication'}; var _user$project$MaintenanceMachines_Types$Submit = function (a) { return {ctor: 'Submit', _0: a}; }; var _user$project$MaintenanceMachines_Types$InputCassette = F3( function (a, b, c) { return {ctor: 'InputCassette', _0: a, _1: b, _2: c}; }); var _user$project$MaintenanceMachines_Types$Load = function (a) { return {ctor: 'Load', _0: a}; }; var _user$project$MaintenanceMachines_Types$Action = {ctor: 'Action'}; var _user$project$MaintenanceMachines_Types$Bottom = {ctor: 'Bottom'}; var _user$project$MaintenanceMachines_Types$Top = {ctor: 'Top'}; var _user$project$MaintenanceFunding_Types$CryptoDisplay = F2( function (a, b) { return {cryptoCode: a, display: b}; }); var _user$project$MaintenanceFunding_Types$SubModel = F9( function (a, b, c, d, e, f, g, h, i) { return {cryptoCode: a, cryptoDisplays: b, fundingAddress: c, fundingAddressUrl: d, confirmedBalance: e, pending: f, fiatConfirmedBalance: g, fiatPending: h, fiatCode: i}; }); var _user$project$MaintenanceFunding_Types$CryptoSwitch = function (a) { return {ctor: 'CryptoSwitch', _0: a}; }; var _user$project$MaintenanceFunding_Types$Load = function (a) { return {ctor: 'Load', _0: a}; }; var _user$project$Transaction_Types$SubModel = F2( function (a, b) { return {status: a, tx: b}; }); var _user$project$Transaction_Types$HideSaveIndication = {ctor: 'HideSaveIndication'}; var _user$project$Transaction_Types$Cancel = function (a) { return {ctor: 'Cancel', _0: a}; }; var _user$project$Transaction_Types$Load = function (a) { return {ctor: 'Load', _0: a}; }; var _user$project$Transaction_Decoder$confirmedDecoder = A2( _elm_lang$core$Json_Decode$map, function (_p0) { return A2( _elm_lang$core$Maybe$withDefault, false, A2( _elm_lang$core$Maybe$map, _elm_lang$core$Basics$always(true), _p0)); }, _elm_lang$core$Json_Decode$nullable(_elm_lang$core$Json_Decode$string)); var _user$project$Transaction_Decoder$intString = A2( _elm_lang$core$Json_Decode$andThen, function (_p1) { return _elm_community$json_extra$Json_Decode_Extra$fromResult( _elm_lang$core$String$toInt(_p1)); }, _elm_lang$core$Json_Decode$string); var _user$project$Transaction_Decoder$floatString = A2( _elm_lang$core$Json_Decode$andThen, function (_p2) { return _elm_community$json_extra$Json_Decode_Extra$fromResult( _elm_lang$core$String$toFloat(_p2)); }, _elm_lang$core$Json_Decode$string); var _user$project$Transaction_Decoder$cashInTxDecoder = A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'created', _elm_community$json_extra$Json_Decode_Extra$date, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'expired', _elm_lang$core$Json_Decode$bool, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'sendConfirmed', _elm_lang$core$Json_Decode$bool, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'send', _elm_lang$core$Json_Decode$bool, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'operatorCompleted', _elm_lang$core$Json_Decode$bool, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'error', _elm_lang$core$Json_Decode$nullable(_elm_lang$core$Json_Decode$string), A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'phone', _elm_lang$core$Json_Decode$nullable(_elm_lang$core$Json_Decode$string), A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'txHash', _elm_lang$core$Json_Decode$nullable(_elm_lang$core$Json_Decode$string), A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'fiatCode', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'fiat', _user$project$Transaction_Decoder$floatString, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'cryptoCode', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'cryptoAtoms', _user$project$Transaction_Decoder$intString, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'toAddress', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'machineName', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'id', _elm_lang$core$Json_Decode$string, _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$decode(_user$project$Common_TransactionTypes$CashInTxRec)))))))))))))))); var _user$project$Transaction_Decoder$cashOutTxDecoder = A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'confirmedAt', _user$project$Transaction_Decoder$confirmedDecoder, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'created', _elm_community$json_extra$Json_Decode_Extra$date, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'error', _elm_lang$core$Json_Decode$nullable(_elm_lang$core$Json_Decode$string), A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'phone', _elm_lang$core$Json_Decode$nullable(_elm_lang$core$Json_Decode$string), A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'redeem', _elm_lang$core$Json_Decode$bool, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'notified', _elm_lang$core$Json_Decode$bool, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'dispense', _elm_lang$core$Json_Decode$bool, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'status', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'fiatCode', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'fiat', _user$project$Transaction_Decoder$floatString, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'cryptoCode', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'cryptoAtoms', _user$project$Transaction_Decoder$intString, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'toAddress', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'machineName', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'id', _elm_lang$core$Json_Decode$string, _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$decode(_user$project$Common_TransactionTypes$CashOutTxRec)))))))))))))))); var _user$project$Transaction_Decoder$txDecode = function (txClass) { var _p3 = txClass; switch (_p3) { case 'cashIn': return A2(_elm_lang$core$Json_Decode$map, _user$project$Common_TransactionTypes$CashInTx, _user$project$Transaction_Decoder$cashInTxDecoder); case 'cashOut': return A2(_elm_lang$core$Json_Decode$map, _user$project$Common_TransactionTypes$CashOutTx, _user$project$Transaction_Decoder$cashOutTxDecoder); default: return _elm_lang$core$Json_Decode$fail( A2(_elm_lang$core$Basics_ops['++'], 'Unknown tx class: ', txClass)); } }; var _user$project$Transaction_Decoder$txDecoder = A2( _elm_lang$core$Json_Decode$andThen, _user$project$Transaction_Decoder$txDecode, A2(_elm_lang$core$Json_Decode$field, 'txClass', _elm_lang$core$Json_Decode$string)); var _user$project$Transaction_Decoder$txsDecoder = A2( _elm_lang$core$Json_Decode$field, 'transactions', _elm_lang$core$Json_Decode$list(_user$project$Transaction_Decoder$txDecoder)); var _user$project$Transactions$txLink = function (txId) { return A2( _elm_lang$html$Html$a, { ctor: '::', _0: _elm_lang$html$Html_Attributes$href( A2(_elm_lang$core$Basics_ops['++'], '/#transaction/', txId)), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text( A2(_elm_lang$core$String$left, 8, txId)), _1: {ctor: '[]'} }); }; var _user$project$Transactions$multiplier = function (code) { var _p0 = code; switch (_p0) { case 'BTC': return 1.0e8; case 'ETH': return 1.0e18; case 'ZEC': return 1.0e8; case 'DASH': return 1.0e8; case 'LTC': return 1.0e8; default: return 1.0; } }; var _user$project$Transactions$rowView = function (tx) { var _p1 = tx; if (_p1.ctor === 'CashInTx') { var _p2 = _p1._0; var status = _p2.operatorCompleted ? 'Cancelled' : (_p2.sendConfirmed ? 'Sent' : (_p2.expired ? 'Expired' : 'Pending')); var rowClasses = _p2.operatorCompleted ? { ctor: '::', _0: _user$project$Css_Classes$CashIn, _1: { ctor: '::', _0: _user$project$Css_Classes$TxCancelled, _1: {ctor: '[]'} } } : { ctor: '::', _0: _user$project$Css_Classes$CashIn, _1: {ctor: '[]'} }; return A2( _elm_lang$html$Html$tr, { ctor: '::', _0: _user$project$Css_Admin$class(rowClasses), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _user$project$Transactions$txLink(_p2.id), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text(status), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$NumberColumn, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text( A2(_justinmimbs$elm_date_extra$Date_Extra$toFormattedString, 'yyyy-MM-dd HH:mm', _p2.created)), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text(_p2.machineName), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$NumberColumn, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text( A2( _ggb$numeral_elm$Numeral$format, '0,0.000000', _elm_lang$core$Basics$toFloat(_p2.cryptoAtoms) / _user$project$Transactions$multiplier(_p2.cryptoCode))), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text(_p2.cryptoCode), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$NumberColumn, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text( A2(_ggb$numeral_elm$Numeral$format, '0,0.00', _p2.fiat)), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$NumberColumn, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text( A2(_elm_lang$core$Maybe$withDefault, '', _p2.phone)), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$TxAddress, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(_p2.toAddress), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } } } } } } } } }); } else { var _p3 = _p1._0; return A2( _elm_lang$html$Html$tr, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$CashOut, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _user$project$Transactions$txLink(_p3.id), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Cash out'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$NumberColumn, _1: { ctor: '::', _0: _user$project$Css_Classes$DateColumn, _1: {ctor: '[]'} } }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text( A2(_justinmimbs$elm_date_extra$Date_Extra$toFormattedString, 'yyyy-MM-dd HH:mm', _p3.created)), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text(_p3.machineName), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$NumberColumn, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text( A2( _ggb$numeral_elm$Numeral$format, '0,0.000000', _elm_lang$core$Basics$toFloat(_p3.cryptoAtoms) / _user$project$Transactions$multiplier(_p3.cryptoCode))), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text(_p3.cryptoCode), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$NumberColumn, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text( A2(_ggb$numeral_elm$Numeral$format, '0,0.00', _p3.fiat)), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$NumberColumn, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text( A2(_elm_lang$core$Maybe$withDefault, '', _p3.phone)), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$TxAddress, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(_p3.toAddress), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } } } } } } } } }); } }; var _user$project$Transactions$tableView = function (txs) { return _elm_lang$core$List$isEmpty(txs) ? A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('No activity yet.'), _1: {ctor: '[]'} }) : A2( _elm_lang$html$Html$table, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$TxTable, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$thead, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$tr, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$TxId, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('Id'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Status'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$TxDate, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('Time'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$TxMachine, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('Machine'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _elm_lang$html$Html_Attributes$colspan(2), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('Crypto'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$TxAmount, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('Fiat'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$TxPhone, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('Phone'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$TxAddress, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('To address'), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } } } } } } } }), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$tbody, {ctor: '[]'}, A2(_elm_lang$core$List$map, _user$project$Transactions$rowView, txs)), _1: {ctor: '[]'} } }); }; var _user$project$Transactions$view = function (model) { var _p4 = model; switch (_p4.ctor) { case 'NotAsked': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, {ctor: '[]'}); case 'Loading': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Loading...'), _1: {ctor: '[]'} }); case 'Failure': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( _elm_lang$core$Basics$toString(_p4._0)), _1: {ctor: '[]'} }); default: return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _user$project$Transactions$tableView(_p4._0), _1: {ctor: '[]'} }); } }; var _user$project$Transactions$update = F2( function (msg, model) { var _p5 = msg; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _p5._0, {ctor: '[]'}); }); var _user$project$Transactions$init = _krisajenkins$remotedata$RemoteData$NotAsked; var _user$project$Transactions$Load = function (a) { return {ctor: 'Load', _0: a}; }; var _user$project$Transactions$getTransactions = A2( _elm_lang$core$Platform_Cmd$map, _user$project$Transactions$Load, A2( _lukewestby$elm_http_builder$HttpBuilder$send, _krisajenkins$remotedata$RemoteData$fromResult, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectJson(_user$project$Transaction_Decoder$txsDecoder), _lukewestby$elm_http_builder$HttpBuilder$get('/api/transactions')))); var _user$project$Transactions$loadCmd = _user$project$Transactions$getTransactions; var _user$project$Transactions$load = {ctor: '_Tuple2', _0: _krisajenkins$remotedata$RemoteData$Loading, _1: _user$project$Transactions$loadCmd}; var _user$project$Customers_Types$Load = function (a) { return {ctor: 'Load', _0: a}; }; var _user$project$Customer_Types$UnBlockCustomer = function (a) { return {ctor: 'UnBlockCustomer', _0: a}; }; var _user$project$Customer_Types$BlockCustomer = function (a) { return {ctor: 'BlockCustomer', _0: a}; }; var _user$project$Customer_Types$Load = function (a) { return {ctor: 'Load', _0: a}; }; var _user$project$CoreTypes$MaintenanceCat = {ctor: 'MaintenanceCat'}; var _user$project$CoreTypes$GlobalSettingsCat = {ctor: 'GlobalSettingsCat'}; var _user$project$CoreTypes$MachineSettingsCat = {ctor: 'MachineSettingsCat'}; var _user$project$CoreTypes$AccountCat = {ctor: 'AccountCat'}; var _user$project$CoreTypes$NotFoundRoute = {ctor: 'NotFoundRoute'}; var _user$project$CoreTypes$MaintenanceFundingRoute = function (a) { return {ctor: 'MaintenanceFundingRoute', _0: a}; }; var _user$project$CoreTypes$MaintenanceMachinesRoute = {ctor: 'MaintenanceMachinesRoute'}; var _user$project$CoreTypes$CustomerRoute = function (a) { return {ctor: 'CustomerRoute', _0: a}; }; var _user$project$CoreTypes$CustomersRoute = {ctor: 'CustomersRoute'}; var _user$project$CoreTypes$TransactionRoute = function (a) { return {ctor: 'TransactionRoute', _0: a}; }; var _user$project$CoreTypes$TransactionsRoute = {ctor: 'TransactionsRoute'}; var _user$project$CoreTypes$ConfigRoute = F2( function (a, b) { return {ctor: 'ConfigRoute', _0: a, _1: b}; }); var _user$project$CoreTypes$PairRoute = {ctor: 'PairRoute'}; var _user$project$CoreTypes$AccountRoute = function (a) { return {ctor: 'AccountRoute', _0: a}; }; var _user$project$CoreTypes$WebSocketMsg = function (a) { return {ctor: 'WebSocketMsg', _0: a}; }; var _user$project$CoreTypes$Interval = {ctor: 'Interval'}; var _user$project$CoreTypes$UrlChange = function (a) { return {ctor: 'UrlChange', _0: a}; }; var _user$project$CoreTypes$NewUrl = function (a) { return {ctor: 'NewUrl', _0: a}; }; var _user$project$CoreTypes$LoadStatus = function (a) { return {ctor: 'LoadStatus', _0: a}; }; var _user$project$CoreTypes$LoadAccounts = function (a) { return {ctor: 'LoadAccounts', _0: a}; }; var _user$project$CoreTypes$CustomerMsg = function (a) { return {ctor: 'CustomerMsg', _0: a}; }; var _user$project$CoreTypes$CustomersMsg = function (a) { return {ctor: 'CustomersMsg', _0: a}; }; var _user$project$CoreTypes$TransactionMsg = function (a) { return {ctor: 'TransactionMsg', _0: a}; }; var _user$project$CoreTypes$TransactionsMsg = function (a) { return {ctor: 'TransactionsMsg', _0: a}; }; var _user$project$CoreTypes$MaintenanceFundingMsg = function (a) { return {ctor: 'MaintenanceFundingMsg', _0: a}; }; var _user$project$CoreTypes$MaintenanceMachinesMsg = function (a) { return {ctor: 'MaintenanceMachinesMsg', _0: a}; }; var _user$project$CoreTypes$ConfigMsg = function (a) { return {ctor: 'ConfigMsg', _0: a}; }; var _user$project$CoreTypes$PairMsg = function (a) { return {ctor: 'PairMsg', _0: a}; }; var _user$project$CoreTypes$AccountMsg = function (a) { return {ctor: 'AccountMsg', _0: a}; }; var _user$project$Customer_Rest$getCustomer = function (id) { return A2( _elm_lang$core$Platform_Cmd$map, _user$project$Customer_Types$Load, A2( _lukewestby$elm_http_builder$HttpBuilder$send, _krisajenkins$remotedata$RemoteData$fromResult, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectJson(_user$project$Common_Customer_Decoder$customerDecoder), _lukewestby$elm_http_builder$HttpBuilder$get( A2(_elm_lang$core$Basics_ops['++'], '/api/customer/', id))))); }; var _user$project$Customer_Rest$updateCustomer = F2( function (id, action) { return A2( _elm_lang$core$Platform_Cmd$map, _user$project$Customer_Types$Load, A2( _lukewestby$elm_http_builder$HttpBuilder$send, _krisajenkins$remotedata$RemoteData$fromResult, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectJson(_user$project$Common_Customer_Decoder$customerDecoder), _lukewestby$elm_http_builder$HttpBuilder$patch( A2( _elm_lang$core$Basics_ops['++'], '/api/customer/', A2( _elm_lang$core$Basics_ops['++'], id, A2(_elm_lang$core$Basics_ops['++'], '?authorizedOverride=', action))))))); }); var _user$project$Customer_State$update = F2( function (msg, model) { var _p0 = msg; switch (_p0.ctor) { case 'Load': return A2( _elm_lang$core$Platform_Cmd_ops['!'], _p0._0, {ctor: '[]'}); case 'UnBlockCustomer': return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, { ctor: '::', _0: A2(_user$project$Customer_Rest$updateCustomer, _p0._0, 'verified'), _1: {ctor: '[]'} }); default: return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, { ctor: '::', _0: A2(_user$project$Customer_Rest$updateCustomer, _p0._0, 'blocked'), _1: {ctor: '[]'} }); } }); var _user$project$Customer_State$load = function (id) { return { ctor: '_Tuple2', _0: _krisajenkins$remotedata$RemoteData$Loading, _1: _user$project$Customer_Rest$getCustomer(id) }; }; var _user$project$Customer_State$init = _krisajenkins$remotedata$RemoteData$NotAsked; var _user$project$Customer_View$formatString = function (string) { var _p0 = string; if (_p0.ctor === 'Just') { return _p0._0; } else { return ''; } }; var _user$project$Customer_View$formatDate = function (date) { var _p1 = date; if (_p1.ctor === 'Just') { return A2(_justinmimbs$elm_date_extra$Date_Extra$toFormattedString, 'yyyy-MM-dd HH:mm', _p1._0); } else { return ''; } }; var _user$project$Customer_View$customerActions = F2( function (id, authorizedOverride) { var _p2 = authorizedOverride; if (_p2.ctor === 'Just') { return _elm_lang$core$Native_Utils.eq(_p2._0, 'blocked') ? A2( _elm_lang$html$Html$button, { ctor: '::', _0: _elm_lang$html$Html_Events$onClick( _user$project$Customer_Types$UnBlockCustomer(id)), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('Unblock'), _1: {ctor: '[]'} }) : A2( _elm_lang$html$Html$button, { ctor: '::', _0: _elm_lang$html$Html_Events$onClick( _user$project$Customer_Types$BlockCustomer(id)), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('Block'), _1: {ctor: '[]'} }); } else { return A2( _elm_lang$html$Html$button, { ctor: '::', _0: _elm_lang$html$Html_Events$onClick( _user$project$Customer_Types$UnBlockCustomer(id)), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('Unblock'), _1: {ctor: '[]'} }); } }); var _user$project$Customer_View$customerView = function (customer) { return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$h1, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Customer Details'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$table, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$TxTable, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$tbody, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$tr, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Customer ID'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text(customer.id), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$tr, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Name'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( _user$project$Customer_View$formatString(customer.name)), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$tr, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Phone'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( _user$project$Customer_View$formatString(customer.phone)), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$tr, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Completed phone at'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( _user$project$Customer_View$formatDate(customer.phoneAt)), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$tr, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Created'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( A2(_justinmimbs$elm_date_extra$Date_Extra$toFormattedString, 'yyyy-MM-dd HH:mm', customer.created)), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$tr, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Block Customer'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: A2(_user$project$Customer_View$customerActions, customer.id, customer.authorizedOverride), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }), _1: {ctor: '[]'} } } } } } }), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }); }; var _user$project$Customer_View$view = function (model) { var _p3 = model; switch (_p3.ctor) { case 'NotAsked': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, {ctor: '[]'}); case 'Loading': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Loading...'), _1: {ctor: '[]'} }); case 'Failure': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( _elm_lang$core$Basics$toString(_p3._0)), _1: {ctor: '[]'} }); default: return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _user$project$Customer_View$customerView(_p3._0), _1: {ctor: '[]'} }); } }; var _user$project$Customers_Rest$getCustomers = A2( _elm_lang$core$Platform_Cmd$map, _user$project$Customers_Types$Load, A2( _lukewestby$elm_http_builder$HttpBuilder$send, _krisajenkins$remotedata$RemoteData$fromResult, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectJson(_user$project$Common_Customer_Decoder$customersDecoder), _lukewestby$elm_http_builder$HttpBuilder$get('/api/customers')))); var _user$project$Customers_State$update = F2( function (msg, model) { var _p0 = msg; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _p0._0, {ctor: '[]'}); }); var _user$project$Customers_State$loadCmd = _user$project$Customers_Rest$getCustomers; var _user$project$Customers_State$load = {ctor: '_Tuple2', _0: _krisajenkins$remotedata$RemoteData$Loading, _1: _user$project$Customers_State$loadCmd}; var _user$project$Customers_State$init = _krisajenkins$remotedata$RemoteData$NotAsked; var _user$project$Customers_View$formatString = function (string) { var _p0 = string; if (_p0.ctor === 'Just') { return _p0._0; } else { return ''; } }; var _user$project$Customers_View$customerLink = function (id) { return A2( _elm_lang$html$Html$a, { ctor: '::', _0: _elm_lang$html$Html_Attributes$href( A2(_elm_lang$core$Basics_ops['++'], '/#customer/', id)), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text( A2(_elm_lang$core$String$left, 8, id)), _1: {ctor: '[]'} }); }; var _user$project$Customers_View$rowView = function (customer) { return A2( _elm_lang$html$Html$tr, { ctor: '::', _0: _user$project$Css_Admin$class( {ctor: '[]'}), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _user$project$Customers_View$customerLink(customer.id), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( A2(_justinmimbs$elm_date_extra$Date_Extra$toFormattedString, 'yyyy-MM-dd HH:mm', customer.created)), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( _user$project$Customers_View$formatString(customer.phone)), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( _user$project$Customers_View$formatString(customer.name)), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( _user$project$Customers_View$formatString(customer.status)), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } } } } }); }; var _user$project$Customers_View$tableView = function (customers) { return _elm_lang$core$List$isEmpty(customers) ? A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('No customers yet.'), _1: {ctor: '[]'} }) : A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$h1, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Customers'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$table, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$TxTable, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$thead, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$tr, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Id'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Created'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Phone'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Name'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Status'), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } } } } }), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$tbody, {ctor: '[]'}, A2(_elm_lang$core$List$map, _user$project$Customers_View$rowView, customers)), _1: {ctor: '[]'} } }), _1: {ctor: '[]'} } }); }; var _user$project$Customers_View$view = function (model) { var _p1 = model; switch (_p1.ctor) { case 'NotAsked': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, {ctor: '[]'}); case 'Loading': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Loading...'), _1: {ctor: '[]'} }); case 'Failure': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( _elm_lang$core$Basics$toString(_p1._0)), _1: {ctor: '[]'} }); default: return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _user$project$Customers_View$tableView(_p1._0), _1: {ctor: '[]'} }); } }; var _user$project$NavBar$determineConfigCategory = function (configCode) { return A2( _elm_lang$core$List$member, configCode, { ctor: '::', _0: 'definition', _1: { ctor: '::', _0: 'setup', _1: { ctor: '::', _0: 'cashOut', _1: { ctor: '::', _0: 'commissions', _1: { ctor: '::', _0: 'balanceAlerts', _1: {ctor: '[]'} } } } } }) ? _elm_lang$core$Maybe$Just(_user$project$CoreTypes$MachineSettingsCat) : (A2( _elm_lang$core$List$member, configCode, { ctor: '::', _0: 'walletSettings', _1: { ctor: '::', _0: 'notifications', _1: { ctor: '::', _0: 'compliance', _1: {ctor: '[]'} } } }) ? _elm_lang$core$Maybe$Just(_user$project$CoreTypes$GlobalSettingsCat) : _elm_lang$core$Maybe$Nothing); }; var _user$project$NavBar$allClear = F2( function (invalidGroups, cat) { return !A2( _elm_lang$core$List$any, function (groupCode) { return _elm_lang$core$Native_Utils.eq( _user$project$NavBar$determineConfigCategory(groupCode), _elm_lang$core$Maybe$Just(cat)); }, invalidGroups); }); var _user$project$NavBar$determineCategory = function (route) { var _p0 = route; switch (_p0.ctor) { case 'AccountRoute': return _elm_lang$core$Maybe$Just(_user$project$CoreTypes$AccountCat); case 'ConfigRoute': return _user$project$NavBar$determineConfigCategory(_p0._0); case 'MaintenanceMachinesRoute': return _elm_lang$core$Maybe$Just(_user$project$CoreTypes$MaintenanceCat); case 'MaintenanceFundingRoute': return _elm_lang$core$Maybe$Just(_user$project$CoreTypes$MaintenanceCat); case 'PairRoute': return _elm_lang$core$Maybe$Nothing; case 'TransactionsRoute': return _elm_lang$core$Maybe$Nothing; case 'TransactionRoute': return _elm_lang$core$Maybe$Nothing; case 'CustomersRoute': return _elm_lang$core$Maybe$Nothing; case 'CustomerRoute': return _elm_lang$core$Maybe$Nothing; default: return _elm_lang$core$Maybe$Nothing; } }; var _user$project$NavBar$maybeUrl = F2( function (root, maybeStrings) { return A2( _elm_lang$core$String$join, '/', A2( _elm_lang$core$List$append, { ctor: '::', _0: root, _1: {ctor: '[]'} }, A2(_elm_lang$core$List$filterMap, _elm_lang$core$Basics$identity, maybeStrings))); }); var _user$project$NavBar$routeToUrl = function (route) { var _p1 = route; switch (_p1.ctor) { case 'PairRoute': return '/#pair'; case 'AccountRoute': return A2(_elm_lang$core$Basics_ops['++'], '/#account/', _p1._0); case 'ConfigRoute': return A2( _user$project$NavBar$maybeUrl, A2(_elm_lang$core$Basics_ops['++'], '/#config/', _p1._0), { ctor: '::', _0: _p1._1, _1: {ctor: '[]'} }); case 'MaintenanceMachinesRoute': return '/#machines/'; case 'MaintenanceFundingRoute': return A2( _user$project$NavBar$maybeUrl, '/#funding', { ctor: '::', _0: _p1._0, _1: {ctor: '[]'} }); case 'TransactionsRoute': return '/#transactions/'; case 'TransactionRoute': return A2(_elm_lang$core$Basics_ops['++'], '/#transaction/', _p1._0); case 'CustomersRoute': return '/#customers/'; case 'CustomerRoute': return A2(_elm_lang$core$Basics_ops['++'], '/#customer/', _p1._0); default: return _elm_lang$core$Native_Utils.crashCase( 'NavBar', { start: {line: 29, column: 5}, end: {line: 58, column: 45} }, _p1)('Need unknown route'); } }; var _user$project$NavBar$_p3 = _rtfeldman$elm_css_helpers$Html_CssHelpers$withNamespace('lamassuAdmin'); var _user$project$NavBar$id = _user$project$NavBar$_p3.id; var _user$project$NavBar$class = _user$project$NavBar$_p3.$class; var _user$project$NavBar$classList = _user$project$NavBar$_p3.classList; var _user$project$NavBar$linkClasses = F3( function (linkRoute, route, isValid) { var active = function () { var _p4 = route; switch (_p4.ctor) { case 'ConfigRoute': return _elm_lang$core$Native_Utils.eq( linkRoute, A2(_user$project$CoreTypes$ConfigRoute, _p4._0, _elm_lang$core$Maybe$Nothing)); case 'MaintenanceFundingRoute': return _elm_lang$core$Native_Utils.eq( linkRoute, _user$project$CoreTypes$MaintenanceFundingRoute(_elm_lang$core$Maybe$Nothing)); default: return _elm_lang$core$Native_Utils.eq(linkRoute, route); } }(); var validityClass = isValid ? {ctor: '[]'} : { ctor: '::', _0: _user$project$Css_Classes$InvalidGroup, _1: {ctor: '[]'} }; return active ? _user$project$NavBar$class( A2( _elm_lang$core$Basics_ops['++'], { ctor: '::', _0: _user$project$Css_Classes$NavBarRoute, _1: { ctor: '::', _0: _user$project$Css_Classes$Active, _1: {ctor: '[]'} } }, validityClass)) : _user$project$NavBar$class( A2( _elm_lang$core$Basics_ops['++'], { ctor: '::', _0: _user$project$Css_Classes$NavBarRoute, _1: {ctor: '[]'} }, validityClass)); }); var _user$project$NavBar$linkView = F4( function (maybeCategory, currentRoute, maybeLinkedCategory, link) { var _p5 = link; var desc = _p5._0; var linkRoute = _p5._1; var isValid = _p5._2; return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Events$onClick( _user$project$CoreTypes$NewUrl( _user$project$NavBar$routeToUrl(linkRoute))), _1: { ctor: '::', _0: A3(_user$project$NavBar$linkClasses, linkRoute, currentRoute, isValid), _1: {ctor: '[]'} } }, { ctor: '::', _0: _elm_lang$html$Html$text(desc), _1: {ctor: '[]'} }); }); var _user$project$NavBar$activeCategory = F3( function (maybeCurrentCategory, linkedCategory, isValid) { var validityClass = isValid ? {ctor: '[]'} : { ctor: '::', _0: _user$project$Css_Classes$InvalidGroup, _1: {ctor: '[]'} }; var _p6 = maybeCurrentCategory; if (_p6.ctor === 'Nothing') { return _user$project$NavBar$class( A2( _elm_lang$core$Basics_ops['++'], { ctor: '::', _0: _user$project$Css_Classes$NavBarCategory, _1: {ctor: '[]'} }, validityClass)); } else { return _elm_lang$core$Native_Utils.eq(_p6._0, linkedCategory) ? _user$project$NavBar$class( A2( _elm_lang$core$Basics_ops['++'], { ctor: '::', _0: _user$project$Css_Classes$NavBarCategory, _1: { ctor: '::', _0: _user$project$Css_Classes$Active, _1: {ctor: '[]'} } }, validityClass)) : _user$project$NavBar$class( A2( _elm_lang$core$Basics_ops['++'], { ctor: '::', _0: _user$project$Css_Classes$NavBarCategory, _1: {ctor: '[]'} }, validityClass)); } }); var _user$project$NavBar$categoryView = F2( function (currentCategory, link) { var _p7 = link; var desc = _p7._0; var category = _p7._1; var linkRoute = _p7._2; var isValid = _p7._3; return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Events$onClick( _user$project$CoreTypes$NewUrl( _user$project$NavBar$routeToUrl(linkRoute))), _1: { ctor: '::', _0: A3(_user$project$NavBar$activeCategory, currentCategory, category, isValid), _1: {ctor: '[]'} } }, { ctor: '::', _0: _elm_lang$html$Html$text(desc), _1: {ctor: '[]'} }); }); var _user$project$NavBar$linksView = F4( function (maybeCurrentCategory, currentRoute, _p8, links) { var _p9 = _p8; var _p13 = _p9._2; var _p12 = _p9._3; var _p11 = _p9._0; var _p10 = _p9._1; return _elm_lang$core$Native_Utils.eq( maybeCurrentCategory, _elm_lang$core$Maybe$Just(_p10)) ? A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$NavBar$class( { ctor: '::', _0: _user$project$Css_Classes$NavBarCategoryContainer, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _user$project$NavBar$categoryView, maybeCurrentCategory, {ctor: '_Tuple4', _0: _p11, _1: _p10, _2: _p13, _3: _p12}), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, A2( _elm_lang$core$List$map, A3( _user$project$NavBar$linkView, maybeCurrentCategory, currentRoute, _elm_lang$core$Maybe$Just(_p10)), links)), _1: {ctor: '[]'} } }) : A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$NavBar$class( { ctor: '::', _0: _user$project$Css_Classes$NavBarCategoryContainer, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _user$project$NavBar$categoryView, maybeCurrentCategory, {ctor: '_Tuple4', _0: _p11, _1: _p10, _2: _p13, _3: _p12}), _1: {ctor: '[]'} }); }); var _user$project$NavBar$view = F2( function (route, invalidGroups) { var allClearGlobal = A2(_user$project$NavBar$allClear, invalidGroups, _user$project$CoreTypes$GlobalSettingsCat); var allClearMachine = A2(_user$project$NavBar$allClear, invalidGroups, _user$project$CoreTypes$MachineSettingsCat); var isValid = function (group) { return !A2(_elm_lang$core$List$member, group, invalidGroups); }; var configLink = F2( function (code, display) { return { ctor: '_Tuple3', _0: display, _1: A2(_user$project$CoreTypes$ConfigRoute, code, _elm_lang$core$Maybe$Nothing), _2: isValid(code) }; }); var maybeCategory = _user$project$NavBar$determineCategory(route); var l = A3(_user$project$NavBar$linkView, maybeCategory, route, _elm_lang$core$Maybe$Nothing); var ll = A2(_user$project$NavBar$linksView, maybeCategory, route); return A2( _elm_lang$html$Html$nav, { ctor: '::', _0: _user$project$NavBar$class( { ctor: '::', _0: _user$project$Css_Classes$NavBar, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: l( {ctor: '_Tuple3', _0: 'Transactions', _1: _user$project$CoreTypes$TransactionsRoute, _2: true}), _1: { ctor: '::', _0: A2( ll, {ctor: '_Tuple4', _0: 'Maintenance', _1: _user$project$CoreTypes$MaintenanceCat, _2: _user$project$CoreTypes$MaintenanceMachinesRoute, _3: true}, { ctor: '::', _0: {ctor: '_Tuple3', _0: 'Machines', _1: _user$project$CoreTypes$MaintenanceMachinesRoute, _2: true}, _1: { ctor: '::', _0: {ctor: '_Tuple3', _0: 'Customers', _1: _user$project$CoreTypes$CustomersRoute, _2: true}, _1: { ctor: '::', _0: { ctor: '_Tuple3', _0: 'Funding', _1: _user$project$CoreTypes$MaintenanceFundingRoute(_elm_lang$core$Maybe$Nothing), _2: true }, _1: {ctor: '[]'} } } }), _1: { ctor: '::', _0: A2( ll, { ctor: '_Tuple4', _0: 'Machine Settings', _1: _user$project$CoreTypes$MachineSettingsCat, _2: A2(_user$project$CoreTypes$ConfigRoute, 'definition', _elm_lang$core$Maybe$Nothing), _3: allClearMachine }, { ctor: '::', _0: A2(configLink, 'definition', 'Definition'), _1: { ctor: '::', _0: A2(configLink, 'setup', 'Setup'), _1: { ctor: '::', _0: A2(configLink, 'cashOut', 'Cash Out'), _1: { ctor: '::', _0: A2(configLink, 'commissions', 'Commissions'), _1: { ctor: '::', _0: A2(configLink, 'balanceAlerts', 'Balance Alerts'), _1: {ctor: '[]'} } } } } }), _1: { ctor: '::', _0: A2( ll, { ctor: '_Tuple4', _0: 'Global Settings', _1: _user$project$CoreTypes$GlobalSettingsCat, _2: A2(_user$project$CoreTypes$ConfigRoute, 'walletSettings ', _elm_lang$core$Maybe$Nothing), _3: allClearGlobal }, { ctor: '::', _0: A2(configLink, 'walletSettings', 'Wallet Settings'), _1: { ctor: '::', _0: A2(configLink, 'notifications', 'Notifications'), _1: { ctor: '::', _0: A2(configLink, 'compliance', 'Compliance'), _1: {ctor: '[]'} } } }), _1: { ctor: '::', _0: A2( ll, { ctor: '_Tuple4', _0: 'Third Party Services', _1: _user$project$CoreTypes$AccountCat, _2: _user$project$CoreTypes$AccountRoute('bitgo'), _3: true }, { ctor: '::', _0: { ctor: '_Tuple3', _0: 'BitGo', _1: _user$project$CoreTypes$AccountRoute('bitgo'), _2: true }, _1: { ctor: '::', _0: { ctor: '_Tuple3', _0: 'Bitstamp', _1: _user$project$CoreTypes$AccountRoute('bitstamp'), _2: true }, _1: { ctor: '::', _0: { ctor: '_Tuple3', _0: 'Blockcypher', _1: _user$project$CoreTypes$AccountRoute('blockcypher'), _2: true }, _1: { ctor: '::', _0: { ctor: '_Tuple3', _0: 'Kraken', _1: _user$project$CoreTypes$AccountRoute('kraken'), _2: true }, _1: { ctor: '::', _0: { ctor: '_Tuple3', _0: 'Mailjet', _1: _user$project$CoreTypes$AccountRoute('mailjet'), _2: true }, _1: { ctor: '::', _0: { ctor: '_Tuple3', _0: 'Twilio', _1: _user$project$CoreTypes$AccountRoute('twilio'), _2: true }, _1: {ctor: '[]'} } } } } } }), _1: { ctor: '::', _0: l( {ctor: '_Tuple3', _0: '+ Add Machine', _1: _user$project$CoreTypes$PairRoute, _2: true}), _1: {ctor: '[]'} } } } } } }); }); var _user$project$StatusDecoder$rateDecoder = A4( _elm_lang$core$Json_Decode$map3, _user$project$StatusTypes$Rate, A2(_elm_lang$core$Json_Decode$field, 'crypto', _elm_lang$core$Json_Decode$string), A2(_elm_lang$core$Json_Decode$field, 'bid', _elm_lang$core$Json_Decode$float), A2(_elm_lang$core$Json_Decode$field, 'ask', _elm_lang$core$Json_Decode$float)); var _user$project$StatusDecoder$serverDecoder = A6( _elm_lang$core$Json_Decode$map5, _user$project$StatusTypes$ServerRec, A2(_elm_lang$core$Json_Decode$field, 'up', _elm_lang$core$Json_Decode$bool), A2( _elm_lang$core$Json_Decode$field, 'lastPing', _elm_lang$core$Json_Decode$nullable(_elm_lang$core$Json_Decode$string)), A2( _elm_lang$core$Json_Decode$field, 'rates', _elm_lang$core$Json_Decode$list(_user$project$StatusDecoder$rateDecoder)), A2(_elm_lang$core$Json_Decode$field, 'machineStatus', _elm_lang$core$Json_Decode$string), A2(_elm_lang$core$Json_Decode$field, 'wasConfigured', _elm_lang$core$Json_Decode$bool)); var _user$project$StatusDecoder$statusDecoder = A3( _elm_lang$core$Json_Decode$map2, _user$project$StatusTypes$StatusRec, A2(_elm_lang$core$Json_Decode$field, 'server', _user$project$StatusDecoder$serverDecoder), A2( _elm_lang$core$Json_Decode$field, 'invalidConfigGroups', _elm_lang$core$Json_Decode$list(_elm_lang$core$Json_Decode$string))); var _user$project$MaintenanceMachines_Rest$encodeAction = function (action) { var _p0 = action; switch (_p0.ctor) { case 'ResetCashOutBills': var _p1 = _p0._0; return _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'action', _1: _elm_lang$core$Json_Encode$string('resetCashOutBills') }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'deviceId', _1: _elm_lang$core$Json_Encode$string(_p1.deviceId) }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'cassettes', _1: _elm_lang$core$Json_Encode$list( { ctor: '::', _0: _elm_lang$core$Json_Encode$int(_p1.cassette1), _1: { ctor: '::', _0: _elm_lang$core$Json_Encode$int(_p1.cassette2), _1: {ctor: '[]'} } }) }, _1: {ctor: '[]'} } } }); case 'UnpairMachine': return _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'action', _1: _elm_lang$core$Json_Encode$string('unpair') }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'deviceId', _1: _elm_lang$core$Json_Encode$string(_p0._0.deviceId) }, _1: {ctor: '[]'} } }); default: return _elm_lang$core$Json_Encode$object( { ctor: '::', _0: { ctor: '_Tuple2', _0: 'action', _1: _elm_lang$core$Json_Encode$string('reboot') }, _1: { ctor: '::', _0: { ctor: '_Tuple2', _0: 'deviceId', _1: _elm_lang$core$Json_Encode$string(_p0._0.deviceId) }, _1: {ctor: '[]'} } }); } }; var _user$project$MaintenanceMachines_Rest$machineDecoder = A8( _elm_lang$core$Json_Decode$map7, _user$project$MaintenanceMachines_Types$Machine, A2(_elm_lang$core$Json_Decode$field, 'deviceId', _elm_lang$core$Json_Decode$string), A2(_elm_lang$core$Json_Decode$field, 'name', _elm_lang$core$Json_Decode$string), A2(_elm_lang$core$Json_Decode$field, 'cashbox', _elm_lang$core$Json_Decode$int), A2(_elm_lang$core$Json_Decode$field, 'cassette1', _elm_lang$core$Json_Decode$int), A2(_elm_lang$core$Json_Decode$field, 'cassette2', _elm_lang$core$Json_Decode$int), A2(_elm_lang$core$Json_Decode$field, 'paired', _elm_lang$core$Json_Decode$bool), A2(_elm_lang$core$Json_Decode$field, 'cashOut', _elm_lang$core$Json_Decode$bool)); var _user$project$MaintenanceMachines_Rest$machinesDecoder = A2( _elm_lang$core$Json_Decode$map, _elm_lang$core$Basics$identity, A2( _elm_lang$core$Json_Decode$field, 'machines', _elm_lang$core$Json_Decode$list(_user$project$MaintenanceMachines_Rest$machineDecoder))); var _user$project$MaintenanceMachines_Rest$toModel = F2( function (status, machines) { return {status: status, machines: machines}; }); var _user$project$MaintenanceMachines_Rest$getForm = A2( _elm_lang$core$Platform_Cmd$map, _user$project$MaintenanceMachines_Types$Load, A2( _lukewestby$elm_http_builder$HttpBuilder$send, function (_p2) { return _krisajenkins$remotedata$RemoteData$fromResult( A2( _elm_lang$core$Result$map, _user$project$MaintenanceMachines_Rest$toModel(_user$project$BasicTypes$NotSaving), _p2)); }, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectJson(_user$project$MaintenanceMachines_Rest$machinesDecoder), _lukewestby$elm_http_builder$HttpBuilder$get('/api/machines')))); var _user$project$MaintenanceMachines_Rest$postForm = function (action) { return A2( _elm_lang$core$Platform_Cmd$map, _user$project$MaintenanceMachines_Types$Load, A2( _lukewestby$elm_http_builder$HttpBuilder$send, function (_p3) { return _krisajenkins$remotedata$RemoteData$fromResult( A2( _elm_lang$core$Result$map, _user$project$MaintenanceMachines_Rest$toModel(_user$project$BasicTypes$Saved), _p3)); }, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectJson(_user$project$MaintenanceMachines_Rest$machinesDecoder), A2( _lukewestby$elm_http_builder$HttpBuilder$withJsonBody, _user$project$MaintenanceMachines_Rest$encodeAction(action), _lukewestby$elm_http_builder$HttpBuilder$post('/api/machines'))))); }; var _user$project$MaintenanceMachines_State$saveUpdate = function (model) { var cmd = _elm_lang$core$Native_Utils.eq(model.status, _user$project$BasicTypes$Saved) ? A2( _elm_lang$core$Task$perform, function (_p0) { return _user$project$MaintenanceMachines_Types$HideSaveIndication; }, _elm_lang$core$Process$sleep(2 * _elm_lang$core$Time$second)) : _elm_lang$core$Platform_Cmd$none; return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, { ctor: '::', _0: cmd, _1: {ctor: '[]'} }); }; var _user$project$MaintenanceMachines_State$updateAction = F2( function (action, subModel) { return A2( _elm_lang$core$Platform_Cmd_ops['!'], subModel, { ctor: '::', _0: _user$project$MaintenanceMachines_Rest$postForm(action), _1: {ctor: '[]'} }); }); var _user$project$MaintenanceMachines_State$updateMachine = F2( function (machine, oldMachine) { return _elm_lang$core$Native_Utils.eq(machine.deviceId, oldMachine.deviceId) ? machine : oldMachine; }); var _user$project$MaintenanceMachines_State$updateCassette = F4( function (machine, position, str, subModel) { var countResult = _elm_lang$core$String$toInt(str); var updatedMachine = function () { var _p1 = countResult; if (_p1.ctor === 'Ok') { var _p3 = _p1._0; var _p2 = position; if (_p2.ctor === 'Top') { return _elm_lang$core$Native_Utils.update( machine, {cassette1: _p3}); } else { return _elm_lang$core$Native_Utils.update( machine, {cassette2: _p3}); } } else { return machine; } }(); var machines = A2( _elm_lang$core$List$map, _user$project$MaintenanceMachines_State$updateMachine(updatedMachine), subModel.machines); return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( subModel, {machines: machines}), {ctor: '[]'}); }); var _user$project$MaintenanceMachines_State$update = F2( function (msg, model) { var _p4 = msg; switch (_p4.ctor) { case 'Action': return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, {ctor: '[]'}); case 'Load': return A2(_krisajenkins$remotedata$RemoteData$update, _user$project$MaintenanceMachines_State$saveUpdate, _p4._0); case 'InputCassette': return A2( _krisajenkins$remotedata$RemoteData$update, A3(_user$project$MaintenanceMachines_State$updateCassette, _p4._0, _p4._1, _p4._2), model); case 'Submit': return A2( _krisajenkins$remotedata$RemoteData$update, _user$project$MaintenanceMachines_State$updateAction(_p4._0), model); default: return A2( _krisajenkins$remotedata$RemoteData$update, function (subModel) { return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( subModel, {status: _user$project$BasicTypes$NotSaving}), {ctor: '[]'}); }, model); } }); var _user$project$MaintenanceMachines_State$load = {ctor: '_Tuple2', _0: _krisajenkins$remotedata$RemoteData$Loading, _1: _user$project$MaintenanceMachines_Rest$getForm}; var _user$project$MaintenanceMachines_State$init = _krisajenkins$remotedata$RemoteData$NotAsked; var _user$project$MaintenanceMachines_View$inputCassetteView = F3( function (machine, position, count) { return A2( _elm_lang$html$Html$input, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$BasicInput, _1: {ctor: '[]'} }), _1: { ctor: '::', _0: _elm_lang$html$Html_Events$onInput( A2(_user$project$MaintenanceMachines_Types$InputCassette, machine, position)), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$defaultValue( _elm_lang$core$Basics$toString(count)), _1: {ctor: '[]'} } } }, {ctor: '[]'}); }); var _user$project$MaintenanceMachines_View$rowView = function (machine) { var cassetteCounts = machine.cashOut ? { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$classList( { ctor: '::', _0: {ctor: '_Tuple2', _0: _user$project$Css_Classes$Component, _1: true}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: _user$project$Css_Classes$FocusedComponent, _1: false}, _1: {ctor: '[]'} } }), _1: {ctor: '[]'} }, { ctor: '::', _0: A3(_user$project$MaintenanceMachines_View$inputCassetteView, machine, _user$project$MaintenanceMachines_Types$Top, machine.cassette1), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$classList( { ctor: '::', _0: {ctor: '_Tuple2', _0: _user$project$Css_Classes$Component, _1: true}, _1: { ctor: '::', _0: {ctor: '_Tuple2', _0: _user$project$Css_Classes$FocusedComponent, _1: false}, _1: {ctor: '[]'} } }), _1: {ctor: '[]'} }, { ctor: '::', _0: A3(_user$project$MaintenanceMachines_View$inputCassetteView, machine, _user$project$MaintenanceMachines_Types$Bottom, machine.cassette2), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } } : { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$CellDisabled, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, {ctor: '[]'}), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$CellDisabled, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, {ctor: '[]'}), _1: {ctor: '[]'} } }; var resetBills = machine.cashOut ? A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$button, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$TableButton, _1: {ctor: '[]'} }), _1: { ctor: '::', _0: _elm_lang$html$Html_Events$onClick( _user$project$MaintenanceMachines_Types$Submit( _user$project$MaintenanceMachines_Types$ResetCashOutBills(machine))), _1: {ctor: '[]'} } }, { ctor: '::', _0: _elm_lang$html$Html$text('Update Counts'), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }) : A2( _elm_lang$html$Html$td, {ctor: '[]'}, {ctor: '[]'}); var actions = { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$button, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$TableButton, _1: {ctor: '[]'} }), _1: { ctor: '::', _0: _elm_lang$html$Html_Events$onClick( _user$project$MaintenanceMachines_Types$Submit( _user$project$MaintenanceMachines_Types$UnpairMachine(machine))), _1: {ctor: '[]'} } }, { ctor: '::', _0: _elm_lang$html$Html$text('Unpair'), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$button, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$TableButton, _1: {ctor: '[]'} }), _1: { ctor: '::', _0: _elm_lang$html$Html_Events$onClick( _user$project$MaintenanceMachines_Types$Submit( _user$project$MaintenanceMachines_Types$RebootMachine(machine))), _1: {ctor: '[]'} } }, { ctor: '::', _0: _elm_lang$html$Html$text('Reboot'), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: resetBills, _1: {ctor: '[]'} } } }; return A2( _elm_lang$html$Html$tr, {ctor: '[]'}, A2( _elm_lang$core$Basics_ops['++'], { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text(machine.name), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, A2(_elm_lang$core$Basics_ops['++'], cassetteCounts, actions))); }; var _user$project$MaintenanceMachines_View$tableView = function (machines) { return _elm_lang$core$List$isEmpty(machines) ? A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$EmptyTable, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('No paired machines.'), _1: {ctor: '[]'} }) : A2( _elm_lang$html$Html$table, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$ConfigTable, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$thead, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$tr, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, {ctor: '[]'}), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Top Bill Count'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$td, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Bottom Bill Count'), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } } }), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$tbody, {ctor: '[]'}, A2(_elm_lang$core$List$map, _user$project$MaintenanceMachines_View$rowView, machines)), _1: {ctor: '[]'} } }); }; var _user$project$MaintenanceMachines_View$view = function (model) { var _p0 = model; switch (_p0.ctor) { case 'NotAsked': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, {ctor: '[]'}); case 'Loading': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Loading...'), _1: {ctor: '[]'} }); case 'Failure': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( _elm_lang$core$Basics$toString(_p0._0)), _1: {ctor: '[]'} }); default: var _p2 = _p0._0; var statusString = function () { var _p1 = _p2.status; if (_p1.ctor === 'Saved') { return 'Saved'; } else { return ''; } }(); return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$SectionLabel, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$ConfigContainer, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _user$project$MaintenanceMachines_View$tableView(_p2.machines), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$Saving, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(statusString), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }); } }; var _user$project$MaintenanceFunding_Rest$cryptoDisplayDecoder = A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'display', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'cryptoCode', _elm_lang$core$Json_Decode$string, _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$decode(_user$project$MaintenanceFunding_Types$CryptoDisplay))); var _user$project$MaintenanceFunding_Rest$subModelDecoder = A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'fiatCode', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'fiatPending', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'fiatConfirmedBalance', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'pending', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'confirmedBalance', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'fundingAddressUrl', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'fundingAddress', _elm_lang$core$Json_Decode$string, A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'cryptoDisplays', _elm_lang$core$Json_Decode$list(_user$project$MaintenanceFunding_Rest$cryptoDisplayDecoder), A3( _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$required, 'cryptoCode', _elm_lang$core$Json_Decode$string, _NoRedInk$elm_decode_pipeline$Json_Decode_Pipeline$decode(_user$project$MaintenanceFunding_Types$SubModel)))))))))); var _user$project$MaintenanceFunding_Rest$getForm = function (maybeCrypto) { return A2( _elm_lang$core$Platform_Cmd$map, _user$project$MaintenanceFunding_Types$Load, A2( _lukewestby$elm_http_builder$HttpBuilder$send, _krisajenkins$remotedata$RemoteData$fromResult, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectJson(_user$project$MaintenanceFunding_Rest$subModelDecoder), _lukewestby$elm_http_builder$HttpBuilder$get( A2( _elm_lang$core$Basics_ops['++'], '/api/funding/', A2(_elm_lang$core$Maybe$withDefault, '', maybeCrypto)))))); }; var _user$project$MaintenanceFunding_State$switchCrypto = F2( function (crypto, model) { return { ctor: '_Tuple2', _0: _krisajenkins$remotedata$RemoteData$Loading, _1: _user$project$MaintenanceFunding_Rest$getForm( _elm_lang$core$Maybe$Just(crypto)) }; }); var _user$project$MaintenanceFunding_State$fundingUpdate = function (model) { return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, {ctor: '[]'}); }; var _user$project$MaintenanceFunding_State$update = F2( function (msg, model) { var _p0 = msg; if (_p0.ctor === 'Load') { return A2(_krisajenkins$remotedata$RemoteData$update, _user$project$MaintenanceFunding_State$fundingUpdate, _p0._0); } else { return A2(_user$project$MaintenanceFunding_State$switchCrypto, _p0._0, model); } }); var _user$project$MaintenanceFunding_State$load = function (maybeCrypto) { return { ctor: '_Tuple2', _0: _krisajenkins$remotedata$RemoteData$Loading, _1: _user$project$MaintenanceFunding_Rest$getForm(maybeCrypto) }; }; var _user$project$MaintenanceFunding_State$init = _krisajenkins$remotedata$RemoteData$NotAsked; var _user$project$MaintenanceFunding_View$cryptoView = F2( function (maybeActiveCrypto, cryptoDisplay) { var url = A2(_elm_lang$core$Basics_ops['++'], '/#funding/', cryptoDisplay.cryptoCode); var activeClass = function () { var _p0 = maybeActiveCrypto; if (_p0.ctor === 'Nothing') { return _user$project$Css_Admin$class( {ctor: '[]'}); } else { return _elm_lang$core$Native_Utils.eq(_p0._0, cryptoDisplay.cryptoCode) ? _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$Active, _1: {ctor: '[]'} }) : _user$project$Css_Admin$class( {ctor: '[]'}); } }(); return A2( _elm_lang$html$Html$a, { ctor: '::', _0: activeClass, _1: { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$CryptoTab, _1: {ctor: '[]'} }), _1: { ctor: '::', _0: _elm_lang$html$Html_Attributes$href(url), _1: {ctor: '[]'} } } }, { ctor: '::', _0: _elm_lang$html$Html$text(cryptoDisplay.display), _1: {ctor: '[]'} }); }); var _user$project$MaintenanceFunding_View$cryptosView = F2( function (cryptos, activeCrypto) { return A2( _elm_lang$html$Html$nav, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$CryptoTabs, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, A2( _elm_lang$core$List$map, _user$project$MaintenanceFunding_View$cryptoView(activeCrypto), cryptos)); }); var _user$project$MaintenanceFunding_View$qrCode = function (s) { var resultQRCode = A2(_pablohirafuji$elm_qrcode$QRCode$toSvgWithECLevel, s, _pablohirafuji$elm_qrcode$QRCode_ECLevel$L); var _p1 = resultQRCode; if (_p1.ctor === 'Ok') { return _p1._0; } else { return _elm_lang$html$Html$text( _elm_lang$core$Basics$toString(_p1._0)); } }; var _user$project$MaintenanceFunding_View$fundingView = function (subModel) { return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _user$project$MaintenanceFunding_View$cryptosView, subModel.cryptoDisplays, _elm_lang$core$Maybe$Just(subModel.cryptoCode)), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$section, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$Container, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( A2( _elm_lang$core$Basics_ops['++'], 'Deposit ', A2(_elm_lang$core$Basics_ops['++'], subModel.cryptoCode, ' to this address.'))), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _user$project$MaintenanceFunding_View$qrCode(subModel.fundingAddressUrl), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$CryptoAddress, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text(subModel.fundingAddress), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$section, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$BalanceSection, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$h2, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Balance'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( A2( _elm_lang$core$Basics_ops['++'], subModel.confirmedBalance, A2( _elm_lang$core$Basics_ops['++'], ' ', A2( _elm_lang$core$Basics_ops['++'], subModel.cryptoCode, A2( _elm_lang$core$Basics_ops['++'], ' (', A2(_elm_lang$core$Basics_ops['++'], subModel.pending, ' pending)')))))), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( A2( _elm_lang$core$Basics_ops['++'], subModel.fiatConfirmedBalance, A2( _elm_lang$core$Basics_ops['++'], ' ', A2( _elm_lang$core$Basics_ops['++'], subModel.fiatCode, A2( _elm_lang$core$Basics_ops['++'], ' (', A2(_elm_lang$core$Basics_ops['++'], subModel.fiatPending, ' pending)')))))), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } } }), _1: {ctor: '[]'} } } } }), _1: {ctor: '[]'} } }); }; var _user$project$MaintenanceFunding_View$view = function (model) { var _p2 = model; switch (_p2.ctor) { case 'NotAsked': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, {ctor: '[]'}); case 'Loading': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Loading...'), _1: {ctor: '[]'} }); case 'Failure': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( _elm_lang$core$Basics$toString(_p2._0)), _1: {ctor: '[]'} }); default: return _user$project$MaintenanceFunding_View$fundingView(_p2._0); } }; var _user$project$Transaction_Rest$toModel = F2( function (status, tx) { return {status: status, tx: tx}; }); var _user$project$Transaction_Rest$getForm = function (txId) { return A2( _elm_lang$core$Platform_Cmd$map, _user$project$Transaction_Types$Load, A2( _lukewestby$elm_http_builder$HttpBuilder$send, function (_p0) { return _krisajenkins$remotedata$RemoteData$fromResult( A2( _elm_lang$core$Result$map, _user$project$Transaction_Rest$toModel(_user$project$BasicTypes$NotSaving), _p0)); }, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectJson(_user$project$Transaction_Decoder$txDecoder), _lukewestby$elm_http_builder$HttpBuilder$get( A2(_elm_lang$core$Basics_ops['++'], '/api/transaction/', txId))))); }; var _user$project$Transaction_Rest$cancel = function (txId) { return A2( _elm_lang$core$Platform_Cmd$map, _user$project$Transaction_Types$Load, A2( _lukewestby$elm_http_builder$HttpBuilder$send, function (_p1) { return _krisajenkins$remotedata$RemoteData$fromResult( A2( _elm_lang$core$Result$map, _user$project$Transaction_Rest$toModel(_user$project$BasicTypes$NotSaving), _p1)); }, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectJson(_user$project$Transaction_Decoder$txDecoder), _lukewestby$elm_http_builder$HttpBuilder$patch( A2( _elm_lang$core$Basics_ops['++'], '/api/transaction/', A2(_elm_lang$core$Basics_ops['++'], txId, '?cancel=true')))))); }; var _user$project$Transaction_State$txUpdate = function (model) { return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, {ctor: '[]'}); }; var _user$project$Transaction_State$update = F2( function (msg, model) { var _p0 = msg; switch (_p0.ctor) { case 'Load': return A2(_krisajenkins$remotedata$RemoteData$update, _user$project$Transaction_State$txUpdate, _p0._0); case 'Cancel': return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, { ctor: '::', _0: _user$project$Transaction_Rest$cancel(_p0._0), _1: {ctor: '[]'} }); default: return A2( _krisajenkins$remotedata$RemoteData$update, function (subModel) { return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( subModel, {status: _user$project$BasicTypes$NotSaving}), {ctor: '[]'}); }, model); } }); var _user$project$Transaction_State$load = function (txId) { return { ctor: '_Tuple2', _0: _krisajenkins$remotedata$RemoteData$Loading, _1: _user$project$Transaction_Rest$getForm(txId) }; }; var _user$project$Transaction_State$init = _krisajenkins$remotedata$RemoteData$NotAsked; var _user$project$Transaction_View$cashOutTxView = function (tx) { return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text(tx.id), _1: {ctor: '[]'} }); }; var _user$project$Transaction_View$cashInTxView = function (tx) { var cancelButtonDiv = (tx.operatorCompleted || tx.sendConfirmed) ? A2( _elm_lang$html$Html$div, {ctor: '[]'}, {ctor: '[]'}) : A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$button, { ctor: '::', _0: _elm_lang$html$Html_Events$onClick( _user$project$Transaction_Types$Cancel(tx.id)), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('Cancel transaction'), _1: {ctor: '[]'} }), _1: {ctor: '[]'} }); var cancelStatus = tx.operatorCompleted ? 'Cancelled' : (tx.sendConfirmed ? 'Sent' : (tx.expired ? 'Expired' : 'Pending')); return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text(tx.id), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('This is a cash-in transaction'), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( A2( _elm_lang$core$Basics_ops['++'], 'Fiat: ', A2(_ggb$numeral_elm$Numeral$format, '0,0.00', tx.fiat))), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( A2(_elm_lang$core$Basics_ops['++'], 'Status: ', cancelStatus)), _1: {ctor: '[]'} }), _1: { ctor: '::', _0: cancelButtonDiv, _1: {ctor: '[]'} } } } } }); }; var _user$project$Transaction_View$txView = function (subModel) { var _p0 = subModel.tx; if (_p0.ctor === 'CashInTx') { return _user$project$Transaction_View$cashInTxView(_p0._0); } else { return _user$project$Transaction_View$cashOutTxView(_p0._0); } }; var _user$project$Transaction_View$view = function (model) { var _p1 = model; switch (_p1.ctor) { case 'NotAsked': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, {ctor: '[]'}); case 'Loading': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('Loading...'), _1: {ctor: '[]'} }); case 'Failure': return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text( _elm_lang$core$Basics$toString(_p1._0)), _1: {ctor: '[]'} }); default: return _user$project$Transaction_View$txView(_p1._0); } }; var _user$project$Main$subscriptions = function (model) { return _elm_lang$core$Platform_Sub$batch( { ctor: '::', _0: A2( _elm_lang$core$Time$every, 5 * _elm_lang$core$Time$second, function (_p0) { return _user$project$CoreTypes$Interval; }), _1: {ctor: '[]'} }); }; var _user$project$Main$statusBar = function (maybeStatus) { var _p1 = maybeStatus; if (_p1.ctor === 'Nothing') { return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$StatusBar, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, { ctor: '::', _0: _elm_lang$html$Html$text('Loading ...'), _1: {ctor: '[]'} }); } else { var _p3 = _p1._0; var serverStatus = function () { if (!_p3.server.wasConfigured) { return { ctor: '::', _0: A2( _evancz$elm_markdown$Markdown$toHtml, {ctor: '[]'}, '**lamassu-server** not configured yet'), _1: {ctor: '[]'} }; } else { if (_p3.server.up) { return { ctor: '::', _0: A2( _evancz$elm_markdown$Markdown$toHtml, {ctor: '[]'}, A2(_elm_lang$core$Basics_ops['++'], '**lamassu-server** is up **/** ', _p3.server.machineStatus)), _1: {ctor: '[]'} }; } else { var _p2 = _p3.server.lastPing; if (_p2.ctor === 'Nothing') { return { ctor: '::', _0: A2( _evancz$elm_markdown$Markdown$toHtml, {ctor: '[]'}, '**lamassu-server** not up yet'), _1: {ctor: '[]'} }; } else { return { ctor: '::', _0: A2( _evancz$elm_markdown$Markdown$toHtml, {ctor: '[]'}, A2(_elm_lang$core$Basics_ops['++'], '**lamassu-server** has been down for ', _p2._0)), _1: {ctor: '[]'} }; } } } }(); return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _user$project$Css_Admin$class( { ctor: '::', _0: _user$project$Css_Classes$StatusBar, _1: {ctor: '[]'} }), _1: {ctor: '[]'} }, serverStatus); } }; var _user$project$Main$content = F2( function (model, route) { var _p4 = route; switch (_p4.ctor) { case 'PairRoute': return A2( _elm_lang$html$Html$map, _user$project$CoreTypes$PairMsg, _user$project$Pair$view(model.pair)); case 'AccountRoute': return A2( _elm_lang$html$Html$map, _user$project$CoreTypes$AccountMsg, _user$project$Account$view(model.account)); case 'ConfigRoute': return A2( _elm_lang$html$Html$map, _user$project$CoreTypes$ConfigMsg, _user$project$Config$view(model.config)); case 'MaintenanceMachinesRoute': return A2( _elm_lang$html$Html$map, _user$project$CoreTypes$MaintenanceMachinesMsg, _user$project$MaintenanceMachines_View$view(model.maintenanceMachines)); case 'MaintenanceFundingRoute': return A2( _elm_lang$html$Html$map, _user$project$CoreTypes$MaintenanceFundingMsg, _user$project$MaintenanceFunding_View$view(model.maintenanceFunding)); case 'TransactionsRoute': return A2( _elm_lang$html$Html$map, _user$project$CoreTypes$TransactionsMsg, _user$project$Transactions$view(model.transactions)); case 'TransactionRoute': return A2( _elm_lang$html$Html$map, _user$project$CoreTypes$TransactionMsg, _user$project$Transaction_View$view(model.transaction)); case 'CustomersRoute': return A2( _elm_lang$html$Html$map, _user$project$CoreTypes$CustomersMsg, _user$project$Customers_View$view(model.customers)); case 'CustomerRoute': return A2( _elm_lang$html$Html$map, _user$project$CoreTypes$CustomerMsg, _user$project$Customer_View$view(model.customer)); default: return A2( _elm_lang$html$Html$div, {ctor: '[]'}, { ctor: '::', _0: _elm_lang$html$Html$text('No such route'), _1: {ctor: '[]'} }); } }); var _user$project$Main$getStatus = A2( _elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$LoadStatus, A2( _lukewestby$elm_http_builder$HttpBuilder$send, _krisajenkins$remotedata$RemoteData$fromResult, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectJson(_user$project$StatusDecoder$statusDecoder), _lukewestby$elm_http_builder$HttpBuilder$get('/api/status/')))); var _user$project$Main$getAccounts = A2( _elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$LoadAccounts, A2( _elm_lang$core$Platform_Cmd$map, _krisajenkins$remotedata$RemoteData$withDefault( {ctor: '[]'}), A2( _lukewestby$elm_http_builder$HttpBuilder$send, _krisajenkins$remotedata$RemoteData$fromResult, A2( _lukewestby$elm_http_builder$HttpBuilder$withExpect, _elm_lang$http$Http$expectJson(_user$project$AccountsDecoder$accountsDecoder), _lukewestby$elm_http_builder$HttpBuilder$get('/api/accounts'))))); var _user$project$Main$parseRoute = _evancz$url_parser$UrlParser$oneOf( { ctor: '::', _0: A2( _evancz$url_parser$UrlParser$map, _user$project$CoreTypes$AccountRoute, A2( _evancz$url_parser$UrlParser_ops[''], _evancz$url_parser$UrlParser$s('account'), _evancz$url_parser$UrlParser$string)), _1: { ctor: '::', _0: A2( _evancz$url_parser$UrlParser$map, _user$project$CoreTypes$PairRoute, _evancz$url_parser$UrlParser$s('pair')), _1: { ctor: '::', _0: A2( _evancz$url_parser$UrlParser$map, F2( function (config, crypto) { return A2( _user$project$CoreTypes$ConfigRoute, config, _elm_lang$core$Maybe$Just(crypto)); }), A2( _evancz$url_parser$UrlParser_ops[''], _evancz$url_parser$UrlParser$s('config'), A2(_evancz$url_parser$UrlParser_ops[''], _evancz$url_parser$UrlParser$string, _evancz$url_parser$UrlParser$string))), _1: { ctor: '::', _0: A2( _evancz$url_parser$UrlParser$map, function (config) { return A2(_user$project$CoreTypes$ConfigRoute, config, _elm_lang$core$Maybe$Nothing); }, A2( _evancz$url_parser$UrlParser_ops[''], _evancz$url_parser$UrlParser$s('config'), _evancz$url_parser$UrlParser$string)), _1: { ctor: '::', _0: A2( _evancz$url_parser$UrlParser$map, _user$project$CoreTypes$MaintenanceMachinesRoute, _evancz$url_parser$UrlParser$s('machines')), _1: { ctor: '::', _0: A2( _evancz$url_parser$UrlParser$map, function (crypto) { return _user$project$CoreTypes$MaintenanceFundingRoute( _elm_lang$core$Maybe$Just(crypto)); }, A2( _evancz$url_parser$UrlParser_ops[''], _evancz$url_parser$UrlParser$s('funding'), _evancz$url_parser$UrlParser$string)), _1: { ctor: '::', _0: A2( _evancz$url_parser$UrlParser$map, _user$project$CoreTypes$MaintenanceFundingRoute(_elm_lang$core$Maybe$Nothing), _evancz$url_parser$UrlParser$s('funding')), _1: { ctor: '::', _0: A2( _evancz$url_parser$UrlParser$map, _user$project$CoreTypes$TransactionsRoute, _evancz$url_parser$UrlParser$s('transactions')), _1: { ctor: '::', _0: A2( _evancz$url_parser$UrlParser$map, _user$project$CoreTypes$TransactionRoute, A2( _evancz$url_parser$UrlParser_ops[''], _evancz$url_parser$UrlParser$s('transaction'), _evancz$url_parser$UrlParser$string)), _1: { ctor: '::', _0: A2( _evancz$url_parser$UrlParser$map, _user$project$CoreTypes$CustomersRoute, _evancz$url_parser$UrlParser$s('customers')), _1: { ctor: '::', _0: A2( _evancz$url_parser$UrlParser$map, _user$project$CoreTypes$CustomerRoute, A2( _evancz$url_parser$UrlParser_ops[''], _evancz$url_parser$UrlParser$s('customer'), _evancz$url_parser$UrlParser$string)), _1: { ctor: '::', _0: A2( _evancz$url_parser$UrlParser$map, A2(_user$project$CoreTypes$ConfigRoute, 'setup', _elm_lang$core$Maybe$Nothing), _evancz$url_parser$UrlParser$top), _1: {ctor: '[]'} } } } } } } } } } } } }); var _user$project$Main$view = function (model) { var invalidConfigGroups = A2( _elm_lang$core$Maybe$withDefault, {ctor: '[]'}, A2( _elm_lang$core$Maybe$map, function (_) { return _.invalidConfigGroups; }, model.status)); var route = A2( _elm_lang$core$Maybe$withDefault, _user$project$CoreTypes$NotFoundRoute, A2(_evancz$url_parser$UrlParser$parseHash, _user$project$Main$parseRoute, model.location)); return A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Attributes$class('lamassuAdminLayout'), _1: {ctor: '[]'} }, { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Attributes$class('lamassuAdminMain'), _1: {ctor: '[]'} }, { ctor: '::', _0: A2(_user$project$NavBar$view, route, invalidConfigGroups), _1: { ctor: '::', _0: A2( _elm_lang$html$Html$div, { ctor: '::', _0: _elm_lang$html$Html_Attributes$class('lamassuAdminContent'), _1: {ctor: '[]'} }, { ctor: '::', _0: A2(_user$project$Main$content, model, route), _1: {ctor: '[]'} }), _1: {ctor: '[]'} } }), _1: { ctor: '::', _0: _user$project$Main$statusBar(model.status), _1: {ctor: '[]'} } }); }; var _user$project$Main$urlUpdate = F2( function (location, model) { var route = A2( _elm_lang$core$Maybe$withDefault, _user$project$CoreTypes$NotFoundRoute, A2(_evancz$url_parser$UrlParser$parseHash, _user$project$Main$parseRoute, location)); var _p5 = route; switch (_p5.ctor) { case 'PairRoute': var _p6 = model.status; if (_p6.ctor === 'Just') { return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, { location: location, pair: _user$project$Pair$init(_p6._0.server.up) }), {ctor: '[]'}); } else { return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, { location: location, pair: _user$project$Pair$init(false) }), {ctor: '[]'}); } case 'AccountRoute': var _p7 = _user$project$Account$load(_p5._0); var accountModel = _p7._0; var cmd = _p7._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {location: location, account: accountModel}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$AccountMsg, cmd), _1: {ctor: '[]'} }); case 'ConfigRoute': var _p8 = A3(_user$project$Config$load, model.config, _p5._0, _p5._1); var configModel = _p8._0; var cmd = _p8._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {location: location, config: configModel}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$ConfigMsg, cmd), _1: {ctor: '[]'} }); case 'MaintenanceMachinesRoute': var _p9 = _user$project$MaintenanceMachines_State$load; var maintenanceMachines = _p9._0; var cmd = _p9._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {location: location, maintenanceMachines: maintenanceMachines}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$MaintenanceMachinesMsg, cmd), _1: {ctor: '[]'} }); case 'MaintenanceFundingRoute': var _p10 = _user$project$MaintenanceFunding_State$load(_p5._0); var maintenanceFunding = _p10._0; var cmd = _p10._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {location: location, maintenanceFunding: maintenanceFunding}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$MaintenanceFundingMsg, cmd), _1: {ctor: '[]'} }); case 'TransactionsRoute': var _p11 = _user$project$Transactions$load; var transactionsModel = _p11._0; var cmd = _p11._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {location: location, transactions: transactionsModel}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$TransactionsMsg, cmd), _1: {ctor: '[]'} }); case 'CustomersRoute': var _p12 = _user$project$Customers_State$load; var customersModel = _p12._0; var cmd = _p12._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {location: location, customers: customersModel}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$CustomersMsg, cmd), _1: {ctor: '[]'} }); case 'CustomerRoute': var _p13 = _user$project$Customer_State$load(_p5._0); var customerModel = _p13._0; var cmd = _p13._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {location: location, customer: customerModel}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$CustomerMsg, cmd), _1: {ctor: '[]'} }); case 'TransactionRoute': var _p14 = _user$project$Transaction_State$load(_p5._0); var transaction = _p14._0; var cmd = _p14._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {location: location, transaction: transaction}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$TransactionMsg, cmd), _1: {ctor: '[]'} }); default: return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {location: location}), {ctor: '[]'}); } }); var _user$project$Main$init = function (location) { var model = { location: location, account: _user$project$Account$init, pair: _user$project$Pair$init(false), config: _user$project$Config$init, maintenanceMachines: _user$project$MaintenanceMachines_State$init, maintenanceFunding: _user$project$MaintenanceFunding_State$init, transactions: _user$project$Transactions$init, transaction: _user$project$Transaction_State$init, customers: _user$project$Customers_State$init, customer: _user$project$Customer_State$init, accounts: {ctor: '[]'}, status: _elm_lang$core$Maybe$Nothing, err: _elm_lang$core$Maybe$Nothing }; var _p15 = A2(_user$project$Main$urlUpdate, location, model); var newModel = _p15._0; var newCmd = _p15._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], newModel, { ctor: '::', _0: newCmd, _1: { ctor: '::', _0: _user$project$Main$getAccounts, _1: { ctor: '::', _0: _user$project$Main$getStatus, _1: {ctor: '[]'} } } }); }; var _user$project$Main$update = F2( function (msg, model) { var _p16 = msg; switch (_p16.ctor) { case 'PairMsg': var _p17 = A2(_user$project$Pair$update, _p16._0, model.pair); var pairModel = _p17._0; var cmd = _p17._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {pair: pairModel}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$PairMsg, cmd), _1: {ctor: '[]'} }); case 'AccountMsg': var _p18 = A2(_user$project$Account$update, _p16._0, model.account); var accountModel = _p18._0; var cmd = _p18._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {account: accountModel}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$AccountMsg, cmd), _1: {ctor: '[]'} }); case 'ConfigMsg': var _p20 = _p16._0; var loaded = _user$project$Config$loaded(_p20); var extraCmds = loaded ? { ctor: '::', _0: _user$project$Main$getAccounts, _1: { ctor: '::', _0: _user$project$Main$getStatus, _1: {ctor: '[]'} } } : {ctor: '[]'}; var _p19 = A2(_user$project$Config$update, _p20, model.config); var configModel = _p19._0; var cmd = _p19._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {config: configModel}), A2( _elm_lang$core$Basics_ops['++'], { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$ConfigMsg, cmd), _1: {ctor: '[]'} }, extraCmds)); case 'MaintenanceMachinesMsg': var _p21 = A2(_user$project$MaintenanceMachines_State$update, _p16._0, model.maintenanceMachines); var maintenanceMachines = _p21._0; var cmd = _p21._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {maintenanceMachines: maintenanceMachines}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$MaintenanceMachinesMsg, cmd), _1: {ctor: '[]'} }); case 'MaintenanceFundingMsg': var _p22 = A2(_user$project$MaintenanceFunding_State$update, _p16._0, model.maintenanceFunding); var maintenanceFunding = _p22._0; var cmd = _p22._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {maintenanceFunding: maintenanceFunding}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$MaintenanceFundingMsg, cmd), _1: {ctor: '[]'} }); case 'TransactionsMsg': var _p23 = A2(_user$project$Transactions$update, _p16._0, model.transactions); var transactionsModel = _p23._0; var cmd = _p23._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {transactions: transactionsModel}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$TransactionsMsg, cmd), _1: {ctor: '[]'} }); case 'TransactionMsg': var _p24 = A2(_user$project$Transaction_State$update, _p16._0, model.transaction); var transaction = _p24._0; var cmd = _p24._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {transaction: transaction}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$TransactionMsg, cmd), _1: {ctor: '[]'} }); case 'CustomersMsg': var _p25 = A2(_user$project$Customers_State$update, _p16._0, model.customers); var customersModel = _p25._0; var cmd = _p25._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {customers: customersModel}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$CustomersMsg, cmd), _1: {ctor: '[]'} }); case 'CustomerMsg': var _p26 = A2(_user$project$Customer_State$update, _p16._0, model.customer); var customerModel = _p26._0; var cmd = _p26._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {customer: customerModel}), { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$CustomerMsg, cmd), _1: {ctor: '[]'} }); case 'LoadAccounts': return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {accounts: _p16._0}), {ctor: '[]'}); case 'LoadStatus': var newStatus = _elm_lang$core$List$head( A2( _elm_lang$core$List$filterMap, _elm_lang$core$Basics$identity, { ctor: '::', _0: _krisajenkins$remotedata$RemoteData$toMaybe(_p16._0), _1: { ctor: '::', _0: model.status, _1: {ctor: '[]'} } })); var serverStatus = A2( _elm_lang$core$Maybe$withDefault, false, A2( _elm_lang$core$Maybe$map, function (status) { return status.server.up; }, newStatus)); var newPair = A2(_user$project$Pair$updateStatus, serverStatus, model.pair); var rates = A2( _elm_lang$core$Maybe$withDefault, {ctor: '[]'}, A2( _elm_lang$core$Maybe$map, function (status) { return status.server.rates; }, newStatus)); var newConfig = A2(_user$project$Config$updateRates, rates, model.config); return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {status: newStatus, pair: newPair, config: newConfig}), {ctor: '[]'}); case 'NewUrl': var _p27 = _user$project$Config$submitNoLoad(model.config); var configModel = _p27._0; var configCmd = _p27._1; return A2( _elm_lang$core$Platform_Cmd_ops['!'], _elm_lang$core$Native_Utils.update( model, {config: configModel}), { ctor: '::', _0: _elm_lang$navigation$Navigation$newUrl(_p16._0), _1: { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$ConfigMsg, configCmd), _1: {ctor: '[]'} } }); case 'UrlChange': return A2(_user$project$Main$urlUpdate, _p16._0, model); case 'Interval': var route = A2( _elm_lang$core$Maybe$withDefault, _user$project$CoreTypes$NotFoundRoute, A2(_evancz$url_parser$UrlParser$parseHash, _user$project$Main$parseRoute, model.location)); var extraCmds = _elm_lang$core$Native_Utils.eq(route, _user$project$CoreTypes$TransactionsRoute) ? { ctor: '::', _0: A2(_elm_lang$core$Platform_Cmd$map, _user$project$CoreTypes$TransactionsMsg, _user$project$Transactions$loadCmd), _1: {ctor: '[]'} } : {ctor: '[]'}; return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, A2( _elm_lang$core$Basics_ops['++'], { ctor: '::', _0: _user$project$Main$getStatus, _1: {ctor: '[]'} }, extraCmds)); default: return A2( _elm_lang$core$Platform_Cmd_ops['!'], model, {ctor: '[]'}); } }); var _user$project$Main$main = A2( _elm_lang$navigation$Navigation$program, _user$project$CoreTypes$UrlChange, {init: _user$project$Main$init, update: _user$project$Main$update, view: _user$project$Main$view, subscriptions: _user$project$Main$subscriptions})(); var _user$project$Main$Model = 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 {location: a, pair: b, account: c, config: d, maintenanceMachines: e, maintenanceFunding: f, transactions: g, transaction: h, customers: i, customer: j, accounts: k, status: l, err: m}; }; }; }; }; }; }; }; }; }; }; }; }; }; var Elm = {}; Elm['Main'] = Elm['Main'] || {}; if (typeof _user$project$Main$main !== 'undefined') { _user$project$Main$main(Elm['Main'], 'Main', {"types":{"unions":{"Selectize.Status":{"args":[],"tags":{"Editing":[],"Idle":[],"Blurred":[],"Cleared":[],"Initial":[]}},"BasicTypes.SavingStatus":{"args":[],"tags":{"Saving":[],"Editing":[],"NotSaving":[],"Saved":[]}},"Dict.LeafColor":{"args":[],"tags":{"LBBlack":[],"LBlack":[]}},"Account.SavingStatus":{"args":[],"tags":{"Saving":[],"Editing":[],"NotSaving":[],"Saved":[]}},"ConfigTypes.ConfigScope":{"args":[],"tags":{"Specific":[],"Both":[],"Global":[]}},"FieldSet.Types.Msg":{"args":[],"tags":{"Input":["String","String"]}},"ConfigTypes.FieldType":{"args":[],"tags":{"FieldOnOffType":[],"FieldPercentageType":[],"FieldLanguageType":[],"FieldCryptoCurrencyType":[],"FieldDecimalType":[],"FieldIntegerType":[],"FieldFiatCurrencyType":[],"FieldStringType":[],"FieldCountryType":[],"FieldAccountType":[]}},"Customers.Types.Msg":{"args":[],"tags":{"Load":["Customers.Types.Model"]}},"Pair.Msg":{"args":[],"tags":{"SubmitName":[],"Load":["RemoteData.WebData String"],"InputName":["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.LeafColor"]}},"ConfigTypes.DisplayTop":{"args":[],"tags":{"DisplayTopSolo":["String"],"DisplayTopLeader":["Int","String"],"DisplayTopNone":[]}},"Customer.Types.Msg":{"args":[],"tags":{"UnBlockCustomer":["String"],"Load":["Customer.Types.Model"],"BlockCustomer":["String"]}},"Date.Date":{"args":[],"tags":{"Date":[]}},"Account.Msg":{"args":[],"tags":{"Load":["Account.Model"],"FieldSetMsg":["FieldSet.Types.Msg"],"Submit":[],"HideSaveIndication":[]}},"MaintenanceFunding.Types.Msg":{"args":[],"tags":{"Load":["MaintenanceFunding.Types.Model"],"CryptoSwitch":["String"]}},"Common.TransactionTypes.Tx":{"args":[],"tags":{"CashInTx":["Common.TransactionTypes.CashInTxRec"],"CashOutTx":["Common.TransactionTypes.CashOutTxRec"]}},"Maybe.Maybe":{"args":["a"],"tags":{"Just":["a"],"Nothing":[]}},"Transaction.Types.Msg":{"args":[],"tags":{"Load":["Transaction.Types.Model"],"HideSaveIndication":[],"Cancel":["String"]}},"RemoteData.RemoteData":{"args":["e","a"],"tags":{"NotAsked":[],"Success":["a"],"Loading":[],"Failure":["e"]}},"MaintenanceMachines.Types.Msg":{"args":[],"tags":{"Action":[],"Load":["MaintenanceMachines.Types.Model"],"InputCassette":["MaintenanceMachines.Types.Machine","MaintenanceMachines.Types.Position","String"],"Submit":["MaintenanceMachines.Types.MachineAction"],"HideSaveIndication":[]}},"ConfigTypes.Crypto":{"args":[],"tags":{"GlobalCrypto":[],"CryptoCode":["String"]}},"CoreTypes.Msg":{"args":[],"tags":{"WebSocketMsg":["String"],"ConfigMsg":["Config.Msg"],"CustomersMsg":["Customers.Types.Msg"],"TransactionsMsg":["Transactions.Msg"],"LoadAccounts":["List ( String, String )"],"NewUrl":["String"],"Interval":[],"MaintenanceMachinesMsg":["MaintenanceMachines.Types.Msg"],"LoadStatus":["StatusTypes.WebStatus"],"UrlChange":["Navigation.Location"],"TransactionMsg":["Transaction.Types.Msg"],"MaintenanceFundingMsg":["MaintenanceFunding.Types.Msg"],"CustomerMsg":["Customer.Types.Msg"],"AccountMsg":["Account.Msg"],"PairMsg":["Pair.Msg"]}},"Dict.NColor":{"args":[],"tags":{"BBlack":[],"Red":[],"NBlack":[],"Black":[]}},"FieldSet.Types.FieldValue":{"args":[],"tags":{"FieldInteger":["Int"],"FieldString":["String"],"FieldPassword":["FieldSet.Types.FieldPasswordType"]}},"ConfigTypes.Machine":{"args":[],"tags":{"MachineId":["String"],"GlobalMachine":[]}},"Config.Msg":{"args":[],"tags":{"Focus":["ConfigTypes.FieldLocator"],"BlurSelectize":["ConfigTypes.FieldLocator","Selectize.State"],"Remove":["ConfigTypes.FieldLocator","Selectize.State"],"Load":["Config.WebConfigGroup"],"Input":["ConfigTypes.FieldLocator","String"],"Blur":["ConfigTypes.FieldLocator"],"Add":["ConfigTypes.FieldLocator","String","Selectize.State"],"Submit":[],"SelectizeMsg":["ConfigTypes.FieldLocator","Selectize.State"],"FocusSelectize":["ConfigTypes.FieldLocator","Selectize.State"],"HideSaveIndication":[],"NoOp":[],"CryptoSwitch":["ConfigTypes.Crypto"]}},"Transactions.Msg":{"args":[],"tags":{"Load":["Transactions.Model"]}},"ConfigTypes.FieldValidator":{"args":[],"tags":{"FieldRequired":[],"FieldMin":["Int"],"FieldMax":["Int"]}},"MaintenanceMachines.Types.MachineAction":{"args":[],"tags":{"RebootMachine":["MaintenanceMachines.Types.Machine"],"ResetCashOutBills":["MaintenanceMachines.Types.Machine"],"UnpairMachine":["MaintenanceMachines.Types.Machine"]}},"Http.Error":{"args":[],"tags":{"BadUrl":["String"],"NetworkError":[],"Timeout":[],"BadStatus":["Http.Response String"],"BadPayload":["String","Http.Response String"]}},"ConfigTypes.FieldValue":{"args":[],"tags":{"FieldIntegerValue":["Int"],"FieldDecimalValue":["Float"],"FieldCryptoCurrencyValue":["List String"],"FieldCountryValue":["String"],"FieldFiatCurrencyValue":["String"],"FieldStringValue":["String"],"FieldOnOffValue":["Bool"],"FieldAccountValue":["String"],"FieldLanguageValue":["List String"],"FieldPercentageValue":["Float"]}},"FieldSet.Types.FieldPasswordType":{"args":[],"tags":{"PasswordEmpty":[],"PasswordHidden":[],"Password":["String"]}},"MaintenanceMachines.Types.Position":{"args":[],"tags":{"Bottom":[],"Top":[]}}},"aliases":{"ConfigTypes.ConfigSchema":{"args":[],"type":"{ code : String , display : String , cryptoScope : ConfigTypes.ConfigScope , machineScope : ConfigTypes.ConfigScope , entries : List ConfigTypes.FieldDescriptor }"},"Selectize.State":{"args":[],"type":"{ boxPosition : Int, status : Selectize.Status, string : String }"},"RemoteData.WebData":{"args":["a"],"type":"RemoteData.RemoteData Http.Error a"},"ConfigTypes.FieldLocator":{"args":[],"type":"{ fieldScope : ConfigTypes.FieldScope , code : String , fieldType : ConfigTypes.FieldType , fieldClass : Maybe.Maybe String }"},"AccountTypes.Account":{"args":[],"type":"{ code : String , display : String , fields : List FieldSet.Types.Field }"},"Http.Response":{"args":["body"],"type":"{ url : String , status : { code : Int, message : String } , headers : Dict.Dict String String , body : body }"},"StatusTypes.WebStatus":{"args":[],"type":"RemoteData.WebData StatusTypes.StatusRec"},"Common.TransactionTypes.CashOutTxRec":{"args":[],"type":"{ id : String , machineName : String , toAddress : String , cryptoAtoms : Int , cryptoCode : String , fiat : Float , fiatCode : String , status : String , dispense : Bool , notified : Bool , redeemed : Bool , phone : Maybe.Maybe String , error : Maybe.Maybe String , created : Date.Date , confirmed : Bool }"},"MaintenanceMachines.Types.Machine":{"args":[],"type":"{ deviceId : String , name : String , cashbox : Int , cassette1 : Int , cassette2 : Int , paired : Bool , cashOut : Bool }"},"ConfigTypes.ConfigData":{"args":[],"type":"{ cryptoCurrencies : List ConfigTypes.CryptoDisplay , currencies : List ConfigTypes.DisplayRec , languages : List ConfigTypes.DisplayRec , countries : List ConfigTypes.DisplayRec , accounts : List ConfigTypes.AccountRec , machines : List ConfigTypes.MachineDisplay }"},"Transaction.Types.Model":{"args":[],"type":"RemoteData.WebData Transaction.Types.SubModel"},"Account.Model":{"args":[],"type":"RemoteData.WebData Account.SubModel"},"Customer.Types.Model":{"args":[],"type":"RemoteData.WebData Common.Customer.Types.Customer"},"MaintenanceFunding.Types.Model":{"args":[],"type":"RemoteData.WebData MaintenanceFunding.Types.SubModel"},"Common.Customer.Types.Customers":{"args":[],"type":"List Common.Customer.Types.Customer"},"MaintenanceFunding.Types.CryptoDisplay":{"args":[],"type":"{ cryptoCode : String, display : String }"},"ConfigTypes.CryptoDisplay":{"args":[],"type":"{ crypto : ConfigTypes.Crypto, display : String }"},"Config.WebConfigGroup":{"args":[],"type":"RemoteData.WebData ConfigTypes.ConfigGroup"},"FieldSet.Types.Field":{"args":[],"type":"{ code : String , display : String , placeholder : String , required : Bool , value : FieldSet.Types.FieldValue , loadedValue : FieldSet.Types.FieldValue }"},"ConfigTypes.DisplayRec":{"args":[],"type":"{ code : String, display : String }"},"Transaction.Types.SubModel":{"args":[],"type":"{ status : BasicTypes.SavingStatus, tx : Common.TransactionTypes.Tx }"},"Account.SubModel":{"args":[],"type":"{ status : Account.SavingStatus, account : AccountTypes.Account }"},"MaintenanceFunding.Types.SubModel":{"args":[],"type":"{ cryptoCode : String , cryptoDisplays : List MaintenanceFunding.Types.CryptoDisplay , fundingAddress : String , fundingAddressUrl : String , confirmedBalance : String , pending : String , fiatConfirmedBalance : String , fiatPending : String , fiatCode : String }"},"Common.TransactionTypes.CashInTxRec":{"args":[],"type":"{ id : String , machineName : String , toAddress : String , cryptoAtoms : Int , cryptoCode : String , fiat : Float , fiatCode : String , txHash : Maybe.Maybe String , phone : Maybe.Maybe String , error : Maybe.Maybe String , operatorCompleted : Bool , send : Bool , sendConfirmed : Bool , expired : Bool , created : Date.Date }"},"ConfigTypes.FieldScope":{"args":[],"type":"{ crypto : ConfigTypes.Crypto, machine : ConfigTypes.Machine }"},"MaintenanceMachines.Types.Model":{"args":[],"type":"RemoteData.WebData MaintenanceMachines.Types.SubModel"},"ConfigTypes.ConfigGroup":{"args":[],"type":"{ schema : ConfigTypes.ConfigSchema , values : List ConfigTypes.Field , selectedCryptos : List String , data : ConfigTypes.ConfigData }"},"ConfigTypes.AccountRec":{"args":[],"type":"{ code : String , display : String , class : String , cryptos : Maybe.Maybe (List ConfigTypes.Crypto) }"},"ConfigTypes.Field":{"args":[],"type":"{ fieldLocator : ConfigTypes.FieldLocator , fieldValue : ConfigTypes.FieldValue , fieldEnabledIfAny : List String , fieldEnabledIfAll : List String , inScope : Bool }"},"ConfigTypes.MachineDisplay":{"args":[],"type":"{ machine : ConfigTypes.Machine, display : String }"},"Common.Customer.Types.Customer":{"args":[],"type":"{ id : String , name : Maybe.Maybe String , phone : Maybe.Maybe String , phoneAt : Maybe.Maybe Date.Date , created : Date.Date , status : Maybe.Maybe String , authorizedOverride : Maybe.Maybe String }"},"StatusTypes.ServerRec":{"args":[],"type":"{ up : Bool , lastPing : Maybe.Maybe String , rates : List StatusTypes.Rate , machineStatus : String , wasConfigured : Bool }"},"MaintenanceMachines.Types.SubModel":{"args":[],"type":"{ status : BasicTypes.SavingStatus , machines : MaintenanceMachines.Types.Machines }"},"StatusTypes.Rate":{"args":[],"type":"{ crypto : String, bid : Float, ask : Float }"},"Customers.Types.Model":{"args":[],"type":"RemoteData.WebData Common.Customer.Types.Customers"},"Transactions.Txs":{"args":[],"type":"List Common.TransactionTypes.Tx"},"MaintenanceMachines.Types.Machines":{"args":[],"type":"List MaintenanceMachines.Types.Machine"},"Transactions.Model":{"args":[],"type":"RemoteData.WebData Transactions.Txs"},"ConfigTypes.FieldDescriptor":{"args":[],"type":"{ code : String , cryptoScope : ConfigTypes.ConfigScope , machineScope : ConfigTypes.ConfigScope , displayTop : ConfigTypes.DisplayTop , displayBottom : String , displayCount : Maybe.Maybe Int , fieldType : ConfigTypes.FieldType , fieldValidation : List ConfigTypes.FieldValidator , fieldClass : Maybe.Maybe String , fieldEnabledIfAny : List String , fieldEnabledIfAll : List String , readOnly : Bool }"},"StatusTypes.StatusRec":{"args":[],"type":"{ server : StatusTypes.ServerRec, invalidConfigGroups : List String }"},"Navigation.Location":{"args":[],"type":"{ href : String , host : String , hostname : String , protocol : String , origin : String , port_ : String , pathname : String , search : String , hash : String , username : String , password : String }"}},"message":"CoreTypes.Msg"},"versions":{"elm":"0.18.0"}}); } 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);