packages feed

wai-feature-flags 0.1.0.0 → 0.1.0.1

raw patch · 5 files changed

+10430/−10475 lines, 5 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+# 0.1.0.1++- Fixed bug where old feature flags would still be shown in the UI.+ # 0.1.0.0  - Initial release.
README.md view
@@ -1,3 +1,5 @@+[![Build Status](https://travis-ci.org/jwoudenberg/wai-feature-flags.svg?branch=trunk)](https://travis-ci.org/jwoudenberg/wai-feature-flags)+ # `wai-feature-flags`  Feature flag support for WAI applications.
frontend/index.html view
@@ -91,10478 +91,10424 @@   return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i); } -console.warn('Compiled in DEV mode. Follow the advice at https://elm-lang.org/0.19.1/optimize for better performance and smaller assets.');---var _JsArray_empty = [];--function _JsArray_singleton(value)-{-    return [value];-}--function _JsArray_length(array)-{-    return array.length;-}--var _JsArray_initialize = F3(function(size, offset, func)-{-    var result = new Array(size);--    for (var i = 0; i < size; i++)-    {-        result[i] = func(offset + i);-    }--    return result;-});--var _JsArray_initializeFromList = F2(function (max, ls)-{-    var result = new Array(max);--    for (var i = 0; i < max && ls.b; i++)-    {-        result[i] = ls.a;-        ls = ls.b;-    }--    result.length = i;-    return _Utils_Tuple2(result, ls);-});--var _JsArray_unsafeGet = F2(function(index, array)-{-    return array[index];-});--var _JsArray_unsafeSet = F3(function(index, value, array)-{-    var length = array.length;-    var result = new Array(length);--    for (var i = 0; i < length; i++)-    {-        result[i] = array[i];-    }--    result[index] = value;-    return result;-});--var _JsArray_push = F2(function(value, array)-{-    var length = array.length;-    var result = new Array(length + 1);--    for (var i = 0; i < length; i++)-    {-        result[i] = array[i];-    }--    result[length] = value;-    return result;-});--var _JsArray_foldl = F3(function(func, acc, array)-{-    var length = array.length;--    for (var i = 0; i < length; i++)-    {-        acc = A2(func, array[i], acc);-    }--    return acc;-});--var _JsArray_foldr = F3(function(func, acc, array)-{-    for (var i = array.length - 1; i >= 0; i--)-    {-        acc = A2(func, array[i], acc);-    }--    return acc;-});--var _JsArray_map = F2(function(func, array)-{-    var length = array.length;-    var result = new Array(length);--    for (var i = 0; i < length; i++)-    {-        result[i] = func(array[i]);-    }--    return result;-});--var _JsArray_indexedMap = F3(function(func, offset, array)-{-    var length = array.length;-    var result = new Array(length);--    for (var i = 0; i < length; i++)-    {-        result[i] = A2(func, offset + i, array[i]);-    }--    return result;-});--var _JsArray_slice = F3(function(from, to, array)-{-    return array.slice(from, to);-});--var _JsArray_appendN = F3(function(n, dest, source)-{-    var destLen = dest.length;-    var itemsToCopy = n - destLen;--    if (itemsToCopy > source.length)-    {-        itemsToCopy = source.length;-    }--    var size = destLen + itemsToCopy;-    var result = new Array(size);--    for (var i = 0; i < destLen; i++)-    {-        result[i] = dest[i];-    }--    for (var i = 0; i < itemsToCopy; i++)-    {-        result[i + destLen] = source[i];-    }--    return result;-});----// LOG--var _Debug_log_UNUSED = F2(function(tag, value)-{-	return value;-});--var _Debug_log = F2(function(tag, value)-{-	console.log(tag + ': ' + _Debug_toString(value));-	return value;-});---// TODOS--function _Debug_todo(moduleName, region)-{-	return function(message) {-		_Debug_crash(8, moduleName, region, message);-	};-}--function _Debug_todoCase(moduleName, region, value)-{-	return function(message) {-		_Debug_crash(9, moduleName, region, value, message);-	};-}---// TO STRING--function _Debug_toString_UNUSED(value)-{-	return '<internals>';-}--function _Debug_toString(value)-{-	return _Debug_toAnsiString(false, value);-}--function _Debug_toAnsiString(ansi, value)-{-	if (typeof value === 'function')-	{-		return _Debug_internalColor(ansi, '<function>');-	}--	if (typeof value === 'boolean')-	{-		return _Debug_ctorColor(ansi, value ? 'True' : 'False');-	}--	if (typeof value === 'number')-	{-		return _Debug_numberColor(ansi, value + '');-	}--	if (value instanceof String)-	{-		return _Debug_charColor(ansi, "'" + _Debug_addSlashes(value, true) + "'");-	}--	if (typeof value === 'string')-	{-		return _Debug_stringColor(ansi, '"' + _Debug_addSlashes(value, false) + '"');-	}--	if (typeof value === 'object' && '$' in value)-	{-		var tag = value.$;--		if (typeof tag === 'number')-		{-			return _Debug_internalColor(ansi, '<internals>');-		}--		if (tag[0] === '#')-		{-			var output = [];-			for (var k in value)-			{-				if (k === '$') continue;-				output.push(_Debug_toAnsiString(ansi, value[k]));-			}-			return '(' + output.join(',') + ')';-		}--		if (tag === 'Set_elm_builtin')-		{-			return _Debug_ctorColor(ansi, 'Set')-				+ _Debug_fadeColor(ansi, '.fromList') + ' '-				+ _Debug_toAnsiString(ansi, $elm$core$Set$toList(value));-		}--		if (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin')-		{-			return _Debug_ctorColor(ansi, 'Dict')-				+ _Debug_fadeColor(ansi, '.fromList') + ' '-				+ _Debug_toAnsiString(ansi, $elm$core$Dict$toList(value));-		}--		if (tag === 'Array_elm_builtin')-		{-			return _Debug_ctorColor(ansi, 'Array')-				+ _Debug_fadeColor(ansi, '.fromList') + ' '-				+ _Debug_toAnsiString(ansi, $elm$core$Array$toList(value));-		}--		if (tag === '::' || tag === '[]')-		{-			var output = '[';--			value.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b)--			for (; value.b; value = value.b) // WHILE_CONS-			{-				output += ',' + _Debug_toAnsiString(ansi, value.a);-			}-			return output + ']';-		}--		var output = '';-		for (var i in value)-		{-			if (i === '$') continue;-			var str = _Debug_toAnsiString(ansi, value[i]);-			var c0 = str[0];-			var parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0;-			output += ' ' + (parenless ? str : '(' + str + ')');-		}-		return _Debug_ctorColor(ansi, tag) + output;-	}--	if (typeof DataView === 'function' && value instanceof DataView)-	{-		return _Debug_stringColor(ansi, '<' + value.byteLength + ' bytes>');-	}--	if (typeof File !== 'undefined' && value instanceof File)-	{-		return _Debug_internalColor(ansi, '<' + value.name + '>');-	}--	if (typeof value === 'object')-	{-		var output = [];-		for (var key in value)-		{-			var field = key[0] === '_' ? key.slice(1) : key;-			output.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key]));-		}-		if (output.length === 0)-		{-			return '{}';-		}-		return '{ ' + output.join(', ') + ' }';-	}--	return _Debug_internalColor(ansi, '<internals>');-}--function _Debug_addSlashes(str, isChar)-{-	var s = str-		.replace(/\\/g, '\\\\')-		.replace(/\n/g, '\\n')-		.replace(/\t/g, '\\t')-		.replace(/\r/g, '\\r')-		.replace(/\v/g, '\\v')-		.replace(/\0/g, '\\0');--	if (isChar)-	{-		return s.replace(/\'/g, '\\\'');-	}-	else-	{-		return s.replace(/\"/g, '\\"');-	}-}--function _Debug_ctorColor(ansi, string)-{-	return ansi ? '\x1b[96m' + string + '\x1b[0m' : string;-}--function _Debug_numberColor(ansi, string)-{-	return ansi ? '\x1b[95m' + string + '\x1b[0m' : string;-}--function _Debug_stringColor(ansi, string)-{-	return ansi ? '\x1b[93m' + string + '\x1b[0m' : string;-}--function _Debug_charColor(ansi, string)-{-	return ansi ? '\x1b[92m' + string + '\x1b[0m' : string;-}--function _Debug_fadeColor(ansi, string)-{-	return ansi ? '\x1b[37m' + string + '\x1b[0m' : string;-}--function _Debug_internalColor(ansi, string)-{-	return ansi ? '\x1b[36m' + string + '\x1b[0m' : string;-}--function _Debug_toHexDigit(n)-{-	return String.fromCharCode(n < 10 ? 48 + n : 55 + n);-}---// CRASH---function _Debug_crash_UNUSED(identifier)-{-	throw new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md');-}---function _Debug_crash(identifier, fact1, fact2, fact3, fact4)-{-	switch(identifier)-	{-		case 0:-			throw new Error('What node should I take over? In JavaScript I need something like:\n\n    Elm.Main.init({\n        node: document.getElementById("elm-node")\n    })\n\nYou need to do this with any Browser.sandbox or Browser.element program.');--		case 1:-			throw new Error('Browser.application programs cannot handle URLs like this:\n\n    ' + document.location.href + '\n\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.');--		case 2:-			var jsonErrorString = fact1;-			throw new Error('Problem with the flags given to your Elm program on initialization.\n\n' + jsonErrorString);--		case 3:-			var portName = fact1;-			throw new Error('There can only be one port named `' + portName + '`, but your program has multiple.');--		case 4:-			var portName = fact1;-			var problem = fact2;-			throw new Error('Trying to send an unexpected type of value through port `' + portName + '`:\n' + problem);--		case 5:-			throw new Error('Trying to use `(==)` on functions.\nThere is no way to know if functions are "the same" in the Elm sense.\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.');--		case 6:-			var moduleName = fact1;-			throw new Error('Your page is loading multiple Elm scripts with a module named ' + moduleName + '. Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!');--		case 8:-			var moduleName = fact1;-			var region = fact2;-			var message = fact3;-			throw new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\n\n' + message);--		case 9:-			var moduleName = fact1;-			var region = fact2;-			var value = fact3;-			var message = fact4;-			throw new Error(-				'TODO in module `' + moduleName + '` from the `case` expression '-				+ _Debug_regionToString(region) + '\n\nIt received the following value:\n\n    '-				+ _Debug_toString(value).replace('\n', '\n    ')-				+ '\n\nBut the branch that handles it says:\n\n    ' + message.replace('\n', '\n    ')-			);--		case 10:-			throw new Error('Bug in https://github.com/elm/virtual-dom/issues');--		case 11:-			throw new Error('Cannot perform mod 0. Division by zero error.');-	}-}--function _Debug_regionToString(region)-{-	if (region.start.line === region.end.line)-	{-		return 'on line ' + region.start.line;-	}-	return 'on lines ' + region.start.line + ' through ' + region.end.line;-}----// EQUALITY--function _Utils_eq(x, y)-{-	for (-		var pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack);-		isEqual && (pair = stack.pop());-		isEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack)-		)-	{}--	return isEqual;-}--function _Utils_eqHelp(x, y, depth, stack)-{-	if (x === y)-	{-		return true;-	}--	if (typeof x !== 'object' || x === null || y === null)-	{-		typeof x === 'function' && _Debug_crash(5);-		return false;-	}--	if (depth > 100)-	{-		stack.push(_Utils_Tuple2(x,y));-		return true;-	}--	/**/-	if (x.$ === 'Set_elm_builtin')-	{-		x = $elm$core$Set$toList(x);-		y = $elm$core$Set$toList(y);-	}-	if (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin')-	{-		x = $elm$core$Dict$toList(x);-		y = $elm$core$Dict$toList(y);-	}-	//*/--	/**_UNUSED/-	if (x.$ < 0)-	{-		x = $elm$core$Dict$toList(x);-		y = $elm$core$Dict$toList(y);-	}-	//*/--	for (var key in x)-	{-		if (!_Utils_eqHelp(x[key], y[key], depth + 1, stack))-		{-			return false;-		}-	}-	return true;-}--var _Utils_equal = F2(_Utils_eq);-var _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); });----// COMPARISONS--// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on-// the particular integer values assigned to LT, EQ, and GT.--function _Utils_cmp(x, y, ord)-{-	if (typeof x !== 'object')-	{-		return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1;-	}--	/**/-	if (x instanceof String)-	{-		var a = x.valueOf();-		var b = y.valueOf();-		return a === b ? 0 : a < b ? -1 : 1;-	}-	//*/--	/**_UNUSED/-	if (typeof x.$ === 'undefined')-	//*/-	/**/-	if (x.$[0] === '#')-	//*/-	{-		return (ord = _Utils_cmp(x.a, y.a))-			? ord-			: (ord = _Utils_cmp(x.b, y.b))-				? ord-				: _Utils_cmp(x.c, y.c);-	}--	// traverse conses until end of a list or a mismatch-	for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES-	return ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0);-}--var _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; });-var _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; });-var _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; });-var _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; });--var _Utils_compare = F2(function(x, y)-{-	var n = _Utils_cmp(x, y);-	return n < 0 ? $elm$core$Basics$LT : n ? $elm$core$Basics$GT : $elm$core$Basics$EQ;-});---// COMMON VALUES--var _Utils_Tuple0_UNUSED = 0;-var _Utils_Tuple0 = { $: '#0' };--function _Utils_Tuple2_UNUSED(a, b) { return { a: a, b: b }; }-function _Utils_Tuple2(a, b) { return { $: '#2', a: a, b: b }; }--function _Utils_Tuple3_UNUSED(a, b, c) { return { a: a, b: b, c: c }; }-function _Utils_Tuple3(a, b, c) { return { $: '#3', a: a, b: b, c: c }; }--function _Utils_chr_UNUSED(c) { return c; }-function _Utils_chr(c) { return new String(c); }---// RECORDS--function _Utils_update(oldRecord, updatedFields)-{-	var newRecord = {};--	for (var key in oldRecord)-	{-		newRecord[key] = oldRecord[key];-	}--	for (var key in updatedFields)-	{-		newRecord[key] = updatedFields[key];-	}--	return newRecord;-}---// APPEND--var _Utils_append = F2(_Utils_ap);--function _Utils_ap(xs, ys)-{-	// append Strings-	if (typeof xs === 'string')-	{-		return xs + ys;-	}--	// append Lists-	if (!xs.b)-	{-		return ys;-	}-	var root = _List_Cons(xs.a, ys);-	xs = xs.b-	for (var curr = root; xs.b; xs = xs.b) // WHILE_CONS-	{-		curr = curr.b = _List_Cons(xs.a, ys);-	}-	return root;-}----var _List_Nil_UNUSED = { $: 0 };-var _List_Nil = { $: '[]' };--function _List_Cons_UNUSED(hd, tl) { return { $: 1, a: hd, b: tl }; }-function _List_Cons(hd, tl) { return { $: '::', a: hd, b: tl }; }---var _List_cons = F2(_List_Cons);--function _List_fromArray(arr)-{-	var out = _List_Nil;-	for (var i = arr.length; i--; )-	{-		out = _List_Cons(arr[i], out);-	}-	return out;-}--function _List_toArray(xs)-{-	for (var out = []; xs.b; xs = xs.b) // WHILE_CONS-	{-		out.push(xs.a);-	}-	return out;-}--var _List_map2 = F3(function(f, xs, ys)-{-	for (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES-	{-		arr.push(A2(f, xs.a, ys.a));-	}-	return _List_fromArray(arr);-});--var _List_map3 = F4(function(f, xs, ys, zs)-{-	for (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES-	{-		arr.push(A3(f, xs.a, ys.a, zs.a));-	}-	return _List_fromArray(arr);-});--var _List_map4 = F5(function(f, ws, xs, ys, zs)-{-	for (var arr = []; ws.b && xs.b && ys.b && zs.b; ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES-	{-		arr.push(A4(f, ws.a, xs.a, ys.a, zs.a));-	}-	return _List_fromArray(arr);-});--var _List_map5 = F6(function(f, vs, ws, xs, ys, zs)-{-	for (var arr = []; vs.b && ws.b && xs.b && ys.b && zs.b; vs = vs.b, ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES-	{-		arr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a));-	}-	return _List_fromArray(arr);-});--var _List_sortBy = F2(function(f, xs)-{-	return _List_fromArray(_List_toArray(xs).sort(function(a, b) {-		return _Utils_cmp(f(a), f(b));-	}));-});--var _List_sortWith = F2(function(f, xs)-{-	return _List_fromArray(_List_toArray(xs).sort(function(a, b) {-		var ord = A2(f, a, b);-		return ord === $elm$core$Basics$EQ ? 0 : ord === $elm$core$Basics$LT ? -1 : 1;-	}));-});----// MATH--var _Basics_add = F2(function(a, b) { return a + b; });-var _Basics_sub = F2(function(a, b) { return a - b; });-var _Basics_mul = F2(function(a, b) { return a * b; });-var _Basics_fdiv = F2(function(a, b) { return a / b; });-var _Basics_idiv = F2(function(a, b) { return (a / b) | 0; });-var _Basics_pow = F2(Math.pow);--var _Basics_remainderBy = F2(function(b, a) { return a % b; });--// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf-var _Basics_modBy = F2(function(modulus, x)-{-	var answer = x % modulus;-	return modulus === 0-		? _Debug_crash(11)-		:-	((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0))-		? answer + modulus-		: answer;-});---// TRIGONOMETRY--var _Basics_pi = Math.PI;-var _Basics_e = Math.E;-var _Basics_cos = Math.cos;-var _Basics_sin = Math.sin;-var _Basics_tan = Math.tan;-var _Basics_acos = Math.acos;-var _Basics_asin = Math.asin;-var _Basics_atan = Math.atan;-var _Basics_atan2 = F2(Math.atan2);---// MORE MATH--function _Basics_toFloat(x) { return x; }-function _Basics_truncate(n) { return n | 0; }-function _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; }--var _Basics_ceiling = Math.ceil;-var _Basics_floor = Math.floor;-var _Basics_round = Math.round;-var _Basics_sqrt = Math.sqrt;-var _Basics_log = Math.log;-var _Basics_isNaN = isNaN;---// BOOLEANS--function _Basics_not(bool) { return !bool; }-var _Basics_and = F2(function(a, b) { return a && b; });-var _Basics_or  = F2(function(a, b) { return a || b; });-var _Basics_xor = F2(function(a, b) { return a !== b; });----var _String_cons = F2(function(chr, str)-{-	return chr + str;-});--function _String_uncons(string)-{-	var word = string.charCodeAt(0);-	return !isNaN(word)-		? $elm$core$Maybe$Just(-			0xD800 <= word && word <= 0xDBFF-				? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2))-				: _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1))-		)-		: $elm$core$Maybe$Nothing;-}--var _String_append = F2(function(a, b)-{-	return a + b;-});--function _String_length(str)-{-	return str.length;-}--var _String_map = F2(function(func, string)-{-	var len = string.length;-	var array = new Array(len);-	var i = 0;-	while (i < len)-	{-		var word = string.charCodeAt(i);-		if (0xD800 <= word && word <= 0xDBFF)-		{-			array[i] = func(_Utils_chr(string[i] + string[i+1]));-			i += 2;-			continue;-		}-		array[i] = func(_Utils_chr(string[i]));-		i++;-	}-	return array.join('');-});--var _String_filter = F2(function(isGood, str)-{-	var arr = [];-	var len = str.length;-	var i = 0;-	while (i < len)-	{-		var char = str[i];-		var word = str.charCodeAt(i);-		i++;-		if (0xD800 <= word && word <= 0xDBFF)-		{-			char += str[i];-			i++;-		}--		if (isGood(_Utils_chr(char)))-		{-			arr.push(char);-		}-	}-	return arr.join('');-});--function _String_reverse(str)-{-	var len = str.length;-	var arr = new Array(len);-	var i = 0;-	while (i < len)-	{-		var word = str.charCodeAt(i);-		if (0xD800 <= word && word <= 0xDBFF)-		{-			arr[len - i] = str[i + 1];-			i++;-			arr[len - i] = str[i - 1];-			i++;-		}-		else-		{-			arr[len - i] = str[i];-			i++;-		}-	}-	return arr.join('');-}--var _String_foldl = F3(function(func, state, string)-{-	var len = string.length;-	var i = 0;-	while (i < len)-	{-		var char = string[i];-		var word = string.charCodeAt(i);-		i++;-		if (0xD800 <= word && word <= 0xDBFF)-		{-			char += string[i];-			i++;-		}-		state = A2(func, _Utils_chr(char), state);-	}-	return state;-});--var _String_foldr = F3(function(func, state, string)-{-	var i = string.length;-	while (i--)-	{-		var char = string[i];-		var word = string.charCodeAt(i);-		if (0xDC00 <= word && word <= 0xDFFF)-		{-			i--;-			char = string[i] + char;-		}-		state = A2(func, _Utils_chr(char), state);-	}-	return state;-});--var _String_split = F2(function(sep, str)-{-	return str.split(sep);-});--var _String_join = F2(function(sep, strs)-{-	return strs.join(sep);-});--var _String_slice = F3(function(start, end, str) {-	return str.slice(start, end);-});--function _String_trim(str)-{-	return str.trim();-}--function _String_trimLeft(str)-{-	return str.replace(/^\s+/, '');-}--function _String_trimRight(str)-{-	return str.replace(/\s+$/, '');-}--function _String_words(str)-{-	return _List_fromArray(str.trim().split(/\s+/g));-}--function _String_lines(str)-{-	return _List_fromArray(str.split(/\r\n|\r|\n/g));-}--function _String_toUpper(str)-{-	return str.toUpperCase();-}--function _String_toLower(str)-{-	return str.toLowerCase();-}--var _String_any = F2(function(isGood, string)-{-	var i = string.length;-	while (i--)-	{-		var char = string[i];-		var word = string.charCodeAt(i);-		if (0xDC00 <= word && word <= 0xDFFF)-		{-			i--;-			char = string[i] + char;-		}-		if (isGood(_Utils_chr(char)))-		{-			return true;-		}-	}-	return false;-});--var _String_all = F2(function(isGood, string)-{-	var i = string.length;-	while (i--)-	{-		var char = string[i];-		var word = string.charCodeAt(i);-		if (0xDC00 <= word && word <= 0xDFFF)-		{-			i--;-			char = string[i] + char;-		}-		if (!isGood(_Utils_chr(char)))-		{-			return false;-		}-	}-	return true;-});--var _String_contains = F2(function(sub, str)-{-	return str.indexOf(sub) > -1;-});--var _String_startsWith = F2(function(sub, str)-{-	return str.indexOf(sub) === 0;-});--var _String_endsWith = F2(function(sub, str)-{-	return str.length >= sub.length &&-		str.lastIndexOf(sub) === str.length - sub.length;-});--var _String_indexes = F2(function(sub, str)-{-	var subLen = sub.length;--	if (subLen < 1)-	{-		return _List_Nil;-	}--	var i = 0;-	var is = [];--	while ((i = str.indexOf(sub, i)) > -1)-	{-		is.push(i);-		i = i + subLen;-	}--	return _List_fromArray(is);-});---// TO STRING--function _String_fromNumber(number)-{-	return number + '';-}---// INT CONVERSIONS--function _String_toInt(str)-{-	var total = 0;-	var code0 = str.charCodeAt(0);-	var start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0;--	for (var i = start; i < str.length; ++i)-	{-		var code = str.charCodeAt(i);-		if (code < 0x30 || 0x39 < code)-		{-			return $elm$core$Maybe$Nothing;-		}-		total = 10 * total + code - 0x30;-	}--	return i == start-		? $elm$core$Maybe$Nothing-		: $elm$core$Maybe$Just(code0 == 0x2D ? -total : total);-}---// FLOAT CONVERSIONS--function _String_toFloat(s)-{-	// check if it is a hex, octal, or binary number-	if (s.length === 0 || /[\sxbo]/.test(s))-	{-		return $elm$core$Maybe$Nothing;-	}-	var n = +s;-	// faster isNaN check-	return n === n ? $elm$core$Maybe$Just(n) : $elm$core$Maybe$Nothing;-}--function _String_fromList(chars)-{-	return _List_toArray(chars).join('');-}-----function _Char_toCode(char)-{-	var code = char.charCodeAt(0);-	if (0xD800 <= code && code <= 0xDBFF)-	{-		return (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000-	}-	return code;-}--function _Char_fromCode(code)-{-	return _Utils_chr(-		(code < 0 || 0x10FFFF < code)-			? '\uFFFD'-			:-		(code <= 0xFFFF)-			? String.fromCharCode(code)-			:-		(code -= 0x10000,-			String.fromCharCode(Math.floor(code / 0x400) + 0xD800, code % 0x400 + 0xDC00)-		)-	);-}--function _Char_toUpper(char)-{-	return _Utils_chr(char.toUpperCase());-}--function _Char_toLower(char)-{-	return _Utils_chr(char.toLowerCase());-}--function _Char_toLocaleUpper(char)-{-	return _Utils_chr(char.toLocaleUpperCase());-}--function _Char_toLocaleLower(char)-{-	return _Utils_chr(char.toLocaleLowerCase());-}----/**/-function _Json_errorToString(error)-{-	return $elm$json$Json$Decode$errorToString(error);-}-//*/---// CORE DECODERS--function _Json_succeed(msg)-{-	return {-		$: 0,-		a: msg-	};-}--function _Json_fail(msg)-{-	return {-		$: 1,-		a: msg-	};-}--function _Json_decodePrim(decoder)-{-	return { $: 2, b: decoder };-}--var _Json_decodeInt = _Json_decodePrim(function(value) {-	return (typeof value !== 'number')-		? _Json_expecting('an INT', value)-		:-	(-2147483647 < value && value < 2147483647 && (value | 0) === value)-		? $elm$core$Result$Ok(value)-		:-	(isFinite(value) && !(value % 1))-		? $elm$core$Result$Ok(value)-		: _Json_expecting('an INT', value);-});--var _Json_decodeBool = _Json_decodePrim(function(value) {-	return (typeof value === 'boolean')-		? $elm$core$Result$Ok(value)-		: _Json_expecting('a BOOL', value);-});--var _Json_decodeFloat = _Json_decodePrim(function(value) {-	return (typeof value === 'number')-		? $elm$core$Result$Ok(value)-		: _Json_expecting('a FLOAT', value);-});--var _Json_decodeValue = _Json_decodePrim(function(value) {-	return $elm$core$Result$Ok(_Json_wrap(value));-});--var _Json_decodeString = _Json_decodePrim(function(value) {-	return (typeof value === 'string')-		? $elm$core$Result$Ok(value)-		: (value instanceof String)-			? $elm$core$Result$Ok(value + '')-			: _Json_expecting('a STRING', value);-});--function _Json_decodeList(decoder) { return { $: 3, b: decoder }; }-function _Json_decodeArray(decoder) { return { $: 4, b: decoder }; }--function _Json_decodeNull(value) { return { $: 5, c: value }; }--var _Json_decodeField = F2(function(field, decoder)-{-	return {-		$: 6,-		d: field,-		b: decoder-	};-});--var _Json_decodeIndex = F2(function(index, decoder)-{-	return {-		$: 7,-		e: index,-		b: decoder-	};-});--function _Json_decodeKeyValuePairs(decoder)-{-	return {-		$: 8,-		b: decoder-	};-}--function _Json_mapMany(f, decoders)-{-	return {-		$: 9,-		f: f,-		g: decoders-	};-}--var _Json_andThen = F2(function(callback, decoder)-{-	return {-		$: 10,-		b: decoder,-		h: callback-	};-});--function _Json_oneOf(decoders)-{-	return {-		$: 11,-		g: decoders-	};-}---// DECODING OBJECTS--var _Json_map1 = F2(function(f, d1)-{-	return _Json_mapMany(f, [d1]);-});--var _Json_map2 = F3(function(f, d1, d2)-{-	return _Json_mapMany(f, [d1, d2]);-});--var _Json_map3 = F4(function(f, d1, d2, d3)-{-	return _Json_mapMany(f, [d1, d2, d3]);-});--var _Json_map4 = F5(function(f, d1, d2, d3, d4)-{-	return _Json_mapMany(f, [d1, d2, d3, d4]);-});--var _Json_map5 = F6(function(f, d1, d2, d3, d4, d5)-{-	return _Json_mapMany(f, [d1, d2, d3, d4, d5]);-});--var _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6)-{-	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]);-});--var _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7)-{-	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]);-});--var _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8)-{-	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]);-});---// DECODE--var _Json_runOnString = F2(function(decoder, string)-{-	try-	{-		var value = JSON.parse(string);-		return _Json_runHelp(decoder, value);-	}-	catch (e)-	{-		return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string)));-	}-});--var _Json_run = F2(function(decoder, value)-{-	return _Json_runHelp(decoder, _Json_unwrap(value));-});--function _Json_runHelp(decoder, value)-{-	switch (decoder.$)-	{-		case 2:-			return decoder.b(value);--		case 5:-			return (value === null)-				? $elm$core$Result$Ok(decoder.c)-				: _Json_expecting('null', value);--		case 3:-			if (!_Json_isArray(value))-			{-				return _Json_expecting('a LIST', value);-			}-			return _Json_runArrayDecoder(decoder.b, value, _List_fromArray);--		case 4:-			if (!_Json_isArray(value))-			{-				return _Json_expecting('an ARRAY', value);-			}-			return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray);--		case 6:-			var field = decoder.d;-			if (typeof value !== 'object' || value === null || !(field in value))-			{-				return _Json_expecting('an OBJECT with a field named `' + field + '`', value);-			}-			var result = _Json_runHelp(decoder.b, value[field]);-			return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, field, result.a));--		case 7:-			var index = decoder.e;-			if (!_Json_isArray(value))-			{-				return _Json_expecting('an ARRAY', value);-			}-			if (index >= value.length)-			{-				return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value);-			}-			var result = _Json_runHelp(decoder.b, value[index]);-			return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, index, result.a));--		case 8:-			if (typeof value !== 'object' || value === null || _Json_isArray(value))-			{-				return _Json_expecting('an OBJECT', value);-			}--			var keyValuePairs = _List_Nil;-			// TODO test perf of Object.keys and switch when support is good enough-			for (var key in value)-			{-				if (value.hasOwnProperty(key))-				{-					var result = _Json_runHelp(decoder.b, value[key]);-					if (!$elm$core$Result$isOk(result))-					{-						return $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, key, result.a));-					}-					keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs);-				}-			}-			return $elm$core$Result$Ok($elm$core$List$reverse(keyValuePairs));--		case 9:-			var answer = decoder.f;-			var decoders = decoder.g;-			for (var i = 0; i < decoders.length; i++)-			{-				var result = _Json_runHelp(decoders[i], value);-				if (!$elm$core$Result$isOk(result))-				{-					return result;-				}-				answer = answer(result.a);-			}-			return $elm$core$Result$Ok(answer);--		case 10:-			var result = _Json_runHelp(decoder.b, value);-			return (!$elm$core$Result$isOk(result))-				? result-				: _Json_runHelp(decoder.h(result.a), value);--		case 11:-			var errors = _List_Nil;-			for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS-			{-				var result = _Json_runHelp(temp.a, value);-				if ($elm$core$Result$isOk(result))-				{-					return result;-				}-				errors = _List_Cons(result.a, errors);-			}-			return $elm$core$Result$Err($elm$json$Json$Decode$OneOf($elm$core$List$reverse(errors)));--		case 1:-			return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value)));--		case 0:-			return $elm$core$Result$Ok(decoder.a);-	}-}--function _Json_runArrayDecoder(decoder, value, toElmValue)-{-	var len = value.length;-	var array = new Array(len);-	for (var i = 0; i < len; i++)-	{-		var result = _Json_runHelp(decoder, value[i]);-		if (!$elm$core$Result$isOk(result))-		{-			return $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, i, result.a));-		}-		array[i] = result.a;-	}-	return $elm$core$Result$Ok(toElmValue(array));-}--function _Json_isArray(value)-{-	return Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList);-}--function _Json_toElmArray(array)-{-	return A2($elm$core$Array$initialize, array.length, function(i) { return array[i]; });-}--function _Json_expecting(type, value)-{-	return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value)));-}---// EQUALITY--function _Json_equality(x, y)-{-	if (x === y)-	{-		return true;-	}--	if (x.$ !== y.$)-	{-		return false;-	}--	switch (x.$)-	{-		case 0:-		case 1:-			return x.a === y.a;--		case 2:-			return x.b === y.b;--		case 5:-			return x.c === y.c;--		case 3:-		case 4:-		case 8:-			return _Json_equality(x.b, y.b);--		case 6:-			return x.d === y.d && _Json_equality(x.b, y.b);--		case 7:-			return x.e === y.e && _Json_equality(x.b, y.b);--		case 9:-			return x.f === y.f && _Json_listEquality(x.g, y.g);--		case 10:-			return x.h === y.h && _Json_equality(x.b, y.b);--		case 11:-			return _Json_listEquality(x.g, y.g);-	}-}--function _Json_listEquality(aDecoders, bDecoders)-{-	var len = aDecoders.length;-	if (len !== bDecoders.length)-	{-		return false;-	}-	for (var i = 0; i < len; i++)-	{-		if (!_Json_equality(aDecoders[i], bDecoders[i]))-		{-			return false;-		}-	}-	return true;-}---// ENCODE--var _Json_encode = F2(function(indentLevel, value)-{-	return JSON.stringify(_Json_unwrap(value), null, indentLevel) + '';-});--function _Json_wrap(value) { return { $: 0, a: value }; }-function _Json_unwrap(value) { return value.a; }--function _Json_wrap_UNUSED(value) { return value; }-function _Json_unwrap_UNUSED(value) { return value; }--function _Json_emptyArray() { return []; }-function _Json_emptyObject() { return {}; }--var _Json_addField = F3(function(key, value, object)-{-	object[key] = _Json_unwrap(value);-	return object;-});--function _Json_addEntry(func)-{-	return F2(function(entry, array)-	{-		array.push(_Json_unwrap(func(entry)));-		return array;-	});-}--var _Json_encodeNull = _Json_wrap(null);----// TASKS--function _Scheduler_succeed(value)-{-	return {-		$: 0,-		a: value-	};-}--function _Scheduler_fail(error)-{-	return {-		$: 1,-		a: error-	};-}--function _Scheduler_binding(callback)-{-	return {-		$: 2,-		b: callback,-		c: null-	};-}--var _Scheduler_andThen = F2(function(callback, task)-{-	return {-		$: 3,-		b: callback,-		d: task-	};-});--var _Scheduler_onError = F2(function(callback, task)-{-	return {-		$: 4,-		b: callback,-		d: task-	};-});--function _Scheduler_receive(callback)-{-	return {-		$: 5,-		b: callback-	};-}---// PROCESSES--var _Scheduler_guid = 0;--function _Scheduler_rawSpawn(task)-{-	var proc = {-		$: 0,-		e: _Scheduler_guid++,-		f: task,-		g: null,-		h: []-	};--	_Scheduler_enqueue(proc);--	return proc;-}--function _Scheduler_spawn(task)-{-	return _Scheduler_binding(function(callback) {-		callback(_Scheduler_succeed(_Scheduler_rawSpawn(task)));-	});-}--function _Scheduler_rawSend(proc, msg)-{-	proc.h.push(msg);-	_Scheduler_enqueue(proc);-}--var _Scheduler_send = F2(function(proc, msg)-{-	return _Scheduler_binding(function(callback) {-		_Scheduler_rawSend(proc, msg);-		callback(_Scheduler_succeed(_Utils_Tuple0));-	});-});--function _Scheduler_kill(proc)-{-	return _Scheduler_binding(function(callback) {-		var task = proc.f;-		if (task.$ === 2 && task.c)-		{-			task.c();-		}--		proc.f = null;--		callback(_Scheduler_succeed(_Utils_Tuple0));-	});-}---/* STEP PROCESSES--type alias Process =-  { $ : tag-  , id : unique_id-  , root : Task-  , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack }-  , mailbox : [msg]-  }--*/---var _Scheduler_working = false;-var _Scheduler_queue = [];---function _Scheduler_enqueue(proc)-{-	_Scheduler_queue.push(proc);-	if (_Scheduler_working)-	{-		return;-	}-	_Scheduler_working = true;-	while (proc = _Scheduler_queue.shift())-	{-		_Scheduler_step(proc);-	}-	_Scheduler_working = false;-}---function _Scheduler_step(proc)-{-	while (proc.f)-	{-		var rootTag = proc.f.$;-		if (rootTag === 0 || rootTag === 1)-		{-			while (proc.g && proc.g.$ !== rootTag)-			{-				proc.g = proc.g.i;-			}-			if (!proc.g)-			{-				return;-			}-			proc.f = proc.g.b(proc.f.a);-			proc.g = proc.g.i;-		}-		else if (rootTag === 2)-		{-			proc.f.c = proc.f.b(function(newRoot) {-				proc.f = newRoot;-				_Scheduler_enqueue(proc);-			});-			return;-		}-		else if (rootTag === 5)-		{-			if (proc.h.length === 0)-			{-				return;-			}-			proc.f = proc.f.b(proc.h.shift());-		}-		else // if (rootTag === 3 || rootTag === 4)-		{-			proc.g = {-				$: rootTag === 3 ? 0 : 1,-				b: proc.f.b,-				i: proc.g-			};-			proc.f = proc.f.d;-		}-	}-}----function _Process_sleep(time)-{-	return _Scheduler_binding(function(callback) {-		var id = setTimeout(function() {-			callback(_Scheduler_succeed(_Utils_Tuple0));-		}, time);--		return function() { clearTimeout(id); };-	});-}-----// PROGRAMS---var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args)-{-	return _Platform_initialize(-		flagDecoder,-		args,-		impl.init,-		impl.update,-		impl.subscriptions,-		function() { return function() {} }-	);-});----// INITIALIZE A PROGRAM---function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)-{-	var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined));-	$elm$core$Result$isOk(result) || _Debug_crash(2 /**/, _Json_errorToString(result.a) /**/);-	var managers = {};-	var initPair = init(result.a);-	var model = initPair.a;-	var stepper = stepperBuilder(sendToApp, model);-	var ports = _Platform_setupEffects(managers, sendToApp);--	function sendToApp(msg, viewMetadata)-	{-		var pair = A2(update, msg, model);-		stepper(model = pair.a, viewMetadata);-		_Platform_enqueueEffects(managers, pair.b, subscriptions(model));-	}--	_Platform_enqueueEffects(managers, initPair.b, subscriptions(model));--	return ports ? { ports: ports } : {};-}----// TRACK PRELOADS-//-// This is used by code in elm/browser and elm/http-// to register any HTTP requests that are triggered by init.-//---var _Platform_preload;---function _Platform_registerPreload(url)-{-	_Platform_preload.add(url);-}----// EFFECT MANAGERS---var _Platform_effectManagers = {};---function _Platform_setupEffects(managers, sendToApp)-{-	var ports;--	// setup all necessary effect managers-	for (var key in _Platform_effectManagers)-	{-		var manager = _Platform_effectManagers[key];--		if (manager.a)-		{-			ports = ports || {};-			ports[key] = manager.a(key, sendToApp);-		}--		managers[key] = _Platform_instantiateManager(manager, sendToApp);-	}--	return ports;-}---function _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap)-{-	return {-		b: init,-		c: onEffects,-		d: onSelfMsg,-		e: cmdMap,-		f: subMap-	};-}---function _Platform_instantiateManager(info, sendToApp)-{-	var router = {-		g: sendToApp,-		h: undefined-	};--	var onEffects = info.c;-	var onSelfMsg = info.d;-	var cmdMap = info.e;-	var subMap = info.f;--	function loop(state)-	{-		return A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg)-		{-			var value = msg.a;--			if (msg.$ === 0)-			{-				return A3(onSelfMsg, router, value, state);-			}--			return cmdMap && subMap-				? A4(onEffects, router, value.i, value.j, state)-				: A3(onEffects, router, cmdMap ? value.i : value.j, state);-		}));-	}--	return router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b));-}----// ROUTING---var _Platform_sendToApp = F2(function(router, msg)-{-	return _Scheduler_binding(function(callback)-	{-		router.g(msg);-		callback(_Scheduler_succeed(_Utils_Tuple0));-	});-});---var _Platform_sendToSelf = F2(function(router, msg)-{-	return A2(_Scheduler_send, router.h, {-		$: 0,-		a: msg-	});-});----// BAGS---function _Platform_leaf(home)-{-	return function(value)-	{-		return {-			$: 1,-			k: home,-			l: value-		};-	};-}---function _Platform_batch(list)-{-	return {-		$: 2,-		m: list-	};-}---var _Platform_map = F2(function(tagger, bag)-{-	return {-		$: 3,-		n: tagger,-		o: bag-	}-});----// PIPE BAGS INTO EFFECT MANAGERS-//-// Effects must be queued!-//-// Say your init contains a synchronous command, like Time.now or Time.here-//-//   - This will produce a batch of effects (FX_1)-//   - The synchronous task triggers the subsequent `update` call-//   - This will produce a batch of effects (FX_2)-//-// If we just start dispatching FX_2, subscriptions from FX_2 can be processed-// before subscriptions from FX_1. No good! Earlier versions of this code had-// this problem, leading to these reports:-//-//   https://github.com/elm/core/issues/980-//   https://github.com/elm/core/pull/981-//   https://github.com/elm/compiler/issues/1776-//-// The queue is necessary to avoid ordering issues for synchronous commands.---// Why use true/false here? Why not just check the length of the queue?-// The goal is to detect "are we currently dispatching effects?" If we-// are, we need to bail and let the ongoing while loop handle things.-//-// Now say the queue has 1 element. When we dequeue the final element,-// the queue will be empty, but we are still actively dispatching effects.-// So you could get queue jumping in a really tricky category of cases.-//-var _Platform_effectsQueue = [];-var _Platform_effectsActive = false;---function _Platform_enqueueEffects(managers, cmdBag, subBag)-{-	_Platform_effectsQueue.push({ p: managers, q: cmdBag, r: subBag });--	if (_Platform_effectsActive) return;--	_Platform_effectsActive = true;-	for (var fx; fx = _Platform_effectsQueue.shift(); )-	{-		_Platform_dispatchEffects(fx.p, fx.q, fx.r);-	}-	_Platform_effectsActive = false;-}---function _Platform_dispatchEffects(managers, cmdBag, subBag)-{-	var effectsDict = {};-	_Platform_gatherEffects(true, cmdBag, effectsDict, null);-	_Platform_gatherEffects(false, subBag, effectsDict, null);--	for (var home in managers)-	{-		_Scheduler_rawSend(managers[home], {-			$: 'fx',-			a: effectsDict[home] || { i: _List_Nil, j: _List_Nil }-		});-	}-}---function _Platform_gatherEffects(isCmd, bag, effectsDict, taggers)-{-	switch (bag.$)-	{-		case 1:-			var home = bag.k;-			var effect = _Platform_toEffect(isCmd, home, taggers, bag.l);-			effectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]);-			return;--		case 2:-			for (var list = bag.m; list.b; list = list.b) // WHILE_CONS-			{-				_Platform_gatherEffects(isCmd, list.a, effectsDict, taggers);-			}-			return;--		case 3:-			_Platform_gatherEffects(isCmd, bag.o, effectsDict, {-				s: bag.n,-				t: taggers-			});-			return;-	}-}---function _Platform_toEffect(isCmd, home, taggers, value)-{-	function applyTaggers(x)-	{-		for (var temp = taggers; temp; temp = temp.t)-		{-			x = temp.s(x);-		}-		return x;-	}--	var map = isCmd-		? _Platform_effectManagers[home].e-		: _Platform_effectManagers[home].f;--	return A2(map, applyTaggers, value)-}---function _Platform_insert(isCmd, newEffect, effects)-{-	effects = effects || { i: _List_Nil, j: _List_Nil };--	isCmd-		? (effects.i = _List_Cons(newEffect, effects.i))-		: (effects.j = _List_Cons(newEffect, effects.j));--	return effects;-}----// PORTS---function _Platform_checkPortName(name)-{-	if (_Platform_effectManagers[name])-	{-		_Debug_crash(3, name)-	}-}----// OUTGOING PORTS---function _Platform_outgoingPort(name, converter)-{-	_Platform_checkPortName(name);-	_Platform_effectManagers[name] = {-		e: _Platform_outgoingPortMap,-		u: converter,-		a: _Platform_setupOutgoingPort-	};-	return _Platform_leaf(name);-}---var _Platform_outgoingPortMap = F2(function(tagger, value) { return value; });---function _Platform_setupOutgoingPort(name)-{-	var subs = [];-	var converter = _Platform_effectManagers[name].u;--	// CREATE MANAGER--	var init = _Process_sleep(0);--	_Platform_effectManagers[name].b = init;-	_Platform_effectManagers[name].c = F3(function(router, cmdList, state)-	{-		for ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS-		{-			// grab a separate reference to subs in case unsubscribe is called-			var currentSubs = subs;-			var value = _Json_unwrap(converter(cmdList.a));-			for (var i = 0; i < currentSubs.length; i++)-			{-				currentSubs[i](value);-			}-		}-		return init;-	});--	// PUBLIC API--	function subscribe(callback)-	{-		subs.push(callback);-	}--	function unsubscribe(callback)-	{-		// copy subs into a new array in case unsubscribe is called within a-		// subscribed callback-		subs = subs.slice();-		var index = subs.indexOf(callback);-		if (index >= 0)-		{-			subs.splice(index, 1);-		}-	}--	return {-		subscribe: subscribe,-		unsubscribe: unsubscribe-	};-}----// INCOMING PORTS---function _Platform_incomingPort(name, converter)-{-	_Platform_checkPortName(name);-	_Platform_effectManagers[name] = {-		f: _Platform_incomingPortMap,-		u: converter,-		a: _Platform_setupIncomingPort-	};-	return _Platform_leaf(name);-}---var _Platform_incomingPortMap = F2(function(tagger, finalTagger)-{-	return function(value)-	{-		return tagger(finalTagger(value));-	};-});---function _Platform_setupIncomingPort(name, sendToApp)-{-	var subs = _List_Nil;-	var converter = _Platform_effectManagers[name].u;--	// CREATE MANAGER--	var init = _Scheduler_succeed(null);--	_Platform_effectManagers[name].b = init;-	_Platform_effectManagers[name].c = F3(function(router, subList, state)-	{-		subs = subList;-		return init;-	});--	// PUBLIC API--	function send(incomingValue)-	{-		var result = A2(_Json_run, converter, _Json_wrap(incomingValue));--		$elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a);--		var value = result.a;-		for (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS-		{-			sendToApp(temp.a(value));-		}-	}--	return { send: send };-}----// EXPORT ELM MODULES-//-// Have DEBUG and PROD versions so that we can (1) give nicer errors in-// debug mode and (2) not pay for the bits needed for that in prod mode.-//---function _Platform_export_UNUSED(exports)-{-	scope['Elm']-		? _Platform_mergeExportsProd(scope['Elm'], exports)-		: scope['Elm'] = exports;-}---function _Platform_mergeExportsProd(obj, exports)-{-	for (var name in exports)-	{-		(name in obj)-			? (name == 'init')-				? _Debug_crash(6)-				: _Platform_mergeExportsProd(obj[name], exports[name])-			: (obj[name] = exports[name]);-	}-}---function _Platform_export(exports)-{-	scope['Elm']-		? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports)-		: scope['Elm'] = exports;-}---function _Platform_mergeExportsDebug(moduleName, obj, exports)-{-	for (var name in exports)-	{-		(name in obj)-			? (name == 'init')-				? _Debug_crash(6, moduleName)-				: _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name])-			: (obj[name] = exports[name]);-	}-}-----// HELPERS---var _VirtualDom_divertHrefToApp;--var _VirtualDom_doc = typeof document !== 'undefined' ? document : {};---function _VirtualDom_appendChild(parent, child)-{-	parent.appendChild(child);-}--var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args)-{-	// NOTE: this function needs _Platform_export available to work--	/**_UNUSED/-	var node = args['node'];-	//*/-	/**/-	var node = args && args['node'] ? args['node'] : _Debug_crash(0);-	//*/--	node.parentNode.replaceChild(-		_VirtualDom_render(virtualNode, function() {}),-		node-	);--	return {};-});----// TEXT---function _VirtualDom_text(string)-{-	return {-		$: 0,-		a: string-	};-}----// NODE---var _VirtualDom_nodeNS = F2(function(namespace, tag)-{-	return F2(function(factList, kidList)-	{-		for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS-		{-			var kid = kidList.a;-			descendantsCount += (kid.b || 0);-			kids.push(kid);-		}-		descendantsCount += kids.length;--		return {-			$: 1,-			c: tag,-			d: _VirtualDom_organizeFacts(factList),-			e: kids,-			f: namespace,-			b: descendantsCount-		};-	});-});---var _VirtualDom_node = _VirtualDom_nodeNS(undefined);----// KEYED NODE---var _VirtualDom_keyedNodeNS = F2(function(namespace, tag)-{-	return F2(function(factList, kidList)-	{-		for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS-		{-			var kid = kidList.a;-			descendantsCount += (kid.b.b || 0);-			kids.push(kid);-		}-		descendantsCount += kids.length;--		return {-			$: 2,-			c: tag,-			d: _VirtualDom_organizeFacts(factList),-			e: kids,-			f: namespace,-			b: descendantsCount-		};-	});-});---var _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined);----// CUSTOM---function _VirtualDom_custom(factList, model, render, diff)-{-	return {-		$: 3,-		d: _VirtualDom_organizeFacts(factList),-		g: model,-		h: render,-		i: diff-	};-}----// MAP---var _VirtualDom_map = F2(function(tagger, node)-{-	return {-		$: 4,-		j: tagger,-		k: node,-		b: 1 + (node.b || 0)-	};-});----// LAZY---function _VirtualDom_thunk(refs, thunk)-{-	return {-		$: 5,-		l: refs,-		m: thunk,-		k: undefined-	};-}--var _VirtualDom_lazy = F2(function(func, a)-{-	return _VirtualDom_thunk([func, a], function() {-		return func(a);-	});-});--var _VirtualDom_lazy2 = F3(function(func, a, b)-{-	return _VirtualDom_thunk([func, a, b], function() {-		return A2(func, a, b);-	});-});--var _VirtualDom_lazy3 = F4(function(func, a, b, c)-{-	return _VirtualDom_thunk([func, a, b, c], function() {-		return A3(func, a, b, c);-	});-});--var _VirtualDom_lazy4 = F5(function(func, a, b, c, d)-{-	return _VirtualDom_thunk([func, a, b, c, d], function() {-		return A4(func, a, b, c, d);-	});-});--var _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e)-{-	return _VirtualDom_thunk([func, a, b, c, d, e], function() {-		return A5(func, a, b, c, d, e);-	});-});--var _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f)-{-	return _VirtualDom_thunk([func, a, b, c, d, e, f], function() {-		return A6(func, a, b, c, d, e, f);-	});-});--var _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g)-{-	return _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() {-		return A7(func, a, b, c, d, e, f, g);-	});-});--var _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h)-{-	return _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() {-		return A8(func, a, b, c, d, e, f, g, h);-	});-});----// FACTS---var _VirtualDom_on = F2(function(key, handler)-{-	return {-		$: 'a0',-		n: key,-		o: handler-	};-});-var _VirtualDom_style = F2(function(key, value)-{-	return {-		$: 'a1',-		n: key,-		o: value-	};-});-var _VirtualDom_property = F2(function(key, value)-{-	return {-		$: 'a2',-		n: key,-		o: value-	};-});-var _VirtualDom_attribute = F2(function(key, value)-{-	return {-		$: 'a3',-		n: key,-		o: value-	};-});-var _VirtualDom_attributeNS = F3(function(namespace, key, value)-{-	return {-		$: 'a4',-		n: key,-		o: { f: namespace, o: value }-	};-});----// XSS ATTACK VECTOR CHECKS---function _VirtualDom_noScript(tag)-{-	return tag == 'script' ? 'p' : tag;-}--function _VirtualDom_noOnOrFormAction(key)-{-	return /^(on|formAction$)/i.test(key) ? 'data-' + key : key;-}--function _VirtualDom_noInnerHtmlOrFormAction(key)-{-	return key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key;-}--function _VirtualDom_noJavaScriptUri_UNUSED(value)-{-	return /^javascript:/i.test(value.replace(/\s/g,'')) ? '' : value;-}--function _VirtualDom_noJavaScriptUri(value)-{-	return /^javascript:/i.test(value.replace(/\s/g,''))-		? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'-		: value;-}--function _VirtualDom_noJavaScriptOrHtmlUri_UNUSED(value)-{-	return /^\s*(javascript:|data:text\/html)/i.test(value) ? '' : value;-}--function _VirtualDom_noJavaScriptOrHtmlUri(value)-{-	return /^\s*(javascript:|data:text\/html)/i.test(value)-		? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'-		: value;-}----// MAP FACTS---var _VirtualDom_mapAttribute = F2(function(func, attr)-{-	return (attr.$ === 'a0')-		? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o))-		: attr;-});--function _VirtualDom_mapHandler(func, handler)-{-	var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);--	// 0 = Normal-	// 1 = MayStopPropagation-	// 2 = MayPreventDefault-	// 3 = Custom--	return {-		$: handler.$,-		a:-			!tag-				? A2($elm$json$Json$Decode$map, func, handler.a)-				:-			A3($elm$json$Json$Decode$map2,-				tag < 3-					? _VirtualDom_mapEventTuple-					: _VirtualDom_mapEventRecord,-				$elm$json$Json$Decode$succeed(func),-				handler.a-			)-	};-}--var _VirtualDom_mapEventTuple = F2(function(func, tuple)-{-	return _Utils_Tuple2(func(tuple.a), tuple.b);-});--var _VirtualDom_mapEventRecord = F2(function(func, record)-{-	return {-		message: func(record.message),-		stopPropagation: record.stopPropagation,-		preventDefault: record.preventDefault-	}-});----// ORGANIZE FACTS---function _VirtualDom_organizeFacts(factList)-{-	for (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS-	{-		var entry = factList.a;--		var tag = entry.$;-		var key = entry.n;-		var value = entry.o;--		if (tag === 'a2')-		{-			(key === 'className')-				? _VirtualDom_addClass(facts, key, _Json_unwrap(value))-				: facts[key] = _Json_unwrap(value);--			continue;-		}--		var subFacts = facts[tag] || (facts[tag] = {});-		(tag === 'a3' && key === 'class')-			? _VirtualDom_addClass(subFacts, key, value)-			: subFacts[key] = value;-	}--	return facts;-}--function _VirtualDom_addClass(object, key, newClass)-{-	var classes = object[key];-	object[key] = classes ? classes + ' ' + newClass : newClass;-}----// RENDER---function _VirtualDom_render(vNode, eventNode)-{-	var tag = vNode.$;--	if (tag === 5)-	{-		return _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode);-	}--	if (tag === 0)-	{-		return _VirtualDom_doc.createTextNode(vNode.a);-	}--	if (tag === 4)-	{-		var subNode = vNode.k;-		var tagger = vNode.j;--		while (subNode.$ === 4)-		{-			typeof tagger !== 'object'-				? tagger = [tagger, subNode.j]-				: tagger.push(subNode.j);--			subNode = subNode.k;-		}--		var subEventRoot = { j: tagger, p: eventNode };-		var domNode = _VirtualDom_render(subNode, subEventRoot);-		domNode.elm_event_node_ref = subEventRoot;-		return domNode;-	}--	if (tag === 3)-	{-		var domNode = vNode.h(vNode.g);-		_VirtualDom_applyFacts(domNode, eventNode, vNode.d);-		return domNode;-	}--	// at this point `tag` must be 1 or 2--	var domNode = vNode.f-		? _VirtualDom_doc.createElementNS(vNode.f, vNode.c)-		: _VirtualDom_doc.createElement(vNode.c);--	if (_VirtualDom_divertHrefToApp && vNode.c == 'a')-	{-		domNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode));-	}--	_VirtualDom_applyFacts(domNode, eventNode, vNode.d);--	for (var kids = vNode.e, i = 0; i < kids.length; i++)-	{-		_VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode));-	}--	return domNode;-}----// APPLY FACTS---function _VirtualDom_applyFacts(domNode, eventNode, facts)-{-	for (var key in facts)-	{-		var value = facts[key];--		key === 'a1'-			? _VirtualDom_applyStyles(domNode, value)-			:-		key === 'a0'-			? _VirtualDom_applyEvents(domNode, eventNode, value)-			:-		key === 'a3'-			? _VirtualDom_applyAttrs(domNode, value)-			:-		key === 'a4'-			? _VirtualDom_applyAttrsNS(domNode, value)-			:-		((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value);-	}-}----// APPLY STYLES---function _VirtualDom_applyStyles(domNode, styles)-{-	var domNodeStyle = domNode.style;--	for (var key in styles)-	{-		domNodeStyle[key] = styles[key];-	}-}----// APPLY ATTRS---function _VirtualDom_applyAttrs(domNode, attrs)-{-	for (var key in attrs)-	{-		var value = attrs[key];-		typeof value !== 'undefined'-			? domNode.setAttribute(key, value)-			: domNode.removeAttribute(key);-	}-}----// APPLY NAMESPACED ATTRS---function _VirtualDom_applyAttrsNS(domNode, nsAttrs)-{-	for (var key in nsAttrs)-	{-		var pair = nsAttrs[key];-		var namespace = pair.f;-		var value = pair.o;--		typeof value !== 'undefined'-			? domNode.setAttributeNS(namespace, key, value)-			: domNode.removeAttributeNS(namespace, key);-	}-}----// APPLY EVENTS---function _VirtualDom_applyEvents(domNode, eventNode, events)-{-	var allCallbacks = domNode.elmFs || (domNode.elmFs = {});--	for (var key in events)-	{-		var newHandler = events[key];-		var oldCallback = allCallbacks[key];--		if (!newHandler)-		{-			domNode.removeEventListener(key, oldCallback);-			allCallbacks[key] = undefined;-			continue;-		}--		if (oldCallback)-		{-			var oldHandler = oldCallback.q;-			if (oldHandler.$ === newHandler.$)-			{-				oldCallback.q = newHandler;-				continue;-			}-			domNode.removeEventListener(key, oldCallback);-		}--		oldCallback = _VirtualDom_makeCallback(eventNode, newHandler);-		domNode.addEventListener(key, oldCallback,-			_VirtualDom_passiveSupported-			&& { passive: $elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 }-		);-		allCallbacks[key] = oldCallback;-	}-}----// PASSIVE EVENTS---var _VirtualDom_passiveSupported;--try-{-	window.addEventListener('t', null, Object.defineProperty({}, 'passive', {-		get: function() { _VirtualDom_passiveSupported = true; }-	}));-}-catch(e) {}----// EVENT HANDLERS---function _VirtualDom_makeCallback(eventNode, initialHandler)-{-	function callback(event)-	{-		var handler = callback.q;-		var result = _Json_runHelp(handler.a, event);--		if (!$elm$core$Result$isOk(result))-		{-			return;-		}--		var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);--		// 0 = Normal-		// 1 = MayStopPropagation-		// 2 = MayPreventDefault-		// 3 = Custom--		var value = result.a;-		var message = !tag ? value : tag < 3 ? value.a : value.message;-		var stopPropagation = tag == 1 ? value.b : tag == 3 && value.stopPropagation;-		var currentEventNode = (-			stopPropagation && event.stopPropagation(),-			(tag == 2 ? value.b : tag == 3 && value.preventDefault) && event.preventDefault(),-			eventNode-		);-		var tagger;-		var i;-		while (tagger = currentEventNode.j)-		{-			if (typeof tagger == 'function')-			{-				message = tagger(message);-			}-			else-			{-				for (var i = tagger.length; i--; )-				{-					message = tagger[i](message);-				}-			}-			currentEventNode = currentEventNode.p;-		}-		currentEventNode(message, stopPropagation); // stopPropagation implies isSync-	}--	callback.q = initialHandler;--	return callback;-}--function _VirtualDom_equalEvents(x, y)-{-	return x.$ == y.$ && _Json_equality(x.a, y.a);-}----// DIFF---// TODO: Should we do patches like in iOS?-//-// type Patch-//   = At Int Patch-//   | Batch (List Patch)-//   | Change ...-//-// How could it not be better?-//-function _VirtualDom_diff(x, y)-{-	var patches = [];-	_VirtualDom_diffHelp(x, y, patches, 0);-	return patches;-}---function _VirtualDom_pushPatch(patches, type, index, data)-{-	var patch = {-		$: type,-		r: index,-		s: data,-		t: undefined,-		u: undefined-	};-	patches.push(patch);-	return patch;-}---function _VirtualDom_diffHelp(x, y, patches, index)-{-	if (x === y)-	{-		return;-	}--	var xType = x.$;-	var yType = y.$;--	// Bail if you run into different types of nodes. Implies that the-	// structure has changed significantly and it's not worth a diff.-	if (xType !== yType)-	{-		if (xType === 1 && yType === 2)-		{-			y = _VirtualDom_dekey(y);-			yType = 1;-		}-		else-		{-			_VirtualDom_pushPatch(patches, 0, index, y);-			return;-		}-	}--	// Now we know that both nodes are the same $.-	switch (yType)-	{-		case 5:-			var xRefs = x.l;-			var yRefs = y.l;-			var i = xRefs.length;-			var same = i === yRefs.length;-			while (same && i--)-			{-				same = xRefs[i] === yRefs[i];-			}-			if (same)-			{-				y.k = x.k;-				return;-			}-			y.k = y.m();-			var subPatches = [];-			_VirtualDom_diffHelp(x.k, y.k, subPatches, 0);-			subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches);-			return;--		case 4:-			// gather nested taggers-			var xTaggers = x.j;-			var yTaggers = y.j;-			var nesting = false;--			var xSubNode = x.k;-			while (xSubNode.$ === 4)-			{-				nesting = true;--				typeof xTaggers !== 'object'-					? xTaggers = [xTaggers, xSubNode.j]-					: xTaggers.push(xSubNode.j);--				xSubNode = xSubNode.k;-			}--			var ySubNode = y.k;-			while (ySubNode.$ === 4)-			{-				nesting = true;--				typeof yTaggers !== 'object'-					? yTaggers = [yTaggers, ySubNode.j]-					: yTaggers.push(ySubNode.j);--				ySubNode = ySubNode.k;-			}--			// Just bail if different numbers of taggers. This implies the-			// structure of the virtual DOM has changed.-			if (nesting && xTaggers.length !== yTaggers.length)-			{-				_VirtualDom_pushPatch(patches, 0, index, y);-				return;-			}--			// check if taggers are "the same"-			if (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers)-			{-				_VirtualDom_pushPatch(patches, 2, index, yTaggers);-			}--			// diff everything below the taggers-			_VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1);-			return;--		case 0:-			if (x.a !== y.a)-			{-				_VirtualDom_pushPatch(patches, 3, index, y.a);-			}-			return;--		case 1:-			_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids);-			return;--		case 2:-			_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids);-			return;--		case 3:-			if (x.h !== y.h)-			{-				_VirtualDom_pushPatch(patches, 0, index, y);-				return;-			}--			var factsDiff = _VirtualDom_diffFacts(x.d, y.d);-			factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);--			var patch = y.i(x.g, y.g);-			patch && _VirtualDom_pushPatch(patches, 5, index, patch);--			return;-	}-}--// assumes the incoming arrays are the same length-function _VirtualDom_pairwiseRefEqual(as, bs)-{-	for (var i = 0; i < as.length; i++)-	{-		if (as[i] !== bs[i])-		{-			return false;-		}-	}--	return true;-}--function _VirtualDom_diffNodes(x, y, patches, index, diffKids)-{-	// Bail if obvious indicators have changed. Implies more serious-	// structural changes such that it's not worth it to diff.-	if (x.c !== y.c || x.f !== y.f)-	{-		_VirtualDom_pushPatch(patches, 0, index, y);-		return;-	}--	var factsDiff = _VirtualDom_diffFacts(x.d, y.d);-	factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);--	diffKids(x, y, patches, index);-}----// DIFF FACTS---// TODO Instead of creating a new diff object, it's possible to just test if-// there *is* a diff. During the actual patch, do the diff again and make the-// modifications directly. This way, there's no new allocations. Worth it?-function _VirtualDom_diffFacts(x, y, category)-{-	var diff;--	// look for changes and removals-	for (var xKey in x)-	{-		if (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4')-		{-			var subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey);-			if (subDiff)-			{-				diff = diff || {};-				diff[xKey] = subDiff;-			}-			continue;-		}--		// remove if not in the new facts-		if (!(xKey in y))-		{-			diff = diff || {};-			diff[xKey] =-				!category-					? (typeof x[xKey] === 'string' ? '' : null)-					:-				(category === 'a1')-					? ''-					:-				(category === 'a0' || category === 'a3')-					? undefined-					:-				{ f: x[xKey].f, o: undefined };--			continue;-		}--		var xValue = x[xKey];-		var yValue = y[xKey];--		// reference equal, so don't worry about it-		if (xValue === yValue && xKey !== 'value' && xKey !== 'checked'-			|| category === 'a0' && _VirtualDom_equalEvents(xValue, yValue))-		{-			continue;-		}--		diff = diff || {};-		diff[xKey] = yValue;-	}--	// add new stuff-	for (var yKey in y)-	{-		if (!(yKey in x))-		{-			diff = diff || {};-			diff[yKey] = y[yKey];-		}-	}--	return diff;-}----// DIFF KIDS---function _VirtualDom_diffKids(xParent, yParent, patches, index)-{-	var xKids = xParent.e;-	var yKids = yParent.e;--	var xLen = xKids.length;-	var yLen = yKids.length;--	// FIGURE OUT IF THERE ARE INSERTS OR REMOVALS--	if (xLen > yLen)-	{-		_VirtualDom_pushPatch(patches, 6, index, {-			v: yLen,-			i: xLen - yLen-		});-	}-	else if (xLen < yLen)-	{-		_VirtualDom_pushPatch(patches, 7, index, {-			v: xLen,-			e: yKids-		});-	}--	// PAIRWISE DIFF EVERYTHING ELSE--	for (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++)-	{-		var xKid = xKids[i];-		_VirtualDom_diffHelp(xKid, yKids[i], patches, ++index);-		index += xKid.b || 0;-	}-}----// KEYED DIFF---function _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex)-{-	var localPatches = [];--	var changes = {}; // Dict String Entry-	var inserts = []; // Array { index : Int, entry : Entry }-	// type Entry = { tag : String, vnode : VNode, index : Int, data : _ }--	var xKids = xParent.e;-	var yKids = yParent.e;-	var xLen = xKids.length;-	var yLen = yKids.length;-	var xIndex = 0;-	var yIndex = 0;--	var index = rootIndex;--	while (xIndex < xLen && yIndex < yLen)-	{-		var x = xKids[xIndex];-		var y = yKids[yIndex];--		var xKey = x.a;-		var yKey = y.a;-		var xNode = x.b;-		var yNode = y.b;--		var newMatch = undefined;-		var oldMatch = undefined;--		// check if keys match--		if (xKey === yKey)-		{-			index++;-			_VirtualDom_diffHelp(xNode, yNode, localPatches, index);-			index += xNode.b || 0;--			xIndex++;-			yIndex++;-			continue;-		}--		// look ahead 1 to detect insertions and removals.--		var xNext = xKids[xIndex + 1];-		var yNext = yKids[yIndex + 1];--		if (xNext)-		{-			var xNextKey = xNext.a;-			var xNextNode = xNext.b;-			oldMatch = yKey === xNextKey;-		}--		if (yNext)-		{-			var yNextKey = yNext.a;-			var yNextNode = yNext.b;-			newMatch = xKey === yNextKey;-		}---		// swap x and y-		if (newMatch && oldMatch)-		{-			index++;-			_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);-			_VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts);-			index += xNode.b || 0;--			index++;-			_VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index);-			index += xNextNode.b || 0;--			xIndex += 2;-			yIndex += 2;-			continue;-		}--		// insert y-		if (newMatch)-		{-			index++;-			_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);-			_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);-			index += xNode.b || 0;--			xIndex += 1;-			yIndex += 2;-			continue;-		}--		// remove x-		if (oldMatch)-		{-			index++;-			_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);-			index += xNode.b || 0;--			index++;-			_VirtualDom_diffHelp(xNextNode, yNode, localPatches, index);-			index += xNextNode.b || 0;--			xIndex += 2;-			yIndex += 1;-			continue;-		}--		// remove x, insert y-		if (xNext && xNextKey === yNextKey)-		{-			index++;-			_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);-			_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);-			index += xNode.b || 0;--			index++;-			_VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index);-			index += xNextNode.b || 0;--			xIndex += 2;-			yIndex += 2;-			continue;-		}--		break;-	}--	// eat up any remaining nodes with removeNode and insertNode--	while (xIndex < xLen)-	{-		index++;-		var x = xKids[xIndex];-		var xNode = x.b;-		_VirtualDom_removeNode(changes, localPatches, x.a, xNode, index);-		index += xNode.b || 0;-		xIndex++;-	}--	while (yIndex < yLen)-	{-		var endInserts = endInserts || [];-		var y = yKids[yIndex];-		_VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts);-		yIndex++;-	}--	if (localPatches.length > 0 || inserts.length > 0 || endInserts)-	{-		_VirtualDom_pushPatch(patches, 8, rootIndex, {-			w: localPatches,-			x: inserts,-			y: endInserts-		});-	}-}----// CHANGES FROM KEYED DIFF---var _VirtualDom_POSTFIX = '_elmW6BL';---function _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts)-{-	var entry = changes[key];--	// never seen this key before-	if (!entry)-	{-		entry = {-			c: 0,-			z: vnode,-			r: yIndex,-			s: undefined-		};--		inserts.push({ r: yIndex, A: entry });-		changes[key] = entry;--		return;-	}--	// this key was removed earlier, a match!-	if (entry.c === 1)-	{-		inserts.push({ r: yIndex, A: entry });--		entry.c = 2;-		var subPatches = [];-		_VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r);-		entry.r = yIndex;-		entry.s.s = {-			w: subPatches,-			A: entry-		};--		return;-	}--	// this key has already been inserted or moved, a duplicate!-	_VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts);-}---function _VirtualDom_removeNode(changes, localPatches, key, vnode, index)-{-	var entry = changes[key];--	// never seen this key before-	if (!entry)-	{-		var patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined);--		changes[key] = {-			c: 1,-			z: vnode,-			r: index,-			s: patch-		};--		return;-	}--	// this key was inserted earlier, a match!-	if (entry.c === 0)-	{-		entry.c = 2;-		var subPatches = [];-		_VirtualDom_diffHelp(vnode, entry.z, subPatches, index);--		_VirtualDom_pushPatch(localPatches, 9, index, {-			w: subPatches,-			A: entry-		});--		return;-	}--	// this key has already been removed or moved, a duplicate!-	_VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index);-}----// ADD DOM NODES-//-// Each DOM node has an "index" assigned in order of traversal. It is important-// to minimize our crawl over the actual DOM, so these indexes (along with the-// descendantsCount of virtual nodes) let us skip touching entire subtrees of-// the DOM if we know there are no patches there.---function _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode)-{-	_VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode);-}---// assumes `patches` is non-empty and indexes increase monotonically.-function _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode)-{-	var patch = patches[i];-	var index = patch.r;--	while (index === low)-	{-		var patchType = patch.$;--		if (patchType === 1)-		{-			_VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode);-		}-		else if (patchType === 8)-		{-			patch.t = domNode;-			patch.u = eventNode;--			var subPatches = patch.s.w;-			if (subPatches.length > 0)-			{-				_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);-			}-		}-		else if (patchType === 9)-		{-			patch.t = domNode;-			patch.u = eventNode;--			var data = patch.s;-			if (data)-			{-				data.A.s = domNode;-				var subPatches = data.w;-				if (subPatches.length > 0)-				{-					_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);-				}-			}-		}-		else-		{-			patch.t = domNode;-			patch.u = eventNode;-		}--		i++;--		if (!(patch = patches[i]) || (index = patch.r) > high)-		{-			return i;-		}-	}--	var tag = vNode.$;--	if (tag === 4)-	{-		var subNode = vNode.k;--		while (subNode.$ === 4)-		{-			subNode = subNode.k;-		}--		return _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref);-	}--	// tag must be 1 or 2 at this point--	var vKids = vNode.e;-	var childNodes = domNode.childNodes;-	for (var j = 0; j < vKids.length; j++)-	{-		low++;-		var vKid = tag === 1 ? vKids[j] : vKids[j].b;-		var nextLow = low + (vKid.b || 0);-		if (low <= index && index <= nextLow)-		{-			i = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode);-			if (!(patch = patches[i]) || (index = patch.r) > high)-			{-				return i;-			}-		}-		low = nextLow;-	}-	return i;-}----// APPLY PATCHES---function _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode)-{-	if (patches.length === 0)-	{-		return rootDomNode;-	}--	_VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode);-	return _VirtualDom_applyPatchesHelp(rootDomNode, patches);-}--function _VirtualDom_applyPatchesHelp(rootDomNode, patches)-{-	for (var i = 0; i < patches.length; i++)-	{-		var patch = patches[i];-		var localDomNode = patch.t-		var newNode = _VirtualDom_applyPatch(localDomNode, patch);-		if (localDomNode === rootDomNode)-		{-			rootDomNode = newNode;-		}-	}-	return rootDomNode;-}--function _VirtualDom_applyPatch(domNode, patch)-{-	switch (patch.$)-	{-		case 0:-			return _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u);--		case 4:-			_VirtualDom_applyFacts(domNode, patch.u, patch.s);-			return domNode;--		case 3:-			domNode.replaceData(0, domNode.length, patch.s);-			return domNode;--		case 1:-			return _VirtualDom_applyPatchesHelp(domNode, patch.s);--		case 2:-			if (domNode.elm_event_node_ref)-			{-				domNode.elm_event_node_ref.j = patch.s;-			}-			else-			{-				domNode.elm_event_node_ref = { j: patch.s, p: patch.u };-			}-			return domNode;--		case 6:-			var data = patch.s;-			for (var i = 0; i < data.i; i++)-			{-				domNode.removeChild(domNode.childNodes[data.v]);-			}-			return domNode;--		case 7:-			var data = patch.s;-			var kids = data.e;-			var i = data.v;-			var theEnd = domNode.childNodes[i];-			for (; i < kids.length; i++)-			{-				domNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd);-			}-			return domNode;--		case 9:-			var data = patch.s;-			if (!data)-			{-				domNode.parentNode.removeChild(domNode);-				return domNode;-			}-			var entry = data.A;-			if (typeof entry.r !== 'undefined')-			{-				domNode.parentNode.removeChild(domNode);-			}-			entry.s = _VirtualDom_applyPatchesHelp(domNode, data.w);-			return domNode;--		case 8:-			return _VirtualDom_applyPatchReorder(domNode, patch);--		case 5:-			return patch.s(domNode);--		default:-			_Debug_crash(10); // 'Ran into an unknown patch!'-	}-}---function _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode)-{-	var parentNode = domNode.parentNode;-	var newNode = _VirtualDom_render(vNode, eventNode);--	if (!newNode.elm_event_node_ref)-	{-		newNode.elm_event_node_ref = domNode.elm_event_node_ref;-	}--	if (parentNode && newNode !== domNode)-	{-		parentNode.replaceChild(newNode, domNode);-	}-	return newNode;-}---function _VirtualDom_applyPatchReorder(domNode, patch)-{-	var data = patch.s;--	// remove end inserts-	var frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch);--	// removals-	domNode = _VirtualDom_applyPatchesHelp(domNode, data.w);--	// inserts-	var inserts = data.x;-	for (var i = 0; i < inserts.length; i++)-	{-		var insert = inserts[i];-		var entry = insert.A;-		var node = entry.c === 2-			? entry.s-			: _VirtualDom_render(entry.z, patch.u);-		domNode.insertBefore(node, domNode.childNodes[insert.r]);-	}--	// add end inserts-	if (frag)-	{-		_VirtualDom_appendChild(domNode, frag);-	}--	return domNode;-}---function _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch)-{-	if (!endInserts)-	{-		return;-	}--	var frag = _VirtualDom_doc.createDocumentFragment();-	for (var i = 0; i < endInserts.length; i++)-	{-		var insert = endInserts[i];-		var entry = insert.A;-		_VirtualDom_appendChild(frag, entry.c === 2-			? entry.s-			: _VirtualDom_render(entry.z, patch.u)-		);-	}-	return frag;-}---function _VirtualDom_virtualize(node)-{-	// TEXT NODES--	if (node.nodeType === 3)-	{-		return _VirtualDom_text(node.textContent);-	}---	// WEIRD NODES--	if (node.nodeType !== 1)-	{-		return _VirtualDom_text('');-	}---	// ELEMENT NODES--	var attrList = _List_Nil;-	var attrs = node.attributes;-	for (var i = attrs.length; i--; )-	{-		var attr = attrs[i];-		var name = attr.name;-		var value = attr.value;-		attrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList );-	}--	var tag = node.tagName.toLowerCase();-	var kidList = _List_Nil;-	var kids = node.childNodes;--	for (var i = kids.length; i--; )-	{-		kidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList);-	}-	return A3(_VirtualDom_node, tag, attrList, kidList);-}--function _VirtualDom_dekey(keyedNode)-{-	var keyedKids = keyedNode.e;-	var len = keyedKids.length;-	var kids = new Array(len);-	for (var i = 0; i < len; i++)-	{-		kids[i] = keyedKids[i].b;-	}--	return {-		$: 1,-		c: keyedNode.c,-		d: keyedNode.d,-		e: kids,-		f: keyedNode.f,-		b: keyedNode.b-	};-}-----// ELEMENT---var _Debugger_element;--var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args)-{-	return _Platform_initialize(-		flagDecoder,-		args,-		impl.init,-		impl.update,-		impl.subscriptions,-		function(sendToApp, initialModel) {-			var view = impl.view;-			/**_UNUSED/-			var domNode = args['node'];-			//*/-			/**/-			var domNode = args && args['node'] ? args['node'] : _Debug_crash(0);-			//*/-			var currNode = _VirtualDom_virtualize(domNode);--			return _Browser_makeAnimator(initialModel, function(model)-			{-				var nextNode = view(model);-				var patches = _VirtualDom_diff(currNode, nextNode);-				domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp);-				currNode = nextNode;-			});-		}-	);-});----// DOCUMENT---var _Debugger_document;--var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args)-{-	return _Platform_initialize(-		flagDecoder,-		args,-		impl.init,-		impl.update,-		impl.subscriptions,-		function(sendToApp, initialModel) {-			var divertHrefToApp = impl.setup && impl.setup(sendToApp)-			var view = impl.view;-			var title = _VirtualDom_doc.title;-			var bodyNode = _VirtualDom_doc.body;-			var currNode = _VirtualDom_virtualize(bodyNode);-			return _Browser_makeAnimator(initialModel, function(model)-			{-				_VirtualDom_divertHrefToApp = divertHrefToApp;-				var doc = view(model);-				var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.body);-				var patches = _VirtualDom_diff(currNode, nextNode);-				bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp);-				currNode = nextNode;-				_VirtualDom_divertHrefToApp = 0;-				(title !== doc.title) && (_VirtualDom_doc.title = title = doc.title);-			});-		}-	);-});----// ANIMATION---var _Browser_cancelAnimationFrame =-	typeof cancelAnimationFrame !== 'undefined'-		? cancelAnimationFrame-		: function(id) { clearTimeout(id); };--var _Browser_requestAnimationFrame =-	typeof requestAnimationFrame !== 'undefined'-		? requestAnimationFrame-		: function(callback) { return setTimeout(callback, 1000 / 60); };---function _Browser_makeAnimator(model, draw)-{-	draw(model);--	var state = 0;--	function updateIfNeeded()-	{-		state = state === 1-			? 0-			: ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 );-	}--	return function(nextModel, isSync)-	{-		model = nextModel;--		isSync-			? ( draw(model),-				state === 2 && (state = 1)-				)-			: ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded),-				state = 2-				);-	};-}----// APPLICATION---function _Browser_application(impl)-{-	var onUrlChange = impl.onUrlChange;-	var onUrlRequest = impl.onUrlRequest;-	var key = function() { key.a(onUrlChange(_Browser_getUrl())); };--	return _Browser_document({-		setup: function(sendToApp)-		{-			key.a = sendToApp;-			_Browser_window.addEventListener('popstate', key);-			_Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key);--			return F2(function(domNode, event)-			{-				if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.hasAttribute('download'))-				{-					event.preventDefault();-					var href = domNode.href;-					var curr = _Browser_getUrl();-					var next = $elm$url$Url$fromString(href).a;-					sendToApp(onUrlRequest(-						(next-							&& curr.protocol === next.protocol-							&& curr.host === next.host-							&& curr.port_.a === next.port_.a-						)-							? $elm$browser$Browser$Internal(next)-							: $elm$browser$Browser$External(href)-					));-				}-			});-		},-		init: function(flags)-		{-			return A3(impl.init, flags, _Browser_getUrl(), key);-		},-		view: impl.view,-		update: impl.update,-		subscriptions: impl.subscriptions-	});-}--function _Browser_getUrl()-{-	return $elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1);-}--var _Browser_go = F2(function(key, n)-{-	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {-		n && history.go(n);-		key();-	}));-});--var _Browser_pushUrl = F2(function(key, url)-{-	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {-		history.pushState({}, '', url);-		key();-	}));-});--var _Browser_replaceUrl = F2(function(key, url)-{-	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {-		history.replaceState({}, '', url);-		key();-	}));-});----// GLOBAL EVENTS---var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} };-var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode;-var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode;--var _Browser_on = F3(function(node, eventName, sendToSelf)-{-	return _Scheduler_spawn(_Scheduler_binding(function(callback)-	{-		function handler(event)	{ _Scheduler_rawSpawn(sendToSelf(event)); }-		node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true });-		return function() { node.removeEventListener(eventName, handler); };-	}));-});--var _Browser_decodeEvent = F2(function(decoder, event)-{-	var result = _Json_runHelp(decoder, event);-	return $elm$core$Result$isOk(result) ? $elm$core$Maybe$Just(result.a) : $elm$core$Maybe$Nothing;-});----// PAGE VISIBILITY---function _Browser_visibilityInfo()-{-	return (typeof _VirtualDom_doc.hidden !== 'undefined')-		? { hidden: 'hidden', change: 'visibilitychange' }-		:-	(typeof _VirtualDom_doc.mozHidden !== 'undefined')-		? { hidden: 'mozHidden', change: 'mozvisibilitychange' }-		:-	(typeof _VirtualDom_doc.msHidden !== 'undefined')-		? { hidden: 'msHidden', change: 'msvisibilitychange' }-		:-	(typeof _VirtualDom_doc.webkitHidden !== 'undefined')-		? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' }-		: { hidden: 'hidden', change: 'visibilitychange' };-}----// ANIMATION FRAMES---function _Browser_rAF()-{-	return _Scheduler_binding(function(callback)-	{-		var id = _Browser_requestAnimationFrame(function() {-			callback(_Scheduler_succeed(Date.now()));-		});--		return function() {-			_Browser_cancelAnimationFrame(id);-		};-	});-}---function _Browser_now()-{-	return _Scheduler_binding(function(callback)-	{-		callback(_Scheduler_succeed(Date.now()));-	});-}----// DOM STUFF---function _Browser_withNode(id, doStuff)-{-	return _Scheduler_binding(function(callback)-	{-		_Browser_requestAnimationFrame(function() {-			var node = document.getElementById(id);-			callback(node-				? _Scheduler_succeed(doStuff(node))-				: _Scheduler_fail($elm$browser$Browser$Dom$NotFound(id))-			);-		});-	});-}---function _Browser_withWindow(doStuff)-{-	return _Scheduler_binding(function(callback)-	{-		_Browser_requestAnimationFrame(function() {-			callback(_Scheduler_succeed(doStuff()));-		});-	});-}---// FOCUS and BLUR---var _Browser_call = F2(function(functionName, id)-{-	return _Browser_withNode(id, function(node) {-		node[functionName]();-		return _Utils_Tuple0;-	});-});----// WINDOW VIEWPORT---function _Browser_getViewport()-{-	return {-		scene: _Browser_getScene(),-		viewport: {-			x: _Browser_window.pageXOffset,-			y: _Browser_window.pageYOffset,-			width: _Browser_doc.documentElement.clientWidth,-			height: _Browser_doc.documentElement.clientHeight-		}-	};-}--function _Browser_getScene()-{-	var body = _Browser_doc.body;-	var elem = _Browser_doc.documentElement;-	return {-		width: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth),-		height: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight)-	};-}--var _Browser_setViewport = F2(function(x, y)-{-	return _Browser_withWindow(function()-	{-		_Browser_window.scroll(x, y);-		return _Utils_Tuple0;-	});-});----// ELEMENT VIEWPORT---function _Browser_getViewportOf(id)-{-	return _Browser_withNode(id, function(node)-	{-		return {-			scene: {-				width: node.scrollWidth,-				height: node.scrollHeight-			},-			viewport: {-				x: node.scrollLeft,-				y: node.scrollTop,-				width: node.clientWidth,-				height: node.clientHeight-			}-		};-	});-}---var _Browser_setViewportOf = F3(function(id, x, y)-{-	return _Browser_withNode(id, function(node)-	{-		node.scrollLeft = x;-		node.scrollTop = y;-		return _Utils_Tuple0;-	});-});----// ELEMENT---function _Browser_getElement(id)-{-	return _Browser_withNode(id, function(node)-	{-		var rect = node.getBoundingClientRect();-		var x = _Browser_window.pageXOffset;-		var y = _Browser_window.pageYOffset;-		return {-			scene: _Browser_getScene(),-			viewport: {-				x: x,-				y: y,-				width: _Browser_doc.documentElement.clientWidth,-				height: _Browser_doc.documentElement.clientHeight-			},-			element: {-				x: x + rect.left,-				y: y + rect.top,-				width: rect.width,-				height: rect.height-			}-		};-	});-}----// LOAD and RELOAD---function _Browser_reload(skipCache)-{-	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)-	{-		_VirtualDom_doc.location.reload(skipCache);-	}));-}--function _Browser_load(url)-{-	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)-	{-		try-		{-			_Browser_window.location = url;-		}-		catch(err)-		{-			// Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here.-			// Other browsers reload the page, so let's be consistent about that.-			_VirtualDom_doc.location.reload(false);-		}-	}));-}----function _Time_now(millisToPosix)-{-	return _Scheduler_binding(function(callback)-	{-		callback(_Scheduler_succeed(millisToPosix(Date.now())));-	});-}--var _Time_setInterval = F2(function(interval, task)-{-	return _Scheduler_binding(function(callback)-	{-		var id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval);-		return function() { clearInterval(id); };-	});-});--function _Time_here()-{-	return _Scheduler_binding(function(callback)-	{-		callback(_Scheduler_succeed(-			A2($elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil)-		));-	});-}---function _Time_getZoneName()-{-	return _Scheduler_binding(function(callback)-	{-		try-		{-			var name = $elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone);-		}-		catch (e)-		{-			var name = $elm$time$Time$Offset(new Date().getTimezoneOffset());-		}-		callback(_Scheduler_succeed(name));-	});-}----// SEND REQUEST--var _Http_toTask = F3(function(router, toTask, request)-{-	return _Scheduler_binding(function(callback)-	{-		function done(response) {-			callback(toTask(request.expect.a(response)));-		}--		var xhr = new XMLHttpRequest();-		xhr.addEventListener('error', function() { done($elm$http$Http$NetworkError_); });-		xhr.addEventListener('timeout', function() { done($elm$http$Http$Timeout_); });-		xhr.addEventListener('load', function() { done(_Http_toResponse(request.expect.b, xhr)); });-		$elm$core$Maybe$isJust(request.tracker) && _Http_track(router, xhr, request.tracker.a);--		try {-			xhr.open(request.method, request.url, true);-		} catch (e) {-			return done($elm$http$Http$BadUrl_(request.url));-		}--		_Http_configureRequest(xhr, request);--		request.body.a && xhr.setRequestHeader('Content-Type', request.body.a);-		xhr.send(request.body.b);--		return function() { xhr.c = true; xhr.abort(); };-	});-});---// CONFIGURE--function _Http_configureRequest(xhr, request)-{-	for (var headers = request.headers; headers.b; headers = headers.b) // WHILE_CONS-	{-		xhr.setRequestHeader(headers.a.a, headers.a.b);-	}-	xhr.timeout = request.timeout.a || 0;-	xhr.responseType = request.expect.d;-	xhr.withCredentials = request.allowCookiesFromOtherDomains;-}---// RESPONSES--function _Http_toResponse(toBody, xhr)-{-	return A2(-		200 <= xhr.status && xhr.status < 300 ? $elm$http$Http$GoodStatus_ : $elm$http$Http$BadStatus_,-		_Http_toMetadata(xhr),-		toBody(xhr.response)-	);-}---// METADATA--function _Http_toMetadata(xhr)-{-	return {-		url: xhr.responseURL,-		statusCode: xhr.status,-		statusText: xhr.statusText,-		headers: _Http_parseHeaders(xhr.getAllResponseHeaders())-	};-}---// HEADERS--function _Http_parseHeaders(rawHeaders)-{-	if (!rawHeaders)-	{-		return $elm$core$Dict$empty;-	}--	var headers = $elm$core$Dict$empty;-	var headerPairs = rawHeaders.split('\r\n');-	for (var i = headerPairs.length; i--; )-	{-		var headerPair = headerPairs[i];-		var index = headerPair.indexOf(': ');-		if (index > 0)-		{-			var key = headerPair.substring(0, index);-			var value = headerPair.substring(index + 2);--			headers = A3($elm$core$Dict$update, key, function(oldValue) {-				return $elm$core$Maybe$Just($elm$core$Maybe$isJust(oldValue)-					? value + ', ' + oldValue.a-					: value-				);-			}, headers);-		}-	}-	return headers;-}---// EXPECT--var _Http_expect = F3(function(type, toBody, toValue)-{-	return {-		$: 0,-		d: type,-		b: toBody,-		a: toValue-	};-});--var _Http_mapExpect = F2(function(func, expect)-{-	return {-		$: 0,-		d: expect.d,-		b: expect.b,-		a: function(x) { return func(expect.a(x)); }-	};-});--function _Http_toDataView(arrayBuffer)-{-	return new DataView(arrayBuffer);-}---// BODY and PARTS--var _Http_emptyBody = { $: 0 };-var _Http_pair = F2(function(a, b) { return { $: 0, a: a, b: b }; });--function _Http_toFormData(parts)-{-	for (var formData = new FormData(); parts.b; parts = parts.b) // WHILE_CONS-	{-		var part = parts.a;-		formData.append(part.a, part.b);-	}-	return formData;-}--var _Http_bytesToBlob = F2(function(mime, bytes)-{-	return new Blob([bytes], { type: mime });-});---// PROGRESS--function _Http_track(router, xhr, tracker)-{-	// TODO check out lengthComputable on loadstart event--	xhr.upload.addEventListener('progress', function(event) {-		if (xhr.c) { return; }-		_Scheduler_rawSpawn(A2($elm$core$Platform$sendToSelf, router, _Utils_Tuple2(tracker, $elm$http$Http$Sending({-			sent: event.loaded,-			size: event.total-		}))));-	});-	xhr.addEventListener('progress', function(event) {-		if (xhr.c) { return; }-		_Scheduler_rawSpawn(A2($elm$core$Platform$sendToSelf, router, _Utils_Tuple2(tracker, $elm$http$Http$Receiving({-			received: event.loaded,-			size: event.lengthComputable ? $elm$core$Maybe$Just(event.total) : $elm$core$Maybe$Nothing-		}))));-	});-}---var _Bitwise_and = F2(function(a, b)-{-	return a & b;-});--var _Bitwise_or = F2(function(a, b)-{-	return a | b;-});--var _Bitwise_xor = F2(function(a, b)-{-	return a ^ b;-});--function _Bitwise_complement(a)-{-	return ~a;-};--var _Bitwise_shiftLeftBy = F2(function(offset, a)-{-	return a << offset;-});--var _Bitwise_shiftRightBy = F2(function(offset, a)-{-	return a >> offset;-});--var _Bitwise_shiftRightZfBy = F2(function(offset, a)-{-	return a >>> offset;-});-----// STRINGS---var _Parser_isSubString = F5(function(smallString, offset, row, col, bigString)-{-	var smallLength = smallString.length;-	var isGood = offset + smallLength <= bigString.length;--	for (var i = 0; isGood && i < smallLength; )-	{-		var code = bigString.charCodeAt(offset);-		isGood =-			smallString[i++] === bigString[offset++]-			&& (-				code === 0x000A /* \n */-					? ( row++, col=1 )-					: ( col++, (code & 0xF800) === 0xD800 ? smallString[i++] === bigString[offset++] : 1 )-			)-	}--	return _Utils_Tuple3(isGood ? offset : -1, row, col);-});----// CHARS---var _Parser_isSubChar = F3(function(predicate, offset, string)-{-	return (-		string.length <= offset-			? -1-			:-		(string.charCodeAt(offset) & 0xF800) === 0xD800-			? (predicate(_Utils_chr(string.substr(offset, 2))) ? offset + 2 : -1)-			:-		(predicate(_Utils_chr(string[offset]))-			? ((string[offset] === '\n') ? -2 : (offset + 1))-			: -1-		)-	);-});---var _Parser_isAsciiCode = F3(function(code, offset, string)-{-	return string.charCodeAt(offset) === code;-});----// NUMBERS---var _Parser_chompBase10 = F2(function(offset, string)-{-	for (; offset < string.length; offset++)-	{-		var code = string.charCodeAt(offset);-		if (code < 0x30 || 0x39 < code)-		{-			return offset;-		}-	}-	return offset;-});---var _Parser_consumeBase = F3(function(base, offset, string)-{-	for (var total = 0; offset < string.length; offset++)-	{-		var digit = string.charCodeAt(offset) - 0x30;-		if (digit < 0 || base <= digit) break;-		total = base * total + digit;-	}-	return _Utils_Tuple2(offset, total);-});---var _Parser_consumeBase16 = F2(function(offset, string)-{-	for (var total = 0; offset < string.length; offset++)-	{-		var code = string.charCodeAt(offset);-		if (0x30 <= code && code <= 0x39)-		{-			total = 16 * total + code - 0x30;-		}-		else if (0x41 <= code && code <= 0x46)-		{-			total = 16 * total + code - 55;-		}-		else if (0x61 <= code && code <= 0x66)-		{-			total = 16 * total + code - 87;-		}-		else-		{-			break;-		}-	}-	return _Utils_Tuple2(offset, total);-});----// FIND STRING---var _Parser_findSubString = F5(function(smallString, offset, row, col, bigString)-{-	var newOffset = bigString.indexOf(smallString, offset);-	var target = newOffset < 0 ? bigString.length : newOffset + smallString.length;--	while (offset < target)-	{-		var code = bigString.charCodeAt(offset++);-		code === 0x000A /* \n */-			? ( col=1, row++ )-			: ( col++, (code & 0xF800) === 0xD800 && offset++ )-	}--	return _Utils_Tuple3(newOffset, row, col);-});-var $elm$core$List$cons = _List_cons;-var $elm$core$Elm$JsArray$foldr = _JsArray_foldr;-var $elm$core$Array$foldr = F3(-	function (func, baseCase, _v0) {-		var tree = _v0.c;-		var tail = _v0.d;-		var helper = F2(-			function (node, acc) {-				if (node.$ === 'SubTree') {-					var subTree = node.a;-					return A3($elm$core$Elm$JsArray$foldr, helper, acc, subTree);-				} else {-					var values = node.a;-					return A3($elm$core$Elm$JsArray$foldr, func, acc, values);-				}-			});-		return A3(-			$elm$core$Elm$JsArray$foldr,-			helper,-			A3($elm$core$Elm$JsArray$foldr, func, baseCase, tail),-			tree);-	});-var $elm$core$Array$toList = function (array) {-	return A3($elm$core$Array$foldr, $elm$core$List$cons, _List_Nil, array);-};-var $elm$core$Dict$foldr = F3(-	function (func, acc, t) {-		foldr:-		while (true) {-			if (t.$ === 'RBEmpty_elm_builtin') {-				return acc;-			} else {-				var key = t.b;-				var value = t.c;-				var left = t.d;-				var right = t.e;-				var $temp$func = func,-					$temp$acc = A3(-					func,-					key,-					value,-					A3($elm$core$Dict$foldr, func, acc, right)),-					$temp$t = left;-				func = $temp$func;-				acc = $temp$acc;-				t = $temp$t;-				continue foldr;-			}-		}-	});-var $elm$core$Dict$toList = function (dict) {-	return A3(-		$elm$core$Dict$foldr,-		F3(-			function (key, value, list) {-				return A2(-					$elm$core$List$cons,-					_Utils_Tuple2(key, value),-					list);-			}),-		_List_Nil,-		dict);-};-var $elm$core$Dict$keys = function (dict) {-	return A3(-		$elm$core$Dict$foldr,-		F3(-			function (key, value, keyList) {-				return A2($elm$core$List$cons, key, keyList);-			}),-		_List_Nil,-		dict);-};-var $elm$core$Set$toList = function (_v0) {-	var dict = _v0.a;-	return $elm$core$Dict$keys(dict);-};-var $elm$core$Basics$EQ = {$: 'EQ'};-var $elm$core$Basics$GT = {$: 'GT'};-var $elm$core$Basics$LT = {$: 'LT'};-var $author$project$Main$LoadFlags = {$: 'LoadFlags'};-var $author$project$Main$Loading = {$: 'Loading'};-var $author$project$Main$NoOp = {$: 'NoOp'};-var $elm$core$Result$Err = function (a) {-	return {$: 'Err', a: a};-};-var $elm$json$Json$Decode$Failure = F2(-	function (a, b) {-		return {$: 'Failure', a: a, b: b};-	});-var $elm$json$Json$Decode$Field = F2(-	function (a, b) {-		return {$: 'Field', a: a, b: b};-	});-var $elm$json$Json$Decode$Index = F2(-	function (a, b) {-		return {$: 'Index', a: a, b: b};-	});-var $elm$core$Result$Ok = function (a) {-	return {$: 'Ok', a: a};-};-var $elm$json$Json$Decode$OneOf = function (a) {-	return {$: 'OneOf', a: a};-};-var $elm$core$Basics$False = {$: 'False'};-var $elm$core$Basics$add = _Basics_add;-var $elm$core$Maybe$Just = function (a) {-	return {$: 'Just', a: a};-};-var $elm$core$Maybe$Nothing = {$: 'Nothing'};-var $elm$core$String$all = _String_all;-var $elm$core$Basics$and = _Basics_and;-var $elm$core$Basics$append = _Utils_append;-var $elm$json$Json$Encode$encode = _Json_encode;-var $elm$core$String$fromInt = _String_fromNumber;-var $elm$core$String$join = F2(-	function (sep, chunks) {-		return A2(-			_String_join,-			sep,-			_List_toArray(chunks));-	});-var $elm$core$String$split = F2(-	function (sep, string) {-		return _List_fromArray(-			A2(_String_split, sep, string));-	});-var $elm$json$Json$Decode$indent = function (str) {-	return A2(-		$elm$core$String$join,-		'\n    ',-		A2($elm$core$String$split, '\n', str));-};-var $elm$core$List$foldl = F3(-	function (func, acc, list) {-		foldl:-		while (true) {-			if (!list.b) {-				return acc;-			} else {-				var x = list.a;-				var xs = list.b;-				var $temp$func = func,-					$temp$acc = A2(func, x, acc),-					$temp$list = xs;-				func = $temp$func;-				acc = $temp$acc;-				list = $temp$list;-				continue foldl;-			}-		}-	});-var $elm$core$List$length = function (xs) {-	return A3(-		$elm$core$List$foldl,-		F2(-			function (_v0, i) {-				return i + 1;-			}),-		0,-		xs);-};-var $elm$core$List$map2 = _List_map2;-var $elm$core$Basics$le = _Utils_le;-var $elm$core$Basics$sub = _Basics_sub;-var $elm$core$List$rangeHelp = F3(-	function (lo, hi, list) {-		rangeHelp:-		while (true) {-			if (_Utils_cmp(lo, hi) < 1) {-				var $temp$lo = lo,-					$temp$hi = hi - 1,-					$temp$list = A2($elm$core$List$cons, hi, list);-				lo = $temp$lo;-				hi = $temp$hi;-				list = $temp$list;-				continue rangeHelp;-			} else {-				return list;-			}-		}-	});-var $elm$core$List$range = F2(-	function (lo, hi) {-		return A3($elm$core$List$rangeHelp, lo, hi, _List_Nil);-	});-var $elm$core$List$indexedMap = F2(-	function (f, xs) {-		return A3(-			$elm$core$List$map2,-			f,-			A2(-				$elm$core$List$range,-				0,-				$elm$core$List$length(xs) - 1),-			xs);-	});-var $elm$core$Char$toCode = _Char_toCode;-var $elm$core$Char$isLower = function (_char) {-	var code = $elm$core$Char$toCode(_char);-	return (97 <= code) && (code <= 122);-};-var $elm$core$Char$isUpper = function (_char) {-	var code = $elm$core$Char$toCode(_char);-	return (code <= 90) && (65 <= code);-};-var $elm$core$Basics$or = _Basics_or;-var $elm$core$Char$isAlpha = function (_char) {-	return $elm$core$Char$isLower(_char) || $elm$core$Char$isUpper(_char);-};-var $elm$core$Char$isDigit = function (_char) {-	var code = $elm$core$Char$toCode(_char);-	return (code <= 57) && (48 <= code);-};-var $elm$core$Char$isAlphaNum = function (_char) {-	return $elm$core$Char$isLower(_char) || ($elm$core$Char$isUpper(_char) || $elm$core$Char$isDigit(_char));-};-var $elm$core$List$reverse = function (list) {-	return A3($elm$core$List$foldl, $elm$core$List$cons, _List_Nil, list);-};-var $elm$core$String$uncons = _String_uncons;-var $elm$json$Json$Decode$errorOneOf = F2(-	function (i, error) {-		return '\n\n(' + ($elm$core$String$fromInt(i + 1) + (') ' + $elm$json$Json$Decode$indent(-			$elm$json$Json$Decode$errorToString(error))));-	});-var $elm$json$Json$Decode$errorToString = function (error) {-	return A2($elm$json$Json$Decode$errorToStringHelp, error, _List_Nil);-};-var $elm$json$Json$Decode$errorToStringHelp = F2(-	function (error, context) {-		errorToStringHelp:-		while (true) {-			switch (error.$) {-				case 'Field':-					var f = error.a;-					var err = error.b;-					var isSimple = function () {-						var _v1 = $elm$core$String$uncons(f);-						if (_v1.$ === 'Nothing') {-							return false;-						} else {-							var _v2 = _v1.a;-							var _char = _v2.a;-							var rest = _v2.b;-							return $elm$core$Char$isAlpha(_char) && A2($elm$core$String$all, $elm$core$Char$isAlphaNum, rest);-						}-					}();-					var fieldName = isSimple ? ('.' + f) : ('[\'' + (f + '\']'));-					var $temp$error = err,-						$temp$context = A2($elm$core$List$cons, fieldName, context);-					error = $temp$error;-					context = $temp$context;-					continue errorToStringHelp;-				case 'Index':-					var i = error.a;-					var err = error.b;-					var indexName = '[' + ($elm$core$String$fromInt(i) + ']');-					var $temp$error = err,-						$temp$context = A2($elm$core$List$cons, indexName, context);-					error = $temp$error;-					context = $temp$context;-					continue errorToStringHelp;-				case 'OneOf':-					var errors = error.a;-					if (!errors.b) {-						return 'Ran into a Json.Decode.oneOf with no possibilities' + function () {-							if (!context.b) {-								return '!';-							} else {-								return ' at json' + A2(-									$elm$core$String$join,-									'',-									$elm$core$List$reverse(context));-							}-						}();-					} else {-						if (!errors.b.b) {-							var err = errors.a;-							var $temp$error = err,-								$temp$context = context;-							error = $temp$error;-							context = $temp$context;-							continue errorToStringHelp;-						} else {-							var starter = function () {-								if (!context.b) {-									return 'Json.Decode.oneOf';-								} else {-									return 'The Json.Decode.oneOf at json' + A2(-										$elm$core$String$join,-										'',-										$elm$core$List$reverse(context));-								}-							}();-							var introduction = starter + (' failed in the following ' + ($elm$core$String$fromInt(-								$elm$core$List$length(errors)) + ' ways:'));-							return A2(-								$elm$core$String$join,-								'\n\n',-								A2(-									$elm$core$List$cons,-									introduction,-									A2($elm$core$List$indexedMap, $elm$json$Json$Decode$errorOneOf, errors)));-						}-					}-				default:-					var msg = error.a;-					var json = error.b;-					var introduction = function () {-						if (!context.b) {-							return 'Problem with the given value:\n\n';-						} else {-							return 'Problem with the value at json' + (A2(-								$elm$core$String$join,-								'',-								$elm$core$List$reverse(context)) + ':\n\n    ');-						}-					}();-					return introduction + ($elm$json$Json$Decode$indent(-						A2($elm$json$Json$Encode$encode, 4, json)) + ('\n\n' + msg));-			}-		}-	});-var $elm$core$Array$branchFactor = 32;-var $elm$core$Array$Array_elm_builtin = F4(-	function (a, b, c, d) {-		return {$: 'Array_elm_builtin', a: a, b: b, c: c, d: d};-	});-var $elm$core$Elm$JsArray$empty = _JsArray_empty;-var $elm$core$Basics$ceiling = _Basics_ceiling;-var $elm$core$Basics$fdiv = _Basics_fdiv;-var $elm$core$Basics$logBase = F2(-	function (base, number) {-		return _Basics_log(number) / _Basics_log(base);-	});-var $elm$core$Basics$toFloat = _Basics_toFloat;-var $elm$core$Array$shiftStep = $elm$core$Basics$ceiling(-	A2($elm$core$Basics$logBase, 2, $elm$core$Array$branchFactor));-var $elm$core$Array$empty = A4($elm$core$Array$Array_elm_builtin, 0, $elm$core$Array$shiftStep, $elm$core$Elm$JsArray$empty, $elm$core$Elm$JsArray$empty);-var $elm$core$Elm$JsArray$initialize = _JsArray_initialize;-var $elm$core$Array$Leaf = function (a) {-	return {$: 'Leaf', a: a};-};-var $elm$core$Basics$apL = F2(-	function (f, x) {-		return f(x);-	});-var $elm$core$Basics$apR = F2(-	function (x, f) {-		return f(x);-	});-var $elm$core$Basics$eq = _Utils_equal;-var $elm$core$Basics$floor = _Basics_floor;-var $elm$core$Elm$JsArray$length = _JsArray_length;-var $elm$core$Basics$gt = _Utils_gt;-var $elm$core$Basics$max = F2(-	function (x, y) {-		return (_Utils_cmp(x, y) > 0) ? x : y;-	});-var $elm$core$Basics$mul = _Basics_mul;-var $elm$core$Array$SubTree = function (a) {-	return {$: 'SubTree', a: a};-};-var $elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList;-var $elm$core$Array$compressNodes = F2(-	function (nodes, acc) {-		compressNodes:-		while (true) {-			var _v0 = A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodes);-			var node = _v0.a;-			var remainingNodes = _v0.b;-			var newAcc = A2(-				$elm$core$List$cons,-				$elm$core$Array$SubTree(node),-				acc);-			if (!remainingNodes.b) {-				return $elm$core$List$reverse(newAcc);-			} else {-				var $temp$nodes = remainingNodes,-					$temp$acc = newAcc;-				nodes = $temp$nodes;-				acc = $temp$acc;-				continue compressNodes;-			}-		}-	});-var $elm$core$Tuple$first = function (_v0) {-	var x = _v0.a;-	return x;-};-var $elm$core$Array$treeFromBuilder = F2(-	function (nodeList, nodeListSize) {-		treeFromBuilder:-		while (true) {-			var newNodeSize = $elm$core$Basics$ceiling(nodeListSize / $elm$core$Array$branchFactor);-			if (newNodeSize === 1) {-				return A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodeList).a;-			} else {-				var $temp$nodeList = A2($elm$core$Array$compressNodes, nodeList, _List_Nil),-					$temp$nodeListSize = newNodeSize;-				nodeList = $temp$nodeList;-				nodeListSize = $temp$nodeListSize;-				continue treeFromBuilder;-			}-		}-	});-var $elm$core$Array$builderToArray = F2(-	function (reverseNodeList, builder) {-		if (!builder.nodeListSize) {-			return A4(-				$elm$core$Array$Array_elm_builtin,-				$elm$core$Elm$JsArray$length(builder.tail),-				$elm$core$Array$shiftStep,-				$elm$core$Elm$JsArray$empty,-				builder.tail);-		} else {-			var treeLen = builder.nodeListSize * $elm$core$Array$branchFactor;-			var depth = $elm$core$Basics$floor(-				A2($elm$core$Basics$logBase, $elm$core$Array$branchFactor, treeLen - 1));-			var correctNodeList = reverseNodeList ? $elm$core$List$reverse(builder.nodeList) : builder.nodeList;-			var tree = A2($elm$core$Array$treeFromBuilder, correctNodeList, builder.nodeListSize);-			return A4(-				$elm$core$Array$Array_elm_builtin,-				$elm$core$Elm$JsArray$length(builder.tail) + treeLen,-				A2($elm$core$Basics$max, 5, depth * $elm$core$Array$shiftStep),-				tree,-				builder.tail);-		}-	});-var $elm$core$Basics$idiv = _Basics_idiv;-var $elm$core$Basics$lt = _Utils_lt;-var $elm$core$Array$initializeHelp = F5(-	function (fn, fromIndex, len, nodeList, tail) {-		initializeHelp:-		while (true) {-			if (fromIndex < 0) {-				return A2(-					$elm$core$Array$builderToArray,-					false,-					{nodeList: nodeList, nodeListSize: (len / $elm$core$Array$branchFactor) | 0, tail: tail});-			} else {-				var leaf = $elm$core$Array$Leaf(-					A3($elm$core$Elm$JsArray$initialize, $elm$core$Array$branchFactor, fromIndex, fn));-				var $temp$fn = fn,-					$temp$fromIndex = fromIndex - $elm$core$Array$branchFactor,-					$temp$len = len,-					$temp$nodeList = A2($elm$core$List$cons, leaf, nodeList),-					$temp$tail = tail;-				fn = $temp$fn;-				fromIndex = $temp$fromIndex;-				len = $temp$len;-				nodeList = $temp$nodeList;-				tail = $temp$tail;-				continue initializeHelp;-			}-		}-	});-var $elm$core$Basics$remainderBy = _Basics_remainderBy;-var $elm$core$Array$initialize = F2(-	function (len, fn) {-		if (len <= 0) {-			return $elm$core$Array$empty;-		} else {-			var tailLen = len % $elm$core$Array$branchFactor;-			var tail = A3($elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn);-			var initialFromIndex = (len - tailLen) - $elm$core$Array$branchFactor;-			return A5($elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail);-		}-	});-var $elm$core$Basics$True = {$: 'True'};-var $elm$core$Result$isOk = function (result) {-	if (result.$ === 'Ok') {-		return true;-	} else {-		return false;-	}-};-var $elm$json$Json$Decode$map = _Json_map1;-var $elm$json$Json$Decode$map2 = _Json_map2;-var $elm$json$Json$Decode$succeed = _Json_succeed;-var $elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) {-	switch (handler.$) {-		case 'Normal':-			return 0;-		case 'MayStopPropagation':-			return 1;-		case 'MayPreventDefault':-			return 2;-		default:-			return 3;-	}-};-var $elm$browser$Browser$External = function (a) {-	return {$: 'External', a: a};-};-var $elm$browser$Browser$Internal = function (a) {-	return {$: 'Internal', a: a};-};-var $elm$core$Basics$identity = function (x) {-	return x;-};-var $elm$browser$Browser$Dom$NotFound = function (a) {-	return {$: 'NotFound', a: a};-};-var $elm$url$Url$Http = {$: 'Http'};-var $elm$url$Url$Https = {$: 'Https'};-var $elm$url$Url$Url = F6(-	function (protocol, host, port_, path, query, fragment) {-		return {fragment: fragment, host: host, path: path, port_: port_, protocol: protocol, query: query};-	});-var $elm$core$String$contains = _String_contains;-var $elm$core$String$length = _String_length;-var $elm$core$String$slice = _String_slice;-var $elm$core$String$dropLeft = F2(-	function (n, string) {-		return (n < 1) ? string : A3(-			$elm$core$String$slice,-			n,-			$elm$core$String$length(string),-			string);-	});-var $elm$core$String$indexes = _String_indexes;-var $elm$core$String$isEmpty = function (string) {-	return string === '';-};-var $elm$core$String$left = F2(-	function (n, string) {-		return (n < 1) ? '' : A3($elm$core$String$slice, 0, n, string);-	});-var $elm$core$String$toInt = _String_toInt;-var $elm$url$Url$chompBeforePath = F5(-	function (protocol, path, params, frag, str) {-		if ($elm$core$String$isEmpty(str) || A2($elm$core$String$contains, '@', str)) {-			return $elm$core$Maybe$Nothing;-		} else {-			var _v0 = A2($elm$core$String$indexes, ':', str);-			if (!_v0.b) {-				return $elm$core$Maybe$Just(-					A6($elm$url$Url$Url, protocol, str, $elm$core$Maybe$Nothing, path, params, frag));-			} else {-				if (!_v0.b.b) {-					var i = _v0.a;-					var _v1 = $elm$core$String$toInt(-						A2($elm$core$String$dropLeft, i + 1, str));-					if (_v1.$ === 'Nothing') {-						return $elm$core$Maybe$Nothing;-					} else {-						var port_ = _v1;-						return $elm$core$Maybe$Just(-							A6(-								$elm$url$Url$Url,-								protocol,-								A2($elm$core$String$left, i, str),-								port_,-								path,-								params,-								frag));-					}-				} else {-					return $elm$core$Maybe$Nothing;-				}-			}-		}-	});-var $elm$url$Url$chompBeforeQuery = F4(-	function (protocol, params, frag, str) {-		if ($elm$core$String$isEmpty(str)) {-			return $elm$core$Maybe$Nothing;-		} else {-			var _v0 = A2($elm$core$String$indexes, '/', str);-			if (!_v0.b) {-				return A5($elm$url$Url$chompBeforePath, protocol, '/', params, frag, str);-			} else {-				var i = _v0.a;-				return A5(-					$elm$url$Url$chompBeforePath,-					protocol,-					A2($elm$core$String$dropLeft, i, str),-					params,-					frag,-					A2($elm$core$String$left, i, str));-			}-		}-	});-var $elm$url$Url$chompBeforeFragment = F3(-	function (protocol, frag, str) {-		if ($elm$core$String$isEmpty(str)) {-			return $elm$core$Maybe$Nothing;-		} else {-			var _v0 = A2($elm$core$String$indexes, '?', str);-			if (!_v0.b) {-				return A4($elm$url$Url$chompBeforeQuery, protocol, $elm$core$Maybe$Nothing, frag, str);-			} else {-				var i = _v0.a;-				return A4(-					$elm$url$Url$chompBeforeQuery,-					protocol,-					$elm$core$Maybe$Just(-						A2($elm$core$String$dropLeft, i + 1, str)),-					frag,-					A2($elm$core$String$left, i, str));-			}-		}-	});-var $elm$url$Url$chompAfterProtocol = F2(-	function (protocol, str) {-		if ($elm$core$String$isEmpty(str)) {-			return $elm$core$Maybe$Nothing;-		} else {-			var _v0 = A2($elm$core$String$indexes, '#', str);-			if (!_v0.b) {-				return A3($elm$url$Url$chompBeforeFragment, protocol, $elm$core$Maybe$Nothing, str);-			} else {-				var i = _v0.a;-				return A3(-					$elm$url$Url$chompBeforeFragment,-					protocol,-					$elm$core$Maybe$Just(-						A2($elm$core$String$dropLeft, i + 1, str)),-					A2($elm$core$String$left, i, str));-			}-		}-	});-var $elm$core$String$startsWith = _String_startsWith;-var $elm$url$Url$fromString = function (str) {-	return A2($elm$core$String$startsWith, 'http://', str) ? A2(-		$elm$url$Url$chompAfterProtocol,-		$elm$url$Url$Http,-		A2($elm$core$String$dropLeft, 7, str)) : (A2($elm$core$String$startsWith, 'https://', str) ? A2(-		$elm$url$Url$chompAfterProtocol,-		$elm$url$Url$Https,-		A2($elm$core$String$dropLeft, 8, str)) : $elm$core$Maybe$Nothing);-};-var $elm$core$Basics$never = function (_v0) {-	never:-	while (true) {-		var nvr = _v0.a;-		var $temp$_v0 = nvr;-		_v0 = $temp$_v0;-		continue never;-	}-};-var $elm$core$Task$Perform = function (a) {-	return {$: 'Perform', a: a};-};-var $elm$core$Task$succeed = _Scheduler_succeed;-var $elm$core$Task$init = $elm$core$Task$succeed(_Utils_Tuple0);-var $elm$core$List$foldrHelper = F4(-	function (fn, acc, ctr, ls) {-		if (!ls.b) {-			return acc;-		} else {-			var a = ls.a;-			var r1 = ls.b;-			if (!r1.b) {-				return A2(fn, a, acc);-			} else {-				var b = r1.a;-				var r2 = r1.b;-				if (!r2.b) {-					return A2(-						fn,-						a,-						A2(fn, b, acc));-				} else {-					var c = r2.a;-					var r3 = r2.b;-					if (!r3.b) {-						return A2(-							fn,-							a,-							A2(-								fn,-								b,-								A2(fn, c, acc)));-					} else {-						var d = r3.a;-						var r4 = r3.b;-						var res = (ctr > 500) ? A3(-							$elm$core$List$foldl,-							fn,-							acc,-							$elm$core$List$reverse(r4)) : A4($elm$core$List$foldrHelper, fn, acc, ctr + 1, r4);-						return A2(-							fn,-							a,-							A2(-								fn,-								b,-								A2(-									fn,-									c,-									A2(fn, d, res))));-					}-				}-			}-		}-	});-var $elm$core$List$foldr = F3(-	function (fn, acc, ls) {-		return A4($elm$core$List$foldrHelper, fn, acc, 0, ls);-	});-var $elm$core$List$map = F2(-	function (f, xs) {-		return A3(-			$elm$core$List$foldr,-			F2(-				function (x, acc) {-					return A2(-						$elm$core$List$cons,-						f(x),-						acc);-				}),-			_List_Nil,-			xs);-	});-var $elm$core$Task$andThen = _Scheduler_andThen;-var $elm$core$Task$map = F2(-	function (func, taskA) {-		return A2(-			$elm$core$Task$andThen,-			function (a) {-				return $elm$core$Task$succeed(-					func(a));-			},-			taskA);-	});-var $elm$core$Task$map2 = F3(-	function (func, taskA, taskB) {-		return A2(-			$elm$core$Task$andThen,-			function (a) {-				return A2(-					$elm$core$Task$andThen,-					function (b) {-						return $elm$core$Task$succeed(-							A2(func, a, b));-					},-					taskB);-			},-			taskA);-	});-var $elm$core$Task$sequence = function (tasks) {-	return A3(-		$elm$core$List$foldr,-		$elm$core$Task$map2($elm$core$List$cons),-		$elm$core$Task$succeed(_List_Nil),-		tasks);-};-var $elm$core$Platform$sendToApp = _Platform_sendToApp;-var $elm$core$Task$spawnCmd = F2(-	function (router, _v0) {-		var task = _v0.a;-		return _Scheduler_spawn(-			A2(-				$elm$core$Task$andThen,-				$elm$core$Platform$sendToApp(router),-				task));-	});-var $elm$core$Task$onEffects = F3(-	function (router, commands, state) {-		return A2(-			$elm$core$Task$map,-			function (_v0) {-				return _Utils_Tuple0;-			},-			$elm$core$Task$sequence(-				A2(-					$elm$core$List$map,-					$elm$core$Task$spawnCmd(router),-					commands)));-	});-var $elm$core$Task$onSelfMsg = F3(-	function (_v0, _v1, _v2) {-		return $elm$core$Task$succeed(_Utils_Tuple0);-	});-var $elm$core$Task$cmdMap = F2(-	function (tagger, _v0) {-		var task = _v0.a;-		return $elm$core$Task$Perform(-			A2($elm$core$Task$map, tagger, task));-	});-_Platform_effectManagers['Task'] = _Platform_createManager($elm$core$Task$init, $elm$core$Task$onEffects, $elm$core$Task$onSelfMsg, $elm$core$Task$cmdMap);-var $elm$core$Task$command = _Platform_leaf('Task');-var $elm$core$Task$perform = F2(-	function (toMessage, task) {-		return $elm$core$Task$command(-			$elm$core$Task$Perform(-				A2($elm$core$Task$map, toMessage, task)));-	});-var $elm$browser$Browser$application = _Browser_application;-var $elm$time$Time$Every = F2(-	function (a, b) {-		return {$: 'Every', a: a, b: b};-	});-var $elm$time$Time$State = F2(-	function (taggers, processes) {-		return {processes: processes, taggers: taggers};-	});-var $elm$core$Dict$RBEmpty_elm_builtin = {$: 'RBEmpty_elm_builtin'};-var $elm$core$Dict$empty = $elm$core$Dict$RBEmpty_elm_builtin;-var $elm$time$Time$init = $elm$core$Task$succeed(-	A2($elm$time$Time$State, $elm$core$Dict$empty, $elm$core$Dict$empty));-var $elm$core$Basics$compare = _Utils_compare;-var $elm$core$Dict$get = F2(-	function (targetKey, dict) {-		get:-		while (true) {-			if (dict.$ === 'RBEmpty_elm_builtin') {-				return $elm$core$Maybe$Nothing;-			} else {-				var key = dict.b;-				var value = dict.c;-				var left = dict.d;-				var right = dict.e;-				var _v1 = A2($elm$core$Basics$compare, targetKey, key);-				switch (_v1.$) {-					case 'LT':-						var $temp$targetKey = targetKey,-							$temp$dict = left;-						targetKey = $temp$targetKey;-						dict = $temp$dict;-						continue get;-					case 'EQ':-						return $elm$core$Maybe$Just(value);-					default:-						var $temp$targetKey = targetKey,-							$temp$dict = right;-						targetKey = $temp$targetKey;-						dict = $temp$dict;-						continue get;-				}-			}-		}-	});-var $elm$core$Dict$Black = {$: 'Black'};-var $elm$core$Dict$RBNode_elm_builtin = F5(-	function (a, b, c, d, e) {-		return {$: 'RBNode_elm_builtin', a: a, b: b, c: c, d: d, e: e};-	});-var $elm$core$Dict$Red = {$: 'Red'};-var $elm$core$Dict$balance = F5(-	function (color, key, value, left, right) {-		if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Red')) {-			var _v1 = right.a;-			var rK = right.b;-			var rV = right.c;-			var rLeft = right.d;-			var rRight = right.e;-			if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) {-				var _v3 = left.a;-				var lK = left.b;-				var lV = left.c;-				var lLeft = left.d;-				var lRight = left.e;-				return A5(-					$elm$core$Dict$RBNode_elm_builtin,-					$elm$core$Dict$Red,-					key,-					value,-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, lK, lV, lLeft, lRight),-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rLeft, rRight));-			} else {-				return A5(-					$elm$core$Dict$RBNode_elm_builtin,-					color,-					rK,-					rV,-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, left, rLeft),-					rRight);-			}-		} else {-			if ((((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) && (left.d.$ === 'RBNode_elm_builtin')) && (left.d.a.$ === 'Red')) {-				var _v5 = left.a;-				var lK = left.b;-				var lV = left.c;-				var _v6 = left.d;-				var _v7 = _v6.a;-				var llK = _v6.b;-				var llV = _v6.c;-				var llLeft = _v6.d;-				var llRight = _v6.e;-				var lRight = left.e;-				return A5(-					$elm$core$Dict$RBNode_elm_builtin,-					$elm$core$Dict$Red,-					lK,-					lV,-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight),-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, key, value, lRight, right));-			} else {-				return A5($elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right);-			}-		}-	});-var $elm$core$Dict$insertHelp = F3(-	function (key, value, dict) {-		if (dict.$ === 'RBEmpty_elm_builtin') {-			return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, $elm$core$Dict$RBEmpty_elm_builtin, $elm$core$Dict$RBEmpty_elm_builtin);-		} else {-			var nColor = dict.a;-			var nKey = dict.b;-			var nValue = dict.c;-			var nLeft = dict.d;-			var nRight = dict.e;-			var _v1 = A2($elm$core$Basics$compare, key, nKey);-			switch (_v1.$) {-				case 'LT':-					return A5(-						$elm$core$Dict$balance,-						nColor,-						nKey,-						nValue,-						A3($elm$core$Dict$insertHelp, key, value, nLeft),-						nRight);-				case 'EQ':-					return A5($elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight);-				default:-					return A5(-						$elm$core$Dict$balance,-						nColor,-						nKey,-						nValue,-						nLeft,-						A3($elm$core$Dict$insertHelp, key, value, nRight));-			}-		}-	});-var $elm$core$Dict$insert = F3(-	function (key, value, dict) {-		var _v0 = A3($elm$core$Dict$insertHelp, key, value, dict);-		if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) {-			var _v1 = _v0.a;-			var k = _v0.b;-			var v = _v0.c;-			var l = _v0.d;-			var r = _v0.e;-			return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r);-		} else {-			var x = _v0;-			return x;-		}-	});-var $elm$time$Time$addMySub = F2(-	function (_v0, state) {-		var interval = _v0.a;-		var tagger = _v0.b;-		var _v1 = A2($elm$core$Dict$get, interval, state);-		if (_v1.$ === 'Nothing') {-			return A3(-				$elm$core$Dict$insert,-				interval,-				_List_fromArray(-					[tagger]),-				state);-		} else {-			var taggers = _v1.a;-			return A3(-				$elm$core$Dict$insert,-				interval,-				A2($elm$core$List$cons, tagger, taggers),-				state);-		}-	});-var $elm$core$Process$kill = _Scheduler_kill;-var $elm$core$Dict$foldl = F3(-	function (func, acc, dict) {-		foldl:-		while (true) {-			if (dict.$ === 'RBEmpty_elm_builtin') {-				return acc;-			} else {-				var key = dict.b;-				var value = dict.c;-				var left = dict.d;-				var right = dict.e;-				var $temp$func = func,-					$temp$acc = A3(-					func,-					key,-					value,-					A3($elm$core$Dict$foldl, func, acc, left)),-					$temp$dict = right;-				func = $temp$func;-				acc = $temp$acc;-				dict = $temp$dict;-				continue foldl;-			}-		}-	});-var $elm$core$Dict$merge = F6(-	function (leftStep, bothStep, rightStep, leftDict, rightDict, initialResult) {-		var stepState = F3(-			function (rKey, rValue, _v0) {-				stepState:-				while (true) {-					var list = _v0.a;-					var result = _v0.b;-					if (!list.b) {-						return _Utils_Tuple2(-							list,-							A3(rightStep, rKey, rValue, result));-					} else {-						var _v2 = list.a;-						var lKey = _v2.a;-						var lValue = _v2.b;-						var rest = list.b;-						if (_Utils_cmp(lKey, rKey) < 0) {-							var $temp$rKey = rKey,-								$temp$rValue = rValue,-								$temp$_v0 = _Utils_Tuple2(-								rest,-								A3(leftStep, lKey, lValue, result));-							rKey = $temp$rKey;-							rValue = $temp$rValue;-							_v0 = $temp$_v0;-							continue stepState;-						} else {-							if (_Utils_cmp(lKey, rKey) > 0) {-								return _Utils_Tuple2(-									list,-									A3(rightStep, rKey, rValue, result));-							} else {-								return _Utils_Tuple2(-									rest,-									A4(bothStep, lKey, lValue, rValue, result));-							}-						}-					}-				}-			});-		var _v3 = A3(-			$elm$core$Dict$foldl,-			stepState,-			_Utils_Tuple2(-				$elm$core$Dict$toList(leftDict),-				initialResult),-			rightDict);-		var leftovers = _v3.a;-		var intermediateResult = _v3.b;-		return A3(-			$elm$core$List$foldl,-			F2(-				function (_v4, result) {-					var k = _v4.a;-					var v = _v4.b;-					return A3(leftStep, k, v, result);-				}),-			intermediateResult,-			leftovers);-	});-var $elm$core$Platform$sendToSelf = _Platform_sendToSelf;-var $elm$time$Time$Name = function (a) {-	return {$: 'Name', a: a};-};-var $elm$time$Time$Offset = function (a) {-	return {$: 'Offset', a: a};-};-var $elm$time$Time$Zone = F2(-	function (a, b) {-		return {$: 'Zone', a: a, b: b};-	});-var $elm$time$Time$customZone = $elm$time$Time$Zone;-var $elm$time$Time$setInterval = _Time_setInterval;-var $elm$core$Process$spawn = _Scheduler_spawn;-var $elm$time$Time$spawnHelp = F3(-	function (router, intervals, processes) {-		if (!intervals.b) {-			return $elm$core$Task$succeed(processes);-		} else {-			var interval = intervals.a;-			var rest = intervals.b;-			var spawnTimer = $elm$core$Process$spawn(-				A2(-					$elm$time$Time$setInterval,-					interval,-					A2($elm$core$Platform$sendToSelf, router, interval)));-			var spawnRest = function (id) {-				return A3(-					$elm$time$Time$spawnHelp,-					router,-					rest,-					A3($elm$core$Dict$insert, interval, id, processes));-			};-			return A2($elm$core$Task$andThen, spawnRest, spawnTimer);-		}-	});-var $elm$time$Time$onEffects = F3(-	function (router, subs, _v0) {-		var processes = _v0.processes;-		var rightStep = F3(-			function (_v6, id, _v7) {-				var spawns = _v7.a;-				var existing = _v7.b;-				var kills = _v7.c;-				return _Utils_Tuple3(-					spawns,-					existing,-					A2(-						$elm$core$Task$andThen,-						function (_v5) {-							return kills;-						},-						$elm$core$Process$kill(id)));-			});-		var newTaggers = A3($elm$core$List$foldl, $elm$time$Time$addMySub, $elm$core$Dict$empty, subs);-		var leftStep = F3(-			function (interval, taggers, _v4) {-				var spawns = _v4.a;-				var existing = _v4.b;-				var kills = _v4.c;-				return _Utils_Tuple3(-					A2($elm$core$List$cons, interval, spawns),-					existing,-					kills);-			});-		var bothStep = F4(-			function (interval, taggers, id, _v3) {-				var spawns = _v3.a;-				var existing = _v3.b;-				var kills = _v3.c;-				return _Utils_Tuple3(-					spawns,-					A3($elm$core$Dict$insert, interval, id, existing),-					kills);-			});-		var _v1 = A6(-			$elm$core$Dict$merge,-			leftStep,-			bothStep,-			rightStep,-			newTaggers,-			processes,-			_Utils_Tuple3(-				_List_Nil,-				$elm$core$Dict$empty,-				$elm$core$Task$succeed(_Utils_Tuple0)));-		var spawnList = _v1.a;-		var existingDict = _v1.b;-		var killTask = _v1.c;-		return A2(-			$elm$core$Task$andThen,-			function (newProcesses) {-				return $elm$core$Task$succeed(-					A2($elm$time$Time$State, newTaggers, newProcesses));-			},-			A2(-				$elm$core$Task$andThen,-				function (_v2) {-					return A3($elm$time$Time$spawnHelp, router, spawnList, existingDict);-				},-				killTask));-	});-var $elm$time$Time$Posix = function (a) {-	return {$: 'Posix', a: a};-};-var $elm$time$Time$millisToPosix = $elm$time$Time$Posix;-var $elm$time$Time$now = _Time_now($elm$time$Time$millisToPosix);-var $elm$time$Time$onSelfMsg = F3(-	function (router, interval, state) {-		var _v0 = A2($elm$core$Dict$get, interval, state.taggers);-		if (_v0.$ === 'Nothing') {-			return $elm$core$Task$succeed(state);-		} else {-			var taggers = _v0.a;-			var tellTaggers = function (time) {-				return $elm$core$Task$sequence(-					A2(-						$elm$core$List$map,-						function (tagger) {-							return A2(-								$elm$core$Platform$sendToApp,-								router,-								tagger(time));-						},-						taggers));-			};-			return A2(-				$elm$core$Task$andThen,-				function (_v1) {-					return $elm$core$Task$succeed(state);-				},-				A2($elm$core$Task$andThen, tellTaggers, $elm$time$Time$now));-		}-	});-var $elm$core$Basics$composeL = F3(-	function (g, f, x) {-		return g(-			f(x));-	});-var $elm$time$Time$subMap = F2(-	function (f, _v0) {-		var interval = _v0.a;-		var tagger = _v0.b;-		return A2(-			$elm$time$Time$Every,-			interval,-			A2($elm$core$Basics$composeL, f, tagger));-	});-_Platform_effectManagers['Time'] = _Platform_createManager($elm$time$Time$init, $elm$time$Time$onEffects, $elm$time$Time$onSelfMsg, 0, $elm$time$Time$subMap);-var $elm$time$Time$subscription = _Platform_leaf('Time');-var $elm$time$Time$every = F2(-	function (interval, tagger) {-		return $elm$time$Time$subscription(-			A2($elm$time$Time$Every, interval, tagger));-	});-var $author$project$Main$LoadedFlags = function (a) {-	return {$: 'LoadedFlags', a: a};-};-var $elm$json$Json$Decode$decodeString = _Json_runOnString;-var $elm$http$Http$BadStatus_ = F2(-	function (a, b) {-		return {$: 'BadStatus_', a: a, b: b};-	});-var $elm$http$Http$BadUrl_ = function (a) {-	return {$: 'BadUrl_', a: a};-};-var $elm$http$Http$GoodStatus_ = F2(-	function (a, b) {-		return {$: 'GoodStatus_', a: a, b: b};-	});-var $elm$http$Http$NetworkError_ = {$: 'NetworkError_'};-var $elm$http$Http$Receiving = function (a) {-	return {$: 'Receiving', a: a};-};-var $elm$http$Http$Sending = function (a) {-	return {$: 'Sending', a: a};-};-var $elm$http$Http$Timeout_ = {$: 'Timeout_'};-var $elm$core$Maybe$isJust = function (maybe) {-	if (maybe.$ === 'Just') {-		return true;-	} else {-		return false;-	}-};-var $elm$core$Dict$getMin = function (dict) {-	getMin:-	while (true) {-		if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) {-			var left = dict.d;-			var $temp$dict = left;-			dict = $temp$dict;-			continue getMin;-		} else {-			return dict;-		}-	}-};-var $elm$core$Dict$moveRedLeft = function (dict) {-	if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) {-		if ((dict.e.d.$ === 'RBNode_elm_builtin') && (dict.e.d.a.$ === 'Red')) {-			var clr = dict.a;-			var k = dict.b;-			var v = dict.c;-			var _v1 = dict.d;-			var lClr = _v1.a;-			var lK = _v1.b;-			var lV = _v1.c;-			var lLeft = _v1.d;-			var lRight = _v1.e;-			var _v2 = dict.e;-			var rClr = _v2.a;-			var rK = _v2.b;-			var rV = _v2.c;-			var rLeft = _v2.d;-			var _v3 = rLeft.a;-			var rlK = rLeft.b;-			var rlV = rLeft.c;-			var rlL = rLeft.d;-			var rlR = rLeft.e;-			var rRight = _v2.e;-			return A5(-				$elm$core$Dict$RBNode_elm_builtin,-				$elm$core$Dict$Red,-				rlK,-				rlV,-				A5(-					$elm$core$Dict$RBNode_elm_builtin,-					$elm$core$Dict$Black,-					k,-					v,-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),-					rlL),-				A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rlR, rRight));-		} else {-			var clr = dict.a;-			var k = dict.b;-			var v = dict.c;-			var _v4 = dict.d;-			var lClr = _v4.a;-			var lK = _v4.b;-			var lV = _v4.c;-			var lLeft = _v4.d;-			var lRight = _v4.e;-			var _v5 = dict.e;-			var rClr = _v5.a;-			var rK = _v5.b;-			var rV = _v5.c;-			var rLeft = _v5.d;-			var rRight = _v5.e;-			if (clr.$ === 'Black') {-				return A5(-					$elm$core$Dict$RBNode_elm_builtin,-					$elm$core$Dict$Black,-					k,-					v,-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));-			} else {-				return A5(-					$elm$core$Dict$RBNode_elm_builtin,-					$elm$core$Dict$Black,-					k,-					v,-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));-			}-		}-	} else {-		return dict;-	}-};-var $elm$core$Dict$moveRedRight = function (dict) {-	if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) {-		if ((dict.d.d.$ === 'RBNode_elm_builtin') && (dict.d.d.a.$ === 'Red')) {-			var clr = dict.a;-			var k = dict.b;-			var v = dict.c;-			var _v1 = dict.d;-			var lClr = _v1.a;-			var lK = _v1.b;-			var lV = _v1.c;-			var _v2 = _v1.d;-			var _v3 = _v2.a;-			var llK = _v2.b;-			var llV = _v2.c;-			var llLeft = _v2.d;-			var llRight = _v2.e;-			var lRight = _v1.e;-			var _v4 = dict.e;-			var rClr = _v4.a;-			var rK = _v4.b;-			var rV = _v4.c;-			var rLeft = _v4.d;-			var rRight = _v4.e;-			return A5(-				$elm$core$Dict$RBNode_elm_builtin,-				$elm$core$Dict$Red,-				lK,-				lV,-				A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight),-				A5(-					$elm$core$Dict$RBNode_elm_builtin,-					$elm$core$Dict$Black,-					k,-					v,-					lRight,-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)));-		} else {-			var clr = dict.a;-			var k = dict.b;-			var v = dict.c;-			var _v5 = dict.d;-			var lClr = _v5.a;-			var lK = _v5.b;-			var lV = _v5.c;-			var lLeft = _v5.d;-			var lRight = _v5.e;-			var _v6 = dict.e;-			var rClr = _v6.a;-			var rK = _v6.b;-			var rV = _v6.c;-			var rLeft = _v6.d;-			var rRight = _v6.e;-			if (clr.$ === 'Black') {-				return A5(-					$elm$core$Dict$RBNode_elm_builtin,-					$elm$core$Dict$Black,-					k,-					v,-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));-			} else {-				return A5(-					$elm$core$Dict$RBNode_elm_builtin,-					$elm$core$Dict$Black,-					k,-					v,-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));-			}-		}-	} else {-		return dict;-	}-};-var $elm$core$Dict$removeHelpPrepEQGT = F7(-	function (targetKey, dict, color, key, value, left, right) {-		if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) {-			var _v1 = left.a;-			var lK = left.b;-			var lV = left.c;-			var lLeft = left.d;-			var lRight = left.e;-			return A5(-				$elm$core$Dict$RBNode_elm_builtin,-				color,-				lK,-				lV,-				lLeft,-				A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, lRight, right));-		} else {-			_v2$2:-			while (true) {-				if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Black')) {-					if (right.d.$ === 'RBNode_elm_builtin') {-						if (right.d.a.$ === 'Black') {-							var _v3 = right.a;-							var _v4 = right.d;-							var _v5 = _v4.a;-							return $elm$core$Dict$moveRedRight(dict);-						} else {-							break _v2$2;-						}-					} else {-						var _v6 = right.a;-						var _v7 = right.d;-						return $elm$core$Dict$moveRedRight(dict);-					}-				} else {-					break _v2$2;-				}-			}-			return dict;-		}-	});-var $elm$core$Dict$removeMin = function (dict) {-	if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) {-		var color = dict.a;-		var key = dict.b;-		var value = dict.c;-		var left = dict.d;-		var lColor = left.a;-		var lLeft = left.d;-		var right = dict.e;-		if (lColor.$ === 'Black') {-			if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) {-				var _v3 = lLeft.a;-				return A5(-					$elm$core$Dict$RBNode_elm_builtin,-					color,-					key,-					value,-					$elm$core$Dict$removeMin(left),-					right);-			} else {-				var _v4 = $elm$core$Dict$moveRedLeft(dict);-				if (_v4.$ === 'RBNode_elm_builtin') {-					var nColor = _v4.a;-					var nKey = _v4.b;-					var nValue = _v4.c;-					var nLeft = _v4.d;-					var nRight = _v4.e;-					return A5(-						$elm$core$Dict$balance,-						nColor,-						nKey,-						nValue,-						$elm$core$Dict$removeMin(nLeft),-						nRight);-				} else {-					return $elm$core$Dict$RBEmpty_elm_builtin;-				}-			}-		} else {-			return A5(-				$elm$core$Dict$RBNode_elm_builtin,-				color,-				key,-				value,-				$elm$core$Dict$removeMin(left),-				right);-		}-	} else {-		return $elm$core$Dict$RBEmpty_elm_builtin;-	}-};-var $elm$core$Dict$removeHelp = F2(-	function (targetKey, dict) {-		if (dict.$ === 'RBEmpty_elm_builtin') {-			return $elm$core$Dict$RBEmpty_elm_builtin;-		} else {-			var color = dict.a;-			var key = dict.b;-			var value = dict.c;-			var left = dict.d;-			var right = dict.e;-			if (_Utils_cmp(targetKey, key) < 0) {-				if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Black')) {-					var _v4 = left.a;-					var lLeft = left.d;-					if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) {-						var _v6 = lLeft.a;-						return A5(-							$elm$core$Dict$RBNode_elm_builtin,-							color,-							key,-							value,-							A2($elm$core$Dict$removeHelp, targetKey, left),-							right);-					} else {-						var _v7 = $elm$core$Dict$moveRedLeft(dict);-						if (_v7.$ === 'RBNode_elm_builtin') {-							var nColor = _v7.a;-							var nKey = _v7.b;-							var nValue = _v7.c;-							var nLeft = _v7.d;-							var nRight = _v7.e;-							return A5(-								$elm$core$Dict$balance,-								nColor,-								nKey,-								nValue,-								A2($elm$core$Dict$removeHelp, targetKey, nLeft),-								nRight);-						} else {-							return $elm$core$Dict$RBEmpty_elm_builtin;-						}-					}-				} else {-					return A5(-						$elm$core$Dict$RBNode_elm_builtin,-						color,-						key,-						value,-						A2($elm$core$Dict$removeHelp, targetKey, left),-						right);-				}-			} else {-				return A2(-					$elm$core$Dict$removeHelpEQGT,-					targetKey,-					A7($elm$core$Dict$removeHelpPrepEQGT, targetKey, dict, color, key, value, left, right));-			}-		}-	});-var $elm$core$Dict$removeHelpEQGT = F2(-	function (targetKey, dict) {-		if (dict.$ === 'RBNode_elm_builtin') {-			var color = dict.a;-			var key = dict.b;-			var value = dict.c;-			var left = dict.d;-			var right = dict.e;-			if (_Utils_eq(targetKey, key)) {-				var _v1 = $elm$core$Dict$getMin(right);-				if (_v1.$ === 'RBNode_elm_builtin') {-					var minKey = _v1.b;-					var minValue = _v1.c;-					return A5(-						$elm$core$Dict$balance,-						color,-						minKey,-						minValue,-						left,-						$elm$core$Dict$removeMin(right));-				} else {-					return $elm$core$Dict$RBEmpty_elm_builtin;-				}-			} else {-				return A5(-					$elm$core$Dict$balance,-					color,-					key,-					value,-					left,-					A2($elm$core$Dict$removeHelp, targetKey, right));-			}-		} else {-			return $elm$core$Dict$RBEmpty_elm_builtin;-		}-	});-var $elm$core$Dict$remove = F2(-	function (key, dict) {-		var _v0 = A2($elm$core$Dict$removeHelp, key, dict);-		if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) {-			var _v1 = _v0.a;-			var k = _v0.b;-			var v = _v0.c;-			var l = _v0.d;-			var r = _v0.e;-			return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r);-		} else {-			var x = _v0;-			return x;-		}-	});-var $elm$core$Dict$update = F3(-	function (targetKey, alter, dictionary) {-		var _v0 = alter(-			A2($elm$core$Dict$get, targetKey, dictionary));-		if (_v0.$ === 'Just') {-			var value = _v0.a;-			return A3($elm$core$Dict$insert, targetKey, value, dictionary);-		} else {-			return A2($elm$core$Dict$remove, targetKey, dictionary);-		}-	});-var $elm$core$Basics$composeR = F3(-	function (f, g, x) {-		return g(-			f(x));-	});-var $elm$http$Http$expectStringResponse = F2(-	function (toMsg, toResult) {-		return A3(-			_Http_expect,-			'',-			$elm$core$Basics$identity,-			A2($elm$core$Basics$composeR, toResult, toMsg));-	});-var $elm$core$Result$mapError = F2(-	function (f, result) {-		if (result.$ === 'Ok') {-			var v = result.a;-			return $elm$core$Result$Ok(v);-		} else {-			var e = result.a;-			return $elm$core$Result$Err(-				f(e));-		}-	});-var $elm$http$Http$BadBody = function (a) {-	return {$: 'BadBody', a: a};-};-var $elm$http$Http$BadStatus = function (a) {-	return {$: 'BadStatus', a: a};-};-var $elm$http$Http$BadUrl = function (a) {-	return {$: 'BadUrl', a: a};-};-var $elm$http$Http$NetworkError = {$: 'NetworkError'};-var $elm$http$Http$Timeout = {$: 'Timeout'};-var $elm$http$Http$resolve = F2(-	function (toResult, response) {-		switch (response.$) {-			case 'BadUrl_':-				var url = response.a;-				return $elm$core$Result$Err(-					$elm$http$Http$BadUrl(url));-			case 'Timeout_':-				return $elm$core$Result$Err($elm$http$Http$Timeout);-			case 'NetworkError_':-				return $elm$core$Result$Err($elm$http$Http$NetworkError);-			case 'BadStatus_':-				var metadata = response.a;-				return $elm$core$Result$Err(-					$elm$http$Http$BadStatus(metadata.statusCode));-			default:-				var body = response.b;-				return A2(-					$elm$core$Result$mapError,-					$elm$http$Http$BadBody,-					toResult(body));-		}-	});-var $elm$http$Http$expectJson = F2(-	function (toMsg, decoder) {-		return A2(-			$elm$http$Http$expectStringResponse,-			toMsg,-			$elm$http$Http$resolve(-				function (string) {-					return A2(-						$elm$core$Result$mapError,-						$elm$json$Json$Decode$errorToString,-						A2($elm$json$Json$Decode$decodeString, decoder, string));-				}));-	});-var $author$project$Main$Percentage = function (a) {-	return {$: 'Percentage', a: a};-};-var $elm$core$Dict$fromList = function (assocs) {-	return A3(-		$elm$core$List$foldl,-		F2(-			function (_v0, dict) {-				var key = _v0.a;-				var value = _v0.b;-				return A3($elm$core$Dict$insert, key, value, dict);-			}),-		$elm$core$Dict$empty,-		assocs);-};-var $elm$json$Json$Decode$keyValuePairs = _Json_decodeKeyValuePairs;-var $elm$json$Json$Decode$dict = function (decoder) {-	return A2(-		$elm$json$Json$Decode$map,-		$elm$core$Dict$fromList,-		$elm$json$Json$Decode$keyValuePairs(decoder));-};-var $elm$json$Json$Decode$int = _Json_decodeInt;-var $author$project$Main$flagsDecoder = $elm$json$Json$Decode$dict(-	A2($elm$json$Json$Decode$map, $author$project$Main$Percentage, $elm$json$Json$Decode$int));-var $elm$http$Http$emptyBody = _Http_emptyBody;-var $elm$http$Http$Request = function (a) {-	return {$: 'Request', a: a};-};-var $elm$http$Http$State = F2(-	function (reqs, subs) {-		return {reqs: reqs, subs: subs};-	});-var $elm$http$Http$init = $elm$core$Task$succeed(-	A2($elm$http$Http$State, $elm$core$Dict$empty, _List_Nil));-var $elm$http$Http$updateReqs = F3(-	function (router, cmds, reqs) {-		updateReqs:-		while (true) {-			if (!cmds.b) {-				return $elm$core$Task$succeed(reqs);-			} else {-				var cmd = cmds.a;-				var otherCmds = cmds.b;-				if (cmd.$ === 'Cancel') {-					var tracker = cmd.a;-					var _v2 = A2($elm$core$Dict$get, tracker, reqs);-					if (_v2.$ === 'Nothing') {-						var $temp$router = router,-							$temp$cmds = otherCmds,-							$temp$reqs = reqs;-						router = $temp$router;-						cmds = $temp$cmds;-						reqs = $temp$reqs;-						continue updateReqs;-					} else {-						var pid = _v2.a;-						return A2(-							$elm$core$Task$andThen,-							function (_v3) {-								return A3(-									$elm$http$Http$updateReqs,-									router,-									otherCmds,-									A2($elm$core$Dict$remove, tracker, reqs));-							},-							$elm$core$Process$kill(pid));-					}-				} else {-					var req = cmd.a;-					return A2(-						$elm$core$Task$andThen,-						function (pid) {-							var _v4 = req.tracker;-							if (_v4.$ === 'Nothing') {-								return A3($elm$http$Http$updateReqs, router, otherCmds, reqs);-							} else {-								var tracker = _v4.a;-								return A3(-									$elm$http$Http$updateReqs,-									router,-									otherCmds,-									A3($elm$core$Dict$insert, tracker, pid, reqs));-							}-						},-						$elm$core$Process$spawn(-							A3(-								_Http_toTask,-								router,-								$elm$core$Platform$sendToApp(router),-								req)));-				}-			}-		}-	});-var $elm$http$Http$onEffects = F4(-	function (router, cmds, subs, state) {-		return A2(-			$elm$core$Task$andThen,-			function (reqs) {-				return $elm$core$Task$succeed(-					A2($elm$http$Http$State, reqs, subs));-			},-			A3($elm$http$Http$updateReqs, router, cmds, state.reqs));-	});-var $elm$core$List$maybeCons = F3(-	function (f, mx, xs) {-		var _v0 = f(mx);-		if (_v0.$ === 'Just') {-			var x = _v0.a;-			return A2($elm$core$List$cons, x, xs);-		} else {-			return xs;-		}-	});-var $elm$core$List$filterMap = F2(-	function (f, xs) {-		return A3(-			$elm$core$List$foldr,-			$elm$core$List$maybeCons(f),-			_List_Nil,-			xs);-	});-var $elm$http$Http$maybeSend = F4(-	function (router, desiredTracker, progress, _v0) {-		var actualTracker = _v0.a;-		var toMsg = _v0.b;-		return _Utils_eq(desiredTracker, actualTracker) ? $elm$core$Maybe$Just(-			A2(-				$elm$core$Platform$sendToApp,-				router,-				toMsg(progress))) : $elm$core$Maybe$Nothing;-	});-var $elm$http$Http$onSelfMsg = F3(-	function (router, _v0, state) {-		var tracker = _v0.a;-		var progress = _v0.b;-		return A2(-			$elm$core$Task$andThen,-			function (_v1) {-				return $elm$core$Task$succeed(state);-			},-			$elm$core$Task$sequence(-				A2(-					$elm$core$List$filterMap,-					A3($elm$http$Http$maybeSend, router, tracker, progress),-					state.subs)));-	});-var $elm$http$Http$Cancel = function (a) {-	return {$: 'Cancel', a: a};-};-var $elm$http$Http$cmdMap = F2(-	function (func, cmd) {-		if (cmd.$ === 'Cancel') {-			var tracker = cmd.a;-			return $elm$http$Http$Cancel(tracker);-		} else {-			var r = cmd.a;-			return $elm$http$Http$Request(-				{-					allowCookiesFromOtherDomains: r.allowCookiesFromOtherDomains,-					body: r.body,-					expect: A2(_Http_mapExpect, func, r.expect),-					headers: r.headers,-					method: r.method,-					timeout: r.timeout,-					tracker: r.tracker,-					url: r.url-				});-		}-	});-var $elm$http$Http$MySub = F2(-	function (a, b) {-		return {$: 'MySub', a: a, b: b};-	});-var $elm$http$Http$subMap = F2(-	function (func, _v0) {-		var tracker = _v0.a;-		var toMsg = _v0.b;-		return A2(-			$elm$http$Http$MySub,-			tracker,-			A2($elm$core$Basics$composeR, toMsg, func));-	});-_Platform_effectManagers['Http'] = _Platform_createManager($elm$http$Http$init, $elm$http$Http$onEffects, $elm$http$Http$onSelfMsg, $elm$http$Http$cmdMap, $elm$http$Http$subMap);-var $elm$http$Http$command = _Platform_leaf('Http');-var $elm$http$Http$subscription = _Platform_leaf('Http');-var $elm$http$Http$request = function (r) {-	return $elm$http$Http$command(-		$elm$http$Http$Request(-			{allowCookiesFromOtherDomains: false, body: r.body, expect: r.expect, headers: r.headers, method: r.method, timeout: r.timeout, tracker: r.tracker, url: r.url}));-};-var $elm$http$Http$get = function (r) {-	return $elm$http$Http$request(-		{body: $elm$http$Http$emptyBody, expect: r.expect, headers: _List_Nil, method: 'GET', timeout: $elm$core$Maybe$Nothing, tracker: $elm$core$Maybe$Nothing, url: r.url});-};-var $elm$url$Url$Builder$toQueryPair = function (_v0) {-	var key = _v0.a;-	var value = _v0.b;-	return key + ('=' + value);-};-var $elm$url$Url$Builder$toQuery = function (parameters) {-	if (!parameters.b) {-		return '';-	} else {-		return '?' + A2(-			$elm$core$String$join,-			'&',-			A2($elm$core$List$map, $elm$url$Url$Builder$toQueryPair, parameters));-	}-};-var $elm$url$Url$Builder$relative = F2(-	function (pathSegments, parameters) {-		return _Utils_ap(-			A2($elm$core$String$join, '/', pathSegments),-			$elm$url$Url$Builder$toQuery(parameters));-	});-var $author$project$Main$sendLoadFlagsRequest = function (rootPath) {-	return $elm$http$Http$get(-		{-			expect: A2(-				$elm$http$Http$expectJson,-				function (res) {-					if (res.$ === 'Ok') {-						var x = res.a;-						return $author$project$Main$LoadedFlags(x);-					} else {-						return $author$project$Main$LoadedFlags($elm$core$Dict$empty);-					}-				},-				$author$project$Main$flagsDecoder),-			url: A2(-				$elm$url$Url$Builder$relative,-				_Utils_ap(-					rootPath,-					_List_fromArray(-						['flags'])),-				_List_Nil)-		});-};-var $elm$core$List$isEmpty = function (xs) {-	if (!xs.b) {-		return true;-	} else {-		return false;-	}-};-var $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles = F2(-	function (_v0, styles) {-		var newStyles = _v0.b;-		var classname = _v0.c;-		return $elm$core$List$isEmpty(newStyles) ? styles : A3($elm$core$Dict$insert, classname, newStyles, styles);-	});-var $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute = function (_v0) {-	var val = _v0.a;-	return val;-};-var $elm$virtual_dom$VirtualDom$keyedNode = function (tag) {-	return _VirtualDom_keyedNode(-		_VirtualDom_noScript(tag));-};-var $elm$virtual_dom$VirtualDom$keyedNodeNS = F2(-	function (namespace, tag) {-		return A2(-			_VirtualDom_keyedNodeNS,-			namespace,-			_VirtualDom_noScript(tag));-	});-var $elm$virtual_dom$VirtualDom$node = function (tag) {-	return _VirtualDom_node(-		_VirtualDom_noScript(tag));-};-var $elm$virtual_dom$VirtualDom$nodeNS = function (tag) {-	return _VirtualDom_nodeNS(-		_VirtualDom_noScript(tag));-};-var $rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml = F2(-	function (_v6, _v7) {-		var key = _v6.a;-		var html = _v6.b;-		var pairs = _v7.a;-		var styles = _v7.b;-		switch (html.$) {-			case 'Unstyled':-				var vdom = html.a;-				return _Utils_Tuple2(-					A2(-						$elm$core$List$cons,-						_Utils_Tuple2(key, vdom),-						pairs),-					styles);-			case 'Node':-				var elemType = html.a;-				var properties = html.b;-				var children = html.c;-				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);-				var _v9 = A3(-					$elm$core$List$foldl,-					$rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml,-					_Utils_Tuple2(_List_Nil, combinedStyles),-					children);-				var childNodes = _v9.a;-				var finalStyles = _v9.b;-				var vdom = A3(-					$elm$virtual_dom$VirtualDom$node,-					elemType,-					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),-					$elm$core$List$reverse(childNodes));-				return _Utils_Tuple2(-					A2(-						$elm$core$List$cons,-						_Utils_Tuple2(key, vdom),-						pairs),-					finalStyles);-			case 'NodeNS':-				var ns = html.a;-				var elemType = html.b;-				var properties = html.c;-				var children = html.d;-				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);-				var _v10 = A3(-					$elm$core$List$foldl,-					$rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml,-					_Utils_Tuple2(_List_Nil, combinedStyles),-					children);-				var childNodes = _v10.a;-				var finalStyles = _v10.b;-				var vdom = A4(-					$elm$virtual_dom$VirtualDom$nodeNS,-					ns,-					elemType,-					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),-					$elm$core$List$reverse(childNodes));-				return _Utils_Tuple2(-					A2(-						$elm$core$List$cons,-						_Utils_Tuple2(key, vdom),-						pairs),-					finalStyles);-			case 'KeyedNode':-				var elemType = html.a;-				var properties = html.b;-				var children = html.c;-				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);-				var _v11 = A3(-					$elm$core$List$foldl,-					$rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml,-					_Utils_Tuple2(_List_Nil, combinedStyles),-					children);-				var childNodes = _v11.a;-				var finalStyles = _v11.b;-				var vdom = A3(-					$elm$virtual_dom$VirtualDom$keyedNode,-					elemType,-					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),-					$elm$core$List$reverse(childNodes));-				return _Utils_Tuple2(-					A2(-						$elm$core$List$cons,-						_Utils_Tuple2(key, vdom),-						pairs),-					finalStyles);-			default:-				var ns = html.a;-				var elemType = html.b;-				var properties = html.c;-				var children = html.d;-				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);-				var _v12 = A3(-					$elm$core$List$foldl,-					$rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml,-					_Utils_Tuple2(_List_Nil, combinedStyles),-					children);-				var childNodes = _v12.a;-				var finalStyles = _v12.b;-				var vdom = A4(-					$elm$virtual_dom$VirtualDom$keyedNodeNS,-					ns,-					elemType,-					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),-					$elm$core$List$reverse(childNodes));-				return _Utils_Tuple2(-					A2(-						$elm$core$List$cons,-						_Utils_Tuple2(key, vdom),-						pairs),-					finalStyles);-		}-	});-var $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml = F2(-	function (html, _v0) {-		var nodes = _v0.a;-		var styles = _v0.b;-		switch (html.$) {-			case 'Unstyled':-				var vdomNode = html.a;-				return _Utils_Tuple2(-					A2($elm$core$List$cons, vdomNode, nodes),-					styles);-			case 'Node':-				var elemType = html.a;-				var properties = html.b;-				var children = html.c;-				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);-				var _v2 = A3(-					$elm$core$List$foldl,-					$rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml,-					_Utils_Tuple2(_List_Nil, combinedStyles),-					children);-				var childNodes = _v2.a;-				var finalStyles = _v2.b;-				var vdomNode = A3(-					$elm$virtual_dom$VirtualDom$node,-					elemType,-					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),-					$elm$core$List$reverse(childNodes));-				return _Utils_Tuple2(-					A2($elm$core$List$cons, vdomNode, nodes),-					finalStyles);-			case 'NodeNS':-				var ns = html.a;-				var elemType = html.b;-				var properties = html.c;-				var children = html.d;-				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);-				var _v3 = A3(-					$elm$core$List$foldl,-					$rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml,-					_Utils_Tuple2(_List_Nil, combinedStyles),-					children);-				var childNodes = _v3.a;-				var finalStyles = _v3.b;-				var vdomNode = A4(-					$elm$virtual_dom$VirtualDom$nodeNS,-					ns,-					elemType,-					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),-					$elm$core$List$reverse(childNodes));-				return _Utils_Tuple2(-					A2($elm$core$List$cons, vdomNode, nodes),-					finalStyles);-			case 'KeyedNode':-				var elemType = html.a;-				var properties = html.b;-				var children = html.c;-				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);-				var _v4 = A3(-					$elm$core$List$foldl,-					$rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml,-					_Utils_Tuple2(_List_Nil, combinedStyles),-					children);-				var childNodes = _v4.a;-				var finalStyles = _v4.b;-				var vdomNode = A3(-					$elm$virtual_dom$VirtualDom$keyedNode,-					elemType,-					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),-					$elm$core$List$reverse(childNodes));-				return _Utils_Tuple2(-					A2($elm$core$List$cons, vdomNode, nodes),-					finalStyles);-			default:-				var ns = html.a;-				var elemType = html.b;-				var properties = html.c;-				var children = html.d;-				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);-				var _v5 = A3(-					$elm$core$List$foldl,-					$rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml,-					_Utils_Tuple2(_List_Nil, combinedStyles),-					children);-				var childNodes = _v5.a;-				var finalStyles = _v5.b;-				var vdomNode = A4(-					$elm$virtual_dom$VirtualDom$keyedNodeNS,-					ns,-					elemType,-					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),-					$elm$core$List$reverse(childNodes));-				return _Utils_Tuple2(-					A2($elm$core$List$cons, vdomNode, nodes),-					finalStyles);-		}-	});-var $elm$core$Dict$singleton = F2(-	function (key, value) {-		return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, key, value, $elm$core$Dict$RBEmpty_elm_builtin, $elm$core$Dict$RBEmpty_elm_builtin);-	});-var $rtfeldman$elm_css$VirtualDom$Styled$stylesFromPropertiesHelp = F2(-	function (candidate, properties) {-		stylesFromPropertiesHelp:-		while (true) {-			if (!properties.b) {-				return candidate;-			} else {-				var _v1 = properties.a;-				var styles = _v1.b;-				var classname = _v1.c;-				var rest = properties.b;-				if ($elm$core$String$isEmpty(classname)) {-					var $temp$candidate = candidate,-						$temp$properties = rest;-					candidate = $temp$candidate;-					properties = $temp$properties;-					continue stylesFromPropertiesHelp;-				} else {-					var $temp$candidate = $elm$core$Maybe$Just(-						_Utils_Tuple2(classname, styles)),-						$temp$properties = rest;-					candidate = $temp$candidate;-					properties = $temp$properties;-					continue stylesFromPropertiesHelp;-				}-			}-		}-	});-var $rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties = function (properties) {-	var _v0 = A2($rtfeldman$elm_css$VirtualDom$Styled$stylesFromPropertiesHelp, $elm$core$Maybe$Nothing, properties);-	if (_v0.$ === 'Nothing') {-		return $elm$core$Dict$empty;-	} else {-		var _v1 = _v0.a;-		var classname = _v1.a;-		var styles = _v1.b;-		return A2($elm$core$Dict$singleton, classname, styles);-	}-};-var $elm$core$List$singleton = function (value) {-	return _List_fromArray(-		[value]);-};-var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text;-var $elm$core$List$any = F2(-	function (isOkay, list) {-		any:-		while (true) {-			if (!list.b) {-				return false;-			} else {-				var x = list.a;-				var xs = list.b;-				if (isOkay(x)) {-					return true;-				} else {-					var $temp$isOkay = isOkay,-						$temp$list = xs;-					isOkay = $temp$isOkay;-					list = $temp$list;-					continue any;-				}-			}-		}-	});-var $elm$core$Basics$not = _Basics_not;-var $elm$core$List$all = F2(-	function (isOkay, list) {-		return !A2(-			$elm$core$List$any,-			A2($elm$core$Basics$composeL, $elm$core$Basics$not, isOkay),-			list);-	});-var $rtfeldman$elm_css$Css$Structure$compactHelp = F2(-	function (declaration, _v0) {-		var keyframesByName = _v0.a;-		var declarations = _v0.b;-		switch (declaration.$) {-			case 'StyleBlockDeclaration':-				var _v2 = declaration.a;-				var properties = _v2.c;-				return $elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(-					keyframesByName,-					A2($elm$core$List$cons, declaration, declarations));-			case 'MediaRule':-				var styleBlocks = declaration.b;-				return A2(-					$elm$core$List$all,-					function (_v3) {-						var properties = _v3.c;-						return $elm$core$List$isEmpty(properties);-					},-					styleBlocks) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(-					keyframesByName,-					A2($elm$core$List$cons, declaration, declarations));-			case 'SupportsRule':-				var otherDeclarations = declaration.b;-				return $elm$core$List$isEmpty(otherDeclarations) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(-					keyframesByName,-					A2($elm$core$List$cons, declaration, declarations));-			case 'DocumentRule':-				return _Utils_Tuple2(-					keyframesByName,-					A2($elm$core$List$cons, declaration, declarations));-			case 'PageRule':-				var properties = declaration.b;-				return $elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(-					keyframesByName,-					A2($elm$core$List$cons, declaration, declarations));-			case 'FontFace':-				var properties = declaration.a;-				return $elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(-					keyframesByName,-					A2($elm$core$List$cons, declaration, declarations));-			case 'Keyframes':-				var record = declaration.a;-				return $elm$core$String$isEmpty(record.declaration) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(-					A3($elm$core$Dict$insert, record.name, record.declaration, keyframesByName),-					declarations);-			case 'Viewport':-				var properties = declaration.a;-				return $elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(-					keyframesByName,-					A2($elm$core$List$cons, declaration, declarations));-			case 'CounterStyle':-				var properties = declaration.a;-				return $elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(-					keyframesByName,-					A2($elm$core$List$cons, declaration, declarations));-			default:-				var tuples = declaration.a;-				return A2(-					$elm$core$List$all,-					function (_v4) {-						var properties = _v4.b;-						return $elm$core$List$isEmpty(properties);-					},-					tuples) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(-					keyframesByName,-					A2($elm$core$List$cons, declaration, declarations));-		}-	});-var $rtfeldman$elm_css$Css$Structure$Keyframes = function (a) {-	return {$: 'Keyframes', a: a};-};-var $elm$core$List$append = F2(-	function (xs, ys) {-		if (!ys.b) {-			return xs;-		} else {-			return A3($elm$core$List$foldr, $elm$core$List$cons, ys, xs);-		}-	});-var $rtfeldman$elm_css$Css$Structure$withKeyframeDeclarations = F2(-	function (keyframesByName, compactedDeclarations) {-		return A2(-			$elm$core$List$append,-			A2(-				$elm$core$List$map,-				function (_v0) {-					var name = _v0.a;-					var decl = _v0.b;-					return $rtfeldman$elm_css$Css$Structure$Keyframes(-						{declaration: decl, name: name});-				},-				$elm$core$Dict$toList(keyframesByName)),-			compactedDeclarations);-	});-var $rtfeldman$elm_css$Css$Structure$compactStylesheet = function (_v0) {-	var charset = _v0.charset;-	var imports = _v0.imports;-	var namespaces = _v0.namespaces;-	var declarations = _v0.declarations;-	var _v1 = A3(-		$elm$core$List$foldr,-		$rtfeldman$elm_css$Css$Structure$compactHelp,-		_Utils_Tuple2($elm$core$Dict$empty, _List_Nil),-		declarations);-	var keyframesByName = _v1.a;-	var compactedDeclarations = _v1.b;-	var finalDeclarations = A2($rtfeldman$elm_css$Css$Structure$withKeyframeDeclarations, keyframesByName, compactedDeclarations);-	return {charset: charset, declarations: finalDeclarations, imports: imports, namespaces: namespaces};-};-var $elm$core$Maybe$map = F2(-	function (f, maybe) {-		if (maybe.$ === 'Just') {-			var value = maybe.a;-			return $elm$core$Maybe$Just(-				f(value));-		} else {-			return $elm$core$Maybe$Nothing;-		}-	});-var $elm$core$Maybe$withDefault = F2(-	function (_default, maybe) {-		if (maybe.$ === 'Just') {-			var value = maybe.a;-			return value;-		} else {-			return _default;-		}-	});-var $rtfeldman$elm_css$Css$Structure$Output$charsetToString = function (charset) {-	return A2(-		$elm$core$Maybe$withDefault,-		'',-		A2(-			$elm$core$Maybe$map,-			function (str) {-				return '@charset \"' + (str + '\"');-			},-			charset));-};-var $elm$core$List$filter = F2(-	function (isGood, list) {-		return A3(-			$elm$core$List$foldr,-			F2(-				function (x, xs) {-					return isGood(x) ? A2($elm$core$List$cons, x, xs) : xs;-				}),-			_List_Nil,-			list);-	});-var $rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString = function (expression) {-	return '(' + (expression.feature + (A2(-		$elm$core$Maybe$withDefault,-		'',-		A2(-			$elm$core$Maybe$map,-			$elm$core$Basics$append(': '),-			expression.value)) + ')'));-};-var $rtfeldman$elm_css$Css$Structure$Output$mediaTypeToString = function (mediaType) {-	switch (mediaType.$) {-		case 'Print':-			return 'print';-		case 'Screen':-			return 'screen';-		default:-			return 'speech';-	}-};-var $rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString = function (mediaQuery) {-	var prefixWith = F3(-		function (str, mediaType, expressions) {-			return str + (' ' + A2(-				$elm$core$String$join,-				' and ',-				A2(-					$elm$core$List$cons,-					$rtfeldman$elm_css$Css$Structure$Output$mediaTypeToString(mediaType),-					A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString, expressions))));-		});-	switch (mediaQuery.$) {-		case 'AllQuery':-			var expressions = mediaQuery.a;-			return A2(-				$elm$core$String$join,-				' and ',-				A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString, expressions));-		case 'OnlyQuery':-			var mediaType = mediaQuery.a;-			var expressions = mediaQuery.b;-			return A3(prefixWith, 'only', mediaType, expressions);-		case 'NotQuery':-			var mediaType = mediaQuery.a;-			var expressions = mediaQuery.b;-			return A3(prefixWith, 'not', mediaType, expressions);-		default:-			var str = mediaQuery.a;-			return str;-	}-};-var $rtfeldman$elm_css$Css$Structure$Output$importMediaQueryToString = F2(-	function (name, mediaQuery) {-		return '@import \"' + (name + ($rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString(mediaQuery) + '\"'));-	});-var $rtfeldman$elm_css$Css$Structure$Output$importToString = function (_v0) {-	var name = _v0.a;-	var mediaQueries = _v0.b;-	return A2(-		$elm$core$String$join,-		'\n',-		A2(-			$elm$core$List$map,-			$rtfeldman$elm_css$Css$Structure$Output$importMediaQueryToString(name),-			mediaQueries));-};-var $rtfeldman$elm_css$Css$Structure$Output$namespaceToString = function (_v0) {-	var prefix = _v0.a;-	var str = _v0.b;-	return '@namespace ' + (prefix + ('\"' + (str + '\"')));-};-var $rtfeldman$elm_css$Css$Structure$Output$spaceIndent = '    ';-var $rtfeldman$elm_css$Css$Structure$Output$indent = function (str) {-	return _Utils_ap($rtfeldman$elm_css$Css$Structure$Output$spaceIndent, str);-};-var $rtfeldman$elm_css$Css$Structure$Output$noIndent = '';-var $rtfeldman$elm_css$Css$Structure$Output$emitProperty = function (str) {-	return str + ';';-};-var $rtfeldman$elm_css$Css$Structure$Output$emitProperties = function (properties) {-	return A2(-		$elm$core$String$join,-		'\n',-		A2(-			$elm$core$List$map,-			A2($elm$core$Basics$composeL, $rtfeldman$elm_css$Css$Structure$Output$indent, $rtfeldman$elm_css$Css$Structure$Output$emitProperty),-			properties));-};-var $elm$core$String$append = _String_append;-var $rtfeldman$elm_css$Css$Structure$Output$pseudoElementToString = function (_v0) {-	var str = _v0.a;-	return '::' + str;-};-var $rtfeldman$elm_css$Css$Structure$Output$combinatorToString = function (combinator) {-	switch (combinator.$) {-		case 'AdjacentSibling':-			return '+';-		case 'GeneralSibling':-			return '~';-		case 'Child':-			return '>';-		default:-			return '';-	}-};-var $rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString = function (repeatableSimpleSelector) {-	switch (repeatableSimpleSelector.$) {-		case 'ClassSelector':-			var str = repeatableSimpleSelector.a;-			return '.' + str;-		case 'IdSelector':-			var str = repeatableSimpleSelector.a;-			return '#' + str;-		case 'PseudoClassSelector':-			var str = repeatableSimpleSelector.a;-			return ':' + str;-		default:-			var str = repeatableSimpleSelector.a;-			return '[' + (str + ']');-	}-};-var $rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString = function (simpleSelectorSequence) {-	switch (simpleSelectorSequence.$) {-		case 'TypeSelectorSequence':-			var str = simpleSelectorSequence.a.a;-			var repeatableSimpleSelectors = simpleSelectorSequence.b;-			return A2(-				$elm$core$String$join,-				'',-				A2(-					$elm$core$List$cons,-					str,-					A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors)));-		case 'UniversalSelectorSequence':-			var repeatableSimpleSelectors = simpleSelectorSequence.a;-			return $elm$core$List$isEmpty(repeatableSimpleSelectors) ? '*' : A2(-				$elm$core$String$join,-				'',-				A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors));-		default:-			var str = simpleSelectorSequence.a;-			var repeatableSimpleSelectors = simpleSelectorSequence.b;-			return A2(-				$elm$core$String$join,-				'',-				A2(-					$elm$core$List$cons,-					str,-					A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors)));-	}-};-var $rtfeldman$elm_css$Css$Structure$Output$selectorChainToString = function (_v0) {-	var combinator = _v0.a;-	var sequence = _v0.b;-	return A2(-		$elm$core$String$join,-		' ',-		_List_fromArray(-			[-				$rtfeldman$elm_css$Css$Structure$Output$combinatorToString(combinator),-				$rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString(sequence)-			]));-};-var $rtfeldman$elm_css$Css$Structure$Output$selectorToString = function (_v0) {-	var simpleSelectorSequence = _v0.a;-	var chain = _v0.b;-	var pseudoElement = _v0.c;-	var segments = A2(-		$elm$core$List$cons,-		$rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString(simpleSelectorSequence),-		A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$selectorChainToString, chain));-	var pseudoElementsString = A2(-		$elm$core$String$join,-		'',-		_List_fromArray(-			[-				A2(-				$elm$core$Maybe$withDefault,-				'',-				A2($elm$core$Maybe$map, $rtfeldman$elm_css$Css$Structure$Output$pseudoElementToString, pseudoElement))-			]));-	return A2(-		$elm$core$String$append,-		A2(-			$elm$core$String$join,-			' ',-			A2(-				$elm$core$List$filter,-				A2($elm$core$Basics$composeL, $elm$core$Basics$not, $elm$core$String$isEmpty),-				segments)),-		pseudoElementsString);-};-var $rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock = F2(-	function (indentLevel, _v0) {-		var firstSelector = _v0.a;-		var otherSelectors = _v0.b;-		var properties = _v0.c;-		var selectorStr = A2(-			$elm$core$String$join,-			', ',-			A2(-				$elm$core$List$map,-				$rtfeldman$elm_css$Css$Structure$Output$selectorToString,-				A2($elm$core$List$cons, firstSelector, otherSelectors)));-		return A2(-			$elm$core$String$join,-			'',-			_List_fromArray(-				[-					selectorStr,-					' {\n',-					indentLevel,-					$rtfeldman$elm_css$Css$Structure$Output$emitProperties(properties),-					'\n',-					indentLevel,-					'}'-				]));-	});-var $rtfeldman$elm_css$Css$Structure$Output$prettyPrintDeclaration = function (decl) {-	switch (decl.$) {-		case 'StyleBlockDeclaration':-			var styleBlock = decl.a;-			return A2($rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock, $rtfeldman$elm_css$Css$Structure$Output$noIndent, styleBlock);-		case 'MediaRule':-			var mediaQueries = decl.a;-			var styleBlocks = decl.b;-			var query = A2(-				$elm$core$String$join,-				',\n',-				A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString, mediaQueries));-			var blocks = A2(-				$elm$core$String$join,-				'\n\n',-				A2(-					$elm$core$List$map,-					A2(-						$elm$core$Basics$composeL,-						$rtfeldman$elm_css$Css$Structure$Output$indent,-						$rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock($rtfeldman$elm_css$Css$Structure$Output$spaceIndent)),-					styleBlocks));-			return '@media ' + (query + (' {\n' + (blocks + '\n}')));-		case 'SupportsRule':-			return 'TODO';-		case 'DocumentRule':-			return 'TODO';-		case 'PageRule':-			return 'TODO';-		case 'FontFace':-			return 'TODO';-		case 'Keyframes':-			var name = decl.a.name;-			var declaration = decl.a.declaration;-			return '@keyframes ' + (name + (' {\n' + (declaration + '\n}')));-		case 'Viewport':-			return 'TODO';-		case 'CounterStyle':-			return 'TODO';-		default:-			return 'TODO';-	}-};-var $rtfeldman$elm_css$Css$Structure$Output$prettyPrint = function (_v0) {-	var charset = _v0.charset;-	var imports = _v0.imports;-	var namespaces = _v0.namespaces;-	var declarations = _v0.declarations;-	return A2(-		$elm$core$String$join,-		'\n\n',-		A2(-			$elm$core$List$filter,-			A2($elm$core$Basics$composeL, $elm$core$Basics$not, $elm$core$String$isEmpty),-			_List_fromArray(-				[-					$rtfeldman$elm_css$Css$Structure$Output$charsetToString(charset),-					A2(-					$elm$core$String$join,-					'\n',-					A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$importToString, imports)),-					A2(-					$elm$core$String$join,-					'\n',-					A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$namespaceToString, namespaces)),-					A2(-					$elm$core$String$join,-					'\n\n',-					A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$prettyPrintDeclaration, declarations))-				])));-};-var $elm$core$List$concat = function (lists) {-	return A3($elm$core$List$foldr, $elm$core$List$append, _List_Nil, lists);-};-var $elm$core$List$concatMap = F2(-	function (f, list) {-		return $elm$core$List$concat(-			A2($elm$core$List$map, f, list));-	});-var $rtfeldman$elm_css$Css$Structure$CounterStyle = function (a) {-	return {$: 'CounterStyle', a: a};-};-var $rtfeldman$elm_css$Css$Structure$FontFace = function (a) {-	return {$: 'FontFace', a: a};-};-var $rtfeldman$elm_css$Css$Structure$PageRule = F2(-	function (a, b) {-		return {$: 'PageRule', a: a, b: b};-	});-var $rtfeldman$elm_css$Css$Structure$Selector = F3(-	function (a, b, c) {-		return {$: 'Selector', a: a, b: b, c: c};-	});-var $rtfeldman$elm_css$Css$Structure$StyleBlock = F3(-	function (a, b, c) {-		return {$: 'StyleBlock', a: a, b: b, c: c};-	});-var $rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration = function (a) {-	return {$: 'StyleBlockDeclaration', a: a};-};-var $rtfeldman$elm_css$Css$Structure$SupportsRule = F2(-	function (a, b) {-		return {$: 'SupportsRule', a: a, b: b};-	});-var $rtfeldman$elm_css$Css$Structure$Viewport = function (a) {-	return {$: 'Viewport', a: a};-};-var $rtfeldman$elm_css$Css$Structure$MediaRule = F2(-	function (a, b) {-		return {$: 'MediaRule', a: a, b: b};-	});-var $rtfeldman$elm_css$Css$Structure$mapLast = F2(-	function (update, list) {-		if (!list.b) {-			return list;-		} else {-			if (!list.b.b) {-				var only = list.a;-				return _List_fromArray(-					[-						update(only)-					]);-			} else {-				var first = list.a;-				var rest = list.b;-				return A2(-					$elm$core$List$cons,-					first,-					A2($rtfeldman$elm_css$Css$Structure$mapLast, update, rest));-			}-		}-	});-var $rtfeldman$elm_css$Css$Structure$withPropertyAppended = F2(-	function (property, _v0) {-		var firstSelector = _v0.a;-		var otherSelectors = _v0.b;-		var properties = _v0.c;-		return A3(-			$rtfeldman$elm_css$Css$Structure$StyleBlock,-			firstSelector,-			otherSelectors,-			_Utils_ap(-				properties,-				_List_fromArray(-					[property])));-	});-var $rtfeldman$elm_css$Css$Structure$appendProperty = F2(-	function (property, declarations) {-		if (!declarations.b) {-			return declarations;-		} else {-			if (!declarations.b.b) {-				switch (declarations.a.$) {-					case 'StyleBlockDeclaration':-						var styleBlock = declarations.a.a;-						return _List_fromArray(-							[-								$rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration(-								A2($rtfeldman$elm_css$Css$Structure$withPropertyAppended, property, styleBlock))-							]);-					case 'MediaRule':-						var _v1 = declarations.a;-						var mediaQueries = _v1.a;-						var styleBlocks = _v1.b;-						return _List_fromArray(-							[-								A2(-								$rtfeldman$elm_css$Css$Structure$MediaRule,-								mediaQueries,-								A2(-									$rtfeldman$elm_css$Css$Structure$mapLast,-									$rtfeldman$elm_css$Css$Structure$withPropertyAppended(property),-									styleBlocks))-							]);-					default:-						return declarations;-				}-			} else {-				var first = declarations.a;-				var rest = declarations.b;-				return A2(-					$elm$core$List$cons,-					first,-					A2($rtfeldman$elm_css$Css$Structure$appendProperty, property, rest));-			}-		}-	});-var $rtfeldman$elm_css$Css$Structure$appendToLastSelector = F2(-	function (f, styleBlock) {-		if (!styleBlock.b.b) {-			var only = styleBlock.a;-			var properties = styleBlock.c;-			return _List_fromArray(-				[-					A3($rtfeldman$elm_css$Css$Structure$StyleBlock, only, _List_Nil, properties),-					A3(-					$rtfeldman$elm_css$Css$Structure$StyleBlock,-					f(only),-					_List_Nil,-					_List_Nil)-				]);-		} else {-			var first = styleBlock.a;-			var rest = styleBlock.b;-			var properties = styleBlock.c;-			var newRest = A2($elm$core$List$map, f, rest);-			var newFirst = f(first);-			return _List_fromArray(-				[-					A3($rtfeldman$elm_css$Css$Structure$StyleBlock, first, rest, properties),-					A3($rtfeldman$elm_css$Css$Structure$StyleBlock, newFirst, newRest, _List_Nil)-				]);-		}-	});-var $rtfeldman$elm_css$Css$Structure$applyPseudoElement = F2(-	function (pseudo, _v0) {-		var sequence = _v0.a;-		var selectors = _v0.b;-		return A3(-			$rtfeldman$elm_css$Css$Structure$Selector,-			sequence,-			selectors,-			$elm$core$Maybe$Just(pseudo));-	});-var $rtfeldman$elm_css$Css$Structure$appendPseudoElementToLastSelector = F2(-	function (pseudo, styleBlock) {-		return A2(-			$rtfeldman$elm_css$Css$Structure$appendToLastSelector,-			$rtfeldman$elm_css$Css$Structure$applyPseudoElement(pseudo),-			styleBlock);-	});-var $rtfeldman$elm_css$Css$Structure$CustomSelector = F2(-	function (a, b) {-		return {$: 'CustomSelector', a: a, b: b};-	});-var $rtfeldman$elm_css$Css$Structure$TypeSelectorSequence = F2(-	function (a, b) {-		return {$: 'TypeSelectorSequence', a: a, b: b};-	});-var $rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence = function (a) {-	return {$: 'UniversalSelectorSequence', a: a};-};-var $rtfeldman$elm_css$Css$Structure$appendRepeatable = F2(-	function (selector, sequence) {-		switch (sequence.$) {-			case 'TypeSelectorSequence':-				var typeSelector = sequence.a;-				var list = sequence.b;-				return A2(-					$rtfeldman$elm_css$Css$Structure$TypeSelectorSequence,-					typeSelector,-					_Utils_ap(-						list,-						_List_fromArray(-							[selector])));-			case 'UniversalSelectorSequence':-				var list = sequence.a;-				return $rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence(-					_Utils_ap(-						list,-						_List_fromArray(-							[selector])));-			default:-				var str = sequence.a;-				var list = sequence.b;-				return A2(-					$rtfeldman$elm_css$Css$Structure$CustomSelector,-					str,-					_Utils_ap(-						list,-						_List_fromArray(-							[selector])));-		}-	});-var $rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator = F2(-	function (selector, list) {-		if (!list.b) {-			return _List_Nil;-		} else {-			if (!list.b.b) {-				var _v1 = list.a;-				var combinator = _v1.a;-				var sequence = _v1.b;-				return _List_fromArray(-					[-						_Utils_Tuple2(-						combinator,-						A2($rtfeldman$elm_css$Css$Structure$appendRepeatable, selector, sequence))-					]);-			} else {-				var first = list.a;-				var rest = list.b;-				return A2(-					$elm$core$List$cons,-					first,-					A2($rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator, selector, rest));-			}-		}-	});-var $rtfeldman$elm_css$Css$Structure$appendRepeatableSelector = F2(-	function (repeatableSimpleSelector, selector) {-		if (!selector.b.b) {-			var sequence = selector.a;-			var pseudoElement = selector.c;-			return A3(-				$rtfeldman$elm_css$Css$Structure$Selector,-				A2($rtfeldman$elm_css$Css$Structure$appendRepeatable, repeatableSimpleSelector, sequence),-				_List_Nil,-				pseudoElement);-		} else {-			var firstSelector = selector.a;-			var tuples = selector.b;-			var pseudoElement = selector.c;-			return A3(-				$rtfeldman$elm_css$Css$Structure$Selector,-				firstSelector,-				A2($rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator, repeatableSimpleSelector, tuples),-				pseudoElement);-		}-	});-var $rtfeldman$elm_css$Css$Structure$appendRepeatableToLastSelector = F2(-	function (selector, styleBlock) {-		return A2(-			$rtfeldman$elm_css$Css$Structure$appendToLastSelector,-			$rtfeldman$elm_css$Css$Structure$appendRepeatableSelector(selector),-			styleBlock);-	});-var $rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors = function (declarations) {-	collectSelectors:-	while (true) {-		if (!declarations.b) {-			return _List_Nil;-		} else {-			if (declarations.a.$ === 'StyleBlockDeclaration') {-				var _v1 = declarations.a.a;-				var firstSelector = _v1.a;-				var otherSelectors = _v1.b;-				var rest = declarations.b;-				return _Utils_ap(-					A2($elm$core$List$cons, firstSelector, otherSelectors),-					$rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(rest));-			} else {-				var rest = declarations.b;-				var $temp$declarations = rest;-				declarations = $temp$declarations;-				continue collectSelectors;-			}-		}-	}-};-var $rtfeldman$elm_css$Css$Structure$DocumentRule = F5(-	function (a, b, c, d, e) {-		return {$: 'DocumentRule', a: a, b: b, c: c, d: d, e: e};-	});-var $rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock = F2(-	function (update, declarations) {-		_v0$12:-		while (true) {-			if (!declarations.b) {-				return declarations;-			} else {-				if (!declarations.b.b) {-					switch (declarations.a.$) {-						case 'StyleBlockDeclaration':-							var styleBlock = declarations.a.a;-							return A2(-								$elm$core$List$map,-								$rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration,-								update(styleBlock));-						case 'MediaRule':-							if (declarations.a.b.b) {-								if (!declarations.a.b.b.b) {-									var _v1 = declarations.a;-									var mediaQueries = _v1.a;-									var _v2 = _v1.b;-									var styleBlock = _v2.a;-									return _List_fromArray(-										[-											A2(-											$rtfeldman$elm_css$Css$Structure$MediaRule,-											mediaQueries,-											update(styleBlock))-										]);-								} else {-									var _v3 = declarations.a;-									var mediaQueries = _v3.a;-									var _v4 = _v3.b;-									var first = _v4.a;-									var rest = _v4.b;-									var _v5 = A2(-										$rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock,-										update,-										_List_fromArray(-											[-												A2($rtfeldman$elm_css$Css$Structure$MediaRule, mediaQueries, rest)-											]));-									if ((_v5.b && (_v5.a.$ === 'MediaRule')) && (!_v5.b.b)) {-										var _v6 = _v5.a;-										var newMediaQueries = _v6.a;-										var newStyleBlocks = _v6.b;-										return _List_fromArray(-											[-												A2(-												$rtfeldman$elm_css$Css$Structure$MediaRule,-												newMediaQueries,-												A2($elm$core$List$cons, first, newStyleBlocks))-											]);-									} else {-										var newDeclarations = _v5;-										return newDeclarations;-									}-								}-							} else {-								break _v0$12;-							}-						case 'SupportsRule':-							var _v7 = declarations.a;-							var str = _v7.a;-							var nestedDeclarations = _v7.b;-							return _List_fromArray(-								[-									A2(-									$rtfeldman$elm_css$Css$Structure$SupportsRule,-									str,-									A2($rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, update, nestedDeclarations))-								]);-						case 'DocumentRule':-							var _v8 = declarations.a;-							var str1 = _v8.a;-							var str2 = _v8.b;-							var str3 = _v8.c;-							var str4 = _v8.d;-							var styleBlock = _v8.e;-							return A2(-								$elm$core$List$map,-								A4($rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4),-								update(styleBlock));-						case 'PageRule':-							var _v9 = declarations.a;-							return declarations;-						case 'FontFace':-							return declarations;-						case 'Keyframes':-							return declarations;-						case 'Viewport':-							return declarations;-						case 'CounterStyle':-							return declarations;-						default:-							return declarations;-					}-				} else {-					break _v0$12;-				}-			}-		}-		var first = declarations.a;-		var rest = declarations.b;-		return A2(-			$elm$core$List$cons,-			first,-			A2($rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, update, rest));-	});-var $elm$core$String$cons = _String_cons;-var $rtfeldman$elm_css$ElmCssVendor$Murmur3$HashData = F4(-	function (shift, seed, hash, charsProcessed) {-		return {charsProcessed: charsProcessed, hash: hash, seed: seed, shift: shift};-	});-var $rtfeldman$elm_css$ElmCssVendor$Murmur3$c1 = 3432918353;-var $rtfeldman$elm_css$ElmCssVendor$Murmur3$c2 = 461845907;-var $elm$core$Bitwise$and = _Bitwise_and;-var $elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy;-var $elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy;-var $rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy = F2(-	function (b, a) {-		return ((a & 65535) * b) + ((((a >>> 16) * b) & 65535) << 16);-	});-var $elm$core$Basics$neq = _Utils_notEqual;-var $elm$core$Bitwise$or = _Bitwise_or;-var $rtfeldman$elm_css$ElmCssVendor$Murmur3$rotlBy = F2(-	function (b, a) {-		return (a << b) | (a >>> (32 - b));-	});-var $elm$core$Bitwise$xor = _Bitwise_xor;-var $rtfeldman$elm_css$ElmCssVendor$Murmur3$finalize = function (data) {-	var acc = (!(!data.hash)) ? (data.seed ^ A2(-		$rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy,-		$rtfeldman$elm_css$ElmCssVendor$Murmur3$c2,-		A2(-			$rtfeldman$elm_css$ElmCssVendor$Murmur3$rotlBy,-			15,-			A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy, $rtfeldman$elm_css$ElmCssVendor$Murmur3$c1, data.hash)))) : data.seed;-	var h0 = acc ^ data.charsProcessed;-	var h1 = A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy, 2246822507, h0 ^ (h0 >>> 16));-	var h2 = A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy, 3266489909, h1 ^ (h1 >>> 13));-	return (h2 ^ (h2 >>> 16)) >>> 0;-};-var $elm$core$String$foldl = _String_foldl;-var $rtfeldman$elm_css$ElmCssVendor$Murmur3$mix = F2(-	function (h1, k1) {-		return A2(-			$rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy,-			5,-			A2(-				$rtfeldman$elm_css$ElmCssVendor$Murmur3$rotlBy,-				13,-				h1 ^ A2(-					$rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy,-					$rtfeldman$elm_css$ElmCssVendor$Murmur3$c2,-					A2(-						$rtfeldman$elm_css$ElmCssVendor$Murmur3$rotlBy,-						15,-						A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy, $rtfeldman$elm_css$ElmCssVendor$Murmur3$c1, k1))))) + 3864292196;-	});-var $rtfeldman$elm_css$ElmCssVendor$Murmur3$hashFold = F2(-	function (c, data) {-		var res = data.hash | ((255 & $elm$core$Char$toCode(c)) << data.shift);-		var _v0 = data.shift;-		if (_v0 === 24) {-			return {-				charsProcessed: data.charsProcessed + 1,-				hash: 0,-				seed: A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$mix, data.seed, res),-				shift: 0-			};-		} else {-			return {charsProcessed: data.charsProcessed + 1, hash: res, seed: data.seed, shift: data.shift + 8};-		}-	});-var $rtfeldman$elm_css$ElmCssVendor$Murmur3$hashString = F2(-	function (seed, str) {-		return $rtfeldman$elm_css$ElmCssVendor$Murmur3$finalize(-			A3(-				$elm$core$String$foldl,-				$rtfeldman$elm_css$ElmCssVendor$Murmur3$hashFold,-				A4($rtfeldman$elm_css$ElmCssVendor$Murmur3$HashData, 0, seed, 0, 0),-				str));-	});-var $rtfeldman$elm_css$Hash$murmurSeed = 15739;-var $elm$core$String$fromList = _String_fromList;-var $elm$core$Basics$negate = function (n) {-	return -n;-};-var $elm$core$Basics$modBy = _Basics_modBy;-var $rtfeldman$elm_hex$Hex$unsafeToDigit = function (num) {-	unsafeToDigit:-	while (true) {-		switch (num) {-			case 0:-				return _Utils_chr('0');-			case 1:-				return _Utils_chr('1');-			case 2:-				return _Utils_chr('2');-			case 3:-				return _Utils_chr('3');-			case 4:-				return _Utils_chr('4');-			case 5:-				return _Utils_chr('5');-			case 6:-				return _Utils_chr('6');-			case 7:-				return _Utils_chr('7');-			case 8:-				return _Utils_chr('8');-			case 9:-				return _Utils_chr('9');-			case 10:-				return _Utils_chr('a');-			case 11:-				return _Utils_chr('b');-			case 12:-				return _Utils_chr('c');-			case 13:-				return _Utils_chr('d');-			case 14:-				return _Utils_chr('e');-			case 15:-				return _Utils_chr('f');-			default:-				var $temp$num = num;-				num = $temp$num;-				continue unsafeToDigit;-		}-	}-};-var $rtfeldman$elm_hex$Hex$unsafePositiveToDigits = F2(-	function (digits, num) {-		unsafePositiveToDigits:-		while (true) {-			if (num < 16) {-				return A2(-					$elm$core$List$cons,-					$rtfeldman$elm_hex$Hex$unsafeToDigit(num),-					digits);-			} else {-				var $temp$digits = A2(-					$elm$core$List$cons,-					$rtfeldman$elm_hex$Hex$unsafeToDigit(-						A2($elm$core$Basics$modBy, 16, num)),-					digits),-					$temp$num = (num / 16) | 0;-				digits = $temp$digits;-				num = $temp$num;-				continue unsafePositiveToDigits;-			}-		}-	});-var $rtfeldman$elm_hex$Hex$toString = function (num) {-	return $elm$core$String$fromList(-		(num < 0) ? A2(-			$elm$core$List$cons,-			_Utils_chr('-'),-			A2($rtfeldman$elm_hex$Hex$unsafePositiveToDigits, _List_Nil, -num)) : A2($rtfeldman$elm_hex$Hex$unsafePositiveToDigits, _List_Nil, num));-};-var $rtfeldman$elm_css$Hash$fromString = function (str) {-	return A2(-		$elm$core$String$cons,-		_Utils_chr('_'),-		$rtfeldman$elm_hex$Hex$toString(-			A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$hashString, $rtfeldman$elm_css$Hash$murmurSeed, str)));-};-var $elm$core$List$head = function (list) {-	if (list.b) {-		var x = list.a;-		var xs = list.b;-		return $elm$core$Maybe$Just(x);-	} else {-		return $elm$core$Maybe$Nothing;-	}-};-var $rtfeldman$elm_css$Css$Preprocess$Resolve$last = function (list) {-	last:-	while (true) {-		if (!list.b) {-			return $elm$core$Maybe$Nothing;-		} else {-			if (!list.b.b) {-				var singleton = list.a;-				return $elm$core$Maybe$Just(singleton);-			} else {-				var rest = list.b;-				var $temp$list = rest;-				list = $temp$list;-				continue last;-			}-		}-	}-};-var $rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration = function (declarations) {-	lastDeclaration:-	while (true) {-		if (!declarations.b) {-			return $elm$core$Maybe$Nothing;-		} else {-			if (!declarations.b.b) {-				var x = declarations.a;-				return $elm$core$Maybe$Just(-					_List_fromArray(-						[x]));-			} else {-				var xs = declarations.b;-				var $temp$declarations = xs;-				declarations = $temp$declarations;-				continue lastDeclaration;-			}-		}-	}-};-var $rtfeldman$elm_css$Css$Preprocess$Resolve$oneOf = function (maybes) {-	oneOf:-	while (true) {-		if (!maybes.b) {-			return $elm$core$Maybe$Nothing;-		} else {-			var maybe = maybes.a;-			var rest = maybes.b;-			if (maybe.$ === 'Nothing') {-				var $temp$maybes = rest;-				maybes = $temp$maybes;-				continue oneOf;-			} else {-				return maybe;-			}-		}-	}-};-var $rtfeldman$elm_css$Css$Structure$FontFeatureValues = function (a) {-	return {$: 'FontFeatureValues', a: a};-};-var $rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues = function (tuples) {-	var expandTuples = function (tuplesToExpand) {-		if (!tuplesToExpand.b) {-			return _List_Nil;-		} else {-			var properties = tuplesToExpand.a;-			var rest = tuplesToExpand.b;-			return A2(-				$elm$core$List$cons,-				properties,-				expandTuples(rest));-		}-	};-	var newTuples = expandTuples(tuples);-	return _List_fromArray(-		[-			$rtfeldman$elm_css$Css$Structure$FontFeatureValues(newTuples)-		]);-};-var $rtfeldman$elm_css$Css$Structure$styleBlockToMediaRule = F2(-	function (mediaQueries, declaration) {-		if (declaration.$ === 'StyleBlockDeclaration') {-			var styleBlock = declaration.a;-			return A2(-				$rtfeldman$elm_css$Css$Structure$MediaRule,-				mediaQueries,-				_List_fromArray(-					[styleBlock]));-		} else {-			return declaration;-		}-	});-var $elm$core$List$tail = function (list) {-	if (list.b) {-		var x = list.a;-		var xs = list.b;-		return $elm$core$Maybe$Just(xs);-	} else {-		return $elm$core$Maybe$Nothing;-	}-};-var $elm$core$List$takeReverse = F3(-	function (n, list, kept) {-		takeReverse:-		while (true) {-			if (n <= 0) {-				return kept;-			} else {-				if (!list.b) {-					return kept;-				} else {-					var x = list.a;-					var xs = list.b;-					var $temp$n = n - 1,-						$temp$list = xs,-						$temp$kept = A2($elm$core$List$cons, x, kept);-					n = $temp$n;-					list = $temp$list;-					kept = $temp$kept;-					continue takeReverse;-				}-			}-		}-	});-var $elm$core$List$takeTailRec = F2(-	function (n, list) {-		return $elm$core$List$reverse(-			A3($elm$core$List$takeReverse, n, list, _List_Nil));-	});-var $elm$core$List$takeFast = F3(-	function (ctr, n, list) {-		if (n <= 0) {-			return _List_Nil;-		} else {-			var _v0 = _Utils_Tuple2(n, list);-			_v0$1:-			while (true) {-				_v0$5:-				while (true) {-					if (!_v0.b.b) {-						return list;-					} else {-						if (_v0.b.b.b) {-							switch (_v0.a) {-								case 1:-									break _v0$1;-								case 2:-									var _v2 = _v0.b;-									var x = _v2.a;-									var _v3 = _v2.b;-									var y = _v3.a;-									return _List_fromArray(-										[x, y]);-								case 3:-									if (_v0.b.b.b.b) {-										var _v4 = _v0.b;-										var x = _v4.a;-										var _v5 = _v4.b;-										var y = _v5.a;-										var _v6 = _v5.b;-										var z = _v6.a;-										return _List_fromArray(-											[x, y, z]);-									} else {-										break _v0$5;-									}-								default:-									if (_v0.b.b.b.b && _v0.b.b.b.b.b) {-										var _v7 = _v0.b;-										var x = _v7.a;-										var _v8 = _v7.b;-										var y = _v8.a;-										var _v9 = _v8.b;-										var z = _v9.a;-										var _v10 = _v9.b;-										var w = _v10.a;-										var tl = _v10.b;-										return (ctr > 1000) ? A2(-											$elm$core$List$cons,-											x,-											A2(-												$elm$core$List$cons,-												y,-												A2(-													$elm$core$List$cons,-													z,-													A2(-														$elm$core$List$cons,-														w,-														A2($elm$core$List$takeTailRec, n - 4, tl))))) : A2(-											$elm$core$List$cons,-											x,-											A2(-												$elm$core$List$cons,-												y,-												A2(-													$elm$core$List$cons,-													z,-													A2(-														$elm$core$List$cons,-														w,-														A3($elm$core$List$takeFast, ctr + 1, n - 4, tl)))));-									} else {-										break _v0$5;-									}-							}-						} else {-							if (_v0.a === 1) {-								break _v0$1;-							} else {-								break _v0$5;-							}-						}-					}-				}-				return list;-			}-			var _v1 = _v0.b;-			var x = _v1.a;-			return _List_fromArray(-				[x]);-		}-	});-var $elm$core$List$take = F2(-	function (n, list) {-		return A3($elm$core$List$takeFast, 0, n, list);-	});-var $rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule = F5(-	function (str1, str2, str3, str4, declaration) {-		if (declaration.$ === 'StyleBlockDeclaration') {-			var structureStyleBlock = declaration.a;-			return A5($rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4, structureStyleBlock);-		} else {-			return declaration;-		}-	});-var $rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule = F2(-	function (mediaQueries, declaration) {-		switch (declaration.$) {-			case 'StyleBlockDeclaration':-				var structureStyleBlock = declaration.a;-				return A2(-					$rtfeldman$elm_css$Css$Structure$MediaRule,-					mediaQueries,-					_List_fromArray(-						[structureStyleBlock]));-			case 'MediaRule':-				var newMediaQueries = declaration.a;-				var structureStyleBlocks = declaration.b;-				return A2(-					$rtfeldman$elm_css$Css$Structure$MediaRule,-					_Utils_ap(mediaQueries, newMediaQueries),-					structureStyleBlocks);-			case 'SupportsRule':-				var str = declaration.a;-				var declarations = declaration.b;-				return A2(-					$rtfeldman$elm_css$Css$Structure$SupportsRule,-					str,-					A2(-						$elm$core$List$map,-						$rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule(mediaQueries),-						declarations));-			case 'DocumentRule':-				var str1 = declaration.a;-				var str2 = declaration.b;-				var str3 = declaration.c;-				var str4 = declaration.d;-				var structureStyleBlock = declaration.e;-				return A5($rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4, structureStyleBlock);-			case 'PageRule':-				return declaration;-			case 'FontFace':-				return declaration;-			case 'Keyframes':-				return declaration;-			case 'Viewport':-				return declaration;-			case 'CounterStyle':-				return declaration;-			default:-				return declaration;-		}-	});-var $rtfeldman$elm_css$Css$Preprocess$unwrapSnippet = function (_v0) {-	var declarations = _v0.a;-	return declarations;-};-var $rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast = F4(-	function (nestedStyles, rest, f, declarations) {-		var withoutParent = function (decls) {-			return A2(-				$elm$core$Maybe$withDefault,-				_List_Nil,-				$elm$core$List$tail(decls));-		};-		var nextResult = A2(-			$rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles,-			rest,-			A2(-				$elm$core$Maybe$withDefault,-				_List_Nil,-				$rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration(declarations)));-		var newDeclarations = function () {-			var _v14 = _Utils_Tuple2(-				$elm$core$List$head(nextResult),-				$rtfeldman$elm_css$Css$Preprocess$Resolve$last(declarations));-			if ((_v14.a.$ === 'Just') && (_v14.b.$ === 'Just')) {-				var nextResultParent = _v14.a.a;-				var originalParent = _v14.b.a;-				return _Utils_ap(-					A2(-						$elm$core$List$take,-						$elm$core$List$length(declarations) - 1,-						declarations),-					_List_fromArray(-						[-							(!_Utils_eq(originalParent, nextResultParent)) ? nextResultParent : originalParent-						]));-			} else {-				return declarations;-			}-		}();-		var insertStylesToNestedDecl = function (lastDecl) {-			return $elm$core$List$concat(-				A2(-					$rtfeldman$elm_css$Css$Structure$mapLast,-					$rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles(nestedStyles),-					A2(-						$elm$core$List$map,-						$elm$core$List$singleton,-						A2($rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, f, lastDecl))));-		};-		var initialResult = A2(-			$elm$core$Maybe$withDefault,-			_List_Nil,-			A2(-				$elm$core$Maybe$map,-				insertStylesToNestedDecl,-				$rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration(declarations)));-		return _Utils_ap(-			newDeclarations,-			_Utils_ap(-				withoutParent(initialResult),-				withoutParent(nextResult)));-	});-var $rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles = F2(-	function (styles, declarations) {-		if (!styles.b) {-			return declarations;-		} else {-			switch (styles.a.$) {-				case 'AppendProperty':-					var property = styles.a.a;-					var rest = styles.b;-					return A2(-						$rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles,-						rest,-						A2($rtfeldman$elm_css$Css$Structure$appendProperty, property, declarations));-				case 'ExtendSelector':-					var _v4 = styles.a;-					var selector = _v4.a;-					var nestedStyles = _v4.b;-					var rest = styles.b;-					return A4(-						$rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast,-						nestedStyles,-						rest,-						$rtfeldman$elm_css$Css$Structure$appendRepeatableToLastSelector(selector),-						declarations);-				case 'NestSnippet':-					var _v5 = styles.a;-					var selectorCombinator = _v5.a;-					var snippets = _v5.b;-					var rest = styles.b;-					var chain = F2(-						function (_v9, _v10) {-							var originalSequence = _v9.a;-							var originalTuples = _v9.b;-							var originalPseudoElement = _v9.c;-							var newSequence = _v10.a;-							var newTuples = _v10.b;-							var newPseudoElement = _v10.c;-							return A3(-								$rtfeldman$elm_css$Css$Structure$Selector,-								originalSequence,-								_Utils_ap(-									originalTuples,-									A2(-										$elm$core$List$cons,-										_Utils_Tuple2(selectorCombinator, newSequence),-										newTuples)),-								$rtfeldman$elm_css$Css$Preprocess$Resolve$oneOf(-									_List_fromArray(-										[newPseudoElement, originalPseudoElement])));-						});-					var expandDeclaration = function (declaration) {-						switch (declaration.$) {-							case 'StyleBlockDeclaration':-								var _v7 = declaration.a;-								var firstSelector = _v7.a;-								var otherSelectors = _v7.b;-								var nestedStyles = _v7.c;-								var newSelectors = A2(-									$elm$core$List$concatMap,-									function (originalSelector) {-										return A2(-											$elm$core$List$map,-											chain(originalSelector),-											A2($elm$core$List$cons, firstSelector, otherSelectors));-									},-									$rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(declarations));-								var newDeclarations = function () {-									if (!newSelectors.b) {-										return _List_Nil;-									} else {-										var first = newSelectors.a;-										var remainder = newSelectors.b;-										return _List_fromArray(-											[-												$rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration(-												A3($rtfeldman$elm_css$Css$Structure$StyleBlock, first, remainder, _List_Nil))-											]);-									}-								}();-								return A2($rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, nestedStyles, newDeclarations);-							case 'MediaRule':-								var mediaQueries = declaration.a;-								var styleBlocks = declaration.b;-								return A2($rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule, mediaQueries, styleBlocks);-							case 'SupportsRule':-								var str = declaration.a;-								var otherSnippets = declaration.b;-								return A2($rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule, str, otherSnippets);-							case 'DocumentRule':-								var str1 = declaration.a;-								var str2 = declaration.b;-								var str3 = declaration.c;-								var str4 = declaration.d;-								var styleBlock = declaration.e;-								return A2(-									$elm$core$List$map,-									A4($rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule, str1, str2, str3, str4),-									$rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock));-							case 'PageRule':-								var str = declaration.a;-								var properties = declaration.b;-								return _List_fromArray(-									[-										A2($rtfeldman$elm_css$Css$Structure$PageRule, str, properties)-									]);-							case 'FontFace':-								var properties = declaration.a;-								return _List_fromArray(-									[-										$rtfeldman$elm_css$Css$Structure$FontFace(properties)-									]);-							case 'Viewport':-								var properties = declaration.a;-								return _List_fromArray(-									[-										$rtfeldman$elm_css$Css$Structure$Viewport(properties)-									]);-							case 'CounterStyle':-								var properties = declaration.a;-								return _List_fromArray(-									[-										$rtfeldman$elm_css$Css$Structure$CounterStyle(properties)-									]);-							default:-								var tuples = declaration.a;-								return $rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues(tuples);-						}-					};-					return $elm$core$List$concat(-						_Utils_ap(-							_List_fromArray(-								[-									A2($rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, rest, declarations)-								]),-							A2(-								$elm$core$List$map,-								expandDeclaration,-								A2($elm$core$List$concatMap, $rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets))));-				case 'WithPseudoElement':-					var _v11 = styles.a;-					var pseudoElement = _v11.a;-					var nestedStyles = _v11.b;-					var rest = styles.b;-					return A4(-						$rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast,-						nestedStyles,-						rest,-						$rtfeldman$elm_css$Css$Structure$appendPseudoElementToLastSelector(pseudoElement),-						declarations);-				case 'WithKeyframes':-					var str = styles.a.a;-					var rest = styles.b;-					var name = $rtfeldman$elm_css$Hash$fromString(str);-					var newProperty = 'animation-name:' + name;-					var newDeclarations = A2(-						$rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles,-						rest,-						A2($rtfeldman$elm_css$Css$Structure$appendProperty, newProperty, declarations));-					return A2(-						$elm$core$List$append,-						newDeclarations,-						_List_fromArray(-							[-								$rtfeldman$elm_css$Css$Structure$Keyframes(-								{declaration: str, name: name})-							]));-				case 'WithMedia':-					var _v12 = styles.a;-					var mediaQueries = _v12.a;-					var nestedStyles = _v12.b;-					var rest = styles.b;-					var extraDeclarations = function () {-						var _v13 = $rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(declarations);-						if (!_v13.b) {-							return _List_Nil;-						} else {-							var firstSelector = _v13.a;-							var otherSelectors = _v13.b;-							return A2(-								$elm$core$List$map,-								$rtfeldman$elm_css$Css$Structure$styleBlockToMediaRule(mediaQueries),-								A2(-									$rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles,-									nestedStyles,-									$elm$core$List$singleton(-										$rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration(-											A3($rtfeldman$elm_css$Css$Structure$StyleBlock, firstSelector, otherSelectors, _List_Nil)))));-						}-					}();-					return _Utils_ap(-						A2($rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, rest, declarations),-						extraDeclarations);-				default:-					var otherStyles = styles.a.a;-					var rest = styles.b;-					return A2(-						$rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles,-						_Utils_ap(otherStyles, rest),-						declarations);-			}-		}-	});-var $rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock = function (_v2) {-	var firstSelector = _v2.a;-	var otherSelectors = _v2.b;-	var styles = _v2.c;-	return A2(-		$rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles,-		styles,-		_List_fromArray(-			[-				$rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration(-				A3($rtfeldman$elm_css$Css$Structure$StyleBlock, firstSelector, otherSelectors, _List_Nil))-			]));-};-var $rtfeldman$elm_css$Css$Preprocess$Resolve$extract = function (snippetDeclarations) {-	if (!snippetDeclarations.b) {-		return _List_Nil;-	} else {-		var first = snippetDeclarations.a;-		var rest = snippetDeclarations.b;-		return _Utils_ap(-			$rtfeldman$elm_css$Css$Preprocess$Resolve$toDeclarations(first),-			$rtfeldman$elm_css$Css$Preprocess$Resolve$extract(rest));-	}-};-var $rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule = F2(-	function (mediaQueries, styleBlocks) {-		var handleStyleBlock = function (styleBlock) {-			return A2(-				$elm$core$List$map,-				$rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule(mediaQueries),-				$rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock));-		};-		return A2($elm$core$List$concatMap, handleStyleBlock, styleBlocks);-	});-var $rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule = F2(-	function (str, snippets) {-		var declarations = $rtfeldman$elm_css$Css$Preprocess$Resolve$extract(-			A2($elm$core$List$concatMap, $rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets));-		return _List_fromArray(-			[-				A2($rtfeldman$elm_css$Css$Structure$SupportsRule, str, declarations)-			]);-	});-var $rtfeldman$elm_css$Css$Preprocess$Resolve$toDeclarations = function (snippetDeclaration) {-	switch (snippetDeclaration.$) {-		case 'StyleBlockDeclaration':-			var styleBlock = snippetDeclaration.a;-			return $rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock);-		case 'MediaRule':-			var mediaQueries = snippetDeclaration.a;-			var styleBlocks = snippetDeclaration.b;-			return A2($rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule, mediaQueries, styleBlocks);-		case 'SupportsRule':-			var str = snippetDeclaration.a;-			var snippets = snippetDeclaration.b;-			return A2($rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule, str, snippets);-		case 'DocumentRule':-			var str1 = snippetDeclaration.a;-			var str2 = snippetDeclaration.b;-			var str3 = snippetDeclaration.c;-			var str4 = snippetDeclaration.d;-			var styleBlock = snippetDeclaration.e;-			return A2(-				$elm$core$List$map,-				A4($rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule, str1, str2, str3, str4),-				$rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock));-		case 'PageRule':-			var str = snippetDeclaration.a;-			var properties = snippetDeclaration.b;-			return _List_fromArray(-				[-					A2($rtfeldman$elm_css$Css$Structure$PageRule, str, properties)-				]);-		case 'FontFace':-			var properties = snippetDeclaration.a;-			return _List_fromArray(-				[-					$rtfeldman$elm_css$Css$Structure$FontFace(properties)-				]);-		case 'Viewport':-			var properties = snippetDeclaration.a;-			return _List_fromArray(-				[-					$rtfeldman$elm_css$Css$Structure$Viewport(properties)-				]);-		case 'CounterStyle':-			var properties = snippetDeclaration.a;-			return _List_fromArray(-				[-					$rtfeldman$elm_css$Css$Structure$CounterStyle(properties)-				]);-		default:-			var tuples = snippetDeclaration.a;-			return $rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues(tuples);-	}-};-var $rtfeldman$elm_css$Css$Preprocess$Resolve$toStructure = function (_v0) {-	var charset = _v0.charset;-	var imports = _v0.imports;-	var namespaces = _v0.namespaces;-	var snippets = _v0.snippets;-	var declarations = $rtfeldman$elm_css$Css$Preprocess$Resolve$extract(-		A2($elm$core$List$concatMap, $rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets));-	return {charset: charset, declarations: declarations, imports: imports, namespaces: namespaces};-};-var $rtfeldman$elm_css$Css$Preprocess$Resolve$compileHelp = function (sheet) {-	return $rtfeldman$elm_css$Css$Structure$Output$prettyPrint(-		$rtfeldman$elm_css$Css$Structure$compactStylesheet(-			$rtfeldman$elm_css$Css$Preprocess$Resolve$toStructure(sheet)));-};-var $rtfeldman$elm_css$Css$Preprocess$Resolve$compile = function (styles) {-	return A2(-		$elm$core$String$join,-		'\n\n',-		A2($elm$core$List$map, $rtfeldman$elm_css$Css$Preprocess$Resolve$compileHelp, styles));-};-var $rtfeldman$elm_css$Css$Structure$ClassSelector = function (a) {-	return {$: 'ClassSelector', a: a};-};-var $rtfeldman$elm_css$Css$Preprocess$Snippet = function (a) {-	return {$: 'Snippet', a: a};-};-var $rtfeldman$elm_css$Css$Preprocess$StyleBlock = F3(-	function (a, b, c) {-		return {$: 'StyleBlock', a: a, b: b, c: c};-	});-var $rtfeldman$elm_css$Css$Preprocess$StyleBlockDeclaration = function (a) {-	return {$: 'StyleBlockDeclaration', a: a};-};-var $rtfeldman$elm_css$VirtualDom$Styled$makeSnippet = F2(-	function (styles, sequence) {-		var selector = A3($rtfeldman$elm_css$Css$Structure$Selector, sequence, _List_Nil, $elm$core$Maybe$Nothing);-		return $rtfeldman$elm_css$Css$Preprocess$Snippet(-			_List_fromArray(-				[-					$rtfeldman$elm_css$Css$Preprocess$StyleBlockDeclaration(-					A3($rtfeldman$elm_css$Css$Preprocess$StyleBlock, selector, _List_Nil, styles))-				]));-	});-var $rtfeldman$elm_css$VirtualDom$Styled$snippetFromPair = function (_v0) {-	var classname = _v0.a;-	var styles = _v0.b;-	return A2(-		$rtfeldman$elm_css$VirtualDom$Styled$makeSnippet,-		styles,-		$rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence(-			_List_fromArray(-				[-					$rtfeldman$elm_css$Css$Structure$ClassSelector(classname)-				])));-};-var $rtfeldman$elm_css$Css$Preprocess$stylesheet = function (snippets) {-	return {charset: $elm$core$Maybe$Nothing, imports: _List_Nil, namespaces: _List_Nil, snippets: snippets};-};-var $rtfeldman$elm_css$VirtualDom$Styled$toDeclaration = function (dict) {-	return $rtfeldman$elm_css$Css$Preprocess$Resolve$compile(-		$elm$core$List$singleton(-			$rtfeldman$elm_css$Css$Preprocess$stylesheet(-				A2(-					$elm$core$List$map,-					$rtfeldman$elm_css$VirtualDom$Styled$snippetFromPair,-					$elm$core$Dict$toList(dict)))));-};-var $rtfeldman$elm_css$VirtualDom$Styled$toStyleNode = function (styles) {-	return A3(-		$elm$virtual_dom$VirtualDom$node,-		'style',-		_List_Nil,-		$elm$core$List$singleton(-			$elm$virtual_dom$VirtualDom$text(-				$rtfeldman$elm_css$VirtualDom$Styled$toDeclaration(styles))));-};-var $rtfeldman$elm_css$VirtualDom$Styled$unstyle = F3(-	function (elemType, properties, children) {-		var unstyledProperties = A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties);-		var initialStyles = $rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties);-		var _v0 = A3(-			$elm$core$List$foldl,-			$rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml,-			_Utils_Tuple2(_List_Nil, initialStyles),-			children);-		var childNodes = _v0.a;-		var styles = _v0.b;-		var styleNode = $rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(styles);-		return A3(-			$elm$virtual_dom$VirtualDom$node,-			elemType,-			unstyledProperties,-			A2(-				$elm$core$List$cons,-				styleNode,-				$elm$core$List$reverse(childNodes)));-	});-var $rtfeldman$elm_css$VirtualDom$Styled$containsKey = F2(-	function (key, pairs) {-		containsKey:-		while (true) {-			if (!pairs.b) {-				return false;-			} else {-				var _v1 = pairs.a;-				var str = _v1.a;-				var rest = pairs.b;-				if (_Utils_eq(key, str)) {-					return true;-				} else {-					var $temp$key = key,-						$temp$pairs = rest;-					key = $temp$key;-					pairs = $temp$pairs;-					continue containsKey;-				}-			}-		}-	});-var $rtfeldman$elm_css$VirtualDom$Styled$getUnusedKey = F2(-	function (_default, pairs) {-		getUnusedKey:-		while (true) {-			if (!pairs.b) {-				return _default;-			} else {-				var _v1 = pairs.a;-				var firstKey = _v1.a;-				var rest = pairs.b;-				var newKey = '_' + firstKey;-				if (A2($rtfeldman$elm_css$VirtualDom$Styled$containsKey, newKey, rest)) {-					var $temp$default = newKey,-						$temp$pairs = rest;-					_default = $temp$default;-					pairs = $temp$pairs;-					continue getUnusedKey;-				} else {-					return newKey;-				}-			}-		}-	});-var $rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode = F2(-	function (allStyles, keyedChildNodes) {-		var styleNodeKey = A2($rtfeldman$elm_css$VirtualDom$Styled$getUnusedKey, '_', keyedChildNodes);-		var finalNode = $rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(allStyles);-		return _Utils_Tuple2(styleNodeKey, finalNode);-	});-var $rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyed = F3(-	function (elemType, properties, keyedChildren) {-		var unstyledProperties = A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties);-		var initialStyles = $rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties);-		var _v0 = A3(-			$elm$core$List$foldl,-			$rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml,-			_Utils_Tuple2(_List_Nil, initialStyles),-			keyedChildren);-		var keyedChildNodes = _v0.a;-		var styles = _v0.b;-		var keyedStyleNode = A2($rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode, styles, keyedChildNodes);-		return A3(-			$elm$virtual_dom$VirtualDom$keyedNode,-			elemType,-			unstyledProperties,-			A2(-				$elm$core$List$cons,-				keyedStyleNode,-				$elm$core$List$reverse(keyedChildNodes)));-	});-var $rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyedNS = F4(-	function (ns, elemType, properties, keyedChildren) {-		var unstyledProperties = A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties);-		var initialStyles = $rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties);-		var _v0 = A3(-			$elm$core$List$foldl,-			$rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml,-			_Utils_Tuple2(_List_Nil, initialStyles),-			keyedChildren);-		var keyedChildNodes = _v0.a;-		var styles = _v0.b;-		var keyedStyleNode = A2($rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode, styles, keyedChildNodes);-		return A4(-			$elm$virtual_dom$VirtualDom$keyedNodeNS,-			ns,-			elemType,-			unstyledProperties,-			A2(-				$elm$core$List$cons,-				keyedStyleNode,-				$elm$core$List$reverse(keyedChildNodes)));-	});-var $rtfeldman$elm_css$VirtualDom$Styled$unstyleNS = F4(-	function (ns, elemType, properties, children) {-		var unstyledProperties = A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties);-		var initialStyles = $rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties);-		var _v0 = A3(-			$elm$core$List$foldl,-			$rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml,-			_Utils_Tuple2(_List_Nil, initialStyles),-			children);-		var childNodes = _v0.a;-		var styles = _v0.b;-		var styleNode = $rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(styles);-		return A4(-			$elm$virtual_dom$VirtualDom$nodeNS,-			ns,-			elemType,-			unstyledProperties,-			A2(-				$elm$core$List$cons,-				styleNode,-				$elm$core$List$reverse(childNodes)));-	});-var $rtfeldman$elm_css$VirtualDom$Styled$toUnstyled = function (vdom) {-	switch (vdom.$) {-		case 'Unstyled':-			var plainNode = vdom.a;-			return plainNode;-		case 'Node':-			var elemType = vdom.a;-			var properties = vdom.b;-			var children = vdom.c;-			return A3($rtfeldman$elm_css$VirtualDom$Styled$unstyle, elemType, properties, children);-		case 'NodeNS':-			var ns = vdom.a;-			var elemType = vdom.b;-			var properties = vdom.c;-			var children = vdom.d;-			return A4($rtfeldman$elm_css$VirtualDom$Styled$unstyleNS, ns, elemType, properties, children);-		case 'KeyedNode':-			var elemType = vdom.a;-			var properties = vdom.b;-			var children = vdom.c;-			return A3($rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyed, elemType, properties, children);-		default:-			var ns = vdom.a;-			var elemType = vdom.b;-			var properties = vdom.c;-			var children = vdom.d;-			return A4($rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyedNS, ns, elemType, properties, children);-	}-};-var $rtfeldman$elm_css$Html$Styled$toUnstyled = $rtfeldman$elm_css$VirtualDom$Styled$toUnstyled;-var $author$project$Main$Loaded = function (a) {-	return {$: 'Loaded', a: a};-};-var $author$project$Persisted$Persisted = function (a) {-	return {$: 'Persisted', a: a};-};-var $author$project$Persisted$init = function (x) {-	return $author$project$Persisted$Persisted(-		{local: x, persisted: x});-};-var $elm$core$Dict$map = F2(-	function (func, dict) {-		if (dict.$ === 'RBEmpty_elm_builtin') {-			return $elm$core$Dict$RBEmpty_elm_builtin;-		} else {-			var color = dict.a;-			var key = dict.b;-			var value = dict.c;-			var left = dict.d;-			var right = dict.e;-			return A5(-				$elm$core$Dict$RBNode_elm_builtin,-				color,-				key,-				A2(func, key, value),-				A2($elm$core$Dict$map, func, left),-				A2($elm$core$Dict$map, func, right));-		}-	});-var $elm$core$Platform$Cmd$batch = _Platform_batch;-var $elm$core$Platform$Cmd$none = $elm$core$Platform$Cmd$batch(_List_Nil);-var $author$project$Persisted$changed = function (_v0) {-	var persisted = _v0.a.persisted;-	var local = _v0.a.local;-	return !_Utils_eq(local, persisted);-};-var $author$project$Persisted$persist = F2(-	function (x, _v0) {-		var old = _v0.a;-		return $author$project$Persisted$changed(-			$author$project$Persisted$Persisted(old)) ? $author$project$Persisted$Persisted(-			_Utils_update(-				old,-				{persisted: x})) : $author$project$Persisted$init(x);-	});-var $elm$http$Http$expectBytesResponse = F2(-	function (toMsg, toResult) {-		return A3(-			_Http_expect,-			'arraybuffer',-			_Http_toDataView,-			A2($elm$core$Basics$composeR, toResult, toMsg));-	});-var $elm$http$Http$expectWhatever = function (toMsg) {-	return A2(-		$elm$http$Http$expectBytesResponse,-		toMsg,-		$elm$http$Http$resolve(-			function (_v0) {-				return $elm$core$Result$Ok(_Utils_Tuple0);-			}));-};-var $elm$json$Json$Encode$int = _Json_wrap;-var $elm$http$Http$jsonBody = function (value) {-	return A2(-		_Http_pair,-		'application/json',-		A2($elm$json$Json$Encode$encode, 0, value));-};-var $author$project$Main$sendSaveFlagRequest = F3(-	function (rootPath, flagName, _v0) {-		var percentage = _v0.a;-		return $elm$http$Http$request(-			{-				body: $elm$http$Http$jsonBody(-					$elm$json$Json$Encode$int(percentage)),-				expect: $elm$http$Http$expectWhatever(-					function (_v1) {-						return $author$project$Main$LoadFlags;-					}),-				headers: _List_Nil,-				method: 'PUT',-				timeout: $elm$core$Maybe$Nothing,-				tracker: $elm$core$Maybe$Nothing,-				url: A2(-					$elm$url$Url$Builder$relative,-					_Utils_ap(-						rootPath,-						_List_fromArray(-							['flags', flagName])),-					_List_Nil)-			});-	});-var $author$project$Persisted$value = function (_v0) {-	var local = _v0.a.local;-	return local;-};-var $author$project$Main$saveFlag = F2(-	function (flagName, model) {-		var _v0 = model.data;-		if (_v0.$ === 'Loading') {-			return $elm$core$Platform$Cmd$none;-		} else {-			var flags = _v0.a;-			var _v1 = A2($elm$core$Dict$get, flagName, flags);-			if (_v1.$ === 'Nothing') {-				return $elm$core$Platform$Cmd$none;-			} else {-				var percentage = _v1.a;-				return $author$project$Persisted$changed(percentage) ? A3(-					$author$project$Main$sendSaveFlagRequest,-					model.rootPath,-					flagName,-					$author$project$Persisted$value(percentage)) : $elm$core$Platform$Cmd$none;-			}-		}-	});-var $author$project$Persisted$change = F2(-	function (x, _v0) {-		var persisted = _v0.a.persisted;-		return $author$project$Persisted$Persisted(-			{local: x, persisted: persisted});-	});-var $author$project$Main$setFlag = F3(-	function (flagName, newPercentage, data) {-		if (data.$ === 'Loading') {-			return $author$project$Main$Loading;-		} else {-			var flags = data.a;-			return $author$project$Main$Loaded(-				A3(-					$elm$core$Dict$update,-					flagName,-					$elm$core$Maybe$map(-						function (oldPercentage) {-							return A2($author$project$Persisted$change, newPercentage, oldPercentage);-						}),-					flags));-		}-	});-var $author$project$Main$updateData = F2(-	function (msg, model) {-		switch (msg.$) {-			case 'NoOp':-				return _Utils_Tuple2(model.data, $elm$core$Platform$Cmd$none);-			case 'LoadFlags':-				return _Utils_Tuple2(-					model.data,-					$author$project$Main$sendLoadFlagsRequest(model.rootPath));-			case 'LoadedFlags':-				var updatedFlags = msg.a;-				var _v1 = model.data;-				if (_v1.$ === 'Loading') {-					return _Utils_Tuple2(-						$author$project$Main$Loaded(-							A2(-								$elm$core$Dict$map,-								function (_v2) {-									return $author$project$Persisted$init;-								},-								updatedFlags)),-						$elm$core$Platform$Cmd$none);-				} else {-					var oldFlags = _v1.a;-					return _Utils_Tuple2(-						$author$project$Main$Loaded(-							A6(-								$elm$core$Dict$merge,-								F3(-									function (flag, oldValue, newFlags) {-										return A3($elm$core$Dict$insert, flag, oldValue, newFlags);-									}),-								F4(-									function (flag, oldValue, newValue, newFlags) {-										return A3(-											$elm$core$Dict$insert,-											flag,-											A2($author$project$Persisted$persist, newValue, oldValue),-											newFlags);-									}),-								F3(-									function (flag, firstValue, newFlags) {-										return A3(-											$elm$core$Dict$insert,-											flag,-											$author$project$Persisted$init(firstValue),-											newFlags);-									}),-								oldFlags,-								updatedFlags,-								$elm$core$Dict$empty)),-						$elm$core$Platform$Cmd$none);-				}-			default:-				var flagName = msg.a;-				var newPercentage = msg.b;-				var newData = A3($author$project$Main$setFlag, flagName, newPercentage, model.data);-				return _Utils_Tuple2(-					newData,-					A2(-						$author$project$Main$saveFlag,-						flagName,-						_Utils_update(-							model,-							{data: newData})));-		}-	});-var $author$project$Main$update = F2(-	function (msg, model) {-		var _v0 = A2($author$project$Main$updateData, msg, model);-		var newData = _v0.a;-		var cmd = _v0.b;-		return _Utils_Tuple2(-			_Utils_update(-				model,-				{data: newData}),-			cmd);-	});-var $rtfeldman$elm_css$Css$Structure$Compatible = {$: 'Compatible'};-var $rtfeldman$elm_css$Css$absolute = {position: $rtfeldman$elm_css$Css$Structure$Compatible, value: 'absolute'};-var $rtfeldman$elm_css$Css$Preprocess$AppendProperty = function (a) {-	return {$: 'AppendProperty', a: a};-};-var $rtfeldman$elm_css$Css$property = F2(-	function (key, value) {-		return $rtfeldman$elm_css$Css$Preprocess$AppendProperty(key + (':' + value));-	});-var $rtfeldman$elm_css$Css$backgroundColor = function (c) {-	return A2($rtfeldman$elm_css$Css$property, 'background-color', c.value);-};-var $rtfeldman$elm_css$Css$prop1 = F2(-	function (key, arg) {-		return A2($rtfeldman$elm_css$Css$property, key, arg.value);-	});-var $rtfeldman$elm_css$Css$center = $rtfeldman$elm_css$Css$prop1('center');-var $rtfeldman$elm_css$Css$color = function (c) {-	return A2($rtfeldman$elm_css$Css$property, 'color', c.value);-};-var $rtfeldman$elm_css$VirtualDom$Styled$Attribute = F3(-	function (a, b, c) {-		return {$: 'Attribute', a: a, b: b, c: c};-	});-var $rtfeldman$elm_css$VirtualDom$Styled$murmurSeed = 15739;-var $rtfeldman$elm_css$VirtualDom$Styled$getClassname = function (styles) {-	return $elm$core$List$isEmpty(styles) ? 'unstyled' : A2(-		$elm$core$String$cons,-		_Utils_chr('_'),-		$rtfeldman$elm_hex$Hex$toString(-			A2(-				$rtfeldman$elm_css$ElmCssVendor$Murmur3$hashString,-				$rtfeldman$elm_css$VirtualDom$Styled$murmurSeed,-				$rtfeldman$elm_css$Css$Preprocess$Resolve$compile(-					$elm$core$List$singleton(-						$rtfeldman$elm_css$Css$Preprocess$stylesheet(-							$elm$core$List$singleton(-								A2(-									$rtfeldman$elm_css$VirtualDom$Styled$makeSnippet,-									styles,-									$rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence(_List_Nil)))))))));-};-var $elm$virtual_dom$VirtualDom$property = F2(-	function (key, value) {-		return A2(-			_VirtualDom_property,-			_VirtualDom_noInnerHtmlOrFormAction(key),-			_VirtualDom_noJavaScriptOrHtmlUri(value));-	});-var $elm$json$Json$Encode$string = _Json_wrap;-var $rtfeldman$elm_css$Html$Styled$Internal$css = function (styles) {-	var classname = $rtfeldman$elm_css$VirtualDom$Styled$getClassname(styles);-	var classProperty = A2(-		$elm$virtual_dom$VirtualDom$property,-		'className',-		$elm$json$Json$Encode$string(classname));-	return A3($rtfeldman$elm_css$VirtualDom$Styled$Attribute, classProperty, styles, classname);-};-var $rtfeldman$elm_css$Html$Styled$Attributes$css = $rtfeldman$elm_css$Html$Styled$Internal$css;-var $rtfeldman$elm_css$VirtualDom$Styled$Node = F3(-	function (a, b, c) {-		return {$: 'Node', a: a, b: b, c: c};-	});-var $rtfeldman$elm_css$VirtualDom$Styled$node = $rtfeldman$elm_css$VirtualDom$Styled$Node;-var $rtfeldman$elm_css$Html$Styled$node = $rtfeldman$elm_css$VirtualDom$Styled$node;-var $rtfeldman$elm_css$Html$Styled$div = $rtfeldman$elm_css$Html$Styled$node('div');-var $rtfeldman$elm_css$Css$stringsToValue = function (list) {-	return $elm$core$List$isEmpty(list) ? {value: 'none'} : {-		value: A2(-			$elm$core$String$join,-			', ',-			A2(-				$elm$core$List$map,-				function (s) {-					return s;-				},-				list))-	};-};-var $rtfeldman$elm_css$Css$fontFamilies = A2(-	$elm$core$Basics$composeL,-	$rtfeldman$elm_css$Css$prop1('font-family'),-	$rtfeldman$elm_css$Css$stringsToValue);-var $rtfeldman$elm_css$Html$Styled$h1 = $rtfeldman$elm_css$Html$Styled$node('h1');-var $rtfeldman$elm_css$Css$withPrecedingHash = function (str) {-	return A2($elm$core$String$startsWith, '#', str) ? str : A2(-		$elm$core$String$cons,-		_Utils_chr('#'),-		str);-};-var $rtfeldman$elm_css$Css$erroneousHex = function (str) {-	return {-		alpha: 1,-		blue: 0,-		color: $rtfeldman$elm_css$Css$Structure$Compatible,-		green: 0,-		red: 0,-		value: $rtfeldman$elm_css$Css$withPrecedingHash(str)-	};-};-var $elm$core$String$foldr = _String_foldr;-var $elm$core$String$toList = function (string) {-	return A3($elm$core$String$foldr, $elm$core$List$cons, _List_Nil, string);-};-var $elm$core$String$fromChar = function (_char) {-	return A2($elm$core$String$cons, _char, '');-};-var $elm$core$Basics$pow = _Basics_pow;-var $rtfeldman$elm_hex$Hex$fromStringHelp = F3(-	function (position, chars, accumulated) {-		fromStringHelp:-		while (true) {-			if (!chars.b) {-				return $elm$core$Result$Ok(accumulated);-			} else {-				var _char = chars.a;-				var rest = chars.b;-				switch (_char.valueOf()) {-					case '0':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated;-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					case '1':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated + A2($elm$core$Basics$pow, 16, position);-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					case '2':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated + (2 * A2($elm$core$Basics$pow, 16, position));-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					case '3':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated + (3 * A2($elm$core$Basics$pow, 16, position));-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					case '4':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated + (4 * A2($elm$core$Basics$pow, 16, position));-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					case '5':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated + (5 * A2($elm$core$Basics$pow, 16, position));-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					case '6':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated + (6 * A2($elm$core$Basics$pow, 16, position));-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					case '7':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated + (7 * A2($elm$core$Basics$pow, 16, position));-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					case '8':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated + (8 * A2($elm$core$Basics$pow, 16, position));-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					case '9':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated + (9 * A2($elm$core$Basics$pow, 16, position));-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					case 'a':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated + (10 * A2($elm$core$Basics$pow, 16, position));-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					case 'b':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated + (11 * A2($elm$core$Basics$pow, 16, position));-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					case 'c':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated + (12 * A2($elm$core$Basics$pow, 16, position));-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					case 'd':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated + (13 * A2($elm$core$Basics$pow, 16, position));-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					case 'e':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated + (14 * A2($elm$core$Basics$pow, 16, position));-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					case 'f':-						var $temp$position = position - 1,-							$temp$chars = rest,-							$temp$accumulated = accumulated + (15 * A2($elm$core$Basics$pow, 16, position));-						position = $temp$position;-						chars = $temp$chars;-						accumulated = $temp$accumulated;-						continue fromStringHelp;-					default:-						var nonHex = _char;-						return $elm$core$Result$Err(-							$elm$core$String$fromChar(nonHex) + ' is not a valid hexadecimal character.');-				}-			}-		}-	});-var $elm$core$Result$map = F2(-	function (func, ra) {-		if (ra.$ === 'Ok') {-			var a = ra.a;-			return $elm$core$Result$Ok(-				func(a));-		} else {-			var e = ra.a;-			return $elm$core$Result$Err(e);-		}-	});-var $rtfeldman$elm_hex$Hex$fromString = function (str) {-	if ($elm$core$String$isEmpty(str)) {-		return $elm$core$Result$Err('Empty strings are not valid hexadecimal strings.');-	} else {-		var result = function () {-			if (A2($elm$core$String$startsWith, '-', str)) {-				var list = A2(-					$elm$core$Maybe$withDefault,-					_List_Nil,-					$elm$core$List$tail(-						$elm$core$String$toList(str)));-				return A2(-					$elm$core$Result$map,-					$elm$core$Basics$negate,-					A3(-						$rtfeldman$elm_hex$Hex$fromStringHelp,-						$elm$core$List$length(list) - 1,-						list,-						0));-			} else {-				return A3(-					$rtfeldman$elm_hex$Hex$fromStringHelp,-					$elm$core$String$length(str) - 1,-					$elm$core$String$toList(str),-					0);-			}-		}();-		var formatError = function (err) {-			return A2(-				$elm$core$String$join,-				' ',-				_List_fromArray(-					['\"' + (str + '\"'), 'is not a valid hexadecimal string because', err]));-		};-		return A2($elm$core$Result$mapError, formatError, result);-	}-};-var $elm$core$String$toLower = _String_toLower;-var $rtfeldman$elm_css$Css$validHex = F5(-	function (str, _v0, _v1, _v2, _v3) {-		var r1 = _v0.a;-		var r2 = _v0.b;-		var g1 = _v1.a;-		var g2 = _v1.b;-		var b1 = _v2.a;-		var b2 = _v2.b;-		var a1 = _v3.a;-		var a2 = _v3.b;-		var toResult = A2(-			$elm$core$Basics$composeR,-			$elm$core$String$fromList,-			A2($elm$core$Basics$composeR, $elm$core$String$toLower, $rtfeldman$elm_hex$Hex$fromString));-		var results = _Utils_Tuple2(-			_Utils_Tuple2(-				toResult(-					_List_fromArray(-						[r1, r2])),-				toResult(-					_List_fromArray(-						[g1, g2]))),-			_Utils_Tuple2(-				toResult(-					_List_fromArray(-						[b1, b2])),-				toResult(-					_List_fromArray(-						[a1, a2]))));-		if ((((results.a.a.$ === 'Ok') && (results.a.b.$ === 'Ok')) && (results.b.a.$ === 'Ok')) && (results.b.b.$ === 'Ok')) {-			var _v5 = results.a;-			var red = _v5.a.a;-			var green = _v5.b.a;-			var _v6 = results.b;-			var blue = _v6.a.a;-			var alpha = _v6.b.a;-			return {-				alpha: alpha / 255,-				blue: blue,-				color: $rtfeldman$elm_css$Css$Structure$Compatible,-				green: green,-				red: red,-				value: $rtfeldman$elm_css$Css$withPrecedingHash(str)-			};-		} else {-			return $rtfeldman$elm_css$Css$erroneousHex(str);-		}-	});-var $rtfeldman$elm_css$Css$hex = function (str) {-	var withoutHash = A2($elm$core$String$startsWith, '#', str) ? A2($elm$core$String$dropLeft, 1, str) : str;-	var _v0 = $elm$core$String$toList(withoutHash);-	_v0$4:-	while (true) {-		if ((_v0.b && _v0.b.b) && _v0.b.b.b) {-			if (!_v0.b.b.b.b) {-				var r = _v0.a;-				var _v1 = _v0.b;-				var g = _v1.a;-				var _v2 = _v1.b;-				var b = _v2.a;-				return A5(-					$rtfeldman$elm_css$Css$validHex,-					str,-					_Utils_Tuple2(r, r),-					_Utils_Tuple2(g, g),-					_Utils_Tuple2(b, b),-					_Utils_Tuple2(-						_Utils_chr('f'),-						_Utils_chr('f')));-			} else {-				if (!_v0.b.b.b.b.b) {-					var r = _v0.a;-					var _v3 = _v0.b;-					var g = _v3.a;-					var _v4 = _v3.b;-					var b = _v4.a;-					var _v5 = _v4.b;-					var a = _v5.a;-					return A5(-						$rtfeldman$elm_css$Css$validHex,-						str,-						_Utils_Tuple2(r, r),-						_Utils_Tuple2(g, g),-						_Utils_Tuple2(b, b),-						_Utils_Tuple2(a, a));-				} else {-					if (_v0.b.b.b.b.b.b) {-						if (!_v0.b.b.b.b.b.b.b) {-							var r1 = _v0.a;-							var _v6 = _v0.b;-							var r2 = _v6.a;-							var _v7 = _v6.b;-							var g1 = _v7.a;-							var _v8 = _v7.b;-							var g2 = _v8.a;-							var _v9 = _v8.b;-							var b1 = _v9.a;-							var _v10 = _v9.b;-							var b2 = _v10.a;-							return A5(-								$rtfeldman$elm_css$Css$validHex,-								str,-								_Utils_Tuple2(r1, r2),-								_Utils_Tuple2(g1, g2),-								_Utils_Tuple2(b1, b2),-								_Utils_Tuple2(-									_Utils_chr('f'),-									_Utils_chr('f')));-						} else {-							if (_v0.b.b.b.b.b.b.b.b && (!_v0.b.b.b.b.b.b.b.b.b)) {-								var r1 = _v0.a;-								var _v11 = _v0.b;-								var r2 = _v11.a;-								var _v12 = _v11.b;-								var g1 = _v12.a;-								var _v13 = _v12.b;-								var g2 = _v13.a;-								var _v14 = _v13.b;-								var b1 = _v14.a;-								var _v15 = _v14.b;-								var b2 = _v15.a;-								var _v16 = _v15.b;-								var a1 = _v16.a;-								var _v17 = _v16.b;-								var a2 = _v17.a;-								return A5(-									$rtfeldman$elm_css$Css$validHex,-									str,-									_Utils_Tuple2(r1, r2),-									_Utils_Tuple2(g1, g2),-									_Utils_Tuple2(b1, b2),-									_Utils_Tuple2(a1, a2));-							} else {-								break _v0$4;-							}-						}-					} else {-						break _v0$4;-					}-				}-			}-		} else {-			break _v0$4;-		}-	}-	return $rtfeldman$elm_css$Css$erroneousHex(str);-};-var $rtfeldman$elm_css$Css$minHeight = $rtfeldman$elm_css$Css$prop1('min-height');-var $rtfeldman$elm_css$Html$Styled$p = $rtfeldman$elm_css$Html$Styled$node('p');-var $rtfeldman$elm_css$Css$position = $rtfeldman$elm_css$Css$prop1('position');-var $rtfeldman$elm_css$VirtualDom$Styled$Unstyled = function (a) {-	return {$: 'Unstyled', a: a};-};-var $rtfeldman$elm_css$VirtualDom$Styled$text = function (str) {-	return $rtfeldman$elm_css$VirtualDom$Styled$Unstyled(-		$elm$virtual_dom$VirtualDom$text(str));-};-var $rtfeldman$elm_css$Html$Styled$text = $rtfeldman$elm_css$VirtualDom$Styled$text;-var $rtfeldman$elm_css$Css$Preprocess$ApplyStyles = function (a) {-	return {$: 'ApplyStyles', a: a};-};-var $rtfeldman$elm_css$Css$Internal$property = F2(-	function (key, value) {-		return $rtfeldman$elm_css$Css$Preprocess$AppendProperty(key + (':' + value));-	});-var $rtfeldman$elm_css$Css$Internal$getOverloadedProperty = F3(-	function (functionName, desiredKey, style) {-		getOverloadedProperty:-		while (true) {-			switch (style.$) {-				case 'AppendProperty':-					var str = style.a;-					var key = A2(-						$elm$core$Maybe$withDefault,-						'',-						$elm$core$List$head(-							A2($elm$core$String$split, ':', str)));-					return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, key);-				case 'ExtendSelector':-					var selector = style.a;-					return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-selector'));-				case 'NestSnippet':-					var combinator = style.a;-					return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-combinator'));-				case 'WithPseudoElement':-					var pseudoElement = style.a;-					return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-pseudo-element setter'));-				case 'WithMedia':-					return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-media-query'));-				case 'WithKeyframes':-					return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-keyframes'));-				default:-					if (!style.a.b) {-						return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-empty-Style'));-					} else {-						if (!style.a.b.b) {-							var _v1 = style.a;-							var only = _v1.a;-							var $temp$functionName = functionName,-								$temp$desiredKey = desiredKey,-								$temp$style = only;-							functionName = $temp$functionName;-							desiredKey = $temp$desiredKey;-							style = $temp$style;-							continue getOverloadedProperty;-						} else {-							var _v2 = style.a;-							var first = _v2.a;-							var rest = _v2.b;-							var $temp$functionName = functionName,-								$temp$desiredKey = desiredKey,-								$temp$style = $rtfeldman$elm_css$Css$Preprocess$ApplyStyles(rest);-							functionName = $temp$functionName;-							desiredKey = $temp$desiredKey;-							style = $temp$style;-							continue getOverloadedProperty;-						}-					}-			}-		}-	});-var $rtfeldman$elm_css$Css$Internal$IncompatibleUnits = {$: 'IncompatibleUnits'};-var $elm$core$String$fromFloat = _String_fromNumber;-var $rtfeldman$elm_css$Css$Internal$lengthConverter = F3(-	function (units, unitLabel, numericValue) {-		return {-			absoluteLength: $rtfeldman$elm_css$Css$Structure$Compatible,-			calc: $rtfeldman$elm_css$Css$Structure$Compatible,-			flexBasis: $rtfeldman$elm_css$Css$Structure$Compatible,-			fontSize: $rtfeldman$elm_css$Css$Structure$Compatible,-			length: $rtfeldman$elm_css$Css$Structure$Compatible,-			lengthOrAuto: $rtfeldman$elm_css$Css$Structure$Compatible,-			lengthOrAutoOrCoverOrContain: $rtfeldman$elm_css$Css$Structure$Compatible,-			lengthOrMinMaxDimension: $rtfeldman$elm_css$Css$Structure$Compatible,-			lengthOrNone: $rtfeldman$elm_css$Css$Structure$Compatible,-			lengthOrNoneOrMinMaxDimension: $rtfeldman$elm_css$Css$Structure$Compatible,-			lengthOrNumber: $rtfeldman$elm_css$Css$Structure$Compatible,-			lengthOrNumberOrAutoOrNoneOrContent: $rtfeldman$elm_css$Css$Structure$Compatible,-			numericValue: numericValue,-			textIndent: $rtfeldman$elm_css$Css$Structure$Compatible,-			unitLabel: unitLabel,-			units: units,-			value: _Utils_ap(-				$elm$core$String$fromFloat(numericValue),-				unitLabel)-		};-	});-var $rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty = A3($rtfeldman$elm_css$Css$Internal$lengthConverter, $rtfeldman$elm_css$Css$Internal$IncompatibleUnits, '', 0);-var $rtfeldman$elm_css$Css$textAlign = function (fn) {-	return A3(-		$rtfeldman$elm_css$Css$Internal$getOverloadedProperty,-		'textAlign',-		'text-align',-		fn($rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty));-};-var $elm$core$Dict$values = function (dict) {-	return A3(-		$elm$core$Dict$foldr,-		F3(-			function (key, value, valueList) {-				return A2($elm$core$List$cons, value, valueList);-			}),-		_List_Nil,-		dict);-};-var $rtfeldman$elm_css$Css$VhUnits = {$: 'VhUnits'};-var $rtfeldman$elm_css$Css$vh = A2($rtfeldman$elm_css$Css$Internal$lengthConverter, $rtfeldman$elm_css$Css$VhUnits, 'vh');-var $author$project$Main$SetFlag = F2(-	function (a, b) {-		return {$: 'SetFlag', a: a, b: b};-	});-var $rtfeldman$elm_css$Css$Structure$PseudoElement = function (a) {-	return {$: 'PseudoElement', a: a};-};-var $rtfeldman$elm_css$Css$Preprocess$WithPseudoElement = F2(-	function (a, b) {-		return {$: 'WithPseudoElement', a: a, b: b};-	});-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$batch = $rtfeldman$elm_css$Css$Preprocess$ApplyStyles;-var $rtfeldman$elm_css$Html$Styled$button = $rtfeldman$elm_css$Html$Styled$node('button');-var $rtfeldman$elm_css$Css$EmUnits = {$: 'EmUnits'};-var $rtfeldman$elm_css$Css$em = A2($rtfeldman$elm_css$Css$Internal$lengthConverter, $rtfeldman$elm_css$Css$EmUnits, 'em');-var $rtfeldman$elm_css$Css$fontSize = $rtfeldman$elm_css$Css$prop1('font-size');-var $rtfeldman$elm_css$Css$fontWeight = function (_v0) {-	var value = _v0.value;-	return A2($rtfeldman$elm_css$Css$property, 'font-weight', value);-};-var $rtfeldman$elm_css$Html$Styled$h2 = $rtfeldman$elm_css$Html$Styled$node('h2');-var $elm$core$Basics$clamp = F3(-	function (low, high, number) {-		return (_Utils_cmp(number, low) < 0) ? low : ((_Utils_cmp(number, high) > 0) ? high : number);-	});-var $elm$core$Basics$round = _Basics_round;-var $author$project$Main$handleFlagValue = F2(-	function (flagName, newValue) {-		return A2(-			$author$project$Main$SetFlag,-			flagName,-			$author$project$Main$Percentage(-				A3(-					$elm$core$Basics$clamp,-					0,-					100,-					$elm$core$Basics$round(newValue))));-	});-var $rtfeldman$elm_css$Html$Styled$input = $rtfeldman$elm_css$Html$Styled$node('input');-var $rtfeldman$elm_css$Css$prop3 = F4(-	function (key, argA, argB, argC) {-		return A2(-			$rtfeldman$elm_css$Css$property,-			key,-			A2(-				$elm$core$String$join,-				' ',-				_List_fromArray(-					[argA.value, argB.value, argC.value])));-	});-var $rtfeldman$elm_css$Css$border3 = $rtfeldman$elm_css$Css$prop3('border');-var $rtfeldman$elm_css$Css$borderBox = {backgroundClip: $rtfeldman$elm_css$Css$Structure$Compatible, boxSizing: $rtfeldman$elm_css$Css$Structure$Compatible, value: 'border-box'};-var $rtfeldman$elm_css$Css$borderRadius = $rtfeldman$elm_css$Css$prop1('border-radius');-var $rtfeldman$elm_css$Css$boxSizing = $rtfeldman$elm_css$Css$prop1('box-sizing');-var $rtfeldman$elm_css$Css$height = $rtfeldman$elm_css$Css$prop1('height');-var $rtfeldman$elm_css$Css$PxUnits = {$: 'PxUnits'};-var $rtfeldman$elm_css$Css$px = A2($rtfeldman$elm_css$Css$Internal$lengthConverter, $rtfeldman$elm_css$Css$PxUnits, 'px');-var $rtfeldman$elm_css$Css$solid = {borderStyle: $rtfeldman$elm_css$Css$Structure$Compatible, textDecorationStyle: $rtfeldman$elm_css$Css$Structure$Compatible, value: 'solid'};-var $author$project$Main$inputStyle = $rtfeldman$elm_css$Css$batch(-	_List_fromArray(-		[-			$rtfeldman$elm_css$Css$fontSize(-			$rtfeldman$elm_css$Css$em(1.1)),-			$rtfeldman$elm_css$Css$height(-			$rtfeldman$elm_css$Css$em(1.6)),-			A3(-			$rtfeldman$elm_css$Css$border3,-			$rtfeldman$elm_css$Css$px(1),-			$rtfeldman$elm_css$Css$solid,-			$rtfeldman$elm_css$Css$hex('#ccc')),-			$rtfeldman$elm_css$Css$borderRadius(-			$rtfeldman$elm_css$Css$px(2)),-			$rtfeldman$elm_css$Css$textAlign($rtfeldman$elm_css$Css$center),-			$rtfeldman$elm_css$Css$boxSizing($rtfeldman$elm_css$Css$borderBox),-			$rtfeldman$elm_css$Css$backgroundColor(-			$rtfeldman$elm_css$Css$hex('#fefefe'))-		]));-var $elm$virtual_dom$VirtualDom$lazy2 = _VirtualDom_lazy2;-var $rtfeldman$elm_css$VirtualDom$Styled$lazyHelp = F2(-	function (fn, arg) {-		return $rtfeldman$elm_css$VirtualDom$Styled$toUnstyled(-			fn(arg));-	});-var $rtfeldman$elm_css$VirtualDom$Styled$lazy = F2(-	function (fn, arg) {-		return $rtfeldman$elm_css$VirtualDom$Styled$Unstyled(-			A3($elm$virtual_dom$VirtualDom$lazy2, $rtfeldman$elm_css$VirtualDom$Styled$lazyHelp, fn, arg));-	});-var $rtfeldman$elm_css$Html$Styled$Lazy$lazy = $rtfeldman$elm_css$VirtualDom$Styled$lazy;-var $rtfeldman$elm_css$Css$prop2 = F3(-	function (key, argA, argB) {-		return A2(-			$rtfeldman$elm_css$Css$property,-			key,-			A2(-				$elm$core$String$join,-				' ',-				_List_fromArray(-					[argA.value, argB.value])));-	});-var $rtfeldman$elm_css$Css$margin2 = $rtfeldman$elm_css$Css$prop2('margin');-var $rtfeldman$elm_css$Css$prop4 = F5(-	function (key, argA, argB, argC, argD) {-		return A2(-			$rtfeldman$elm_css$Css$property,-			key,-			A2(-				$elm$core$String$join,-				' ',-				_List_fromArray(-					[argA.value, argB.value, argC.value, argD.value])));-	});-var $rtfeldman$elm_css$Css$margin4 = $rtfeldman$elm_css$Css$prop4('margin');-var $rtfeldman$elm_css$VirtualDom$Styled$property = F2(-	function (key, value) {-		return A3(-			$rtfeldman$elm_css$VirtualDom$Styled$Attribute,-			A2($elm$virtual_dom$VirtualDom$property, key, value),-			_List_Nil,-			'');-	});-var $rtfeldman$elm_css$Html$Styled$Attributes$stringProperty = F2(-	function (key, string) {-		return A2(-			$rtfeldman$elm_css$VirtualDom$Styled$property,-			key,-			$elm$json$Json$Encode$string(string));-	});-var $rtfeldman$elm_css$Html$Styled$Attributes$max = $rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('max');-var $rtfeldman$elm_css$Html$Styled$Attributes$min = $rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('min');-var $rtfeldman$elm_css$Css$normal = {featureTagValue: $rtfeldman$elm_css$Css$Structure$Compatible, fontStyle: $rtfeldman$elm_css$Css$Structure$Compatible, fontWeight: $rtfeldman$elm_css$Css$Structure$Compatible, overflowWrap: $rtfeldman$elm_css$Css$Structure$Compatible, value: 'normal', whiteSpace: $rtfeldman$elm_css$Css$Structure$Compatible};-var $elm$virtual_dom$VirtualDom$Normal = function (a) {-	return {$: 'Normal', a: a};-};-var $elm$virtual_dom$VirtualDom$on = _VirtualDom_on;-var $rtfeldman$elm_css$VirtualDom$Styled$on = F2(-	function (eventName, handler) {-		return A3(-			$rtfeldman$elm_css$VirtualDom$Styled$Attribute,-			A2($elm$virtual_dom$VirtualDom$on, eventName, handler),-			_List_Nil,-			'');-	});-var $rtfeldman$elm_css$Html$Styled$Events$on = F2(-	function (event, decoder) {-		return A2(-			$rtfeldman$elm_css$VirtualDom$Styled$on,-			event,-			$elm$virtual_dom$VirtualDom$Normal(decoder));-	});-var $rtfeldman$elm_css$Html$Styled$Events$onClick = function (msg) {-	return A2(-		$rtfeldman$elm_css$Html$Styled$Events$on,-		'click',-		$elm$json$Json$Decode$succeed(msg));-};-var $rtfeldman$elm_css$Css$padding = $rtfeldman$elm_css$Css$prop1('padding');-var $rtfeldman$elm_css$Html$Styled$section = $rtfeldman$elm_css$Html$Styled$node('section');-var $rtfeldman$elm_css$Html$Styled$Attributes$step = function (n) {-	return A2($rtfeldman$elm_css$Html$Styled$Attributes$stringProperty, 'step', n);-};-var $elm$json$Json$Decode$andThen = _Json_andThen;-var $elm$json$Json$Decode$fail = _Json_fail;-var $elm$json$Json$Decode$field = _Json_decodeField;-var $elm$json$Json$Decode$at = F2(-	function (fields, decoder) {-		return A3($elm$core$List$foldr, $elm$json$Json$Decode$field, decoder, fields);-	});-var $elm$json$Json$Decode$string = _Json_decodeString;-var $rtfeldman$elm_css$Html$Styled$Events$targetValue = A2(-	$elm$json$Json$Decode$at,-	_List_fromArray(-		['target', 'value']),-	$elm$json$Json$Decode$string);-var $elm$core$String$toFloat = _String_toFloat;-var $author$project$Main$targetValueNumber = A2(-	$elm$json$Json$Decode$andThen,-	function (str) {-		var _v0 = $elm$core$String$toFloat(str);-		if (_v0.$ === 'Nothing') {-			return $elm$json$Json$Decode$fail('Expected a number');-		} else {-			var _float = _v0.a;-			return $elm$json$Json$Decode$succeed(_float);-		}-	},-	$rtfeldman$elm_css$Html$Styled$Events$targetValue);-var $elm$core$Char$toUpper = _Char_toUpper;-var $author$project$CaseConversion$capitalize = function (original) {-	var _v0 = $elm$core$String$uncons(original);-	if (_v0.$ === 'Nothing') {-		return original;-	} else {-		var _v1 = _v0.a;-		var first = _v1.a;-		var rest = _v1.b;-		return A2(-			$elm$core$String$cons,-			$elm$core$Char$toUpper(first),-			rest);-	}-};-var $elm$parser$Parser$Done = function (a) {-	return {$: 'Done', a: a};-};-var $elm$parser$Parser$Loop = function (a) {-	return {$: 'Loop', a: a};-};-var $elm$parser$Parser$Advanced$Parser = function (a) {-	return {$: 'Parser', a: a};-};-var $elm$parser$Parser$Advanced$Bad = F2(-	function (a, b) {-		return {$: 'Bad', a: a, b: b};-	});-var $elm$parser$Parser$Advanced$Good = F3(-	function (a, b, c) {-		return {$: 'Good', a: a, b: b, c: c};-	});-var $elm$parser$Parser$Advanced$loopHelp = F4(-	function (p, state, callback, s0) {-		loopHelp:-		while (true) {-			var _v0 = callback(state);-			var parse = _v0.a;-			var _v1 = parse(s0);-			if (_v1.$ === 'Good') {-				var p1 = _v1.a;-				var step = _v1.b;-				var s1 = _v1.c;-				if (step.$ === 'Loop') {-					var newState = step.a;-					var $temp$p = p || p1,-						$temp$state = newState,-						$temp$callback = callback,-						$temp$s0 = s1;-					p = $temp$p;-					state = $temp$state;-					callback = $temp$callback;-					s0 = $temp$s0;-					continue loopHelp;-				} else {-					var result = step.a;-					return A3($elm$parser$Parser$Advanced$Good, p || p1, result, s1);-				}-			} else {-				var p1 = _v1.a;-				var x = _v1.b;-				return A2($elm$parser$Parser$Advanced$Bad, p || p1, x);-			}-		}-	});-var $elm$parser$Parser$Advanced$loop = F2(-	function (state, callback) {-		return $elm$parser$Parser$Advanced$Parser(-			function (s) {-				return A4($elm$parser$Parser$Advanced$loopHelp, false, state, callback, s);-			});-	});-var $elm$parser$Parser$Advanced$map = F2(-	function (func, _v0) {-		var parse = _v0.a;-		return $elm$parser$Parser$Advanced$Parser(-			function (s0) {-				var _v1 = parse(s0);-				if (_v1.$ === 'Good') {-					var p = _v1.a;-					var a = _v1.b;-					var s1 = _v1.c;-					return A3(-						$elm$parser$Parser$Advanced$Good,-						p,-						func(a),-						s1);-				} else {-					var p = _v1.a;-					var x = _v1.b;-					return A2($elm$parser$Parser$Advanced$Bad, p, x);-				}-			});-	});-var $elm$parser$Parser$map = $elm$parser$Parser$Advanced$map;-var $elm$parser$Parser$Advanced$Done = function (a) {-	return {$: 'Done', a: a};-};-var $elm$parser$Parser$Advanced$Loop = function (a) {-	return {$: 'Loop', a: a};-};-var $elm$parser$Parser$toAdvancedStep = function (step) {-	if (step.$ === 'Loop') {-		var s = step.a;-		return $elm$parser$Parser$Advanced$Loop(s);-	} else {-		var a = step.a;-		return $elm$parser$Parser$Advanced$Done(a);-	}-};-var $elm$parser$Parser$loop = F2(-	function (state, callback) {-		return A2(-			$elm$parser$Parser$Advanced$loop,-			state,-			function (s) {-				return A2(-					$elm$parser$Parser$map,-					$elm$parser$Parser$toAdvancedStep,-					callback(s));-			});-	});-var $elm$parser$Parser$Advanced$Empty = {$: 'Empty'};-var $elm$parser$Parser$Advanced$Append = F2(-	function (a, b) {-		return {$: 'Append', a: a, b: b};-	});-var $elm$parser$Parser$Advanced$oneOfHelp = F3(-	function (s0, bag, parsers) {-		oneOfHelp:-		while (true) {-			if (!parsers.b) {-				return A2($elm$parser$Parser$Advanced$Bad, false, bag);-			} else {-				var parse = parsers.a.a;-				var remainingParsers = parsers.b;-				var _v1 = parse(s0);-				if (_v1.$ === 'Good') {-					var step = _v1;-					return step;-				} else {-					var step = _v1;-					var p = step.a;-					var x = step.b;-					if (p) {-						return step;-					} else {-						var $temp$s0 = s0,-							$temp$bag = A2($elm$parser$Parser$Advanced$Append, bag, x),-							$temp$parsers = remainingParsers;-						s0 = $temp$s0;-						bag = $temp$bag;-						parsers = $temp$parsers;-						continue oneOfHelp;-					}-				}-			}-		}-	});-var $elm$parser$Parser$Advanced$oneOf = function (parsers) {-	return $elm$parser$Parser$Advanced$Parser(-		function (s) {-			return A3($elm$parser$Parser$Advanced$oneOfHelp, s, $elm$parser$Parser$Advanced$Empty, parsers);-		});-};-var $elm$parser$Parser$oneOf = $elm$parser$Parser$Advanced$oneOf;-var $elm$parser$Parser$DeadEnd = F3(-	function (row, col, problem) {-		return {col: col, problem: problem, row: row};-	});-var $elm$parser$Parser$problemToDeadEnd = function (p) {-	return A3($elm$parser$Parser$DeadEnd, p.row, p.col, p.problem);-};-var $elm$parser$Parser$Advanced$bagToList = F2(-	function (bag, list) {-		bagToList:-		while (true) {-			switch (bag.$) {-				case 'Empty':-					return list;-				case 'AddRight':-					var bag1 = bag.a;-					var x = bag.b;-					var $temp$bag = bag1,-						$temp$list = A2($elm$core$List$cons, x, list);-					bag = $temp$bag;-					list = $temp$list;-					continue bagToList;-				default:-					var bag1 = bag.a;-					var bag2 = bag.b;-					var $temp$bag = bag1,-						$temp$list = A2($elm$parser$Parser$Advanced$bagToList, bag2, list);-					bag = $temp$bag;-					list = $temp$list;-					continue bagToList;-			}-		}-	});-var $elm$parser$Parser$Advanced$run = F2(-	function (_v0, src) {-		var parse = _v0.a;-		var _v1 = parse(-			{col: 1, context: _List_Nil, indent: 1, offset: 0, row: 1, src: src});-		if (_v1.$ === 'Good') {-			var value = _v1.b;-			return $elm$core$Result$Ok(value);-		} else {-			var bag = _v1.b;-			return $elm$core$Result$Err(-				A2($elm$parser$Parser$Advanced$bagToList, bag, _List_Nil));-		}-	});-var $elm$parser$Parser$run = F2(-	function (parser, source) {-		var _v0 = A2($elm$parser$Parser$Advanced$run, parser, source);-		if (_v0.$ === 'Ok') {-			var a = _v0.a;-			return $elm$core$Result$Ok(a);-		} else {-			var problems = _v0.a;-			return $elm$core$Result$Err(-				A2($elm$core$List$map, $elm$parser$Parser$problemToDeadEnd, problems));-		}-	});-var $elm$parser$Parser$Advanced$succeed = function (a) {-	return $elm$parser$Parser$Advanced$Parser(-		function (s) {-			return A3($elm$parser$Parser$Advanced$Good, false, a, s);-		});-};-var $elm$parser$Parser$succeed = $elm$parser$Parser$Advanced$succeed;-var $elm$parser$Parser$UnexpectedChar = {$: 'UnexpectedChar'};-var $elm$parser$Parser$Advanced$AddRight = F2(-	function (a, b) {-		return {$: 'AddRight', a: a, b: b};-	});-var $elm$parser$Parser$Advanced$DeadEnd = F4(-	function (row, col, problem, contextStack) {-		return {col: col, contextStack: contextStack, problem: problem, row: row};-	});-var $elm$parser$Parser$Advanced$fromState = F2(-	function (s, x) {-		return A2(-			$elm$parser$Parser$Advanced$AddRight,-			$elm$parser$Parser$Advanced$Empty,-			A4($elm$parser$Parser$Advanced$DeadEnd, s.row, s.col, x, s.context));-	});-var $elm$parser$Parser$Advanced$isSubChar = _Parser_isSubChar;-var $elm$parser$Parser$Advanced$chompIf = F2(-	function (isGood, expecting) {-		return $elm$parser$Parser$Advanced$Parser(-			function (s) {-				var newOffset = A3($elm$parser$Parser$Advanced$isSubChar, isGood, s.offset, s.src);-				return _Utils_eq(newOffset, -1) ? A2(-					$elm$parser$Parser$Advanced$Bad,-					false,-					A2($elm$parser$Parser$Advanced$fromState, s, expecting)) : (_Utils_eq(newOffset, -2) ? A3(-					$elm$parser$Parser$Advanced$Good,-					true,-					_Utils_Tuple0,-					{col: 1, context: s.context, indent: s.indent, offset: s.offset + 1, row: s.row + 1, src: s.src}) : A3(-					$elm$parser$Parser$Advanced$Good,-					true,-					_Utils_Tuple0,-					{col: s.col + 1, context: s.context, indent: s.indent, offset: newOffset, row: s.row, src: s.src}));-			});-	});-var $elm$parser$Parser$chompIf = function (isGood) {-	return A2($elm$parser$Parser$Advanced$chompIf, isGood, $elm$parser$Parser$UnexpectedChar);-};-var $elm$parser$Parser$Advanced$chompWhileHelp = F5(-	function (isGood, offset, row, col, s0) {-		chompWhileHelp:-		while (true) {-			var newOffset = A3($elm$parser$Parser$Advanced$isSubChar, isGood, offset, s0.src);-			if (_Utils_eq(newOffset, -1)) {-				return A3(-					$elm$parser$Parser$Advanced$Good,-					_Utils_cmp(s0.offset, offset) < 0,-					_Utils_Tuple0,-					{col: col, context: s0.context, indent: s0.indent, offset: offset, row: row, src: s0.src});-			} else {-				if (_Utils_eq(newOffset, -2)) {-					var $temp$isGood = isGood,-						$temp$offset = offset + 1,-						$temp$row = row + 1,-						$temp$col = 1,-						$temp$s0 = s0;-					isGood = $temp$isGood;-					offset = $temp$offset;-					row = $temp$row;-					col = $temp$col;-					s0 = $temp$s0;-					continue chompWhileHelp;-				} else {-					var $temp$isGood = isGood,-						$temp$offset = newOffset,-						$temp$row = row,-						$temp$col = col + 1,-						$temp$s0 = s0;-					isGood = $temp$isGood;-					offset = $temp$offset;-					row = $temp$row;-					col = $temp$col;-					s0 = $temp$s0;-					continue chompWhileHelp;-				}-			}-		}-	});-var $elm$parser$Parser$Advanced$chompWhile = function (isGood) {-	return $elm$parser$Parser$Advanced$Parser(-		function (s) {-			return A5($elm$parser$Parser$Advanced$chompWhileHelp, isGood, s.offset, s.row, s.col, s);-		});-};-var $elm$parser$Parser$chompWhile = $elm$parser$Parser$Advanced$chompWhile;-var $elm$core$Basics$always = F2(-	function (a, _v0) {-		return a;-	});-var $elm$parser$Parser$Advanced$mapChompedString = F2(-	function (func, _v0) {-		var parse = _v0.a;-		return $elm$parser$Parser$Advanced$Parser(-			function (s0) {-				var _v1 = parse(s0);-				if (_v1.$ === 'Bad') {-					var p = _v1.a;-					var x = _v1.b;-					return A2($elm$parser$Parser$Advanced$Bad, p, x);-				} else {-					var p = _v1.a;-					var a = _v1.b;-					var s1 = _v1.c;-					return A3(-						$elm$parser$Parser$Advanced$Good,-						p,-						A2(-							func,-							A3($elm$core$String$slice, s0.offset, s1.offset, s0.src),-							a),-						s1);-				}-			});-	});-var $elm$parser$Parser$Advanced$getChompedString = function (parser) {-	return A2($elm$parser$Parser$Advanced$mapChompedString, $elm$core$Basics$always, parser);-};-var $elm$parser$Parser$getChompedString = $elm$parser$Parser$Advanced$getChompedString;-var $elm$parser$Parser$Advanced$map2 = F3(-	function (func, _v0, _v1) {-		var parseA = _v0.a;-		var parseB = _v1.a;-		return $elm$parser$Parser$Advanced$Parser(-			function (s0) {-				var _v2 = parseA(s0);-				if (_v2.$ === 'Bad') {-					var p = _v2.a;-					var x = _v2.b;-					return A2($elm$parser$Parser$Advanced$Bad, p, x);-				} else {-					var p1 = _v2.a;-					var a = _v2.b;-					var s1 = _v2.c;-					var _v3 = parseB(s1);-					if (_v3.$ === 'Bad') {-						var p2 = _v3.a;-						var x = _v3.b;-						return A2($elm$parser$Parser$Advanced$Bad, p1 || p2, x);-					} else {-						var p2 = _v3.a;-						var b = _v3.b;-						var s2 = _v3.c;-						return A3(-							$elm$parser$Parser$Advanced$Good,-							p1 || p2,-							A2(func, a, b),-							s2);-					}-				}-			});-	});-var $elm$parser$Parser$Advanced$ignorer = F2(-	function (keepParser, ignoreParser) {-		return A3($elm$parser$Parser$Advanced$map2, $elm$core$Basics$always, keepParser, ignoreParser);-	});-var $elm$parser$Parser$ignorer = $elm$parser$Parser$Advanced$ignorer;-var $author$project$CaseConversion$isWhitespace = function (c) {-	return _Utils_eq(-		c,-		_Utils_chr(' ')) || (_Utils_eq(-		c,-		_Utils_chr('\n')) || (_Utils_eq(-		c,-		_Utils_chr('\u000D')) || _Utils_eq(-		c,-		_Utils_chr('_'))));-};-var $elm$parser$Parser$Advanced$keeper = F2(-	function (parseFunc, parseArg) {-		return A3($elm$parser$Parser$Advanced$map2, $elm$core$Basics$apL, parseFunc, parseArg);-	});-var $elm$parser$Parser$keeper = $elm$parser$Parser$Advanced$keeper;-var $author$project$CaseConversion$startsWord = function (c) {-	return !($author$project$CaseConversion$isWhitespace(c) || ($elm$core$Char$isUpper(c) || $elm$core$Char$isDigit(c)));-};-var $author$project$CaseConversion$word = A2(-	$elm$parser$Parser$keeper,-	A2(-		$elm$parser$Parser$ignorer,-		$elm$parser$Parser$succeed($elm$core$Basics$identity),-		$elm$parser$Parser$chompWhile($author$project$CaseConversion$isWhitespace)),-	A2(-		$elm$parser$Parser$ignorer,-		$elm$parser$Parser$getChompedString(-			A2(-				$elm$parser$Parser$ignorer,-				A2(-					$elm$parser$Parser$ignorer,-					$elm$parser$Parser$succeed(_Utils_Tuple0),-					$elm$parser$Parser$chompIf(-						A2($elm$core$Basics$composeL, $elm$core$Basics$not, $author$project$CaseConversion$isWhitespace))),-				$elm$parser$Parser$chompWhile($author$project$CaseConversion$startsWord))),-		$elm$parser$Parser$chompWhile($author$project$CaseConversion$isWhitespace)));-var $author$project$CaseConversion$words = function (string) {-	var parser = A2(-		$elm$parser$Parser$loop,-		_List_Nil,-		function (words_) {-			return $elm$parser$Parser$oneOf(-				_List_fromArray(-					[-						A2(-						$elm$parser$Parser$map,-						function (word_) {-							return $elm$parser$Parser$Loop(-								A2($elm$core$List$cons, word_, words_));-						},-						$author$project$CaseConversion$word),-						$elm$parser$Parser$succeed(-						$elm$parser$Parser$Done(words_))-					]));-		});-	var _v0 = A2($elm$parser$Parser$run, parser, string);-	if (_v0.$ === 'Err') {-		return _List_fromArray(-			[string]);-	} else {-		var words_ = _v0.a;-		return words_;-	}-};-var $author$project$CaseConversion$toSpaceCase = function (original) {-	return A2(-		$elm$core$String$join,-		' ',-		A2(-			$elm$core$List$map,-			$author$project$CaseConversion$capitalize,-			$elm$core$List$reverse(-				$author$project$CaseConversion$words(original))));-};-var $rtfeldman$elm_css$Html$Styled$Attributes$type_ = $rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('type');-var $rtfeldman$elm_css$Html$Styled$Attributes$value = $rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('value');-var $rtfeldman$elm_css$Css$width = $rtfeldman$elm_css$Css$prop1('width');-var $rtfeldman$elm_css$Css$UnitlessInteger = {$: 'UnitlessInteger'};-var $rtfeldman$elm_css$Css$zero = {length: $rtfeldman$elm_css$Css$Structure$Compatible, lengthOrAuto: $rtfeldman$elm_css$Css$Structure$Compatible, lengthOrAutoOrCoverOrContain: $rtfeldman$elm_css$Css$Structure$Compatible, lengthOrMinMaxDimension: $rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNone: $rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNoneOrMinMaxDimension: $rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNumber: $rtfeldman$elm_css$Css$Structure$Compatible, number: $rtfeldman$elm_css$Css$Structure$Compatible, numericValue: 0, outline: $rtfeldman$elm_css$Css$Structure$Compatible, unitLabel: '', units: $rtfeldman$elm_css$Css$UnitlessInteger, value: '0'};-var $author$project$Main$viewFlag = F2(-	function (name, percentage) {-		var _v0 = $author$project$Persisted$value(percentage);-		var current = _v0.a;-		return A2(-			$rtfeldman$elm_css$Html$Styled$section,-			_List_fromArray(-				[-					$rtfeldman$elm_css$Html$Styled$Attributes$css(-					_List_fromArray(-						[-							function () {-							var _v1 = $author$project$Persisted$value(percentage);-							switch (_v1.a) {-								case 0:-									return $rtfeldman$elm_css$Css$batch(_List_Nil);-								case 100:-									return $rtfeldman$elm_css$Css$batch(-										_List_fromArray(-											[-												$rtfeldman$elm_css$Css$backgroundColor(-												$rtfeldman$elm_css$Css$hex('#C1F0C1'))-											]));-								default:-									return $rtfeldman$elm_css$Css$batch(-										_List_fromArray(-											[-												$rtfeldman$elm_css$Css$backgroundColor(-												$rtfeldman$elm_css$Css$hex('#F0EEC1'))-											]));-							}-						}(),-							$rtfeldman$elm_css$Css$padding(-							$rtfeldman$elm_css$Css$px(10))-						]))-				]),-			_List_fromArray(-				[-					A2(-					$rtfeldman$elm_css$Html$Styled$h2,-					_List_fromArray(-						[-							$rtfeldman$elm_css$Html$Styled$Attributes$css(-							_List_fromArray(-								[-									$rtfeldman$elm_css$Css$fontWeight($rtfeldman$elm_css$Css$normal),-									$rtfeldman$elm_css$Css$fontSize(-									$rtfeldman$elm_css$Css$em(1.4)),-									A4(-									$rtfeldman$elm_css$Css$margin4,-									$rtfeldman$elm_css$Css$zero,-									$rtfeldman$elm_css$Css$zero,-									$rtfeldman$elm_css$Css$em(0.5),-									$rtfeldman$elm_css$Css$zero)-								]))-						]),-					_List_fromArray(-						[-							A2(-							$rtfeldman$elm_css$Html$Styled$Lazy$lazy,-							A2($elm$core$Basics$composeL, $rtfeldman$elm_css$Html$Styled$text, $author$project$CaseConversion$toSpaceCase),-							name)-						])),-					A2(-					$rtfeldman$elm_css$Html$Styled$button,-					_List_fromArray(-						[-							$rtfeldman$elm_css$Html$Styled$Attributes$css(-							_List_fromArray(-								[$author$project$Main$inputStyle])),-							$rtfeldman$elm_css$Html$Styled$Events$onClick(-							A2(-								$author$project$Main$SetFlag,-								name,-								$author$project$Main$Percentage(0)))-						]),-					_List_fromArray(-						[-							$rtfeldman$elm_css$Html$Styled$text('❌')-						])),-					A2(-					$rtfeldman$elm_css$Html$Styled$input,-					_List_fromArray(-						[-							$rtfeldman$elm_css$Html$Styled$Attributes$value(-							$elm$core$String$fromInt(current)),-							$rtfeldman$elm_css$Html$Styled$Attributes$type_('number'),-							$rtfeldman$elm_css$Html$Styled$Attributes$min('0'),-							$rtfeldman$elm_css$Html$Styled$Attributes$max('100'),-							$rtfeldman$elm_css$Html$Styled$Attributes$step('1'),-							$rtfeldman$elm_css$Html$Styled$Attributes$css(-							_List_fromArray(-								[-									$author$project$Main$inputStyle,-									$rtfeldman$elm_css$Css$width(-									$rtfeldman$elm_css$Css$px(60)),-									A2(-									$rtfeldman$elm_css$Css$margin2,-									$rtfeldman$elm_css$Css$zero,-									$rtfeldman$elm_css$Css$px(10)),-									$rtfeldman$elm_css$Css$after(-									_List_fromArray(-										[-											A2($rtfeldman$elm_css$Css$property, 'content', '%')-										]))-								])),-							A2(-							$rtfeldman$elm_css$Html$Styled$Events$on,-							'input',-							A2(-								$elm$json$Json$Decode$map,-								$author$project$Main$handleFlagValue(name),-								$author$project$Main$targetValueNumber))-						]),-					_List_Nil),-					A2(-					$rtfeldman$elm_css$Html$Styled$button,-					_List_fromArray(-						[-							$rtfeldman$elm_css$Html$Styled$Attributes$css(-							_List_fromArray(-								[$author$project$Main$inputStyle])),-							$rtfeldman$elm_css$Html$Styled$Events$onClick(-							A2(-								$author$project$Main$SetFlag,-								name,-								$author$project$Main$Percentage(100)))-						]),-					_List_fromArray(-						[-							$rtfeldman$elm_css$Html$Styled$text('✅')-						]))-				]));-	});-var $rtfeldman$elm_css$Css$VwUnits = {$: 'VwUnits'};-var $rtfeldman$elm_css$Css$vw = A2($rtfeldman$elm_css$Css$Internal$lengthConverter, $rtfeldman$elm_css$Css$VwUnits, 'vw');-var $author$project$Main$view = function (model) {-	return A2(-		$rtfeldman$elm_css$Html$Styled$div,-		_List_fromArray(-			[-				$rtfeldman$elm_css$Html$Styled$Attributes$css(-				_List_fromArray(-					[-						$rtfeldman$elm_css$Css$textAlign($rtfeldman$elm_css$Css$center),-						$rtfeldman$elm_css$Css$fontFamilies(-						_List_fromArray(-							['Helvetica Neue', 'Helvetica', 'Arial', 'sans-serif'])),-						$rtfeldman$elm_css$Css$color(-						$rtfeldman$elm_css$Css$hex('#333')),-						$rtfeldman$elm_css$Css$backgroundColor(-						$rtfeldman$elm_css$Css$hex('#fefefe')),-						$rtfeldman$elm_css$Css$position($rtfeldman$elm_css$Css$absolute),-						$rtfeldman$elm_css$Css$minHeight(-						$rtfeldman$elm_css$Css$vh(100)),-						$rtfeldman$elm_css$Css$width(-						$rtfeldman$elm_css$Css$vw(100))-					]))-			]),-		A2(-			$elm$core$List$cons,-			A2(-				$rtfeldman$elm_css$Html$Styled$h1,-				_List_Nil,-				_List_fromArray(-					[-						$rtfeldman$elm_css$Html$Styled$text('Feature Flags')-					])),-			function () {-				var _v0 = model.data;-				if (_v0.$ === 'Loading') {-					return _List_fromArray(-						[-							$rtfeldman$elm_css$Html$Styled$text('Loading...')-						]);-				} else {-					var flags = _v0.a;-					return A2(-						$elm$core$List$cons,-						A2(-							$rtfeldman$elm_css$Html$Styled$p,-							_List_Nil,-							_List_fromArray(-								[-									$rtfeldman$elm_css$Html$Styled$text('Every feature flag can be completely enabled, completely disabled, or enabled for a percentage of traffic.')-								])),-						$elm$core$Dict$values(-							A2($elm$core$Dict$map, $author$project$Main$viewFlag, flags)));-				}-			}()));-};-var $author$project$Main$main = $elm$browser$Browser$application(-	{-		init: F3(-			function (_v0, url, _v1) {-				var rootPath = A2($elm$core$String$split, '/', url.path);-				return _Utils_Tuple2(-					{data: $author$project$Main$Loading, rootPath: rootPath},-					$author$project$Main$sendLoadFlagsRequest(rootPath));-			}),-		onUrlChange: function (_v2) {-			return $author$project$Main$NoOp;-		},-		onUrlRequest: function (_v3) {-			return $author$project$Main$NoOp;-		},-		subscriptions: function (_v4) {-			return A2(-				$elm$time$Time$every,-				5 * 1000,-				function (_v5) {-					return $author$project$Main$LoadFlags;-				});-		},-		update: $author$project$Main$update,-		view: function (model) {-			return {-				body: _List_fromArray(-					[-						$rtfeldman$elm_css$Html$Styled$toUnstyled(-						$author$project$Main$view(model))-					]),-				title: 'Feature Flags'-			};-		}-	});-_Platform_export({'Main':{'init':$author$project$Main$main(-	$elm$json$Json$Decode$succeed(_Utils_Tuple0))(0)}});}(this));++++var _JsArray_empty = [];++function _JsArray_singleton(value)+{+    return [value];+}++function _JsArray_length(array)+{+    return array.length;+}++var _JsArray_initialize = F3(function(size, offset, func)+{+    var result = new Array(size);++    for (var i = 0; i < size; i++)+    {+        result[i] = func(offset + i);+    }++    return result;+});++var _JsArray_initializeFromList = F2(function (max, ls)+{+    var result = new Array(max);++    for (var i = 0; i < max && ls.b; i++)+    {+        result[i] = ls.a;+        ls = ls.b;+    }++    result.length = i;+    return _Utils_Tuple2(result, ls);+});++var _JsArray_unsafeGet = F2(function(index, array)+{+    return array[index];+});++var _JsArray_unsafeSet = F3(function(index, value, array)+{+    var length = array.length;+    var result = new Array(length);++    for (var i = 0; i < length; i++)+    {+        result[i] = array[i];+    }++    result[index] = value;+    return result;+});++var _JsArray_push = F2(function(value, array)+{+    var length = array.length;+    var result = new Array(length + 1);++    for (var i = 0; i < length; i++)+    {+        result[i] = array[i];+    }++    result[length] = value;+    return result;+});++var _JsArray_foldl = F3(function(func, acc, array)+{+    var length = array.length;++    for (var i = 0; i < length; i++)+    {+        acc = A2(func, array[i], acc);+    }++    return acc;+});++var _JsArray_foldr = F3(function(func, acc, array)+{+    for (var i = array.length - 1; i >= 0; i--)+    {+        acc = A2(func, array[i], acc);+    }++    return acc;+});++var _JsArray_map = F2(function(func, array)+{+    var length = array.length;+    var result = new Array(length);++    for (var i = 0; i < length; i++)+    {+        result[i] = func(array[i]);+    }++    return result;+});++var _JsArray_indexedMap = F3(function(func, offset, array)+{+    var length = array.length;+    var result = new Array(length);++    for (var i = 0; i < length; i++)+    {+        result[i] = A2(func, offset + i, array[i]);+    }++    return result;+});++var _JsArray_slice = F3(function(from, to, array)+{+    return array.slice(from, to);+});++var _JsArray_appendN = F3(function(n, dest, source)+{+    var destLen = dest.length;+    var itemsToCopy = n - destLen;++    if (itemsToCopy > source.length)+    {+        itemsToCopy = source.length;+    }++    var size = destLen + itemsToCopy;+    var result = new Array(size);++    for (var i = 0; i < destLen; i++)+    {+        result[i] = dest[i];+    }++    for (var i = 0; i < itemsToCopy; i++)+    {+        result[i + destLen] = source[i];+    }++    return result;+});++++// LOG++var _Debug_log = F2(function(tag, value)+{+	return value;+});++var _Debug_log_UNUSED = F2(function(tag, value)+{+	console.log(tag + ': ' + _Debug_toString(value));+	return value;+});+++// TODOS++function _Debug_todo(moduleName, region)+{+	return function(message) {+		_Debug_crash(8, moduleName, region, message);+	};+}++function _Debug_todoCase(moduleName, region, value)+{+	return function(message) {+		_Debug_crash(9, moduleName, region, value, message);+	};+}+++// TO STRING++function _Debug_toString(value)+{+	return '<internals>';+}++function _Debug_toString_UNUSED(value)+{+	return _Debug_toAnsiString(false, value);+}++function _Debug_toAnsiString(ansi, value)+{+	if (typeof value === 'function')+	{+		return _Debug_internalColor(ansi, '<function>');+	}++	if (typeof value === 'boolean')+	{+		return _Debug_ctorColor(ansi, value ? 'True' : 'False');+	}++	if (typeof value === 'number')+	{+		return _Debug_numberColor(ansi, value + '');+	}++	if (value instanceof String)+	{+		return _Debug_charColor(ansi, "'" + _Debug_addSlashes(value, true) + "'");+	}++	if (typeof value === 'string')+	{+		return _Debug_stringColor(ansi, '"' + _Debug_addSlashes(value, false) + '"');+	}++	if (typeof value === 'object' && '$' in value)+	{+		var tag = value.$;++		if (typeof tag === 'number')+		{+			return _Debug_internalColor(ansi, '<internals>');+		}++		if (tag[0] === '#')+		{+			var output = [];+			for (var k in value)+			{+				if (k === '$') continue;+				output.push(_Debug_toAnsiString(ansi, value[k]));+			}+			return '(' + output.join(',') + ')';+		}++		if (tag === 'Set_elm_builtin')+		{+			return _Debug_ctorColor(ansi, 'Set')+				+ _Debug_fadeColor(ansi, '.fromList') + ' '+				+ _Debug_toAnsiString(ansi, $elm$core$Set$toList(value));+		}++		if (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin')+		{+			return _Debug_ctorColor(ansi, 'Dict')+				+ _Debug_fadeColor(ansi, '.fromList') + ' '+				+ _Debug_toAnsiString(ansi, $elm$core$Dict$toList(value));+		}++		if (tag === 'Array_elm_builtin')+		{+			return _Debug_ctorColor(ansi, 'Array')+				+ _Debug_fadeColor(ansi, '.fromList') + ' '+				+ _Debug_toAnsiString(ansi, $elm$core$Array$toList(value));+		}++		if (tag === '::' || tag === '[]')+		{+			var output = '[';++			value.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b)++			for (; value.b; value = value.b) // WHILE_CONS+			{+				output += ',' + _Debug_toAnsiString(ansi, value.a);+			}+			return output + ']';+		}++		var output = '';+		for (var i in value)+		{+			if (i === '$') continue;+			var str = _Debug_toAnsiString(ansi, value[i]);+			var c0 = str[0];+			var parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0;+			output += ' ' + (parenless ? str : '(' + str + ')');+		}+		return _Debug_ctorColor(ansi, tag) + output;+	}++	if (typeof DataView === 'function' && value instanceof DataView)+	{+		return _Debug_stringColor(ansi, '<' + value.byteLength + ' bytes>');+	}++	if (typeof File !== 'undefined' && value instanceof File)+	{+		return _Debug_internalColor(ansi, '<' + value.name + '>');+	}++	if (typeof value === 'object')+	{+		var output = [];+		for (var key in value)+		{+			var field = key[0] === '_' ? key.slice(1) : key;+			output.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key]));+		}+		if (output.length === 0)+		{+			return '{}';+		}+		return '{ ' + output.join(', ') + ' }';+	}++	return _Debug_internalColor(ansi, '<internals>');+}++function _Debug_addSlashes(str, isChar)+{+	var s = str+		.replace(/\\/g, '\\\\')+		.replace(/\n/g, '\\n')+		.replace(/\t/g, '\\t')+		.replace(/\r/g, '\\r')+		.replace(/\v/g, '\\v')+		.replace(/\0/g, '\\0');++	if (isChar)+	{+		return s.replace(/\'/g, '\\\'');+	}+	else+	{+		return s.replace(/\"/g, '\\"');+	}+}++function _Debug_ctorColor(ansi, string)+{+	return ansi ? '\x1b[96m' + string + '\x1b[0m' : string;+}++function _Debug_numberColor(ansi, string)+{+	return ansi ? '\x1b[95m' + string + '\x1b[0m' : string;+}++function _Debug_stringColor(ansi, string)+{+	return ansi ? '\x1b[93m' + string + '\x1b[0m' : string;+}++function _Debug_charColor(ansi, string)+{+	return ansi ? '\x1b[92m' + string + '\x1b[0m' : string;+}++function _Debug_fadeColor(ansi, string)+{+	return ansi ? '\x1b[37m' + string + '\x1b[0m' : string;+}++function _Debug_internalColor(ansi, string)+{+	return ansi ? '\x1b[36m' + string + '\x1b[0m' : string;+}++function _Debug_toHexDigit(n)+{+	return String.fromCharCode(n < 10 ? 48 + n : 55 + n);+}+++// CRASH+++function _Debug_crash(identifier)+{+	throw new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md');+}+++function _Debug_crash_UNUSED(identifier, fact1, fact2, fact3, fact4)+{+	switch(identifier)+	{+		case 0:+			throw new Error('What node should I take over? In JavaScript I need something like:\n\n    Elm.Main.init({\n        node: document.getElementById("elm-node")\n    })\n\nYou need to do this with any Browser.sandbox or Browser.element program.');++		case 1:+			throw new Error('Browser.application programs cannot handle URLs like this:\n\n    ' + document.location.href + '\n\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.');++		case 2:+			var jsonErrorString = fact1;+			throw new Error('Problem with the flags given to your Elm program on initialization.\n\n' + jsonErrorString);++		case 3:+			var portName = fact1;+			throw new Error('There can only be one port named `' + portName + '`, but your program has multiple.');++		case 4:+			var portName = fact1;+			var problem = fact2;+			throw new Error('Trying to send an unexpected type of value through port `' + portName + '`:\n' + problem);++		case 5:+			throw new Error('Trying to use `(==)` on functions.\nThere is no way to know if functions are "the same" in the Elm sense.\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.');++		case 6:+			var moduleName = fact1;+			throw new Error('Your page is loading multiple Elm scripts with a module named ' + moduleName + '. Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!');++		case 8:+			var moduleName = fact1;+			var region = fact2;+			var message = fact3;+			throw new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\n\n' + message);++		case 9:+			var moduleName = fact1;+			var region = fact2;+			var value = fact3;+			var message = fact4;+			throw new Error(+				'TODO in module `' + moduleName + '` from the `case` expression '+				+ _Debug_regionToString(region) + '\n\nIt received the following value:\n\n    '+				+ _Debug_toString(value).replace('\n', '\n    ')+				+ '\n\nBut the branch that handles it says:\n\n    ' + message.replace('\n', '\n    ')+			);++		case 10:+			throw new Error('Bug in https://github.com/elm/virtual-dom/issues');++		case 11:+			throw new Error('Cannot perform mod 0. Division by zero error.');+	}+}++function _Debug_regionToString(region)+{+	if (region.bm.aG === region.bK.aG)+	{+		return 'on line ' + region.bm.aG;+	}+	return 'on lines ' + region.bm.aG + ' through ' + region.bK.aG;+}++++// EQUALITY++function _Utils_eq(x, y)+{+	for (+		var pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack);+		isEqual && (pair = stack.pop());+		isEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack)+		)+	{}++	return isEqual;+}++function _Utils_eqHelp(x, y, depth, stack)+{+	if (x === y)+	{+		return true;+	}++	if (typeof x !== 'object' || x === null || y === null)+	{+		typeof x === 'function' && _Debug_crash(5);+		return false;+	}++	if (depth > 100)+	{+		stack.push(_Utils_Tuple2(x,y));+		return true;+	}++	/**_UNUSED/+	if (x.$ === 'Set_elm_builtin')+	{+		x = $elm$core$Set$toList(x);+		y = $elm$core$Set$toList(y);+	}+	if (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin')+	{+		x = $elm$core$Dict$toList(x);+		y = $elm$core$Dict$toList(y);+	}+	//*/++	/**/+	if (x.$ < 0)+	{+		x = $elm$core$Dict$toList(x);+		y = $elm$core$Dict$toList(y);+	}+	//*/++	for (var key in x)+	{+		if (!_Utils_eqHelp(x[key], y[key], depth + 1, stack))+		{+			return false;+		}+	}+	return true;+}++var _Utils_equal = F2(_Utils_eq);+var _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); });++++// COMPARISONS++// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on+// the particular integer values assigned to LT, EQ, and GT.++function _Utils_cmp(x, y, ord)+{+	if (typeof x !== 'object')+	{+		return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1;+	}++	/**_UNUSED/+	if (x instanceof String)+	{+		var a = x.valueOf();+		var b = y.valueOf();+		return a === b ? 0 : a < b ? -1 : 1;+	}+	//*/++	/**/+	if (typeof x.$ === 'undefined')+	//*/+	/**_UNUSED/+	if (x.$[0] === '#')+	//*/+	{+		return (ord = _Utils_cmp(x.a, y.a))+			? ord+			: (ord = _Utils_cmp(x.b, y.b))+				? ord+				: _Utils_cmp(x.c, y.c);+	}++	// traverse conses until end of a list or a mismatch+	for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES+	return ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0);+}++var _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; });+var _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; });+var _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; });+var _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; });++var _Utils_compare = F2(function(x, y)+{+	var n = _Utils_cmp(x, y);+	return n < 0 ? $elm$core$Basics$LT : n ? $elm$core$Basics$GT : $elm$core$Basics$EQ;+});+++// COMMON VALUES++var _Utils_Tuple0 = 0;+var _Utils_Tuple0_UNUSED = { $: '#0' };++function _Utils_Tuple2(a, b) { return { a: a, b: b }; }+function _Utils_Tuple2_UNUSED(a, b) { return { $: '#2', a: a, b: b }; }++function _Utils_Tuple3(a, b, c) { return { a: a, b: b, c: c }; }+function _Utils_Tuple3_UNUSED(a, b, c) { return { $: '#3', a: a, b: b, c: c }; }++function _Utils_chr(c) { return c; }+function _Utils_chr_UNUSED(c) { return new String(c); }+++// RECORDS++function _Utils_update(oldRecord, updatedFields)+{+	var newRecord = {};++	for (var key in oldRecord)+	{+		newRecord[key] = oldRecord[key];+	}++	for (var key in updatedFields)+	{+		newRecord[key] = updatedFields[key];+	}++	return newRecord;+}+++// APPEND++var _Utils_append = F2(_Utils_ap);++function _Utils_ap(xs, ys)+{+	// append Strings+	if (typeof xs === 'string')+	{+		return xs + ys;+	}++	// append Lists+	if (!xs.b)+	{+		return ys;+	}+	var root = _List_Cons(xs.a, ys);+	xs = xs.b+	for (var curr = root; xs.b; xs = xs.b) // WHILE_CONS+	{+		curr = curr.b = _List_Cons(xs.a, ys);+	}+	return root;+}++++var _List_Nil = { $: 0 };+var _List_Nil_UNUSED = { $: '[]' };++function _List_Cons(hd, tl) { return { $: 1, a: hd, b: tl }; }+function _List_Cons_UNUSED(hd, tl) { return { $: '::', a: hd, b: tl }; }+++var _List_cons = F2(_List_Cons);++function _List_fromArray(arr)+{+	var out = _List_Nil;+	for (var i = arr.length; i--; )+	{+		out = _List_Cons(arr[i], out);+	}+	return out;+}++function _List_toArray(xs)+{+	for (var out = []; xs.b; xs = xs.b) // WHILE_CONS+	{+		out.push(xs.a);+	}+	return out;+}++var _List_map2 = F3(function(f, xs, ys)+{+	for (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES+	{+		arr.push(A2(f, xs.a, ys.a));+	}+	return _List_fromArray(arr);+});++var _List_map3 = F4(function(f, xs, ys, zs)+{+	for (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES+	{+		arr.push(A3(f, xs.a, ys.a, zs.a));+	}+	return _List_fromArray(arr);+});++var _List_map4 = F5(function(f, ws, xs, ys, zs)+{+	for (var arr = []; ws.b && xs.b && ys.b && zs.b; ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES+	{+		arr.push(A4(f, ws.a, xs.a, ys.a, zs.a));+	}+	return _List_fromArray(arr);+});++var _List_map5 = F6(function(f, vs, ws, xs, ys, zs)+{+	for (var arr = []; vs.b && ws.b && xs.b && ys.b && zs.b; vs = vs.b, ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES+	{+		arr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a));+	}+	return _List_fromArray(arr);+});++var _List_sortBy = F2(function(f, xs)+{+	return _List_fromArray(_List_toArray(xs).sort(function(a, b) {+		return _Utils_cmp(f(a), f(b));+	}));+});++var _List_sortWith = F2(function(f, xs)+{+	return _List_fromArray(_List_toArray(xs).sort(function(a, b) {+		var ord = A2(f, a, b);+		return ord === $elm$core$Basics$EQ ? 0 : ord === $elm$core$Basics$LT ? -1 : 1;+	}));+});++++// MATH++var _Basics_add = F2(function(a, b) { return a + b; });+var _Basics_sub = F2(function(a, b) { return a - b; });+var _Basics_mul = F2(function(a, b) { return a * b; });+var _Basics_fdiv = F2(function(a, b) { return a / b; });+var _Basics_idiv = F2(function(a, b) { return (a / b) | 0; });+var _Basics_pow = F2(Math.pow);++var _Basics_remainderBy = F2(function(b, a) { return a % b; });++// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf+var _Basics_modBy = F2(function(modulus, x)+{+	var answer = x % modulus;+	return modulus === 0+		? _Debug_crash(11)+		:+	((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0))+		? answer + modulus+		: answer;+});+++// TRIGONOMETRY++var _Basics_pi = Math.PI;+var _Basics_e = Math.E;+var _Basics_cos = Math.cos;+var _Basics_sin = Math.sin;+var _Basics_tan = Math.tan;+var _Basics_acos = Math.acos;+var _Basics_asin = Math.asin;+var _Basics_atan = Math.atan;+var _Basics_atan2 = F2(Math.atan2);+++// MORE MATH++function _Basics_toFloat(x) { return x; }+function _Basics_truncate(n) { return n | 0; }+function _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; }++var _Basics_ceiling = Math.ceil;+var _Basics_floor = Math.floor;+var _Basics_round = Math.round;+var _Basics_sqrt = Math.sqrt;+var _Basics_log = Math.log;+var _Basics_isNaN = isNaN;+++// BOOLEANS++function _Basics_not(bool) { return !bool; }+var _Basics_and = F2(function(a, b) { return a && b; });+var _Basics_or  = F2(function(a, b) { return a || b; });+var _Basics_xor = F2(function(a, b) { return a !== b; });++++var _String_cons = F2(function(chr, str)+{+	return chr + str;+});++function _String_uncons(string)+{+	var word = string.charCodeAt(0);+	return !isNaN(word)+		? $elm$core$Maybe$Just(+			0xD800 <= word && word <= 0xDBFF+				? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2))+				: _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1))+		)+		: $elm$core$Maybe$Nothing;+}++var _String_append = F2(function(a, b)+{+	return a + b;+});++function _String_length(str)+{+	return str.length;+}++var _String_map = F2(function(func, string)+{+	var len = string.length;+	var array = new Array(len);+	var i = 0;+	while (i < len)+	{+		var word = string.charCodeAt(i);+		if (0xD800 <= word && word <= 0xDBFF)+		{+			array[i] = func(_Utils_chr(string[i] + string[i+1]));+			i += 2;+			continue;+		}+		array[i] = func(_Utils_chr(string[i]));+		i++;+	}+	return array.join('');+});++var _String_filter = F2(function(isGood, str)+{+	var arr = [];+	var len = str.length;+	var i = 0;+	while (i < len)+	{+		var char = str[i];+		var word = str.charCodeAt(i);+		i++;+		if (0xD800 <= word && word <= 0xDBFF)+		{+			char += str[i];+			i++;+		}++		if (isGood(_Utils_chr(char)))+		{+			arr.push(char);+		}+	}+	return arr.join('');+});++function _String_reverse(str)+{+	var len = str.length;+	var arr = new Array(len);+	var i = 0;+	while (i < len)+	{+		var word = str.charCodeAt(i);+		if (0xD800 <= word && word <= 0xDBFF)+		{+			arr[len - i] = str[i + 1];+			i++;+			arr[len - i] = str[i - 1];+			i++;+		}+		else+		{+			arr[len - i] = str[i];+			i++;+		}+	}+	return arr.join('');+}++var _String_foldl = F3(function(func, state, string)+{+	var len = string.length;+	var i = 0;+	while (i < len)+	{+		var char = string[i];+		var word = string.charCodeAt(i);+		i++;+		if (0xD800 <= word && word <= 0xDBFF)+		{+			char += string[i];+			i++;+		}+		state = A2(func, _Utils_chr(char), state);+	}+	return state;+});++var _String_foldr = F3(function(func, state, string)+{+	var i = string.length;+	while (i--)+	{+		var char = string[i];+		var word = string.charCodeAt(i);+		if (0xDC00 <= word && word <= 0xDFFF)+		{+			i--;+			char = string[i] + char;+		}+		state = A2(func, _Utils_chr(char), state);+	}+	return state;+});++var _String_split = F2(function(sep, str)+{+	return str.split(sep);+});++var _String_join = F2(function(sep, strs)+{+	return strs.join(sep);+});++var _String_slice = F3(function(start, end, str) {+	return str.slice(start, end);+});++function _String_trim(str)+{+	return str.trim();+}++function _String_trimLeft(str)+{+	return str.replace(/^\s+/, '');+}++function _String_trimRight(str)+{+	return str.replace(/\s+$/, '');+}++function _String_words(str)+{+	return _List_fromArray(str.trim().split(/\s+/g));+}++function _String_lines(str)+{+	return _List_fromArray(str.split(/\r\n|\r|\n/g));+}++function _String_toUpper(str)+{+	return str.toUpperCase();+}++function _String_toLower(str)+{+	return str.toLowerCase();+}++var _String_any = F2(function(isGood, string)+{+	var i = string.length;+	while (i--)+	{+		var char = string[i];+		var word = string.charCodeAt(i);+		if (0xDC00 <= word && word <= 0xDFFF)+		{+			i--;+			char = string[i] + char;+		}+		if (isGood(_Utils_chr(char)))+		{+			return true;+		}+	}+	return false;+});++var _String_all = F2(function(isGood, string)+{+	var i = string.length;+	while (i--)+	{+		var char = string[i];+		var word = string.charCodeAt(i);+		if (0xDC00 <= word && word <= 0xDFFF)+		{+			i--;+			char = string[i] + char;+		}+		if (!isGood(_Utils_chr(char)))+		{+			return false;+		}+	}+	return true;+});++var _String_contains = F2(function(sub, str)+{+	return str.indexOf(sub) > -1;+});++var _String_startsWith = F2(function(sub, str)+{+	return str.indexOf(sub) === 0;+});++var _String_endsWith = F2(function(sub, str)+{+	return str.length >= sub.length &&+		str.lastIndexOf(sub) === str.length - sub.length;+});++var _String_indexes = F2(function(sub, str)+{+	var subLen = sub.length;++	if (subLen < 1)+	{+		return _List_Nil;+	}++	var i = 0;+	var is = [];++	while ((i = str.indexOf(sub, i)) > -1)+	{+		is.push(i);+		i = i + subLen;+	}++	return _List_fromArray(is);+});+++// TO STRING++function _String_fromNumber(number)+{+	return number + '';+}+++// INT CONVERSIONS++function _String_toInt(str)+{+	var total = 0;+	var code0 = str.charCodeAt(0);+	var start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0;++	for (var i = start; i < str.length; ++i)+	{+		var code = str.charCodeAt(i);+		if (code < 0x30 || 0x39 < code)+		{+			return $elm$core$Maybe$Nothing;+		}+		total = 10 * total + code - 0x30;+	}++	return i == start+		? $elm$core$Maybe$Nothing+		: $elm$core$Maybe$Just(code0 == 0x2D ? -total : total);+}+++// FLOAT CONVERSIONS++function _String_toFloat(s)+{+	// check if it is a hex, octal, or binary number+	if (s.length === 0 || /[\sxbo]/.test(s))+	{+		return $elm$core$Maybe$Nothing;+	}+	var n = +s;+	// faster isNaN check+	return n === n ? $elm$core$Maybe$Just(n) : $elm$core$Maybe$Nothing;+}++function _String_fromList(chars)+{+	return _List_toArray(chars).join('');+}+++++function _Char_toCode(char)+{+	var code = char.charCodeAt(0);+	if (0xD800 <= code && code <= 0xDBFF)+	{+		return (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000+	}+	return code;+}++function _Char_fromCode(code)+{+	return _Utils_chr(+		(code < 0 || 0x10FFFF < code)+			? '\uFFFD'+			:+		(code <= 0xFFFF)+			? String.fromCharCode(code)+			:+		(code -= 0x10000,+			String.fromCharCode(Math.floor(code / 0x400) + 0xD800, code % 0x400 + 0xDC00)+		)+	);+}++function _Char_toUpper(char)+{+	return _Utils_chr(char.toUpperCase());+}++function _Char_toLower(char)+{+	return _Utils_chr(char.toLowerCase());+}++function _Char_toLocaleUpper(char)+{+	return _Utils_chr(char.toLocaleUpperCase());+}++function _Char_toLocaleLower(char)+{+	return _Utils_chr(char.toLocaleLowerCase());+}++++/**_UNUSED/+function _Json_errorToString(error)+{+	return $elm$json$Json$Decode$errorToString(error);+}+//*/+++// CORE DECODERS++function _Json_succeed(msg)+{+	return {+		$: 0,+		a: msg+	};+}++function _Json_fail(msg)+{+	return {+		$: 1,+		a: msg+	};+}++function _Json_decodePrim(decoder)+{+	return { $: 2, b: decoder };+}++var _Json_decodeInt = _Json_decodePrim(function(value) {+	return (typeof value !== 'number')+		? _Json_expecting('an INT', value)+		:+	(-2147483647 < value && value < 2147483647 && (value | 0) === value)+		? $elm$core$Result$Ok(value)+		:+	(isFinite(value) && !(value % 1))+		? $elm$core$Result$Ok(value)+		: _Json_expecting('an INT', value);+});++var _Json_decodeBool = _Json_decodePrim(function(value) {+	return (typeof value === 'boolean')+		? $elm$core$Result$Ok(value)+		: _Json_expecting('a BOOL', value);+});++var _Json_decodeFloat = _Json_decodePrim(function(value) {+	return (typeof value === 'number')+		? $elm$core$Result$Ok(value)+		: _Json_expecting('a FLOAT', value);+});++var _Json_decodeValue = _Json_decodePrim(function(value) {+	return $elm$core$Result$Ok(_Json_wrap(value));+});++var _Json_decodeString = _Json_decodePrim(function(value) {+	return (typeof value === 'string')+		? $elm$core$Result$Ok(value)+		: (value instanceof String)+			? $elm$core$Result$Ok(value + '')+			: _Json_expecting('a STRING', value);+});++function _Json_decodeList(decoder) { return { $: 3, b: decoder }; }+function _Json_decodeArray(decoder) { return { $: 4, b: decoder }; }++function _Json_decodeNull(value) { return { $: 5, c: value }; }++var _Json_decodeField = F2(function(field, decoder)+{+	return {+		$: 6,+		d: field,+		b: decoder+	};+});++var _Json_decodeIndex = F2(function(index, decoder)+{+	return {+		$: 7,+		e: index,+		b: decoder+	};+});++function _Json_decodeKeyValuePairs(decoder)+{+	return {+		$: 8,+		b: decoder+	};+}++function _Json_mapMany(f, decoders)+{+	return {+		$: 9,+		f: f,+		g: decoders+	};+}++var _Json_andThen = F2(function(callback, decoder)+{+	return {+		$: 10,+		b: decoder,+		h: callback+	};+});++function _Json_oneOf(decoders)+{+	return {+		$: 11,+		g: decoders+	};+}+++// DECODING OBJECTS++var _Json_map1 = F2(function(f, d1)+{+	return _Json_mapMany(f, [d1]);+});++var _Json_map2 = F3(function(f, d1, d2)+{+	return _Json_mapMany(f, [d1, d2]);+});++var _Json_map3 = F4(function(f, d1, d2, d3)+{+	return _Json_mapMany(f, [d1, d2, d3]);+});++var _Json_map4 = F5(function(f, d1, d2, d3, d4)+{+	return _Json_mapMany(f, [d1, d2, d3, d4]);+});++var _Json_map5 = F6(function(f, d1, d2, d3, d4, d5)+{+	return _Json_mapMany(f, [d1, d2, d3, d4, d5]);+});++var _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6)+{+	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]);+});++var _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7)+{+	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]);+});++var _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8)+{+	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]);+});+++// DECODE++var _Json_runOnString = F2(function(decoder, string)+{+	try+	{+		var value = JSON.parse(string);+		return _Json_runHelp(decoder, value);+	}+	catch (e)+	{+		return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string)));+	}+});++var _Json_run = F2(function(decoder, value)+{+	return _Json_runHelp(decoder, _Json_unwrap(value));+});++function _Json_runHelp(decoder, value)+{+	switch (decoder.$)+	{+		case 2:+			return decoder.b(value);++		case 5:+			return (value === null)+				? $elm$core$Result$Ok(decoder.c)+				: _Json_expecting('null', value);++		case 3:+			if (!_Json_isArray(value))+			{+				return _Json_expecting('a LIST', value);+			}+			return _Json_runArrayDecoder(decoder.b, value, _List_fromArray);++		case 4:+			if (!_Json_isArray(value))+			{+				return _Json_expecting('an ARRAY', value);+			}+			return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray);++		case 6:+			var field = decoder.d;+			if (typeof value !== 'object' || value === null || !(field in value))+			{+				return _Json_expecting('an OBJECT with a field named `' + field + '`', value);+			}+			var result = _Json_runHelp(decoder.b, value[field]);+			return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, field, result.a));++		case 7:+			var index = decoder.e;+			if (!_Json_isArray(value))+			{+				return _Json_expecting('an ARRAY', value);+			}+			if (index >= value.length)+			{+				return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value);+			}+			var result = _Json_runHelp(decoder.b, value[index]);+			return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, index, result.a));++		case 8:+			if (typeof value !== 'object' || value === null || _Json_isArray(value))+			{+				return _Json_expecting('an OBJECT', value);+			}++			var keyValuePairs = _List_Nil;+			// TODO test perf of Object.keys and switch when support is good enough+			for (var key in value)+			{+				if (value.hasOwnProperty(key))+				{+					var result = _Json_runHelp(decoder.b, value[key]);+					if (!$elm$core$Result$isOk(result))+					{+						return $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, key, result.a));+					}+					keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs);+				}+			}+			return $elm$core$Result$Ok($elm$core$List$reverse(keyValuePairs));++		case 9:+			var answer = decoder.f;+			var decoders = decoder.g;+			for (var i = 0; i < decoders.length; i++)+			{+				var result = _Json_runHelp(decoders[i], value);+				if (!$elm$core$Result$isOk(result))+				{+					return result;+				}+				answer = answer(result.a);+			}+			return $elm$core$Result$Ok(answer);++		case 10:+			var result = _Json_runHelp(decoder.b, value);+			return (!$elm$core$Result$isOk(result))+				? result+				: _Json_runHelp(decoder.h(result.a), value);++		case 11:+			var errors = _List_Nil;+			for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS+			{+				var result = _Json_runHelp(temp.a, value);+				if ($elm$core$Result$isOk(result))+				{+					return result;+				}+				errors = _List_Cons(result.a, errors);+			}+			return $elm$core$Result$Err($elm$json$Json$Decode$OneOf($elm$core$List$reverse(errors)));++		case 1:+			return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value)));++		case 0:+			return $elm$core$Result$Ok(decoder.a);+	}+}++function _Json_runArrayDecoder(decoder, value, toElmValue)+{+	var len = value.length;+	var array = new Array(len);+	for (var i = 0; i < len; i++)+	{+		var result = _Json_runHelp(decoder, value[i]);+		if (!$elm$core$Result$isOk(result))+		{+			return $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, i, result.a));+		}+		array[i] = result.a;+	}+	return $elm$core$Result$Ok(toElmValue(array));+}++function _Json_isArray(value)+{+	return Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList);+}++function _Json_toElmArray(array)+{+	return A2($elm$core$Array$initialize, array.length, function(i) { return array[i]; });+}++function _Json_expecting(type, value)+{+	return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value)));+}+++// EQUALITY++function _Json_equality(x, y)+{+	if (x === y)+	{+		return true;+	}++	if (x.$ !== y.$)+	{+		return false;+	}++	switch (x.$)+	{+		case 0:+		case 1:+			return x.a === y.a;++		case 2:+			return x.b === y.b;++		case 5:+			return x.c === y.c;++		case 3:+		case 4:+		case 8:+			return _Json_equality(x.b, y.b);++		case 6:+			return x.d === y.d && _Json_equality(x.b, y.b);++		case 7:+			return x.e === y.e && _Json_equality(x.b, y.b);++		case 9:+			return x.f === y.f && _Json_listEquality(x.g, y.g);++		case 10:+			return x.h === y.h && _Json_equality(x.b, y.b);++		case 11:+			return _Json_listEquality(x.g, y.g);+	}+}++function _Json_listEquality(aDecoders, bDecoders)+{+	var len = aDecoders.length;+	if (len !== bDecoders.length)+	{+		return false;+	}+	for (var i = 0; i < len; i++)+	{+		if (!_Json_equality(aDecoders[i], bDecoders[i]))+		{+			return false;+		}+	}+	return true;+}+++// ENCODE++var _Json_encode = F2(function(indentLevel, value)+{+	return JSON.stringify(_Json_unwrap(value), null, indentLevel) + '';+});++function _Json_wrap_UNUSED(value) { return { $: 0, a: value }; }+function _Json_unwrap_UNUSED(value) { return value.a; }++function _Json_wrap(value) { return value; }+function _Json_unwrap(value) { return value; }++function _Json_emptyArray() { return []; }+function _Json_emptyObject() { return {}; }++var _Json_addField = F3(function(key, value, object)+{+	object[key] = _Json_unwrap(value);+	return object;+});++function _Json_addEntry(func)+{+	return F2(function(entry, array)+	{+		array.push(_Json_unwrap(func(entry)));+		return array;+	});+}++var _Json_encodeNull = _Json_wrap(null);++++// TASKS++function _Scheduler_succeed(value)+{+	return {+		$: 0,+		a: value+	};+}++function _Scheduler_fail(error)+{+	return {+		$: 1,+		a: error+	};+}++function _Scheduler_binding(callback)+{+	return {+		$: 2,+		b: callback,+		c: null+	};+}++var _Scheduler_andThen = F2(function(callback, task)+{+	return {+		$: 3,+		b: callback,+		d: task+	};+});++var _Scheduler_onError = F2(function(callback, task)+{+	return {+		$: 4,+		b: callback,+		d: task+	};+});++function _Scheduler_receive(callback)+{+	return {+		$: 5,+		b: callback+	};+}+++// PROCESSES++var _Scheduler_guid = 0;++function _Scheduler_rawSpawn(task)+{+	var proc = {+		$: 0,+		e: _Scheduler_guid++,+		f: task,+		g: null,+		h: []+	};++	_Scheduler_enqueue(proc);++	return proc;+}++function _Scheduler_spawn(task)+{+	return _Scheduler_binding(function(callback) {+		callback(_Scheduler_succeed(_Scheduler_rawSpawn(task)));+	});+}++function _Scheduler_rawSend(proc, msg)+{+	proc.h.push(msg);+	_Scheduler_enqueue(proc);+}++var _Scheduler_send = F2(function(proc, msg)+{+	return _Scheduler_binding(function(callback) {+		_Scheduler_rawSend(proc, msg);+		callback(_Scheduler_succeed(_Utils_Tuple0));+	});+});++function _Scheduler_kill(proc)+{+	return _Scheduler_binding(function(callback) {+		var task = proc.f;+		if (task.$ === 2 && task.c)+		{+			task.c();+		}++		proc.f = null;++		callback(_Scheduler_succeed(_Utils_Tuple0));+	});+}+++/* STEP PROCESSES++type alias Process =+  { $ : tag+  , id : unique_id+  , root : Task+  , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack }+  , mailbox : [msg]+  }++*/+++var _Scheduler_working = false;+var _Scheduler_queue = [];+++function _Scheduler_enqueue(proc)+{+	_Scheduler_queue.push(proc);+	if (_Scheduler_working)+	{+		return;+	}+	_Scheduler_working = true;+	while (proc = _Scheduler_queue.shift())+	{+		_Scheduler_step(proc);+	}+	_Scheduler_working = false;+}+++function _Scheduler_step(proc)+{+	while (proc.f)+	{+		var rootTag = proc.f.$;+		if (rootTag === 0 || rootTag === 1)+		{+			while (proc.g && proc.g.$ !== rootTag)+			{+				proc.g = proc.g.i;+			}+			if (!proc.g)+			{+				return;+			}+			proc.f = proc.g.b(proc.f.a);+			proc.g = proc.g.i;+		}+		else if (rootTag === 2)+		{+			proc.f.c = proc.f.b(function(newRoot) {+				proc.f = newRoot;+				_Scheduler_enqueue(proc);+			});+			return;+		}+		else if (rootTag === 5)+		{+			if (proc.h.length === 0)+			{+				return;+			}+			proc.f = proc.f.b(proc.h.shift());+		}+		else // if (rootTag === 3 || rootTag === 4)+		{+			proc.g = {+				$: rootTag === 3 ? 0 : 1,+				b: proc.f.b,+				i: proc.g+			};+			proc.f = proc.f.d;+		}+	}+}++++function _Process_sleep(time)+{+	return _Scheduler_binding(function(callback) {+		var id = setTimeout(function() {+			callback(_Scheduler_succeed(_Utils_Tuple0));+		}, time);++		return function() { clearTimeout(id); };+	});+}+++++// PROGRAMS+++var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args)+{+	return _Platform_initialize(+		flagDecoder,+		args,+		impl.c3,+		impl.dC,+		impl.dw,+		function() { return function() {} }+	);+});++++// INITIALIZE A PROGRAM+++function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)+{+	var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined));+	$elm$core$Result$isOk(result) || _Debug_crash(2 /**_UNUSED/, _Json_errorToString(result.a) /**/);+	var managers = {};+	var initPair = init(result.a);+	var model = initPair.a;+	var stepper = stepperBuilder(sendToApp, model);+	var ports = _Platform_setupEffects(managers, sendToApp);++	function sendToApp(msg, viewMetadata)+	{+		var pair = A2(update, msg, model);+		stepper(model = pair.a, viewMetadata);+		_Platform_enqueueEffects(managers, pair.b, subscriptions(model));+	}++	_Platform_enqueueEffects(managers, initPair.b, subscriptions(model));++	return ports ? { ports: ports } : {};+}++++// TRACK PRELOADS+//+// This is used by code in elm/browser and elm/http+// to register any HTTP requests that are triggered by init.+//+++var _Platform_preload;+++function _Platform_registerPreload(url)+{+	_Platform_preload.add(url);+}++++// EFFECT MANAGERS+++var _Platform_effectManagers = {};+++function _Platform_setupEffects(managers, sendToApp)+{+	var ports;++	// setup all necessary effect managers+	for (var key in _Platform_effectManagers)+	{+		var manager = _Platform_effectManagers[key];++		if (manager.a)+		{+			ports = ports || {};+			ports[key] = manager.a(key, sendToApp);+		}++		managers[key] = _Platform_instantiateManager(manager, sendToApp);+	}++	return ports;+}+++function _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap)+{+	return {+		b: init,+		c: onEffects,+		d: onSelfMsg,+		e: cmdMap,+		f: subMap+	};+}+++function _Platform_instantiateManager(info, sendToApp)+{+	var router = {+		g: sendToApp,+		h: undefined+	};++	var onEffects = info.c;+	var onSelfMsg = info.d;+	var cmdMap = info.e;+	var subMap = info.f;++	function loop(state)+	{+		return A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg)+		{+			var value = msg.a;++			if (msg.$ === 0)+			{+				return A3(onSelfMsg, router, value, state);+			}++			return cmdMap && subMap+				? A4(onEffects, router, value.i, value.j, state)+				: A3(onEffects, router, cmdMap ? value.i : value.j, state);+		}));+	}++	return router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b));+}++++// ROUTING+++var _Platform_sendToApp = F2(function(router, msg)+{+	return _Scheduler_binding(function(callback)+	{+		router.g(msg);+		callback(_Scheduler_succeed(_Utils_Tuple0));+	});+});+++var _Platform_sendToSelf = F2(function(router, msg)+{+	return A2(_Scheduler_send, router.h, {+		$: 0,+		a: msg+	});+});++++// BAGS+++function _Platform_leaf(home)+{+	return function(value)+	{+		return {+			$: 1,+			k: home,+			l: value+		};+	};+}+++function _Platform_batch(list)+{+	return {+		$: 2,+		m: list+	};+}+++var _Platform_map = F2(function(tagger, bag)+{+	return {+		$: 3,+		n: tagger,+		o: bag+	}+});++++// PIPE BAGS INTO EFFECT MANAGERS+//+// Effects must be queued!+//+// Say your init contains a synchronous command, like Time.now or Time.here+//+//   - This will produce a batch of effects (FX_1)+//   - The synchronous task triggers the subsequent `update` call+//   - This will produce a batch of effects (FX_2)+//+// If we just start dispatching FX_2, subscriptions from FX_2 can be processed+// before subscriptions from FX_1. No good! Earlier versions of this code had+// this problem, leading to these reports:+//+//   https://github.com/elm/core/issues/980+//   https://github.com/elm/core/pull/981+//   https://github.com/elm/compiler/issues/1776+//+// The queue is necessary to avoid ordering issues for synchronous commands.+++// Why use true/false here? Why not just check the length of the queue?+// The goal is to detect "are we currently dispatching effects?" If we+// are, we need to bail and let the ongoing while loop handle things.+//+// Now say the queue has 1 element. When we dequeue the final element,+// the queue will be empty, but we are still actively dispatching effects.+// So you could get queue jumping in a really tricky category of cases.+//+var _Platform_effectsQueue = [];+var _Platform_effectsActive = false;+++function _Platform_enqueueEffects(managers, cmdBag, subBag)+{+	_Platform_effectsQueue.push({ p: managers, q: cmdBag, r: subBag });++	if (_Platform_effectsActive) return;++	_Platform_effectsActive = true;+	for (var fx; fx = _Platform_effectsQueue.shift(); )+	{+		_Platform_dispatchEffects(fx.p, fx.q, fx.r);+	}+	_Platform_effectsActive = false;+}+++function _Platform_dispatchEffects(managers, cmdBag, subBag)+{+	var effectsDict = {};+	_Platform_gatherEffects(true, cmdBag, effectsDict, null);+	_Platform_gatherEffects(false, subBag, effectsDict, null);++	for (var home in managers)+	{+		_Scheduler_rawSend(managers[home], {+			$: 'fx',+			a: effectsDict[home] || { i: _List_Nil, j: _List_Nil }+		});+	}+}+++function _Platform_gatherEffects(isCmd, bag, effectsDict, taggers)+{+	switch (bag.$)+	{+		case 1:+			var home = bag.k;+			var effect = _Platform_toEffect(isCmd, home, taggers, bag.l);+			effectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]);+			return;++		case 2:+			for (var list = bag.m; list.b; list = list.b) // WHILE_CONS+			{+				_Platform_gatherEffects(isCmd, list.a, effectsDict, taggers);+			}+			return;++		case 3:+			_Platform_gatherEffects(isCmd, bag.o, effectsDict, {+				s: bag.n,+				t: taggers+			});+			return;+	}+}+++function _Platform_toEffect(isCmd, home, taggers, value)+{+	function applyTaggers(x)+	{+		for (var temp = taggers; temp; temp = temp.t)+		{+			x = temp.s(x);+		}+		return x;+	}++	var map = isCmd+		? _Platform_effectManagers[home].e+		: _Platform_effectManagers[home].f;++	return A2(map, applyTaggers, value)+}+++function _Platform_insert(isCmd, newEffect, effects)+{+	effects = effects || { i: _List_Nil, j: _List_Nil };++	isCmd+		? (effects.i = _List_Cons(newEffect, effects.i))+		: (effects.j = _List_Cons(newEffect, effects.j));++	return effects;+}++++// PORTS+++function _Platform_checkPortName(name)+{+	if (_Platform_effectManagers[name])+	{+		_Debug_crash(3, name)+	}+}++++// OUTGOING PORTS+++function _Platform_outgoingPort(name, converter)+{+	_Platform_checkPortName(name);+	_Platform_effectManagers[name] = {+		e: _Platform_outgoingPortMap,+		u: converter,+		a: _Platform_setupOutgoingPort+	};+	return _Platform_leaf(name);+}+++var _Platform_outgoingPortMap = F2(function(tagger, value) { return value; });+++function _Platform_setupOutgoingPort(name)+{+	var subs = [];+	var converter = _Platform_effectManagers[name].u;++	// CREATE MANAGER++	var init = _Process_sleep(0);++	_Platform_effectManagers[name].b = init;+	_Platform_effectManagers[name].c = F3(function(router, cmdList, state)+	{+		for ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS+		{+			// grab a separate reference to subs in case unsubscribe is called+			var currentSubs = subs;+			var value = _Json_unwrap(converter(cmdList.a));+			for (var i = 0; i < currentSubs.length; i++)+			{+				currentSubs[i](value);+			}+		}+		return init;+	});++	// PUBLIC API++	function subscribe(callback)+	{+		subs.push(callback);+	}++	function unsubscribe(callback)+	{+		// copy subs into a new array in case unsubscribe is called within a+		// subscribed callback+		subs = subs.slice();+		var index = subs.indexOf(callback);+		if (index >= 0)+		{+			subs.splice(index, 1);+		}+	}++	return {+		subscribe: subscribe,+		unsubscribe: unsubscribe+	};+}++++// INCOMING PORTS+++function _Platform_incomingPort(name, converter)+{+	_Platform_checkPortName(name);+	_Platform_effectManagers[name] = {+		f: _Platform_incomingPortMap,+		u: converter,+		a: _Platform_setupIncomingPort+	};+	return _Platform_leaf(name);+}+++var _Platform_incomingPortMap = F2(function(tagger, finalTagger)+{+	return function(value)+	{+		return tagger(finalTagger(value));+	};+});+++function _Platform_setupIncomingPort(name, sendToApp)+{+	var subs = _List_Nil;+	var converter = _Platform_effectManagers[name].u;++	// CREATE MANAGER++	var init = _Scheduler_succeed(null);++	_Platform_effectManagers[name].b = init;+	_Platform_effectManagers[name].c = F3(function(router, subList, state)+	{+		subs = subList;+		return init;+	});++	// PUBLIC API++	function send(incomingValue)+	{+		var result = A2(_Json_run, converter, _Json_wrap(incomingValue));++		$elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a);++		var value = result.a;+		for (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS+		{+			sendToApp(temp.a(value));+		}+	}++	return { send: send };+}++++// EXPORT ELM MODULES+//+// Have DEBUG and PROD versions so that we can (1) give nicer errors in+// debug mode and (2) not pay for the bits needed for that in prod mode.+//+++function _Platform_export(exports)+{+	scope['Elm']+		? _Platform_mergeExportsProd(scope['Elm'], exports)+		: scope['Elm'] = exports;+}+++function _Platform_mergeExportsProd(obj, exports)+{+	for (var name in exports)+	{+		(name in obj)+			? (name == 'init')+				? _Debug_crash(6)+				: _Platform_mergeExportsProd(obj[name], exports[name])+			: (obj[name] = exports[name]);+	}+}+++function _Platform_export_UNUSED(exports)+{+	scope['Elm']+		? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports)+		: scope['Elm'] = exports;+}+++function _Platform_mergeExportsDebug(moduleName, obj, exports)+{+	for (var name in exports)+	{+		(name in obj)+			? (name == 'init')+				? _Debug_crash(6, moduleName)+				: _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name])+			: (obj[name] = exports[name]);+	}+}+++++// HELPERS+++var _VirtualDom_divertHrefToApp;++var _VirtualDom_doc = typeof document !== 'undefined' ? document : {};+++function _VirtualDom_appendChild(parent, child)+{+	parent.appendChild(child);+}++var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args)+{+	// NOTE: this function needs _Platform_export available to work++	/**/+	var node = args['node'];+	//*/+	/**_UNUSED/+	var node = args && args['node'] ? args['node'] : _Debug_crash(0);+	//*/++	node.parentNode.replaceChild(+		_VirtualDom_render(virtualNode, function() {}),+		node+	);++	return {};+});++++// TEXT+++function _VirtualDom_text(string)+{+	return {+		$: 0,+		a: string+	};+}++++// NODE+++var _VirtualDom_nodeNS = F2(function(namespace, tag)+{+	return F2(function(factList, kidList)+	{+		for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS+		{+			var kid = kidList.a;+			descendantsCount += (kid.b || 0);+			kids.push(kid);+		}+		descendantsCount += kids.length;++		return {+			$: 1,+			c: tag,+			d: _VirtualDom_organizeFacts(factList),+			e: kids,+			f: namespace,+			b: descendantsCount+		};+	});+});+++var _VirtualDom_node = _VirtualDom_nodeNS(undefined);++++// KEYED NODE+++var _VirtualDom_keyedNodeNS = F2(function(namespace, tag)+{+	return F2(function(factList, kidList)+	{+		for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS+		{+			var kid = kidList.a;+			descendantsCount += (kid.b.b || 0);+			kids.push(kid);+		}+		descendantsCount += kids.length;++		return {+			$: 2,+			c: tag,+			d: _VirtualDom_organizeFacts(factList),+			e: kids,+			f: namespace,+			b: descendantsCount+		};+	});+});+++var _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined);++++// CUSTOM+++function _VirtualDom_custom(factList, model, render, diff)+{+	return {+		$: 3,+		d: _VirtualDom_organizeFacts(factList),+		g: model,+		h: render,+		i: diff+	};+}++++// MAP+++var _VirtualDom_map = F2(function(tagger, node)+{+	return {+		$: 4,+		j: tagger,+		k: node,+		b: 1 + (node.b || 0)+	};+});++++// LAZY+++function _VirtualDom_thunk(refs, thunk)+{+	return {+		$: 5,+		l: refs,+		m: thunk,+		k: undefined+	};+}++var _VirtualDom_lazy = F2(function(func, a)+{+	return _VirtualDom_thunk([func, a], function() {+		return func(a);+	});+});++var _VirtualDom_lazy2 = F3(function(func, a, b)+{+	return _VirtualDom_thunk([func, a, b], function() {+		return A2(func, a, b);+	});+});++var _VirtualDom_lazy3 = F4(function(func, a, b, c)+{+	return _VirtualDom_thunk([func, a, b, c], function() {+		return A3(func, a, b, c);+	});+});++var _VirtualDom_lazy4 = F5(function(func, a, b, c, d)+{+	return _VirtualDom_thunk([func, a, b, c, d], function() {+		return A4(func, a, b, c, d);+	});+});++var _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e)+{+	return _VirtualDom_thunk([func, a, b, c, d, e], function() {+		return A5(func, a, b, c, d, e);+	});+});++var _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f)+{+	return _VirtualDom_thunk([func, a, b, c, d, e, f], function() {+		return A6(func, a, b, c, d, e, f);+	});+});++var _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g)+{+	return _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() {+		return A7(func, a, b, c, d, e, f, g);+	});+});++var _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h)+{+	return _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() {+		return A8(func, a, b, c, d, e, f, g, h);+	});+});++++// FACTS+++var _VirtualDom_on = F2(function(key, handler)+{+	return {+		$: 'a0',+		n: key,+		o: handler+	};+});+var _VirtualDom_style = F2(function(key, value)+{+	return {+		$: 'a1',+		n: key,+		o: value+	};+});+var _VirtualDom_property = F2(function(key, value)+{+	return {+		$: 'a2',+		n: key,+		o: value+	};+});+var _VirtualDom_attribute = F2(function(key, value)+{+	return {+		$: 'a3',+		n: key,+		o: value+	};+});+var _VirtualDom_attributeNS = F3(function(namespace, key, value)+{+	return {+		$: 'a4',+		n: key,+		o: { f: namespace, o: value }+	};+});++++// XSS ATTACK VECTOR CHECKS+++function _VirtualDom_noScript(tag)+{+	return tag == 'script' ? 'p' : tag;+}++function _VirtualDom_noOnOrFormAction(key)+{+	return /^(on|formAction$)/i.test(key) ? 'data-' + key : key;+}++function _VirtualDom_noInnerHtmlOrFormAction(key)+{+	return key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key;+}++function _VirtualDom_noJavaScriptUri(value)+{+	return /^javascript:/i.test(value.replace(/\s/g,'')) ? '' : value;+}++function _VirtualDom_noJavaScriptUri_UNUSED(value)+{+	return /^javascript:/i.test(value.replace(/\s/g,''))+		? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'+		: value;+}++function _VirtualDom_noJavaScriptOrHtmlUri(value)+{+	return /^\s*(javascript:|data:text\/html)/i.test(value) ? '' : value;+}++function _VirtualDom_noJavaScriptOrHtmlUri_UNUSED(value)+{+	return /^\s*(javascript:|data:text\/html)/i.test(value)+		? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'+		: value;+}++++// MAP FACTS+++var _VirtualDom_mapAttribute = F2(function(func, attr)+{+	return (attr.$ === 'a0')+		? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o))+		: attr;+});++function _VirtualDom_mapHandler(func, handler)+{+	var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);++	// 0 = Normal+	// 1 = MayStopPropagation+	// 2 = MayPreventDefault+	// 3 = Custom++	return {+		$: handler.$,+		a:+			!tag+				? A2($elm$json$Json$Decode$map, func, handler.a)+				:+			A3($elm$json$Json$Decode$map2,+				tag < 3+					? _VirtualDom_mapEventTuple+					: _VirtualDom_mapEventRecord,+				$elm$json$Json$Decode$succeed(func),+				handler.a+			)+	};+}++var _VirtualDom_mapEventTuple = F2(function(func, tuple)+{+	return _Utils_Tuple2(func(tuple.a), tuple.b);+});++var _VirtualDom_mapEventRecord = F2(function(func, record)+{+	return {+		S: func(record.S),+		bn: record.bn,+		bk: record.bk+	}+});++++// ORGANIZE FACTS+++function _VirtualDom_organizeFacts(factList)+{+	for (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS+	{+		var entry = factList.a;++		var tag = entry.$;+		var key = entry.n;+		var value = entry.o;++		if (tag === 'a2')+		{+			(key === 'className')+				? _VirtualDom_addClass(facts, key, _Json_unwrap(value))+				: facts[key] = _Json_unwrap(value);++			continue;+		}++		var subFacts = facts[tag] || (facts[tag] = {});+		(tag === 'a3' && key === 'class')+			? _VirtualDom_addClass(subFacts, key, value)+			: subFacts[key] = value;+	}++	return facts;+}++function _VirtualDom_addClass(object, key, newClass)+{+	var classes = object[key];+	object[key] = classes ? classes + ' ' + newClass : newClass;+}++++// RENDER+++function _VirtualDom_render(vNode, eventNode)+{+	var tag = vNode.$;++	if (tag === 5)+	{+		return _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode);+	}++	if (tag === 0)+	{+		return _VirtualDom_doc.createTextNode(vNode.a);+	}++	if (tag === 4)+	{+		var subNode = vNode.k;+		var tagger = vNode.j;++		while (subNode.$ === 4)+		{+			typeof tagger !== 'object'+				? tagger = [tagger, subNode.j]+				: tagger.push(subNode.j);++			subNode = subNode.k;+		}++		var subEventRoot = { j: tagger, p: eventNode };+		var domNode = _VirtualDom_render(subNode, subEventRoot);+		domNode.elm_event_node_ref = subEventRoot;+		return domNode;+	}++	if (tag === 3)+	{+		var domNode = vNode.h(vNode.g);+		_VirtualDom_applyFacts(domNode, eventNode, vNode.d);+		return domNode;+	}++	// at this point `tag` must be 1 or 2++	var domNode = vNode.f+		? _VirtualDom_doc.createElementNS(vNode.f, vNode.c)+		: _VirtualDom_doc.createElement(vNode.c);++	if (_VirtualDom_divertHrefToApp && vNode.c == 'a')+	{+		domNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode));+	}++	_VirtualDom_applyFacts(domNode, eventNode, vNode.d);++	for (var kids = vNode.e, i = 0; i < kids.length; i++)+	{+		_VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode));+	}++	return domNode;+}++++// APPLY FACTS+++function _VirtualDom_applyFacts(domNode, eventNode, facts)+{+	for (var key in facts)+	{+		var value = facts[key];++		key === 'a1'+			? _VirtualDom_applyStyles(domNode, value)+			:+		key === 'a0'+			? _VirtualDom_applyEvents(domNode, eventNode, value)+			:+		key === 'a3'+			? _VirtualDom_applyAttrs(domNode, value)+			:+		key === 'a4'+			? _VirtualDom_applyAttrsNS(domNode, value)+			:+		((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value);+	}+}++++// APPLY STYLES+++function _VirtualDom_applyStyles(domNode, styles)+{+	var domNodeStyle = domNode.style;++	for (var key in styles)+	{+		domNodeStyle[key] = styles[key];+	}+}++++// APPLY ATTRS+++function _VirtualDom_applyAttrs(domNode, attrs)+{+	for (var key in attrs)+	{+		var value = attrs[key];+		typeof value !== 'undefined'+			? domNode.setAttribute(key, value)+			: domNode.removeAttribute(key);+	}+}++++// APPLY NAMESPACED ATTRS+++function _VirtualDom_applyAttrsNS(domNode, nsAttrs)+{+	for (var key in nsAttrs)+	{+		var pair = nsAttrs[key];+		var namespace = pair.f;+		var value = pair.o;++		typeof value !== 'undefined'+			? domNode.setAttributeNS(namespace, key, value)+			: domNode.removeAttributeNS(namespace, key);+	}+}++++// APPLY EVENTS+++function _VirtualDom_applyEvents(domNode, eventNode, events)+{+	var allCallbacks = domNode.elmFs || (domNode.elmFs = {});++	for (var key in events)+	{+		var newHandler = events[key];+		var oldCallback = allCallbacks[key];++		if (!newHandler)+		{+			domNode.removeEventListener(key, oldCallback);+			allCallbacks[key] = undefined;+			continue;+		}++		if (oldCallback)+		{+			var oldHandler = oldCallback.q;+			if (oldHandler.$ === newHandler.$)+			{+				oldCallback.q = newHandler;+				continue;+			}+			domNode.removeEventListener(key, oldCallback);+		}++		oldCallback = _VirtualDom_makeCallback(eventNode, newHandler);+		domNode.addEventListener(key, oldCallback,+			_VirtualDom_passiveSupported+			&& { passive: $elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 }+		);+		allCallbacks[key] = oldCallback;+	}+}++++// PASSIVE EVENTS+++var _VirtualDom_passiveSupported;++try+{+	window.addEventListener('t', null, Object.defineProperty({}, 'passive', {+		get: function() { _VirtualDom_passiveSupported = true; }+	}));+}+catch(e) {}++++// EVENT HANDLERS+++function _VirtualDom_makeCallback(eventNode, initialHandler)+{+	function callback(event)+	{+		var handler = callback.q;+		var result = _Json_runHelp(handler.a, event);++		if (!$elm$core$Result$isOk(result))+		{+			return;+		}++		var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);++		// 0 = Normal+		// 1 = MayStopPropagation+		// 2 = MayPreventDefault+		// 3 = Custom++		var value = result.a;+		var message = !tag ? value : tag < 3 ? value.a : value.S;+		var stopPropagation = tag == 1 ? value.b : tag == 3 && value.bn;+		var currentEventNode = (+			stopPropagation && event.stopPropagation(),+			(tag == 2 ? value.b : tag == 3 && value.bk) && event.preventDefault(),+			eventNode+		);+		var tagger;+		var i;+		while (tagger = currentEventNode.j)+		{+			if (typeof tagger == 'function')+			{+				message = tagger(message);+			}+			else+			{+				for (var i = tagger.length; i--; )+				{+					message = tagger[i](message);+				}+			}+			currentEventNode = currentEventNode.p;+		}+		currentEventNode(message, stopPropagation); // stopPropagation implies isSync+	}++	callback.q = initialHandler;++	return callback;+}++function _VirtualDom_equalEvents(x, y)+{+	return x.$ == y.$ && _Json_equality(x.a, y.a);+}++++// DIFF+++// TODO: Should we do patches like in iOS?+//+// type Patch+//   = At Int Patch+//   | Batch (List Patch)+//   | Change ...+//+// How could it not be better?+//+function _VirtualDom_diff(x, y)+{+	var patches = [];+	_VirtualDom_diffHelp(x, y, patches, 0);+	return patches;+}+++function _VirtualDom_pushPatch(patches, type, index, data)+{+	var patch = {+		$: type,+		r: index,+		s: data,+		t: undefined,+		u: undefined+	};+	patches.push(patch);+	return patch;+}+++function _VirtualDom_diffHelp(x, y, patches, index)+{+	if (x === y)+	{+		return;+	}++	var xType = x.$;+	var yType = y.$;++	// Bail if you run into different types of nodes. Implies that the+	// structure has changed significantly and it's not worth a diff.+	if (xType !== yType)+	{+		if (xType === 1 && yType === 2)+		{+			y = _VirtualDom_dekey(y);+			yType = 1;+		}+		else+		{+			_VirtualDom_pushPatch(patches, 0, index, y);+			return;+		}+	}++	// Now we know that both nodes are the same $.+	switch (yType)+	{+		case 5:+			var xRefs = x.l;+			var yRefs = y.l;+			var i = xRefs.length;+			var same = i === yRefs.length;+			while (same && i--)+			{+				same = xRefs[i] === yRefs[i];+			}+			if (same)+			{+				y.k = x.k;+				return;+			}+			y.k = y.m();+			var subPatches = [];+			_VirtualDom_diffHelp(x.k, y.k, subPatches, 0);+			subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches);+			return;++		case 4:+			// gather nested taggers+			var xTaggers = x.j;+			var yTaggers = y.j;+			var nesting = false;++			var xSubNode = x.k;+			while (xSubNode.$ === 4)+			{+				nesting = true;++				typeof xTaggers !== 'object'+					? xTaggers = [xTaggers, xSubNode.j]+					: xTaggers.push(xSubNode.j);++				xSubNode = xSubNode.k;+			}++			var ySubNode = y.k;+			while (ySubNode.$ === 4)+			{+				nesting = true;++				typeof yTaggers !== 'object'+					? yTaggers = [yTaggers, ySubNode.j]+					: yTaggers.push(ySubNode.j);++				ySubNode = ySubNode.k;+			}++			// Just bail if different numbers of taggers. This implies the+			// structure of the virtual DOM has changed.+			if (nesting && xTaggers.length !== yTaggers.length)+			{+				_VirtualDom_pushPatch(patches, 0, index, y);+				return;+			}++			// check if taggers are "the same"+			if (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers)+			{+				_VirtualDom_pushPatch(patches, 2, index, yTaggers);+			}++			// diff everything below the taggers+			_VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1);+			return;++		case 0:+			if (x.a !== y.a)+			{+				_VirtualDom_pushPatch(patches, 3, index, y.a);+			}+			return;++		case 1:+			_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids);+			return;++		case 2:+			_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids);+			return;++		case 3:+			if (x.h !== y.h)+			{+				_VirtualDom_pushPatch(patches, 0, index, y);+				return;+			}++			var factsDiff = _VirtualDom_diffFacts(x.d, y.d);+			factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);++			var patch = y.i(x.g, y.g);+			patch && _VirtualDom_pushPatch(patches, 5, index, patch);++			return;+	}+}++// assumes the incoming arrays are the same length+function _VirtualDom_pairwiseRefEqual(as, bs)+{+	for (var i = 0; i < as.length; i++)+	{+		if (as[i] !== bs[i])+		{+			return false;+		}+	}++	return true;+}++function _VirtualDom_diffNodes(x, y, patches, index, diffKids)+{+	// Bail if obvious indicators have changed. Implies more serious+	// structural changes such that it's not worth it to diff.+	if (x.c !== y.c || x.f !== y.f)+	{+		_VirtualDom_pushPatch(patches, 0, index, y);+		return;+	}++	var factsDiff = _VirtualDom_diffFacts(x.d, y.d);+	factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);++	diffKids(x, y, patches, index);+}++++// DIFF FACTS+++// TODO Instead of creating a new diff object, it's possible to just test if+// there *is* a diff. During the actual patch, do the diff again and make the+// modifications directly. This way, there's no new allocations. Worth it?+function _VirtualDom_diffFacts(x, y, category)+{+	var diff;++	// look for changes and removals+	for (var xKey in x)+	{+		if (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4')+		{+			var subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey);+			if (subDiff)+			{+				diff = diff || {};+				diff[xKey] = subDiff;+			}+			continue;+		}++		// remove if not in the new facts+		if (!(xKey in y))+		{+			diff = diff || {};+			diff[xKey] =+				!category+					? (typeof x[xKey] === 'string' ? '' : null)+					:+				(category === 'a1')+					? ''+					:+				(category === 'a0' || category === 'a3')+					? undefined+					:+				{ f: x[xKey].f, o: undefined };++			continue;+		}++		var xValue = x[xKey];+		var yValue = y[xKey];++		// reference equal, so don't worry about it+		if (xValue === yValue && xKey !== 'value' && xKey !== 'checked'+			|| category === 'a0' && _VirtualDom_equalEvents(xValue, yValue))+		{+			continue;+		}++		diff = diff || {};+		diff[xKey] = yValue;+	}++	// add new stuff+	for (var yKey in y)+	{+		if (!(yKey in x))+		{+			diff = diff || {};+			diff[yKey] = y[yKey];+		}+	}++	return diff;+}++++// DIFF KIDS+++function _VirtualDom_diffKids(xParent, yParent, patches, index)+{+	var xKids = xParent.e;+	var yKids = yParent.e;++	var xLen = xKids.length;+	var yLen = yKids.length;++	// FIGURE OUT IF THERE ARE INSERTS OR REMOVALS++	if (xLen > yLen)+	{+		_VirtualDom_pushPatch(patches, 6, index, {+			v: yLen,+			i: xLen - yLen+		});+	}+	else if (xLen < yLen)+	{+		_VirtualDom_pushPatch(patches, 7, index, {+			v: xLen,+			e: yKids+		});+	}++	// PAIRWISE DIFF EVERYTHING ELSE++	for (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++)+	{+		var xKid = xKids[i];+		_VirtualDom_diffHelp(xKid, yKids[i], patches, ++index);+		index += xKid.b || 0;+	}+}++++// KEYED DIFF+++function _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex)+{+	var localPatches = [];++	var changes = {}; // Dict String Entry+	var inserts = []; // Array { index : Int, entry : Entry }+	// type Entry = { tag : String, vnode : VNode, index : Int, data : _ }++	var xKids = xParent.e;+	var yKids = yParent.e;+	var xLen = xKids.length;+	var yLen = yKids.length;+	var xIndex = 0;+	var yIndex = 0;++	var index = rootIndex;++	while (xIndex < xLen && yIndex < yLen)+	{+		var x = xKids[xIndex];+		var y = yKids[yIndex];++		var xKey = x.a;+		var yKey = y.a;+		var xNode = x.b;+		var yNode = y.b;++		var newMatch = undefined;+		var oldMatch = undefined;++		// check if keys match++		if (xKey === yKey)+		{+			index++;+			_VirtualDom_diffHelp(xNode, yNode, localPatches, index);+			index += xNode.b || 0;++			xIndex++;+			yIndex++;+			continue;+		}++		// look ahead 1 to detect insertions and removals.++		var xNext = xKids[xIndex + 1];+		var yNext = yKids[yIndex + 1];++		if (xNext)+		{+			var xNextKey = xNext.a;+			var xNextNode = xNext.b;+			oldMatch = yKey === xNextKey;+		}++		if (yNext)+		{+			var yNextKey = yNext.a;+			var yNextNode = yNext.b;+			newMatch = xKey === yNextKey;+		}+++		// swap x and y+		if (newMatch && oldMatch)+		{+			index++;+			_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);+			_VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts);+			index += xNode.b || 0;++			index++;+			_VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index);+			index += xNextNode.b || 0;++			xIndex += 2;+			yIndex += 2;+			continue;+		}++		// insert y+		if (newMatch)+		{+			index++;+			_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);+			_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);+			index += xNode.b || 0;++			xIndex += 1;+			yIndex += 2;+			continue;+		}++		// remove x+		if (oldMatch)+		{+			index++;+			_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);+			index += xNode.b || 0;++			index++;+			_VirtualDom_diffHelp(xNextNode, yNode, localPatches, index);+			index += xNextNode.b || 0;++			xIndex += 2;+			yIndex += 1;+			continue;+		}++		// remove x, insert y+		if (xNext && xNextKey === yNextKey)+		{+			index++;+			_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);+			_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);+			index += xNode.b || 0;++			index++;+			_VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index);+			index += xNextNode.b || 0;++			xIndex += 2;+			yIndex += 2;+			continue;+		}++		break;+	}++	// eat up any remaining nodes with removeNode and insertNode++	while (xIndex < xLen)+	{+		index++;+		var x = xKids[xIndex];+		var xNode = x.b;+		_VirtualDom_removeNode(changes, localPatches, x.a, xNode, index);+		index += xNode.b || 0;+		xIndex++;+	}++	while (yIndex < yLen)+	{+		var endInserts = endInserts || [];+		var y = yKids[yIndex];+		_VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts);+		yIndex++;+	}++	if (localPatches.length > 0 || inserts.length > 0 || endInserts)+	{+		_VirtualDom_pushPatch(patches, 8, rootIndex, {+			w: localPatches,+			x: inserts,+			y: endInserts+		});+	}+}++++// CHANGES FROM KEYED DIFF+++var _VirtualDom_POSTFIX = '_elmW6BL';+++function _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts)+{+	var entry = changes[key];++	// never seen this key before+	if (!entry)+	{+		entry = {+			c: 0,+			z: vnode,+			r: yIndex,+			s: undefined+		};++		inserts.push({ r: yIndex, A: entry });+		changes[key] = entry;++		return;+	}++	// this key was removed earlier, a match!+	if (entry.c === 1)+	{+		inserts.push({ r: yIndex, A: entry });++		entry.c = 2;+		var subPatches = [];+		_VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r);+		entry.r = yIndex;+		entry.s.s = {+			w: subPatches,+			A: entry+		};++		return;+	}++	// this key has already been inserted or moved, a duplicate!+	_VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts);+}+++function _VirtualDom_removeNode(changes, localPatches, key, vnode, index)+{+	var entry = changes[key];++	// never seen this key before+	if (!entry)+	{+		var patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined);++		changes[key] = {+			c: 1,+			z: vnode,+			r: index,+			s: patch+		};++		return;+	}++	// this key was inserted earlier, a match!+	if (entry.c === 0)+	{+		entry.c = 2;+		var subPatches = [];+		_VirtualDom_diffHelp(vnode, entry.z, subPatches, index);++		_VirtualDom_pushPatch(localPatches, 9, index, {+			w: subPatches,+			A: entry+		});++		return;+	}++	// this key has already been removed or moved, a duplicate!+	_VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index);+}++++// ADD DOM NODES+//+// Each DOM node has an "index" assigned in order of traversal. It is important+// to minimize our crawl over the actual DOM, so these indexes (along with the+// descendantsCount of virtual nodes) let us skip touching entire subtrees of+// the DOM if we know there are no patches there.+++function _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode)+{+	_VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode);+}+++// assumes `patches` is non-empty and indexes increase monotonically.+function _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode)+{+	var patch = patches[i];+	var index = patch.r;++	while (index === low)+	{+		var patchType = patch.$;++		if (patchType === 1)+		{+			_VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode);+		}+		else if (patchType === 8)+		{+			patch.t = domNode;+			patch.u = eventNode;++			var subPatches = patch.s.w;+			if (subPatches.length > 0)+			{+				_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);+			}+		}+		else if (patchType === 9)+		{+			patch.t = domNode;+			patch.u = eventNode;++			var data = patch.s;+			if (data)+			{+				data.A.s = domNode;+				var subPatches = data.w;+				if (subPatches.length > 0)+				{+					_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);+				}+			}+		}+		else+		{+			patch.t = domNode;+			patch.u = eventNode;+		}++		i++;++		if (!(patch = patches[i]) || (index = patch.r) > high)+		{+			return i;+		}+	}++	var tag = vNode.$;++	if (tag === 4)+	{+		var subNode = vNode.k;++		while (subNode.$ === 4)+		{+			subNode = subNode.k;+		}++		return _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref);+	}++	// tag must be 1 or 2 at this point++	var vKids = vNode.e;+	var childNodes = domNode.childNodes;+	for (var j = 0; j < vKids.length; j++)+	{+		low++;+		var vKid = tag === 1 ? vKids[j] : vKids[j].b;+		var nextLow = low + (vKid.b || 0);+		if (low <= index && index <= nextLow)+		{+			i = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode);+			if (!(patch = patches[i]) || (index = patch.r) > high)+			{+				return i;+			}+		}+		low = nextLow;+	}+	return i;+}++++// APPLY PATCHES+++function _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode)+{+	if (patches.length === 0)+	{+		return rootDomNode;+	}++	_VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode);+	return _VirtualDom_applyPatchesHelp(rootDomNode, patches);+}++function _VirtualDom_applyPatchesHelp(rootDomNode, patches)+{+	for (var i = 0; i < patches.length; i++)+	{+		var patch = patches[i];+		var localDomNode = patch.t+		var newNode = _VirtualDom_applyPatch(localDomNode, patch);+		if (localDomNode === rootDomNode)+		{+			rootDomNode = newNode;+		}+	}+	return rootDomNode;+}++function _VirtualDom_applyPatch(domNode, patch)+{+	switch (patch.$)+	{+		case 0:+			return _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u);++		case 4:+			_VirtualDom_applyFacts(domNode, patch.u, patch.s);+			return domNode;++		case 3:+			domNode.replaceData(0, domNode.length, patch.s);+			return domNode;++		case 1:+			return _VirtualDom_applyPatchesHelp(domNode, patch.s);++		case 2:+			if (domNode.elm_event_node_ref)+			{+				domNode.elm_event_node_ref.j = patch.s;+			}+			else+			{+				domNode.elm_event_node_ref = { j: patch.s, p: patch.u };+			}+			return domNode;++		case 6:+			var data = patch.s;+			for (var i = 0; i < data.i; i++)+			{+				domNode.removeChild(domNode.childNodes[data.v]);+			}+			return domNode;++		case 7:+			var data = patch.s;+			var kids = data.e;+			var i = data.v;+			var theEnd = domNode.childNodes[i];+			for (; i < kids.length; i++)+			{+				domNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd);+			}+			return domNode;++		case 9:+			var data = patch.s;+			if (!data)+			{+				domNode.parentNode.removeChild(domNode);+				return domNode;+			}+			var entry = data.A;+			if (typeof entry.r !== 'undefined')+			{+				domNode.parentNode.removeChild(domNode);+			}+			entry.s = _VirtualDom_applyPatchesHelp(domNode, data.w);+			return domNode;++		case 8:+			return _VirtualDom_applyPatchReorder(domNode, patch);++		case 5:+			return patch.s(domNode);++		default:+			_Debug_crash(10); // 'Ran into an unknown patch!'+	}+}+++function _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode)+{+	var parentNode = domNode.parentNode;+	var newNode = _VirtualDom_render(vNode, eventNode);++	if (!newNode.elm_event_node_ref)+	{+		newNode.elm_event_node_ref = domNode.elm_event_node_ref;+	}++	if (parentNode && newNode !== domNode)+	{+		parentNode.replaceChild(newNode, domNode);+	}+	return newNode;+}+++function _VirtualDom_applyPatchReorder(domNode, patch)+{+	var data = patch.s;++	// remove end inserts+	var frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch);++	// removals+	domNode = _VirtualDom_applyPatchesHelp(domNode, data.w);++	// inserts+	var inserts = data.x;+	for (var i = 0; i < inserts.length; i++)+	{+		var insert = inserts[i];+		var entry = insert.A;+		var node = entry.c === 2+			? entry.s+			: _VirtualDom_render(entry.z, patch.u);+		domNode.insertBefore(node, domNode.childNodes[insert.r]);+	}++	// add end inserts+	if (frag)+	{+		_VirtualDom_appendChild(domNode, frag);+	}++	return domNode;+}+++function _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch)+{+	if (!endInserts)+	{+		return;+	}++	var frag = _VirtualDom_doc.createDocumentFragment();+	for (var i = 0; i < endInserts.length; i++)+	{+		var insert = endInserts[i];+		var entry = insert.A;+		_VirtualDom_appendChild(frag, entry.c === 2+			? entry.s+			: _VirtualDom_render(entry.z, patch.u)+		);+	}+	return frag;+}+++function _VirtualDom_virtualize(node)+{+	// TEXT NODES++	if (node.nodeType === 3)+	{+		return _VirtualDom_text(node.textContent);+	}+++	// WEIRD NODES++	if (node.nodeType !== 1)+	{+		return _VirtualDom_text('');+	}+++	// ELEMENT NODES++	var attrList = _List_Nil;+	var attrs = node.attributes;+	for (var i = attrs.length; i--; )+	{+		var attr = attrs[i];+		var name = attr.name;+		var value = attr.value;+		attrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList );+	}++	var tag = node.tagName.toLowerCase();+	var kidList = _List_Nil;+	var kids = node.childNodes;++	for (var i = kids.length; i--; )+	{+		kidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList);+	}+	return A3(_VirtualDom_node, tag, attrList, kidList);+}++function _VirtualDom_dekey(keyedNode)+{+	var keyedKids = keyedNode.e;+	var len = keyedKids.length;+	var kids = new Array(len);+	for (var i = 0; i < len; i++)+	{+		kids[i] = keyedKids[i].b;+	}++	return {+		$: 1,+		c: keyedNode.c,+		d: keyedNode.d,+		e: kids,+		f: keyedNode.f,+		b: keyedNode.b+	};+}+++++// ELEMENT+++var _Debugger_element;++var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args)+{+	return _Platform_initialize(+		flagDecoder,+		args,+		impl.c3,+		impl.dC,+		impl.dw,+		function(sendToApp, initialModel) {+			var view = impl.dE;+			/**/+			var domNode = args['node'];+			//*/+			/**_UNUSED/+			var domNode = args && args['node'] ? args['node'] : _Debug_crash(0);+			//*/+			var currNode = _VirtualDom_virtualize(domNode);++			return _Browser_makeAnimator(initialModel, function(model)+			{+				var nextNode = view(model);+				var patches = _VirtualDom_diff(currNode, nextNode);+				domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp);+				currNode = nextNode;+			});+		}+	);+});++++// DOCUMENT+++var _Debugger_document;++var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args)+{+	return _Platform_initialize(+		flagDecoder,+		args,+		impl.c3,+		impl.dC,+		impl.dw,+		function(sendToApp, initialModel) {+			var divertHrefToApp = impl.bl && impl.bl(sendToApp)+			var view = impl.dE;+			var title = _VirtualDom_doc.title;+			var bodyNode = _VirtualDom_doc.body;+			var currNode = _VirtualDom_virtualize(bodyNode);+			return _Browser_makeAnimator(initialModel, function(model)+			{+				_VirtualDom_divertHrefToApp = divertHrefToApp;+				var doc = view(model);+				var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.bA);+				var patches = _VirtualDom_diff(currNode, nextNode);+				bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp);+				currNode = nextNode;+				_VirtualDom_divertHrefToApp = 0;+				(title !== doc.dA) && (_VirtualDom_doc.title = title = doc.dA);+			});+		}+	);+});++++// ANIMATION+++var _Browser_cancelAnimationFrame =+	typeof cancelAnimationFrame !== 'undefined'+		? cancelAnimationFrame+		: function(id) { clearTimeout(id); };++var _Browser_requestAnimationFrame =+	typeof requestAnimationFrame !== 'undefined'+		? requestAnimationFrame+		: function(callback) { return setTimeout(callback, 1000 / 60); };+++function _Browser_makeAnimator(model, draw)+{+	draw(model);++	var state = 0;++	function updateIfNeeded()+	{+		state = state === 1+			? 0+			: ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 );+	}++	return function(nextModel, isSync)+	{+		model = nextModel;++		isSync+			? ( draw(model),+				state === 2 && (state = 1)+				)+			: ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded),+				state = 2+				);+	};+}++++// APPLICATION+++function _Browser_application(impl)+{+	var onUrlChange = impl.di;+	var onUrlRequest = impl.dj;+	var key = function() { key.a(onUrlChange(_Browser_getUrl())); };++	return _Browser_document({+		bl: function(sendToApp)+		{+			key.a = sendToApp;+			_Browser_window.addEventListener('popstate', key);+			_Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key);++			return F2(function(domNode, event)+			{+				if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.hasAttribute('download'))+				{+					event.preventDefault();+					var href = domNode.href;+					var curr = _Browser_getUrl();+					var next = $elm$url$Url$fromString(href).a;+					sendToApp(onUrlRequest(+						(next+							&& curr.cd === next.cd+							&& curr.bV === next.bV+							&& curr.b9.a === next.b9.a+						)+							? $elm$browser$Browser$Internal(next)+							: $elm$browser$Browser$External(href)+					));+				}+			});+		},+		c3: function(flags)+		{+			return A3(impl.c3, flags, _Browser_getUrl(), key);+		},+		dE: impl.dE,+		dC: impl.dC,+		dw: impl.dw+	});+}++function _Browser_getUrl()+{+	return $elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1);+}++var _Browser_go = F2(function(key, n)+{+	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {+		n && history.go(n);+		key();+	}));+});++var _Browser_pushUrl = F2(function(key, url)+{+	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {+		history.pushState({}, '', url);+		key();+	}));+});++var _Browser_replaceUrl = F2(function(key, url)+{+	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {+		history.replaceState({}, '', url);+		key();+	}));+});++++// GLOBAL EVENTS+++var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} };+var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode;+var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode;++var _Browser_on = F3(function(node, eventName, sendToSelf)+{+	return _Scheduler_spawn(_Scheduler_binding(function(callback)+	{+		function handler(event)	{ _Scheduler_rawSpawn(sendToSelf(event)); }+		node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true });+		return function() { node.removeEventListener(eventName, handler); };+	}));+});++var _Browser_decodeEvent = F2(function(decoder, event)+{+	var result = _Json_runHelp(decoder, event);+	return $elm$core$Result$isOk(result) ? $elm$core$Maybe$Just(result.a) : $elm$core$Maybe$Nothing;+});++++// PAGE VISIBILITY+++function _Browser_visibilityInfo()+{+	return (typeof _VirtualDom_doc.hidden !== 'undefined')+		? { c0: 'hidden', cO: 'visibilitychange' }+		:+	(typeof _VirtualDom_doc.mozHidden !== 'undefined')+		? { c0: 'mozHidden', cO: 'mozvisibilitychange' }+		:+	(typeof _VirtualDom_doc.msHidden !== 'undefined')+		? { c0: 'msHidden', cO: 'msvisibilitychange' }+		:+	(typeof _VirtualDom_doc.webkitHidden !== 'undefined')+		? { c0: 'webkitHidden', cO: 'webkitvisibilitychange' }+		: { c0: 'hidden', cO: 'visibilitychange' };+}++++// ANIMATION FRAMES+++function _Browser_rAF()+{+	return _Scheduler_binding(function(callback)+	{+		var id = _Browser_requestAnimationFrame(function() {+			callback(_Scheduler_succeed(Date.now()));+		});++		return function() {+			_Browser_cancelAnimationFrame(id);+		};+	});+}+++function _Browser_now()+{+	return _Scheduler_binding(function(callback)+	{+		callback(_Scheduler_succeed(Date.now()));+	});+}++++// DOM STUFF+++function _Browser_withNode(id, doStuff)+{+	return _Scheduler_binding(function(callback)+	{+		_Browser_requestAnimationFrame(function() {+			var node = document.getElementById(id);+			callback(node+				? _Scheduler_succeed(doStuff(node))+				: _Scheduler_fail($elm$browser$Browser$Dom$NotFound(id))+			);+		});+	});+}+++function _Browser_withWindow(doStuff)+{+	return _Scheduler_binding(function(callback)+	{+		_Browser_requestAnimationFrame(function() {+			callback(_Scheduler_succeed(doStuff()));+		});+	});+}+++// FOCUS and BLUR+++var _Browser_call = F2(function(functionName, id)+{+	return _Browser_withNode(id, function(node) {+		node[functionName]();+		return _Utils_Tuple0;+	});+});++++// WINDOW VIEWPORT+++function _Browser_getViewport()+{+	return {+		co: _Browser_getScene(),+		cD: {+			cF: _Browser_window.pageXOffset,+			cG: _Browser_window.pageYOffset,+			cE: _Browser_doc.documentElement.clientWidth,+			bT: _Browser_doc.documentElement.clientHeight+		}+	};+}++function _Browser_getScene()+{+	var body = _Browser_doc.body;+	var elem = _Browser_doc.documentElement;+	return {+		cE: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth),+		bT: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight)+	};+}++var _Browser_setViewport = F2(function(x, y)+{+	return _Browser_withWindow(function()+	{+		_Browser_window.scroll(x, y);+		return _Utils_Tuple0;+	});+});++++// ELEMENT VIEWPORT+++function _Browser_getViewportOf(id)+{+	return _Browser_withNode(id, function(node)+	{+		return {+			co: {+				cE: node.scrollWidth,+				bT: node.scrollHeight+			},+			cD: {+				cF: node.scrollLeft,+				cG: node.scrollTop,+				cE: node.clientWidth,+				bT: node.clientHeight+			}+		};+	});+}+++var _Browser_setViewportOf = F3(function(id, x, y)+{+	return _Browser_withNode(id, function(node)+	{+		node.scrollLeft = x;+		node.scrollTop = y;+		return _Utils_Tuple0;+	});+});++++// ELEMENT+++function _Browser_getElement(id)+{+	return _Browser_withNode(id, function(node)+	{+		var rect = node.getBoundingClientRect();+		var x = _Browser_window.pageXOffset;+		var y = _Browser_window.pageYOffset;+		return {+			co: _Browser_getScene(),+			cD: {+				cF: x,+				cG: y,+				cE: _Browser_doc.documentElement.clientWidth,+				bT: _Browser_doc.documentElement.clientHeight+			},+			cV: {+				cF: x + rect.left,+				cG: y + rect.top,+				cE: rect.width,+				bT: rect.height+			}+		};+	});+}++++// LOAD and RELOAD+++function _Browser_reload(skipCache)+{+	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)+	{+		_VirtualDom_doc.location.reload(skipCache);+	}));+}++function _Browser_load(url)+{+	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)+	{+		try+		{+			_Browser_window.location = url;+		}+		catch(err)+		{+			// Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here.+			// Other browsers reload the page, so let's be consistent about that.+			_VirtualDom_doc.location.reload(false);+		}+	}));+}++++function _Time_now(millisToPosix)+{+	return _Scheduler_binding(function(callback)+	{+		callback(_Scheduler_succeed(millisToPosix(Date.now())));+	});+}++var _Time_setInterval = F2(function(interval, task)+{+	return _Scheduler_binding(function(callback)+	{+		var id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval);+		return function() { clearInterval(id); };+	});+});++function _Time_here()+{+	return _Scheduler_binding(function(callback)+	{+		callback(_Scheduler_succeed(+			A2($elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil)+		));+	});+}+++function _Time_getZoneName()+{+	return _Scheduler_binding(function(callback)+	{+		try+		{+			var name = $elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone);+		}+		catch (e)+		{+			var name = $elm$time$Time$Offset(new Date().getTimezoneOffset());+		}+		callback(_Scheduler_succeed(name));+	});+}++++// SEND REQUEST++var _Http_toTask = F3(function(router, toTask, request)+{+	return _Scheduler_binding(function(callback)+	{+		function done(response) {+			callback(toTask(request.bM.a(response)));+		}++		var xhr = new XMLHttpRequest();+		xhr.addEventListener('error', function() { done($elm$http$Http$NetworkError_); });+		xhr.addEventListener('timeout', function() { done($elm$http$Http$Timeout_); });+		xhr.addEventListener('load', function() { done(_Http_toResponse(request.bM.b, xhr)); });+		$elm$core$Maybe$isJust(request.dB) && _Http_track(router, xhr, request.dB.a);++		try {+			xhr.open(request.c6, request.cC, true);+		} catch (e) {+			return done($elm$http$Http$BadUrl_(request.cC));+		}++		_Http_configureRequest(xhr, request);++		request.bA.a && xhr.setRequestHeader('Content-Type', request.bA.a);+		xhr.send(request.bA.b);++		return function() { xhr.c = true; xhr.abort(); };+	});+});+++// CONFIGURE++function _Http_configureRequest(xhr, request)+{+	for (var headers = request.c$; headers.b; headers = headers.b) // WHILE_CONS+	{+		xhr.setRequestHeader(headers.a.a, headers.a.b);+	}+	xhr.timeout = request.dz.a || 0;+	xhr.responseType = request.bM.d;+	xhr.withCredentials = request.cK;+}+++// RESPONSES++function _Http_toResponse(toBody, xhr)+{+	return A2(+		200 <= xhr.status && xhr.status < 300 ? $elm$http$Http$GoodStatus_ : $elm$http$Http$BadStatus_,+		_Http_toMetadata(xhr),+		toBody(xhr.response)+	);+}+++// METADATA++function _Http_toMetadata(xhr)+{+	return {+		cC: xhr.responseURL,+		du: xhr.status,+		dv: xhr.statusText,+		c$: _Http_parseHeaders(xhr.getAllResponseHeaders())+	};+}+++// HEADERS++function _Http_parseHeaders(rawHeaders)+{+	if (!rawHeaders)+	{+		return $elm$core$Dict$empty;+	}++	var headers = $elm$core$Dict$empty;+	var headerPairs = rawHeaders.split('\r\n');+	for (var i = headerPairs.length; i--; )+	{+		var headerPair = headerPairs[i];+		var index = headerPair.indexOf(': ');+		if (index > 0)+		{+			var key = headerPair.substring(0, index);+			var value = headerPair.substring(index + 2);++			headers = A3($elm$core$Dict$update, key, function(oldValue) {+				return $elm$core$Maybe$Just($elm$core$Maybe$isJust(oldValue)+					? value + ', ' + oldValue.a+					: value+				);+			}, headers);+		}+	}+	return headers;+}+++// EXPECT++var _Http_expect = F3(function(type, toBody, toValue)+{+	return {+		$: 0,+		d: type,+		b: toBody,+		a: toValue+	};+});++var _Http_mapExpect = F2(function(func, expect)+{+	return {+		$: 0,+		d: expect.d,+		b: expect.b,+		a: function(x) { return func(expect.a(x)); }+	};+});++function _Http_toDataView(arrayBuffer)+{+	return new DataView(arrayBuffer);+}+++// BODY and PARTS++var _Http_emptyBody = { $: 0 };+var _Http_pair = F2(function(a, b) { return { $: 0, a: a, b: b }; });++function _Http_toFormData(parts)+{+	for (var formData = new FormData(); parts.b; parts = parts.b) // WHILE_CONS+	{+		var part = parts.a;+		formData.append(part.a, part.b);+	}+	return formData;+}++var _Http_bytesToBlob = F2(function(mime, bytes)+{+	return new Blob([bytes], { type: mime });+});+++// PROGRESS++function _Http_track(router, xhr, tracker)+{+	// TODO check out lengthComputable on loadstart event++	xhr.upload.addEventListener('progress', function(event) {+		if (xhr.c) { return; }+		_Scheduler_rawSpawn(A2($elm$core$Platform$sendToSelf, router, _Utils_Tuple2(tracker, $elm$http$Http$Sending({+			dt: event.loaded,+			cq: event.total+		}))));+	});+	xhr.addEventListener('progress', function(event) {+		if (xhr.c) { return; }+		_Scheduler_rawSpawn(A2($elm$core$Platform$sendToSelf, router, _Utils_Tuple2(tracker, $elm$http$Http$Receiving({+			$7: event.loaded,+			cq: event.lengthComputable ? $elm$core$Maybe$Just(event.total) : $elm$core$Maybe$Nothing+		}))));+	});+}+++var _Bitwise_and = F2(function(a, b)+{+	return a & b;+});++var _Bitwise_or = F2(function(a, b)+{+	return a | b;+});++var _Bitwise_xor = F2(function(a, b)+{+	return a ^ b;+});++function _Bitwise_complement(a)+{+	return ~a;+};++var _Bitwise_shiftLeftBy = F2(function(offset, a)+{+	return a << offset;+});++var _Bitwise_shiftRightBy = F2(function(offset, a)+{+	return a >> offset;+});++var _Bitwise_shiftRightZfBy = F2(function(offset, a)+{+	return a >>> offset;+});+++++// STRINGS+++var _Parser_isSubString = F5(function(smallString, offset, row, col, bigString)+{+	var smallLength = smallString.length;+	var isGood = offset + smallLength <= bigString.length;++	for (var i = 0; isGood && i < smallLength; )+	{+		var code = bigString.charCodeAt(offset);+		isGood =+			smallString[i++] === bigString[offset++]+			&& (+				code === 0x000A /* \n */+					? ( row++, col=1 )+					: ( col++, (code & 0xF800) === 0xD800 ? smallString[i++] === bigString[offset++] : 1 )+			)+	}++	return _Utils_Tuple3(isGood ? offset : -1, row, col);+});++++// CHARS+++var _Parser_isSubChar = F3(function(predicate, offset, string)+{+	return (+		string.length <= offset+			? -1+			:+		(string.charCodeAt(offset) & 0xF800) === 0xD800+			? (predicate(_Utils_chr(string.substr(offset, 2))) ? offset + 2 : -1)+			:+		(predicate(_Utils_chr(string[offset]))+			? ((string[offset] === '\n') ? -2 : (offset + 1))+			: -1+		)+	);+});+++var _Parser_isAsciiCode = F3(function(code, offset, string)+{+	return string.charCodeAt(offset) === code;+});++++// NUMBERS+++var _Parser_chompBase10 = F2(function(offset, string)+{+	for (; offset < string.length; offset++)+	{+		var code = string.charCodeAt(offset);+		if (code < 0x30 || 0x39 < code)+		{+			return offset;+		}+	}+	return offset;+});+++var _Parser_consumeBase = F3(function(base, offset, string)+{+	for (var total = 0; offset < string.length; offset++)+	{+		var digit = string.charCodeAt(offset) - 0x30;+		if (digit < 0 || base <= digit) break;+		total = base * total + digit;+	}+	return _Utils_Tuple2(offset, total);+});+++var _Parser_consumeBase16 = F2(function(offset, string)+{+	for (var total = 0; offset < string.length; offset++)+	{+		var code = string.charCodeAt(offset);+		if (0x30 <= code && code <= 0x39)+		{+			total = 16 * total + code - 0x30;+		}+		else if (0x41 <= code && code <= 0x46)+		{+			total = 16 * total + code - 55;+		}+		else if (0x61 <= code && code <= 0x66)+		{+			total = 16 * total + code - 87;+		}+		else+		{+			break;+		}+	}+	return _Utils_Tuple2(offset, total);+});++++// FIND STRING+++var _Parser_findSubString = F5(function(smallString, offset, row, col, bigString)+{+	var newOffset = bigString.indexOf(smallString, offset);+	var target = newOffset < 0 ? bigString.length : newOffset + smallString.length;++	while (offset < target)+	{+		var code = bigString.charCodeAt(offset++);+		code === 0x000A /* \n */+			? ( col=1, row++ )+			: ( col++, (code & 0xF800) === 0xD800 && offset++ )+	}++	return _Utils_Tuple3(newOffset, row, col);+});+var $elm$core$List$cons = _List_cons;+var $elm$core$Elm$JsArray$foldr = _JsArray_foldr;+var $elm$core$Array$foldr = F3(+	function (func, baseCase, _v0) {+		var tree = _v0.c;+		var tail = _v0.d;+		var helper = F2(+			function (node, acc) {+				if (!node.$) {+					var subTree = node.a;+					return A3($elm$core$Elm$JsArray$foldr, helper, acc, subTree);+				} else {+					var values = node.a;+					return A3($elm$core$Elm$JsArray$foldr, func, acc, values);+				}+			});+		return A3(+			$elm$core$Elm$JsArray$foldr,+			helper,+			A3($elm$core$Elm$JsArray$foldr, func, baseCase, tail),+			tree);+	});+var $elm$core$Array$toList = function (array) {+	return A3($elm$core$Array$foldr, $elm$core$List$cons, _List_Nil, array);+};+var $elm$core$Dict$foldr = F3(+	function (func, acc, t) {+		foldr:+		while (true) {+			if (t.$ === -2) {+				return acc;+			} else {+				var key = t.b;+				var value = t.c;+				var left = t.d;+				var right = t.e;+				var $temp$func = func,+					$temp$acc = A3(+					func,+					key,+					value,+					A3($elm$core$Dict$foldr, func, acc, right)),+					$temp$t = left;+				func = $temp$func;+				acc = $temp$acc;+				t = $temp$t;+				continue foldr;+			}+		}+	});+var $elm$core$Dict$toList = function (dict) {+	return A3(+		$elm$core$Dict$foldr,+		F3(+			function (key, value, list) {+				return A2(+					$elm$core$List$cons,+					_Utils_Tuple2(key, value),+					list);+			}),+		_List_Nil,+		dict);+};+var $elm$core$Dict$keys = function (dict) {+	return A3(+		$elm$core$Dict$foldr,+		F3(+			function (key, value, keyList) {+				return A2($elm$core$List$cons, key, keyList);+			}),+		_List_Nil,+		dict);+};+var $elm$core$Set$toList = function (_v0) {+	var dict = _v0;+	return $elm$core$Dict$keys(dict);+};+var $elm$core$Basics$EQ = 1;+var $elm$core$Basics$GT = 2;+var $elm$core$Basics$LT = 0;+var $author$project$Main$LoadFlags = {$: 0};+var $author$project$Main$Loading = {$: 0};+var $author$project$Main$NoOp = {$: 3};+var $elm$core$Result$Err = function (a) {+	return {$: 1, a: a};+};+var $elm$json$Json$Decode$Failure = F2(+	function (a, b) {+		return {$: 3, a: a, b: b};+	});+var $elm$json$Json$Decode$Field = F2(+	function (a, b) {+		return {$: 0, a: a, b: b};+	});+var $elm$json$Json$Decode$Index = F2(+	function (a, b) {+		return {$: 1, a: a, b: b};+	});+var $elm$core$Result$Ok = function (a) {+	return {$: 0, a: a};+};+var $elm$json$Json$Decode$OneOf = function (a) {+	return {$: 2, a: a};+};+var $elm$core$Basics$False = 1;+var $elm$core$Basics$add = _Basics_add;+var $elm$core$Maybe$Just = function (a) {+	return {$: 0, a: a};+};+var $elm$core$Maybe$Nothing = {$: 1};+var $elm$core$String$all = _String_all;+var $elm$core$Basics$and = _Basics_and;+var $elm$core$Basics$append = _Utils_append;+var $elm$json$Json$Encode$encode = _Json_encode;+var $elm$core$String$fromInt = _String_fromNumber;+var $elm$core$String$join = F2(+	function (sep, chunks) {+		return A2(+			_String_join,+			sep,+			_List_toArray(chunks));+	});+var $elm$core$String$split = F2(+	function (sep, string) {+		return _List_fromArray(+			A2(_String_split, sep, string));+	});+var $elm$json$Json$Decode$indent = function (str) {+	return A2(+		$elm$core$String$join,+		'\n    ',+		A2($elm$core$String$split, '\n', str));+};+var $elm$core$List$foldl = F3(+	function (func, acc, list) {+		foldl:+		while (true) {+			if (!list.b) {+				return acc;+			} else {+				var x = list.a;+				var xs = list.b;+				var $temp$func = func,+					$temp$acc = A2(func, x, acc),+					$temp$list = xs;+				func = $temp$func;+				acc = $temp$acc;+				list = $temp$list;+				continue foldl;+			}+		}+	});+var $elm$core$List$length = function (xs) {+	return A3(+		$elm$core$List$foldl,+		F2(+			function (_v0, i) {+				return i + 1;+			}),+		0,+		xs);+};+var $elm$core$List$map2 = _List_map2;+var $elm$core$Basics$le = _Utils_le;+var $elm$core$Basics$sub = _Basics_sub;+var $elm$core$List$rangeHelp = F3(+	function (lo, hi, list) {+		rangeHelp:+		while (true) {+			if (_Utils_cmp(lo, hi) < 1) {+				var $temp$lo = lo,+					$temp$hi = hi - 1,+					$temp$list = A2($elm$core$List$cons, hi, list);+				lo = $temp$lo;+				hi = $temp$hi;+				list = $temp$list;+				continue rangeHelp;+			} else {+				return list;+			}+		}+	});+var $elm$core$List$range = F2(+	function (lo, hi) {+		return A3($elm$core$List$rangeHelp, lo, hi, _List_Nil);+	});+var $elm$core$List$indexedMap = F2(+	function (f, xs) {+		return A3(+			$elm$core$List$map2,+			f,+			A2(+				$elm$core$List$range,+				0,+				$elm$core$List$length(xs) - 1),+			xs);+	});+var $elm$core$Char$toCode = _Char_toCode;+var $elm$core$Char$isLower = function (_char) {+	var code = $elm$core$Char$toCode(_char);+	return (97 <= code) && (code <= 122);+};+var $elm$core$Char$isUpper = function (_char) {+	var code = $elm$core$Char$toCode(_char);+	return (code <= 90) && (65 <= code);+};+var $elm$core$Basics$or = _Basics_or;+var $elm$core$Char$isAlpha = function (_char) {+	return $elm$core$Char$isLower(_char) || $elm$core$Char$isUpper(_char);+};+var $elm$core$Char$isDigit = function (_char) {+	var code = $elm$core$Char$toCode(_char);+	return (code <= 57) && (48 <= code);+};+var $elm$core$Char$isAlphaNum = function (_char) {+	return $elm$core$Char$isLower(_char) || ($elm$core$Char$isUpper(_char) || $elm$core$Char$isDigit(_char));+};+var $elm$core$List$reverse = function (list) {+	return A3($elm$core$List$foldl, $elm$core$List$cons, _List_Nil, list);+};+var $elm$core$String$uncons = _String_uncons;+var $elm$json$Json$Decode$errorOneOf = F2(+	function (i, error) {+		return '\n\n(' + ($elm$core$String$fromInt(i + 1) + (') ' + $elm$json$Json$Decode$indent(+			$elm$json$Json$Decode$errorToString(error))));+	});+var $elm$json$Json$Decode$errorToString = function (error) {+	return A2($elm$json$Json$Decode$errorToStringHelp, error, _List_Nil);+};+var $elm$json$Json$Decode$errorToStringHelp = F2(+	function (error, context) {+		errorToStringHelp:+		while (true) {+			switch (error.$) {+				case 0:+					var f = error.a;+					var err = error.b;+					var isSimple = function () {+						var _v1 = $elm$core$String$uncons(f);+						if (_v1.$ === 1) {+							return false;+						} else {+							var _v2 = _v1.a;+							var _char = _v2.a;+							var rest = _v2.b;+							return $elm$core$Char$isAlpha(_char) && A2($elm$core$String$all, $elm$core$Char$isAlphaNum, rest);+						}+					}();+					var fieldName = isSimple ? ('.' + f) : ('[\'' + (f + '\']'));+					var $temp$error = err,+						$temp$context = A2($elm$core$List$cons, fieldName, context);+					error = $temp$error;+					context = $temp$context;+					continue errorToStringHelp;+				case 1:+					var i = error.a;+					var err = error.b;+					var indexName = '[' + ($elm$core$String$fromInt(i) + ']');+					var $temp$error = err,+						$temp$context = A2($elm$core$List$cons, indexName, context);+					error = $temp$error;+					context = $temp$context;+					continue errorToStringHelp;+				case 2:+					var errors = error.a;+					if (!errors.b) {+						return 'Ran into a Json.Decode.oneOf with no possibilities' + function () {+							if (!context.b) {+								return '!';+							} else {+								return ' at json' + A2(+									$elm$core$String$join,+									'',+									$elm$core$List$reverse(context));+							}+						}();+					} else {+						if (!errors.b.b) {+							var err = errors.a;+							var $temp$error = err,+								$temp$context = context;+							error = $temp$error;+							context = $temp$context;+							continue errorToStringHelp;+						} else {+							var starter = function () {+								if (!context.b) {+									return 'Json.Decode.oneOf';+								} else {+									return 'The Json.Decode.oneOf at json' + A2(+										$elm$core$String$join,+										'',+										$elm$core$List$reverse(context));+								}+							}();+							var introduction = starter + (' failed in the following ' + ($elm$core$String$fromInt(+								$elm$core$List$length(errors)) + ' ways:'));+							return A2(+								$elm$core$String$join,+								'\n\n',+								A2(+									$elm$core$List$cons,+									introduction,+									A2($elm$core$List$indexedMap, $elm$json$Json$Decode$errorOneOf, errors)));+						}+					}+				default:+					var msg = error.a;+					var json = error.b;+					var introduction = function () {+						if (!context.b) {+							return 'Problem with the given value:\n\n';+						} else {+							return 'Problem with the value at json' + (A2(+								$elm$core$String$join,+								'',+								$elm$core$List$reverse(context)) + ':\n\n    ');+						}+					}();+					return introduction + ($elm$json$Json$Decode$indent(+						A2($elm$json$Json$Encode$encode, 4, json)) + ('\n\n' + msg));+			}+		}+	});+var $elm$core$Array$branchFactor = 32;+var $elm$core$Array$Array_elm_builtin = F4(+	function (a, b, c, d) {+		return {$: 0, a: a, b: b, c: c, d: d};+	});+var $elm$core$Elm$JsArray$empty = _JsArray_empty;+var $elm$core$Basics$ceiling = _Basics_ceiling;+var $elm$core$Basics$fdiv = _Basics_fdiv;+var $elm$core$Basics$logBase = F2(+	function (base, number) {+		return _Basics_log(number) / _Basics_log(base);+	});+var $elm$core$Basics$toFloat = _Basics_toFloat;+var $elm$core$Array$shiftStep = $elm$core$Basics$ceiling(+	A2($elm$core$Basics$logBase, 2, $elm$core$Array$branchFactor));+var $elm$core$Array$empty = A4($elm$core$Array$Array_elm_builtin, 0, $elm$core$Array$shiftStep, $elm$core$Elm$JsArray$empty, $elm$core$Elm$JsArray$empty);+var $elm$core$Elm$JsArray$initialize = _JsArray_initialize;+var $elm$core$Array$Leaf = function (a) {+	return {$: 1, a: a};+};+var $elm$core$Basics$apL = F2(+	function (f, x) {+		return f(x);+	});+var $elm$core$Basics$apR = F2(+	function (x, f) {+		return f(x);+	});+var $elm$core$Basics$eq = _Utils_equal;+var $elm$core$Basics$floor = _Basics_floor;+var $elm$core$Elm$JsArray$length = _JsArray_length;+var $elm$core$Basics$gt = _Utils_gt;+var $elm$core$Basics$max = F2(+	function (x, y) {+		return (_Utils_cmp(x, y) > 0) ? x : y;+	});+var $elm$core$Basics$mul = _Basics_mul;+var $elm$core$Array$SubTree = function (a) {+	return {$: 0, a: a};+};+var $elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList;+var $elm$core$Array$compressNodes = F2(+	function (nodes, acc) {+		compressNodes:+		while (true) {+			var _v0 = A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodes);+			var node = _v0.a;+			var remainingNodes = _v0.b;+			var newAcc = A2(+				$elm$core$List$cons,+				$elm$core$Array$SubTree(node),+				acc);+			if (!remainingNodes.b) {+				return $elm$core$List$reverse(newAcc);+			} else {+				var $temp$nodes = remainingNodes,+					$temp$acc = newAcc;+				nodes = $temp$nodes;+				acc = $temp$acc;+				continue compressNodes;+			}+		}+	});+var $elm$core$Tuple$first = function (_v0) {+	var x = _v0.a;+	return x;+};+var $elm$core$Array$treeFromBuilder = F2(+	function (nodeList, nodeListSize) {+		treeFromBuilder:+		while (true) {+			var newNodeSize = $elm$core$Basics$ceiling(nodeListSize / $elm$core$Array$branchFactor);+			if (newNodeSize === 1) {+				return A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodeList).a;+			} else {+				var $temp$nodeList = A2($elm$core$Array$compressNodes, nodeList, _List_Nil),+					$temp$nodeListSize = newNodeSize;+				nodeList = $temp$nodeList;+				nodeListSize = $temp$nodeListSize;+				continue treeFromBuilder;+			}+		}+	});+var $elm$core$Array$builderToArray = F2(+	function (reverseNodeList, builder) {+		if (!builder.l) {+			return A4(+				$elm$core$Array$Array_elm_builtin,+				$elm$core$Elm$JsArray$length(builder.n),+				$elm$core$Array$shiftStep,+				$elm$core$Elm$JsArray$empty,+				builder.n);+		} else {+			var treeLen = builder.l * $elm$core$Array$branchFactor;+			var depth = $elm$core$Basics$floor(+				A2($elm$core$Basics$logBase, $elm$core$Array$branchFactor, treeLen - 1));+			var correctNodeList = reverseNodeList ? $elm$core$List$reverse(builder.o) : builder.o;+			var tree = A2($elm$core$Array$treeFromBuilder, correctNodeList, builder.l);+			return A4(+				$elm$core$Array$Array_elm_builtin,+				$elm$core$Elm$JsArray$length(builder.n) + treeLen,+				A2($elm$core$Basics$max, 5, depth * $elm$core$Array$shiftStep),+				tree,+				builder.n);+		}+	});+var $elm$core$Basics$idiv = _Basics_idiv;+var $elm$core$Basics$lt = _Utils_lt;+var $elm$core$Array$initializeHelp = F5(+	function (fn, fromIndex, len, nodeList, tail) {+		initializeHelp:+		while (true) {+			if (fromIndex < 0) {+				return A2(+					$elm$core$Array$builderToArray,+					false,+					{o: nodeList, l: (len / $elm$core$Array$branchFactor) | 0, n: tail});+			} else {+				var leaf = $elm$core$Array$Leaf(+					A3($elm$core$Elm$JsArray$initialize, $elm$core$Array$branchFactor, fromIndex, fn));+				var $temp$fn = fn,+					$temp$fromIndex = fromIndex - $elm$core$Array$branchFactor,+					$temp$len = len,+					$temp$nodeList = A2($elm$core$List$cons, leaf, nodeList),+					$temp$tail = tail;+				fn = $temp$fn;+				fromIndex = $temp$fromIndex;+				len = $temp$len;+				nodeList = $temp$nodeList;+				tail = $temp$tail;+				continue initializeHelp;+			}+		}+	});+var $elm$core$Basics$remainderBy = _Basics_remainderBy;+var $elm$core$Array$initialize = F2(+	function (len, fn) {+		if (len <= 0) {+			return $elm$core$Array$empty;+		} else {+			var tailLen = len % $elm$core$Array$branchFactor;+			var tail = A3($elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn);+			var initialFromIndex = (len - tailLen) - $elm$core$Array$branchFactor;+			return A5($elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail);+		}+	});+var $elm$core$Basics$True = 0;+var $elm$core$Result$isOk = function (result) {+	if (!result.$) {+		return true;+	} else {+		return false;+	}+};+var $elm$json$Json$Decode$map = _Json_map1;+var $elm$json$Json$Decode$map2 = _Json_map2;+var $elm$json$Json$Decode$succeed = _Json_succeed;+var $elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) {+	switch (handler.$) {+		case 0:+			return 0;+		case 1:+			return 1;+		case 2:+			return 2;+		default:+			return 3;+	}+};+var $elm$browser$Browser$External = function (a) {+	return {$: 1, a: a};+};+var $elm$browser$Browser$Internal = function (a) {+	return {$: 0, a: a};+};+var $elm$core$Basics$identity = function (x) {+	return x;+};+var $elm$browser$Browser$Dom$NotFound = $elm$core$Basics$identity;+var $elm$url$Url$Http = 0;+var $elm$url$Url$Https = 1;+var $elm$url$Url$Url = F6(+	function (protocol, host, port_, path, query, fragment) {+		return {bQ: fragment, bV: host, dm: path, b9: port_, cd: protocol, ce: query};+	});+var $elm$core$String$contains = _String_contains;+var $elm$core$String$length = _String_length;+var $elm$core$String$slice = _String_slice;+var $elm$core$String$dropLeft = F2(+	function (n, string) {+		return (n < 1) ? string : A3(+			$elm$core$String$slice,+			n,+			$elm$core$String$length(string),+			string);+	});+var $elm$core$String$indexes = _String_indexes;+var $elm$core$String$isEmpty = function (string) {+	return string === '';+};+var $elm$core$String$left = F2(+	function (n, string) {+		return (n < 1) ? '' : A3($elm$core$String$slice, 0, n, string);+	});+var $elm$core$String$toInt = _String_toInt;+var $elm$url$Url$chompBeforePath = F5(+	function (protocol, path, params, frag, str) {+		if ($elm$core$String$isEmpty(str) || A2($elm$core$String$contains, '@', str)) {+			return $elm$core$Maybe$Nothing;+		} else {+			var _v0 = A2($elm$core$String$indexes, ':', str);+			if (!_v0.b) {+				return $elm$core$Maybe$Just(+					A6($elm$url$Url$Url, protocol, str, $elm$core$Maybe$Nothing, path, params, frag));+			} else {+				if (!_v0.b.b) {+					var i = _v0.a;+					var _v1 = $elm$core$String$toInt(+						A2($elm$core$String$dropLeft, i + 1, str));+					if (_v1.$ === 1) {+						return $elm$core$Maybe$Nothing;+					} else {+						var port_ = _v1;+						return $elm$core$Maybe$Just(+							A6(+								$elm$url$Url$Url,+								protocol,+								A2($elm$core$String$left, i, str),+								port_,+								path,+								params,+								frag));+					}+				} else {+					return $elm$core$Maybe$Nothing;+				}+			}+		}+	});+var $elm$url$Url$chompBeforeQuery = F4(+	function (protocol, params, frag, str) {+		if ($elm$core$String$isEmpty(str)) {+			return $elm$core$Maybe$Nothing;+		} else {+			var _v0 = A2($elm$core$String$indexes, '/', str);+			if (!_v0.b) {+				return A5($elm$url$Url$chompBeforePath, protocol, '/', params, frag, str);+			} else {+				var i = _v0.a;+				return A5(+					$elm$url$Url$chompBeforePath,+					protocol,+					A2($elm$core$String$dropLeft, i, str),+					params,+					frag,+					A2($elm$core$String$left, i, str));+			}+		}+	});+var $elm$url$Url$chompBeforeFragment = F3(+	function (protocol, frag, str) {+		if ($elm$core$String$isEmpty(str)) {+			return $elm$core$Maybe$Nothing;+		} else {+			var _v0 = A2($elm$core$String$indexes, '?', str);+			if (!_v0.b) {+				return A4($elm$url$Url$chompBeforeQuery, protocol, $elm$core$Maybe$Nothing, frag, str);+			} else {+				var i = _v0.a;+				return A4(+					$elm$url$Url$chompBeforeQuery,+					protocol,+					$elm$core$Maybe$Just(+						A2($elm$core$String$dropLeft, i + 1, str)),+					frag,+					A2($elm$core$String$left, i, str));+			}+		}+	});+var $elm$url$Url$chompAfterProtocol = F2(+	function (protocol, str) {+		if ($elm$core$String$isEmpty(str)) {+			return $elm$core$Maybe$Nothing;+		} else {+			var _v0 = A2($elm$core$String$indexes, '#', str);+			if (!_v0.b) {+				return A3($elm$url$Url$chompBeforeFragment, protocol, $elm$core$Maybe$Nothing, str);+			} else {+				var i = _v0.a;+				return A3(+					$elm$url$Url$chompBeforeFragment,+					protocol,+					$elm$core$Maybe$Just(+						A2($elm$core$String$dropLeft, i + 1, str)),+					A2($elm$core$String$left, i, str));+			}+		}+	});+var $elm$core$String$startsWith = _String_startsWith;+var $elm$url$Url$fromString = function (str) {+	return A2($elm$core$String$startsWith, 'http://', str) ? A2(+		$elm$url$Url$chompAfterProtocol,+		0,+		A2($elm$core$String$dropLeft, 7, str)) : (A2($elm$core$String$startsWith, 'https://', str) ? A2(+		$elm$url$Url$chompAfterProtocol,+		1,+		A2($elm$core$String$dropLeft, 8, str)) : $elm$core$Maybe$Nothing);+};+var $elm$core$Basics$never = function (_v0) {+	never:+	while (true) {+		var nvr = _v0;+		var $temp$_v0 = nvr;+		_v0 = $temp$_v0;+		continue never;+	}+};+var $elm$core$Task$Perform = $elm$core$Basics$identity;+var $elm$core$Task$succeed = _Scheduler_succeed;+var $elm$core$Task$init = $elm$core$Task$succeed(0);+var $elm$core$List$foldrHelper = F4(+	function (fn, acc, ctr, ls) {+		if (!ls.b) {+			return acc;+		} else {+			var a = ls.a;+			var r1 = ls.b;+			if (!r1.b) {+				return A2(fn, a, acc);+			} else {+				var b = r1.a;+				var r2 = r1.b;+				if (!r2.b) {+					return A2(+						fn,+						a,+						A2(fn, b, acc));+				} else {+					var c = r2.a;+					var r3 = r2.b;+					if (!r3.b) {+						return A2(+							fn,+							a,+							A2(+								fn,+								b,+								A2(fn, c, acc)));+					} else {+						var d = r3.a;+						var r4 = r3.b;+						var res = (ctr > 500) ? A3(+							$elm$core$List$foldl,+							fn,+							acc,+							$elm$core$List$reverse(r4)) : A4($elm$core$List$foldrHelper, fn, acc, ctr + 1, r4);+						return A2(+							fn,+							a,+							A2(+								fn,+								b,+								A2(+									fn,+									c,+									A2(fn, d, res))));+					}+				}+			}+		}+	});+var $elm$core$List$foldr = F3(+	function (fn, acc, ls) {+		return A4($elm$core$List$foldrHelper, fn, acc, 0, ls);+	});+var $elm$core$List$map = F2(+	function (f, xs) {+		return A3(+			$elm$core$List$foldr,+			F2(+				function (x, acc) {+					return A2(+						$elm$core$List$cons,+						f(x),+						acc);+				}),+			_List_Nil,+			xs);+	});+var $elm$core$Task$andThen = _Scheduler_andThen;+var $elm$core$Task$map = F2(+	function (func, taskA) {+		return A2(+			$elm$core$Task$andThen,+			function (a) {+				return $elm$core$Task$succeed(+					func(a));+			},+			taskA);+	});+var $elm$core$Task$map2 = F3(+	function (func, taskA, taskB) {+		return A2(+			$elm$core$Task$andThen,+			function (a) {+				return A2(+					$elm$core$Task$andThen,+					function (b) {+						return $elm$core$Task$succeed(+							A2(func, a, b));+					},+					taskB);+			},+			taskA);+	});+var $elm$core$Task$sequence = function (tasks) {+	return A3(+		$elm$core$List$foldr,+		$elm$core$Task$map2($elm$core$List$cons),+		$elm$core$Task$succeed(_List_Nil),+		tasks);+};+var $elm$core$Platform$sendToApp = _Platform_sendToApp;+var $elm$core$Task$spawnCmd = F2(+	function (router, _v0) {+		var task = _v0;+		return _Scheduler_spawn(+			A2(+				$elm$core$Task$andThen,+				$elm$core$Platform$sendToApp(router),+				task));+	});+var $elm$core$Task$onEffects = F3(+	function (router, commands, state) {+		return A2(+			$elm$core$Task$map,+			function (_v0) {+				return 0;+			},+			$elm$core$Task$sequence(+				A2(+					$elm$core$List$map,+					$elm$core$Task$spawnCmd(router),+					commands)));+	});+var $elm$core$Task$onSelfMsg = F3(+	function (_v0, _v1, _v2) {+		return $elm$core$Task$succeed(0);+	});+var $elm$core$Task$cmdMap = F2(+	function (tagger, _v0) {+		var task = _v0;+		return A2($elm$core$Task$map, tagger, task);+	});+_Platform_effectManagers['Task'] = _Platform_createManager($elm$core$Task$init, $elm$core$Task$onEffects, $elm$core$Task$onSelfMsg, $elm$core$Task$cmdMap);+var $elm$core$Task$command = _Platform_leaf('Task');+var $elm$core$Task$perform = F2(+	function (toMessage, task) {+		return $elm$core$Task$command(+			A2($elm$core$Task$map, toMessage, task));+	});+var $elm$browser$Browser$application = _Browser_application;+var $elm$time$Time$Every = F2(+	function (a, b) {+		return {$: 0, a: a, b: b};+	});+var $elm$time$Time$State = F2(+	function (taggers, processes) {+		return {cc: processes, cx: taggers};+	});+var $elm$core$Dict$RBEmpty_elm_builtin = {$: -2};+var $elm$core$Dict$empty = $elm$core$Dict$RBEmpty_elm_builtin;+var $elm$time$Time$init = $elm$core$Task$succeed(+	A2($elm$time$Time$State, $elm$core$Dict$empty, $elm$core$Dict$empty));+var $elm$core$Basics$compare = _Utils_compare;+var $elm$core$Dict$get = F2(+	function (targetKey, dict) {+		get:+		while (true) {+			if (dict.$ === -2) {+				return $elm$core$Maybe$Nothing;+			} else {+				var key = dict.b;+				var value = dict.c;+				var left = dict.d;+				var right = dict.e;+				var _v1 = A2($elm$core$Basics$compare, targetKey, key);+				switch (_v1) {+					case 0:+						var $temp$targetKey = targetKey,+							$temp$dict = left;+						targetKey = $temp$targetKey;+						dict = $temp$dict;+						continue get;+					case 1:+						return $elm$core$Maybe$Just(value);+					default:+						var $temp$targetKey = targetKey,+							$temp$dict = right;+						targetKey = $temp$targetKey;+						dict = $temp$dict;+						continue get;+				}+			}+		}+	});+var $elm$core$Dict$Black = 1;+var $elm$core$Dict$RBNode_elm_builtin = F5(+	function (a, b, c, d, e) {+		return {$: -1, a: a, b: b, c: c, d: d, e: e};+	});+var $elm$core$Dict$Red = 0;+var $elm$core$Dict$balance = F5(+	function (color, key, value, left, right) {+		if ((right.$ === -1) && (!right.a)) {+			var _v1 = right.a;+			var rK = right.b;+			var rV = right.c;+			var rLeft = right.d;+			var rRight = right.e;+			if ((left.$ === -1) && (!left.a)) {+				var _v3 = left.a;+				var lK = left.b;+				var lV = left.c;+				var lLeft = left.d;+				var lRight = left.e;+				return A5(+					$elm$core$Dict$RBNode_elm_builtin,+					0,+					key,+					value,+					A5($elm$core$Dict$RBNode_elm_builtin, 1, lK, lV, lLeft, lRight),+					A5($elm$core$Dict$RBNode_elm_builtin, 1, rK, rV, rLeft, rRight));+			} else {+				return A5(+					$elm$core$Dict$RBNode_elm_builtin,+					color,+					rK,+					rV,+					A5($elm$core$Dict$RBNode_elm_builtin, 0, key, value, left, rLeft),+					rRight);+			}+		} else {+			if ((((left.$ === -1) && (!left.a)) && (left.d.$ === -1)) && (!left.d.a)) {+				var _v5 = left.a;+				var lK = left.b;+				var lV = left.c;+				var _v6 = left.d;+				var _v7 = _v6.a;+				var llK = _v6.b;+				var llV = _v6.c;+				var llLeft = _v6.d;+				var llRight = _v6.e;+				var lRight = left.e;+				return A5(+					$elm$core$Dict$RBNode_elm_builtin,+					0,+					lK,+					lV,+					A5($elm$core$Dict$RBNode_elm_builtin, 1, llK, llV, llLeft, llRight),+					A5($elm$core$Dict$RBNode_elm_builtin, 1, key, value, lRight, right));+			} else {+				return A5($elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right);+			}+		}+	});+var $elm$core$Dict$insertHelp = F3(+	function (key, value, dict) {+		if (dict.$ === -2) {+			return A5($elm$core$Dict$RBNode_elm_builtin, 0, key, value, $elm$core$Dict$RBEmpty_elm_builtin, $elm$core$Dict$RBEmpty_elm_builtin);+		} else {+			var nColor = dict.a;+			var nKey = dict.b;+			var nValue = dict.c;+			var nLeft = dict.d;+			var nRight = dict.e;+			var _v1 = A2($elm$core$Basics$compare, key, nKey);+			switch (_v1) {+				case 0:+					return A5(+						$elm$core$Dict$balance,+						nColor,+						nKey,+						nValue,+						A3($elm$core$Dict$insertHelp, key, value, nLeft),+						nRight);+				case 1:+					return A5($elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight);+				default:+					return A5(+						$elm$core$Dict$balance,+						nColor,+						nKey,+						nValue,+						nLeft,+						A3($elm$core$Dict$insertHelp, key, value, nRight));+			}+		}+	});+var $elm$core$Dict$insert = F3(+	function (key, value, dict) {+		var _v0 = A3($elm$core$Dict$insertHelp, key, value, dict);+		if ((_v0.$ === -1) && (!_v0.a)) {+			var _v1 = _v0.a;+			var k = _v0.b;+			var v = _v0.c;+			var l = _v0.d;+			var r = _v0.e;+			return A5($elm$core$Dict$RBNode_elm_builtin, 1, k, v, l, r);+		} else {+			var x = _v0;+			return x;+		}+	});+var $elm$time$Time$addMySub = F2(+	function (_v0, state) {+		var interval = _v0.a;+		var tagger = _v0.b;+		var _v1 = A2($elm$core$Dict$get, interval, state);+		if (_v1.$ === 1) {+			return A3(+				$elm$core$Dict$insert,+				interval,+				_List_fromArray(+					[tagger]),+				state);+		} else {+			var taggers = _v1.a;+			return A3(+				$elm$core$Dict$insert,+				interval,+				A2($elm$core$List$cons, tagger, taggers),+				state);+		}+	});+var $elm$core$Process$kill = _Scheduler_kill;+var $elm$core$Dict$foldl = F3(+	function (func, acc, dict) {+		foldl:+		while (true) {+			if (dict.$ === -2) {+				return acc;+			} else {+				var key = dict.b;+				var value = dict.c;+				var left = dict.d;+				var right = dict.e;+				var $temp$func = func,+					$temp$acc = A3(+					func,+					key,+					value,+					A3($elm$core$Dict$foldl, func, acc, left)),+					$temp$dict = right;+				func = $temp$func;+				acc = $temp$acc;+				dict = $temp$dict;+				continue foldl;+			}+		}+	});+var $elm$core$Dict$merge = F6(+	function (leftStep, bothStep, rightStep, leftDict, rightDict, initialResult) {+		var stepState = F3(+			function (rKey, rValue, _v0) {+				stepState:+				while (true) {+					var list = _v0.a;+					var result = _v0.b;+					if (!list.b) {+						return _Utils_Tuple2(+							list,+							A3(rightStep, rKey, rValue, result));+					} else {+						var _v2 = list.a;+						var lKey = _v2.a;+						var lValue = _v2.b;+						var rest = list.b;+						if (_Utils_cmp(lKey, rKey) < 0) {+							var $temp$rKey = rKey,+								$temp$rValue = rValue,+								$temp$_v0 = _Utils_Tuple2(+								rest,+								A3(leftStep, lKey, lValue, result));+							rKey = $temp$rKey;+							rValue = $temp$rValue;+							_v0 = $temp$_v0;+							continue stepState;+						} else {+							if (_Utils_cmp(lKey, rKey) > 0) {+								return _Utils_Tuple2(+									list,+									A3(rightStep, rKey, rValue, result));+							} else {+								return _Utils_Tuple2(+									rest,+									A4(bothStep, lKey, lValue, rValue, result));+							}+						}+					}+				}+			});+		var _v3 = A3(+			$elm$core$Dict$foldl,+			stepState,+			_Utils_Tuple2(+				$elm$core$Dict$toList(leftDict),+				initialResult),+			rightDict);+		var leftovers = _v3.a;+		var intermediateResult = _v3.b;+		return A3(+			$elm$core$List$foldl,+			F2(+				function (_v4, result) {+					var k = _v4.a;+					var v = _v4.b;+					return A3(leftStep, k, v, result);+				}),+			intermediateResult,+			leftovers);+	});+var $elm$core$Platform$sendToSelf = _Platform_sendToSelf;+var $elm$time$Time$Name = function (a) {+	return {$: 0, a: a};+};+var $elm$time$Time$Offset = function (a) {+	return {$: 1, a: a};+};+var $elm$time$Time$Zone = F2(+	function (a, b) {+		return {$: 0, a: a, b: b};+	});+var $elm$time$Time$customZone = $elm$time$Time$Zone;+var $elm$time$Time$setInterval = _Time_setInterval;+var $elm$core$Process$spawn = _Scheduler_spawn;+var $elm$time$Time$spawnHelp = F3(+	function (router, intervals, processes) {+		if (!intervals.b) {+			return $elm$core$Task$succeed(processes);+		} else {+			var interval = intervals.a;+			var rest = intervals.b;+			var spawnTimer = $elm$core$Process$spawn(+				A2(+					$elm$time$Time$setInterval,+					interval,+					A2($elm$core$Platform$sendToSelf, router, interval)));+			var spawnRest = function (id) {+				return A3(+					$elm$time$Time$spawnHelp,+					router,+					rest,+					A3($elm$core$Dict$insert, interval, id, processes));+			};+			return A2($elm$core$Task$andThen, spawnRest, spawnTimer);+		}+	});+var $elm$time$Time$onEffects = F3(+	function (router, subs, _v0) {+		var processes = _v0.cc;+		var rightStep = F3(+			function (_v6, id, _v7) {+				var spawns = _v7.a;+				var existing = _v7.b;+				var kills = _v7.c;+				return _Utils_Tuple3(+					spawns,+					existing,+					A2(+						$elm$core$Task$andThen,+						function (_v5) {+							return kills;+						},+						$elm$core$Process$kill(id)));+			});+		var newTaggers = A3($elm$core$List$foldl, $elm$time$Time$addMySub, $elm$core$Dict$empty, subs);+		var leftStep = F3(+			function (interval, taggers, _v4) {+				var spawns = _v4.a;+				var existing = _v4.b;+				var kills = _v4.c;+				return _Utils_Tuple3(+					A2($elm$core$List$cons, interval, spawns),+					existing,+					kills);+			});+		var bothStep = F4(+			function (interval, taggers, id, _v3) {+				var spawns = _v3.a;+				var existing = _v3.b;+				var kills = _v3.c;+				return _Utils_Tuple3(+					spawns,+					A3($elm$core$Dict$insert, interval, id, existing),+					kills);+			});+		var _v1 = A6(+			$elm$core$Dict$merge,+			leftStep,+			bothStep,+			rightStep,+			newTaggers,+			processes,+			_Utils_Tuple3(+				_List_Nil,+				$elm$core$Dict$empty,+				$elm$core$Task$succeed(0)));+		var spawnList = _v1.a;+		var existingDict = _v1.b;+		var killTask = _v1.c;+		return A2(+			$elm$core$Task$andThen,+			function (newProcesses) {+				return $elm$core$Task$succeed(+					A2($elm$time$Time$State, newTaggers, newProcesses));+			},+			A2(+				$elm$core$Task$andThen,+				function (_v2) {+					return A3($elm$time$Time$spawnHelp, router, spawnList, existingDict);+				},+				killTask));+	});+var $elm$time$Time$Posix = $elm$core$Basics$identity;+var $elm$time$Time$millisToPosix = $elm$core$Basics$identity;+var $elm$time$Time$now = _Time_now($elm$time$Time$millisToPosix);+var $elm$time$Time$onSelfMsg = F3(+	function (router, interval, state) {+		var _v0 = A2($elm$core$Dict$get, interval, state.cx);+		if (_v0.$ === 1) {+			return $elm$core$Task$succeed(state);+		} else {+			var taggers = _v0.a;+			var tellTaggers = function (time) {+				return $elm$core$Task$sequence(+					A2(+						$elm$core$List$map,+						function (tagger) {+							return A2(+								$elm$core$Platform$sendToApp,+								router,+								tagger(time));+						},+						taggers));+			};+			return A2(+				$elm$core$Task$andThen,+				function (_v1) {+					return $elm$core$Task$succeed(state);+				},+				A2($elm$core$Task$andThen, tellTaggers, $elm$time$Time$now));+		}+	});+var $elm$core$Basics$composeL = F3(+	function (g, f, x) {+		return g(+			f(x));+	});+var $elm$time$Time$subMap = F2(+	function (f, _v0) {+		var interval = _v0.a;+		var tagger = _v0.b;+		return A2(+			$elm$time$Time$Every,+			interval,+			A2($elm$core$Basics$composeL, f, tagger));+	});+_Platform_effectManagers['Time'] = _Platform_createManager($elm$time$Time$init, $elm$time$Time$onEffects, $elm$time$Time$onSelfMsg, 0, $elm$time$Time$subMap);+var $elm$time$Time$subscription = _Platform_leaf('Time');+var $elm$time$Time$every = F2(+	function (interval, tagger) {+		return $elm$time$Time$subscription(+			A2($elm$time$Time$Every, interval, tagger));+	});+var $author$project$Main$LoadedFlags = function (a) {+	return {$: 1, a: a};+};+var $elm$json$Json$Decode$decodeString = _Json_runOnString;+var $elm$http$Http$BadStatus_ = F2(+	function (a, b) {+		return {$: 3, a: a, b: b};+	});+var $elm$http$Http$BadUrl_ = function (a) {+	return {$: 0, a: a};+};+var $elm$http$Http$GoodStatus_ = F2(+	function (a, b) {+		return {$: 4, a: a, b: b};+	});+var $elm$http$Http$NetworkError_ = {$: 2};+var $elm$http$Http$Receiving = function (a) {+	return {$: 1, a: a};+};+var $elm$http$Http$Sending = function (a) {+	return {$: 0, a: a};+};+var $elm$http$Http$Timeout_ = {$: 1};+var $elm$core$Maybe$isJust = function (maybe) {+	if (!maybe.$) {+		return true;+	} else {+		return false;+	}+};+var $elm$core$Dict$getMin = function (dict) {+	getMin:+	while (true) {+		if ((dict.$ === -1) && (dict.d.$ === -1)) {+			var left = dict.d;+			var $temp$dict = left;+			dict = $temp$dict;+			continue getMin;+		} else {+			return dict;+		}+	}+};+var $elm$core$Dict$moveRedLeft = function (dict) {+	if (((dict.$ === -1) && (dict.d.$ === -1)) && (dict.e.$ === -1)) {+		if ((dict.e.d.$ === -1) && (!dict.e.d.a)) {+			var clr = dict.a;+			var k = dict.b;+			var v = dict.c;+			var _v1 = dict.d;+			var lClr = _v1.a;+			var lK = _v1.b;+			var lV = _v1.c;+			var lLeft = _v1.d;+			var lRight = _v1.e;+			var _v2 = dict.e;+			var rClr = _v2.a;+			var rK = _v2.b;+			var rV = _v2.c;+			var rLeft = _v2.d;+			var _v3 = rLeft.a;+			var rlK = rLeft.b;+			var rlV = rLeft.c;+			var rlL = rLeft.d;+			var rlR = rLeft.e;+			var rRight = _v2.e;+			return A5(+				$elm$core$Dict$RBNode_elm_builtin,+				0,+				rlK,+				rlV,+				A5(+					$elm$core$Dict$RBNode_elm_builtin,+					1,+					k,+					v,+					A5($elm$core$Dict$RBNode_elm_builtin, 0, lK, lV, lLeft, lRight),+					rlL),+				A5($elm$core$Dict$RBNode_elm_builtin, 1, rK, rV, rlR, rRight));+		} else {+			var clr = dict.a;+			var k = dict.b;+			var v = dict.c;+			var _v4 = dict.d;+			var lClr = _v4.a;+			var lK = _v4.b;+			var lV = _v4.c;+			var lLeft = _v4.d;+			var lRight = _v4.e;+			var _v5 = dict.e;+			var rClr = _v5.a;+			var rK = _v5.b;+			var rV = _v5.c;+			var rLeft = _v5.d;+			var rRight = _v5.e;+			if (clr === 1) {+				return A5(+					$elm$core$Dict$RBNode_elm_builtin,+					1,+					k,+					v,+					A5($elm$core$Dict$RBNode_elm_builtin, 0, lK, lV, lLeft, lRight),+					A5($elm$core$Dict$RBNode_elm_builtin, 0, rK, rV, rLeft, rRight));+			} else {+				return A5(+					$elm$core$Dict$RBNode_elm_builtin,+					1,+					k,+					v,+					A5($elm$core$Dict$RBNode_elm_builtin, 0, lK, lV, lLeft, lRight),+					A5($elm$core$Dict$RBNode_elm_builtin, 0, rK, rV, rLeft, rRight));+			}+		}+	} else {+		return dict;+	}+};+var $elm$core$Dict$moveRedRight = function (dict) {+	if (((dict.$ === -1) && (dict.d.$ === -1)) && (dict.e.$ === -1)) {+		if ((dict.d.d.$ === -1) && (!dict.d.d.a)) {+			var clr = dict.a;+			var k = dict.b;+			var v = dict.c;+			var _v1 = dict.d;+			var lClr = _v1.a;+			var lK = _v1.b;+			var lV = _v1.c;+			var _v2 = _v1.d;+			var _v3 = _v2.a;+			var llK = _v2.b;+			var llV = _v2.c;+			var llLeft = _v2.d;+			var llRight = _v2.e;+			var lRight = _v1.e;+			var _v4 = dict.e;+			var rClr = _v4.a;+			var rK = _v4.b;+			var rV = _v4.c;+			var rLeft = _v4.d;+			var rRight = _v4.e;+			return A5(+				$elm$core$Dict$RBNode_elm_builtin,+				0,+				lK,+				lV,+				A5($elm$core$Dict$RBNode_elm_builtin, 1, llK, llV, llLeft, llRight),+				A5(+					$elm$core$Dict$RBNode_elm_builtin,+					1,+					k,+					v,+					lRight,+					A5($elm$core$Dict$RBNode_elm_builtin, 0, rK, rV, rLeft, rRight)));+		} else {+			var clr = dict.a;+			var k = dict.b;+			var v = dict.c;+			var _v5 = dict.d;+			var lClr = _v5.a;+			var lK = _v5.b;+			var lV = _v5.c;+			var lLeft = _v5.d;+			var lRight = _v5.e;+			var _v6 = dict.e;+			var rClr = _v6.a;+			var rK = _v6.b;+			var rV = _v6.c;+			var rLeft = _v6.d;+			var rRight = _v6.e;+			if (clr === 1) {+				return A5(+					$elm$core$Dict$RBNode_elm_builtin,+					1,+					k,+					v,+					A5($elm$core$Dict$RBNode_elm_builtin, 0, lK, lV, lLeft, lRight),+					A5($elm$core$Dict$RBNode_elm_builtin, 0, rK, rV, rLeft, rRight));+			} else {+				return A5(+					$elm$core$Dict$RBNode_elm_builtin,+					1,+					k,+					v,+					A5($elm$core$Dict$RBNode_elm_builtin, 0, lK, lV, lLeft, lRight),+					A5($elm$core$Dict$RBNode_elm_builtin, 0, rK, rV, rLeft, rRight));+			}+		}+	} else {+		return dict;+	}+};+var $elm$core$Dict$removeHelpPrepEQGT = F7(+	function (targetKey, dict, color, key, value, left, right) {+		if ((left.$ === -1) && (!left.a)) {+			var _v1 = left.a;+			var lK = left.b;+			var lV = left.c;+			var lLeft = left.d;+			var lRight = left.e;+			return A5(+				$elm$core$Dict$RBNode_elm_builtin,+				color,+				lK,+				lV,+				lLeft,+				A5($elm$core$Dict$RBNode_elm_builtin, 0, key, value, lRight, right));+		} else {+			_v2$2:+			while (true) {+				if ((right.$ === -1) && (right.a === 1)) {+					if (right.d.$ === -1) {+						if (right.d.a === 1) {+							var _v3 = right.a;+							var _v4 = right.d;+							var _v5 = _v4.a;+							return $elm$core$Dict$moveRedRight(dict);+						} else {+							break _v2$2;+						}+					} else {+						var _v6 = right.a;+						var _v7 = right.d;+						return $elm$core$Dict$moveRedRight(dict);+					}+				} else {+					break _v2$2;+				}+			}+			return dict;+		}+	});+var $elm$core$Dict$removeMin = function (dict) {+	if ((dict.$ === -1) && (dict.d.$ === -1)) {+		var color = dict.a;+		var key = dict.b;+		var value = dict.c;+		var left = dict.d;+		var lColor = left.a;+		var lLeft = left.d;+		var right = dict.e;+		if (lColor === 1) {+			if ((lLeft.$ === -1) && (!lLeft.a)) {+				var _v3 = lLeft.a;+				return A5(+					$elm$core$Dict$RBNode_elm_builtin,+					color,+					key,+					value,+					$elm$core$Dict$removeMin(left),+					right);+			} else {+				var _v4 = $elm$core$Dict$moveRedLeft(dict);+				if (_v4.$ === -1) {+					var nColor = _v4.a;+					var nKey = _v4.b;+					var nValue = _v4.c;+					var nLeft = _v4.d;+					var nRight = _v4.e;+					return A5(+						$elm$core$Dict$balance,+						nColor,+						nKey,+						nValue,+						$elm$core$Dict$removeMin(nLeft),+						nRight);+				} else {+					return $elm$core$Dict$RBEmpty_elm_builtin;+				}+			}+		} else {+			return A5(+				$elm$core$Dict$RBNode_elm_builtin,+				color,+				key,+				value,+				$elm$core$Dict$removeMin(left),+				right);+		}+	} else {+		return $elm$core$Dict$RBEmpty_elm_builtin;+	}+};+var $elm$core$Dict$removeHelp = F2(+	function (targetKey, dict) {+		if (dict.$ === -2) {+			return $elm$core$Dict$RBEmpty_elm_builtin;+		} else {+			var color = dict.a;+			var key = dict.b;+			var value = dict.c;+			var left = dict.d;+			var right = dict.e;+			if (_Utils_cmp(targetKey, key) < 0) {+				if ((left.$ === -1) && (left.a === 1)) {+					var _v4 = left.a;+					var lLeft = left.d;+					if ((lLeft.$ === -1) && (!lLeft.a)) {+						var _v6 = lLeft.a;+						return A5(+							$elm$core$Dict$RBNode_elm_builtin,+							color,+							key,+							value,+							A2($elm$core$Dict$removeHelp, targetKey, left),+							right);+					} else {+						var _v7 = $elm$core$Dict$moveRedLeft(dict);+						if (_v7.$ === -1) {+							var nColor = _v7.a;+							var nKey = _v7.b;+							var nValue = _v7.c;+							var nLeft = _v7.d;+							var nRight = _v7.e;+							return A5(+								$elm$core$Dict$balance,+								nColor,+								nKey,+								nValue,+								A2($elm$core$Dict$removeHelp, targetKey, nLeft),+								nRight);+						} else {+							return $elm$core$Dict$RBEmpty_elm_builtin;+						}+					}+				} else {+					return A5(+						$elm$core$Dict$RBNode_elm_builtin,+						color,+						key,+						value,+						A2($elm$core$Dict$removeHelp, targetKey, left),+						right);+				}+			} else {+				return A2(+					$elm$core$Dict$removeHelpEQGT,+					targetKey,+					A7($elm$core$Dict$removeHelpPrepEQGT, targetKey, dict, color, key, value, left, right));+			}+		}+	});+var $elm$core$Dict$removeHelpEQGT = F2(+	function (targetKey, dict) {+		if (dict.$ === -1) {+			var color = dict.a;+			var key = dict.b;+			var value = dict.c;+			var left = dict.d;+			var right = dict.e;+			if (_Utils_eq(targetKey, key)) {+				var _v1 = $elm$core$Dict$getMin(right);+				if (_v1.$ === -1) {+					var minKey = _v1.b;+					var minValue = _v1.c;+					return A5(+						$elm$core$Dict$balance,+						color,+						minKey,+						minValue,+						left,+						$elm$core$Dict$removeMin(right));+				} else {+					return $elm$core$Dict$RBEmpty_elm_builtin;+				}+			} else {+				return A5(+					$elm$core$Dict$balance,+					color,+					key,+					value,+					left,+					A2($elm$core$Dict$removeHelp, targetKey, right));+			}+		} else {+			return $elm$core$Dict$RBEmpty_elm_builtin;+		}+	});+var $elm$core$Dict$remove = F2(+	function (key, dict) {+		var _v0 = A2($elm$core$Dict$removeHelp, key, dict);+		if ((_v0.$ === -1) && (!_v0.a)) {+			var _v1 = _v0.a;+			var k = _v0.b;+			var v = _v0.c;+			var l = _v0.d;+			var r = _v0.e;+			return A5($elm$core$Dict$RBNode_elm_builtin, 1, k, v, l, r);+		} else {+			var x = _v0;+			return x;+		}+	});+var $elm$core$Dict$update = F3(+	function (targetKey, alter, dictionary) {+		var _v0 = alter(+			A2($elm$core$Dict$get, targetKey, dictionary));+		if (!_v0.$) {+			var value = _v0.a;+			return A3($elm$core$Dict$insert, targetKey, value, dictionary);+		} else {+			return A2($elm$core$Dict$remove, targetKey, dictionary);+		}+	});+var $elm$core$Basics$composeR = F3(+	function (f, g, x) {+		return g(+			f(x));+	});+var $elm$http$Http$expectStringResponse = F2(+	function (toMsg, toResult) {+		return A3(+			_Http_expect,+			'',+			$elm$core$Basics$identity,+			A2($elm$core$Basics$composeR, toResult, toMsg));+	});+var $elm$core$Result$mapError = F2(+	function (f, result) {+		if (!result.$) {+			var v = result.a;+			return $elm$core$Result$Ok(v);+		} else {+			var e = result.a;+			return $elm$core$Result$Err(+				f(e));+		}+	});+var $elm$http$Http$BadBody = function (a) {+	return {$: 4, a: a};+};+var $elm$http$Http$BadStatus = function (a) {+	return {$: 3, a: a};+};+var $elm$http$Http$BadUrl = function (a) {+	return {$: 0, a: a};+};+var $elm$http$Http$NetworkError = {$: 2};+var $elm$http$Http$Timeout = {$: 1};+var $elm$http$Http$resolve = F2(+	function (toResult, response) {+		switch (response.$) {+			case 0:+				var url = response.a;+				return $elm$core$Result$Err(+					$elm$http$Http$BadUrl(url));+			case 1:+				return $elm$core$Result$Err($elm$http$Http$Timeout);+			case 2:+				return $elm$core$Result$Err($elm$http$Http$NetworkError);+			case 3:+				var metadata = response.a;+				return $elm$core$Result$Err(+					$elm$http$Http$BadStatus(metadata.du));+			default:+				var body = response.b;+				return A2(+					$elm$core$Result$mapError,+					$elm$http$Http$BadBody,+					toResult(body));+		}+	});+var $elm$http$Http$expectJson = F2(+	function (toMsg, decoder) {+		return A2(+			$elm$http$Http$expectStringResponse,+			toMsg,+			$elm$http$Http$resolve(+				function (string) {+					return A2(+						$elm$core$Result$mapError,+						$elm$json$Json$Decode$errorToString,+						A2($elm$json$Json$Decode$decodeString, decoder, string));+				}));+	});+var $author$project$Main$Percentage = $elm$core$Basics$identity;+var $elm$core$Dict$fromList = function (assocs) {+	return A3(+		$elm$core$List$foldl,+		F2(+			function (_v0, dict) {+				var key = _v0.a;+				var value = _v0.b;+				return A3($elm$core$Dict$insert, key, value, dict);+			}),+		$elm$core$Dict$empty,+		assocs);+};+var $elm$json$Json$Decode$keyValuePairs = _Json_decodeKeyValuePairs;+var $elm$json$Json$Decode$dict = function (decoder) {+	return A2(+		$elm$json$Json$Decode$map,+		$elm$core$Dict$fromList,+		$elm$json$Json$Decode$keyValuePairs(decoder));+};+var $elm$json$Json$Decode$int = _Json_decodeInt;+var $author$project$Main$flagsDecoder = $elm$json$Json$Decode$dict(+	A2($elm$json$Json$Decode$map, $elm$core$Basics$identity, $elm$json$Json$Decode$int));+var $elm$http$Http$emptyBody = _Http_emptyBody;+var $elm$http$Http$Request = function (a) {+	return {$: 1, a: a};+};+var $elm$http$Http$State = F2(+	function (reqs, subs) {+		return {ch: reqs, cw: subs};+	});+var $elm$http$Http$init = $elm$core$Task$succeed(+	A2($elm$http$Http$State, $elm$core$Dict$empty, _List_Nil));+var $elm$http$Http$updateReqs = F3(+	function (router, cmds, reqs) {+		updateReqs:+		while (true) {+			if (!cmds.b) {+				return $elm$core$Task$succeed(reqs);+			} else {+				var cmd = cmds.a;+				var otherCmds = cmds.b;+				if (!cmd.$) {+					var tracker = cmd.a;+					var _v2 = A2($elm$core$Dict$get, tracker, reqs);+					if (_v2.$ === 1) {+						var $temp$router = router,+							$temp$cmds = otherCmds,+							$temp$reqs = reqs;+						router = $temp$router;+						cmds = $temp$cmds;+						reqs = $temp$reqs;+						continue updateReqs;+					} else {+						var pid = _v2.a;+						return A2(+							$elm$core$Task$andThen,+							function (_v3) {+								return A3(+									$elm$http$Http$updateReqs,+									router,+									otherCmds,+									A2($elm$core$Dict$remove, tracker, reqs));+							},+							$elm$core$Process$kill(pid));+					}+				} else {+					var req = cmd.a;+					return A2(+						$elm$core$Task$andThen,+						function (pid) {+							var _v4 = req.dB;+							if (_v4.$ === 1) {+								return A3($elm$http$Http$updateReqs, router, otherCmds, reqs);+							} else {+								var tracker = _v4.a;+								return A3(+									$elm$http$Http$updateReqs,+									router,+									otherCmds,+									A3($elm$core$Dict$insert, tracker, pid, reqs));+							}+						},+						$elm$core$Process$spawn(+							A3(+								_Http_toTask,+								router,+								$elm$core$Platform$sendToApp(router),+								req)));+				}+			}+		}+	});+var $elm$http$Http$onEffects = F4(+	function (router, cmds, subs, state) {+		return A2(+			$elm$core$Task$andThen,+			function (reqs) {+				return $elm$core$Task$succeed(+					A2($elm$http$Http$State, reqs, subs));+			},+			A3($elm$http$Http$updateReqs, router, cmds, state.ch));+	});+var $elm$core$List$maybeCons = F3(+	function (f, mx, xs) {+		var _v0 = f(mx);+		if (!_v0.$) {+			var x = _v0.a;+			return A2($elm$core$List$cons, x, xs);+		} else {+			return xs;+		}+	});+var $elm$core$List$filterMap = F2(+	function (f, xs) {+		return A3(+			$elm$core$List$foldr,+			$elm$core$List$maybeCons(f),+			_List_Nil,+			xs);+	});+var $elm$http$Http$maybeSend = F4(+	function (router, desiredTracker, progress, _v0) {+		var actualTracker = _v0.a;+		var toMsg = _v0.b;+		return _Utils_eq(desiredTracker, actualTracker) ? $elm$core$Maybe$Just(+			A2(+				$elm$core$Platform$sendToApp,+				router,+				toMsg(progress))) : $elm$core$Maybe$Nothing;+	});+var $elm$http$Http$onSelfMsg = F3(+	function (router, _v0, state) {+		var tracker = _v0.a;+		var progress = _v0.b;+		return A2(+			$elm$core$Task$andThen,+			function (_v1) {+				return $elm$core$Task$succeed(state);+			},+			$elm$core$Task$sequence(+				A2(+					$elm$core$List$filterMap,+					A3($elm$http$Http$maybeSend, router, tracker, progress),+					state.cw)));+	});+var $elm$http$Http$Cancel = function (a) {+	return {$: 0, a: a};+};+var $elm$http$Http$cmdMap = F2(+	function (func, cmd) {+		if (!cmd.$) {+			var tracker = cmd.a;+			return $elm$http$Http$Cancel(tracker);+		} else {+			var r = cmd.a;+			return $elm$http$Http$Request(+				{+					cK: r.cK,+					bA: r.bA,+					bM: A2(_Http_mapExpect, func, r.bM),+					c$: r.c$,+					c6: r.c6,+					dz: r.dz,+					dB: r.dB,+					cC: r.cC+				});+		}+	});+var $elm$http$Http$MySub = F2(+	function (a, b) {+		return {$: 0, a: a, b: b};+	});+var $elm$http$Http$subMap = F2(+	function (func, _v0) {+		var tracker = _v0.a;+		var toMsg = _v0.b;+		return A2(+			$elm$http$Http$MySub,+			tracker,+			A2($elm$core$Basics$composeR, toMsg, func));+	});+_Platform_effectManagers['Http'] = _Platform_createManager($elm$http$Http$init, $elm$http$Http$onEffects, $elm$http$Http$onSelfMsg, $elm$http$Http$cmdMap, $elm$http$Http$subMap);+var $elm$http$Http$command = _Platform_leaf('Http');+var $elm$http$Http$subscription = _Platform_leaf('Http');+var $elm$http$Http$request = function (r) {+	return $elm$http$Http$command(+		$elm$http$Http$Request(+			{cK: false, bA: r.bA, bM: r.bM, c$: r.c$, c6: r.c6, dz: r.dz, dB: r.dB, cC: r.cC}));+};+var $elm$http$Http$get = function (r) {+	return $elm$http$Http$request(+		{bA: $elm$http$Http$emptyBody, bM: r.bM, c$: _List_Nil, c6: 'GET', dz: $elm$core$Maybe$Nothing, dB: $elm$core$Maybe$Nothing, cC: r.cC});+};+var $elm$url$Url$Builder$toQueryPair = function (_v0) {+	var key = _v0.a;+	var value = _v0.b;+	return key + ('=' + value);+};+var $elm$url$Url$Builder$toQuery = function (parameters) {+	if (!parameters.b) {+		return '';+	} else {+		return '?' + A2(+			$elm$core$String$join,+			'&',+			A2($elm$core$List$map, $elm$url$Url$Builder$toQueryPair, parameters));+	}+};+var $elm$url$Url$Builder$relative = F2(+	function (pathSegments, parameters) {+		return _Utils_ap(+			A2($elm$core$String$join, '/', pathSegments),+			$elm$url$Url$Builder$toQuery(parameters));+	});+var $author$project$Main$sendLoadFlagsRequest = function (rootPath) {+	return $elm$http$Http$get(+		{+			bM: A2(+				$elm$http$Http$expectJson,+				function (res) {+					if (!res.$) {+						var x = res.a;+						return $author$project$Main$LoadedFlags(x);+					} else {+						return $author$project$Main$LoadedFlags($elm$core$Dict$empty);+					}+				},+				$author$project$Main$flagsDecoder),+			cC: A2(+				$elm$url$Url$Builder$relative,+				_Utils_ap(+					rootPath,+					_List_fromArray(+						['flags'])),+				_List_Nil)+		});+};+var $elm$core$List$isEmpty = function (xs) {+	if (!xs.b) {+		return true;+	} else {+		return false;+	}+};+var $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles = F2(+	function (_v0, styles) {+		var newStyles = _v0.b;+		var classname = _v0.c;+		return $elm$core$List$isEmpty(newStyles) ? styles : A3($elm$core$Dict$insert, classname, newStyles, styles);+	});+var $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute = function (_v0) {+	var val = _v0.a;+	return val;+};+var $elm$virtual_dom$VirtualDom$keyedNode = function (tag) {+	return _VirtualDom_keyedNode(+		_VirtualDom_noScript(tag));+};+var $elm$virtual_dom$VirtualDom$keyedNodeNS = F2(+	function (namespace, tag) {+		return A2(+			_VirtualDom_keyedNodeNS,+			namespace,+			_VirtualDom_noScript(tag));+	});+var $elm$virtual_dom$VirtualDom$node = function (tag) {+	return _VirtualDom_node(+		_VirtualDom_noScript(tag));+};+var $elm$virtual_dom$VirtualDom$nodeNS = function (tag) {+	return _VirtualDom_nodeNS(+		_VirtualDom_noScript(tag));+};+var $rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml = F2(+	function (_v6, _v7) {+		var key = _v6.a;+		var html = _v6.b;+		var pairs = _v7.a;+		var styles = _v7.b;+		switch (html.$) {+			case 4:+				var vdom = html.a;+				return _Utils_Tuple2(+					A2(+						$elm$core$List$cons,+						_Utils_Tuple2(key, vdom),+						pairs),+					styles);+			case 0:+				var elemType = html.a;+				var properties = html.b;+				var children = html.c;+				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);+				var _v9 = A3(+					$elm$core$List$foldl,+					$rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml,+					_Utils_Tuple2(_List_Nil, combinedStyles),+					children);+				var childNodes = _v9.a;+				var finalStyles = _v9.b;+				var vdom = A3(+					$elm$virtual_dom$VirtualDom$node,+					elemType,+					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),+					$elm$core$List$reverse(childNodes));+				return _Utils_Tuple2(+					A2(+						$elm$core$List$cons,+						_Utils_Tuple2(key, vdom),+						pairs),+					finalStyles);+			case 1:+				var ns = html.a;+				var elemType = html.b;+				var properties = html.c;+				var children = html.d;+				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);+				var _v10 = A3(+					$elm$core$List$foldl,+					$rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml,+					_Utils_Tuple2(_List_Nil, combinedStyles),+					children);+				var childNodes = _v10.a;+				var finalStyles = _v10.b;+				var vdom = A4(+					$elm$virtual_dom$VirtualDom$nodeNS,+					ns,+					elemType,+					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),+					$elm$core$List$reverse(childNodes));+				return _Utils_Tuple2(+					A2(+						$elm$core$List$cons,+						_Utils_Tuple2(key, vdom),+						pairs),+					finalStyles);+			case 2:+				var elemType = html.a;+				var properties = html.b;+				var children = html.c;+				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);+				var _v11 = A3(+					$elm$core$List$foldl,+					$rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml,+					_Utils_Tuple2(_List_Nil, combinedStyles),+					children);+				var childNodes = _v11.a;+				var finalStyles = _v11.b;+				var vdom = A3(+					$elm$virtual_dom$VirtualDom$keyedNode,+					elemType,+					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),+					$elm$core$List$reverse(childNodes));+				return _Utils_Tuple2(+					A2(+						$elm$core$List$cons,+						_Utils_Tuple2(key, vdom),+						pairs),+					finalStyles);+			default:+				var ns = html.a;+				var elemType = html.b;+				var properties = html.c;+				var children = html.d;+				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);+				var _v12 = A3(+					$elm$core$List$foldl,+					$rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml,+					_Utils_Tuple2(_List_Nil, combinedStyles),+					children);+				var childNodes = _v12.a;+				var finalStyles = _v12.b;+				var vdom = A4(+					$elm$virtual_dom$VirtualDom$keyedNodeNS,+					ns,+					elemType,+					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),+					$elm$core$List$reverse(childNodes));+				return _Utils_Tuple2(+					A2(+						$elm$core$List$cons,+						_Utils_Tuple2(key, vdom),+						pairs),+					finalStyles);+		}+	});+var $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml = F2(+	function (html, _v0) {+		var nodes = _v0.a;+		var styles = _v0.b;+		switch (html.$) {+			case 4:+				var vdomNode = html.a;+				return _Utils_Tuple2(+					A2($elm$core$List$cons, vdomNode, nodes),+					styles);+			case 0:+				var elemType = html.a;+				var properties = html.b;+				var children = html.c;+				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);+				var _v2 = A3(+					$elm$core$List$foldl,+					$rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml,+					_Utils_Tuple2(_List_Nil, combinedStyles),+					children);+				var childNodes = _v2.a;+				var finalStyles = _v2.b;+				var vdomNode = A3(+					$elm$virtual_dom$VirtualDom$node,+					elemType,+					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),+					$elm$core$List$reverse(childNodes));+				return _Utils_Tuple2(+					A2($elm$core$List$cons, vdomNode, nodes),+					finalStyles);+			case 1:+				var ns = html.a;+				var elemType = html.b;+				var properties = html.c;+				var children = html.d;+				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);+				var _v3 = A3(+					$elm$core$List$foldl,+					$rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml,+					_Utils_Tuple2(_List_Nil, combinedStyles),+					children);+				var childNodes = _v3.a;+				var finalStyles = _v3.b;+				var vdomNode = A4(+					$elm$virtual_dom$VirtualDom$nodeNS,+					ns,+					elemType,+					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),+					$elm$core$List$reverse(childNodes));+				return _Utils_Tuple2(+					A2($elm$core$List$cons, vdomNode, nodes),+					finalStyles);+			case 2:+				var elemType = html.a;+				var properties = html.b;+				var children = html.c;+				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);+				var _v4 = A3(+					$elm$core$List$foldl,+					$rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml,+					_Utils_Tuple2(_List_Nil, combinedStyles),+					children);+				var childNodes = _v4.a;+				var finalStyles = _v4.b;+				var vdomNode = A3(+					$elm$virtual_dom$VirtualDom$keyedNode,+					elemType,+					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),+					$elm$core$List$reverse(childNodes));+				return _Utils_Tuple2(+					A2($elm$core$List$cons, vdomNode, nodes),+					finalStyles);+			default:+				var ns = html.a;+				var elemType = html.b;+				var properties = html.c;+				var children = html.d;+				var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties);+				var _v5 = A3(+					$elm$core$List$foldl,+					$rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml,+					_Utils_Tuple2(_List_Nil, combinedStyles),+					children);+				var childNodes = _v5.a;+				var finalStyles = _v5.b;+				var vdomNode = A4(+					$elm$virtual_dom$VirtualDom$keyedNodeNS,+					ns,+					elemType,+					A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties),+					$elm$core$List$reverse(childNodes));+				return _Utils_Tuple2(+					A2($elm$core$List$cons, vdomNode, nodes),+					finalStyles);+		}+	});+var $elm$core$Dict$singleton = F2(+	function (key, value) {+		return A5($elm$core$Dict$RBNode_elm_builtin, 1, key, value, $elm$core$Dict$RBEmpty_elm_builtin, $elm$core$Dict$RBEmpty_elm_builtin);+	});+var $rtfeldman$elm_css$VirtualDom$Styled$stylesFromPropertiesHelp = F2(+	function (candidate, properties) {+		stylesFromPropertiesHelp:+		while (true) {+			if (!properties.b) {+				return candidate;+			} else {+				var _v1 = properties.a;+				var styles = _v1.b;+				var classname = _v1.c;+				var rest = properties.b;+				if ($elm$core$String$isEmpty(classname)) {+					var $temp$candidate = candidate,+						$temp$properties = rest;+					candidate = $temp$candidate;+					properties = $temp$properties;+					continue stylesFromPropertiesHelp;+				} else {+					var $temp$candidate = $elm$core$Maybe$Just(+						_Utils_Tuple2(classname, styles)),+						$temp$properties = rest;+					candidate = $temp$candidate;+					properties = $temp$properties;+					continue stylesFromPropertiesHelp;+				}+			}+		}+	});+var $rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties = function (properties) {+	var _v0 = A2($rtfeldman$elm_css$VirtualDom$Styled$stylesFromPropertiesHelp, $elm$core$Maybe$Nothing, properties);+	if (_v0.$ === 1) {+		return $elm$core$Dict$empty;+	} else {+		var _v1 = _v0.a;+		var classname = _v1.a;+		var styles = _v1.b;+		return A2($elm$core$Dict$singleton, classname, styles);+	}+};+var $elm$core$List$singleton = function (value) {+	return _List_fromArray(+		[value]);+};+var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text;+var $elm$core$List$any = F2(+	function (isOkay, list) {+		any:+		while (true) {+			if (!list.b) {+				return false;+			} else {+				var x = list.a;+				var xs = list.b;+				if (isOkay(x)) {+					return true;+				} else {+					var $temp$isOkay = isOkay,+						$temp$list = xs;+					isOkay = $temp$isOkay;+					list = $temp$list;+					continue any;+				}+			}+		}+	});+var $elm$core$Basics$not = _Basics_not;+var $elm$core$List$all = F2(+	function (isOkay, list) {+		return !A2(+			$elm$core$List$any,+			A2($elm$core$Basics$composeL, $elm$core$Basics$not, isOkay),+			list);+	});+var $rtfeldman$elm_css$Css$Structure$compactHelp = F2(+	function (declaration, _v0) {+		var keyframesByName = _v0.a;+		var declarations = _v0.b;+		switch (declaration.$) {+			case 0:+				var _v2 = declaration.a;+				var properties = _v2.c;+				return $elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(+					keyframesByName,+					A2($elm$core$List$cons, declaration, declarations));+			case 1:+				var styleBlocks = declaration.b;+				return A2(+					$elm$core$List$all,+					function (_v3) {+						var properties = _v3.c;+						return $elm$core$List$isEmpty(properties);+					},+					styleBlocks) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(+					keyframesByName,+					A2($elm$core$List$cons, declaration, declarations));+			case 2:+				var otherDeclarations = declaration.b;+				return $elm$core$List$isEmpty(otherDeclarations) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(+					keyframesByName,+					A2($elm$core$List$cons, declaration, declarations));+			case 3:+				return _Utils_Tuple2(+					keyframesByName,+					A2($elm$core$List$cons, declaration, declarations));+			case 4:+				var properties = declaration.b;+				return $elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(+					keyframesByName,+					A2($elm$core$List$cons, declaration, declarations));+			case 5:+				var properties = declaration.a;+				return $elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(+					keyframesByName,+					A2($elm$core$List$cons, declaration, declarations));+			case 6:+				var record = declaration.a;+				return $elm$core$String$isEmpty(record.cR) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(+					A3($elm$core$Dict$insert, record.c9, record.cR, keyframesByName),+					declarations);+			case 7:+				var properties = declaration.a;+				return $elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(+					keyframesByName,+					A2($elm$core$List$cons, declaration, declarations));+			case 8:+				var properties = declaration.a;+				return $elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(+					keyframesByName,+					A2($elm$core$List$cons, declaration, declarations));+			default:+				var tuples = declaration.a;+				return A2(+					$elm$core$List$all,+					function (_v4) {+						var properties = _v4.b;+						return $elm$core$List$isEmpty(properties);+					},+					tuples) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2(+					keyframesByName,+					A2($elm$core$List$cons, declaration, declarations));+		}+	});+var $rtfeldman$elm_css$Css$Structure$Keyframes = function (a) {+	return {$: 6, a: a};+};+var $elm$core$List$append = F2(+	function (xs, ys) {+		if (!ys.b) {+			return xs;+		} else {+			return A3($elm$core$List$foldr, $elm$core$List$cons, ys, xs);+		}+	});+var $rtfeldman$elm_css$Css$Structure$withKeyframeDeclarations = F2(+	function (keyframesByName, compactedDeclarations) {+		return A2(+			$elm$core$List$append,+			A2(+				$elm$core$List$map,+				function (_v0) {+					var name = _v0.a;+					var decl = _v0.b;+					return $rtfeldman$elm_css$Css$Structure$Keyframes(+						{cR: decl, c9: name});+				},+				$elm$core$Dict$toList(keyframesByName)),+			compactedDeclarations);+	});+var $rtfeldman$elm_css$Css$Structure$compactStylesheet = function (_v0) {+	var charset = _v0.bF;+	var imports = _v0.bW;+	var namespaces = _v0.b5;+	var declarations = _v0.cS;+	var _v1 = A3(+		$elm$core$List$foldr,+		$rtfeldman$elm_css$Css$Structure$compactHelp,+		_Utils_Tuple2($elm$core$Dict$empty, _List_Nil),+		declarations);+	var keyframesByName = _v1.a;+	var compactedDeclarations = _v1.b;+	var finalDeclarations = A2($rtfeldman$elm_css$Css$Structure$withKeyframeDeclarations, keyframesByName, compactedDeclarations);+	return {bF: charset, cS: finalDeclarations, bW: imports, b5: namespaces};+};+var $elm$core$Maybe$map = F2(+	function (f, maybe) {+		if (!maybe.$) {+			var value = maybe.a;+			return $elm$core$Maybe$Just(+				f(value));+		} else {+			return $elm$core$Maybe$Nothing;+		}+	});+var $elm$core$Maybe$withDefault = F2(+	function (_default, maybe) {+		if (!maybe.$) {+			var value = maybe.a;+			return value;+		} else {+			return _default;+		}+	});+var $rtfeldman$elm_css$Css$Structure$Output$charsetToString = function (charset) {+	return A2(+		$elm$core$Maybe$withDefault,+		'',+		A2(+			$elm$core$Maybe$map,+			function (str) {+				return '@charset \"' + (str + '\"');+			},+			charset));+};+var $elm$core$List$filter = F2(+	function (isGood, list) {+		return A3(+			$elm$core$List$foldr,+			F2(+				function (x, xs) {+					return isGood(x) ? A2($elm$core$List$cons, x, xs) : xs;+				}),+			_List_Nil,+			list);+	});+var $rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString = function (expression) {+	return '(' + (expression.bO + (A2(+		$elm$core$Maybe$withDefault,+		'',+		A2(+			$elm$core$Maybe$map,+			$elm$core$Basics$append(': '),+			expression.L)) + ')'));+};+var $rtfeldman$elm_css$Css$Structure$Output$mediaTypeToString = function (mediaType) {+	switch (mediaType) {+		case 0:+			return 'print';+		case 1:+			return 'screen';+		default:+			return 'speech';+	}+};+var $rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString = function (mediaQuery) {+	var prefixWith = F3(+		function (str, mediaType, expressions) {+			return str + (' ' + A2(+				$elm$core$String$join,+				' and ',+				A2(+					$elm$core$List$cons,+					$rtfeldman$elm_css$Css$Structure$Output$mediaTypeToString(mediaType),+					A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString, expressions))));+		});+	switch (mediaQuery.$) {+		case 0:+			var expressions = mediaQuery.a;+			return A2(+				$elm$core$String$join,+				' and ',+				A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString, expressions));+		case 1:+			var mediaType = mediaQuery.a;+			var expressions = mediaQuery.b;+			return A3(prefixWith, 'only', mediaType, expressions);+		case 2:+			var mediaType = mediaQuery.a;+			var expressions = mediaQuery.b;+			return A3(prefixWith, 'not', mediaType, expressions);+		default:+			var str = mediaQuery.a;+			return str;+	}+};+var $rtfeldman$elm_css$Css$Structure$Output$importMediaQueryToString = F2(+	function (name, mediaQuery) {+		return '@import \"' + (name + ($rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString(mediaQuery) + '\"'));+	});+var $rtfeldman$elm_css$Css$Structure$Output$importToString = function (_v0) {+	var name = _v0.a;+	var mediaQueries = _v0.b;+	return A2(+		$elm$core$String$join,+		'\n',+		A2(+			$elm$core$List$map,+			$rtfeldman$elm_css$Css$Structure$Output$importMediaQueryToString(name),+			mediaQueries));+};+var $rtfeldman$elm_css$Css$Structure$Output$namespaceToString = function (_v0) {+	var prefix = _v0.a;+	var str = _v0.b;+	return '@namespace ' + (prefix + ('\"' + (str + '\"')));+};+var $rtfeldman$elm_css$Css$Structure$Output$spaceIndent = '    ';+var $rtfeldman$elm_css$Css$Structure$Output$indent = function (str) {+	return _Utils_ap($rtfeldman$elm_css$Css$Structure$Output$spaceIndent, str);+};+var $rtfeldman$elm_css$Css$Structure$Output$noIndent = '';+var $rtfeldman$elm_css$Css$Structure$Output$emitProperty = function (str) {+	return str + ';';+};+var $rtfeldman$elm_css$Css$Structure$Output$emitProperties = function (properties) {+	return A2(+		$elm$core$String$join,+		'\n',+		A2(+			$elm$core$List$map,+			A2($elm$core$Basics$composeL, $rtfeldman$elm_css$Css$Structure$Output$indent, $rtfeldman$elm_css$Css$Structure$Output$emitProperty),+			properties));+};+var $elm$core$String$append = _String_append;+var $rtfeldman$elm_css$Css$Structure$Output$pseudoElementToString = function (_v0) {+	var str = _v0;+	return '::' + str;+};+var $rtfeldman$elm_css$Css$Structure$Output$combinatorToString = function (combinator) {+	switch (combinator) {+		case 0:+			return '+';+		case 1:+			return '~';+		case 2:+			return '>';+		default:+			return '';+	}+};+var $rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString = function (repeatableSimpleSelector) {+	switch (repeatableSimpleSelector.$) {+		case 0:+			var str = repeatableSimpleSelector.a;+			return '.' + str;+		case 1:+			var str = repeatableSimpleSelector.a;+			return '#' + str;+		case 2:+			var str = repeatableSimpleSelector.a;+			return ':' + str;+		default:+			var str = repeatableSimpleSelector.a;+			return '[' + (str + ']');+	}+};+var $rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString = function (simpleSelectorSequence) {+	switch (simpleSelectorSequence.$) {+		case 0:+			var str = simpleSelectorSequence.a;+			var repeatableSimpleSelectors = simpleSelectorSequence.b;+			return A2(+				$elm$core$String$join,+				'',+				A2(+					$elm$core$List$cons,+					str,+					A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors)));+		case 1:+			var repeatableSimpleSelectors = simpleSelectorSequence.a;+			return $elm$core$List$isEmpty(repeatableSimpleSelectors) ? '*' : A2(+				$elm$core$String$join,+				'',+				A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors));+		default:+			var str = simpleSelectorSequence.a;+			var repeatableSimpleSelectors = simpleSelectorSequence.b;+			return A2(+				$elm$core$String$join,+				'',+				A2(+					$elm$core$List$cons,+					str,+					A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors)));+	}+};+var $rtfeldman$elm_css$Css$Structure$Output$selectorChainToString = function (_v0) {+	var combinator = _v0.a;+	var sequence = _v0.b;+	return A2(+		$elm$core$String$join,+		' ',+		_List_fromArray(+			[+				$rtfeldman$elm_css$Css$Structure$Output$combinatorToString(combinator),+				$rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString(sequence)+			]));+};+var $rtfeldman$elm_css$Css$Structure$Output$selectorToString = function (_v0) {+	var simpleSelectorSequence = _v0.a;+	var chain = _v0.b;+	var pseudoElement = _v0.c;+	var segments = A2(+		$elm$core$List$cons,+		$rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString(simpleSelectorSequence),+		A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$selectorChainToString, chain));+	var pseudoElementsString = A2(+		$elm$core$String$join,+		'',+		_List_fromArray(+			[+				A2(+				$elm$core$Maybe$withDefault,+				'',+				A2($elm$core$Maybe$map, $rtfeldman$elm_css$Css$Structure$Output$pseudoElementToString, pseudoElement))+			]));+	return A2(+		$elm$core$String$append,+		A2(+			$elm$core$String$join,+			' ',+			A2(+				$elm$core$List$filter,+				A2($elm$core$Basics$composeL, $elm$core$Basics$not, $elm$core$String$isEmpty),+				segments)),+		pseudoElementsString);+};+var $rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock = F2(+	function (indentLevel, _v0) {+		var firstSelector = _v0.a;+		var otherSelectors = _v0.b;+		var properties = _v0.c;+		var selectorStr = A2(+			$elm$core$String$join,+			', ',+			A2(+				$elm$core$List$map,+				$rtfeldman$elm_css$Css$Structure$Output$selectorToString,+				A2($elm$core$List$cons, firstSelector, otherSelectors)));+		return A2(+			$elm$core$String$join,+			'',+			_List_fromArray(+				[+					selectorStr,+					' {\n',+					indentLevel,+					$rtfeldman$elm_css$Css$Structure$Output$emitProperties(properties),+					'\n',+					indentLevel,+					'}'+				]));+	});+var $rtfeldman$elm_css$Css$Structure$Output$prettyPrintDeclaration = function (decl) {+	switch (decl.$) {+		case 0:+			var styleBlock = decl.a;+			return A2($rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock, $rtfeldman$elm_css$Css$Structure$Output$noIndent, styleBlock);+		case 1:+			var mediaQueries = decl.a;+			var styleBlocks = decl.b;+			var query = A2(+				$elm$core$String$join,+				',\n',+				A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString, mediaQueries));+			var blocks = A2(+				$elm$core$String$join,+				'\n\n',+				A2(+					$elm$core$List$map,+					A2(+						$elm$core$Basics$composeL,+						$rtfeldman$elm_css$Css$Structure$Output$indent,+						$rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock($rtfeldman$elm_css$Css$Structure$Output$spaceIndent)),+					styleBlocks));+			return '@media ' + (query + (' {\n' + (blocks + '\n}')));+		case 2:+			return 'TODO';+		case 3:+			return 'TODO';+		case 4:+			return 'TODO';+		case 5:+			return 'TODO';+		case 6:+			var name = decl.a.c9;+			var declaration = decl.a.cR;+			return '@keyframes ' + (name + (' {\n' + (declaration + '\n}')));+		case 7:+			return 'TODO';+		case 8:+			return 'TODO';+		default:+			return 'TODO';+	}+};+var $rtfeldman$elm_css$Css$Structure$Output$prettyPrint = function (_v0) {+	var charset = _v0.bF;+	var imports = _v0.bW;+	var namespaces = _v0.b5;+	var declarations = _v0.cS;+	return A2(+		$elm$core$String$join,+		'\n\n',+		A2(+			$elm$core$List$filter,+			A2($elm$core$Basics$composeL, $elm$core$Basics$not, $elm$core$String$isEmpty),+			_List_fromArray(+				[+					$rtfeldman$elm_css$Css$Structure$Output$charsetToString(charset),+					A2(+					$elm$core$String$join,+					'\n',+					A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$importToString, imports)),+					A2(+					$elm$core$String$join,+					'\n',+					A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$namespaceToString, namespaces)),+					A2(+					$elm$core$String$join,+					'\n\n',+					A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$prettyPrintDeclaration, declarations))+				])));+};+var $elm$core$List$concat = function (lists) {+	return A3($elm$core$List$foldr, $elm$core$List$append, _List_Nil, lists);+};+var $elm$core$List$concatMap = F2(+	function (f, list) {+		return $elm$core$List$concat(+			A2($elm$core$List$map, f, list));+	});+var $rtfeldman$elm_css$Css$Structure$CounterStyle = function (a) {+	return {$: 8, a: a};+};+var $rtfeldman$elm_css$Css$Structure$FontFace = function (a) {+	return {$: 5, a: a};+};+var $rtfeldman$elm_css$Css$Structure$PageRule = F2(+	function (a, b) {+		return {$: 4, a: a, b: b};+	});+var $rtfeldman$elm_css$Css$Structure$Selector = F3(+	function (a, b, c) {+		return {$: 0, a: a, b: b, c: c};+	});+var $rtfeldman$elm_css$Css$Structure$StyleBlock = F3(+	function (a, b, c) {+		return {$: 0, a: a, b: b, c: c};+	});+var $rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration = function (a) {+	return {$: 0, a: a};+};+var $rtfeldman$elm_css$Css$Structure$SupportsRule = F2(+	function (a, b) {+		return {$: 2, a: a, b: b};+	});+var $rtfeldman$elm_css$Css$Structure$Viewport = function (a) {+	return {$: 7, a: a};+};+var $rtfeldman$elm_css$Css$Structure$MediaRule = F2(+	function (a, b) {+		return {$: 1, a: a, b: b};+	});+var $rtfeldman$elm_css$Css$Structure$mapLast = F2(+	function (update, list) {+		if (!list.b) {+			return list;+		} else {+			if (!list.b.b) {+				var only = list.a;+				return _List_fromArray(+					[+						update(only)+					]);+			} else {+				var first = list.a;+				var rest = list.b;+				return A2(+					$elm$core$List$cons,+					first,+					A2($rtfeldman$elm_css$Css$Structure$mapLast, update, rest));+			}+		}+	});+var $rtfeldman$elm_css$Css$Structure$withPropertyAppended = F2(+	function (property, _v0) {+		var firstSelector = _v0.a;+		var otherSelectors = _v0.b;+		var properties = _v0.c;+		return A3(+			$rtfeldman$elm_css$Css$Structure$StyleBlock,+			firstSelector,+			otherSelectors,+			_Utils_ap(+				properties,+				_List_fromArray(+					[property])));+	});+var $rtfeldman$elm_css$Css$Structure$appendProperty = F2(+	function (property, declarations) {+		if (!declarations.b) {+			return declarations;+		} else {+			if (!declarations.b.b) {+				switch (declarations.a.$) {+					case 0:+						var styleBlock = declarations.a.a;+						return _List_fromArray(+							[+								$rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration(+								A2($rtfeldman$elm_css$Css$Structure$withPropertyAppended, property, styleBlock))+							]);+					case 1:+						var _v1 = declarations.a;+						var mediaQueries = _v1.a;+						var styleBlocks = _v1.b;+						return _List_fromArray(+							[+								A2(+								$rtfeldman$elm_css$Css$Structure$MediaRule,+								mediaQueries,+								A2(+									$rtfeldman$elm_css$Css$Structure$mapLast,+									$rtfeldman$elm_css$Css$Structure$withPropertyAppended(property),+									styleBlocks))+							]);+					default:+						return declarations;+				}+			} else {+				var first = declarations.a;+				var rest = declarations.b;+				return A2(+					$elm$core$List$cons,+					first,+					A2($rtfeldman$elm_css$Css$Structure$appendProperty, property, rest));+			}+		}+	});+var $rtfeldman$elm_css$Css$Structure$appendToLastSelector = F2(+	function (f, styleBlock) {+		if (!styleBlock.b.b) {+			var only = styleBlock.a;+			var properties = styleBlock.c;+			return _List_fromArray(+				[+					A3($rtfeldman$elm_css$Css$Structure$StyleBlock, only, _List_Nil, properties),+					A3(+					$rtfeldman$elm_css$Css$Structure$StyleBlock,+					f(only),+					_List_Nil,+					_List_Nil)+				]);+		} else {+			var first = styleBlock.a;+			var rest = styleBlock.b;+			var properties = styleBlock.c;+			var newRest = A2($elm$core$List$map, f, rest);+			var newFirst = f(first);+			return _List_fromArray(+				[+					A3($rtfeldman$elm_css$Css$Structure$StyleBlock, first, rest, properties),+					A3($rtfeldman$elm_css$Css$Structure$StyleBlock, newFirst, newRest, _List_Nil)+				]);+		}+	});+var $rtfeldman$elm_css$Css$Structure$applyPseudoElement = F2(+	function (pseudo, _v0) {+		var sequence = _v0.a;+		var selectors = _v0.b;+		return A3(+			$rtfeldman$elm_css$Css$Structure$Selector,+			sequence,+			selectors,+			$elm$core$Maybe$Just(pseudo));+	});+var $rtfeldman$elm_css$Css$Structure$appendPseudoElementToLastSelector = F2(+	function (pseudo, styleBlock) {+		return A2(+			$rtfeldman$elm_css$Css$Structure$appendToLastSelector,+			$rtfeldman$elm_css$Css$Structure$applyPseudoElement(pseudo),+			styleBlock);+	});+var $rtfeldman$elm_css$Css$Structure$CustomSelector = F2(+	function (a, b) {+		return {$: 2, a: a, b: b};+	});+var $rtfeldman$elm_css$Css$Structure$TypeSelectorSequence = F2(+	function (a, b) {+		return {$: 0, a: a, b: b};+	});+var $rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence = function (a) {+	return {$: 1, a: a};+};+var $rtfeldman$elm_css$Css$Structure$appendRepeatable = F2(+	function (selector, sequence) {+		switch (sequence.$) {+			case 0:+				var typeSelector = sequence.a;+				var list = sequence.b;+				return A2(+					$rtfeldman$elm_css$Css$Structure$TypeSelectorSequence,+					typeSelector,+					_Utils_ap(+						list,+						_List_fromArray(+							[selector])));+			case 1:+				var list = sequence.a;+				return $rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence(+					_Utils_ap(+						list,+						_List_fromArray(+							[selector])));+			default:+				var str = sequence.a;+				var list = sequence.b;+				return A2(+					$rtfeldman$elm_css$Css$Structure$CustomSelector,+					str,+					_Utils_ap(+						list,+						_List_fromArray(+							[selector])));+		}+	});+var $rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator = F2(+	function (selector, list) {+		if (!list.b) {+			return _List_Nil;+		} else {+			if (!list.b.b) {+				var _v1 = list.a;+				var combinator = _v1.a;+				var sequence = _v1.b;+				return _List_fromArray(+					[+						_Utils_Tuple2(+						combinator,+						A2($rtfeldman$elm_css$Css$Structure$appendRepeatable, selector, sequence))+					]);+			} else {+				var first = list.a;+				var rest = list.b;+				return A2(+					$elm$core$List$cons,+					first,+					A2($rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator, selector, rest));+			}+		}+	});+var $rtfeldman$elm_css$Css$Structure$appendRepeatableSelector = F2(+	function (repeatableSimpleSelector, selector) {+		if (!selector.b.b) {+			var sequence = selector.a;+			var pseudoElement = selector.c;+			return A3(+				$rtfeldman$elm_css$Css$Structure$Selector,+				A2($rtfeldman$elm_css$Css$Structure$appendRepeatable, repeatableSimpleSelector, sequence),+				_List_Nil,+				pseudoElement);+		} else {+			var firstSelector = selector.a;+			var tuples = selector.b;+			var pseudoElement = selector.c;+			return A3(+				$rtfeldman$elm_css$Css$Structure$Selector,+				firstSelector,+				A2($rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator, repeatableSimpleSelector, tuples),+				pseudoElement);+		}+	});+var $rtfeldman$elm_css$Css$Structure$appendRepeatableToLastSelector = F2(+	function (selector, styleBlock) {+		return A2(+			$rtfeldman$elm_css$Css$Structure$appendToLastSelector,+			$rtfeldman$elm_css$Css$Structure$appendRepeatableSelector(selector),+			styleBlock);+	});+var $rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors = function (declarations) {+	collectSelectors:+	while (true) {+		if (!declarations.b) {+			return _List_Nil;+		} else {+			if (!declarations.a.$) {+				var _v1 = declarations.a.a;+				var firstSelector = _v1.a;+				var otherSelectors = _v1.b;+				var rest = declarations.b;+				return _Utils_ap(+					A2($elm$core$List$cons, firstSelector, otherSelectors),+					$rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(rest));+			} else {+				var rest = declarations.b;+				var $temp$declarations = rest;+				declarations = $temp$declarations;+				continue collectSelectors;+			}+		}+	}+};+var $rtfeldman$elm_css$Css$Structure$DocumentRule = F5(+	function (a, b, c, d, e) {+		return {$: 3, a: a, b: b, c: c, d: d, e: e};+	});+var $rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock = F2(+	function (update, declarations) {+		_v0$12:+		while (true) {+			if (!declarations.b) {+				return declarations;+			} else {+				if (!declarations.b.b) {+					switch (declarations.a.$) {+						case 0:+							var styleBlock = declarations.a.a;+							return A2(+								$elm$core$List$map,+								$rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration,+								update(styleBlock));+						case 1:+							if (declarations.a.b.b) {+								if (!declarations.a.b.b.b) {+									var _v1 = declarations.a;+									var mediaQueries = _v1.a;+									var _v2 = _v1.b;+									var styleBlock = _v2.a;+									return _List_fromArray(+										[+											A2(+											$rtfeldman$elm_css$Css$Structure$MediaRule,+											mediaQueries,+											update(styleBlock))+										]);+								} else {+									var _v3 = declarations.a;+									var mediaQueries = _v3.a;+									var _v4 = _v3.b;+									var first = _v4.a;+									var rest = _v4.b;+									var _v5 = A2(+										$rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock,+										update,+										_List_fromArray(+											[+												A2($rtfeldman$elm_css$Css$Structure$MediaRule, mediaQueries, rest)+											]));+									if ((_v5.b && (_v5.a.$ === 1)) && (!_v5.b.b)) {+										var _v6 = _v5.a;+										var newMediaQueries = _v6.a;+										var newStyleBlocks = _v6.b;+										return _List_fromArray(+											[+												A2(+												$rtfeldman$elm_css$Css$Structure$MediaRule,+												newMediaQueries,+												A2($elm$core$List$cons, first, newStyleBlocks))+											]);+									} else {+										var newDeclarations = _v5;+										return newDeclarations;+									}+								}+							} else {+								break _v0$12;+							}+						case 2:+							var _v7 = declarations.a;+							var str = _v7.a;+							var nestedDeclarations = _v7.b;+							return _List_fromArray(+								[+									A2(+									$rtfeldman$elm_css$Css$Structure$SupportsRule,+									str,+									A2($rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, update, nestedDeclarations))+								]);+						case 3:+							var _v8 = declarations.a;+							var str1 = _v8.a;+							var str2 = _v8.b;+							var str3 = _v8.c;+							var str4 = _v8.d;+							var styleBlock = _v8.e;+							return A2(+								$elm$core$List$map,+								A4($rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4),+								update(styleBlock));+						case 4:+							var _v9 = declarations.a;+							return declarations;+						case 5:+							return declarations;+						case 6:+							return declarations;+						case 7:+							return declarations;+						case 8:+							return declarations;+						default:+							return declarations;+					}+				} else {+					break _v0$12;+				}+			}+		}+		var first = declarations.a;+		var rest = declarations.b;+		return A2(+			$elm$core$List$cons,+			first,+			A2($rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, update, rest));+	});+var $elm$core$String$cons = _String_cons;+var $rtfeldman$elm_css$ElmCssVendor$Murmur3$HashData = F4(+	function (shift, seed, hash, charsProcessed) {+		return {ah: charsProcessed, an: hash, A: seed, as: shift};+	});+var $rtfeldman$elm_css$ElmCssVendor$Murmur3$c1 = 3432918353;+var $rtfeldman$elm_css$ElmCssVendor$Murmur3$c2 = 461845907;+var $elm$core$Bitwise$and = _Bitwise_and;+var $elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy;+var $elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy;+var $rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy = F2(+	function (b, a) {+		return ((a & 65535) * b) + ((((a >>> 16) * b) & 65535) << 16);+	});+var $elm$core$Basics$neq = _Utils_notEqual;+var $elm$core$Bitwise$or = _Bitwise_or;+var $rtfeldman$elm_css$ElmCssVendor$Murmur3$rotlBy = F2(+	function (b, a) {+		return (a << b) | (a >>> (32 - b));+	});+var $elm$core$Bitwise$xor = _Bitwise_xor;+var $rtfeldman$elm_css$ElmCssVendor$Murmur3$finalize = function (data) {+	var acc = (!(!data.an)) ? (data.A ^ A2(+		$rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy,+		$rtfeldman$elm_css$ElmCssVendor$Murmur3$c2,+		A2(+			$rtfeldman$elm_css$ElmCssVendor$Murmur3$rotlBy,+			15,+			A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy, $rtfeldman$elm_css$ElmCssVendor$Murmur3$c1, data.an)))) : data.A;+	var h0 = acc ^ data.ah;+	var h1 = A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy, 2246822507, h0 ^ (h0 >>> 16));+	var h2 = A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy, 3266489909, h1 ^ (h1 >>> 13));+	return (h2 ^ (h2 >>> 16)) >>> 0;+};+var $elm$core$String$foldl = _String_foldl;+var $rtfeldman$elm_css$ElmCssVendor$Murmur3$mix = F2(+	function (h1, k1) {+		return A2(+			$rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy,+			5,+			A2(+				$rtfeldman$elm_css$ElmCssVendor$Murmur3$rotlBy,+				13,+				h1 ^ A2(+					$rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy,+					$rtfeldman$elm_css$ElmCssVendor$Murmur3$c2,+					A2(+						$rtfeldman$elm_css$ElmCssVendor$Murmur3$rotlBy,+						15,+						A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy, $rtfeldman$elm_css$ElmCssVendor$Murmur3$c1, k1))))) + 3864292196;+	});+var $rtfeldman$elm_css$ElmCssVendor$Murmur3$hashFold = F2(+	function (c, data) {+		var res = data.an | ((255 & $elm$core$Char$toCode(c)) << data.as);+		var _v0 = data.as;+		if (_v0 === 24) {+			return {+				ah: data.ah + 1,+				an: 0,+				A: A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$mix, data.A, res),+				as: 0+			};+		} else {+			return {ah: data.ah + 1, an: res, A: data.A, as: data.as + 8};+		}+	});+var $rtfeldman$elm_css$ElmCssVendor$Murmur3$hashString = F2(+	function (seed, str) {+		return $rtfeldman$elm_css$ElmCssVendor$Murmur3$finalize(+			A3(+				$elm$core$String$foldl,+				$rtfeldman$elm_css$ElmCssVendor$Murmur3$hashFold,+				A4($rtfeldman$elm_css$ElmCssVendor$Murmur3$HashData, 0, seed, 0, 0),+				str));+	});+var $rtfeldman$elm_css$Hash$murmurSeed = 15739;+var $elm$core$String$fromList = _String_fromList;+var $elm$core$Basics$negate = function (n) {+	return -n;+};+var $elm$core$Basics$modBy = _Basics_modBy;+var $rtfeldman$elm_hex$Hex$unsafeToDigit = function (num) {+	unsafeToDigit:+	while (true) {+		switch (num) {+			case 0:+				return '0';+			case 1:+				return '1';+			case 2:+				return '2';+			case 3:+				return '3';+			case 4:+				return '4';+			case 5:+				return '5';+			case 6:+				return '6';+			case 7:+				return '7';+			case 8:+				return '8';+			case 9:+				return '9';+			case 10:+				return 'a';+			case 11:+				return 'b';+			case 12:+				return 'c';+			case 13:+				return 'd';+			case 14:+				return 'e';+			case 15:+				return 'f';+			default:+				var $temp$num = num;+				num = $temp$num;+				continue unsafeToDigit;+		}+	}+};+var $rtfeldman$elm_hex$Hex$unsafePositiveToDigits = F2(+	function (digits, num) {+		unsafePositiveToDigits:+		while (true) {+			if (num < 16) {+				return A2(+					$elm$core$List$cons,+					$rtfeldman$elm_hex$Hex$unsafeToDigit(num),+					digits);+			} else {+				var $temp$digits = A2(+					$elm$core$List$cons,+					$rtfeldman$elm_hex$Hex$unsafeToDigit(+						A2($elm$core$Basics$modBy, 16, num)),+					digits),+					$temp$num = (num / 16) | 0;+				digits = $temp$digits;+				num = $temp$num;+				continue unsafePositiveToDigits;+			}+		}+	});+var $rtfeldman$elm_hex$Hex$toString = function (num) {+	return $elm$core$String$fromList(+		(num < 0) ? A2(+			$elm$core$List$cons,+			'-',+			A2($rtfeldman$elm_hex$Hex$unsafePositiveToDigits, _List_Nil, -num)) : A2($rtfeldman$elm_hex$Hex$unsafePositiveToDigits, _List_Nil, num));+};+var $rtfeldman$elm_css$Hash$fromString = function (str) {+	return A2(+		$elm$core$String$cons,+		'_',+		$rtfeldman$elm_hex$Hex$toString(+			A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$hashString, $rtfeldman$elm_css$Hash$murmurSeed, str)));+};+var $elm$core$List$head = function (list) {+	if (list.b) {+		var x = list.a;+		var xs = list.b;+		return $elm$core$Maybe$Just(x);+	} else {+		return $elm$core$Maybe$Nothing;+	}+};+var $rtfeldman$elm_css$Css$Preprocess$Resolve$last = function (list) {+	last:+	while (true) {+		if (!list.b) {+			return $elm$core$Maybe$Nothing;+		} else {+			if (!list.b.b) {+				var singleton = list.a;+				return $elm$core$Maybe$Just(singleton);+			} else {+				var rest = list.b;+				var $temp$list = rest;+				list = $temp$list;+				continue last;+			}+		}+	}+};+var $rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration = function (declarations) {+	lastDeclaration:+	while (true) {+		if (!declarations.b) {+			return $elm$core$Maybe$Nothing;+		} else {+			if (!declarations.b.b) {+				var x = declarations.a;+				return $elm$core$Maybe$Just(+					_List_fromArray(+						[x]));+			} else {+				var xs = declarations.b;+				var $temp$declarations = xs;+				declarations = $temp$declarations;+				continue lastDeclaration;+			}+		}+	}+};+var $rtfeldman$elm_css$Css$Preprocess$Resolve$oneOf = function (maybes) {+	oneOf:+	while (true) {+		if (!maybes.b) {+			return $elm$core$Maybe$Nothing;+		} else {+			var maybe = maybes.a;+			var rest = maybes.b;+			if (maybe.$ === 1) {+				var $temp$maybes = rest;+				maybes = $temp$maybes;+				continue oneOf;+			} else {+				return maybe;+			}+		}+	}+};+var $rtfeldman$elm_css$Css$Structure$FontFeatureValues = function (a) {+	return {$: 9, a: a};+};+var $rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues = function (tuples) {+	var expandTuples = function (tuplesToExpand) {+		if (!tuplesToExpand.b) {+			return _List_Nil;+		} else {+			var properties = tuplesToExpand.a;+			var rest = tuplesToExpand.b;+			return A2(+				$elm$core$List$cons,+				properties,+				expandTuples(rest));+		}+	};+	var newTuples = expandTuples(tuples);+	return _List_fromArray(+		[+			$rtfeldman$elm_css$Css$Structure$FontFeatureValues(newTuples)+		]);+};+var $rtfeldman$elm_css$Css$Structure$styleBlockToMediaRule = F2(+	function (mediaQueries, declaration) {+		if (!declaration.$) {+			var styleBlock = declaration.a;+			return A2(+				$rtfeldman$elm_css$Css$Structure$MediaRule,+				mediaQueries,+				_List_fromArray(+					[styleBlock]));+		} else {+			return declaration;+		}+	});+var $elm$core$List$tail = function (list) {+	if (list.b) {+		var x = list.a;+		var xs = list.b;+		return $elm$core$Maybe$Just(xs);+	} else {+		return $elm$core$Maybe$Nothing;+	}+};+var $elm$core$List$takeReverse = F3(+	function (n, list, kept) {+		takeReverse:+		while (true) {+			if (n <= 0) {+				return kept;+			} else {+				if (!list.b) {+					return kept;+				} else {+					var x = list.a;+					var xs = list.b;+					var $temp$n = n - 1,+						$temp$list = xs,+						$temp$kept = A2($elm$core$List$cons, x, kept);+					n = $temp$n;+					list = $temp$list;+					kept = $temp$kept;+					continue takeReverse;+				}+			}+		}+	});+var $elm$core$List$takeTailRec = F2(+	function (n, list) {+		return $elm$core$List$reverse(+			A3($elm$core$List$takeReverse, n, list, _List_Nil));+	});+var $elm$core$List$takeFast = F3(+	function (ctr, n, list) {+		if (n <= 0) {+			return _List_Nil;+		} else {+			var _v0 = _Utils_Tuple2(n, list);+			_v0$1:+			while (true) {+				_v0$5:+				while (true) {+					if (!_v0.b.b) {+						return list;+					} else {+						if (_v0.b.b.b) {+							switch (_v0.a) {+								case 1:+									break _v0$1;+								case 2:+									var _v2 = _v0.b;+									var x = _v2.a;+									var _v3 = _v2.b;+									var y = _v3.a;+									return _List_fromArray(+										[x, y]);+								case 3:+									if (_v0.b.b.b.b) {+										var _v4 = _v0.b;+										var x = _v4.a;+										var _v5 = _v4.b;+										var y = _v5.a;+										var _v6 = _v5.b;+										var z = _v6.a;+										return _List_fromArray(+											[x, y, z]);+									} else {+										break _v0$5;+									}+								default:+									if (_v0.b.b.b.b && _v0.b.b.b.b.b) {+										var _v7 = _v0.b;+										var x = _v7.a;+										var _v8 = _v7.b;+										var y = _v8.a;+										var _v9 = _v8.b;+										var z = _v9.a;+										var _v10 = _v9.b;+										var w = _v10.a;+										var tl = _v10.b;+										return (ctr > 1000) ? A2(+											$elm$core$List$cons,+											x,+											A2(+												$elm$core$List$cons,+												y,+												A2(+													$elm$core$List$cons,+													z,+													A2(+														$elm$core$List$cons,+														w,+														A2($elm$core$List$takeTailRec, n - 4, tl))))) : A2(+											$elm$core$List$cons,+											x,+											A2(+												$elm$core$List$cons,+												y,+												A2(+													$elm$core$List$cons,+													z,+													A2(+														$elm$core$List$cons,+														w,+														A3($elm$core$List$takeFast, ctr + 1, n - 4, tl)))));+									} else {+										break _v0$5;+									}+							}+						} else {+							if (_v0.a === 1) {+								break _v0$1;+							} else {+								break _v0$5;+							}+						}+					}+				}+				return list;+			}+			var _v1 = _v0.b;+			var x = _v1.a;+			return _List_fromArray(+				[x]);+		}+	});+var $elm$core$List$take = F2(+	function (n, list) {+		return A3($elm$core$List$takeFast, 0, n, list);+	});+var $rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule = F5(+	function (str1, str2, str3, str4, declaration) {+		if (!declaration.$) {+			var structureStyleBlock = declaration.a;+			return A5($rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4, structureStyleBlock);+		} else {+			return declaration;+		}+	});+var $rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule = F2(+	function (mediaQueries, declaration) {+		switch (declaration.$) {+			case 0:+				var structureStyleBlock = declaration.a;+				return A2(+					$rtfeldman$elm_css$Css$Structure$MediaRule,+					mediaQueries,+					_List_fromArray(+						[structureStyleBlock]));+			case 1:+				var newMediaQueries = declaration.a;+				var structureStyleBlocks = declaration.b;+				return A2(+					$rtfeldman$elm_css$Css$Structure$MediaRule,+					_Utils_ap(mediaQueries, newMediaQueries),+					structureStyleBlocks);+			case 2:+				var str = declaration.a;+				var declarations = declaration.b;+				return A2(+					$rtfeldman$elm_css$Css$Structure$SupportsRule,+					str,+					A2(+						$elm$core$List$map,+						$rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule(mediaQueries),+						declarations));+			case 3:+				var str1 = declaration.a;+				var str2 = declaration.b;+				var str3 = declaration.c;+				var str4 = declaration.d;+				var structureStyleBlock = declaration.e;+				return A5($rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4, structureStyleBlock);+			case 4:+				return declaration;+			case 5:+				return declaration;+			case 6:+				return declaration;+			case 7:+				return declaration;+			case 8:+				return declaration;+			default:+				return declaration;+		}+	});+var $rtfeldman$elm_css$Css$Preprocess$unwrapSnippet = function (_v0) {+	var declarations = _v0;+	return declarations;+};+var $rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast = F4(+	function (nestedStyles, rest, f, declarations) {+		var withoutParent = function (decls) {+			return A2(+				$elm$core$Maybe$withDefault,+				_List_Nil,+				$elm$core$List$tail(decls));+		};+		var nextResult = A2(+			$rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles,+			rest,+			A2(+				$elm$core$Maybe$withDefault,+				_List_Nil,+				$rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration(declarations)));+		var newDeclarations = function () {+			var _v14 = _Utils_Tuple2(+				$elm$core$List$head(nextResult),+				$rtfeldman$elm_css$Css$Preprocess$Resolve$last(declarations));+			if ((!_v14.a.$) && (!_v14.b.$)) {+				var nextResultParent = _v14.a.a;+				var originalParent = _v14.b.a;+				return _Utils_ap(+					A2(+						$elm$core$List$take,+						$elm$core$List$length(declarations) - 1,+						declarations),+					_List_fromArray(+						[+							(!_Utils_eq(originalParent, nextResultParent)) ? nextResultParent : originalParent+						]));+			} else {+				return declarations;+			}+		}();+		var insertStylesToNestedDecl = function (lastDecl) {+			return $elm$core$List$concat(+				A2(+					$rtfeldman$elm_css$Css$Structure$mapLast,+					$rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles(nestedStyles),+					A2(+						$elm$core$List$map,+						$elm$core$List$singleton,+						A2($rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, f, lastDecl))));+		};+		var initialResult = A2(+			$elm$core$Maybe$withDefault,+			_List_Nil,+			A2(+				$elm$core$Maybe$map,+				insertStylesToNestedDecl,+				$rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration(declarations)));+		return _Utils_ap(+			newDeclarations,+			_Utils_ap(+				withoutParent(initialResult),+				withoutParent(nextResult)));+	});+var $rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles = F2(+	function (styles, declarations) {+		if (!styles.b) {+			return declarations;+		} else {+			switch (styles.a.$) {+				case 0:+					var property = styles.a.a;+					var rest = styles.b;+					return A2(+						$rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles,+						rest,+						A2($rtfeldman$elm_css$Css$Structure$appendProperty, property, declarations));+				case 1:+					var _v4 = styles.a;+					var selector = _v4.a;+					var nestedStyles = _v4.b;+					var rest = styles.b;+					return A4(+						$rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast,+						nestedStyles,+						rest,+						$rtfeldman$elm_css$Css$Structure$appendRepeatableToLastSelector(selector),+						declarations);+				case 2:+					var _v5 = styles.a;+					var selectorCombinator = _v5.a;+					var snippets = _v5.b;+					var rest = styles.b;+					var chain = F2(+						function (_v9, _v10) {+							var originalSequence = _v9.a;+							var originalTuples = _v9.b;+							var originalPseudoElement = _v9.c;+							var newSequence = _v10.a;+							var newTuples = _v10.b;+							var newPseudoElement = _v10.c;+							return A3(+								$rtfeldman$elm_css$Css$Structure$Selector,+								originalSequence,+								_Utils_ap(+									originalTuples,+									A2(+										$elm$core$List$cons,+										_Utils_Tuple2(selectorCombinator, newSequence),+										newTuples)),+								$rtfeldman$elm_css$Css$Preprocess$Resolve$oneOf(+									_List_fromArray(+										[newPseudoElement, originalPseudoElement])));+						});+					var expandDeclaration = function (declaration) {+						switch (declaration.$) {+							case 0:+								var _v7 = declaration.a;+								var firstSelector = _v7.a;+								var otherSelectors = _v7.b;+								var nestedStyles = _v7.c;+								var newSelectors = A2(+									$elm$core$List$concatMap,+									function (originalSelector) {+										return A2(+											$elm$core$List$map,+											chain(originalSelector),+											A2($elm$core$List$cons, firstSelector, otherSelectors));+									},+									$rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(declarations));+								var newDeclarations = function () {+									if (!newSelectors.b) {+										return _List_Nil;+									} else {+										var first = newSelectors.a;+										var remainder = newSelectors.b;+										return _List_fromArray(+											[+												$rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration(+												A3($rtfeldman$elm_css$Css$Structure$StyleBlock, first, remainder, _List_Nil))+											]);+									}+								}();+								return A2($rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, nestedStyles, newDeclarations);+							case 1:+								var mediaQueries = declaration.a;+								var styleBlocks = declaration.b;+								return A2($rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule, mediaQueries, styleBlocks);+							case 2:+								var str = declaration.a;+								var otherSnippets = declaration.b;+								return A2($rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule, str, otherSnippets);+							case 3:+								var str1 = declaration.a;+								var str2 = declaration.b;+								var str3 = declaration.c;+								var str4 = declaration.d;+								var styleBlock = declaration.e;+								return A2(+									$elm$core$List$map,+									A4($rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule, str1, str2, str3, str4),+									$rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock));+							case 4:+								var str = declaration.a;+								var properties = declaration.b;+								return _List_fromArray(+									[+										A2($rtfeldman$elm_css$Css$Structure$PageRule, str, properties)+									]);+							case 5:+								var properties = declaration.a;+								return _List_fromArray(+									[+										$rtfeldman$elm_css$Css$Structure$FontFace(properties)+									]);+							case 6:+								var properties = declaration.a;+								return _List_fromArray(+									[+										$rtfeldman$elm_css$Css$Structure$Viewport(properties)+									]);+							case 7:+								var properties = declaration.a;+								return _List_fromArray(+									[+										$rtfeldman$elm_css$Css$Structure$CounterStyle(properties)+									]);+							default:+								var tuples = declaration.a;+								return $rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues(tuples);+						}+					};+					return $elm$core$List$concat(+						_Utils_ap(+							_List_fromArray(+								[+									A2($rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, rest, declarations)+								]),+							A2(+								$elm$core$List$map,+								expandDeclaration,+								A2($elm$core$List$concatMap, $rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets))));+				case 3:+					var _v11 = styles.a;+					var pseudoElement = _v11.a;+					var nestedStyles = _v11.b;+					var rest = styles.b;+					return A4(+						$rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast,+						nestedStyles,+						rest,+						$rtfeldman$elm_css$Css$Structure$appendPseudoElementToLastSelector(pseudoElement),+						declarations);+				case 5:+					var str = styles.a.a;+					var rest = styles.b;+					var name = $rtfeldman$elm_css$Hash$fromString(str);+					var newProperty = 'animation-name:' + name;+					var newDeclarations = A2(+						$rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles,+						rest,+						A2($rtfeldman$elm_css$Css$Structure$appendProperty, newProperty, declarations));+					return A2(+						$elm$core$List$append,+						newDeclarations,+						_List_fromArray(+							[+								$rtfeldman$elm_css$Css$Structure$Keyframes(+								{cR: str, c9: name})+							]));+				case 4:+					var _v12 = styles.a;+					var mediaQueries = _v12.a;+					var nestedStyles = _v12.b;+					var rest = styles.b;+					var extraDeclarations = function () {+						var _v13 = $rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(declarations);+						if (!_v13.b) {+							return _List_Nil;+						} else {+							var firstSelector = _v13.a;+							var otherSelectors = _v13.b;+							return A2(+								$elm$core$List$map,+								$rtfeldman$elm_css$Css$Structure$styleBlockToMediaRule(mediaQueries),+								A2(+									$rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles,+									nestedStyles,+									$elm$core$List$singleton(+										$rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration(+											A3($rtfeldman$elm_css$Css$Structure$StyleBlock, firstSelector, otherSelectors, _List_Nil)))));+						}+					}();+					return _Utils_ap(+						A2($rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, rest, declarations),+						extraDeclarations);+				default:+					var otherStyles = styles.a.a;+					var rest = styles.b;+					return A2(+						$rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles,+						_Utils_ap(otherStyles, rest),+						declarations);+			}+		}+	});+var $rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock = function (_v2) {+	var firstSelector = _v2.a;+	var otherSelectors = _v2.b;+	var styles = _v2.c;+	return A2(+		$rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles,+		styles,+		_List_fromArray(+			[+				$rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration(+				A3($rtfeldman$elm_css$Css$Structure$StyleBlock, firstSelector, otherSelectors, _List_Nil))+			]));+};+var $rtfeldman$elm_css$Css$Preprocess$Resolve$extract = function (snippetDeclarations) {+	if (!snippetDeclarations.b) {+		return _List_Nil;+	} else {+		var first = snippetDeclarations.a;+		var rest = snippetDeclarations.b;+		return _Utils_ap(+			$rtfeldman$elm_css$Css$Preprocess$Resolve$toDeclarations(first),+			$rtfeldman$elm_css$Css$Preprocess$Resolve$extract(rest));+	}+};+var $rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule = F2(+	function (mediaQueries, styleBlocks) {+		var handleStyleBlock = function (styleBlock) {+			return A2(+				$elm$core$List$map,+				$rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule(mediaQueries),+				$rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock));+		};+		return A2($elm$core$List$concatMap, handleStyleBlock, styleBlocks);+	});+var $rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule = F2(+	function (str, snippets) {+		var declarations = $rtfeldman$elm_css$Css$Preprocess$Resolve$extract(+			A2($elm$core$List$concatMap, $rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets));+		return _List_fromArray(+			[+				A2($rtfeldman$elm_css$Css$Structure$SupportsRule, str, declarations)+			]);+	});+var $rtfeldman$elm_css$Css$Preprocess$Resolve$toDeclarations = function (snippetDeclaration) {+	switch (snippetDeclaration.$) {+		case 0:+			var styleBlock = snippetDeclaration.a;+			return $rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock);+		case 1:+			var mediaQueries = snippetDeclaration.a;+			var styleBlocks = snippetDeclaration.b;+			return A2($rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule, mediaQueries, styleBlocks);+		case 2:+			var str = snippetDeclaration.a;+			var snippets = snippetDeclaration.b;+			return A2($rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule, str, snippets);+		case 3:+			var str1 = snippetDeclaration.a;+			var str2 = snippetDeclaration.b;+			var str3 = snippetDeclaration.c;+			var str4 = snippetDeclaration.d;+			var styleBlock = snippetDeclaration.e;+			return A2(+				$elm$core$List$map,+				A4($rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule, str1, str2, str3, str4),+				$rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock));+		case 4:+			var str = snippetDeclaration.a;+			var properties = snippetDeclaration.b;+			return _List_fromArray(+				[+					A2($rtfeldman$elm_css$Css$Structure$PageRule, str, properties)+				]);+		case 5:+			var properties = snippetDeclaration.a;+			return _List_fromArray(+				[+					$rtfeldman$elm_css$Css$Structure$FontFace(properties)+				]);+		case 6:+			var properties = snippetDeclaration.a;+			return _List_fromArray(+				[+					$rtfeldman$elm_css$Css$Structure$Viewport(properties)+				]);+		case 7:+			var properties = snippetDeclaration.a;+			return _List_fromArray(+				[+					$rtfeldman$elm_css$Css$Structure$CounterStyle(properties)+				]);+		default:+			var tuples = snippetDeclaration.a;+			return $rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues(tuples);+	}+};+var $rtfeldman$elm_css$Css$Preprocess$Resolve$toStructure = function (_v0) {+	var charset = _v0.bF;+	var imports = _v0.bW;+	var namespaces = _v0.b5;+	var snippets = _v0.cs;+	var declarations = $rtfeldman$elm_css$Css$Preprocess$Resolve$extract(+		A2($elm$core$List$concatMap, $rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets));+	return {bF: charset, cS: declarations, bW: imports, b5: namespaces};+};+var $rtfeldman$elm_css$Css$Preprocess$Resolve$compileHelp = function (sheet) {+	return $rtfeldman$elm_css$Css$Structure$Output$prettyPrint(+		$rtfeldman$elm_css$Css$Structure$compactStylesheet(+			$rtfeldman$elm_css$Css$Preprocess$Resolve$toStructure(sheet)));+};+var $rtfeldman$elm_css$Css$Preprocess$Resolve$compile = function (styles) {+	return A2(+		$elm$core$String$join,+		'\n\n',+		A2($elm$core$List$map, $rtfeldman$elm_css$Css$Preprocess$Resolve$compileHelp, styles));+};+var $rtfeldman$elm_css$Css$Structure$ClassSelector = function (a) {+	return {$: 0, a: a};+};+var $rtfeldman$elm_css$Css$Preprocess$Snippet = $elm$core$Basics$identity;+var $rtfeldman$elm_css$Css$Preprocess$StyleBlock = F3(+	function (a, b, c) {+		return {$: 0, a: a, b: b, c: c};+	});+var $rtfeldman$elm_css$Css$Preprocess$StyleBlockDeclaration = function (a) {+	return {$: 0, a: a};+};+var $rtfeldman$elm_css$VirtualDom$Styled$makeSnippet = F2(+	function (styles, sequence) {+		var selector = A3($rtfeldman$elm_css$Css$Structure$Selector, sequence, _List_Nil, $elm$core$Maybe$Nothing);+		return _List_fromArray(+			[+				$rtfeldman$elm_css$Css$Preprocess$StyleBlockDeclaration(+				A3($rtfeldman$elm_css$Css$Preprocess$StyleBlock, selector, _List_Nil, styles))+			]);+	});+var $rtfeldman$elm_css$VirtualDom$Styled$snippetFromPair = function (_v0) {+	var classname = _v0.a;+	var styles = _v0.b;+	return A2(+		$rtfeldman$elm_css$VirtualDom$Styled$makeSnippet,+		styles,+		$rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence(+			_List_fromArray(+				[+					$rtfeldman$elm_css$Css$Structure$ClassSelector(classname)+				])));+};+var $rtfeldman$elm_css$Css$Preprocess$stylesheet = function (snippets) {+	return {bF: $elm$core$Maybe$Nothing, bW: _List_Nil, b5: _List_Nil, cs: snippets};+};+var $rtfeldman$elm_css$VirtualDom$Styled$toDeclaration = function (dict) {+	return $rtfeldman$elm_css$Css$Preprocess$Resolve$compile(+		$elm$core$List$singleton(+			$rtfeldman$elm_css$Css$Preprocess$stylesheet(+				A2(+					$elm$core$List$map,+					$rtfeldman$elm_css$VirtualDom$Styled$snippetFromPair,+					$elm$core$Dict$toList(dict)))));+};+var $rtfeldman$elm_css$VirtualDom$Styled$toStyleNode = function (styles) {+	return A3(+		$elm$virtual_dom$VirtualDom$node,+		'style',+		_List_Nil,+		$elm$core$List$singleton(+			$elm$virtual_dom$VirtualDom$text(+				$rtfeldman$elm_css$VirtualDom$Styled$toDeclaration(styles))));+};+var $rtfeldman$elm_css$VirtualDom$Styled$unstyle = F3(+	function (elemType, properties, children) {+		var unstyledProperties = A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties);+		var initialStyles = $rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties);+		var _v0 = A3(+			$elm$core$List$foldl,+			$rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml,+			_Utils_Tuple2(_List_Nil, initialStyles),+			children);+		var childNodes = _v0.a;+		var styles = _v0.b;+		var styleNode = $rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(styles);+		return A3(+			$elm$virtual_dom$VirtualDom$node,+			elemType,+			unstyledProperties,+			A2(+				$elm$core$List$cons,+				styleNode,+				$elm$core$List$reverse(childNodes)));+	});+var $rtfeldman$elm_css$VirtualDom$Styled$containsKey = F2(+	function (key, pairs) {+		containsKey:+		while (true) {+			if (!pairs.b) {+				return false;+			} else {+				var _v1 = pairs.a;+				var str = _v1.a;+				var rest = pairs.b;+				if (_Utils_eq(key, str)) {+					return true;+				} else {+					var $temp$key = key,+						$temp$pairs = rest;+					key = $temp$key;+					pairs = $temp$pairs;+					continue containsKey;+				}+			}+		}+	});+var $rtfeldman$elm_css$VirtualDom$Styled$getUnusedKey = F2(+	function (_default, pairs) {+		getUnusedKey:+		while (true) {+			if (!pairs.b) {+				return _default;+			} else {+				var _v1 = pairs.a;+				var firstKey = _v1.a;+				var rest = pairs.b;+				var newKey = '_' + firstKey;+				if (A2($rtfeldman$elm_css$VirtualDom$Styled$containsKey, newKey, rest)) {+					var $temp$default = newKey,+						$temp$pairs = rest;+					_default = $temp$default;+					pairs = $temp$pairs;+					continue getUnusedKey;+				} else {+					return newKey;+				}+			}+		}+	});+var $rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode = F2(+	function (allStyles, keyedChildNodes) {+		var styleNodeKey = A2($rtfeldman$elm_css$VirtualDom$Styled$getUnusedKey, '_', keyedChildNodes);+		var finalNode = $rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(allStyles);+		return _Utils_Tuple2(styleNodeKey, finalNode);+	});+var $rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyed = F3(+	function (elemType, properties, keyedChildren) {+		var unstyledProperties = A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties);+		var initialStyles = $rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties);+		var _v0 = A3(+			$elm$core$List$foldl,+			$rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml,+			_Utils_Tuple2(_List_Nil, initialStyles),+			keyedChildren);+		var keyedChildNodes = _v0.a;+		var styles = _v0.b;+		var keyedStyleNode = A2($rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode, styles, keyedChildNodes);+		return A3(+			$elm$virtual_dom$VirtualDom$keyedNode,+			elemType,+			unstyledProperties,+			A2(+				$elm$core$List$cons,+				keyedStyleNode,+				$elm$core$List$reverse(keyedChildNodes)));+	});+var $rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyedNS = F4(+	function (ns, elemType, properties, keyedChildren) {+		var unstyledProperties = A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties);+		var initialStyles = $rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties);+		var _v0 = A3(+			$elm$core$List$foldl,+			$rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml,+			_Utils_Tuple2(_List_Nil, initialStyles),+			keyedChildren);+		var keyedChildNodes = _v0.a;+		var styles = _v0.b;+		var keyedStyleNode = A2($rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode, styles, keyedChildNodes);+		return A4(+			$elm$virtual_dom$VirtualDom$keyedNodeNS,+			ns,+			elemType,+			unstyledProperties,+			A2(+				$elm$core$List$cons,+				keyedStyleNode,+				$elm$core$List$reverse(keyedChildNodes)));+	});+var $rtfeldman$elm_css$VirtualDom$Styled$unstyleNS = F4(+	function (ns, elemType, properties, children) {+		var unstyledProperties = A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties);+		var initialStyles = $rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties);+		var _v0 = A3(+			$elm$core$List$foldl,+			$rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml,+			_Utils_Tuple2(_List_Nil, initialStyles),+			children);+		var childNodes = _v0.a;+		var styles = _v0.b;+		var styleNode = $rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(styles);+		return A4(+			$elm$virtual_dom$VirtualDom$nodeNS,+			ns,+			elemType,+			unstyledProperties,+			A2(+				$elm$core$List$cons,+				styleNode,+				$elm$core$List$reverse(childNodes)));+	});+var $rtfeldman$elm_css$VirtualDom$Styled$toUnstyled = function (vdom) {+	switch (vdom.$) {+		case 4:+			var plainNode = vdom.a;+			return plainNode;+		case 0:+			var elemType = vdom.a;+			var properties = vdom.b;+			var children = vdom.c;+			return A3($rtfeldman$elm_css$VirtualDom$Styled$unstyle, elemType, properties, children);+		case 1:+			var ns = vdom.a;+			var elemType = vdom.b;+			var properties = vdom.c;+			var children = vdom.d;+			return A4($rtfeldman$elm_css$VirtualDom$Styled$unstyleNS, ns, elemType, properties, children);+		case 2:+			var elemType = vdom.a;+			var properties = vdom.b;+			var children = vdom.c;+			return A3($rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyed, elemType, properties, children);+		default:+			var ns = vdom.a;+			var elemType = vdom.b;+			var properties = vdom.c;+			var children = vdom.d;+			return A4($rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyedNS, ns, elemType, properties, children);+	}+};+var $rtfeldman$elm_css$Html$Styled$toUnstyled = $rtfeldman$elm_css$VirtualDom$Styled$toUnstyled;+var $author$project$Main$Loaded = function (a) {+	return {$: 1, a: a};+};+var $author$project$Persisted$Persisted = $elm$core$Basics$identity;+var $author$project$Persisted$init = function (x) {+	return {aZ: x, aK: x};+};+var $elm$core$Dict$map = F2(+	function (func, dict) {+		if (dict.$ === -2) {+			return $elm$core$Dict$RBEmpty_elm_builtin;+		} else {+			var color = dict.a;+			var key = dict.b;+			var value = dict.c;+			var left = dict.d;+			var right = dict.e;+			return A5(+				$elm$core$Dict$RBNode_elm_builtin,+				color,+				key,+				A2(func, key, value),+				A2($elm$core$Dict$map, func, left),+				A2($elm$core$Dict$map, func, right));+		}+	});+var $elm$core$Platform$Cmd$batch = _Platform_batch;+var $elm$core$Platform$Cmd$none = $elm$core$Platform$Cmd$batch(_List_Nil);+var $author$project$Persisted$changed = function (_v0) {+	var persisted = _v0.aK;+	var local = _v0.aZ;+	return !_Utils_eq(local, persisted);+};+var $author$project$Persisted$persist = F2(+	function (x, _v0) {+		var old = _v0;+		return $author$project$Persisted$changed(old) ? _Utils_update(+			old,+			{aK: x}) : $author$project$Persisted$init(x);+	});+var $elm$http$Http$expectBytesResponse = F2(+	function (toMsg, toResult) {+		return A3(+			_Http_expect,+			'arraybuffer',+			_Http_toDataView,+			A2($elm$core$Basics$composeR, toResult, toMsg));+	});+var $elm$http$Http$expectWhatever = function (toMsg) {+	return A2(+		$elm$http$Http$expectBytesResponse,+		toMsg,+		$elm$http$Http$resolve(+			function (_v0) {+				return $elm$core$Result$Ok(0);+			}));+};+var $elm$json$Json$Encode$int = _Json_wrap;+var $elm$http$Http$jsonBody = function (value) {+	return A2(+		_Http_pair,+		'application/json',+		A2($elm$json$Json$Encode$encode, 0, value));+};+var $author$project$Main$sendSaveFlagRequest = F3(+	function (rootPath, flagName, _v0) {+		var percentage = _v0;+		return $elm$http$Http$request(+			{+				bA: $elm$http$Http$jsonBody(+					$elm$json$Json$Encode$int(percentage)),+				bM: $elm$http$Http$expectWhatever(+					function (_v1) {+						return $author$project$Main$LoadFlags;+					}),+				c$: _List_Nil,+				c6: 'PUT',+				dz: $elm$core$Maybe$Nothing,+				dB: $elm$core$Maybe$Nothing,+				cC: A2(+					$elm$url$Url$Builder$relative,+					_Utils_ap(+						rootPath,+						_List_fromArray(+							['flags', flagName])),+					_List_Nil)+			});+	});+var $author$project$Persisted$value = function (_v0) {+	var local = _v0.aZ;+	return local;+};+var $author$project$Main$saveFlag = F2(+	function (flagName, model) {+		var _v0 = model.D;+		if (!_v0.$) {+			return $elm$core$Platform$Cmd$none;+		} else {+			var flags = _v0.a;+			var _v1 = A2($elm$core$Dict$get, flagName, flags);+			if (_v1.$ === 1) {+				return $elm$core$Platform$Cmd$none;+			} else {+				var percentage = _v1.a;+				return $author$project$Persisted$changed(percentage) ? A3(+					$author$project$Main$sendSaveFlagRequest,+					model.a5,+					flagName,+					$author$project$Persisted$value(percentage)) : $elm$core$Platform$Cmd$none;+			}+		}+	});+var $author$project$Persisted$change = F2(+	function (x, _v0) {+		var persisted = _v0.aK;+		return {aZ: x, aK: persisted};+	});+var $author$project$Main$setFlag = F3(+	function (flagName, newPercentage, data) {+		if (!data.$) {+			return $author$project$Main$Loading;+		} else {+			var flags = data.a;+			return $author$project$Main$Loaded(+				A3(+					$elm$core$Dict$update,+					flagName,+					$elm$core$Maybe$map(+						function (oldPercentage) {+							return A2($author$project$Persisted$change, newPercentage, oldPercentage);+						}),+					flags));+		}+	});+var $author$project$Main$updateData = F2(+	function (msg, model) {+		switch (msg.$) {+			case 3:+				return _Utils_Tuple2(model.D, $elm$core$Platform$Cmd$none);+			case 0:+				return _Utils_Tuple2(+					model.D,+					$author$project$Main$sendLoadFlagsRequest(model.a5));+			case 1:+				var updatedFlags = msg.a;+				var _v1 = model.D;+				if (!_v1.$) {+					return _Utils_Tuple2(+						$author$project$Main$Loaded(+							A2(+								$elm$core$Dict$map,+								function (_v2) {+									return $author$project$Persisted$init;+								},+								updatedFlags)),+						$elm$core$Platform$Cmd$none);+				} else {+					var oldFlags = _v1.a;+					return _Utils_Tuple2(+						$author$project$Main$Loaded(+							A6(+								$elm$core$Dict$merge,+								F3(+									function (flag, oldValue, newFlags) {+										return A3($elm$core$Dict$insert, flag, oldValue, newFlags);+									}),+								F4(+									function (flag, oldValue, newValue, newFlags) {+										return A3(+											$elm$core$Dict$insert,+											flag,+											A2($author$project$Persisted$persist, newValue, oldValue),+											newFlags);+									}),+								F3(+									function (flag, firstValue, newFlags) {+										return A3(+											$elm$core$Dict$insert,+											flag,+											$author$project$Persisted$init(firstValue),+											newFlags);+									}),+								oldFlags,+								updatedFlags,+								$elm$core$Dict$empty)),+						$elm$core$Platform$Cmd$none);+				}+			default:+				var flagName = msg.a;+				var newPercentage = msg.b;+				var newData = A3($author$project$Main$setFlag, flagName, newPercentage, model.D);+				return _Utils_Tuple2(+					newData,+					A2(+						$author$project$Main$saveFlag,+						flagName,+						_Utils_update(+							model,+							{D: newData})));+		}+	});+var $author$project$Main$update = F2(+	function (msg, model) {+		var _v0 = A2($author$project$Main$updateData, msg, model);+		var newData = _v0.a;+		var cmd = _v0.b;+		return _Utils_Tuple2(+			_Utils_update(+				model,+				{D: newData}),+			cmd);+	});+var $rtfeldman$elm_css$Css$Structure$Compatible = 0;+var $rtfeldman$elm_css$Css$absolute = {aL: 0, L: 'absolute'};+var $rtfeldman$elm_css$Css$Preprocess$AppendProperty = function (a) {+	return {$: 0, a: a};+};+var $rtfeldman$elm_css$Css$property = F2(+	function (key, value) {+		return $rtfeldman$elm_css$Css$Preprocess$AppendProperty(key + (':' + value));+	});+var $rtfeldman$elm_css$Css$backgroundColor = function (c) {+	return A2($rtfeldman$elm_css$Css$property, 'background-color', c.L);+};+var $rtfeldman$elm_css$Css$prop1 = F2(+	function (key, arg) {+		return A2($rtfeldman$elm_css$Css$property, key, arg.L);+	});+var $rtfeldman$elm_css$Css$center = $rtfeldman$elm_css$Css$prop1('center');+var $rtfeldman$elm_css$Css$color = function (c) {+	return A2($rtfeldman$elm_css$Css$property, 'color', c.L);+};+var $rtfeldman$elm_css$VirtualDom$Styled$Attribute = F3(+	function (a, b, c) {+		return {$: 0, a: a, b: b, c: c};+	});+var $rtfeldman$elm_css$VirtualDom$Styled$murmurSeed = 15739;+var $rtfeldman$elm_css$VirtualDom$Styled$getClassname = function (styles) {+	return $elm$core$List$isEmpty(styles) ? 'unstyled' : A2(+		$elm$core$String$cons,+		'_',+		$rtfeldman$elm_hex$Hex$toString(+			A2(+				$rtfeldman$elm_css$ElmCssVendor$Murmur3$hashString,+				$rtfeldman$elm_css$VirtualDom$Styled$murmurSeed,+				$rtfeldman$elm_css$Css$Preprocess$Resolve$compile(+					$elm$core$List$singleton(+						$rtfeldman$elm_css$Css$Preprocess$stylesheet(+							$elm$core$List$singleton(+								A2(+									$rtfeldman$elm_css$VirtualDom$Styled$makeSnippet,+									styles,+									$rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence(_List_Nil)))))))));+};+var $elm$virtual_dom$VirtualDom$property = F2(+	function (key, value) {+		return A2(+			_VirtualDom_property,+			_VirtualDom_noInnerHtmlOrFormAction(key),+			_VirtualDom_noJavaScriptOrHtmlUri(value));+	});+var $elm$json$Json$Encode$string = _Json_wrap;+var $rtfeldman$elm_css$Html$Styled$Internal$css = function (styles) {+	var classname = $rtfeldman$elm_css$VirtualDom$Styled$getClassname(styles);+	var classProperty = A2(+		$elm$virtual_dom$VirtualDom$property,+		'className',+		$elm$json$Json$Encode$string(classname));+	return A3($rtfeldman$elm_css$VirtualDom$Styled$Attribute, classProperty, styles, classname);+};+var $rtfeldman$elm_css$Html$Styled$Attributes$css = $rtfeldman$elm_css$Html$Styled$Internal$css;+var $rtfeldman$elm_css$VirtualDom$Styled$Node = F3(+	function (a, b, c) {+		return {$: 0, a: a, b: b, c: c};+	});+var $rtfeldman$elm_css$VirtualDom$Styled$node = $rtfeldman$elm_css$VirtualDom$Styled$Node;+var $rtfeldman$elm_css$Html$Styled$node = $rtfeldman$elm_css$VirtualDom$Styled$node;+var $rtfeldman$elm_css$Html$Styled$div = $rtfeldman$elm_css$Html$Styled$node('div');+var $rtfeldman$elm_css$Css$stringsToValue = function (list) {+	return $elm$core$List$isEmpty(list) ? {L: 'none'} : {+		L: A2(+			$elm$core$String$join,+			', ',+			A2(+				$elm$core$List$map,+				function (s) {+					return s;+				},+				list))+	};+};+var $rtfeldman$elm_css$Css$fontFamilies = A2(+	$elm$core$Basics$composeL,+	$rtfeldman$elm_css$Css$prop1('font-family'),+	$rtfeldman$elm_css$Css$stringsToValue);+var $rtfeldman$elm_css$Html$Styled$h1 = $rtfeldman$elm_css$Html$Styled$node('h1');+var $rtfeldman$elm_css$Css$withPrecedingHash = function (str) {+	return A2($elm$core$String$startsWith, '#', str) ? str : A2($elm$core$String$cons, '#', str);+};+var $rtfeldman$elm_css$Css$erroneousHex = function (str) {+	return {+		aA: 1,+		aC: 0,+		I: 0,+		aE: 0,+		aM: 0,+		L: $rtfeldman$elm_css$Css$withPrecedingHash(str)+	};+};+var $elm$core$String$foldr = _String_foldr;+var $elm$core$String$toList = function (string) {+	return A3($elm$core$String$foldr, $elm$core$List$cons, _List_Nil, string);+};+var $elm$core$String$fromChar = function (_char) {+	return A2($elm$core$String$cons, _char, '');+};+var $elm$core$Basics$pow = _Basics_pow;+var $rtfeldman$elm_hex$Hex$fromStringHelp = F3(+	function (position, chars, accumulated) {+		fromStringHelp:+		while (true) {+			if (!chars.b) {+				return $elm$core$Result$Ok(accumulated);+			} else {+				var _char = chars.a;+				var rest = chars.b;+				switch (_char) {+					case '0':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated;+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					case '1':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated + A2($elm$core$Basics$pow, 16, position);+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					case '2':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated + (2 * A2($elm$core$Basics$pow, 16, position));+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					case '3':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated + (3 * A2($elm$core$Basics$pow, 16, position));+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					case '4':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated + (4 * A2($elm$core$Basics$pow, 16, position));+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					case '5':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated + (5 * A2($elm$core$Basics$pow, 16, position));+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					case '6':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated + (6 * A2($elm$core$Basics$pow, 16, position));+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					case '7':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated + (7 * A2($elm$core$Basics$pow, 16, position));+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					case '8':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated + (8 * A2($elm$core$Basics$pow, 16, position));+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					case '9':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated + (9 * A2($elm$core$Basics$pow, 16, position));+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					case 'a':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated + (10 * A2($elm$core$Basics$pow, 16, position));+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					case 'b':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated + (11 * A2($elm$core$Basics$pow, 16, position));+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					case 'c':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated + (12 * A2($elm$core$Basics$pow, 16, position));+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					case 'd':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated + (13 * A2($elm$core$Basics$pow, 16, position));+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					case 'e':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated + (14 * A2($elm$core$Basics$pow, 16, position));+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					case 'f':+						var $temp$position = position - 1,+							$temp$chars = rest,+							$temp$accumulated = accumulated + (15 * A2($elm$core$Basics$pow, 16, position));+						position = $temp$position;+						chars = $temp$chars;+						accumulated = $temp$accumulated;+						continue fromStringHelp;+					default:+						var nonHex = _char;+						return $elm$core$Result$Err(+							$elm$core$String$fromChar(nonHex) + ' is not a valid hexadecimal character.');+				}+			}+		}+	});+var $elm$core$Result$map = F2(+	function (func, ra) {+		if (!ra.$) {+			var a = ra.a;+			return $elm$core$Result$Ok(+				func(a));+		} else {+			var e = ra.a;+			return $elm$core$Result$Err(e);+		}+	});+var $rtfeldman$elm_hex$Hex$fromString = function (str) {+	if ($elm$core$String$isEmpty(str)) {+		return $elm$core$Result$Err('Empty strings are not valid hexadecimal strings.');+	} else {+		var result = function () {+			if (A2($elm$core$String$startsWith, '-', str)) {+				var list = A2(+					$elm$core$Maybe$withDefault,+					_List_Nil,+					$elm$core$List$tail(+						$elm$core$String$toList(str)));+				return A2(+					$elm$core$Result$map,+					$elm$core$Basics$negate,+					A3(+						$rtfeldman$elm_hex$Hex$fromStringHelp,+						$elm$core$List$length(list) - 1,+						list,+						0));+			} else {+				return A3(+					$rtfeldman$elm_hex$Hex$fromStringHelp,+					$elm$core$String$length(str) - 1,+					$elm$core$String$toList(str),+					0);+			}+		}();+		var formatError = function (err) {+			return A2(+				$elm$core$String$join,+				' ',+				_List_fromArray(+					['\"' + (str + '\"'), 'is not a valid hexadecimal string because', err]));+		};+		return A2($elm$core$Result$mapError, formatError, result);+	}+};+var $elm$core$String$toLower = _String_toLower;+var $rtfeldman$elm_css$Css$validHex = F5(+	function (str, _v0, _v1, _v2, _v3) {+		var r1 = _v0.a;+		var r2 = _v0.b;+		var g1 = _v1.a;+		var g2 = _v1.b;+		var b1 = _v2.a;+		var b2 = _v2.b;+		var a1 = _v3.a;+		var a2 = _v3.b;+		var toResult = A2(+			$elm$core$Basics$composeR,+			$elm$core$String$fromList,+			A2($elm$core$Basics$composeR, $elm$core$String$toLower, $rtfeldman$elm_hex$Hex$fromString));+		var results = _Utils_Tuple2(+			_Utils_Tuple2(+				toResult(+					_List_fromArray(+						[r1, r2])),+				toResult(+					_List_fromArray(+						[g1, g2]))),+			_Utils_Tuple2(+				toResult(+					_List_fromArray(+						[b1, b2])),+				toResult(+					_List_fromArray(+						[a1, a2]))));+		if ((((!results.a.a.$) && (!results.a.b.$)) && (!results.b.a.$)) && (!results.b.b.$)) {+			var _v5 = results.a;+			var red = _v5.a.a;+			var green = _v5.b.a;+			var _v6 = results.b;+			var blue = _v6.a.a;+			var alpha = _v6.b.a;+			return {+				aA: alpha / 255,+				aC: blue,+				I: 0,+				aE: green,+				aM: red,+				L: $rtfeldman$elm_css$Css$withPrecedingHash(str)+			};+		} else {+			return $rtfeldman$elm_css$Css$erroneousHex(str);+		}+	});+var $rtfeldman$elm_css$Css$hex = function (str) {+	var withoutHash = A2($elm$core$String$startsWith, '#', str) ? A2($elm$core$String$dropLeft, 1, str) : str;+	var _v0 = $elm$core$String$toList(withoutHash);+	_v0$4:+	while (true) {+		if ((_v0.b && _v0.b.b) && _v0.b.b.b) {+			if (!_v0.b.b.b.b) {+				var r = _v0.a;+				var _v1 = _v0.b;+				var g = _v1.a;+				var _v2 = _v1.b;+				var b = _v2.a;+				return A5(+					$rtfeldman$elm_css$Css$validHex,+					str,+					_Utils_Tuple2(r, r),+					_Utils_Tuple2(g, g),+					_Utils_Tuple2(b, b),+					_Utils_Tuple2('f', 'f'));+			} else {+				if (!_v0.b.b.b.b.b) {+					var r = _v0.a;+					var _v3 = _v0.b;+					var g = _v3.a;+					var _v4 = _v3.b;+					var b = _v4.a;+					var _v5 = _v4.b;+					var a = _v5.a;+					return A5(+						$rtfeldman$elm_css$Css$validHex,+						str,+						_Utils_Tuple2(r, r),+						_Utils_Tuple2(g, g),+						_Utils_Tuple2(b, b),+						_Utils_Tuple2(a, a));+				} else {+					if (_v0.b.b.b.b.b.b) {+						if (!_v0.b.b.b.b.b.b.b) {+							var r1 = _v0.a;+							var _v6 = _v0.b;+							var r2 = _v6.a;+							var _v7 = _v6.b;+							var g1 = _v7.a;+							var _v8 = _v7.b;+							var g2 = _v8.a;+							var _v9 = _v8.b;+							var b1 = _v9.a;+							var _v10 = _v9.b;+							var b2 = _v10.a;+							return A5(+								$rtfeldman$elm_css$Css$validHex,+								str,+								_Utils_Tuple2(r1, r2),+								_Utils_Tuple2(g1, g2),+								_Utils_Tuple2(b1, b2),+								_Utils_Tuple2('f', 'f'));+						} else {+							if (_v0.b.b.b.b.b.b.b.b && (!_v0.b.b.b.b.b.b.b.b.b)) {+								var r1 = _v0.a;+								var _v11 = _v0.b;+								var r2 = _v11.a;+								var _v12 = _v11.b;+								var g1 = _v12.a;+								var _v13 = _v12.b;+								var g2 = _v13.a;+								var _v14 = _v13.b;+								var b1 = _v14.a;+								var _v15 = _v14.b;+								var b2 = _v15.a;+								var _v16 = _v15.b;+								var a1 = _v16.a;+								var _v17 = _v16.b;+								var a2 = _v17.a;+								return A5(+									$rtfeldman$elm_css$Css$validHex,+									str,+									_Utils_Tuple2(r1, r2),+									_Utils_Tuple2(g1, g2),+									_Utils_Tuple2(b1, b2),+									_Utils_Tuple2(a1, a2));+							} else {+								break _v0$4;+							}+						}+					} else {+						break _v0$4;+					}+				}+			}+		} else {+			break _v0$4;+		}+	}+	return $rtfeldman$elm_css$Css$erroneousHex(str);+};+var $rtfeldman$elm_css$Css$minHeight = $rtfeldman$elm_css$Css$prop1('min-height');+var $rtfeldman$elm_css$Html$Styled$p = $rtfeldman$elm_css$Html$Styled$node('p');+var $rtfeldman$elm_css$Css$position = $rtfeldman$elm_css$Css$prop1('position');+var $rtfeldman$elm_css$VirtualDom$Styled$Unstyled = function (a) {+	return {$: 4, a: a};+};+var $rtfeldman$elm_css$VirtualDom$Styled$text = function (str) {+	return $rtfeldman$elm_css$VirtualDom$Styled$Unstyled(+		$elm$virtual_dom$VirtualDom$text(str));+};+var $rtfeldman$elm_css$Html$Styled$text = $rtfeldman$elm_css$VirtualDom$Styled$text;+var $rtfeldman$elm_css$Css$Preprocess$ApplyStyles = function (a) {+	return {$: 6, a: a};+};+var $rtfeldman$elm_css$Css$Internal$property = F2(+	function (key, value) {+		return $rtfeldman$elm_css$Css$Preprocess$AppendProperty(key + (':' + value));+	});+var $rtfeldman$elm_css$Css$Internal$getOverloadedProperty = F3(+	function (functionName, desiredKey, style) {+		getOverloadedProperty:+		while (true) {+			switch (style.$) {+				case 0:+					var str = style.a;+					var key = A2(+						$elm$core$Maybe$withDefault,+						'',+						$elm$core$List$head(+							A2($elm$core$String$split, ':', str)));+					return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, key);+				case 1:+					var selector = style.a;+					return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-selector'));+				case 2:+					var combinator = style.a;+					return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-combinator'));+				case 3:+					var pseudoElement = style.a;+					return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-pseudo-element setter'));+				case 4:+					return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-media-query'));+				case 5:+					return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-keyframes'));+				default:+					if (!style.a.b) {+						return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-empty-Style'));+					} else {+						if (!style.a.b.b) {+							var _v1 = style.a;+							var only = _v1.a;+							var $temp$functionName = functionName,+								$temp$desiredKey = desiredKey,+								$temp$style = only;+							functionName = $temp$functionName;+							desiredKey = $temp$desiredKey;+							style = $temp$style;+							continue getOverloadedProperty;+						} else {+							var _v2 = style.a;+							var first = _v2.a;+							var rest = _v2.b;+							var $temp$functionName = functionName,+								$temp$desiredKey = desiredKey,+								$temp$style = $rtfeldman$elm_css$Css$Preprocess$ApplyStyles(rest);+							functionName = $temp$functionName;+							desiredKey = $temp$desiredKey;+							style = $temp$style;+							continue getOverloadedProperty;+						}+					}+			}+		}+	});+var $rtfeldman$elm_css$Css$Internal$IncompatibleUnits = 0;+var $elm$core$String$fromFloat = _String_fromNumber;+var $rtfeldman$elm_css$Css$Internal$lengthConverter = F3(+	function (units, unitLabel, numericValue) {+		return {+			br: 0,+			bD: 0,+			ak: 0,+			s: 0,+			aF: 0,+			ao: 0,+			R: 0,+			ap: 0,+			aq: 0,+			Z: 0,+			_: 0,+			J: 0,+			T: numericValue,+			av: 0,+			ax: unitLabel,+			aR: units,+			L: _Utils_ap(+				$elm$core$String$fromFloat(numericValue),+				unitLabel)+		};+	});+var $rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty = A3($rtfeldman$elm_css$Css$Internal$lengthConverter, 0, '', 0);+var $rtfeldman$elm_css$Css$textAlign = function (fn) {+	return A3(+		$rtfeldman$elm_css$Css$Internal$getOverloadedProperty,+		'textAlign',+		'text-align',+		fn($rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty));+};+var $elm$core$Dict$values = function (dict) {+	return A3(+		$elm$core$Dict$foldr,+		F3(+			function (key, value, valueList) {+				return A2($elm$core$List$cons, value, valueList);+			}),+		_List_Nil,+		dict);+};+var $rtfeldman$elm_css$Css$VhUnits = 0;+var $rtfeldman$elm_css$Css$vh = A2($rtfeldman$elm_css$Css$Internal$lengthConverter, 0, 'vh');+var $author$project$Main$SetFlag = F2(+	function (a, b) {+		return {$: 2, a: a, b: b};+	});+var $rtfeldman$elm_css$Css$Structure$PseudoElement = $elm$core$Basics$identity;+var $rtfeldman$elm_css$Css$Preprocess$WithPseudoElement = F2(+	function (a, b) {+		return {$: 3, a: a, b: b};+	});+var $rtfeldman$elm_css$Css$pseudoElement = function (element) {+	return $rtfeldman$elm_css$Css$Preprocess$WithPseudoElement(element);+};+var $rtfeldman$elm_css$Css$after = $rtfeldman$elm_css$Css$pseudoElement('after');+var $rtfeldman$elm_css$Css$batch = $rtfeldman$elm_css$Css$Preprocess$ApplyStyles;+var $rtfeldman$elm_css$Html$Styled$button = $rtfeldman$elm_css$Html$Styled$node('button');+var $rtfeldman$elm_css$Css$EmUnits = 0;+var $rtfeldman$elm_css$Css$em = A2($rtfeldman$elm_css$Css$Internal$lengthConverter, 0, 'em');+var $rtfeldman$elm_css$Css$fontSize = $rtfeldman$elm_css$Css$prop1('font-size');+var $rtfeldman$elm_css$Css$fontWeight = function (_v0) {+	var value = _v0.L;+	return A2($rtfeldman$elm_css$Css$property, 'font-weight', value);+};+var $rtfeldman$elm_css$Html$Styled$h2 = $rtfeldman$elm_css$Html$Styled$node('h2');+var $elm$core$Basics$clamp = F3(+	function (low, high, number) {+		return (_Utils_cmp(number, low) < 0) ? low : ((_Utils_cmp(number, high) > 0) ? high : number);+	});+var $elm$core$Basics$round = _Basics_round;+var $author$project$Main$handleFlagValue = F2(+	function (flagName, newValue) {+		return A2(+			$author$project$Main$SetFlag,+			flagName,+			A3(+				$elm$core$Basics$clamp,+				0,+				100,+				$elm$core$Basics$round(newValue)));+	});+var $rtfeldman$elm_css$Html$Styled$input = $rtfeldman$elm_css$Html$Styled$node('input');+var $rtfeldman$elm_css$Css$prop3 = F4(+	function (key, argA, argB, argC) {+		return A2(+			$rtfeldman$elm_css$Css$property,+			key,+			A2(+				$elm$core$String$join,+				' ',+				_List_fromArray(+					[argA.L, argB.L, argC.L])));+	});+var $rtfeldman$elm_css$Css$border3 = $rtfeldman$elm_css$Css$prop3('border');+var $rtfeldman$elm_css$Css$borderBox = {ba: 0, aU: 0, L: 'border-box'};+var $rtfeldman$elm_css$Css$borderRadius = $rtfeldman$elm_css$Css$prop1('border-radius');+var $rtfeldman$elm_css$Css$boxSizing = $rtfeldman$elm_css$Css$prop1('box-sizing');+var $rtfeldman$elm_css$Css$height = $rtfeldman$elm_css$Css$prop1('height');+var $rtfeldman$elm_css$Css$PxUnits = 0;+var $rtfeldman$elm_css$Css$px = A2($rtfeldman$elm_css$Css$Internal$lengthConverter, 0, 'px');+var $rtfeldman$elm_css$Css$solid = {v: 0, ac: 0, L: 'solid'};+var $author$project$Main$inputStyle = $rtfeldman$elm_css$Css$batch(+	_List_fromArray(+		[+			$rtfeldman$elm_css$Css$fontSize(+			$rtfeldman$elm_css$Css$em(1.1)),+			$rtfeldman$elm_css$Css$height(+			$rtfeldman$elm_css$Css$em(1.6)),+			A3(+			$rtfeldman$elm_css$Css$border3,+			$rtfeldman$elm_css$Css$px(1),+			$rtfeldman$elm_css$Css$solid,+			$rtfeldman$elm_css$Css$hex('#ccc')),+			$rtfeldman$elm_css$Css$borderRadius(+			$rtfeldman$elm_css$Css$px(2)),+			$rtfeldman$elm_css$Css$textAlign($rtfeldman$elm_css$Css$center),+			$rtfeldman$elm_css$Css$boxSizing($rtfeldman$elm_css$Css$borderBox),+			$rtfeldman$elm_css$Css$backgroundColor(+			$rtfeldman$elm_css$Css$hex('#fefefe'))+		]));+var $elm$virtual_dom$VirtualDom$lazy2 = _VirtualDom_lazy2;+var $rtfeldman$elm_css$VirtualDom$Styled$lazyHelp = F2(+	function (fn, arg) {+		return $rtfeldman$elm_css$VirtualDom$Styled$toUnstyled(+			fn(arg));+	});+var $rtfeldman$elm_css$VirtualDom$Styled$lazy = F2(+	function (fn, arg) {+		return $rtfeldman$elm_css$VirtualDom$Styled$Unstyled(+			A3($elm$virtual_dom$VirtualDom$lazy2, $rtfeldman$elm_css$VirtualDom$Styled$lazyHelp, fn, arg));+	});+var $rtfeldman$elm_css$Html$Styled$Lazy$lazy = $rtfeldman$elm_css$VirtualDom$Styled$lazy;+var $rtfeldman$elm_css$Css$prop2 = F3(+	function (key, argA, argB) {+		return A2(+			$rtfeldman$elm_css$Css$property,+			key,+			A2(+				$elm$core$String$join,+				' ',+				_List_fromArray(+					[argA.L, argB.L])));+	});+var $rtfeldman$elm_css$Css$margin2 = $rtfeldman$elm_css$Css$prop2('margin');+var $rtfeldman$elm_css$Css$prop4 = F5(+	function (key, argA, argB, argC, argD) {+		return A2(+			$rtfeldman$elm_css$Css$property,+			key,+			A2(+				$elm$core$String$join,+				' ',+				_List_fromArray(+					[argA.L, argB.L, argC.L, argD.L])));+	});+var $rtfeldman$elm_css$Css$margin4 = $rtfeldman$elm_css$Css$prop4('margin');+var $rtfeldman$elm_css$VirtualDom$Styled$property = F2(+	function (key, value) {+		return A3(+			$rtfeldman$elm_css$VirtualDom$Styled$Attribute,+			A2($elm$virtual_dom$VirtualDom$property, key, value),+			_List_Nil,+			'');+	});+var $rtfeldman$elm_css$Html$Styled$Attributes$stringProperty = F2(+	function (key, string) {+		return A2(+			$rtfeldman$elm_css$VirtualDom$Styled$property,+			key,+			$elm$json$Json$Encode$string(string));+	});+var $rtfeldman$elm_css$Html$Styled$Attributes$max = $rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('max');+var $rtfeldman$elm_css$Html$Styled$Attributes$min = $rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('min');+var $rtfeldman$elm_css$Css$normal = {bc: 0, al: 0, Q: 0, bj: 0, L: 'normal', W: 0};+var $elm$virtual_dom$VirtualDom$Normal = function (a) {+	return {$: 0, a: a};+};+var $elm$virtual_dom$VirtualDom$on = _VirtualDom_on;+var $rtfeldman$elm_css$VirtualDom$Styled$on = F2(+	function (eventName, handler) {+		return A3(+			$rtfeldman$elm_css$VirtualDom$Styled$Attribute,+			A2($elm$virtual_dom$VirtualDom$on, eventName, handler),+			_List_Nil,+			'');+	});+var $rtfeldman$elm_css$Html$Styled$Events$on = F2(+	function (event, decoder) {+		return A2(+			$rtfeldman$elm_css$VirtualDom$Styled$on,+			event,+			$elm$virtual_dom$VirtualDom$Normal(decoder));+	});+var $rtfeldman$elm_css$Html$Styled$Events$onClick = function (msg) {+	return A2(+		$rtfeldman$elm_css$Html$Styled$Events$on,+		'click',+		$elm$json$Json$Decode$succeed(msg));+};+var $rtfeldman$elm_css$Css$padding = $rtfeldman$elm_css$Css$prop1('padding');+var $rtfeldman$elm_css$Html$Styled$section = $rtfeldman$elm_css$Html$Styled$node('section');+var $rtfeldman$elm_css$Html$Styled$Attributes$step = function (n) {+	return A2($rtfeldman$elm_css$Html$Styled$Attributes$stringProperty, 'step', n);+};+var $elm$json$Json$Decode$andThen = _Json_andThen;+var $elm$json$Json$Decode$fail = _Json_fail;+var $elm$json$Json$Decode$field = _Json_decodeField;+var $elm$json$Json$Decode$at = F2(+	function (fields, decoder) {+		return A3($elm$core$List$foldr, $elm$json$Json$Decode$field, decoder, fields);+	});+var $elm$json$Json$Decode$string = _Json_decodeString;+var $rtfeldman$elm_css$Html$Styled$Events$targetValue = A2(+	$elm$json$Json$Decode$at,+	_List_fromArray(+		['target', 'value']),+	$elm$json$Json$Decode$string);+var $elm$core$String$toFloat = _String_toFloat;+var $author$project$Main$targetValueNumber = A2(+	$elm$json$Json$Decode$andThen,+	function (str) {+		var _v0 = $elm$core$String$toFloat(str);+		if (_v0.$ === 1) {+			return $elm$json$Json$Decode$fail('Expected a number');+		} else {+			var _float = _v0.a;+			return $elm$json$Json$Decode$succeed(_float);+		}+	},+	$rtfeldman$elm_css$Html$Styled$Events$targetValue);+var $elm$core$Char$toUpper = _Char_toUpper;+var $author$project$CaseConversion$capitalize = function (original) {+	var _v0 = $elm$core$String$uncons(original);+	if (_v0.$ === 1) {+		return original;+	} else {+		var _v1 = _v0.a;+		var first = _v1.a;+		var rest = _v1.b;+		return A2(+			$elm$core$String$cons,+			$elm$core$Char$toUpper(first),+			rest);+	}+};+var $elm$parser$Parser$Done = function (a) {+	return {$: 1, a: a};+};+var $elm$parser$Parser$Loop = function (a) {+	return {$: 0, a: a};+};+var $elm$parser$Parser$Advanced$Parser = $elm$core$Basics$identity;+var $elm$parser$Parser$Advanced$Bad = F2(+	function (a, b) {+		return {$: 1, a: a, b: b};+	});+var $elm$parser$Parser$Advanced$Good = F3(+	function (a, b, c) {+		return {$: 0, a: a, b: b, c: c};+	});+var $elm$parser$Parser$Advanced$loopHelp = F4(+	function (p, state, callback, s0) {+		loopHelp:+		while (true) {+			var _v0 = callback(state);+			var parse = _v0;+			var _v1 = parse(s0);+			if (!_v1.$) {+				var p1 = _v1.a;+				var step = _v1.b;+				var s1 = _v1.c;+				if (!step.$) {+					var newState = step.a;+					var $temp$p = p || p1,+						$temp$state = newState,+						$temp$callback = callback,+						$temp$s0 = s1;+					p = $temp$p;+					state = $temp$state;+					callback = $temp$callback;+					s0 = $temp$s0;+					continue loopHelp;+				} else {+					var result = step.a;+					return A3($elm$parser$Parser$Advanced$Good, p || p1, result, s1);+				}+			} else {+				var p1 = _v1.a;+				var x = _v1.b;+				return A2($elm$parser$Parser$Advanced$Bad, p || p1, x);+			}+		}+	});+var $elm$parser$Parser$Advanced$loop = F2(+	function (state, callback) {+		return function (s) {+			return A4($elm$parser$Parser$Advanced$loopHelp, false, state, callback, s);+		};+	});+var $elm$parser$Parser$Advanced$map = F2(+	function (func, _v0) {+		var parse = _v0;+		return function (s0) {+			var _v1 = parse(s0);+			if (!_v1.$) {+				var p = _v1.a;+				var a = _v1.b;+				var s1 = _v1.c;+				return A3(+					$elm$parser$Parser$Advanced$Good,+					p,+					func(a),+					s1);+			} else {+				var p = _v1.a;+				var x = _v1.b;+				return A2($elm$parser$Parser$Advanced$Bad, p, x);+			}+		};+	});+var $elm$parser$Parser$map = $elm$parser$Parser$Advanced$map;+var $elm$parser$Parser$Advanced$Done = function (a) {+	return {$: 1, a: a};+};+var $elm$parser$Parser$Advanced$Loop = function (a) {+	return {$: 0, a: a};+};+var $elm$parser$Parser$toAdvancedStep = function (step) {+	if (!step.$) {+		var s = step.a;+		return $elm$parser$Parser$Advanced$Loop(s);+	} else {+		var a = step.a;+		return $elm$parser$Parser$Advanced$Done(a);+	}+};+var $elm$parser$Parser$loop = F2(+	function (state, callback) {+		return A2(+			$elm$parser$Parser$Advanced$loop,+			state,+			function (s) {+				return A2(+					$elm$parser$Parser$map,+					$elm$parser$Parser$toAdvancedStep,+					callback(s));+			});+	});+var $elm$parser$Parser$Advanced$Empty = {$: 0};+var $elm$parser$Parser$Advanced$Append = F2(+	function (a, b) {+		return {$: 2, a: a, b: b};+	});+var $elm$parser$Parser$Advanced$oneOfHelp = F3(+	function (s0, bag, parsers) {+		oneOfHelp:+		while (true) {+			if (!parsers.b) {+				return A2($elm$parser$Parser$Advanced$Bad, false, bag);+			} else {+				var parse = parsers.a;+				var remainingParsers = parsers.b;+				var _v1 = parse(s0);+				if (!_v1.$) {+					var step = _v1;+					return step;+				} else {+					var step = _v1;+					var p = step.a;+					var x = step.b;+					if (p) {+						return step;+					} else {+						var $temp$s0 = s0,+							$temp$bag = A2($elm$parser$Parser$Advanced$Append, bag, x),+							$temp$parsers = remainingParsers;+						s0 = $temp$s0;+						bag = $temp$bag;+						parsers = $temp$parsers;+						continue oneOfHelp;+					}+				}+			}+		}+	});+var $elm$parser$Parser$Advanced$oneOf = function (parsers) {+	return function (s) {+		return A3($elm$parser$Parser$Advanced$oneOfHelp, s, $elm$parser$Parser$Advanced$Empty, parsers);+	};+};+var $elm$parser$Parser$oneOf = $elm$parser$Parser$Advanced$oneOf;+var $elm$parser$Parser$DeadEnd = F3(+	function (row, col, problem) {+		return {bG: col, ca: problem, cl: row};+	});+var $elm$parser$Parser$problemToDeadEnd = function (p) {+	return A3($elm$parser$Parser$DeadEnd, p.cl, p.bG, p.ca);+};+var $elm$parser$Parser$Advanced$bagToList = F2(+	function (bag, list) {+		bagToList:+		while (true) {+			switch (bag.$) {+				case 0:+					return list;+				case 1:+					var bag1 = bag.a;+					var x = bag.b;+					var $temp$bag = bag1,+						$temp$list = A2($elm$core$List$cons, x, list);+					bag = $temp$bag;+					list = $temp$list;+					continue bagToList;+				default:+					var bag1 = bag.a;+					var bag2 = bag.b;+					var $temp$bag = bag1,+						$temp$list = A2($elm$parser$Parser$Advanced$bagToList, bag2, list);+					bag = $temp$bag;+					list = $temp$list;+					continue bagToList;+			}+		}+	});+var $elm$parser$Parser$Advanced$run = F2(+	function (_v0, src) {+		var parse = _v0;+		var _v1 = parse(+			{bG: 1, f: _List_Nil, g: 1, b: 0, cl: 1, a: src});+		if (!_v1.$) {+			var value = _v1.b;+			return $elm$core$Result$Ok(value);+		} else {+			var bag = _v1.b;+			return $elm$core$Result$Err(+				A2($elm$parser$Parser$Advanced$bagToList, bag, _List_Nil));+		}+	});+var $elm$parser$Parser$run = F2(+	function (parser, source) {+		var _v0 = A2($elm$parser$Parser$Advanced$run, parser, source);+		if (!_v0.$) {+			var a = _v0.a;+			return $elm$core$Result$Ok(a);+		} else {+			var problems = _v0.a;+			return $elm$core$Result$Err(+				A2($elm$core$List$map, $elm$parser$Parser$problemToDeadEnd, problems));+		}+	});+var $elm$parser$Parser$Advanced$succeed = function (a) {+	return function (s) {+		return A3($elm$parser$Parser$Advanced$Good, false, a, s);+	};+};+var $elm$parser$Parser$succeed = $elm$parser$Parser$Advanced$succeed;+var $elm$parser$Parser$UnexpectedChar = {$: 11};+var $elm$parser$Parser$Advanced$AddRight = F2(+	function (a, b) {+		return {$: 1, a: a, b: b};+	});+var $elm$parser$Parser$Advanced$DeadEnd = F4(+	function (row, col, problem, contextStack) {+		return {bG: col, cQ: contextStack, ca: problem, cl: row};+	});+var $elm$parser$Parser$Advanced$fromState = F2(+	function (s, x) {+		return A2(+			$elm$parser$Parser$Advanced$AddRight,+			$elm$parser$Parser$Advanced$Empty,+			A4($elm$parser$Parser$Advanced$DeadEnd, s.cl, s.bG, x, s.f));+	});+var $elm$parser$Parser$Advanced$isSubChar = _Parser_isSubChar;+var $elm$parser$Parser$Advanced$chompIf = F2(+	function (isGood, expecting) {+		return function (s) {+			var newOffset = A3($elm$parser$Parser$Advanced$isSubChar, isGood, s.b, s.a);+			return _Utils_eq(newOffset, -1) ? A2(+				$elm$parser$Parser$Advanced$Bad,+				false,+				A2($elm$parser$Parser$Advanced$fromState, s, expecting)) : (_Utils_eq(newOffset, -2) ? A3(+				$elm$parser$Parser$Advanced$Good,+				true,+				0,+				{bG: 1, f: s.f, g: s.g, b: s.b + 1, cl: s.cl + 1, a: s.a}) : A3(+				$elm$parser$Parser$Advanced$Good,+				true,+				0,+				{bG: s.bG + 1, f: s.f, g: s.g, b: newOffset, cl: s.cl, a: s.a}));+		};+	});+var $elm$parser$Parser$chompIf = function (isGood) {+	return A2($elm$parser$Parser$Advanced$chompIf, isGood, $elm$parser$Parser$UnexpectedChar);+};+var $elm$parser$Parser$Advanced$chompWhileHelp = F5(+	function (isGood, offset, row, col, s0) {+		chompWhileHelp:+		while (true) {+			var newOffset = A3($elm$parser$Parser$Advanced$isSubChar, isGood, offset, s0.a);+			if (_Utils_eq(newOffset, -1)) {+				return A3(+					$elm$parser$Parser$Advanced$Good,+					_Utils_cmp(s0.b, offset) < 0,+					0,+					{bG: col, f: s0.f, g: s0.g, b: offset, cl: row, a: s0.a});+			} else {+				if (_Utils_eq(newOffset, -2)) {+					var $temp$isGood = isGood,+						$temp$offset = offset + 1,+						$temp$row = row + 1,+						$temp$col = 1,+						$temp$s0 = s0;+					isGood = $temp$isGood;+					offset = $temp$offset;+					row = $temp$row;+					col = $temp$col;+					s0 = $temp$s0;+					continue chompWhileHelp;+				} else {+					var $temp$isGood = isGood,+						$temp$offset = newOffset,+						$temp$row = row,+						$temp$col = col + 1,+						$temp$s0 = s0;+					isGood = $temp$isGood;+					offset = $temp$offset;+					row = $temp$row;+					col = $temp$col;+					s0 = $temp$s0;+					continue chompWhileHelp;+				}+			}+		}+	});+var $elm$parser$Parser$Advanced$chompWhile = function (isGood) {+	return function (s) {+		return A5($elm$parser$Parser$Advanced$chompWhileHelp, isGood, s.b, s.cl, s.bG, s);+	};+};+var $elm$parser$Parser$chompWhile = $elm$parser$Parser$Advanced$chompWhile;+var $elm$core$Basics$always = F2(+	function (a, _v0) {+		return a;+	});+var $elm$parser$Parser$Advanced$mapChompedString = F2(+	function (func, _v0) {+		var parse = _v0;+		return function (s0) {+			var _v1 = parse(s0);+			if (_v1.$ === 1) {+				var p = _v1.a;+				var x = _v1.b;+				return A2($elm$parser$Parser$Advanced$Bad, p, x);+			} else {+				var p = _v1.a;+				var a = _v1.b;+				var s1 = _v1.c;+				return A3(+					$elm$parser$Parser$Advanced$Good,+					p,+					A2(+						func,+						A3($elm$core$String$slice, s0.b, s1.b, s0.a),+						a),+					s1);+			}+		};+	});+var $elm$parser$Parser$Advanced$getChompedString = function (parser) {+	return A2($elm$parser$Parser$Advanced$mapChompedString, $elm$core$Basics$always, parser);+};+var $elm$parser$Parser$getChompedString = $elm$parser$Parser$Advanced$getChompedString;+var $elm$parser$Parser$Advanced$map2 = F3(+	function (func, _v0, _v1) {+		var parseA = _v0;+		var parseB = _v1;+		return function (s0) {+			var _v2 = parseA(s0);+			if (_v2.$ === 1) {+				var p = _v2.a;+				var x = _v2.b;+				return A2($elm$parser$Parser$Advanced$Bad, p, x);+			} else {+				var p1 = _v2.a;+				var a = _v2.b;+				var s1 = _v2.c;+				var _v3 = parseB(s1);+				if (_v3.$ === 1) {+					var p2 = _v3.a;+					var x = _v3.b;+					return A2($elm$parser$Parser$Advanced$Bad, p1 || p2, x);+				} else {+					var p2 = _v3.a;+					var b = _v3.b;+					var s2 = _v3.c;+					return A3(+						$elm$parser$Parser$Advanced$Good,+						p1 || p2,+						A2(func, a, b),+						s2);+				}+			}+		};+	});+var $elm$parser$Parser$Advanced$ignorer = F2(+	function (keepParser, ignoreParser) {+		return A3($elm$parser$Parser$Advanced$map2, $elm$core$Basics$always, keepParser, ignoreParser);+	});+var $elm$parser$Parser$ignorer = $elm$parser$Parser$Advanced$ignorer;+var $author$project$CaseConversion$isWhitespace = function (c) {+	return (c === ' ') || ((c === '\n') || ((c === '\u000D') || (c === '_')));+};+var $elm$parser$Parser$Advanced$keeper = F2(+	function (parseFunc, parseArg) {+		return A3($elm$parser$Parser$Advanced$map2, $elm$core$Basics$apL, parseFunc, parseArg);+	});+var $elm$parser$Parser$keeper = $elm$parser$Parser$Advanced$keeper;+var $author$project$CaseConversion$startsWord = function (c) {+	return !($author$project$CaseConversion$isWhitespace(c) || ($elm$core$Char$isUpper(c) || $elm$core$Char$isDigit(c)));+};+var $author$project$CaseConversion$word = A2(+	$elm$parser$Parser$keeper,+	A2(+		$elm$parser$Parser$ignorer,+		$elm$parser$Parser$succeed($elm$core$Basics$identity),+		$elm$parser$Parser$chompWhile($author$project$CaseConversion$isWhitespace)),+	A2(+		$elm$parser$Parser$ignorer,+		$elm$parser$Parser$getChompedString(+			A2(+				$elm$parser$Parser$ignorer,+				A2(+					$elm$parser$Parser$ignorer,+					$elm$parser$Parser$succeed(0),+					$elm$parser$Parser$chompIf(+						A2($elm$core$Basics$composeL, $elm$core$Basics$not, $author$project$CaseConversion$isWhitespace))),+				$elm$parser$Parser$chompWhile($author$project$CaseConversion$startsWord))),+		$elm$parser$Parser$chompWhile($author$project$CaseConversion$isWhitespace)));+var $author$project$CaseConversion$words = function (string) {+	var parser = A2(+		$elm$parser$Parser$loop,+		_List_Nil,+		function (words_) {+			return $elm$parser$Parser$oneOf(+				_List_fromArray(+					[+						A2(+						$elm$parser$Parser$map,+						function (word_) {+							return $elm$parser$Parser$Loop(+								A2($elm$core$List$cons, word_, words_));+						},+						$author$project$CaseConversion$word),+						$elm$parser$Parser$succeed(+						$elm$parser$Parser$Done(words_))+					]));+		});+	var _v0 = A2($elm$parser$Parser$run, parser, string);+	if (_v0.$ === 1) {+		return _List_fromArray(+			[string]);+	} else {+		var words_ = _v0.a;+		return words_;+	}+};+var $author$project$CaseConversion$toSpaceCase = function (original) {+	return A2(+		$elm$core$String$join,+		' ',+		A2(+			$elm$core$List$map,+			$author$project$CaseConversion$capitalize,+			$elm$core$List$reverse(+				$author$project$CaseConversion$words(original))));+};+var $rtfeldman$elm_css$Html$Styled$Attributes$type_ = $rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('type');+var $rtfeldman$elm_css$Html$Styled$Attributes$value = $rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('value');+var $rtfeldman$elm_css$Css$width = $rtfeldman$elm_css$Css$prop1('width');+var $rtfeldman$elm_css$Css$UnitlessInteger = 0;+var $rtfeldman$elm_css$Css$zero = {aF: 0, ao: 0, R: 0, ap: 0, aq: 0, Z: 0, _: 0, aH: 0, T: 0, a1: 0, ax: '', aR: 0, L: '0'};+var $author$project$Main$viewFlag = F2(+	function (name, percentage) {+		var _v0 = $author$project$Persisted$value(percentage);+		var current = _v0;+		return A2(+			$rtfeldman$elm_css$Html$Styled$section,+			_List_fromArray(+				[+					$rtfeldman$elm_css$Html$Styled$Attributes$css(+					_List_fromArray(+						[+							function () {+							var _v1 = $author$project$Persisted$value(percentage);+							switch (_v1) {+								case 0:+									return $rtfeldman$elm_css$Css$batch(_List_Nil);+								case 100:+									return $rtfeldman$elm_css$Css$batch(+										_List_fromArray(+											[+												$rtfeldman$elm_css$Css$backgroundColor(+												$rtfeldman$elm_css$Css$hex('#C1F0C1'))+											]));+								default:+									return $rtfeldman$elm_css$Css$batch(+										_List_fromArray(+											[+												$rtfeldman$elm_css$Css$backgroundColor(+												$rtfeldman$elm_css$Css$hex('#F0EEC1'))+											]));+							}+						}(),+							$rtfeldman$elm_css$Css$padding(+							$rtfeldman$elm_css$Css$px(10))+						]))+				]),+			_List_fromArray(+				[+					A2(+					$rtfeldman$elm_css$Html$Styled$h2,+					_List_fromArray(+						[+							$rtfeldman$elm_css$Html$Styled$Attributes$css(+							_List_fromArray(+								[+									$rtfeldman$elm_css$Css$fontWeight($rtfeldman$elm_css$Css$normal),+									$rtfeldman$elm_css$Css$fontSize(+									$rtfeldman$elm_css$Css$em(1.4)),+									A4(+									$rtfeldman$elm_css$Css$margin4,+									$rtfeldman$elm_css$Css$zero,+									$rtfeldman$elm_css$Css$zero,+									$rtfeldman$elm_css$Css$em(0.5),+									$rtfeldman$elm_css$Css$zero)+								]))+						]),+					_List_fromArray(+						[+							A2(+							$rtfeldman$elm_css$Html$Styled$Lazy$lazy,+							A2($elm$core$Basics$composeL, $rtfeldman$elm_css$Html$Styled$text, $author$project$CaseConversion$toSpaceCase),+							name)+						])),+					A2(+					$rtfeldman$elm_css$Html$Styled$button,+					_List_fromArray(+						[+							$rtfeldman$elm_css$Html$Styled$Attributes$css(+							_List_fromArray(+								[$author$project$Main$inputStyle])),+							$rtfeldman$elm_css$Html$Styled$Events$onClick(+							A2($author$project$Main$SetFlag, name, 0))+						]),+					_List_fromArray(+						[+							$rtfeldman$elm_css$Html$Styled$text('❌')+						])),+					A2(+					$rtfeldman$elm_css$Html$Styled$input,+					_List_fromArray(+						[+							$rtfeldman$elm_css$Html$Styled$Attributes$value(+							$elm$core$String$fromInt(current)),+							$rtfeldman$elm_css$Html$Styled$Attributes$type_('number'),+							$rtfeldman$elm_css$Html$Styled$Attributes$min('0'),+							$rtfeldman$elm_css$Html$Styled$Attributes$max('100'),+							$rtfeldman$elm_css$Html$Styled$Attributes$step('1'),+							$rtfeldman$elm_css$Html$Styled$Attributes$css(+							_List_fromArray(+								[+									$author$project$Main$inputStyle,+									$rtfeldman$elm_css$Css$width(+									$rtfeldman$elm_css$Css$px(60)),+									A2(+									$rtfeldman$elm_css$Css$margin2,+									$rtfeldman$elm_css$Css$zero,+									$rtfeldman$elm_css$Css$px(10)),+									$rtfeldman$elm_css$Css$after(+									_List_fromArray(+										[+											A2($rtfeldman$elm_css$Css$property, 'content', '%')+										]))+								])),+							A2(+							$rtfeldman$elm_css$Html$Styled$Events$on,+							'input',+							A2(+								$elm$json$Json$Decode$map,+								$author$project$Main$handleFlagValue(name),+								$author$project$Main$targetValueNumber))+						]),+					_List_Nil),+					A2(+					$rtfeldman$elm_css$Html$Styled$button,+					_List_fromArray(+						[+							$rtfeldman$elm_css$Html$Styled$Attributes$css(+							_List_fromArray(+								[$author$project$Main$inputStyle])),+							$rtfeldman$elm_css$Html$Styled$Events$onClick(+							A2($author$project$Main$SetFlag, name, 100))+						]),+					_List_fromArray(+						[+							$rtfeldman$elm_css$Html$Styled$text('✅')+						]))+				]));+	});+var $rtfeldman$elm_css$Css$VwUnits = 0;+var $rtfeldman$elm_css$Css$vw = A2($rtfeldman$elm_css$Css$Internal$lengthConverter, 0, 'vw');+var $author$project$Main$view = function (model) {+	return A2(+		$rtfeldman$elm_css$Html$Styled$div,+		_List_fromArray(+			[+				$rtfeldman$elm_css$Html$Styled$Attributes$css(+				_List_fromArray(+					[+						$rtfeldman$elm_css$Css$textAlign($rtfeldman$elm_css$Css$center),+						$rtfeldman$elm_css$Css$fontFamilies(+						_List_fromArray(+							['Helvetica Neue', 'Helvetica', 'Arial', 'sans-serif'])),+						$rtfeldman$elm_css$Css$color(+						$rtfeldman$elm_css$Css$hex('#333')),+						$rtfeldman$elm_css$Css$backgroundColor(+						$rtfeldman$elm_css$Css$hex('#fefefe')),+						$rtfeldman$elm_css$Css$position($rtfeldman$elm_css$Css$absolute),+						$rtfeldman$elm_css$Css$minHeight(+						$rtfeldman$elm_css$Css$vh(100)),+						$rtfeldman$elm_css$Css$width(+						$rtfeldman$elm_css$Css$vw(100))+					]))+			]),+		A2(+			$elm$core$List$cons,+			A2(+				$rtfeldman$elm_css$Html$Styled$h1,+				_List_Nil,+				_List_fromArray(+					[+						$rtfeldman$elm_css$Html$Styled$text('Feature Flags')+					])),+			function () {+				var _v0 = model.D;+				if (!_v0.$) {+					return _List_fromArray(+						[+							$rtfeldman$elm_css$Html$Styled$text('Loading...')+						]);+				} else {+					var flags = _v0.a;+					return A2(+						$elm$core$List$cons,+						A2(+							$rtfeldman$elm_css$Html$Styled$p,+							_List_Nil,+							_List_fromArray(+								[+									$rtfeldman$elm_css$Html$Styled$text('Every feature flag can be completely enabled, completely disabled, or enabled for a percentage of traffic.')+								])),+						$elm$core$Dict$values(+							A2($elm$core$Dict$map, $author$project$Main$viewFlag, flags)));+				}+			}()));+};+var $author$project$Main$main = $elm$browser$Browser$application(+	{+		c3: F3(+			function (_v0, url, _v1) {+				var rootPath = A2($elm$core$String$split, '/', url.dm);+				return _Utils_Tuple2(+					{D: $author$project$Main$Loading, a5: rootPath},+					$author$project$Main$sendLoadFlagsRequest(rootPath));+			}),+		di: function (_v2) {+			return $author$project$Main$NoOp;+		},+		dj: function (_v3) {+			return $author$project$Main$NoOp;+		},+		dw: function (_v4) {+			return A2(+				$elm$time$Time$every,+				5 * 1000,+				function (_v5) {+					return $author$project$Main$LoadFlags;+				});+		},+		dC: $author$project$Main$update,+		dE: function (model) {+			return {+				bA: _List_fromArray(+					[+						$rtfeldman$elm_css$Html$Styled$toUnstyled(+						$author$project$Main$view(model))+					]),+				dA: 'Feature Flags'+			};+		}+	});+_Platform_export({'Main':{'init':$author$project$Main$main(+	$elm$json$Json$Decode$succeed(0))(0)}});}(this));    var app = Elm.Main.init({ node: document.getElementById("elm") }); }
src/Network/FeatureFlags.hs view
@@ -66,6 +66,7 @@ import Data.Bifunctor (first) import qualified Data.ByteString as B import qualified Data.HashMap.Strict as Map+import qualified Data.HashSet as Set import qualified Data.IORef as IORef import Data.Kind (Type) import qualified Data.Maybe as Maybe@@ -127,7 +128,9 @@ readFlagConfigs :: [T.Text] -> Store flags -> IO (Map.HashMap T.Text Percent) readFlagConfigs keys store = do   let defaults = zip keys (repeat (Percent 0))-  stored <- Maybe.catMaybes . map decodeFlagConfig <$> readKeys store+  let keySet = Set.fromList keys+  stored' <- Maybe.catMaybes . map decodeFlagConfig <$> readKeys store+  let stored = filter (\(k, _) -> Set.member k keySet) stored'   pure $ Map.fromList $ defaults <> stored  decodeFlagConfig :: (B.ByteString, B.ByteString) -> Maybe (T.Text, Percent)
wai-feature-flags.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 184959f4466db0edd22a62ebbfe0a7cd9dff71d3499da077fb28b6c3f877e384+-- hash: 5f636ade04903a879e49301a8a893bccfcc1c21f5b4c225839e027930b4d2e4c  name:           wai-feature-flags-version:        0.1.0.0+version:        0.1.0.1 synopsis:       Feature flag support for WAI applications. description:    Please see the README at <https://github.com/jwoudenberg/wai-feature-flags>. category:       Web