Code source du site TeacherCorner.lamdera.app, contenant une suite d'outils permettant d'automatiser la production de documents pédagogiques.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
TeacherCorner/qcm.min.js

1 lines
127 KiB

(function(scope){"use strict";function F(arity,fun,wrapper){wrapper.a=arity;wrapper.f=fun;return wrapper}function F2(fun){return F(2,fun,function(a){return function(b){return fun(a,b)}})}function F3(fun){return F(3,fun,function(a){return function(b){return function(c){return fun(a,b,c)}}})}function F4(fun){return F(4,fun,function(a){return function(b){return function(c){return function(d){return fun(a,b,c,d)}}}})}function F5(fun){return F(5,fun,function(a){return function(b){return function(c){return function(d){return function(e){return fun(a,b,c,d,e)}}}}})}function F6(fun){return F(6,fun,function(a){return function(b){return function(c){return function(d){return function(e){return function(f){return fun(a,b,c,d,e,f)}}}}}})}function F7(fun){return F(7,fun,function(a){return function(b){return function(c){return function(d){return function(e){return function(f){return function(g){return fun(a,b,c,d,e,f,g)}}}}}}})}function F8(fun){return F(8,fun,function(a){return function(b){return function(c){return function(d){return function(e){return function(f){return function(g){return function(h){return fun(a,b,c,d,e,f,g,h)}}}}}}}})}function F9(fun){return F(9,fun,function(a){return function(b){return function(c){return function(d){return function(e){return function(f){return function(g){return function(h){return function(i){return fun(a,b,c,d,e,f,g,h,i)}}}}}}}}})}function A2(fun,a,b){return fun.a===2?fun.f(a,b):fun(a)(b)}function A3(fun,a,b,c){return fun.a===3?fun.f(a,b,c):fun(a)(b)(c)}function A4(fun,a,b,c,d){return fun.a===4?fun.f(a,b,c,d):fun(a)(b)(c)(d)}function A5(fun,a,b,c,d,e){return fun.a===5?fun.f(a,b,c,d,e):fun(a)(b)(c)(d)(e)}function A6(fun,a,b,c,d,e,f){return fun.a===6?fun.f(a,b,c,d,e,f):fun(a)(b)(c)(d)(e)(f)}function A7(fun,a,b,c,d,e,f,g){return fun.a===7?fun.f(a,b,c,d,e,f,g):fun(a)(b)(c)(d)(e)(f)(g)}function A8(fun,a,b,c,d,e,f,g,h){return fun.a===8?fun.f(a,b,c,d,e,f,g,h):fun(a)(b)(c)(d)(e)(f)(g)(h)}function A9(fun,a,b,c,d,e,f,g,h,i){return fun.a===9?fun.f(a,b,c,d,e,f,g,h,i):fun(a)(b)(c)(d)(e)(f)(g)(h)(i)}var _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});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});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)}}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){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?""+string+"":string}function _Debug_numberColor(ansi,string){return ansi?""+string+"":string}function _Debug_stringColor(ansi,string){return ansi?""+string+"":string}function _Debug_charColor(ansi,string){return ansi?""+string+"":string}function _Debug_fadeColor(ansi,string){return ansi?""+string+"":string}function _Debug_internalColor(ansi,string){return ansi?""+string+"":string}function _Debug_toHexDigit(n){return String.fromCharCode(n<10?48+n:55+n)}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.am.F===region.aE.F){return"on line "+region.am.F}return"on lines "+region.am.F+" through "+region.aE.F}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.$<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)});function _Utils_cmp(x,y,ord){if(typeof x!=="object"){return x===y?0:x<y?-1:1}if(typeof x.$==="undefined"){return(ord=_Utils_cmp(x.a,y.a))?ord:(ord=_Utils_cmp(x.b,y.b))?ord:_Utils_cmp(x.c,y.c)}for(;x.b&&y.b&&!(ord=_Utils_cmp(x.a,y.a));x=x.b,y=y.b){}return ord||(x.b?1:y.b?-1: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});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)}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}var _Utils_append=F2(_Utils_ap);function _Utils_ap(xs,ys){if(typeof xs==="string"){return xs+ys}if(!xs.b){return ys}var root=_List_Cons(xs.a,ys);xs=xs.b;for(var curr=root;xs.b;xs=xs.b){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){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){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){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){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){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}))});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});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});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);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;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(55296<=word&&word<=56319?_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(55296<=word&&word<=56319){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(55296<=word&&word<=56319){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(55296<=word&&word<=56319){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(55296<=word&&word<=56319){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(56320<=word&&word<=57343){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(56320<=word&&word<=57343){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(56320<=word&&word<=57343){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)});function _String_fromNumber(number){return number+""}function _String_toInt(str){var total=0;var code0=str.charCodeAt(0);var start=code0==43||code0==45?1:0;for(var i=start;i<str.length;++i){var code=str.charCodeAt(i);if(code<48||57<code){return $elm$core$Maybe$Nothing}total=10*total+code-48}return i==start?$elm$core$Maybe$Nothing:$elm$core$Maybe$Just(code0==45?-total:total)}function _String_toFloat(s){if(s.length===0||/[\sxbo]/.test(s)){return $elm$core$Maybe$Nothing}var n=+s;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(55296<=code&&code<=56319){return(code-55296)*1024+char.charCodeAt(1)-56320+65536}return code}function _Char_fromCode(code){return _Utils_chr(code<0||1114111<code?"<EFBFBD>":code<=65535?String.fromCharCode(code):(code-=65536,String.fromCharCode(Math.floor(code/1024)+55296,code%1024+56320)))}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_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}}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])});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;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){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)))}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}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);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}}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))})}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{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)}})}var _Platform_worker=F4(function(impl,flagDecoder,debugMetadata,args){return _Platform_initialize(flagDecoder,args,impl.aK,impl.a0,impl.aZ,function(){return function(){}})});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);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}:{}}var _Platform_preload;function _Platform_registerPreload(url){_Platform_preload.add(url)}var _Platform_effectManagers={};function _Platform_setupEffects(managers,sendToApp){var ports;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))}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})});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}});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){_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}function _Platform_checkPortName(name){if(_Platform_effectManagers[name]){_Debug_crash(3,name)}}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;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){var currentSubs=subs;var value=_Json_unwrap(converter(cmdList.a));for(var i=0;i<currentSubs.length;i++){currentSubs[i](value)}}return init});function subscribe(callback){subs.push(callback)}function unsubscribe(callback){subs=subs.slice();var index=subs.indexOf(callback);if(index>=0){subs.splice(index,1)}}return{subscribe:subscribe,unsubscribe:unsubscribe}}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;var init=_Scheduler_succeed(null);_Platform_effectManagers[name].b=init;_Platform_effectManagers[name].c=F3(function(router,subList,state){subs=subList;return init});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){sendToApp(temp.a(value))}}return{send:send}}function _Platform_export(exports){scope["Elm"]?_Platform_mergeExportsProd(scope["Elm"],exports):scope["Elm"]=exports}function _Platform_mergeExportsProd(obj,exports){for(var name in exports){name in obj?name=="init"?_Debug_crash(6):_Platform_mergeExportsProd(obj[name],exports[name]):obj[name]=exports[name]}}function _Platform_export_UNUSED(exports){scope["Elm"]?_Platform_mergeExportsDebug("Elm",scope["Elm"],exports):scope["Elm"]=exports}function _Platform_mergeExportsDebug(moduleName,obj,exports){for(var name in exports){name in obj?name=="init"?_Debug_crash(6,moduleName):_Platform_mergeExportsDebug(moduleName+"."+name,obj[name],exports[name]):obj[name]=exports[name]}}var _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){var node=args["node"];node.parentNode.replaceChild(_VirtualDom_render(virtualNode,function(){}),node);return{}});function _VirtualDom_text(string){return{$:0,a:string}}var _VirtualDom_nodeNS=F2(function(namespace,tag){return F2(function(factList,kidList){for(var kids=[],descendantsCount=0;kidList.b;kidList=kidList.b){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);var _VirtualDom_keyedNodeNS=F2(function(namespace,tag){return F2(function(factList,kidList){for(var kids=[],descendantsCount=0;kidList.b;kidList=kidList.b){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);function _VirtualDom_custom(factList,model,render,diff){return{$:3,d:_VirtualDom_organizeFacts(factList),g:model,h:render,i:diff}}var _VirtualDom_map=F2(function(tagger,node){return{$:4,j:tagger,k:node,b:1+(node.b||0)}});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)})});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}}});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}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);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{u:func(record.u),R:record.R,P:record.P}});function _VirtualDom_organizeFacts(factList){for(var facts={};factList.b;factList=factList.b){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}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}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}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)}}function _VirtualDom_applyStyles(domNode,styles){var domNodeStyle=domNode.style;for(var key in styles){domNodeStyle[key]=styles[key]}}function _VirtualDom_applyAttrs(domNode,attrs){for(var key in attrs){var value=attrs[key];typeof value!=="undefined"?domNode.setAttribute(key,value):domNode.removeAttribute(key)}}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)}}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}}var _VirtualDom_passiveSupported;try{window.addEventListener("t",null,Object.defineProperty({},"passive",{get:function(){_VirtualDom_passiveSupported=true}}))}catch(e){}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);var value=result.a;var message=!tag?value:tag<3?value.a:value.u;var stopPropagation=tag==1?value.b:tag==3&&value.R;var currentEventNode=(stopPropagation&&event.stopPropagation(),(tag==2?value.b:tag==3&&value.P)&&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)}callback.q=initialHandler;return callback}function _VirtualDom_equalEvents(x,y){return x.$==y.$&&_Json_equality(x.a,y.a)}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.$;if(xType!==yType){if(xType===1&&yType===2){y=_VirtualDom_dekey(y);yType=1}else{_VirtualDom_pushPatch(patches,0,index,y);return}}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: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}if(nesting&&xTaggers.length!==yTaggers.length){_VirtualDom_pushPatch(patches,0,index,y);return}if(nesting?!_VirtualDom_pairwiseRefEqual(xTaggers,yTaggers):xTaggers!==yTaggers){_VirtualDom_pushPatch(patches,2,index,yTaggers)}_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}}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){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)}function _VirtualDom_diffFacts(x,y,category){var diff;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}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];if(xValue===yValue&&xKey!=="value"&&xKey!=="checked"||category==="a0"&&_VirtualDom_equalEvents(xValue,yValue)){continue}diff=diff||{};diff[xKey]=yValue}for(var yKey in y){if(!(yKey in x)){diff=diff||{};diff[yKey]=y[yKey]}}return diff}function _VirtualDom_diffKids(xParent,yParent,patches,index){var xKids=xParent.e;var yKids=yParent.e;var xLen=xKids.length;var yLen=yKids.length;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})}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}}function _VirtualDom_diffKeyedKids(xParent,yParent,patches,rootIndex){var localPatches=[];var changes={};var inserts=[];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;if(xKey===yKey){index++;_VirtualDom_diffHelp(xNode,yNode,localPatches,index);index+=xNode.b||0;xIndex++;yIndex++;continue}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}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}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}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}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}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})}}var _VirtualDom_POSTFIX="_elmW6BL";function _VirtualDom_insertNode(changes,localPatches,key,vnode,yIndex,inserts){var entry=changes[key];if(!entry){entry={c:0,z:vnode,r:yIndex,s:undefined};inserts.push({r:yIndex,A:entry});changes[key]=entry;return}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}_VirtualDom_insertNode(changes,localPatches,key+_VirtualDom_POSTFIX,vnode,yIndex,inserts)}function _VirtualDom_removeNode(changes,localPatches,key,vnode,index){var entry=changes[key];if(!entry){var patch=_VirtualDom_pushPatch(localPatches,9,index,undefined);changes[key]={c:1,z:vnode,r:index,s:patch};return}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}_VirtualDom_removeNode(changes,localPatches,key+_VirtualDom_POSTFIX,vnode,index)}function _VirtualDom_addDomNodes(domNode,vNode,patches,eventNode){_VirtualDom_addDomNodesHelp(domNode,vNode,patches,0,0,vNode.b,eventNode)}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)}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}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)}}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;var frag=_VirtualDom_applyPatchReorderEndInsertsHelp(data.y,patch);domNode=_VirtualDom_applyPatchesHelp(domNode,data.w);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])}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){if(node.nodeType===3){return _VirtualDom_text(node.textContent)}if(node.nodeType!==1){return _VirtualDom_text("")}var attrList=_List_Nil;var attrs=node.attributes;for(var i=attrs.length;i--;){var attr=attrs[i];var name=attr.name;var value=attr.value;attrList=_List_Cons(A2(_VirtualDom_attribute,name,value),attrList)}var tag=node.tagName.toLowerCase();var kidList=_List_Nil;var kids=node.childNodes;for(var i=kids.length;i--;){kidList=_List_Cons(_VirtualDom_virtualize(kids[i]),kidList)}return A3(_VirtualDom_node,tag,attrList,kidList)}function _VirtualDom_dekey(keyedNode){var keyedKids=keyedNode.e;var len=keyedKids.length;var kids=new Array(len);for(var i=0;i<len;i++){kids[i]=keyedKids[i].b}return{$:1,c:keyedNode.c,d:keyedNode.d,e:kids,f:keyedNode.f,b:keyedNode.b}}var _Debugger_element;var _Browser_element=_Debugger_element||F4(function(impl,flagDecoder,debugMetadata,args){return _Platform_initialize(flagDecoder,args,impl.aK,impl.a0,impl.aZ,function(sendToApp,initialModel){var view=impl.a1;var domNode=args["node"];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})})});var _Debugger_document;var _Browser_document=_Debugger_document||F4(function(impl,flagDecoder,debugMetadata,args){return _Platform_initialize(flagDecoder,args,impl.aK,impl.a0,impl.aZ,function(sendToApp,initialModel){var divertHrefToApp=impl.Q&&impl.Q(sendToApp);var view=impl.a1;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.ay);var patches=_VirtualDom_diff(currNode,nextNode);bodyNode=_VirtualDom_applyPatches(bodyNode,currNode,patches,sendToApp);currNode=nextNode;_VirtualDom_divertHrefToApp=0;title!==doc.a_&&(_VirtualDom_doc.title=title=doc.a_)})})});var _Browser_cancelAnimationFrame=typeof cancelAnimationFrame!=="undefined"?cancelAnimationFrame:function(id){clearTimeout(id)};var _Browser_requestAnimationFrame=typeof requestAnimationFrame!=="undefined"?requestAnimationFrame:function(callback){return setTimeout(callback,1e3/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)}}function _Browser_application(impl){var onUrlChange=impl.aR;var onUrlRequest=impl.aS;var key=function(){key.a(onUrlChange(_Browser_getUrl()))};return _Browser_document({Q: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.ag===next.ag&&curr.Z===next.Z&&curr.ad.a===next.ad.a?$elm$browser$Browser$Internal(next):$elm$browser$Browser$External(href)))}})},aK:function(flags){return A3(impl.aK,flags,_Browser_getUrl(),key)},a1:impl.a1,a0:impl.a0,aZ:impl.aZ})}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()}))});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});function _Browser_visibilityInfo(){return typeof _VirtualDom_doc.hidden!=="undefined"?{aI:"hidden",az:"visibilitychange"}:typeof _VirtualDom_doc.mozHidden!=="undefined"?{aI:"mozHidden",az:"mozvisibilitychange"}:typeof _VirtualDom_doc.msHidden!=="undefined"?{aI:"msHidden",az:"msvisibilitychange"}:typeof _VirtualDom_doc.webkitHidden!=="undefined"?{aI:"webkitHidden",az:"webkitvisibilitychange"}:{aI:"hidden",az:"visibilitychange"}}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()))})}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()))})})}var _Browser_call=F2(function(functionName,id){return _Browser_withNode(id,function(node){node[functionName]();return _Utils_Tuple0})});function _Browser_getViewport(){return{al:_Browser_getScene(),ar:{at:_Browser_window.pageXOffset,au:_Browser_window.pageYOffset,as:_Browser_doc.documentElement.clientWidth,Y:_Browser_doc.documentElement.clientHeight}}}function _Browser_getScene(){var body=_Browser_doc.body;var elem=_Browser_doc.documentElement;return{as:Math.max(body.scrollWidth,body.offsetWidth,elem.scrollWidth,elem.offsetWidth,elem.clientWidth),Y: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})});function _Browser_getViewportOf(id){return _Browser_withNode(id,function(node){return{al:{as:node.scrollWidth,Y:node.scrollHeight},ar:{at:node.scrollLeft,au:node.scrollTop,as:node.clientWidth,Y: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})});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{al:_Browser_getScene(),ar:{at:x,au:y,as:_Browser_doc.documentElement.clientWidth,Y:_Browser_doc.documentElement.clientHeight},aD:{at:x+rect.left,au:y+rect.top,as:rect.width,Y:rect.height}}})}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){_VirtualDom_doc.location.reload(false)}}))}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===10?(row++,col=1):(col++,(code&63488)===55296?smallString[i++]===bigString[offset++]:1))}return _Utils_Tuple3(isGood?offset:-1,row,col)});var _Parser_isSubChar=F3(function(predicate,offset,string){return string.length<=offset?-1:(string.charCodeAt(offset)&63488)===55296?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});var _Parser_chompBase10=F2(function(offset,string){for(;offset<string.length;offset++){var code=string.charCodeAt(offset);if(code<48||57<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)-48;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(48<=code&&code<=57){total=16*total+code-48}else if(65<=code&&code<=70){total=16*total+code-55}else if(97<=code&&code<=102){total=16*total+code-87}else{break}}return _Utils_Tuple2(offset,total)});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===10?(col=1,row++):(col++,(code&63488)===55296&&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$QCM$init={G:"",M:_List_fromArray([""]),L:""};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.g){return A4($elm$core$Array$Array_elm_builtin,$elm$core$Elm$JsArray$length(builder.i),$elm$core$Array$shiftStep,$elm$core$Elm$JsArray$empty,builder.i)}else{var treeLen=builder.g*$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.j):builder.j;var tree=A2($elm$core$Array$treeFromBuilder,correctNodeList,builder.g);return A4($elm$core$Array$Array_elm_builtin,$elm$core$Elm$JsArray$length(builder.i)+treeLen,A2($elm$core$Basics$max,5,depth*$elm$core$Array$shiftStep),tree,builder.i)}});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,{j:nodeList,g:len/$elm$core$Array$branchFactor|0,i: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{X:fragment,Z:host,ab:path,ad:port_,ag:protocol,ah: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$core$Platform$Cmd$batch=_Platform_batch;var $elm$core$Platform$Cmd$none=$elm$core$Platform$Cmd$batch(_List_Nil);var $elm$core$Platform$Sub$batch=_Platform_batch;var $elm$core$Platform$Sub$none=$elm$core$Platform$Sub$batch(_List_Nil);var $elm$browser$Browser$sandbox=function(impl){return _Browser_element({aK:function(_v0){return _Utils_Tuple2(impl.aK,$elm$core$Platform$Cmd$none)},aZ:function(_v1){return $elm$core$Platform$Sub$none},a0:F2(function(msg,model){return _Utils_Tuple2(A2(impl.a0,msg,model),$elm$core$Platform$Cmd$none)}),a1:impl.a1})};var $elm$core$String$lines=_String_lines;var $author$project$QCM$Aremplacer=F2(function(_var,vals){return{ap:vals,aq:_var}});var $elm$parser$Parser$Optional=1;var $elm$core$Set$Set_elm_builtin=$elm$core$Basics$identity;var $elm$core$Dict$RBEmpty_elm_builtin={$:-2};var $elm$core$Dict$empty=$elm$core$Dict$RBEmpty_elm_builtin;var $elm$core$Set$empty=$elm$core$Dict$empty;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$Basics$compare=_Utils_compare;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$core$Set$insert=F2(function(key,_v0){var dict=_v0;return A3($elm$core$Dict$insert,key,0,dict)});var $elm$core$Set$fromList=function(list){return A3($elm$core$List$foldl,$elm$core$Set$insert,$elm$core$Set$empty,list)};var $elm$core$Basics$always=F2(function(a,_v0){return a});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$Parser=$elm$core$Basics$identity;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 $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 $elm$core$Basics$neq=_Utils_notEqual;var $elm$parser$Parser$Advanced$andThen=F2(function(callback,_v0){var parseA=_v0;return function(s0){var _v1=parseA(s0);if(_v1.$===1){var p=_v1.a;var x=_v1.b;return A2($elm$parser$Parser$Advanced$Bad,p,x)}else{var p1=_v1.a;var a=_v1.b;var s1=_v1.c;var _v2=callback(a);var parseB=_v2;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,b,s2)}}}});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$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$Advanced$Done=function(a){return{$:1,a:a}};var $elm$parser$Parser$Advanced$Loop=function(a){return{$:0,a:a}};var $elm$parser$Parser$Advanced$revAlways=F2(function(_v0,b){return b});var $elm$parser$Parser$Advanced$skip=F2(function(iParser,kParser){return A3($elm$parser$Parser$Advanced$map2,$elm$parser$Parser$Advanced$revAlways,iParser,kParser)});var $elm$parser$Parser$Advanced$sequenceEndForbidden=F5(function(ender,ws,parseItem,sep,revItems){var chompRest=function(item){return A5($elm$parser$Parser$Advanced$sequenceEndForbidden,ender,ws,parseItem,sep,A2($elm$core$List$cons,item,revItems))};return A2($elm$parser$Parser$Advanced$skip,ws,$elm$parser$Parser$Advanced$oneOf(_List_fromArray([A2($elm$parser$Parser$Advanced$skip,sep,A2($elm$parser$Parser$Advanced$skip,ws,A2($elm$parser$Parser$Advanced$map,function(item){return $elm$parser$Parser$Advanced$Loop(A2($elm$core$List$cons,item,revItems))},parseItem))),A2($elm$parser$Parser$Advanced$map,function(_v0){return $elm$parser$Parser$Advanced$Done($elm$core$List$reverse(revItems))},ender)])))});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$Advanced$sequenceEndMandatory=F4(function(ws,parseItem,sep,revItems){return $elm$parser$Parser$Advanced$oneOf(_List_fromArray([A2($elm$parser$Parser$Advanced$map,function(item){return $elm$parser$Parser$Advanced$Loop(A2($elm$core$List$cons,item,revItems))},A2($elm$parser$Parser$Advanced$ignorer,parseItem,A2($elm$parser$Parser$Advanced$ignorer,ws,A2($elm$parser$Parser$Advanced$ignorer,sep,ws)))),A2($elm$parser$Parser$Advanced$map,function(_v0){return $elm$parser$Parser$Advanced$Done($elm$core$List$reverse(revItems))},$elm$parser$Parser$Advanced$succeed(0))]))});var $elm$parser$Parser$Advanced$sequenceEndOptional=F5(function(ender,ws,parseItem,sep,revItems){var parseEnd=A2($elm$parser$Parser$Advanced$map,function(_v0){return $elm$parser$Parser$Advanced$Done($elm$core$List$reverse(revItems))},ender);return A2($elm$parser$Parser$Advanced$skip,ws,$elm$parser$Parser$Advanced$oneOf(_List_fromArray([A2($elm$parser$Parser$Advanced$skip,sep,A2($elm$parser$Parser$Advanced$skip,ws,$elm$parser$Parser$Advanced$oneOf(_List_fromArray([A2($elm$parser$Parser$Advanced$map,function(item){return $elm$parser$Parser$Advanced$Loop(A2($elm$core$List$cons,item,revItems))},parseItem),parseEnd])))),parseEnd])))});var $elm$parser$Parser$Advanced$sequenceEnd=F5(function(ender,ws,parseItem,sep,trailing){var chompRest=function(item){switch(trailing){case 0:return A2($elm$parser$Parser$Advanced$loop,_List_fromArray([item]),A4($elm$parser$Parser$Advanced$sequenceEndForbidden,ender,ws,parseItem,sep));case 1:return A2($elm$parser$Parser$Advanced$loop,_List_fromArray([item]),A4($elm$parser$Parser$Advanced$sequenceEndOptional,ender,ws,parseItem,sep));default:return A2($elm$parser$Parser$Advanced$ignorer,A2($elm$parser$Parser$Advanced$skip,ws,A2($elm$parser$Parser$Advanced$skip,sep,A2($elm$parser$Parser$Advanced$skip,ws,A2($elm$parser$Parser$Advanced$loop,_List_fromArray([item]),A3($elm$parser$Parser$Advanced$sequenceEndMandatory,ws,parseItem,sep))))),ender)}};return $elm$parser$Parser$Advanced$oneOf(_List_fromArray([A2($elm$parser$Parser$Advanced$andThen,chompRest,parseItem),A2($elm$parser$Parser$Advanced$map,function(_v0){return _List_Nil},ender)]))});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{aA:col,aB:contextStack,aU:problem,ak: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.ak,s.aA,x,s.c))});var $elm$parser$Parser$Advanced$isSubString=_Parser_isSubString;var $elm$core$Basics$negate=function(n){return-n};var $elm$core$Basics$not=_Basics_not;var $elm$parser$Parser$Advanced$token=function(_v0){var str=_v0.a;var expecting=_v0.b;var progress=!$elm$core$String$isEmpty(str);return function(s){var _v1=A5($elm$parser$Parser$Advanced$isSubString,str,s.b,s.ak,s.aA,s.a);var newOffset=_v1.a;var newRow=_v1.b;var newCol=_v1.c;return _Utils_eq(newOffset,-1)?A2($elm$parser$Parser$Advanced$Bad,false,A2($elm$parser$Parser$Advanced$fromState,s,expecting)):A3($elm$parser$Parser$Advanced$Good,progress,0,{aA:newCol,c:s.c,d:s.d,b:newOffset,ak:newRow,a:s.a})}};var $elm$parser$Parser$Advanced$sequence=function(i){return A2($elm$parser$Parser$Advanced$skip,$elm$parser$Parser$Advanced$token(i.am),A2($elm$parser$Parser$Advanced$skip,i.aY,A5($elm$parser$Parser$Advanced$sequenceEnd,$elm$parser$Parser$Advanced$token(i.aE),i.aY,i.aO,$elm$parser$Parser$Advanced$token(i.aX),i.a$)))};var $elm$parser$Parser$Advanced$Forbidden=0;var $elm$parser$Parser$Advanced$Mandatory=2;var $elm$parser$Parser$Advanced$Optional=1;var $elm$parser$Parser$toAdvancedTrailing=function(trailing){switch(trailing){case 0:return 0;case 1:return 1;default:return 2}};var $elm$parser$Parser$Expecting=function(a){return{$:0,a:a}};var $elm$parser$Parser$Advanced$Token=F2(function(a,b){return{$:0,a:a,b:b}});var $elm$parser$Parser$toToken=function(str){return A2($elm$parser$Parser$Advanced$Token,str,$elm$parser$Parser$Expecting(str))};var $elm$parser$Parser$sequence=function(i){return $elm$parser$Parser$Advanced$sequence({aE:$elm$parser$Parser$toToken(i.aE),aO:i.aO,aX:$elm$parser$Parser$toToken(i.aX),aY:i.aY,am:$elm$parser$Parser$toToken(i.am),a$:$elm$parser$Parser$toAdvancedTrailing(i.a$)})};var $elm$parser$Parser$Advanced$isSubChar=_Parser_isSubChar;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,{aA:col,c:s0.c,d:s0.d,b:offset,ak: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.ak,s.aA,s)}};var $elm$parser$Parser$Advanced$spaces=$elm$parser$Parser$Advanced$chompWhile(function(c){return c===" "||(c==="\n"||c==="\r")});var $elm$parser$Parser$spaces=$elm$parser$Parser$Advanced$spaces;var $elm$parser$Parser$succeed=$elm$parser$Parser$Advanced$succeed;var $elm$parser$Parser$ExpectingSymbol=function(a){return{$:8,a:a}};var $elm$parser$Parser$Advanced$symbol=$elm$parser$Parser$Advanced$token;var $elm$parser$Parser$symbol=function(str){return $elm$parser$Parser$Advanced$symbol(A2($elm$parser$Parser$Advanced$Token,str,$elm$parser$Parser$ExpectingSymbol(str)))};var $elm$parser$Parser$ExpectingVariable={$:7};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$member=F2(function(key,dict){var _v0=A2($elm$core$Dict$get,key,dict);if(!_v0.$){return true}else{return false}});var $elm$core$Set$member=F2(function(key,_v0){var dict=_v0;return A2($elm$core$Dict$member,key,dict)});var $elm$parser$Parser$Advanced$varHelp=F7(function(isGood,offset,row,col,src,indent,context){varHelp:while(true){var newOffset=A3($elm$parser$Parser$Advanced$isSubChar,isGood,offset,src);if(_Utils_eq(newOffset,-1)){return{aA:col,c:context,d:indent,b:offset,ak:row,a:src}}else{if(_Utils_eq(newOffset,-2)){var $temp$isGood=isGood,$temp$offset=offset+1,$temp$row=row+1,$temp$col=1,$temp$src=src,$temp$indent=indent,$temp$context=context;isGood=$temp$isGood;offset=$temp$offset;row=$temp$row;col=$temp$col;src=$temp$src;indent=$temp$indent;context=$temp$context;continue varHelp}else{var $temp$isGood=isGood,$temp$offset=newOffset,$temp$row=row,$temp$col=col+1,$temp$src=src,$temp$indent=indent,$temp$context=context;isGood=$temp$isGood;offset=$temp$offset;row=$temp$row;col=$temp$col;src=$temp$src;indent=$temp$indent;context=$temp$context;continue varHelp}}}});var $elm$parser$Parser$Advanced$variable=function(i){return function(s){var firstOffset=A3($elm$parser$Parser$Advanced$isSubChar,i.am,s.b,s.a);if(_Utils_eq(firstOffset,-1)){return A2($elm$parser$Parser$Advanced$Bad,false,A2($elm$parser$Parser$Advanced$fromState,s,i.W))}else{var s1=_Utils_eq(firstOffset,-2)?A7($elm$parser$Parser$Advanced$varHelp,i.aL,s.b+1,s.ak+1,1,s.a,s.d,s.c):A7($elm$parser$Parser$Advanced$varHelp,i.aL,firstOffset,s.ak,s.aA+1,s.a,s.d,s.c);var name=A3($elm$core$String$slice,s.b,s1.b,s.a);return A2($elm$core$Set$member,name,i.aV)?A2($elm$parser$Parser$Advanced$Bad,false,A2($elm$parser$Parser$Advanced$fromState,s,i.W)):A3($elm$parser$Parser$Advanced$Good,true,name,s1)}}};var $elm$parser$Parser$variable=function(i){return $elm$parser$Parser$Advanced$variable({W:$elm$parser$Parser$ExpectingVariable,aL:i.aL,aV:i.aV,am:i.am})};var $author$project$QCM$aRemplacer=A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed($author$project$QCM$Aremplacer),$elm$parser$Parser$spaces),A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$variable({aL:$elm$core$Char$isAlpha,aV:$elm$core$Set$fromList(_List_Nil),am:function(_v0){return true}}),$elm$parser$Parser$spaces),$elm$parser$Parser$symbol(":"))),$elm$parser$Parser$sequence({aE:"",aO:$elm$parser$Parser$variable({aL:$elm$core$Basics$neq(","),aV:$elm$core$Set$fromList(_List_Nil),am:$elm$core$Basics$neq(",")}),aX:",",aY:$elm$parser$Parser$spaces,am:"",a$:1}));var $elm$parser$Parser$DeadEnd=F3(function(row,col,problem){return{aA:col,aU:problem,ak:row}});var $elm$parser$Parser$problemToDeadEnd=function(p){return A3($elm$parser$Parser$DeadEnd,p.ak,p.aA,p.aU)};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({aA:1,c:_List_Nil,d:1,b:0,ak: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 $author$project$QCM$parserAremplacer=function(variables){var _v0=A2($elm$parser$Parser$run,$author$project$QCM$aRemplacer,variables);if(!_v0.$){var ars=_v0.a;return ars}else{return A2($author$project$QCM$Aremplacer,"",_List_Nil)}};var $elm$parser$Parser$map=$elm$parser$Parser$Advanced$map;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$Done=function(a){return{$:1,a:a}};var $elm$parser$Parser$Loop=function(a){return{$:0,a:a}};var $author$project$QCM$Variable=function(a){return{$:1,a:a}};var $elm$parser$Parser$Advanced$findSubString=_Parser_findSubString;var $elm$parser$Parser$Advanced$fromInfo=F4(function(row,col,x,context){return A2($elm$parser$Parser$Advanced$AddRight,$elm$parser$Parser$Advanced$Empty,A4($elm$parser$Parser$Advanced$DeadEnd,row,col,x,context))});var $elm$parser$Parser$Advanced$chompUntil=function(_v0){var str=_v0.a;var expecting=_v0.b;return function(s){var _v1=A5($elm$parser$Parser$Advanced$findSubString,str,s.b,s.ak,s.aA,s.a);var newOffset=_v1.a;var newRow=_v1.b;var newCol=_v1.c;return _Utils_eq(newOffset,-1)?A2($elm$parser$Parser$Advanced$Bad,false,A4($elm$parser$Parser$Advanced$fromInfo,newRow,newCol,expecting,s.c)):A3($elm$parser$Parser$Advanced$Good,_Utils_cmp(s.b,newOffset)<0,0,{aA:newCol,c:s.c,d:s.d,b:newOffset,ak:newRow,a:s.a})}};var $elm$parser$Parser$chompUntil=function(str){return $elm$parser$Parser$Advanced$chompUntil($elm$parser$Parser$toToken(str))};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 $author$project$QCM$expressionVariable=A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed($author$project$QCM$Variable),$elm$parser$Parser$symbol("#")),A2($elm$parser$Parser$ignorer,$elm$parser$Parser$getChompedString($elm$parser$Parser$chompUntil("#")),$elm$parser$Parser$symbol("#")));var $elm$parser$Parser$oneOf=$elm$parser$Parser$Advanced$oneOf;var $author$project$QCM$Texte=function(a){return{$:0,a:a}};var $elm$parser$Parser$UnexpectedChar={$:11};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,{aA:1,c:s.c,d:s.d,b:s.b+1,ak:s.ak+1,a:s.a}):A3($elm$parser$Parser$Advanced$Good,true,0,{aA:s.aA+1,c:s.c,d:s.d,b:newOffset,ak:s.ak,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$chompWhile=$elm$parser$Parser$Advanced$chompWhile;var $author$project$QCM$texteSansVariables=A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed($author$project$QCM$Texte),$elm$parser$Parser$getChompedString(A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed(0),$elm$parser$Parser$chompIf($elm$core$Basics$neq("#"))),$elm$parser$Parser$chompWhile($elm$core$Basics$neq("#")))));var $author$project$QCM$questionsBis=function(ls){return $elm$parser$Parser$oneOf(_List_fromArray([A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed(function(l){return $elm$parser$Parser$Loop(A2($elm$core$List$cons,l,ls))}),$elm$parser$Parser$oneOf(_List_fromArray([$author$project$QCM$expressionVariable,$author$project$QCM$texteSansVariables]))),A2($elm$parser$Parser$map,function(_v0){return $elm$parser$Parser$Done($elm$core$List$reverse(ls))},$elm$parser$Parser$succeed(0))]))};var $author$project$QCM$questions=A2($elm$parser$Parser$loop,_List_Nil,$author$project$QCM$questionsBis);var $author$project$QCM$parserQuestion=function(question){var _v0=A2($elm$parser$Parser$run,$author$project$QCM$questions,question);if(!_v0.$){var macro=_v0.a;return macro}else{return _List_Nil}};var $elm$core$List$append=F2(function(xs,ys){if(!ys.b){return xs}else{return A3($elm$core$List$foldr,$elm$core$List$cons,ys,xs)}});var $elm$core$List$concat=function(lists){return A3($elm$core$List$foldr,$elm$core$List$append,_List_Nil,lists)};var $elm$core$String$replace=F3(function(before,after,string){return A2($elm$core$String$join,after,A2($elm$core$String$split,before,string))});var $author$project$QCM$remplacerLaVariableParLaValeurDansLeTexteVariable=F3(function(_var,val,tv){if(!tv.$){var chaine=tv.a;return $author$project$QCM$Texte(chaine)}else{var chaine=tv.a;return $author$project$QCM$Variable(A3($elm$core$String$replace,_var,val,chaine))}});var $author$project$QCM$remplacerLaVariableParLaValeurDansLaMacro=F3(function(_var,val,macro){return A2($elm$core$List$map,A2($author$project$QCM$remplacerLaVariableParLaValeurDansLeTexteVariable,_var,val),macro)});var $author$project$QCM$remplacerLaVariableDansLaMacro=F2(function(ar,macro){var f=function(val){return A3($author$project$QCM$remplacerLaVariableParLaValeurDansLaMacro,ar.aq,val,macro)};return A2($elm$core$List$map,f,ar.ap)});var $author$project$QCM$remplacerLesVariablesDansLaMacroBis=F2(function(ars,macros){if(!ars.b){return macros}else{var ar=ars.a;var arss=ars.b;return A2($author$project$QCM$remplacerLesVariablesDansLaMacroBis,arss,$elm$core$List$concat(A2($elm$core$List$map,$author$project$QCM$remplacerLaVariableDansLaMacro(ar),macros)))}});var $elm$core$String$concat=function(strings){return A2($elm$core$String$join,"",strings)};var $author$project$Fractions$Frac=F2(function(num,den){return{f:den,e:num}});var $elm$core$Basics$abs=function(n){return n<0?-n:n};var $elm$core$Basics$modBy=_Basics_modBy;var $lynn$elm_arithmetic$Arithmetic$gcd=F2(function(a,b){var gcd_=F2(function(x,y){gcd_:while(true){if(!y){return x}else{var $temp$x=y,$temp$y=A2($elm$core$Basics$modBy,y,x);x=$temp$x;y=$temp$y;continue gcd_}}});return A2(gcd_,$elm$core$Basics$abs(a),$elm$core$Basics$abs(b))});var $author$project$Fractions$simplifier=function(a){var sgnDuDen=a.f<0?-1:1;var pgcd=A2($lynn$elm_arithmetic$Arithmetic$gcd,a.e,a.f);return A2($author$project$Fractions$Frac,sgnDuDen*a.e/pgcd|0,sgnDuDen*a.f/pgcd|0)};var $author$project$Fractions$add=F2(function(a,b){return $author$project$Fractions$simplifier(A2($author$project$Fractions$Frac,a.e*b.f+a.f*b.e,a.f*b.f))});var $author$project$Fractions$inv=function(a){return $author$project$Fractions$simplifier(A2($author$project$Fractions$Frac,a.f,a.e))};var $author$project$Fractions$mul=F2(function(a,b){return $author$project$Fractions$simplifier(A2($author$project$Fractions$Frac,a.e*b.e,a.f*b.f))});var $author$project$Fractions$div=F2(function(a,b){return $author$project$Fractions$simplifier(A2($author$project$Fractions$mul,a,$author$project$Fractions$inv(b)))});var $elm$core$Basics$pow=_Basics_pow;var $author$project$Fractions$exp=F2(function(a,b){var bb=$author$project$Fractions$simplifier(b);var sgnDeB=bb.e<0?-1:1;var aa=$author$project$Fractions$simplifier(a);var sgnDeA=aa.e<0?-1:1;return bb.f===1&&bb.e<0?$elm$core$Maybe$Just(A2($author$project$Fractions$Frac,A2($elm$core$Basics$pow,sgnDeA*aa.f,sgnDeB*bb.e),A2($elm$core$Basics$pow,sgnDeA*aa.e,sgnDeB*bb.e))):bb.f===1?$elm$core$Maybe$Just(A2($author$project$Fractions$Frac,A2($elm$core$Basics$pow,aa.e,bb.e),A2($elm$core$Basics$pow,aa.f,bb.e))):$elm$core$Maybe$Nothing});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$map2=F3(function(func,ma,mb){if(ma.$===1){return $elm$core$Maybe$Nothing}else{var a=ma.a;if(mb.$===1){return $elm$core$Maybe$Nothing}else{var b=mb.a;return $elm$core$Maybe$Just(A2(func,a,b))}}});var $author$project$Fractions$neg=function(a){return $author$project$Fractions$simplifier(A2($author$project$Fractions$Frac,-a.e,a.f))};var $author$project$Fractions$sub=F2(function(a,b){return $author$project$Fractions$simplifier(A2($author$project$Fractions$add,a,$author$project$Fractions$neg(b)))});var $author$project$ParserMaths$evaluer=function(expression){evaluer:while(true){switch(expression.$){case 0:var a=expression.a;var b=expression.b;return A3($elm$core$Maybe$map2,$author$project$Fractions$add,$author$project$ParserMaths$evaluer(a),$author$project$ParserMaths$evaluer(b));case 1:var a=expression.a;var b=expression.b;return A3($elm$core$Maybe$map2,$author$project$Fractions$sub,$author$project$ParserMaths$evaluer(a),$author$project$ParserMaths$evaluer(b));case 2:var a=expression.a;var b=expression.b;return A3($elm$core$Maybe$map2,$author$project$Fractions$mul,$author$project$ParserMaths$evaluer(a),$author$project$ParserMaths$evaluer(b));case 3:var a=expression.a;var b=expression.b;return A3($elm$core$Maybe$map2,$author$project$Fractions$div,$author$project$ParserMaths$evaluer(a),$author$project$ParserMaths$evaluer(b));case 4:var a=expression.a;var b=expression.b;var _v1=A3($elm$core$Maybe$map2,$author$project$Fractions$exp,$author$project$ParserMaths$evaluer(a),$author$project$ParserMaths$evaluer(b));if(_v1.$===1){return $elm$core$Maybe$Nothing}else{var p=_v1.a;return p}case 5:var a=expression.a;return A2($elm$core$Maybe$map,$author$project$Fractions$neg,$author$project$ParserMaths$evaluer(a));case 7:var l=expression.a;var $temp$expression=l;expression=$temp$expression;continue evaluer;case 6:var n=expression.a;return $elm$core$Maybe$Just(A2($author$project$Fractions$Frac,n,1));default:var a_i=expression.a;var x=expression.b;return $elm$core$Maybe$Just(A2($author$project$Fractions$Frac,50,1))}}};var $author$project$ParserMaths$AddOp=2;var $author$project$ParserMaths$DivOp=1;var $author$project$ParserMaths$ExpOp=4;var $elm$parser$Parser$Forbidden=0;var $author$project$ParserMaths$Grouping=function(a){return{$:7,a:a}};var $author$project$ParserMaths$MulOp=0;var $author$project$ParserMaths$Neg=function(a){return{$:5,a:a}};var $author$project$ParserMaths$NoOperand={$:0};var $author$project$ParserMaths$Operand=F2(function(a,b){return{$:1,a:a,b:b}});var $author$project$ParserMaths$Poly=F2(function(a,b){return{$:8,a:a,b:b}});var $author$project$ParserMaths$SubOp=3;var $author$project$ParserMaths$Add=F2(function(a,b){return{$:0,a:a,b:b}});var $author$project$ParserMaths$Div=F2(function(a,b){return{$:3,a:a,b:b}});var $author$project$ParserMaths$Exp=F2(function(a,b){return{$:4,a:a,b:b}});var $author$project$ParserMaths$Mul=F2(function(a,b){return{$:2,a:a,b:b}});var $author$project$ParserMaths$Sub=F2(function(a,b){return{$:1,a:a,b:b}});var $author$project$ParserMaths$binary=F2(function(a,b){if(!b.$){return a}else{var op=b.a;var e=b.b;switch(op){case 0:return A2($author$project$ParserMaths$Mul,a,e);case 1:return A2($author$project$ParserMaths$Div,a,e);case 2:return A2($author$project$ParserMaths$Add,a,e);case 3:return A2($author$project$ParserMaths$Sub,a,e);default:return A2($author$project$ParserMaths$Exp,a,e)}}});var $author$project$ParserMaths$foldBinary=F2(function(left,operands){return A3($elm$core$List$foldr,F2(function(operand,expression){return A2($author$project$ParserMaths$binary,expression,operand)}),left,operands)});var $elm$parser$Parser$ExpectingKeyword=function(a){return{$:9,a:a}};var $elm$parser$Parser$Advanced$keyword=function(_v0){var kwd=_v0.a;var expecting=_v0.b;var progress=!$elm$core$String$isEmpty(kwd);return function(s){var _v1=A5($elm$parser$Parser$Advanced$isSubString,kwd,s.b,s.ak,s.aA,s.a);var newOffset=_v1.a;var newRow=_v1.b;var newCol=_v1.c;return _Utils_eq(newOffset,-1)||0<=A3($elm$parser$Parser$Advanced$isSubChar,function(c){return $elm$core$Char$isAlphaNum(c)||c==="_"},newOffset,s.a)?A2($elm$parser$Parser$Advanced$Bad,false,A2($elm$parser$Parser$Advanced$fromState,s,expecting)):A3($elm$parser$Parser$Advanced$Good,progress,0,{aA:newCol,c:s.c,d:s.d,b:newOffset,ak:newRow,a:s.a})}};var $elm$parser$Parser$keyword=function(kwd){return $elm$parser$Parser$Advanced$keyword(A2($elm$parser$Parser$Advanced$Token,kwd,$elm$parser$Parser$ExpectingKeyword(kwd)))};var $elm$parser$Parser$Advanced$lazy=function(thunk){return function(s){var _v0=thunk(0);var parse=_v0;return parse(s)}};var $elm$parser$Parser$lazy=$elm$parser$Parser$Advanced$lazy;var $author$project$ParserMaths$Entier=function(a){return{$:6,a:a}};var $elm$parser$Parser$ExpectingBinary={$:4};var $elm$parser$Parser$ExpectingFloat={$:5};var $elm$parser$Parser$ExpectingHex={$:2};var $elm$parser$Parser$ExpectingInt={$:1};var $elm$parser$Parser$ExpectingNumber={$:6};var $elm$parser$Parser$ExpectingOctal={$:3};var $elm$core$Result$fromMaybe=F2(function(err,maybe){if(!maybe.$){var v=maybe.a;return $elm$core$Result$Ok(v)}else{return $elm$core$Result$Err(err)}});var $elm$parser$Parser$Advanced$consumeBase=_Parser_consumeBase;var $elm$parser$Parser$Advanced$consumeBase16=_Parser_consumeBase16;var $elm$parser$Parser$Advanced$bumpOffset=F2(function(newOffset,s){return{aA:s.aA+(newOffset-s.b),c:s.c,d:s.d,b:newOffset,ak:s.ak,a:s.a}});var $elm$parser$Parser$Advanced$chompBase10=_Parser_chompBase10;var $elm$parser$Parser$Advanced$isAsciiCode=_Parser_isAsciiCode;var $elm$parser$Parser$Advanced$consumeExp=F2(function(offset,src){if(A3($elm$parser$Parser$Advanced$isAsciiCode,101,offset,src)||A3($elm$parser$Parser$Advanced$isAsciiCode,69,offset,src)){var eOffset=offset+1;var expOffset=A3($elm$parser$Parser$Advanced$isAsciiCode,43,eOffset,src)||A3($elm$parser$Parser$Advanced$isAsciiCode,45,eOffset,src)?eOffset+1:eOffset;var newOffset=A2($elm$parser$Parser$Advanced$chompBase10,expOffset,src);return _Utils_eq(expOffset,newOffset)?-newOffset:newOffset}else{return offset}});var $elm$parser$Parser$Advanced$consumeDotAndExp=F2(function(offset,src){return A3($elm$parser$Parser$Advanced$isAsciiCode,46,offset,src)?A2($elm$parser$Parser$Advanced$consumeExp,A2($elm$parser$Parser$Advanced$chompBase10,offset+1,src),src):A2($elm$parser$Parser$Advanced$consumeExp,offset,src)});var $elm$parser$Parser$Advanced$finalizeInt=F5(function(invalid,handler,startOffset,_v0,s){var endOffset=_v0.a;var n=_v0.b;if(handler.$===1){var x=handler.a;return A2($elm$parser$Parser$Advanced$Bad,true,A2($elm$parser$Parser$Advanced$fromState,s,x))}else{var toValue=handler.a;return _Utils_eq(startOffset,endOffset)?A2($elm$parser$Parser$Advanced$Bad,_Utils_cmp(s.b,startOffset)<0,A2($elm$parser$Parser$Advanced$fromState,s,invalid)):A3($elm$parser$Parser$Advanced$Good,true,toValue(n),A2($elm$parser$Parser$Advanced$bumpOffset,endOffset,s))}});var $elm$core$String$toFloat=_String_toFloat;var $elm$parser$Parser$Advanced$finalizeFloat=F6(function(invalid,expecting,intSettings,floatSettings,intPair,s){var intOffset=intPair.a;var floatOffset=A2($elm$parser$Parser$Advanced$consumeDotAndExp,intOffset,s.a);if(floatOffset<0){return A2($elm$parser$Parser$Advanced$Bad,true,A4($elm$parser$Parser$Advanced$fromInfo,s.ak,s.aA-(floatOffset+s.b),invalid,s.c))}else{if(_Utils_eq(s.b,floatOffset)){return A2($elm$parser$Parser$Advanced$Bad,false,A2($elm$parser$Parser$Advanced$fromState,s,expecting))}else{if(_Utils_eq(intOffset,floatOffset)){return A5($elm$parser$Parser$Advanced$finalizeInt,invalid,intSettings,s.b,intPair,s)}else{if(floatSettings.$===1){var x=floatSettings.a;return A2($elm$parser$Parser$Advanced$Bad,true,A2($elm$parser$Parser$Advanced$fromState,s,invalid))}else{var toValue=floatSettings.a;var _v1=$elm$core$String$toFloat(A3($elm$core$String$slice,s.b,floatOffset,s.a));if(_v1.$===1){return A2($elm$parser$Parser$Advanced$Bad,true,A2($elm$parser$Parser$Advanced$fromState,s,invalid))}else{var n=_v1.a;return A3($elm$parser$Parser$Advanced$Good,true,toValue(n),A2($elm$parser$Parser$Advanced$bumpOffset,floatOffset,s))}}}}}});var $elm$parser$Parser$Advanced$number=function(c){return function(s){if(A3($elm$parser$Parser$Advanced$isAsciiCode,48,s.b,s.a)){var zeroOffset=s.b+1;var baseOffset=zeroOffset+1;return A3($elm$parser$Parser$Advanced$isAsciiCode,120,zeroOffset,s.a)?A5($elm$parser$Parser$Advanced$finalizeInt,c.aN,c.aH,baseOffset,A2($elm$parser$Parser$Advanced$consumeBase16,baseOffset,s.a),s):A3($elm$parser$Parser$Advanced$isAsciiCode,111,zeroOffset,s.a)?A5($elm$parser$Parser$Advanced$finalizeInt,c.aN,c.aQ,baseOffset,A3($elm$parser$Parser$Advanced$consumeBase,8,baseOffset,s.a),s):A3($elm$parser$Parser$Advanced$isAsciiCode,98,zeroOffset,s.a)?A5($elm$parser$Parser$Advanced$finalizeInt,c.aN,c.ax,baseOffset,A3($elm$parser$Parser$Advanced$consumeBase,2,baseOffset,s.a),s):A6($elm$parser$Parser$Advanced$finalizeFloat,c.aN,c.W,c.aM,c.aG,_Utils_Tuple2(zeroOffset,0),s)}else{return A6($elm$parser$Parser$Advanced$finalizeFloat,c.aN,c.W,c.aM,c.aG,A3($elm$parser$Parser$Advanced$consumeBase,10,s.b,s.a),s)}}};var $elm$parser$Parser$number=function(i){return $elm$parser$Parser$Advanced$number({ax:A2($elm$core$Result$fromMaybe,$elm$parser$Parser$ExpectingBinary,i.ax),W:$elm$parser$Parser$ExpectingNumber,aG:A2($elm$core$Result$fromMaybe,$elm$parser$Parser$ExpectingFloat,i.aG),aH:A2($elm$core$Result$fromMaybe,$elm$parser$Parser$ExpectingHex,i.aH),aM:A2($elm$core$Result$fromMaybe,$elm$parser$Parser$ExpectingInt,i.aM),aN:$elm$parser$Parser$ExpectingNumber,aQ:A2($elm$core$Result$fromMaybe,$elm$parser$Parser$ExpectingOctal,i.aQ)})};var $author$project$ParserMaths$nombre=A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed($author$project$ParserMaths$Entier),$elm$parser$Parser$number({ax:$elm$core$Maybe$Nothing,aG:$elm$core$Maybe$Nothing,aH:$elm$core$Maybe$Nothing,aM:$elm$core$Maybe$Just($elm$core$Basics$identity),aQ:$elm$core$Maybe$Nothing}));var $author$project$ParserMaths$addHelper=function(operands){return $elm$parser$Parser$oneOf(_List_fromArray([A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed(function(right){return $elm$parser$Parser$Loop(A2($elm$core$List$cons,A2($author$project$ParserMaths$Operand,2,right),operands))}),$elm$parser$Parser$symbol("+")),$elm$parser$Parser$spaces),$elm$parser$Parser$lazy(function(_v9){return $author$project$ParserMaths$cyclic$mul()})),A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed(function(right){return $elm$parser$Parser$Loop(A2($elm$core$List$cons,A2($author$project$ParserMaths$Operand,3,right),operands))}),$elm$parser$Parser$symbol("-")),$elm$parser$Parser$spaces),$elm$parser$Parser$lazy(function(_v10){return $author$project$ParserMaths$cyclic$mul()})),A2($elm$parser$Parser$map,function(_v11){return $elm$parser$Parser$Done(operands)},$elm$parser$Parser$succeed(0))]))};var $author$project$ParserMaths$mulHelper=function(operands){return $elm$parser$Parser$oneOf(_List_fromArray([A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed(function(right){return $elm$parser$Parser$Loop(A2($elm$core$List$cons,A2($author$project$ParserMaths$Operand,0,right),operands))}),$elm$parser$Parser$symbol("*")),$elm$parser$Parser$spaces),$elm$parser$Parser$lazy(function(_v3){return $author$project$ParserMaths$cyclic$exp()})),A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed(function(right){return $elm$parser$Parser$Loop(A2($elm$core$List$cons,A2($author$project$ParserMaths$Operand,1,right),operands))}),$elm$parser$Parser$symbol("/")),$elm$parser$Parser$spaces),$elm$parser$Parser$lazy(function(_v4){return $author$project$ParserMaths$cyclic$exp()})),A2($elm$parser$Parser$map,function(_v5){return $elm$parser$Parser$Done(operands)},$elm$parser$Parser$succeed(0))]))};function $author$project$ParserMaths$cyclic$expr(){return $author$project$ParserMaths$cyclic$add()}function $author$project$ParserMaths$cyclic$add(){return A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed($author$project$ParserMaths$foldBinary),A2($elm$parser$Parser$ignorer,$author$project$ParserMaths$cyclic$mul(),$elm$parser$Parser$spaces)),A2($elm$parser$Parser$loop,_List_Nil,$author$project$ParserMaths$addHelper))}function $author$project$ParserMaths$cyclic$mul(){return A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed($author$project$ParserMaths$foldBinary),A2($elm$parser$Parser$ignorer,$author$project$ParserMaths$cyclic$exp(),$elm$parser$Parser$spaces)),A2($elm$parser$Parser$loop,_List_Nil,$author$project$ParserMaths$mulHelper))}function $author$project$ParserMaths$cyclic$exp(){return A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed($author$project$ParserMaths$binary),A2($elm$parser$Parser$ignorer,$author$project$ParserMaths$cyclic$primary(),$elm$parser$Parser$spaces)),$elm$parser$Parser$oneOf(_List_fromArray([A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed($author$project$ParserMaths$Operand(4)),$elm$parser$Parser$symbol("^")),$elm$parser$Parser$spaces),$elm$parser$Parser$lazy(function(_v8){return $author$project$ParserMaths$cyclic$exp()})),$elm$parser$Parser$succeed($author$project$ParserMaths$NoOperand)])))}function $author$project$ParserMaths$cyclic$primary(){return A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed(F2(function(op,literal){if(op.$===1){return literal}else{return $author$project$ParserMaths$Neg(literal)}})),$elm$parser$Parser$oneOf(_List_fromArray([A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed($elm$core$Maybe$Just),$elm$parser$Parser$symbol("-")),$elm$parser$Parser$succeed($elm$core$Maybe$Nothing)]))),$elm$parser$Parser$oneOf(_List_fromArray([$author$project$ParserMaths$cyclic$grouping(),$author$project$ParserMaths$cyclic$poly(),$author$project$ParserMaths$nombre])))}function $author$project$ParserMaths$cyclic$grouping(){return A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed($author$project$ParserMaths$Grouping),$elm$parser$Parser$symbol("(")),$elm$parser$Parser$spaces),A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$lazy(function(_v6){return $author$project$ParserMaths$cyclic$expr()}),$elm$parser$Parser$spaces),$elm$parser$Parser$symbol(")")))}function $author$project$ParserMaths$cyclic$poly(){return A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed($author$project$ParserMaths$Poly),$elm$parser$Parser$keyword("Poly")),$elm$parser$Parser$spaces),A2($elm$parser$Parser$ignorer,$elm$parser$Parser$sequence({aE:"]",aO:$elm$parser$Parser$lazy(function(_v0){return $author$project$ParserMaths$cyclic$expr()}),aX:",",aY:$elm$parser$Parser$spaces,am:"[",a$:0}),$elm$parser$Parser$spaces)),$elm$parser$Parser$variable({aL:function(_v1){return false},aV:$elm$core$Set$fromList(_List_Nil),am:function(_v2){return true}}))}var $author$project$ParserMaths$expr=$author$project$ParserMaths$cyclic$expr();$author$project$ParserMaths$cyclic$expr=function(){return $author$project$ParserMaths$expr};var $author$project$ParserMaths$add=$author$project$ParserMaths$cyclic$add();$author$project$ParserMaths$cyclic$add=function(){return $author$project$ParserMaths$add};var $author$project$ParserMaths$mul=$author$project$ParserMaths$cyclic$mul();$author$project$ParserMaths$cyclic$mul=function(){return $author$project$ParserMaths$mul};var $author$project$ParserMaths$exp=$author$project$ParserMaths$cyclic$exp();$author$project$ParserMaths$cyclic$exp=function(){return $author$project$ParserMaths$exp};var $author$project$ParserMaths$primary=$author$project$ParserMaths$cyclic$primary();$author$project$ParserMaths$cyclic$primary=function(){return $author$project$ParserMaths$primary};var $author$project$ParserMaths$grouping=$author$project$ParserMaths$cyclic$grouping();$author$project$ParserMaths$cyclic$grouping=function(){return $author$project$ParserMaths$grouping};var $author$project$ParserMaths$poly=$author$project$ParserMaths$cyclic$poly();$author$project$ParserMaths$cyclic$poly=function(){return $author$project$ParserMaths$poly};var $author$project$ParserMaths$parseMaths=function(source){return A2($elm$parser$Parser$run,$author$project$ParserMaths$expr,source)};var $author$project$Fractions$teX=function(a){var _v0=a.f;if(_v0===1){return $elm$core$String$fromInt(a.e)}else{return a.e<0?"-\\frac{"+($elm$core$String$fromInt(-a.e)+("}{"+($elm$core$String$fromInt(a.f)+"}"))):"\\frac{"+($elm$core$String$fromInt(a.e)+("}{"+($elm$core$String$fromInt(a.f)+"}")))}};var $author$project$QCM$voirTexteVariable=function(txtvar){if(!txtvar.$){var txt=txtvar.a;return txt}else{var _var=txtvar.a;var expressionParseePotentielle=$author$project$ParserMaths$parseMaths(_var);if(expressionParseePotentielle.$===1){var erreur=expressionParseePotentielle.a;return"L'expression est mal formée."}else{var expressionParsee=expressionParseePotentielle.a;var _v2=A2($elm$core$Maybe$map,$author$project$Fractions$teX,$author$project$ParserMaths$evaluer(expressionParsee));if(!_v2.$){var a=_v2.a;return a}else{return"Les puissances non-entières ne sont pas acceptées."}}}};var $author$project$QCM$voirMacro=function(macro){return $elm$core$String$concat(A2($elm$core$List$map,$author$project$QCM$voirTexteVariable,macro))};var $author$project$QCM$remplacerLesVariablesDansLaMacro=F2(function(ars,macro){return A2($elm$core$List$map,$author$project$QCM$voirMacro,A2($author$project$QCM$remplacerLesVariablesDansLaMacroBis,ars,_List_fromArray([macro])))});var $author$project$QCM$remplacer=F2(function(variables,question){var macro=$author$project$QCM$parserQuestion(question);var ars=A2($elm$core$List$map,$author$project$QCM$parserAremplacer,$elm$core$String$lines(variables));return A2($author$project$QCM$remplacerLesVariablesDansLaMacro,ars,macro)});var $author$project$QCM$update=F2(function(msg,model){switch(msg.$){case 0:var nouvelleQuestion=msg.a;return _Utils_update(model,{G:nouvelleQuestion});case 1:var nouvellesVariables=msg.a;return _Utils_update(model,{L:nouvellesVariables});default:return _Utils_update(model,{M:A2($author$project$QCM$remplacer,model.L,model.G)})}});var $author$project$QCM$GenererQuestion={$:2};var $author$project$QCM$Question=function(a){return{$:0,a:a}};var $author$project$QCM$Variables=function(a){return{$:1,a:a}};var $elm$html$Html$button=_VirtualDom_node("button");var $elm$html$Html$div=_VirtualDom_node("div");var $elm$virtual_dom$VirtualDom$Normal=function(a){return{$:0,a:a}};var $elm$virtual_dom$VirtualDom$on=_VirtualDom_on;var $elm$html$Html$Events$on=F2(function(event,decoder){return A2($elm$virtual_dom$VirtualDom$on,event,$elm$virtual_dom$VirtualDom$Normal(decoder))});var $elm$html$Html$Events$onClick=function(msg){return A2($elm$html$Html$Events$on,"click",$elm$json$Json$Decode$succeed(msg))};var $elm$html$Html$Events$alwaysStop=function(x){return _Utils_Tuple2(x,true)};var $elm$virtual_dom$VirtualDom$MayStopPropagation=function(a){return{$:1,a:a}};var $elm$html$Html$Events$stopPropagationOn=F2(function(event,decoder){return A2($elm$virtual_dom$VirtualDom$on,event,$elm$virtual_dom$VirtualDom$MayStopPropagation(decoder))});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 $elm$html$Html$Events$targetValue=A2($elm$json$Json$Decode$at,_List_fromArray(["target","value"]),$elm$json$Json$Decode$string);var $elm$html$Html$Events$onInput=function(tagger){return A2($elm$html$Html$Events$stopPropagationOn,"input",A2($elm$json$Json$Decode$map,$elm$html$Html$Events$alwaysStop,A2($elm$json$Json$Decode$map,tagger,$elm$html$Html$Events$targetValue)))};var $elm$html$Html$p=_VirtualDom_node("p");var $elm$json$Json$Encode$string=_Json_wrap;var $elm$html$Html$Attributes$stringProperty=F2(function(key,string){return A2(_VirtualDom_property,key,$elm$json$Json$Encode$string(string))});var $elm$html$Html$Attributes$placeholder=$elm$html$Html$Attributes$stringProperty("placeholder");var $elm$virtual_dom$VirtualDom$text=_VirtualDom_text;var $elm$html$Html$text=$elm$virtual_dom$VirtualDom$text;var $elm$html$Html$textarea=_VirtualDom_node("textarea");var $elm$html$Html$Attributes$value=$elm$html$Html$Attributes$stringProperty("value");var $author$project$QCM$view=function(model){return A2($elm$html$Html$div,_List_Nil,A2($elm$core$List$cons,A2($elm$html$Html$textarea,_List_fromArray([$elm$html$Html$Attributes$placeholder("Liste des variables"),$elm$html$Html$Attributes$value(model.L),$elm$html$Html$Events$onInput($author$project$QCM$Variables)]),_List_Nil),A2($elm$core$List$cons,A2($elm$html$Html$textarea,_List_fromArray([$elm$html$Html$Attributes$placeholder("Format de la question"),$elm$html$Html$Attributes$value(model.G),$elm$html$Html$Events$onInput($author$project$QCM$Question)]),_List_Nil),A2($elm$core$List$cons,A2($elm$html$Html$button,_List_fromArray([$elm$html$Html$Events$onClick($author$project$QCM$GenererQuestion)]),_List_fromArray([$elm$html$Html$text("Générer les questions")])),_List_fromArray([A2($elm$html$Html$p,_List_Nil,A2($elm$core$List$map,function(q){return A2($elm$html$Html$p,_List_Nil,_List_fromArray([$elm$html$Html$text(q)]))},model.M))])))))};var $author$project$QCM$main=$elm$browser$Browser$sandbox({aK:$author$project$QCM$init,a0:$author$project$QCM$update,a1:$author$project$QCM$view});_Platform_export({QCM:{init:$author$project$QCM$main($elm$json$Json$Decode$succeed(0))(0)}})})(this);